Сервисы
=======

.. js:class:: 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 Object values:                   список выбранных элементов
        :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 Object values:         массив элементов списка вида ``[{value : "value1", title : "title1", selected : true}, {value : "value2", title : "title2"}]``
        :param HTMLElement anchor:    якорный компонент, к которому следует привязать всплывающее окно
        :param Number minWidth:       минимальная ширина всплывающего окна
        :param Function callback:     функция, которая будет вызвана после выбора элемента. В функцию будет
                                      передан один параметр - значение выбранного элемента, тип ``String``

        :ref:`widgets-examples-dropdown`

    .. js:function:: showPositionChooserDialog(values, multiSelect, filterUserId, filterDepartmentId, showVacant, locale, handler)

        Показать стандартный диалог выбора должности

        :param Object values:                   список выбранных элементов
        :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:                функция, которая будет вызвана после выбора значения

    .. js:function:: showRegisterLinkDialog(registry, handler)

        Показать стандартный диалог выбора записи реестра

        :param Object registry:                 реестр
        :param Function handler:                функция, которая будет вызвана после выбора значения

    .. js:function:: showUserChooserDialog(values, multiSelectable, isGroupSelectable, showWithoutPosition, filterPositionID, filterDepartmentID, locale, handler)

        Показать стандартный диалог выбора пользователя

        :param Object values:                   список выбранных элементов
        :param boolean multiSelectable:         позволять множественный выбор
        :param boolean isGroupSelectable:       позволять выбирать группы
        :param boolean showWithoutPosition:     отобразить не назначенных на должность
        :param String filterPositionID:         идентификатор должности для фильтрации элементов
        :param String filterDepartmentID:       идентификатор подразделения для фильтрации элементов
        :param String locale:                   локаль диалога
        :param Function handler:                функция, которая будет вызвана после выбора значения

    .. 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`
