Формулировка проблемы: необходима возможность изменять справочник приоритетов работ.
Используется во всех местах системы, где настраиваются приоритеты работ:
Конфигуратор:
фильтры потоков работ.
Документооборот:
список работ;
создание/редактирование работы;
создание проекта документа;
создание проекта документа по шаблону;
информация о работе;
создание/редактирование фильтров потоков работ.
Метод API для получения настроек системы.
Мобильные клиенты (iOS, Android, Sencha):
список работ;
создание/редактирование работы.
Решение:
Во-первых, в раздел конфигуратора
«Документооборот» -> «Настройки потоков работ» необходимо
добавить новый подраздел Настройки приоритетов
(после раздела «Фильтры потоков работ»).
Новый подраздел Настройки приоритетов
должен
содержать:
переключатель страниц;
кнопку «+»;
таблицу со списком приоритетов и полями (с возможностью их сортировки):
Номер
- порядок следования приоритетов в
компоненте;
Название на русском языке
;
Название на казахском языке
;
Название на английском языке
;
Цвет
- иконка цвета приоритета (цвет
контура иконки - #cdcdcd);
Значение по умолчанию
- показывает, какое
значение в списке приоритетов будет являться значением по
умолчанию;
Идентификатор
- порядковый номер
приоритета в БД.
Контекстное меню всегда должно содержать пункт «Редактировать», по нажатию которого должен открыться диалог редактирования параметров приоритета.
Значения из списка нельзя удалять, только скрывать. Для этого в контекстное меню добавляется пункт «Скрыть» («Восстановить» для обратного действия). Данное действие должно быть недоступно для значения по умолчанию. Скрытое значение в таблице должно выделиться серым цветом (#b5b5b5).
По нажатию на кнопку «+» должно открываться модальное диалоговое
окно Приоритет
со следующим набором полей.
Название
(на трех языках) - поля ввода,
обязательны к заполнению.
Номер
- поле ввода для задания порядка
следования приоритетов, не обязательно к заполнению, можно
вводить только целые положительные числа.
Примечание: т.к. значение поля может быть пустым (по умолчанию), в этом случае непронумерованные приоритеты должны быть отображены после пронумерованных, в алфавитном порядке названий на русском языке.
Цвет
- компонент (поле ввода + color-chooser)
для определения цвета приоритета, обязателен для заполнения,
цвет по умолчанию - #ffffff (белый)[4].
Использовать по умолчанию
- флажок,
недоступен при редактировании скрытого приоритета, а также
приоритета по умолчанию.
По нажатию на кнопку «Сохранить» необходимо валидировать поля
диалога на предмет вышеописанных требований. Если не введены
обязательные поля - ошибка
Заполните все обязательные поля
. Если поле номера
не соответствует требованиям - ошибка
Введите корректный номер
. При включении флажка
Использовать по умолчанию
и успешном сохранении
необходимо выдавать сообщение на синем фоне:
Настройки сохранены. Приоритет %название_приоритета% установлен в качестве значения по умолчанию.
При этом предыдущему значению по умолчанию необходимо выставить
значение поля Значение по умолчанию
в «нет».
Во-вторых, значения из настроек конфигуратора должны использоваться в следующих местах клиентской части:
все нескрытые значения должны отображаться в выпадающем списке соответствующего компонента в диалогах создания/редактирования работы, создания проекта документа (в т.ч. по шаблону), отсортированные по полю номера;
всем остальным работам, создаваемым в системе, должен присваиваться приоритет по умолчанию (при этом приоритет дочерних работ все также должен наследоваться от ближайшей родительской работы);
все нескрытые значения должны отображаться в условии фильтров потоков работ «Приоритет»;
цвет приоритета работы в списке работ должен соответствовать настроенному значению в конфигураторе;
цвет и название приоритета работы в окне информации также должны соответствовать настроенному значению в конфигураторе.
Альтернативный поток 1. Работы, для которых уже был назначен приоритет, который впоследствии скрыли, сохраняют его значение и цвет до тех пор, пока работу не откроют на редактирование (он все еще должен являться значением компонента, но при этом должен отсутствовать в выпадающем списке). При попытке сохранить работу со скрытым приоритетом, необходимо выделять компонент красным цветом, не выполнять действие и выдавать ошибку:
Выбранный приоритет работы отсутствует в справочнике приоритетов. Выберите другое значение.
Альтернативный поток 2. Фильтры потоков работ, в условии которых используется приоритет, который впоследствии скрыли, сохраняют свои условия до тех пор, пока такой фильтр не откроют на редактирование, при этом он уже не будет являться значением компонента, также должен отсутствовать в выпадающем списке.
Кроме того, необходимо актуализировать метод API
rest/api/settings/get
, добавив в него параметр
priority
, который будет возвращать массив со
списком настроенных приоритетов.
Действия при обновлении системы
При обновлении системы таблица настроек приоритетов должна принять следующий вид по умолчанию:
Номер | Название на русском языке | Название на казахском языке | Название на английском языке | Цвет | Значение по умолчанию | Идентификатор |
---|---|---|---|---|---|---|
1 |
Не срочно |
Шұғыл емес |
Nonurgent |
#c0de48 |
Нет |
0 |
2 |
Плановое |
Жоспарлы |
Routine |
#f6f782 |
Да |
1 |
3 |
Срочно |
Тығыз |
Urgent |
#ef7c77 |
Нет |
2 |
4 |
Критично |
Шұғыл |
Critical |
#e4302f |
Нет |
3 |
Никаких других внешних изменений в системе (в т.ч. в клиентской части) произойти не должно.