【问题标题】:Show hide DataObject columns within ModelAdmin with javascript使用 javascript 在 ModelAdmin 中显示隐藏 DataObject 列
【发布时间】:2016-06-25 03:45:43
【问题描述】:

用户对在同一个 ModelAdmin 中为同一个 DataObject 显示的列有许多不同的偏好,并希望在他们自己的会话中控制它们。

给定以下数据对象...

class MyDataObject extends DataObject {
    static $db = array(
        'Name'      => 'Varchar',
        'Date'      => 'SS_DateTime',
        'Number'    => 'Decimal(8,2)',
    );
    public static $summary_fields = array(
        'Name',
        'Date',
        'Number'
    );
}

...以及下面的 ModelAdmin...

class MyModelAdmin extends ModelAdmin {
    static $mangaged_models = array(
    'MyDataObject',
    );  
    static $url_segment = 'mymodeladmin';
    static $menu_title = 'MyModelAdmin';
    static $menu_priority = 9;
}

...是否有一个简单的仅使用 javascript 的解决方案(我想它会将选择的列存储在 cookie 中)或更具程序性的(即 php),可以控制每个用户的列 - 允许每个用户选择他们想要的列,它会从一个会话到另一个会话记住它?

非常感谢任何帮助。

【问题讨论】:

  • 我从未听说过具有此类功能的现有模块,但我会实现一个以隐藏现有列并将配置存储在浏览器 localStorage 中。
  • csy_dot_io 是完美的——如果你想把它作为答案——我会马上接受它
  • @Barry 谢谢并完成;)

标签: javascript php silverstripe modeladmin


【解决方案1】:

就像 cmets 中提到的那样,您可以看看这个模块,它应该为您提供所需的功能。

https://github.com/smindel/silverstripe-GridFieldAddOns/blob/master/docs/en/GridFieldUserColumns.md

来自文档:

只需将以下代码添加到您的 mysite/_config.php 的末尾

Member::add_extension('GridFieldUserColumnsExtension');
Object::useCustomClass('GridFieldConfig_RecordEditor', 'GridFieldConfig_ExtendedRecordEditor');
Object::useCustomClass('GridFieldConfig_RelationEditor', 'GridFieldConfig_ExtendedRelationEditor');

【讨论】:

    猜你喜欢
    • 2015-11-09
    • 2016-07-17
    • 2014-01-30
    • 1970-01-01
    • 1970-01-01
    • 2016-04-10
    • 1970-01-01
    • 2023-04-02
    • 1970-01-01
    相关资源
    最近更新 更多