Удалить столбец "MIME-тип" из списка содержимого файлов
Я использую Script Adapter, передавая полезную нагрузку, чтобы получить контент для Списка содержимого из события "Поиск со значениями"
Когда Contend загружается в список контента, у меня есть собственное представление для их предварительного просмотра. Но если я щелкнул по столбцу MIME-типа, он открывает отдельное представление с отображенным средством просмотра
Поэтому мне нужно удалить этот столбец или сделать его недоступным для клика
1) Я передаю значения поиска в событие "Поиск по значениям" в списке содержимого, откуда я могу обработать загрузку содержимого списка содержимого, любое событие Dojo, которое я могу использовать?
2) С помощью Script Adapter я могу сделать это, не переходя к "фильтру ответов"
Редактировать:
Как приятно пояснил "Иво Йонкер" (в его ответе - "или попробуйте специально найти виджеты на своей странице" и с его примером кода)
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);
Я просто удаляю этот ряд. Еще раз спасибо и прекрасный блог, надеюсь, вы продолжаете публиковать больше замечательных статей.
1 ответ
Значения, передаваемые через событие "Поиск со значениями", в конечном итоге будут обрабатываться icm.pgwidget.contentlist.dijit.DocumentSearchHandler, который, в свою очередь, создает SearchTemplate для выполнения поиска (ecm.model.SearchTemplate.prototype.search). Одним из вариантов будет аспект / перед / вокруг запроса DocumentSearchHandler # для манипулирования результатами поиска и, таким образом, для удаления столбца.
Однако проводка не предоставляет никаких ручек для достижения этой цели для конкретной комбинации запрос-набор результатов, что позволяет либо исправить это в глобальном масштабе (icm.pgwidget.contentlist.dijit.DocumentSearchHandler.prototype #query), либо попытаться найти конкретный виджеты на вашей странице.
Лично, учитывая #2, я бы выбрал опцию responsefilter-опцию, если вы чувствуете, что глобальное решение не будет проблемой, или, в качестве альтернативы, я бы лично предпочел создать простой виджет ICM, который создает / реализует "простой" "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);
});