Задача [IDE2]: Каркас IDE, операции с объектами приложения

Формулировка проблемы: для упрощения процесса разработки приложений на базе Synergy необходимо изменить интерфейс конфигуратора на оболочку Synergy IDE.

Связанные задачи:

Решение:

В данной задаче описаны:

Оболочка Synergy IDE

Оболочка Synergy IDE состоит из двух основных окон:

Верхняя панель

Окно списка приложений и окно работы с приложением имеют общую верхнюю панель (панель меню). Эта панель содержит:

  • пункты меню:

    • "Приложение" с подпунктами:

      • "Создать"

      • "Открыть"

      • "Свойства"

      • "Импорт"

      • "Экспорт"

    • "Добавить"

  • сплит

  • путь к выделенному объекту приложения, если такой объект есть

  • кнопка "Настройки платформы":

  • кнопка выхода:

Управление приложениями

При переходе на страницу <host>:<port>/Configurator отображается:

  1. при наличии сведений о последнем открытом приложении - это приложение;

  2. если у пользователя есть ровно одно доступное приложение (с правом "Чтение") - это приложение;

  3. если в экземпляре Synergy есть более одного приложения, на которые у пользователя есть право "Чтение" - первое по списку из доступных приложений.

Пункт меню "Создать" доступен только пользователю SAD. По нажатию на него отображается диалог создания нового приложения:

Рисунок 3. Новое приложение

Новое приложение

Для перехода между приложениями используется пункт меню "Приложение" - "Открыть". Этот пункт содержит подпункты - наименование приложений, на которые у пользователя есть как минимум право "Чтение", в текущей локали. Открытое приложение из этого списка исключается.

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

Рисунок 4. Свойства приложения

Свойства приложения

Параметры приложения были описаны ранее.

Окно работы с приложением
Навигатор

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

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

Состояние навигатора по умолчанию:

  • дерево развернуто на один уровень: в дереве отображаются папки и объекты, для которых родительской папкой является папка приложения;

  • ни одна нода дерева не выделена;

  • навигатор развернут: отображен на 25% ширины окна IDE;

  • скрытые объекты не отображаются: кнопка "Показать скрытые" не нажата.

Ширина навигатора

Навигатор имеет два основных состояния:

  • развернут:

    • в навигаторе отображено дерево объектов;

    • в верхней части навигатора отображаются кнопки "Показать скрытые" и "Свернуть";

    • доступно ручное изменение ширины навигатора с помощью сплиттера, но не более, чем до 2/3 ширины, и не менее, чем до 43px;

    • при необходимости для навигатора отображаются вертикальный и горизонтальный скроллы.

  • свернут:

    • навигатор имеет фиксированную ширину 43px;

    • в верхней части отображается только кнопка "Развернуть";

    • дерево объектов и скроллы в навигаторе не отображаются.

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

Отображение скрытых объектов

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

  • не нажата (по умолчанию): скрытые объекты в дереве не отображаюся;

  • нажата: скрытые объекты отображаются в дереве вместе с активными объектами.

Внешне лейблы скрытых объектов отличаются от лейблов активных объектов цветом текста #bcbcbc.

Сортировка

Папки в дереве и объекты внутри папок отсортированы по их наименованию в алфавитном порядке, возможность изменения сортировки отсутствует.

При отображении скрытые объекты сортируются вместе с активными.

Контекстное меню элементов дерева

Объекты приложения, отображаемые в навигаторе, имеют контекстное меню. Набор пунктов меню зависит от типа выделенной ноды:

  • папка:

    • "Добавить" с подпунктами, дублирующими подпункты меню "Добавить" на панели меню.

    • "Изменить"

    • "Удалить"

    • "Импортировать форму"

  • шаблон документа, внешний модуль, папка пользовательского компонента, справочник:

    • "Удалить"

  • папка формы:

    • "Скрыть"

    • "Заменить" (бывший пункт "Обновить")

    • "Экспортировать"

Пункт контекстного меню "Просмотреть" исключен.

  • журнал, реестр, шаблон маршрута, карточка пользователей, карточка должностей, карточка подразделений, действие по сотрудникам, действие по резерву, счетчик, шаблон номера, тип документа, пользовательский отчет:

    • "Скрыть"

  • группа пользователей, группа реестров:

    • "Добавить вложенную группу"

    • "Удалить"

  • внешний модуль-компонент не имеет контекстного меню.

