Рабочее место пользователя подсистемы Конструктор
=========================================================

Доступ к подсистеме
--------------------------------

Для того, чтобы получить доступ к подсистеме конструктор, необходимо:

1. В подсистеме http://ip:8080/SynergyAdmin (раздел "Управление пользователями" - карточка пользователя) предоставить пользователю доступ  **"Конструктор web-клиента"**.
2. Перейти по адресу http://ip:8080/constructor  и авторизоваться в подсистеме Конструктор.

Доступ в конструктор может быть также предоставлен к отдельному приложению (одному или нескольким) без общего доступа в конструктор.
Для того, чтобы получить доступ к одному или нескольким приложениям, необходимо чтобы пользователь, уже обладающий таким доступом, в свойствах приложения предоставил соответствующее право.


        .. figure:: img/22.png
        рис. Настройка доступа к редактированию приложения в конструкторе

Рабочее место пользователя
--------------------------------

Интерфейс подсистемы Конструктор представлен четырьмя основными панелями:

1. Верхняя панель, состоящая из четырех элементов:

* Кнопка "Меню" - открывает меню для управления приложениями конструктора.
* Название открытого приложения.
* Кнопки отмены и повтора действий.
* Переключатель режима конструктора - при включенной опции отображается режим редактирования, в противном случае - режим просмотра.

2. Левая панель - "Навигатор":

* Страницы - отображает структуру приложения: дерево папок, страниц и модальных окон. Позволяет создавать, управлять и удалять соответствующие объекты.
* Компоненты:
    * Стандартные - позволяет добавлять на страницу стандартные компоненты.
    * Пользовательские - позволяет создавать, управлять и удалять пользовательские компоненты.
* Ресурсы - позволяет добавлять файлы в формате css или js, расширяя возможности конструктора.
* Дерево компонентов - позволяет осуществлять навигацию по всем компонентам открытой страницы.

        .. figure:: img/19.png
        рис. Левая панель конструктора

3.  Основная рабочая область 

* Панель навигации между открытыми объектами: страницами/ресурсами/пользовательскими компонентами.
* Панель действий над страницами: кнопка сохранения, кнопки перемещения компонентов "выше"/ "ниже" относительно других компонентов в рамках той же панели.
* Область редактирования объекта: страницы, ресурса, пользовательского компонента.

        .. figure:: img/20.png
        рис. Основная рабочая область

4. Правая панель - Панель "Свойств"

* Свойства - отображает перечень стандартных и специфичных свойств выделенного в основной рабочей области компонента.
* Кейсы - позволяет управлять кейсами (настраивать сочетания "Условие"-"Событие"-"Действие"), для реализации логики поведения выделенного в основной рабочей области компонента.
* Параметры - позволяет настроить получение текущим компонентом одного или нескольких параметров страницы (для этого параметры должны быть предварительно определены в свойствах страниц).

        .. figure:: img/21.png
        рис. Панель свойств

Основные подразделы интерфейса
--------------------------------

Меню
~~~~~~~~~~~

Подраздел, позволяющий управлять приложениями, созданными на конструкторе. Подраздел позволяет осуществлять следующие действия:


**Создать** - открывает модальное окно для создания нового приложения в конструкторе.

**Открыть приложение** - открывает модальное окно со списком всех существующих приложений. В этом окне представленное в списке приложение можно или открыть на редактирование или удалить, при необходимости.

**Свойства** - открывает окно редактирования свойств текущего открытого приложения.

Раздел "Свойства" отображает следующие свойства приложения: 

* **Код** - уникальный код приложения, используется в том числе при экспорте/импорте приложения (если код совпадает, то не создается новое приложение, а обновляется версия существующего с таким же кодом).

* **URL** - постфикс в адресе приложения, по которому оно будет доступно. В общем случае, ссылка формируется по принципу: http://ip:8080/*значение_указанное_в_этом_поле*

* **Номер ревизии** - автоматически заполняется (увеличивается +1) при сохранении новой версии приложении

* **Требуется авторизация** - если опция включена, в приложении обязательно должна присутствовать страница авторизации, если опция отключена - ниже обязательно должен быть указан пользователь по умолчанию (пользователь, от имени которого будет проверяться доступ к объектам SYNERGY, если они используются в приложении).

* **Пользователь по умолчанию (логин/пароль)** - поля доступны только если отключена опция "Требуется авторизация"

