Продолжая рубрику Code Snippets, хочу немного выйти за рамки и описать разработку веб-модуля
DIRECTUM, реализующего интеграцию с
Dropbox, по шагам.
Данный пример реализован на версии
5.0, но вполне пригоден для использования в ранних версиях (при соответствующих доработках).
Основной идеей расширения является встраивание drop-ins в веб-доступ. Проект затрагивает следующие разделы расширения:
Для начала покажу, что в итоге получилось:
Для использования drop-ins на вашем сайте (веб-клиенте DIRECTUM) необходимо иметь ключ приложения (так называемый App key). Для того, чтобы его получить необходимо
зарегистрировать новое приложение:
Так как будем использовать drop-ins, то выбираем "Drop-ins app".
После создания приложения необходимо указать домен, с которого будет происходить общение с
Dropbox.
Далее можно указать иконку и информацию о приложении и домен
веб-клиента DIRECTUM.
Здесь важно отметить, что сервер веб-доступа должен иметь DNS-имя, по которому он доступен из Internet с анонимной аутентификацией.
Данное решение не подойдет в следующих случаях:
Итогом будет красивый полноценный проект:
В файле расширения необходимо создать корневую запись:
Подробнее о конфигурировании файле можно прочесть в справке.
Saver реализует экспорт файла из веб-клента в Dropbox, именно он накладывает большинство ограничений, описанных выше. Причиной является то, что для загрузки файла мы должны предоставить сервису Dropbox прямую ссылку, по которой он сможет загрузить файл.
N.B. Ссылка для скачивания файла прямая и без аутентификации. Для использования в продакшн среде необходимо продумать обеспечение безопасности использования решения!!
Все взаимодействие разделено на следующие шаги:
В целях безопасности реализовано следующее:
Так же необходимо использовать HTTPS соединение.
Для возможности использовать свой JS-файл во всех карточках документов, в файле расширения добавлено:
Card type="EDocument" jsfile="/js/WebAccess.Extensions.Dirins.js"
Создание кнопки экспорта документа будет производиться в JS-файле, для этого используется клиентская ОМ веб-клиента 5.0:
// Создание новой группы в тулбаре и добавление кнопки //var group = WA.CR.toolBar.groups.create("DIRDROP"); // Или использование имеющейся var group = WA.CR.toolBar.groups["TOOLBAR_SEND_GROUP"]; var button = group.createButton("DROPEXPORT"); button.setLabel(L("DROPINS_EXPORT")) .setTooltip(L("DROPINS_EXPORT")) .setIcon("/App_Sprites/SidebarAndExtensions/drop_export.png"); button.click(DropIns.ExportFile);
Chooser
Реализует механизм создания новой версии документа DIRECTUM путем импорта файла из
Dropbox.
Для загрузки файла из Dropbox также понадобится собственный сервис и возможность внешних запросов с сервера веб-доступа к DIRECTUM.
Для начала разработки и компиляции необходимо добавить в References проекта следующие сборки сервера веб-доступа:
И заменить appKey в файле WebAccess.Extensions.Dirins.js на ваш
//Ключ приложения Dropbox var appKey = '0qcflj2scrg6p6o';
Установка веб-модуля:
Благодаря прекрасной новой возможности работы VisualStudio с Git исходники выкладываю по человечески, а не приложенным zip-архивом. Надеюсь, что данный подход предоставления исходного кода позволит развить его.
P.S. Исходя из прошлого опыта, хочу отметить, что данное решение НЕ является готовым решением для использования в продакшн-среде, может содержать ошибки и неудовлетворять требованиям безопасности.
Репка на bitbucket: https://bitbucket.org/Kiss_Lee_Zin/webaccess.extensions.dropbox.dropins/wiki/Home
Авторизуйтесь, чтобы написать комментарий