Сервисы ======= .. js:data:: AS.SERVICES Функции проигрывателя форм, которые можно использовать или переопределять при разработке приложений. .. hint:: При разработке мобильного приложения, которое использует проигрыватель форм, хорошей практикой будет заменить вызов стандартных диалогов на нативные. .. warning:: При переопределении данных функций будет переопределено базовое поведение приложения, всех соответствующих компонентов. Например, переопределение :js:func:`showDepartmentChooserDialog` заменит диалог у всех компонентов выбора подразделения на форме. .. js:function:: showDatePicker(value, anchor, input, callback) Показать компонент выбора даты :param Date value: дата, которая будет отмечена как выбранная :param HTMLElement anchor: якорный компонент, к которому следует привязать компонент выбора даты :param HTMLElement input: компонент, которому будет передан фокус ввода после выбора даты :param Function callback: функция обратного вызова. В функцию будет передан один параметр - выбранная дата, тип ``Date`` :ref:`widgets-examples-datepicker` .. js:function:: showDepartmentChooserDialog(values, multiSelectable, filterUserID, filterPositionID, filterDepartmentID, filterChildDepartmentID, locale, handler) Показать стандартный диалог выбора подразделения :param Array values: список выбранных элементов, каждый элемент имет следующую структуру .. code-block:: js { departmentId: "идентификатор подразделения", // обязательное поле departmentName: "название подразделения", // обязательное поле parentName: "название подразделения, которому принадлежит должность", hasChildren: "имеются ли дочерние подразделения", status: "текст статуса", statusColor: "цвет статуса" } :param boolean multiSelectable: позволять множественный выбор :param String filterUserID: идентификатор пользователя для фильтрации элементов :param String filterPositionID: идентификатор должности для фильтрации элементов :param String filterDepartmentID: идентификатор подразделения для фильтрации элементов :param String filterChildDepartmentID: идентификатор дочернего подразделения для фильтрации элементов :param String locale: локаль диалога :param Function handler: функция обратного вызова, в которую будет передан массив выбранных элементов, в таком же формате как и передается в метод .. js:function:: showDropDown(values, anchor, minWidth, callback) Показать всплывающее окно с выбором элементов :param Array values: массив элементов списка, каждый элемент имет следующую структуру .. code-block:: js { value: "значение", title: "подпись", selected: true } :param HTMLElement anchor: якорный компонент, к которому следует привязать всплывающее окно :param Number minWidth: минимальная ширина всплывающего окна (если не задано, то ширина будет высчитываться исходя из едемента anchor) :param Function callback: функция обратного вызова, в которую будет передано выбранное значение ``String`` :ref:`widgets-examples-dropdown` .. js:function:: showPositionChooserDialog(values, multiSelect, filterUserId, filterDepartmentId, showVacant, locale, handler) Показать стандартный диалог выбора должности :param Object values: список выбранных элементов .. code-block:: js { elementID: "идентификатор должности", //обязательный элемент elementName: "название должности", //обязательный элемент departmentName: "название подразделения, которому принадлежит должность", status: "текст статуса", statusColor: "цвет статуса" } :param boolean multiSelect: позволять множественный выбор :param String filterUserId: идентификатор пользователя для фильтрации элементов :param String filterDepartmentId: идентификатор подразделения для фильтрации элементов :param boolean showVacant: отобразить только вакантные должности :param String locale: локаль диалога :param Function handler: функция обратного вызова, в которую будет передан массив выбранных элементов, в таком же формате как и передается в метод .. js:function:: showProjectLinkDialog(handler) Показать стандартный диалог выбора портфеля/проекта :param Function handler: функция обратного вызова, в которую будет передано единственное значение .. code-block:: js { actionID: "идентификатор проекта", name: "название", elementType: Number, // 256 - план, 128 - портфель } .. js:function:: showRegisterLinkDialog(registry, handler) Показать стандартный диалог выбора записи реестра :param Object registry: реестр, объект результат вызова апи ``rest/api/registry/info`` :param Function handler: Функция обратного вызова, в которую будет передан идентификатор выбранного документа .. js:function:: showUserChooserDialog(values, multiSelectable, isGroupSelectable, showWithoutPosition, filterPositionID, filterDepartmentID, locale, handler) Показать стандартный диалог выбора пользователя :param Object values: список выбранных элементов, имеющих следующую структуру .. code-block:: js { personID: "идентификатор пользователя", // обязательное поле personName: "название пользователя", // обязательное поле positionName: "название должности пользователя (если существует)", customFields: { calendarColor: "цвет статуса", calendarStatusLabel: "текст статуса" } } :param boolean multiSelectable: позволять множественный выбор :param boolean isGroupSelectable: позволять выбирать группы :param boolean showWithoutPosition: отобразить не назначенных на должность :param String filterPositionID: идентификатор должности для фильтрации элементов :param String filterDepartmentID: идентификатор подразделения для фильтрации элементов :param String locale: локаль диалога :param Function handler: Функция обратного вызова, в которую будет передан массив элементов, имеюущих ту же структуру что и поле values .. js:function:: showWaitWindow() Показать окно ожидания .. warning:: Если приложение запущено внутри Synergy (например ВМК), то при вызове данного метода будет показано стандартное окно ожидания |окно-ожидания| .. |окно-ожидания| image:: ../_static/img/forms/synergy-wait.gif В противном случае метод необходимо реализовать самостоятельно! :ref:`widgets-examples-waitwindow` .. js:function:: hideWaitWindow() Скрыть окно ожидания :ref:`widgets-examples-waitwindow` .. js:function:: unAuthorized() Функция, которая будет вызвана в случае неуспешной авторизации при вызове методов REST API Synergy. Приложения могут использовать данный метод для реализации обработки случаев некорректного ввода логина или пароля пользователя. :ref:`widgets-examples-unauthorized`