* **Группы доступа** - даёт доступ к редактированию отдельных приложений.

**Помощь** - открывает инструкцию по созданию приложения на конструктор.

**Импорт** - позволяет импортировать json - файл приложения, созданного на конструкторе.

**Деплой** - создает и деплоит war-файл приложения в папке /opt/synergy/jboss/standalone/deployments. После деплоя приложение становится доступным для пользователя по адресу http://ip:8080/*значение_указанное_в_поле_URL_приложения*

**Экспорт** - позволяет экспортировать и скачать json-файл приложения.

**WAR** - позволяет скачать war-файл приложения.

**Выход** - осуществляет выход авторизованного пользователя в конструкторе.


Страницы
~~~~~~~~~~~

Подраздел, позволяющий управлять страницами текущего открытого приложения. Подраздел позволяет осуществлять следующие действия:

1. Создавать/редактировать/удалять папки.
2. Создавать/редактировать/удалять страницы.
3. Импортировать и экспортировать страницы.
4. Создавать/редактировать/удалять модальные окна для страниц.
5. Просматривать дерево страниц.
6. Просматривать версии страниц и модальных окон.

**Свойства папки**

Новая папка может быть добавлена через кнопку "+" и выбор пункта контекстного меню "Добавить папку" (активно только при выделенной ноде папки в навигаторе).
В качестве свойств папки необходимо указать название.

**Свойства страницы**

Новая страница в приложении может быть создана через кнопку "+" и выбор пункта контекстного меню "Добавить страницу" (активно только при выделенной ноде папки в навигаторе).
Также страница может быть импортирована при выборе пункта "Импортировать страницу".


При создании или при выборе пункта "Изменить" контекстного меню страницы отображаются следующие свойства страницы: 


* **Название** - отображается в навигаторе конструктора

* **Код** - уникальный код страницы, используется в том числе при экспорте/импорте страницы (если код совпадает, то не создается новая страница, а обновляется версия существующей с таким же кодом).

* **Требуется авторизация** - позволяет настраивать авторизацию на каждую отдельно страницу (данная настройка над страницей приоритетнее аналогичной настройки над всем приложением).

* **URL** - *на текущий момент настройка не используется*

* **Путь** - *на текущий момент настройка не используется*

* **Принимаемые параметры** - Механизм позволяющий передавать значения между компонентами на разных страницах.


**Свойства модального окна**

Модальное окно является особым видом страницы, со своими специфичными свойствами и обязательно являющейся дочерней к одной из основных страниц.
Модальное окно может быть создано через кнопку "+" и выбор пункта контекстного меню "Модальное окно" (активно только при выдленное ноде **страницы** в навигаторе).

Свойства модального окна:

Основные (редактируютя через "Изменить" в контекстном меню модального окна):

* **Название**
* **Код**

Специфичные (редактируются в разделе "Свойства" корневой панели):

* **Заголовок модального окна** - текстовое поле с локализацией.
* **Вертикальный скролл** - да/нет
* **Горизонтальный скролл** - да/нет
* **Отображать кнопку закрыть** - да/нет

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


Компоненты
~~~~~~~~~~~

Подраздел позволяющий добавлять на страницы компоненты: стандартные и пользовательские, а также создавать/редактировать/удалять пользовательские компоненты.

Список стандартных компонентов и их свойств определен в разделе: 

.. _`Перечень компонентов и их атрибутов`: http://rtd.lan.arta.kz/docs/synergy-constructor-user-manual/ru/latest/components.html

На текущий момент перечень пользовательских компонентов является сквозным для всех приложений данного конструктора 
(т.е. при добавлении ПК в одном приложении, он автоматически становится доступен во всех других).


Кейсы
~~~~~~~~~~~

Подраздел, позволяющий управлять кейсами текущего выделенного компонента. Подраздел позволяет осуществлять следующие действия:

1. Создавать кейс
2. Удалять кейс
3. Редактировать кейс

**Процесс создания кейса**

1. Для создании кейса необходимо определить сочетание: Условие - Событие - Действие

2. Список возможных условий стандартный для каждого компонента и состоит из:

* Авторизация пользователя (два значения: авторизован, не авторизован)

* Локаль (русский, казахский, английский)

* Сравнить

* Свойства компонента

* Свойства компонента из итератора

