«Объекты Synergy»
=================

Тип данных «Пользователи»
-------------------------

.. js:class:: AS.FORMS.UserLinkView

    Отображение компонента, наследует :js:class:`AS.FORMS.View`

    .. code-block:: js

        {
          "id": "userlink-cmp",
          "type": "entity",
          "style": {},
          "config": {
            "entity": "users",                            // тип данных
            "read-only": false,                           // заблокировать от изменений пользователем
            "depends": "positionlink-cmp",                // связь с компонентом
            "fill-with-current": true,                    // заполнять создающим пользователем
            "custom": true,                               // разрешать ввод произвольного текста
            "multi": true,                                // позволять мультивыбор
            "groups": true,                               // отображать группы
            "show-without-position": true,                // отображать не назначенных на должность
            "editable-label": true,                       // разрешать редактировать label выбранного элемента
            "customNameFormats": {                        // изменить формат отображения ФИО в зависимости от языка системы
                "ru": "${l} ${f.short}.${p.short.dot}",   // русский язык
                "kz": "${l} ${f.short}.${p.short.dot}",   // казахский язык
                "en": "${l} ${f.short}.${p.short.dot}"    // английский язык
            },
            "script": ""
          },
          "fromHistory": true,
          "fullId": "userlink-cmp",
          "required": true
        }

--------------------------------------------------------------------------------

.. js:class:: AS.FORMS.UserLinkModel

    Модель компонента, наследует :js:class:`AS.FORMS.Model`

    .. code-block:: js

        {
          "id": "userlink-cmp",
          "type": "entity",
          "value": "syndevel s., DEVDEP, ARTA, Someone",                                                    // значение компонента
          "key": "cbc93e4a-b3b6-4b5d-8b93-7692b32e3ceb;63e8d268-a135-4fa9-91d2-ed5d0024c93b;g-131;text-0",  // список id выбранных пользователей, разделенных «;»
          "formatVersion": "V1",
          "manualTags": {"63e8d268-a135-4fa9-91d2-ed5d0024c93b": "DEVDEP"}                                  // пользователи, для которых были изменены названия вручную
        }

    .. note:: Идентификаторы могут иметь приставки:

              * без приставки - пользователь
              * g - группа (g-идентификатор_группы)
              * text - произвольный текст (text-номер_просто_число)

    .. js:function:: getSelectedIds()

        Получить идентификаторы выбранных пользователей

        :returns: ``[string]``

    .. js:function:: getValue()

        Получить значение

        :returns: ``object``

                  .. code-block:: js

                    {
                      personID: "идентификатор пользователя",
                      personName: "название пользователя",
                      positionName: "название должности пользователя (если существует)",
                      customFields: {
                        calendarColor: "цвет статуса",
                        calendarStatusLabel: "текст статуса"
                      }
                    }

    .. js:function:: setValue(value)

        :param object value:

                            .. code-block:: js

                                {
                                  personID: "идентификатор пользователя",
                                  personName: "название пользователя",
                                  positionName: "название должности пользователя (если существует)",
                                  customFields: {
                                    calendarColor: "цвет статуса",
                                    calendarStatusLabel: "текст статуса"
                                  }
                                }

Тип данных «Должности»
----------------------

.. js:class:: AS.FORMS.PositionLinkView

    Отображение компонента, наследует :js:class:`AS.FORMS.View`

    .. code-block:: js

        {
          "id": "positionlink-cmp",
          "type": "entity",
          "style": {},
          "config": {
            "entity": "positions",            // тип данных
            "read-only": false,               // заблокировать от изменений пользователем
            "script": "",                     // код скрипта
            "depends": "departmentlink-cmp",  // связь с компонентом
            "locale": "kz",                   // язык
            "fill-with-current": true,        // заполнять первой должностью создающего пользователя
            "custom": true,                   // разрешать ввод произвольного текста
            "editable-label": true,           // разрешать редактировать label выбранного элемента
            "only-vacant": true               // отображать только вакантные должности
          },
          "fromHistory": true,
          "fullId": "positionlink-cmp",
          "required": true
        }