Панель вкладок

По двойному клику в навигаторе по объекту приложения он открывается в отдельной вкладке. Если вкладка с объектом приложения уже открыта, то по двойному клику по этому элементу соответствующая вкладка становится активной.

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

В заголовке вкладки указываются наименование объекта в текущей локали, признак наличия несохраненных изменений и кнопка закрытия вкладки.

Вкладка имеет 4 состояния:

  • активная, нет несохраненных изменений: заголовок вкладки отображается полужирным начертанием;

  • активная, есть несохраненные изменения: заголовок вкладки отображается полужирным начертанием, перед наименованием объекта добавляется *;

  • фоновая, нет несохраненных изменений;

  • фоновая, есть несохраненных изменений: перед наименованием объекта добавляется *.

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

Ширина вкладок адаптируется к длине наименования соответствующего объекта в пределах 75-250px. Если при максимальной ширине вкладки наименование объекта не помещается в ее заголовке целиком, то часть названия скрывается градиентом с правого края вкладки. Ширина градиента составляет 20% от ширины вкладки, но не более 25 px. Начальная (правая) точка градиента такого же цвета как фон кнопки ее прозрачность 0%. Конечная точка (левая) также имеет цвет фона, однако прозрачность конечной точки равна 100%.

Если суммарная ширина вкладок больше, чем доступная ширина, то по краям панели вкладок отображаются переключатели:

Рисунок 5. Переключатели вкладок

Переключатели вкладок

При закрытии вкладки с объектом, имеющим несохраненные изменения, отображается диалоговое окно с текстом:

Все несохраненные изменения будут потеряны! Продолжить?

Если разработчик подтверждает действие, то вкладка закрывается без сохранения изменений. Если действие отклоняется, то вкладка не закрывается, признак наличия несохраненных изменений остается.

Рабочая область

Рабочая область занимает все пространство окна, ограниченное слева навигатором и сверху - панелью вкладок.

Рабочая область отображает содержимое активной вкладки, если она открыта, или пустую область, если нет ни одной открытой вкладки.

Если содержимое активной вкладки превышает размер рабочей области, то отображаются горизонтальный и/или вертикальный скроллы.

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

В нижней части рабочей области зафиксированы кнопки "Сохранить" и "Отменить". Для конструктора форм в нижней части рабочей области дополнительно зафиксирована кнопка "Сохранить версию".

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

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

Добавление и редактирование объектов приложения

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

  • из панели меню, пункт "Добавить";

  • из контекстного меню папки в навигаторе, пункт "Добавить".

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

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

После сохранения данных новый объект добавляется в ту папку, которая была выделена в момент вызова создания. До первого сохранения данных новый объект в дереве не отображается.

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

Примечание:

  1. Далее считается, что состав данных и функциональность редактора для каждой сущности не изменяется, если явно не указано иное.

  1. Во всех случаях в редакторе сущности доступны только те объекты, которые входят в текущее приложение, и общие настройки платформы.

  1. Для всех редакторов сущностей, кроме редактора форм, требуется изменить вид и заголовок верхней панели редактора. В заголовке должно отображаться наименование сущности в текущей локали, в единственном числе ("Реестр", "Шаблон маршрута", "Пользовательский отчет"). Вид панели должен быть приведен к стандартному в ShowCase.

Группа пользователей

Необходимо изменить диалог редактирования групп:

  1. Исключить возможность добавления группы, вложенной в текущую, средствами редактора групп. Добавление вложенной группы осуществляется только из контекстного меню объекта группы в навигаторе. Пункт меню "Добавить" - "Группу" добавляет новую корневую группу пользователей.

  2. В таблице "Пользователи группы" отображать только пользователей, входящих в данную группу, без перечисления вложенных групп. Вложенная группа отображается в навигаторе как дочерняя нода родительской группы.

Рисунок 6. Редактор группы

Редактор группы

Рисунок 7. Отображение дерева групп в навигаторе

Отображение дерева групп в навигаторе

Кроме того, необходимо изменить способ работы с группами пользователей в административном приложении Synergy:

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

