2016-09-18 4 views
0

Я недавно начал развиваться с aikau в акции alfresco. Я хочу получить функциональность, в которой я могу экспортировать результаты поиска в файл CSV.aikau - реализовать результаты поиска результатов поиска

Для этого я могу изменить внутренний веб-скрипт репозитория для возврата данных csv. Теперь, на открытии alfresco - я смог показать ссылку на экспорт, добавив новый виджет в FCTSRCH_TOP_MENU_BAR. Для отображения этой ссылки я использовал alfresco/renderers/PropertyLink. Теперь недостающая часть для меня - как я могу вызвать веб-скрипт поиска, передающий дополнительный параметр format = csv, и наряду с этим передают все параметры запроса, используемые для получения результатов.

Я застрял с этим. Если я использую publishTopic как ALF_CRUD_GET_ALL и укажите URL-адрес там, он вызывает образец веб-скрипта (я создал для возврата образца ответа csv) и возвращает ответ. Однако csv не является загружаемым ответом. Я застрял здесь, чтобы узнать, как добиться эффективности экспорта csv для результатов поиска.

Было бы здорово, если бы кто-нибудь из вас мог помочь мне здесь и предоставить ваши рекомендации/предложения.

ответ

0

Этот blog post содержит пример того, как вы можете настраивать страницу поиска в разделе «Поделиться». Хотя он конкретно касается изменения поисковых запросов, базовый подход к расширению более или менее тот же, что и вы хотите изменить данные, которые используются для отправки запроса XHR. Я думаю, что основное различие здесь в том, что вам может понадобиться сделать больше глубоких обновлений для службы - в частности, в отношении switch statement, который используется для создания расширенного объекта поискового запроса.

Если вы расширили или заменили API REST по умолчанию, я бы предположил, что вам нужно будет вызвать тот же URL-адрес, но если вы предоставили полностью новый REST API для возврата CSV-данных, вам также понадобится для изменения URL-адреса, используемого службой.

С точки зрения предоставления ссылки для скачивания контента, который мы ранее реализовали, в DragAndDropModelCreationService (см. Функцию generateDownload), но это работает только с Chrome из-за ограничений безопасности и создания файлов для загрузки.

Ваш лучший выбор - это временно сохранить содержимое CSV в репозитории в скрытом месте, а затем использовать стандартные ссылки для загрузки, чтобы он мог быть загружен - это было бы более сложным, но обеспечило бы лучшую поддержку кросс-браузера. Что-то подобное сделано для действия «Загрузить как ZIP».

+0

Благодарим вас за ответ Дэйв. Мне все еще мало что непонятно и любезно извините мое невежество. Я не мог на 100% следовать тому, что вы упомянули выше. Я передаю ссылку на экспорт с помощью 'alfresco/renderers/PropertyLink'. Я не уверен, как отправить запрос XHR для поиска формата веб-скрипта = csv. Если я просто использую тему публикации как «ALF_CRUD_GET_ALL», я не уверен, как передать параметры поиска, когда щелкнули ссылку на экспорт. Если у вас есть фрагмент кода/пример, пожалуйста, помогите мне разобраться. – AlfrescoNewDeveloper

+0

Я думаю, что, может быть, ваш вопрос нуждается в каком-то уточнении ... где вы создаете PropertyLink? Это показано в результатах поиска? Из вашего вопроса, похоже, вы обновляете API REST-репозитория для возврата CSV-данных? У вас появился новый API? Возможно, вы можете обеспечить прогулку в прецеденте. Если вы обновляете существующую страницу поиска, вы определенно не хотите использовать 'ALF_CRUD_GET_ALL' - вам нужно делать то, что делает' SearchService', что больше подходит для поиска. Опять же, дополнительная информация в квесте поможет получить лучший ответ. –

+0

Несомненно. Позвольте мне попытаться предоставить вам то, что именно я пытаюсь достичь. Я настраиваю страницу фасетного поиска, в которой я пытаюсь добавить ссылку, в которой отображаются результаты поиска (в основном, рядом с найденными результатами X). Для показа ссылки я использовал 'alfresco/renderers/PropertyLink'. Я настроил веб-скрипт OOTB repo для возврата формата csv в качестве ответа. Теперь одна часть, которую мне не хватает, связана со ссылкой на странице поиска, как я могу вызвать поисковый веб-скрипт, передающий формат = csv, а также все критерии поиска, которые были использованы для первоначального получения результатов. Надеюсь, это прояснится. – AlfrescoNewDeveloper

0

ОК, с дополнительной информацией при условии, я хотел бы сделать следующее ...

Информации о процессе добавления виджетов на страницу поиска достаточно хорошо описан here (хотя вы не добавляя вид, вы можете следить за тем, как добавить новый PropertyLink после виджета с идентификатором «FCTSRCH_RESULTS_COUNT_LABEL»).

Подход, который я хотел бы принять, будет включать дополнительную настраиваемую службу на странице, которая подписывается на тему «ALF_RETRIEVE_DOCUMENTS_REQUEST_SUCCESS» (которая публикуется при завершенном поиске). Он должен сохранять ответ поиска в переменной при подготовке пользователей к щелчку на PropertyLink.

Эта настраиваемая услуга также должна подписаться на тему, опубликованную PropertyLink (называемую «DOWNLOAD_CSV»). Затем эта настраиваемая служба может сгенерировать загрузку файлов с использованием подхода, описанного в моем предыдущем ответе, с использованием данных CSV, которые будут предоставлены в полезной нагрузке. Как я уже сказал, это может работать только с некоторыми браузерами из-за соображений безопасности.

Если ваш пользовательский поиск WebScript смог сохранить CSV-данные в качестве узла в репозитории, тогда вы можете просто предоставить NodeRef данных CSV в ответе на поиск, а PropertyLink может просто опубликовать тему «ALF_DOWNLOAD» для DocumentService для обработки загрузки.

Попытка создать файл для загрузки на стороне клиента станет проблемой для большинства браузеров, которые, как я думаю.

+0

Спасибо, Дейв, я попытаюсь его реализовать. – AlfrescoNewDeveloper

Смежные вопросы