【问题标题】:Customizing pieces management modal in Apostrophe CMS在 Apostrophe CMS 中自定义件管理模式
【发布时间】:2019-03-16 02:00:50
【问题描述】:

我正在使用apostrophe-samples Github project 来做一些关于部件模态定制的测试。到目前为止,我已经添加了过滤器as explained in the tutorials,并添加了在apostrophe-pieces 源代码中看到的列(我认为添加到教程中会是一个有趣的话题,恕我直言)。

但是,我有几个疑问,例如 specialists joinByArray productsproducts joinByArrayReverse 专家

  • 是否可以通过 UI 以任何方式对列进行排序(例如,通过单击表格标题来启用排序的选项)还是完全依赖于作品的 defaultSort
  • 是否可以添加标题以外的其他字段作为过滤器?我可以将 _specialists 添加为产品过滤器,显示标题,但我想知道是否可以使用其他字段。
  • 可以将reverse 联接添加为过滤器吗?如前所述,我可以将 _specialists 添加为产品过滤器,但反之则不行。
  • 可以将连接/反向连接添加为列吗?如果我在列中添加“_specialists”,则会显示一个类似 [Object] 的数组,而不是过滤器中的标题。

【问题讨论】:

  • 您能否澄清您关于 _specialists 作为产品过滤器的问题?听起来您已成功将 _specialists 添加为产品过滤器(不是标题),而您的问题实际上是关于该过滤器的工作原理和显示内容,而不是选择要过滤的产品标题以外的字段。 .?
  • 关于 _specialists 作为产品过滤器,我在products 索引页添加了以下代码:addFilters: [{ name: '_specialists', label: 'Specialists' }]。过滤器有效,但它会自动在 dropwodn 中显示专家标题。我只是想知道是否可以将与联接而不是标题不同的字段用作过滤器。我希望我现在能更好地解释自己。
  • 另一方面,将addFilters: [{ name: '_products', label: 'Products' }] 添加到specialists 索引(这意味着通过反向连接进行过滤)不起作用。

标签: apostrophe-cms


【解决方案1】:

“是否可以通过 UI 以任何方式对列进行排序(例如,通过单击表格标题启用排序的选项)还是完全依赖于片段的默认排序?”

目前没有,没有。目的是提供此功能,但到目前为止尚未构建,令人惊讶的是,它并不是我们自己的客户的迫切需求,尽管它肯定是一个共同的功能。

它将为社区做出良好的贡献,或者可以通过撇号企业支持来赞助。可能不会花很长时间才能添加。

“可以将除标题以外的其他字段添加为过滤器吗?我可以将 _specialists 添加为产品过滤器,显示标题,但我想知道是否可以使用其他字段。”

目前还没有,但这会是一个简单的 PR。这是relevant line of code in apostrophe-schemas/index.js。您可以在此处访问field 对象,因此如果设置了field.filterLabelField,您可以轻松地进行PR 以查看doc 的不同属性,假设仍然回退到title

“可以将反向联接添加为过滤器吗?如上所述,我可以将 _specialists 添加为产品过滤器,但反之则不行。”

目前没有。在lib/modules/apostrophe-schemas/index.js 中,您会看到这些当前没有addFilter 属性。实施是可能的。代码需要在反面获取所选文档,获取它加入的 id 或 id 数组,并链接 .and({ $in... }) 调用。

“可以将连接/反向连接添加为列吗?如果我将 '_specialists' 添加为列,我会显示一个类似 [Object] 的数组,而不是过滤器中的标题。”

今天支持这个。您需要为该列设置 partial 属性。这只是一个接受列值并返回字符串的函数。例如:

addColumns: [
  {
    name: '_specialists',
    partial: specialists => specialists.map(specialist => specialist.title).join(' ')
  }
]

对于这种情况,最好有一个更好的默认行为,而不是假设可以将其显示为字符串。

【讨论】:

  • 感谢您的详细解释,一如既往!我会考虑您对可能 PR 的难度评估。
猜你喜欢
  • 2023-04-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多