Home page (Dashboard)
General description
A Dashboard is a number of blocks of different types. The page is divided into there regions: TOP, LEFT, RIGHT. Blocks can be moved between regions, and up and down within the region. Blocks can be collapsed.
They are classified by its content - Task bar (large icons), List, and Report (Diagram).
Homepage XML
The following is an XML of the COREmanager Home page:
<xml> <doc lang="ru" func="dashboard" binary="/core" host="https://127.0.0.1:1500" stylesheet="dashboard" theme="/manimg/orion/" css="main.css" logo="logo.png" logolink="" favicon="favicon.ico" localdir="default/"> <block name="taskbar" position="top" type="toolbar" display=""> <toolbtn form="product.install" list="product" img="mb-install" name="product.install" sprite="yes"/> <toolbtn form="usrparam" img="mb-set" name="usrparam" sprite="yes"/> <toolbtn window="help" img="mb-mgrhelp" name="help" sprite="yes"/> </block> <block name="longtask" position="left" type="list" func="longtask" rows="5" display="max"> <toolbtn name="view" default="yes"/> <toolbtn name="delete"/> <col name="name" type="data" sort="alpha"/> <col name="startdate" type="data" sort="alpha"/> <col name="enddate" type="data" sort="alpha" sorted="desc"/> <col name="status" sort="prop"/> </block> <block name="changelog.changes" position="left" type="list" func="changelog.changes" rows="12" display="max"> <col name="desc" sorted="yes"/> <col name="type"/> </block> <block name="session" position="right" type="list" func="session" rows="5" display="max"> <toolbtn name="kill"/> <col name="id"/> <col name="name" sort="alpha" sorted="yes"/> <col name="level"/> <col name="ip"/> <col name="idle"/> </block> <block name="authlog" position="right" type="list" func="authlog" rows="7" display="max"> <col name="time" sort="alpha" sorted="yes"/> <col name="user" sort="alpha"/> <col name="ip" sort="alpha"/> </block> <messages name="dashboard" checked="yes"> <msg name="actioncolumn">Действие</msg> <msg name="taskbar_help">Справка</msg> <msg name="taskbar_product.install">Установить приложение</msg> <msg name="taskbar_usrparam">Настройки панели</msg> <msg name="title">Главная</msg> <msg name="title_changelog.changes">Список изменений текущей версии</msg> <msg name="title_taskbar">Панель задач</msg> <msg name="taskbar_report" added="lang">Action log report</msg> <msg name="taskbar_brand" added="lang">Brand settings</msg> <msg name="title_longtask">Фоновые задания</msg> <msg name="title_session">Активные сессии</msg> <msg name="title_authlog">Журнал посещений</msg> </messages> <tparams> <func>dashboard</func> <out>devel</out> </tparams> <p_sort>enddate</p_sort> <p_order>desc</p_order> <p_cnt>1</p_cnt> <p_num>1</p_num> <p_elems>0</p_elems> </doc> </xml>
The block element
Contains information about the block position, its status, type, and function to call to get its content.
Attributes of the block element
@name a block name
@position a block position, possible values top, left, right
@type a block type, possible values taskbar, list, report, infolist, url
@display block status, possible values min/max - collapsed or not
@func a name of the function that should be called to obtain the block's content. It is applied to the list, report and infolist types
@autoupdatetimeout to update the block, in seconds
The taskbar block
This block is a number of buttons to call a specific function.
The toolbtn element
Contains information about the button, its icon, and behavior.
Attributes of the toolbtn element
@name a button name
@top call functions from the attribute's value, and reboot desktop
@form open a form, the name of the form's function in the attribute value
@list open a list, the name of the lists's function in the attribute value
@window call a function from the attribute's value in a new window
@link open the url from the attribute value
@targeta standard attribute of the link, which is used along with the link
@img a name of the button's icon
@sprite an icon is included into the sprite
Localization
text to an icom localized messages based on the icon's name
The list-type block
Buttons (if any) in this list are located in a separate column, in each string. Buttons are handled in the same way as in the show/hide list and types.
Getting the block content
A list block doesn't contain any useful information. To get a list, send a request something like this MGR_URL?func=@list&dashboard=@name, where @list and @name attributes of the block element.
This request will handle modules.xsl, a distinctive feature of the XML is that the metadata element contains the @dashboard attribute
The url-type block
This is a frame. A path to the file for the frame is taken from the url element
XML:
<block name="promo" position="top" type="url" display="max"> <url>https://ispsystem.com/external/banners/?manager=core&lang=ru</url> </block>
The infolist-type block
Values in this list are divided into groups.
XML:
<metadata name="dashboard.info" type="infolist" mgr="billmgr" dashboard="yes"> <rowdata> <rowgroup name="acc_info"> <row name="id" type="data"/> <row name="regdate" type="data"/> <row name="phone" type="data/> </rowgroup> <rowgroup name="personal_account"> <row name="provider" type="data/> <row name="balance" type="link"/> <row name="annual_turnover" type="data"/> </rowgroup> <rowgroup name="service"> <row name="services" type="indicator" view="brackets"/> </rowgroup> </rowdata> </metadata> <elem> <id>XXX</id> <regdate>2013-05-08</regdate> <phone/> <provider>FirstDEDIC</provider> <balance func="payment.add">0.0000 RUB</balance> <annual_turnover>0.0000 RUB</annual_turnover> <services_total>80</services_total> <services_used color="red">10</services_used> </elem>
The rowgroup element
The elements are grouped according to a certain logic.
rowgroup attributes
@name an element name. It is used for group's name localization
The row element
Describes a raw.
row attributes
@namean element name. It is used for raw's name localisation@typespecifies a data type. Possible values: data, link, indicator
Types:
- data - text
- link - link to a form (a function name and elid are specified by the @func and @elid attributes in the element with the value for string), or an external resource (the link is specified in the @url attribute in the element with the value for string)
- indicator - is displayed like 80 (10), the first figure is taken from STRINGNAME_total, the second one - STRINGNAME_used, you can also set a color using the @color attribute
@viewonly for the type - indicator, if it is set to brackets, show the indicator as 80 (10)
The report-type block
This is a report, which contains only diagrams without table data.
Getting block contents
To get the contents, send the call something like this MGR_URL?func=@func&dashboard=@name, where @func, @name are attributes of the block element. Besides, the element may contain child elements param with the @name attribute, that should be passed in the call.
<xml> \<block ...\>
<param name="foo">bar</param>
<param name="bar">foo</param>
</block> </xml>
The dashboard-report.xsl template will be applied to the panel's response.
Saving block after modification
When changing block's position or collapsing, send a call to the control panel to save data, something like this MGR_URL?func=dashboard.save&out=xml&block=BLOCK_NAME&display=DISPLAY&order=ORDER&position=POSITION , where BLOCK_NAME - the block name, DISPLAY - the block status min/max, POSITION - current region of the block top/left/right, ORDER - block position in the region (0, 1 ,2) . A response may not be handled.
Localization
block heading a localized message based on the block's name + the title_ prefix.