3. Список событий для каждого компонента свой и определен в разделе "Перечень компонентов и их атрибутов"

4. Список возможных действий представлен в таблице ниже.

Список **специальных** действий для каждого компонента свой и определен в разделе "Перечень компонентов и их атрибутов".


+---------------------------------------+---------------------------------------------------------------+
|Действие                               | Параметры действия                                            |
+=======================================+===============================================================+
| Перейти на страницу                   |Код страницы                                                   | 
|                                       |                                                               |
|                                       |Принимаемы параметры                                           |
+---------------------------------------+---------------------------------------------------------------+
| Выполнить на странице                 |Код компонента (над которым будет осуществляться действие)     |
|                                       |                                                               |
|                                       |Действие:                                                      |
|                                       |                                                               |
|                                       |* Скрыть/показать                                              |
|                                       |                                                               |
|                                       |* Одно из **Специальных действий над компонентом**             |
|                                       |                                                               |
|                                       |Параметры выбранного действия                                  |
+---------------------------------------+---------------------------------------------------------------+
| Выполнить на итераторе                |Код итератора                                                  |
|                                       |                                                               |
| Выполнить на странице                 |Код компонента (над которым будет осуществляться действие)     |
|                                       |                                                               |
|                                       |**Специальные действия над компонентом**                       |
|                                       |                                                               |
|                                       |Параметры этого действия                                       |
+---------------------------------------+---------------------------------------------------------------+
| Открыть URL                           |Источник URL:                                                  |
|                                       |                                                               |
|                                       |* Произвольный текст (поле для ввода URL)                      |
|                                       |                                                               |
|                                       |* Параметры страницы (поле для выбора параметра)               |
|                                       |                                                               |
|                                       |* Значения компонента (поле для выбора компонента)             |
|                                       |                                                               |
|                                       |* Локализованный текст (поле для ввода URL)                    |
|                                       |                                                               |
|                                       |* Параметр итератора (поле для ввода параметра)                |
|                                       |                                                               |
|                                       |* Кастомный источник                                           |
+---------------------------------------+---------------------------------------------------------------+
| Показать сообщение                    |Источник сообщения:                                            |
|                                       |                                                               |
|                                       |* Произвольный текст (поле для ввода URL)                      |
|                                       |                                                               |
|                                       |* Параметры страницы (поле для выбора параметра)               |
|                                       |                                                               |
|                                       |* Значения компонента (поле для выбора компонента)             |
|                                       |                                                               |
|                                       |* Локализованный текст (поле для ввода URL)                    |
|                                       |                                                               |
|                                       |* Параметр итератора (поле для ввода параметра)                |
|                                       |                                                               |
|                                       |* Кастомный источник                                           |
|                                       |                                                               |
|                                       |Тип сообщения                                                  |
|                                       |                                                               |
|                                       |* Успешное сообщение (отобразиться зеленым шрифтом)            |
|                                       |                                                               |
|                                       |* Сообщение  (отобразиться синим шрифтом)                      |
|                                       |                                                               |
|                                       |* Ошибка    (отобразиться красным шрифтом)                     | 
|                                       |                                                               |
|                                       |Время отображения (в секундах)                                 |
+---------------------------------------+---------------------------------------------------------------+
| Логин                                 |* Логин (выбор одного из текстовых полей                       |
|                                       |                                                               |
|                                       |с отключенной опцией "Не отображать вводимые символы")         | 
|                                       |                                                               |
|                                       |* Пароль (выбор одного из текстовых полей                      | 
|                                       |                                                               |
|                                       |со включенной опцией "Не отображать вводимые символы")         | 
+---------------------------------------+---------------------------------------------------------------+
| Выход из системы                      |                                                               |
+---------------------------------------+---------------------------------------------------------------+
| Вернуться со страницы логина          |                                                               |
+---------------------------------------+---------------------------------------------------------------+
| Выполнить API                         |Входной параметр (произвольный или параметр страницы)          |
|                                       |                                                               |
|                                       |Метод (Данные по форме, Данные документ)                       |
|                                       |                                                               |
|                                       |Выходной параметр                                              | 
+---------------------------------------+---------------------------------------------------------------+
| Модальное окно                        |Код модального окна                                            |
|                                       |                                                               |
|                                       |Скрыть/Показать                                                | 
+---------------------------------------+---------------------------------------------------------------+


