-
Kernel
-
Object
-
Plugins
-
Release Notes
Kernel
Object
Plugins
Release Notes
The program has the following types of web-interface:
For calling of the running system use URL: http://<host>:<port>; where:
<host> - host name or IP address of the server;
<port> - port, by default is 9088.
Configuration process has to be started from User interface.
The interface is available by suffix /user. This is the main application’s UI. After creation database has only one superuser admin with password admin.
Change them after the first log in. The user with ID=1 is a special one, permissions are ignored for him. |
The green button in the top-left corner opens drop-down Menu for running tools, allowed for the current user.
Each running tool has a button on toolbar, the active tool marked with blue background. Placing mouse pointer over a toolbar button shows full menu path to the related tool, Processes / Process Queues on the screen.
No needed tools can be closed by click to grey crosses on right toolbar buttons, or by right-click popup menu on active tool button.
Right to the toolbar can be displayed one or multiple user-configured process counters, showing quantity interesting processes, 70 for the screen. After is placed number of notifications, blinking in case of changing it. In the drop-down menu, opened after mouse click on notification counter, presented separated parts of the number, occurred in different tools. Click to the menu item opens the mentioned tool with unread news or messages.
In the top right corner has shown the name of the current user. Click on it opens drop-down menu with options for see own profile, processes or terminate the session.
Shows the title from the active object or tool, click on that refreshes the active content area.
The prefix O points to open link of the active content. |
In center of the topline, right from the title, placed so-named State area, there can be the related documentation link with ? char.
Or string representing the current state of active content.
There is also may be placed some controls of the active tool.
The Buffer contains list of inactive objects, previously being opened and not explicitly closed by switching activity to another object or tool. The size of the buffer is limited, last placed object placed on the top, others are shifted down, closing the oldest if the limit size has been reached.
Objects in buffer are used for quickly re-open them or object selection in some operations, like link creation.
No more needed objects in buffer may be closed by click on grey crosses at right area.
A Tool acts like an application inside the application and allows perform different data manipulation. Each tool can be opened only once inside a browser window, re-opening just makes it active. Beside of menu, switching active tool may be performed by click on an inactive toolbar button, or using Back and Forward browser navigation commands. The last option is possible, because any tool has an unique location URL, e.g.: /user/search, /user/news, /user/process/queue
An Object represents a set of related data: process, customer, user profile or some another from a plugin. Unlike tools, many objects of the same type can be opened in same time, their ID ends the object’s browser URL after # char.
In active content area can be placed only one tool, or an object, like on the screen above. Inactivated objects placed it buffer.
Button colors have the following meanings.
Button view | Functionality |
---|---|
![]() |
Greens call an editor for adding new entity. |
![]() |
Browns send request to server. |
![]() |
Shown progress indicator during server processing. |
![]() |
Whites do all other actions. |
When hovering mouse pointer on some interface elements, additional information is shown. As example on toolbar buttons displayed a full menu path, for object buffer shown just a short hint.
For input fields there might be the logic’s details.
In many cases these tips contain entity IDs.
IDs are unique numbers, used for identification entities over the system. They are widely used in configurations.
In admin tools the IDs are shown normally as separated table column.
For regular users the are hidden as HTML tooltips, shown only when mouse is over the item.
Очень большое количество редко меняющихся настроек поведения системы вынесено в конфигурации. Конфигурация - это текстовый блок, состоящих из записей вида: <ключ>=<значение>. На одной строке может быть только одна такая запись, символ # в начале строки означает комментарий.
Конфигурации вводятся либо в текстовых .properties - файлах (опции подключения к БД, базовые настройки), либо в редакторах конфигурации, сохраняясь в базе данных.
В значениях параметров конфигурации возможна подстановка ранее указанных значений с помощью подстановок {@имя параметра}. Рассмотрим пример подстановки.
# определение значения howYou=how you # использование подстановки some.kind.of.config.record=Thats {@howYou} should use macro!
При такой конфигурации при взятии значения some.kind.of.config.record получаем в результате строку "Thats how you should use macro!". Подставляемое значение должно быть обязательно определено ранее подстановки.
После разбора конфигурация используется системой как набор пар ключ - значение, в котором порядок не определён. При необходимости указания порядка в ключе вводятся дополнительные числовые индексы.
Например:
object.1.id=1 object.1.title=Title1 object.2.id=2 object.2.title=Title2
При большом количестве подобных записей ведение индекса может быть затруднительным, особенно при необходимости изменения номеров записей. В этом случе индекс можно вынести в отдельную переменную, увеличивая его с помощью макроса inc. Далее приведена идентичная конфигурация, индексы в которой выведены в переменную.
object.{@inc:cnt}.id=1 object.{@cnt}.title=Title1 object.{@inc:cnt}.id=2 object.{@cnt}.title=Title2
Помимо присвоения параметр конфигурации можно приклеивать к уже существующему под таким ключём значению. Для этого используется оператор += Например:
key=1 key+=,2 key+=,3
В этом случе под ключом key будет храниться строка "1,2,3".
Склеивание помогает разбить длинную строку конфигурации на несколько более читаемых. Например:
# дата рожд., с.-н. пасп., д.в. пасп., кем выд. пасп, адрес проп., тел. гор, тел. сот, адрес(а) усл., перс. данные bgbilling:creator.importParameters=73,74,75,76,77,78,14,12,115 # ИНН, КПП, ФИО руководителя, полное название, должность рук.-ля, Email(ы) bgbilling:creator.importParameters+=,248,249, 252, 428, 429, 15
Также оно полезно при объединении нескольких конфигураций, позволяя создать общую объединённую переменную.
Ещё один способ разбития на несколько строк значения конфигурации. Используется, например, в JEXL скриптах.
value=<<END Line1 Line2 END
Значение value будет Line1Line2. Переносы строк не участвуют в склеивании. Вместо END можно использовать любую строку.
The interface is available by suffix /usermob.
В текущей версии мобильный интерфейс пользователя предоставляет доступ к мобильной очереди процессов. В отличие от обычной она сильно ограничена функциональностью:
фильтрация и сортировка жёстко заданы;
значения колонок со ссылками (открытие контрагент, пользователя) отображаются простым текстом, как при выводе очереди на печать;
нет постраничного деления, предполагается, что фильтр ограничивает весь необходимый набор процессов для исполнителя.
Для того, чтобы очередь процессов была считалась мобильной, в конфигурации её должно быть указано:
showIn=usermob
Для всех фильтров должны быть определены жёстко значения, например:
filter.{@inc:cnt}.type=openClose filter.{@cnt}.values=open filter.{@inc:cnt}.type=executors filter.{@cnt}.values=current sort.combo.count=3 sort.mode.2.column.id=2 sort.mode.2.title=Создан обр. sort.mode.2.desc=1 sort.mode.3.column.id=6 sort.mode.3.title=Статус
Создание процесса в очереди возможно только мастером, для всех разрешённые к созданию типы процессов должны быть указаны в переменной конфигурации очереди createAllowedProcessList примерно следующим образом:
createAllowedProcessList=72:Подключение;74:Подключение1
В данном примере 72 и 74 - коды процессов, для каждого создаваемого типа будет отображена своя кнопка.
Открытие процесса происходит нажатием в любое место строки таблицы. При открытии процессе также вызывается мастер. Но не создания а редактирования. Пример открытого процесса со следующей конфигурацией мастера:
wizard.step.1.title=Статус wizard.step.1.class=SetStatusStep wizard.step.2.title=Описание wizard.step.2.class=SetDescriptionStep
The interface is available by suffix /open.
Configuration sample of NGINX for accessing it from outside network.
Beside of some kernel functionality, described below, this interface is also used by following plugins:
Default <OPEN_URL> for accessing the open interface is /open that can be changed in configuration. It is recommended to make separated included configuration for configuring open interface.
# changed root <OPEN_URL> #url.open=https://demo.bgerp.org/open
For enabling showing user specific information by URL <OPEN_URL>/profile/<USER_ID>:
create user parameter with type list and value 1=Yes, ID of that is <ENABLE_PARAM_ID>;
add the following records in configuration.
user.open.enable.paramId=<ENABLE_PARAM_ID> user.open.show.paramIds=<PARAM_IDS>
Where:
<PARAM_IDS> - comma-separated user parameter IDs to be shown, parameter type file is not supported
For enabling showing process information by URL <OPEN_URL>/process/<PROCESS_ID> define in configuration:
process.open.typeIds=<TYPE_IDS> process.open.show.paramIds=<PARAM_IDS> process.open.show.message.tagIds=<MESSAGE_TAG_IDS> # optionally JEXL expression for handling access secrets #process.open.secret.expression=<SECRET_EXPRESSION>
Where:
<TYPE_IDS> - comma-separated process type IDs to be shown;
<PARAM_IDS> - comma-separated process parameter IDs to be shown, parameter type file is not supported;
<MESSAGE_TAG_IDS> - comma-separated message tag IDs to be shown, * - show all tags;
<SECRET_EXPRESSION> - JEXL expression for secret handling, e.g using plugin secret.
For enabling showing process queue by URL <OPEN_URL>/process/queue/<OPEN_NAME> define in configuration of the queue:
openUrl=<OPEN_NAME> media.html.open.columns=<COLUMN_IDS>
Where:
<COLUMN_IDS> - comma-separated list of queue columns.
For localization of the Open Interface add HTTP request parameter lang=<LANG>, where <LANG> - shortcut of the wanted language.