Удалить столбец "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 ответ

Решение
  1. Значения, передаваемые через событие "Поиск со значениями", в конечном итоге будут обрабатываться icm.pgwidget.contentlist.dijit.DocumentSearchHandler, который, в свою очередь, создает SearchTemplate для выполнения поиска (ecm.model.SearchTemplate.prototype.search). Одним из вариантов будет аспект / перед / вокруг запроса DocumentSearchHandler # для манипулирования результатами поиска и, таким образом, для удаления столбца.

  2. Однако проводка не предоставляет никаких ручек для достижения этой цели для конкретной комбинации запрос-набор результатов, что позволяет либо исправить это в глобальном масштабе (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);
});
Другие вопросы по тегам