Triggers

From Memento Database Wiki
Revision as of 05:48, 10 September 2016 by Admin (talk | contribs)
Jump to navigation Jump to search
« Page as of 2016-09-09, editions Mobile 4.0.0, Desktop 1.0.5 »

Триггер это скрипт, который запускается при определенных действиях или событиях. В качестве языка для написания скриптов используется JavaScript. Результатом выполнения скрипта может быть изменение или создание записи, выполнение http-запроса, создание файла, валидация данных и другие действия.

Создание триггера

Каждая библиотека может иметь несколько триггеров, чтобы открыть список триггеров зайдите в библиотеку, откройте меню и выберите пункт Триггеры.

Для создания триггера откройте список триггеров библиотеки и нажмите кнопку +. После этого необходимо выбрать момент запуска триггера и написать скрипт реализующий ваши потребности.

Момент запуска триггера

Момент запуска триггера определяется двумя параметрами:

Действие
это какая-либо выполняемая пользователем операция с записями.
Фаза действия
определяет более точный момент срабатывания триггера. Для каждого типа Действия доступны свои фазы.

Выполнение скрипта

Фаза в которую запускается триггер также определяет то, как будет выполняться скрипт - синхронно или асинхронно.

Синхронное выполнение скрипта
приложение приостановить взаимодействие с пользователем на время выполнения скрипта. Не рекомендуется в таких скриптах выполнять длительные операции.
Асинхронное выполнение скрипта
скрипт запускается в фоновом режиме, приложение не приостанавливает взаимодействие с пользователем. Обычно асинхронно выполняются скрипты в последних фазах действия.

Безопасность

Некоторые функции доступные из скриптов (операции с файлами, выполнение http-запросов, доступ к другим библиотекам) в целях безопасности требуют соответствующих разрешений. Эти разрешения пользователь должен установить вручную для каждой библиотеки отдельно.

Чтобы открыть диалог установки разрешений для скриптов - откройте список триггеров библиотеки и нажмите кнопку Щит на тулбаре. Установка разрешений должна выполняться на каждом устройстве отдельно. Выбранные разрешения не синхронизируются между устройствами.

Разрешения для скриптов

Libraries
Определяет какие библиотеки помимо родной будут доступны скрипту. Вы можете предоставить доступ ко всем библиотекам или выбрать определенные библиотеки. Данное разрешение требуется для функции libByName.
Read files
Предоставляет скрипту доступ на чтение файлов с запоминающего устройства. Данное разрешение требуется для функции file.
Write files
Предоставляет скрипту доступ на создание и изменение файлов в запоминающем устройстве. Данное разрешение требуется для функции file.
Network
Предоставляет скрипту право выполнять http запросы. Данное разрешение требуется для функции http.

Действия

Действие Фаза Выполнение
Создание записи открытие формы создания синхронное
перед сохранением записи синхронное
после сохранения записи асинхронное
Изменение записи открытие формы изменения записи синхронное
перед сохранением записи синхронное
после сохранения записи асинхронное
Удаление записи перед удалением записи синхронное
после удаления записи асинхронное
Открытие карточки записи перед отображением окна синхронное
после отображения окна асинхронное
Добавление записи в избранное перед операцией синхронное
после операции асинхронное
Удаление записи из избранного перед операцией синхронное
после операции асинхронное

Скрипты

Через скрипты можно получить доступ к записям библиотек, к файлам на устройстве, а также выполнять http-запросы. Некоторые функции требуют включения для библиотеки соответствующих разрешений.

Функции работы с библиотеками и записями