在 Apostrophe CMS 中自定义件管理模式
Customizing pieces management modal in Apostrophe CMS
我正在使用 apostrophe-samples
Github project to do some tests regarding the pieces modal customization. So far, I've added filters as explained in the tutorials,并添加了在 apostrophe-pieces
源代码中看到的列(恕我直言,我认为添加到教程中会是一个有趣的主题)。
但是,我有一些疑问,例如 specialists joinByArray
products 和 产品 joinByArrayReverse
专家:
- 可以通过 UI 以任何方式对列进行排序(例如,通过单击 table header 启用排序的选项)还是完全依赖于作品的
defaultSort
?
- 是否可以将标题以外的其他字段添加为过滤器?我能够添加
_specialists
作为产品过滤器,显示标题,但我想知道是否可以使用不同的字段。
- 是否可以将 reverse 连接添加为过滤器?如前所述,我可以添加
_specialists
作为产品过滤器,但反之则不行。
- 可以将 joins/reverse 联接添加为列吗?如果我在 I 列中添加“_specialists”,我会显示一个类似于
[Object]
的数组,而不是过滤器中的标题。
"Can columns be sorted in any way through the UI (e.g., an option that enables sorting by clicking the table header) or does it rely entirely on the piece's defaultSort?"
目前没有,没有。目的是提供此功能,但到目前为止尚未构建,令人惊讶的是,尽管它肯定是一个常见功能,但它并不是我们自己的客户的迫切需求。
它将对社区做出很好的贡献,或者可以通过撇号企业支持进行赞助。可能不会花很长时间添加。
"Can other fields other than the title be added as filters? I was able to add _specialists as products filter, displaying the title, but I'm wondering if a different field could be used."
目前还没有,但这将是一个简单的 PR。这是 relevant line of code in apostrophe-schemas/index.js。您可以在此处访问 field
对象,因此如果设置了 field.filterLabelField
,您可以轻松地执行 PR 以查看 doc
的不同 属性,比方说,仍在下降回到 title
.
"Can reverse joins be added as filters? As said, I was able to add _specialists as products filter, but not the other way around."
目前没有。在 lib/modules/apostrophe-schemas/index.js
中,您会看到目前没有 addFilter
属性 这些。实施是可能的。该代码需要在反面获取所选文档,获取它加入的 ID 或 ID 数组,然后链接一个 .and({ $in... })
调用。
"Can joins/reverse joins be added as columns? If I add '_specialists' as a column, I get displayed an array like [Object], not the title as in the filter."
今天支持这个。您需要为该列设置一个 partial
属性。这只是一个接受列值和 returns 字符串的函数。例如:
addColumns: [
{
name: '_specialists',
partial: specialists => specialists.map(specialist => specialist.title).join(' ')
}
]
对于这种情况,最好有一个更好的默认行为,而不是假设可以将其显示为字符串。
我正在使用 apostrophe-samples
Github project to do some tests regarding the pieces modal customization. So far, I've added filters as explained in the tutorials,并添加了在 apostrophe-pieces
源代码中看到的列(恕我直言,我认为添加到教程中会是一个有趣的主题)。
但是,我有一些疑问,例如 specialists joinByArray
products 和 产品 joinByArrayReverse
专家:
- 可以通过 UI 以任何方式对列进行排序(例如,通过单击 table header 启用排序的选项)还是完全依赖于作品的
defaultSort
? - 是否可以将标题以外的其他字段添加为过滤器?我能够添加
_specialists
作为产品过滤器,显示标题,但我想知道是否可以使用不同的字段。 - 是否可以将 reverse 连接添加为过滤器?如前所述,我可以添加
_specialists
作为产品过滤器,但反之则不行。 - 可以将 joins/reverse 联接添加为列吗?如果我在 I 列中添加“_specialists”,我会显示一个类似于
[Object]
的数组,而不是过滤器中的标题。
"Can columns be sorted in any way through the UI (e.g., an option that enables sorting by clicking the table header) or does it rely entirely on the piece's defaultSort?"
目前没有,没有。目的是提供此功能,但到目前为止尚未构建,令人惊讶的是,尽管它肯定是一个常见功能,但它并不是我们自己的客户的迫切需求。
它将对社区做出很好的贡献,或者可以通过撇号企业支持进行赞助。可能不会花很长时间添加。
"Can other fields other than the title be added as filters? I was able to add _specialists as products filter, displaying the title, but I'm wondering if a different field could be used."
目前还没有,但这将是一个简单的 PR。这是 relevant line of code in apostrophe-schemas/index.js。您可以在此处访问 field
对象,因此如果设置了 field.filterLabelField
,您可以轻松地执行 PR 以查看 doc
的不同 属性,比方说,仍在下降回到 title
.
"Can reverse joins be added as filters? As said, I was able to add _specialists as products filter, but not the other way around."
目前没有。在 lib/modules/apostrophe-schemas/index.js
中,您会看到目前没有 addFilter
属性 这些。实施是可能的。该代码需要在反面获取所选文档,获取它加入的 ID 或 ID 数组,然后链接一个 .and({ $in... })
调用。
"Can joins/reverse joins be added as columns? If I add '_specialists' as a column, I get displayed an array like [Object], not the title as in the filter."
今天支持这个。您需要为该列设置一个 partial
属性。这只是一个接受列值和 returns 字符串的函数。例如:
addColumns: [
{
name: '_specialists',
partial: specialists => specialists.map(specialist => specialist.title).join(' ')
}
]
对于这种情况,最好有一个更好的默认行为,而不是假设可以将其显示为字符串。