Таким образом, в административном приложении Synergy возможны следующие действия с группами:

  • добавление пользователя в пользовательскую группу, удаление пользователя из пользовательской группы;

  • изменение названия, кода и размера квоты в служебных группах;

  • массовое генерирование логинов/паролей для пользователей группы.

  1. При чтении и редактировании групп средствами административного приложения Synergy необходимо проверять наличие прав "Чтение" и "Изменение" соответственно только в разделе "Настройки системы" - "Доступ к объектам администрирования".

Счетчик

Необходимо изменить диалог редактирования счетчиков следующим образом: перенести поля ввода свойств счетчика из всплывающего окна в рабочую область:

Рисунок 8. Редактор счетчика

Редактор счетчика

Справочник

Необходимо изменить диалог редактирования справочников:

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

  2. На панель инструментов редактора добавить кнопку "Элементы":

Рисунок 9. Редактор справочника

Редактор справочника

Кнопка отображается только для сохраненного справочника. По нажатию на нее открывается редактор элементов справочника:

Рисунок 10. Элементы справочника

Элементы справочника

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

Форма

Необходимо изменить структуру сведений о форме и способ их отображения в навигаторе:

  1. Форма представляет собой двухуровневое дерево:

  • корнем дерева является сама форма, по двойному клику по ноде в рабочей области отображается редактор формы;

Рисунок 11. Редактор формы

Редактор формы

  • при первом сохранении формы автоматически создается дочерний файл с именем form.main.script.js, в который может быть добавлен код скрипта формы.

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

  1. Изменения в конструкторе формы, код компонентов формы и код самой формы сохраняются независимо друг от друга.

Кроме того, необходимо исключить возможность добавления кода компонентов формы средствами конструктора. Для этого:

  1. В настройках всех компонентов удалить вкладку "Код скрипта".

  2. На панель инструментов формы, правее кнопки "Объединить", добавить кнопку добавления скрипта компонента:

Рисунок 12. Иконка для кнопки перехода к скрипту компонента

Иконка для кнопки перехода к скрипту компонента

Кнопка должна быть доступна только в том случае, если выделена ровно одна непустая ячейка. При наведении на кнопку отображается тултип "Код компонента".

  1. По нажатию на кнопку добавления кода в рабочей области должен отображаться редактор кода. При этом если есть открытая фоновая вкладка с кодом для выделенного компонента, она должна становиться активной:

Рисунок 13. Редактор кода компонента формы

Редактор кода компонента формы

Рисунок 14. Отображение формы и кода компонента в навигаторе

Отображение формы и кода компонента в навигаторе

  1. Код компонента формы после первого сохранения должен отображаться в виде отдельного файла [<код_динтаблицы>.]<код_компонента>.js как дочерняя нода формы. Если редактор кода был закрыт без сохранения изменений, то новая нода в папке формы появляться не должна.

В дальнейшем для перехода к коду компонента формы можно использовать как кнопку "Код компонента" в редакторе формы, так и навигатор.

Шаблон номера

Необходимо изменить диалог редактирования шаблона номера следующим образом: перенести поля ввода свойств шаблона номера из всплывающего окна в рабочую область:

Рисунок 15. Редактор шаблонов номеров

Редактор шаблонов номеров

Журнал

Необходимо изменить диалог редактирования журналов следующим образом:

  • убрать флаг "Скрытый".

Рисунок 16. Редактор журналов в рабочей области, с отображением скроллов

Редактор журналов в рабочей области, с отображением скроллов

Тип документа

Рисунок 17. Редактор типов документов в рабочей области, с отображением скроллов

Редактор типов документов в рабочей области, с отображением скроллов

Шаблон документа

Рисунок 18. Редактор шаблонов документов в рабочей области

Редактор шаблонов документов в рабочей области

Шаблон маршрута

Рисунок 19. Редактор шаблонов маршрутов

Редактор шаблонов маршрутов

При разворачивании правой панели со сведениями об этапе маршрута горизонтальный скролл отображаться не должен, вместо этого должна адаптироваться только ширина области со списком этапов.

Реестр

Кнопки "Управление фильтрами" и "Управление записями" должны располагаться на панели инструментов редактора:

Рисунок 20. Редактор реестров

Редактор реестров

Кнопки отображаются только для сохраненного реестра. По нажатию на них происходит переход к редактированию фильтров реестра или к управлению его записями соответственно:

