Формулировка проблемы: для упрощения процесса разработки приложений на базе Synergy необходимо изменить интерфейс конфигуратора на оболочку Synergy IDE.
Связанные задачи:
Решение:
В данной задаче описаны:
оболочка Synergy IDE;
добавление и редактирование объектов приложения;
раздел глобальных настроек платформы.
Оболочка Synergy IDE состоит из двух основных окон:
Окно списка приложений и окно работы с приложением имеют общую верхнюю панель (панель меню). Эта панель содержит:
пункты меню:
"Приложение" с подпунктами:
"Создать"
"Открыть"
"Свойства"
"Импорт"
"Экспорт"
"Добавить"
сплит
путь к выделенному объекту приложения, если такой объект есть
кнопка "Настройки платформы":
кнопка выхода:
При переходе на страницу
<host>:<port>/Configurator
отображается:
при наличии сведений о последнем открытом приложении - это приложение;
если у пользователя есть ровно одно доступное приложение (с правом "Чтение") - это приложение;
если в экземпляре Synergy есть более одного приложения, на которые у пользователя есть право "Чтение" - первое по списку из доступных приложений.
Пункт меню "Создать" доступен только пользователю SAD. По нажатию на него отображается диалог создания нового приложения:
Для перехода между приложениями используется пункт меню "Приложение" - "Открыть". Этот пункт содержит подпункты - наименование приложений, на которые у пользователя есть как минимум право "Чтение", в текущей локали. Открытое приложение из этого списка исключается.
Пункт меню "Свойства" отображает диалоговое окно со сведениями о текущем приложении:
Параметры приложения были описаны ранее.
Навигатор приложения содержит дерево папок и объектов приложения, корнем дерева является нода самого приложения. В качестве лейбла ноды дерева является наименование приложения, папки или объекта соответственно для активной локали, для счетчиков в качестве лейбла используется их код.
В верхней части навигатора расположены кнопки "Показать скрытые" и кнопка для сворачивания и отображения навигатора.
Состояние навигатора по умолчанию:
дерево развернуто на один уровень: в дереве отображаются папки и объекты, для которых родительской папкой является папка приложения;
ни одна нода дерева не выделена;
навигатор развернут: отображен на 25% ширины окна IDE;
скрытые объекты не отображаются: кнопка "Показать скрытые" не нажата.
Навигатор имеет два основных состояния:
развернут:
в навигаторе отображено дерево объектов;
в верхней части навигатора отображаются кнопки "Показать скрытые" и "Свернуть";
доступно ручное изменение ширины навигатора с помощью сплиттера, но не более, чем до 2/3 ширины, и не менее, чем до 43px;
при необходимости для навигатора отображаются вертикальный и горизонтальный скроллы.
свернут:
навигатор имеет фиксированную ширину 43px;
в верхней части отображается только кнопка "Развернуть";
дерево объектов и скроллы в навигаторе не отображаются.
При изменении ширины навигатора (как в развернутом состоянии, так и при сворачивании) ширина рабочей области также адаптируется.
Отображение скрытых объектов (форм, реестров, шаблонов маршрутов, карточек пользователей/ должностей/ подразделений и действий по сотрудникам/ по резерву) регулируется кнопкой "Показать скрытые". Она имеет два состояния:
не нажата (по умолчанию): скрытые объекты в дереве не отображаюся;
нажата: скрытые объекты отображаются в дереве вместе с активными объектами.
Внешне лейблы скрытых объектов отличаются от лейблов активных
объектов цветом текста #bcbcbc
.
Папки в дереве и объекты внутри папок отсортированы по их наименованию в алфавитном порядке, возможность изменения сортировки отсутствует.
При отображении скрытые объекты сортируются вместе с активными.
Объекты приложения, отображаемые в навигаторе, имеют контекстное меню. Набор пунктов меню зависит от типа выделенной ноды:
папка:
"Добавить" с подпунктами, дублирующими подпункты меню "Добавить" на панели меню.
"Изменить"
"Удалить"
"Импортировать форму"
шаблон документа, внешний модуль, папка пользовательского компонента, справочник:
"Удалить"
папка формы:
"Скрыть"
"Заменить" (бывший пункт "Обновить")
"Экспортировать"
Пункт контекстного меню "Просмотреть" исключен.
журнал, реестр, шаблон маршрута, карточка пользователей, карточка должностей, карточка подразделений, действие по сотрудникам, действие по резерву, счетчик, шаблон номера, тип документа, пользовательский отчет:
"Скрыть"
группа пользователей, группа реестров:
"Добавить вложенную группу"
"Удалить"
внешний модуль-компонент не имеет контекстного меню.
По двойному клику в навигаторе по объекту приложения он открывается в отдельной вкладке. Если вкладка с объектом приложения уже открыта, то по двойному клику по этому элементу соответствующая вкладка становится активной.
Двойной клик в навигаторе по папке приложения или по корню приложения равносилен одинарному клику (выделяет ноду в дереве, не открывая вкладку).
В заголовке вкладки указываются наименование объекта в текущей локали, признак наличия несохраненных изменений и кнопка закрытия вкладки.
Вкладка имеет 4 состояния:
активная, нет несохраненных изменений: заголовок вкладки отображается полужирным начертанием;
активная, есть несохраненные изменения: заголовок вкладки
отображается полужирным начертанием, перед наименованием
объекта добавляется *
;
фоновая, нет несохраненных изменений;
фоновая, есть несохраненных изменений: перед наименованием
объекта добавляется *
.
По клику на вкладку она становится активной, в рабочей области отображаются элементы, принадлежащие этой вкладке.
Ширина вкладок адаптируется к длине наименования соответствующего объекта в пределах 75-250px. Если при максимальной ширине вкладки наименование объекта не помещается в ее заголовке целиком, то часть названия скрывается градиентом с правого края вкладки. Ширина градиента составляет 20% от ширины вкладки, но не более 25 px. Начальная (правая) точка градиента такого же цвета как фон кнопки ее прозрачность 0%. Конечная точка (левая) также имеет цвет фона, однако прозрачность конечной точки равна 100%.
Если суммарная ширина вкладок больше, чем доступная ширина, то по краям панели вкладок отображаются переключатели:
При закрытии вкладки с объектом, имеющим несохраненные изменения, отображается диалоговое окно с текстом:
Все несохраненные изменения будут потеряны! Продолжить?
Если разработчик подтверждает действие, то вкладка закрывается без сохранения изменений. Если действие отклоняется, то вкладка не закрывается, признак наличия несохраненных изменений остается.
Рабочая область занимает все пространство окна, ограниченное слева навигатором и сверху - панелью вкладок.
Рабочая область отображает содержимое активной вкладки, если она открыта, или пустую область, если нет ни одной открытой вкладки.
Если содержимое активной вкладки превышает размер рабочей области, то отображаются горизонтальный и/или вертикальный скроллы.
В верхней части рабочей области отображается панель инструментов. Для всех сущностей, кроме формы и скриптов, на верхней панели отображается название сущности текущего объекта. В случае, если редактор содержит служебные кнопки, они также отображаются на этой панели у правого края отображаемой области редактора: даже если для редактора сущности требуется использовать горизонтальный скролл, его кнопки остаются с видимыми в правой части панели при движении этого скролла.
В нижней части рабочей области зафиксированы кнопки "Сохранить" и "Отменить". Для конструктора форм в нижней части рабочей области дополнительно зафиксирована кнопка "Сохранить версию".
По нажатию на кнопку "Сохранить" выполняется сохранение объекта в активной вкладке (процесс сохранения каждой сущности не изменяется), вкладка остается активной и не закрывается.
По нажатию на кнопку "Отменить" состояние объекта в активной вкладке сбрасывается до последнего сохраненного, вкладка остается активной и не закрывается.
Ранее были перечислены сущности, которые могут входить в приложение. Добавить объект каждой из этих сущностей можно двумя способами:
из панели меню, пункт "Добавить";
из контекстного меню папки в навигаторе, пункт "Добавить".
В обоих случаях необходимо выбрать сущность из списка подпунктов пункта "Добавить" (список дублируется для панели меню и для контекстного меню):
Папка
Базовые сущности:
Документооборот:
Процессы:
Трудовые ресурсы:
Интеграция:
Доступность пункта "Добавить" зависит от наличия у пользователя права "Изменение" для открытого приложения и от ноды, выделенной в навигаторе: пункт меню доступен только в случае, если в навигаторе выделена папка приложения или корневая нода.
После сохранения данных новый объект добавляется в ту папку, которая была выделена в момент вызова создания. До первого сохранения данных новый объект в дереве не отображается.
Далее описаны диалоги создания и редактирования каждой указанной сущности.
Примечание:
Далее считается, что состав данных и функциональность редактора для каждой сущности не изменяется, если явно не указано иное.
Во всех случаях в редакторе сущности доступны только те объекты, которые входят в текущее приложение, и общие настройки платформы.
Для всех редакторов сущностей, кроме редактора форм, требуется изменить вид и заголовок верхней панели редактора. В заголовке должно отображаться наименование сущности в текущей локали, в единственном числе ("Реестр", "Шаблон маршрута", "Пользовательский отчет"). Вид панели должен быть приведен к стандартному в ShowCase.
Необходимо изменить диалог редактирования групп:
Исключить возможность добавления группы, вложенной в текущую, средствами редактора групп. Добавление вложенной группы осуществляется только из контекстного меню объекта группы в навигаторе. Пункт меню "Добавить" - "Группу" добавляет новую корневую группу пользователей.
В таблице "Пользователи группы" отображать только пользователей, входящих в данную группу, без перечисления вложенных групп. Вложенная группа отображается в навигаторе как дочерняя нода родительской группы.
Кроме того, необходимо изменить способ работы с группами пользователей в административном приложении Synergy:
В разделе "Хранилище" - "Группы" требуется исключить возможность добавления новых групп и редактирования свойств существующих пользовательских групп (их названия, кода и размера квоты).
Таким образом, в административном приложении Synergy возможны следующие действия с группами:
добавление пользователя в пользовательскую группу, удаление пользователя из пользовательской группы;
изменение названия, кода и размера квоты в служебных группах;
массовое генерирование логинов/паролей для пользователей группы.
При чтении и редактировании групп средствами административного приложения Synergy необходимо проверять наличие прав "Чтение" и "Изменение" соответственно только в разделе "Настройки системы" - "Доступ к объектам администрирования".
Необходимо изменить диалог редактирования счетчиков следующим образом: перенести поля ввода свойств счетчика из всплывающего окна в рабочую область:
Необходимо изменить диалог редактирования справочников:
Перенести поля ввода свойств справочника (код, имя, комментарий, управление составом столбцов) из всплывающего окна в рабочую область.
На панель инструментов редактора добавить кнопку "Элементы":
Кнопка отображается только для сохраненного справочника. По нажатию на нее открывается редактор элементов справочника:
Переключение между редактированием структуры справочника и его элементов должно производиться в одной вкладке.
Необходимо изменить структуру сведений о форме и способ их отображения в навигаторе:
Форма представляет собой двухуровневое дерево:
корнем дерева является сама форма, по двойному клику по ноде в рабочей области отображается редактор формы;
при первом сохранении формы автоматически создается дочерний файл с именем
form.main.script.js
, в который может быть добавлен код скрипта формы.
код каждого компонента формы, если он существует, после первого сохранения отображается в виде отдельного файла как дочерняя нода формы (описано далее). По двойному клику по ноде скрипта в рабочей области отображается редактор кода.
Изменения в конструкторе формы, код компонентов формы и код самой формы сохраняются независимо друг от друга.
Кроме того, необходимо исключить возможность добавления кода компонентов формы средствами конструктора. Для этого:
В настройках всех компонентов удалить вкладку "Код скрипта".
На панель инструментов формы, правее кнопки "Объединить", добавить кнопку добавления скрипта компонента:
Кнопка должна быть доступна только в том случае, если выделена ровно одна непустая ячейка. При наведении на кнопку отображается тултип "Код компонента".
По нажатию на кнопку добавления кода в рабочей области должен отображаться редактор кода. При этом если есть открытая фоновая вкладка с кодом для выделенного компонента, она должна становиться активной:
Код компонента формы после первого сохранения должен
отображаться в виде отдельного файла
[<код_динтаблицы>.]<код_компонента>.js
как дочерняя нода формы. Если редактор кода был закрыт без
сохранения изменений, то новая нода в папке формы появляться
не должна.
В дальнейшем для перехода к коду компонента формы можно использовать как кнопку "Код компонента" в редакторе формы, так и навигатор.
Необходимо изменить диалог редактирования шаблона номера следующим образом: перенести поля ввода свойств шаблона номера из всплывающего окна в рабочую область:
Необходимо изменить диалог редактирования журналов следующим образом:
убрать флаг "Скрытый".
При разворачивании правой панели со сведениями об этапе маршрута горизонтальный скролл отображаться не должен, вместо этого должна адаптироваться только ширина области со списком этапов.
Кнопки "Управление фильтрами" и "Управление записями" должны располагаться на панели инструментов редактора:
Кнопки отображаются только для сохраненного реестра. По нажатию на них происходит переход к редактированию фильтров реестра или к управлению его записями соответственно:
Переключение между редактором реестра,управлением фильтрами и управлением записями должно производиться в одной вкладке.
Необходимо изменить диалог редактирования групп реестров:
Исключить возможность добавления группы, вложенной в текущую, средствами редактора групп реестров. Добавление и удаление вложенной группы осуществляется только из контекстного меню объекта группы в навигаторе. Пункт меню "Добавить" - "Группу" добавляет новую корневую группу реестров, вне зависимости от относительного расположения групп реестров в папках приложения.
Таблицу "Группы реестров и реестры" переименовать на "Реестры" и отображать в ней только реестры, непосредственно входящие в данную группу, без перечисления вложенных групп.
Вложенные группы отображать в навигаторе как дочерние ноды родительской группы реестров.
Поскольку в текущей версии Конфигуратора назначение прав сотрудникам на просмотр и редактирование карточек производится в общем списке карточек пользователей, необходимо изменить редактор карточек пользователей, перенеся в него чекбоксы назначения прав:
Необходимо изменить диалог выбора формы для карточки должности, перенеся его в рабочую область:
Поля редактора:
"Форма": поле выбора формы, после первого сохранения карточки недоступно для редактирования;
"Описание": многострочное поле, содержащее описание формы, недоступно для редактирования.
Необходимо изменить диалог выбора формы для карточки должности, перенеся его в рабочую область:
Поля редактора:
"Форма": поле выбора формы, после первого сохранения карточки недоступно для редактирования;
"Описание": многострочное поле, содержащее описание формы, недоступно для редактирования.
Необходимо изменить структуру сведений о пользовательском компоненте и способ их отображения в навигаторе:
Пользовательский компонент представляет собой двухуровневое дерево:
корнем дерева являются сведения о компоненте (название, код, признак использования в формах), по двойному клику по ноде в рабочей области отображается редактор этих сведений:
- при первом сохранении пользовательского компонента автоматически создаются два файла, которые отображаются в навигаторе как дочерние ноды компонента: 1. `script.js`, в который может быть добавлен код JavaScript; 2. `template.html`, в который может быть добавлен HTML-код компонента.
- по двойному клику по дочерним нодам в рабочей области отображается редактор кода.
На панель инструментов редактора добавить кнопку "Права на отчет". Кнопка отображается только для сохраненного отчета и только в том случае, когда отключен флаг "Доступty всем пользователям". По нажатию на нее открывается редактор групп доступа к отчету.
Переключение между редактированием отчета и указанием групп доступа должно производиться в одной вкладке.
Доступ к глобальным настройкам платформы, общим для всех приложений одного экземпляра Synergy, осуществляется из панели меню, кнопка "Настройки платформы". По нажатию на нее открывается окно "Настройки платформы" (илл. "Настройки платформы"):
Окно настроек платформы отображается поверх Synergy IDE, полностью перекрывая ее (аналогично модулю "Настройки" в основном приложении Synergy). По нажатию на кнопку "Закрыть" окно настроек приложения закрывается, отображается Synergy IDE. При этом состояние навигатора, вкладок и рабочей области должно быть таким же, как и до отображения окна настроек.
Настройки платформы состоят из разделов и пунктов:
Документооборот:
Дела
Шаблоны протокола
Настройки Документооборота
Настройки Потоков Работ:
Фильтры потоков работ
Формы завершения (переименованный пункт "Специальные справочники")
Настройки диалогов создания
Настройки приоритетов
Настройки процессов
Настройки резолюций
Настройки нагрузок
Доп. настройки потоков работ
Создание документов
Настройки системы:
Общие настройки
Региональные настройки:
Языки
Переводы
Параметры уведомлений
Рабочее время (переименованный пункт "Календарь")
Управление модулями:
Настройки пунктов создания
Сотрудники
Доп. настройки управления модулями
Настройки почты
Настройки адресной книги
Импорт/Экспорт настроек (обновленный пункт "Импорт/Экспорт конфигурации")
Личное дело
Отчет по оргструктуре
Операционная деятельность (переименованный раздел "Системные показатели"):
Шаблоны системных показателей
Настройки системных показателей
Проекты:
Категории рисков
Портфели проектов
Настройки проектов
Шаблоны проектов
Хранилище:
Папки
Роли
Свойства
Классификатор
Каждый пункт соответствует существующим пунктам Конфигуратора , за исключением пунктов "Импорт/Экспорт настроек", "Отчет по оргстуктуре".
По нажатию на кнопку "Все настройки" происходит возврат к списку настроек без сохранения изменений (аналогично кнопке "На главную" существующей версии Конфигуратора).
Раздел настроек "Трудовые ресурсы" создан на основе раздела "Отдел кадров" существующей версии Конфигуратора. Раздел содержит пункты "Личное дело" и "Отчет по оргструктуре".
Пункт "Личное дело" соответствует пункту "Личное дело" существующей версии Конфигуратора.
По клику на пункт "Отчет по оргструктуре" открывается окно "Редактирование встроенного отчета" (см. "Отчет по оргструктуре"). При этом перехода к списку встроенных отчетов, содержащему единственную запись, не происходит.
Ранее в системе по умолчанию создавались справочники
action_progress
,
resolution
и send_items
.
Кроме того, справочники calendar_types
,
pm_custom_fields
и
resolution_work_types
имели зарезервированные
коды, но их требовалось создавать вручную при необходимости.
Необходимо изменить существующий пункт "Процессы" - "Справочники":
изменить развание пункта на "Системные справочники", переместить его в раздел "Настройки системы" (ниже пункта "Настройки адресной книги");
отображать в нем только служебные справочники, созданные по умолчанию:
action_progress
resolution
send_items
calendar_types
pm_custom_fields
resolution_work_types
Справочники
calendar_types
,pm_custom_fields
иresolution_work_types
при создании не содержат элементов.
исключить возможность добавления новых справочников в разделе (не отображать кнопку "+");
исключить возможность удаления справочников.