Формулировка проблемы: необходима возможность централизованного управления настраиваемыми фильтрами "На контроле", вдобавок к существующим "На исполнении".
Связанные задачи:
А также последние задачи по фильтрам:
Используется:
Конфигуратор -> Настройки потоков работ -> Фильтры потоков работ
Потоки работ -> Корневой фильтр "На контроле", его подфильтры
Решение.
Разделим задачу на две, согласно изменениям в конфигураторе и клиентской части.
Уже имеющийся подраздел конфигуратора
Документооборот -> Настройки потоков работ -> Фильтры потоков работ
необходимо доработать следующим образом:
наряду с настройкой шаблонной структуры фильтров "На исполнении" добавить возможность аналогичной настройки и фильтров "На контроле" (таким образом, в дереве фильтров будет 2 корневых элемента);
автоматические фильтры по исполнителям (фамилиям) при этом отсутствуют и никак не настраиваются;
инициализация производится сразу для обеих веток "На исполнении" и "На контроле";
при создании пользователя структура фильтров "На контроле" также должна браться из Конфигуратора (последняя сохраненная, а не последняя инициализированная);
в диалоговом окне "Вернуть настройки фильтров" фильтра "На контроле" структура фильтров также должна браться из Конфигуратора (последняя сохраненная, а не последняя инициализированная).
Прочие свойства должны быть аналогичны таковым "На исполнении". Выделим их.
У шаблонных фильтров "На контроле" должен присутствовать признак создания по шаблону, который используется для сравнения фильтров при инициализации. Любое изменение пользователем фильтра (также сюда относится пересохранение фильтра без каких-либо изменений), созданного по шаблону, ведет к потере этого признака.
В основной рабочей области (по аналогии с редактированием фильтров и подфильтров "На контроле" в модуле "Потоки работ", но без флажка "Раскрыть вложенные"):
Основному фильтру задаются следующие параметры:
отображаемые поля;
сортировка по полю;
направление сортировки.
Подфильтры могут быть созданы только внутри основного фильтра "На контроле" либо других подфильтров. Подфильтрам задаются следующие параметры:
мультиязычное название (обяз.);
иконка;
условия фильтрации (обяз. наличие хотя бы одного корректного условия);
сплит;
отображаемые поля;
сортировка по полю;
направление сортировки;
сплит;
флажок «Дополнительно отображать работы, в которых я являюсь автором».
В случае создания вложенного в подфильтр подфильтра к дочернему подфильтру применяются условия родительского подфильтра.
Примечание.
Таким образом можно создать структуру подфильтров, не соответствующих ни одной работе, и это не будет являться ошибкой Synergy.
Корневой основной фильтр "На контроле" удалять нельзя (кнопка крестика неактивна). Любой подфильтр можно удалить, нажав на кнопку крестика. При этом система выдаст браузерное диалоговое окно подтверждения удаления с сообщением:
Вы действительно хотите удалить фильтр %название_фильтра%?
Примечание.
После удаления подфильтра из шаблонной структуры необходимо провести инициализацию, чтобы удаление применилось для всех существующих в системе пользователей.
По нажатию на кнопку "Инициализировать" созданная шаблонная структура обоих основных фильтров применяется к каждому пользователю системы по следующему принципу: пользовательские фильтры (в потоках работ) сравниваются с шаблонными (из конфигуратора). Возможные результаты сравнения и выполняемые при этом действия системы:
пользовательские фильтры, параметры которых (будь то название или условия) изменял сам пользователь вручную (т.е. фильтры без признака создания по шаблону), с шаблонными не сравниваются и, соответственно, не изменяются и не удаляются;
пользовательские фильтры, параметры которых пользователем не изменялись, сравниваются с шаблонными по названию:
для фильтров с совпадающими названиями существующий пользовательский фильтр заменяется копией шаблонного, замененный шаблонный фильтр с другими пользовательскими фильтрами больше не сравнивается;
если название шаблонного фильтра отсутствует среди пользовательских фильтров - вставляется копия шаблонного фильтра в конец списка, добавленный шаблонный фильтр с другими пользовательскими фильтрами больше не сравнивается;
если название пользовательского фильтра отсутствует среди шаблонных фильтров такой пользовательский фильтр удаляется.
Альтернативные потоки событий.
Не заполнено поле названия, сохраняется подфильтр.
Действие не выполняется, поле подсвечивается красным и выходит
ошибка: Введите название фильтра
.
Не добавлено ни одного условия фильтрации, сохраняется подфильтр.
Действие не выполняется, выходит ошибка:
Фильтр должен включать хотя бы одно условие
.
Добавлены некорректные условия фильтрации, сохраняется подфильтр.
Действие не выполняется, поля ввода (но не выпадающие списки,
поля с кнопками и др.) подсвечиваются красным и выходит общая
ошибка:
Введите корректные значения для условий фильтра
.
Во-первых, теперь все создаваемые подфильтры фильтра "На контроле" всегда должны располагаться выше автоматических фильтров по исполнителям.
Во-вторых, расширяются возможности основного фильтра "На контроле":
логика создания, редактирования и, опционально, удаления подфильтров не изменяется;
при инициализации шаблонных фильтров в конфигураторе возможно изменение состава и/или содержания фильтра и подфильтров;
корневому фильтру "На контроле" добавляется возможность возврата настроек по умолчанию.
Таким образом, в контекстное меню фильтра "На контроле"
после пункта "Добавить..." добавляется сплит, а после
него - новый пункт "Вернуть настройки..." По нажатию на
данный пункт открывается диалоговое окно
Вернуть настройки фильтров
.
Окно аналогично таковому для фильтра "На исполнении" и состоит из следующих блоков.
Добавить фильтры по умолчанию
содержит
шаблонную структуру фильтра "На контроле" (последнюю
сохраненную, а не последнюю инициализированную).
Примечание.
По умолчанию, в фильтре "На контроле" не создано ни одного подфильтра, поэтому шаблонная структуру будет содержать всего 1 пункт, соответствующий корневому элементу. Это не будет являться ошибкой Synergy.
Флажок Удалить мои фильтры
позволяет
удалять созданные (и измененные шаблонные) пользователем
подфильтры. По умолчанию, выключен.
Зеленая кнопка "Готово".
Действие совершается по нажатию кнопки "Готово": пользовательские фильтры (в потоках работ) сравниваются с шаблонными (из конфигуратора). Возможные результаты сравнения и выполняемые при этом действия системы:
если удаление собственных фильтров не настроено, то вставляются копии всех тех шаблонных фильтров, параметры которых (название, условия и пр.) не совпадают ни с одним пользовательским;
Примечание.
Таким образом, измененные и удаленные шаблонные, но не инициализированные, фильтры при возврате настроек не изменят и не удалят соответствующие пользовательские фильтры, т.к. данная функция работает только на добавление фильтров. Это не будет являться ошибкой Synergy.
если удаление собственных фильтров настроено:
все пользовательские фильтры удаляются;
добавляется новая структура фильтров на основе шаблонной.
В результате возврата настроек фильтров должно отобразиться сообщение на синем фоне:
Фильтры восстановлены
Действия при обновлении системы.
При обновлении системы в подразделе конфигуратора "Фильтры потоков работ" добавится вторая ветка "На контроле", какие-либо дочерние фильтры по умолчанию не созданы. Параметры фильтра по умолчанию:
отображаемые поля: "Ответственный", "Осталось", "Прогресс";
сортировка по полю: "Дата изменения";
направление сортировки: "по убыванию".
В клиентской части видимых изменений произойти не должно кроме того, что в контекстное меню фильтра "На контроле" добавится новый пункт "Вернуть настройки..."