Рисунок 21. Управление фильтрами

Управление фильтрами

Рисунок 22. Управление записями

Управление записями

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

Группа реестров

Необходимо изменить диалог редактирования групп реестров:

  1. Исключить возможность добавления группы, вложенной в текущую, средствами редактора групп реестров. Добавление и удаление вложенной группы осуществляется только из контекстного меню объекта группы в навигаторе. Пункт меню "Добавить" - "Группу" добавляет новую корневую группу реестров, вне зависимости от относительного расположения групп реестров в папках приложения.

  2. Таблицу "Группы реестров и реестры" переименовать на "Реестры" и отображать в ней только реестры, непосредственно входящие в данную группу, без перечисления вложенных групп.

  3. Вложенные группы отображать в навигаторе как дочерние ноды родительской группы реестров.

Рисунок 23. Отображение редактора группы реестров и вложенных групп в навигаторе

Отображение редактора группы реестров и вложенных групп в навигаторе

Карточка пользователей

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

Рисунок 24. Редактор карточки пользователей для всех групп

Редактор карточки пользователей для всех групп

Рисунок 25. Редактор карточки пользователей с выбором групп

Редактор карточки пользователей с выбором групп

Карточка должностей

Необходимо изменить диалог выбора формы для карточки должности, перенеся его в рабочую область:

Рисунок 26. Редактор карточек должностей

Редактор карточек должностей

Поля редактора:

  • "Форма": поле выбора формы, после первого сохранения карточки недоступно для редактирования;

  • "Описание": многострочное поле, содержащее описание формы, недоступно для редактирования.

Карточка подразделений

Необходимо изменить диалог выбора формы для карточки должности, перенеся его в рабочую область:

Рисунок 27. Редактор карточек подразделений

Редактор карточек подразделений

Поля редактора:

  • "Форма": поле выбора формы, после первого сохранения карточки недоступно для редактирования;

  • "Описание": многострочное поле, содержащее описание формы, недоступно для редактирования.

Действие по сотрудникам

Рисунок 28. Редактор действий по сотрудникам

Редактор действий по сотрудникам

Действие по резерву

Рисунок 29. Редактор действий по сотрудникам

Редактор действий по сотрудникам

Пользовательский компонент

Необходимо изменить структуру сведений о пользовательском компоненте и способ их отображения в навигаторе:

  1. Пользовательский компонент представляет собой двухуровневое дерево:

    • корнем дерева являются сведения о компоненте (название, код, признак использования в формах), по двойному клику по ноде в рабочей области отображается редактор этих сведений:

Рисунок 30. Сведения о пользовательском компоненте

Сведения о пользовательском компоненте

- при первом сохранении пользовательского компонента автоматически создаются два файла, 
которые отображаются в навигаторе как дочерние ноды компонента: 

    1. `script.js`, в который может быть добавлен код JavaScript;
    
    2. `template.html`, в который может быть добавлен HTML-код компонента.

Рисунок 31. Отображение поддерева пользовательского компонента в навигаторе

Отображение поддерева пользовательского компонента в навигаторе

- по двойному клику по дочерним нодам в рабочей области отображается редактор кода.
Внешний модуль-компонент

Рисунок 32. Редактор ВМК

Редактор ВМК

Внешний модуль

Рисунок 33. Редактор внешних модулей

Редактор внешних модулей

Пользовательский отчет

Рисунок 34. Редактор пользовательских отчетов

Редактор пользовательских отчетов

  1. На панель инструментов редактора добавить кнопку "Права на отчет". Кнопка отображается только для сохраненного отчета и только в том случае, когда отключен флаг "Доступty всем пользователям". По нажатию на нее открывается редактор групп доступа к отчету.

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

Глобальные настройки платформы

Доступ к глобальным настройкам платформы, общим для всех приложений одного экземпляра Synergy, осуществляется из панели меню, кнопка "Настройки платформы". По нажатию на нее открывается окно "Настройки платформы" (илл. "Настройки платформы"):

Рисунок 35. Настройки платформы

Настройки платформы

Окно настроек платформы отображается поверх 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 при создании не содержат элементов.

  • исключить возможность добавления новых справочников в разделе (не отображать кнопку "+");

  • исключить возможность удаления справочников.