从文件内容列表中删除 "MIME type" 列
Remove "MIME type" column from Filent Content List
我正在使用脚本适配器,通过传递有效负载来争夺 "Search with values" 事件
中的 内容列表
当 Contend 加载到内容列表时,我有一个自定义视图来预览它们。但是如果我点击 MIME 类型列,它会打开一个带有映射查看器的单独视图
所以我需要删除此列或使其不可点击
1) 我正在将搜索值传递给内容列表的 "Search with values" 事件,我可以从哪里处理内容列表的竞争加载,我可以使用任何 Dojo 事件?
2) 使用 Script Adapter 我可以不用 "response filter"
编辑:
正如 "Ivo Jonker" 很好地解释的那样(在他的回答中 - "or try to specifically locate the widgets on your page" 和他的示例代码)
responsed = page.ContentList8.ecmContentList.getResultSet();
var cols = responsed.structure.cells[0];
for (i=cols.length-1; i>0; i--){
var col = cols[i];
if (col.field=="mimeTypeIcon")
cols.splice(i,1);
}
page.ContentList78.ecmContentList.setResultSet(responsed);
我只是删除了这一行。再次感谢可爱的博客,希望你继续发表更多精彩的文章。
通过 Search With Values 事件传递的值最终将由 icm.pgwidget.contentlist.dijit.DocumentSearchHandler 处理
依次创建一个 SearchTemplate 来执行搜索 (ecm.model.SearchTemplate.prototype.search)。一种选择是 aspect/before/around DocumentSearchHandler#query 来操纵搜索结果并通过这种方式删除该列。
然而,接线不提供任何句柄来实现特定查询-结果集组合,让您在全球范围内修复此问题 (icm.pgwidget.contentlist.dijit.DocumentSearchHandler.prototype#query),或者尝试专门定位您页面上的小部件。
就个人而言,考虑到#2,如果您认为全局解决方案不会成为问题,我会选择 responsefilter-option,或者我个人更愿意创建一个简单的 ICM 小部件 instantiates/implements a "plain" ecm.widget.listView.ContentList 并暴露出一条线来设置 ecm.model.Resultset.
然后您就可以在脚本适配器中创建自己的搜索查询、删除列并传递结果集。
脚本适配器可能是这样的:
var scriptadapter=this;
var queryParams={};
queryParams.query = "SELECT * FROM Document where id in /*your list*/";
queryParams.retrieveAllVersions = false;
queryParams.retrieveLatestVersion = true;
queryParams.repository = ecm.model.desktop.repositories[0];
queryParams.resultsDisplay = {
"sortBy": "{NAME}",
"sortAsc": true,
"columns": ["{NAME}"],
"honorNameProperty": true};
var searchQuery = new ecm.model.SearchQuery(queryParams);
searchQuery.search(function(response/*ecm.model.Resultset*/){
//remove the mimeTypeIcon
var cols = response.structure.cells[0];
for (i=cols.length-1; i>0; i--){
var col = cols[i];
if (col.field=="mimeTypeIcon")
cols.splice(i,1);
}
//emit the resultset to your new contentlist, be sure to block the regular synchrounous output of the scriptadapter
scriptadapter.onPublishEvent("icm.SendEventPayload",response);
//The contentlist wire would simply do contentlist.setResultSet(response);
});
我正在使用脚本适配器,通过传递有效负载来争夺 "Search with values" 事件
中的 内容列表当 Contend 加载到内容列表时,我有一个自定义视图来预览它们。但是如果我点击 MIME 类型列,它会打开一个带有映射查看器的单独视图
所以我需要删除此列或使其不可点击
1) 我正在将搜索值传递给内容列表的 "Search with values" 事件,我可以从哪里处理内容列表的竞争加载,我可以使用任何 Dojo 事件?
2) 使用 Script Adapter 我可以不用 "response filter"
编辑:
正如 "Ivo Jonker" 很好地解释的那样(在他的回答中 - "or try to specifically locate the widgets on your page" 和他的示例代码)
responsed = page.ContentList8.ecmContentList.getResultSet();
var cols = responsed.structure.cells[0];
for (i=cols.length-1; i>0; i--){
var col = cols[i];
if (col.field=="mimeTypeIcon")
cols.splice(i,1);
}
page.ContentList78.ecmContentList.setResultSet(responsed);
我只是删除了这一行。再次感谢可爱的博客,希望你继续发表更多精彩的文章。
通过 Search With Values 事件传递的值最终将由 icm.pgwidget.contentlist.dijit.DocumentSearchHandler 处理 依次创建一个 SearchTemplate 来执行搜索 (ecm.model.SearchTemplate.prototype.search)。一种选择是 aspect/before/around DocumentSearchHandler#query 来操纵搜索结果并通过这种方式删除该列。
然而,接线不提供任何句柄来实现特定查询-结果集组合,让您在全球范围内修复此问题 (icm.pgwidget.contentlist.dijit.DocumentSearchHandler.prototype#query),或者尝试专门定位您页面上的小部件。
就个人而言,考虑到#2,如果您认为全局解决方案不会成为问题,我会选择 responsefilter-option,或者我个人更愿意创建一个简单的 ICM 小部件 instantiates/implements a "plain" ecm.widget.listView.ContentList 并暴露出一条线来设置 ecm.model.Resultset.
然后您就可以在脚本适配器中创建自己的搜索查询、删除列并传递结果集。
脚本适配器可能是这样的:
var scriptadapter=this;
var queryParams={};
queryParams.query = "SELECT * FROM Document where id in /*your list*/";
queryParams.retrieveAllVersions = false;
queryParams.retrieveLatestVersion = true;
queryParams.repository = ecm.model.desktop.repositories[0];
queryParams.resultsDisplay = {
"sortBy": "{NAME}",
"sortAsc": true,
"columns": ["{NAME}"],
"honorNameProperty": true};
var searchQuery = new ecm.model.SearchQuery(queryParams);
searchQuery.search(function(response/*ecm.model.Resultset*/){
//remove the mimeTypeIcon
var cols = response.structure.cells[0];
for (i=cols.length-1; i>0; i--){
var col = cols[i];
if (col.field=="mimeTypeIcon")
cols.splice(i,1);
}
//emit the resultset to your new contentlist, be sure to block the regular synchrounous output of the scriptadapter
scriptadapter.onPublishEvent("icm.SendEventPayload",response);
//The contentlist wire would simply do contentlist.setResultSet(response);
});