--------------------------------------------------------------------------------

.. js:class:: AS.FORMS.PositionLinkModel

    Модель компонента, наследует :js:class:`AS.FORMS.Model`

    .. code-block:: js

        {
          "id": "positionlink-cmp",
          "type": "entity",
          "value": "SDE III",                                               // значение компонента
          "key": "ababf6ba-2c64-4f02-8490-898e8d8bd096",                    // id выбранной должности
          "formatVersion": "V1",
          "manualTags": {"ababf6ba-2c64-4f02-8490-898e8d8bd096": "SDE III"} // должности, для которых были изменены названия вручную
        }

    .. js:function:: getSelectedIds()

        Получить идентификаторы выбранных должностей

        :returns: ``[string]``

    .. js:function:: getValue()

        Получить значение

        :returns: ``object``

                  .. code-block:: js

                    {
                      elementID: "идентификатор должности",
                      elementName: "название должности",
                      departmentName: "название подразделения, которому принадлежит должность",
                      status: "текст статуса",
                      statusColor: "цвет статуса"
                    }

    .. js:function:: setValue(value)

        :param object value:

                            .. code-block:: js

                                {
                                  elementID: "идентификатор должности",
                                  elementName: "название должности",
                                  departmentName: "название подразделения, которому принадлежит должность",
                                  status: "текст статуса",
                                  statusColor: "цвет статуса"
                                }

Тип данных «Подразделения»
--------------------------

.. js:class:: AS.FORMS.DepartmentLinkView

    Отображение компонента, наследует :js:class:`AS.FORMS.View`

    .. code-block:: js

        {
          "id": "departmentlink-cmp",
          "type": "entity",
          "style": {},
          "config": {
            "entity": "departments",          // тип данных
            "read-only": false,               // заблокировать от изменений пользователем
            "script": "",                     // код скрипта
            "depends": "departmentlink2-cmp", // связь с компонентом
            "locale": "kz",                   // язык
            "fill-with-current": true,        // заполнять департаментом создающего пользователя
            "custom": true,                   // разрешать ввод произвольного текста
            "editable-label": true,           // разрешать редактировать label выбранного элемента
            "multi": true                     // позволять мультивыбор
          },
          "fromHistory": true,
          "fullId": "departmentlink-cmp",
          "required": true
        }

--------------------------------------------------------------------------------

.. js:class:: AS.FORMS.DepartmentLinkModel

    Модель компонента, наследует :js:class:`AS.FORMS.Model`

    .. code-block:: js

        {
          "id": "departmentlink-cmp",
          "type": "entity",
          "value": "ARTA;; Отдел Разработки",                                        // значение компонента, в качестве разделителя наименований value используется «;; » (с пробелом после точек с запятой)
          "key": "1;cf4b8595-44e3-43b1-bd55-f30b0a1b03cb",                           // список id выбранных подразделений, разделенных «;»
          "formatVersion": "V1",
          "manualTags": {"cf4b8595-44e3-43b1-bd55-f30b0a1b03cb": "Отдел Разработки"} // подразделения, для которых были изменены названия вручную
        }

    .. js:function:: getSelectedIds()

        Получить идентификаторы выбранных подразделений

        :returns: ``[string]``

    .. js:function:: getValue()

        Получить значение

        :returns: ``object``

                  .. code-block:: js

                    {
                      departmentId: "идентификатор подразделения",
                      departmentName: "название подразделения",
                      parentName: "название подразделения, которому принадлежит должность",
                      hasChildren: "имеются ли дочерние подразделения",
                      status: "текст статуса",
                      statusColor: "цвет статуса"
                    }

    .. js:function:: setValue(value)

        :param object value:

                            .. code-block:: js

                                {
                                  departmentId: "идентификатор подразделения",
                                  departmentName: "название подразделения",
                                  parentName: "название подразделения, которому принадлежит должность",
                                  hasChildren: "имеются ли дочерние подразделения",
                                  status: "текст статуса",
                                  statusColor: "цвет статуса"
                                }
