Triggers: Difference between revisions
No edit summary |
No edit summary |
||
Line 100: | Line 100: | ||
:Получить все записи библиотеки. | :Получить все записи библиотеки. | ||
:Результат: Array[Entry] Массив записей. Записи отсортированы по времени их создания - от новых к старым. | :Результат: Array[Entry] Массив записей. Записи отсортированы по времени их создания - от новых к старым. | ||
=====find(query)===== | |||
:Поиск записей в библиотеки по значениям полей. Поиск аналогичен [[Working with library entries#EntrySearch|поиску через интерфейс]] программы. | |||
:Параметры: query - строка поиска. | |||
:Результат: Array[Entry] Массив найденных записей. Записи отсортированы по времени их создания - от новых к старым. | |||
=====findByKey(name)===== | |||
:Поиск записи в библиотеки по имени. Для библиотеки должен быть включен параметр ''Уникальные имена''. | |||
:Параметры: name - имя записи. | |||
:Результат: Объект Entry. | |||
=====create(values)===== | |||
:Создание новой записи в библиотеке. | |||
:Параметры: values - объект класса [https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object'''Object'''] содержащий значения полей. | |||
:Результат: Объект Entry, созданная запись. | |||
====Свойства==== | |||
;title : Название библиотеки. | |||
===Объект Entry=== | |||
Этот объект является записью библиотеки и предоставляет возможность получать и устанавливать значения полей. | |||
====Методы==== | |||
=====set(name , value)===== | |||
:Установить значение поля. После вызова метода сразу же происходит запись значения в базу данных. | |||
:Параметры: name - имя поля, value - значение поля. | |||
=====field(name)===== | |||
:Получить значение поля | |||
:Параметры: name - имя поля | |||
:Результат: значение поля, тип результата зависит от типа поля. | |||
====Свойства==== | |||
;title : Имя записи. | |||
;description : Описание записи. | |||
;favorites : Возвращает true - если запись находится в избранном | |||
;deleted : Возвращает true - если запись удалена (находится в корзине). | |||
===Объект DefaultEntry=== | |||
Шаблон со значениями по умолчанию для создания новой записи. | |||
====Методы==== | |||
=====set(name , value)===== | |||
:Установить значение поля. | |||
:Параметры: name - имя поля, value - значение поля. | |||
===Примеры=== | ===Примеры=== |
Revision as of 07:36, 10 September 2016
Триггер это скрипт, который запускается при определенных действиях или событиях. В качестве языка для написания скриптов используется JavaScript. Результатом выполнения скрипта может быть изменение или создание записи, выполнение http-запроса, создание файла, валидация данных и другие действия.
Создание триггера
Каждая библиотека может иметь несколько триггеров, чтобы открыть список триггеров зайдите в библиотеку, откройте меню и выберите пункт Триггеры.
Для создания триггера откройте список триггеров библиотеки и нажмите кнопку +. После этого необходимо выбрать момент запуска триггера и написать скрипт реализующий ваши потребности.
Момент запуска триггера
Момент запуска триггера определяется двумя параметрами:
- Действие
- это какая-либо выполняемая пользователем операция с записями.
- Фаза действия
- определяет более точный момент срабатывания триггера. Для каждого типа Действия доступны свои фазы.
Выполнение скрипта
Фаза в которую запускается триггер также определяет то, как будет выполняться скрипт - синхронно или асинхронно.
- Синхронное выполнение скрипта
- приложение приостановить взаимодействие с пользователем на время выполнения скрипта. Не рекомендуется в таких скриптах выполнять длительные операции.
- Асинхронное выполнение скрипта
- скрипт запускается в фоновом режиме, приложение не приостанавливает взаимодействие с пользователем. Обычно асинхронно выполняются скрипты в последних фазах действия.
Безопасность
Некоторые функции доступные из скриптов (операции с файлами, выполнение http-запросов, доступ к другим библиотекам) в целях безопасности требуют соответствующих разрешений. Эти разрешения пользователь должен установить вручную для каждой библиотеки отдельно.
Чтобы открыть диалог установки разрешений для скриптов - откройте список триггеров библиотеки и нажмите кнопку Щит на тулбаре. Установка разрешений должна выполняться на каждом устройстве отдельно. Выбранные разрешения не синхронизируются между устройствами.
Разрешения для скриптов
- Libraries
- Определяет какие библиотеки помимо родной будут доступны скрипту. Вы можете предоставить доступ ко всем библиотекам или выбрать определенные библиотеки. Данное разрешение требуется для функции libByName.
- Read files
- Предоставляет скрипту доступ на чтение файлов с запоминающего устройства. Данное разрешение требуется для функции file.
- Write files
- Предоставляет скрипту доступ на создание и изменение файлов в запоминающем устройстве. Данное разрешение требуется для функции file.
- Network
- Предоставляет скрипту право выполнять http запросы. Данное разрешение требуется для функции http.
Действия
Действие | Фаза | Выполнение |
---|---|---|
Создание записи | открытие формы создания | синхронное |
перед сохранением записи | синхронное | |
после сохранения записи | асинхронное | |
Изменение записи | открытие формы изменения записи | синхронное |
перед сохранением записи | синхронное | |
после сохранения записи | асинхронное | |
Удаление записи | перед удалением записи | синхронное |
после удаления записи | асинхронное | |
Открытие карточки записи | перед отображением окна | синхронное |
после отображения окна | асинхронное | |
Добавление записи в избранное | перед операцией | синхронное |
после операции | асинхронное | |
Удаление записи из избранного | перед операцией | синхронное |
после операции | асинхронное |
Библиотеки и записи
Глобальные Функции
entry()
- Получить запись в контексте которой происходит выполнение скрипта. Т.е. если скрипт выполняется на действие Изменение записи, то данная функция возвращает изменяемую запись.
- Функция доступа для всех действий и фаз выполнения, за исключением "Создание записи - открытие формы создания", для данного действия используйте функцию entryDefault.
- Результат: Объект Entry, текущая запись.
entryDefault()
- Получить объект для установки значений по умолчанию для еще не созданной записи. Функция доступна для действия Создание записи и фазы выполнения Открытие формы создания.
- Результат: Объект DefaultEntry.
lib()
- Получить библиотеку в контексте которой происходит выполнение скрипта.
- Результат: Объект Library, текущая библиотека.
libByName(name)
- Найти библиотеку по имени. В настройках безопасности должно быть установлено разрешение на использование получаемой библиотеки.
- Результат: Объект Library, найденная библиотека.
Объект Library
Через этот объект осуществляется доступ к записям библиотеки. Можно работать с текущей библиотекой - lib() или с любой другой библиотекой в базе данных - libByName(). Помимо функций получения записей данный объект предоставляет возможность создания новой записи.
Методы
entries()
- Получить все записи библиотеки.
- Результат: Array[Entry] Массив записей. Записи отсортированы по времени их создания - от новых к старым.
find(query)
- Поиск записей в библиотеки по значениям полей. Поиск аналогичен поиску через интерфейс программы.
- Параметры: query - строка поиска.
- Результат: Array[Entry] Массив найденных записей. Записи отсортированы по времени их создания - от новых к старым.
findByKey(name)
- Поиск записи в библиотеки по имени. Для библиотеки должен быть включен параметр Уникальные имена.
- Параметры: name - имя записи.
- Результат: Объект Entry.
create(values)
- Создание новой записи в библиотеке.
- Параметры: values - объект класса Object содержащий значения полей.
- Результат: Объект Entry, созданная запись.
Свойства
- title
- Название библиотеки.
Объект Entry
Этот объект является записью библиотеки и предоставляет возможность получать и устанавливать значения полей.
Методы
set(name , value)
- Установить значение поля. После вызова метода сразу же происходит запись значения в базу данных.
- Параметры: name - имя поля, value - значение поля.
field(name)
- Получить значение поля
- Параметры: name - имя поля
- Результат: значение поля, тип результата зависит от типа поля.
Свойства
- title
- Имя записи.
- description
- Описание записи.
- favorites
- Возвращает true - если запись находится в избранном
- deleted
- Возвращает true - если запись удалена (находится в корзине).
Объект DefaultEntry
Шаблон со значениями по умолчанию для создания новой записи.
Методы
set(name , value)
- Установить значение поля.
- Параметры: name - имя поля, value - значение поля.