Slight (incomptaible!) modification to the dashboards format to support incremental changes through the XML.

SVN:trunk[2336]
This commit is contained in:
Denis Flaven
2012-10-24 08:04:17 +00:00
parent b72151d968
commit 80ec842042
18 changed files with 991 additions and 630 deletions

View File

@@ -59,22 +59,54 @@ abstract class Dashboard
$oCellsNode = $this->oDOMNode->getElementsByTagName('cells')->item(0); $oCellsNode = $this->oDOMNode->getElementsByTagName('cells')->item(0);
$oCellsList = $oCellsNode->getElementsByTagName('cell'); $oCellsList = $oCellsNode->getElementsByTagName('cell');
$aCellOrder = array();
$iCellRank = 0;
foreach($oCellsList as $oCellNode) foreach($oCellsList as $oCellNode)
{ {
$aDashletList = array(); $aDashletList = array();
$oDashletList = $oCellNode->getElementsByTagName('dashlet'); $oCellRank = $oCellNode->getElementsByTagName('rank')->item(0);
if ($oCellRank)
{
$iCellRank = (int)$oCellRank->textContent;
}
$oDashletsNode = $oCellNode->getElementsByTagName('dashlets')->item(0);
$oDashletList = $oDashletsNode->getElementsByTagName('dashlet');
$iRank = 0;
$aDashletOrder = array();
foreach($oDashletList as $oDomNode) foreach($oDashletList as $oDomNode)
{ {
$sDashletClass = $oDomNode->getAttribute('xsi:type'); $sDashletClass = $oDomNode->getAttribute('xsi:type');
$oRank = $oDomNode->getElementsByTagName('rank')->item(0);
if ($oRank)
{
$iRank = (int)$oRank->textContent;
}
$sId = $oDomNode->getAttribute('id'); $sId = $oDomNode->getAttribute('id');
$oNewDashlet = new $sDashletClass($sId); $oNewDashlet = new $sDashletClass($sId);
$oNewDashlet->FromDOMNode($oDomNode); $oNewDashlet->FromDOMNode($oDomNode);
$aDashletList[] = $oNewDashlet; $aDashletOrder[] = array('rank' => $iRank, 'dashlet' => $oNewDashlet);
} }
$this->aCells[] = $aDashletList; usort($aDashletOrder, array(get_class($this), 'SortOnRank'));
$aDashletList = array();
foreach($aDashletOrder as $aItem)
{
$aDashletList[] = $aItem['dashlet'];
}
$aCellOrder[] = array('rank' => $iCellRank, 'dashlets' => $aDashletList);
} }
usort($aCellOrder, array(get_class($this), 'SortOnRank'));
foreach($aCellOrder as $aItem)
{
$this->aCells[] = $aItem['dashlets'];
}
} }
static function SortOnRank($aItem1, $aItem2)
{
return ($aItem1['rank'] > $aItem2['rank']) ? +1 : -1;
}
/** /**
* Error handler to turn XML loading warnings into exceptions * Error handler to turn XML loading warnings into exceptions
*/ */
@@ -108,17 +140,29 @@ abstract class Dashboard
$oCellsNode = $oDoc->createElement('cells'); $oCellsNode = $oDoc->createElement('cells');
$oMainNode->appendChild($oCellsNode); $oMainNode->appendChild($oCellsNode);
$iCellRank = 0;
foreach ($this->aCells as $aCell) foreach ($this->aCells as $aCell)
{ {
$oCellNode = $oDoc->createElement('cell'); $oCellNode = $oDoc->createElement('cell');
$oCellNode->setAttribute('id', $iCellRank);
$oCellsNode->appendChild($oCellNode); $oCellsNode->appendChild($oCellNode);
$oCellRank = $oDoc->createElement('rank', $iCellRank);
$oCellNode->appendChild($oCellRank);
$iCellRank++;
$iDashletRank = 0;
$oDashletsNode = $oDoc->createElement('dashlets');
$oCellNode->appendChild($oDashletsNode);
foreach ($aCell as $oDashlet) foreach ($aCell as $oDashlet)
{ {
$oNode = $oDoc->createElement('dashlet'); $oNode = $oDoc->createElement('dashlet');
$oCellNode->appendChild($oNode); $oDashletsNode->appendChild($oNode);
$oNode->setAttribute('id', $oDashlet->GetID()); $oNode->setAttribute('id', $oDashlet->GetID());
$oNode->setAttribute('xsi:type', get_class($oDashlet)); $oNode->setAttribute('xsi:type', get_class($oDashlet));
$oDashletRank = $oDoc->createElement('rank', $iDashletRank);
$oNode->appendChild($oDashletRank);
$iDashletRank++;
$oDashlet->ToDOMNode($oNode); $oDashlet->ToDOMNode($oNode);
} }
} }

View File

@@ -3,25 +3,39 @@
<layout>DashboardLayoutTwoCols</layout> <layout>DashboardLayoutTwoCols</layout>
<title></title> <title></title>
<cells> <cells>
<cell> <cell id="0">
<dashlet id="1" xsi:type="DashletGroupByBars"> <rank>0</rank>
<title>UI-ChangeManagementOverview-ChangeByType</title> <dashlets>
<query>SELECT Change</query> <dashlet id="1" xsi:type="DashletGroupByBars">
<group_by>finalclass</group_by> <rank>0</rank>
<style>bars</style> <title>UI-ChangeManagementOverview-ChangeByType</title>
</dashlet> <query>SELECT Change</query>
<group_by>finalclass</group_by>
<style>bars</style>
</dashlet>
</dashlets>
</cell> </cell>
<cell> <cell id="1">
<dashlet id="2" xsi:type="DashletObjectList"/> <rank>1</rank>
<title>UI-ChangeManagementOverview-ChangeUnassigned</title> <dashlets>
<query>SELECT Change WHERE status = 'new'</query> <dashlet id="2" xsi:type="DashletObjectList">
<menu>false</menu> <rank>0</rank>
<title>UI-ChangeManagementOverview-ChangeUnassigned</title>
<query>SELECT Change WHERE status = 'new'</query>
<menu>false</menu>
</dashlet>
</dashlets>
</cell> </cell>
<cell> <cell id="2">
<dashlet id="3" xsi:type="DashletObjectList"/> <rank>2</rank>
<title>UI-ChangeManagementOverview-ChangeWithOutage</title> <dashlets>
<query>SELECT Change WHERE outage = 'yes'</query> <dashlet id="3" xsi:type="DashletObjectList">
<menu>false</menu> <rank>0</rank>
<title>UI-ChangeManagementOverview-ChangeWithOutage</title>
<query>SELECT Change WHERE outage = 'yes'</query>
<menu>false</menu>
</dashlet>
</dashlets>
</cell> </cell>
</cells> </cells>
</dashboard> </dashboard>

View File

@@ -3,72 +3,99 @@
<layout>DashboardLayoutOneCol</layout> <layout>DashboardLayoutOneCol</layout>
<title></title> <title></title>
<cells> <cells>
<cell> <cell id="0">
<dashlet id="1" xsi:type="DashletHeaderDynamic"> <rank>0</rank>
<title>Menu_ConfigManagement_Devices</title> <dashlets>
<icon>itop-config-mgmt-1.0.0/images/server.png</icon> <dashlet id="1" xsi:type="DashletHeaderDynamic">
<subtitle>Menu_ConfigManagement_AllDevices</subtitle> <rank>0</rank>
<query>SELECT FunctionalCI</query> <title>Menu_ConfigManagement_Devices</title>
<group_by>status</group_by> <icon>itop-config-mgmt-1.0.0/images/server.png</icon>
<values>implementation,production,obsolete</values> <subtitle>Menu_ConfigManagement_AllDevices</subtitle>
</dashlet> <query>SELECT FunctionalCI</query>
<dashlet id="2" xsi:type="DashletBadge"> <group_by>status</group_by>
<class>Server</class> <values>implementation,production,obsolete</values>
</dashlet> </dashlet>
<dashlet id="3" xsi:type="DashletBadge"> <dashlet id="2" xsi:type="DashletBadge">
<class>NetworkDevice</class> <rank>1</rank>
</dashlet> <class>Server</class>
<dashlet id="5" xsi:type="DashletBadge"> </dashlet>
<class>PC</class> <dashlet id="3" xsi:type="DashletBadge">
</dashlet> <rank>2</rank>
<dashlet id="6" xsi:type="DashletBadge"> <class>NetworkDevice</class>
<class>MobilePhone</class> </dashlet>
</dashlet> <dashlet id="5" xsi:type="DashletBadge">
<dashlet id="7" xsi:type="DashletBadge"> <rank>3</rank>
<class>Printer</class> <class>PC</class>
</dashlet> </dashlet>
<dashlet id="6" xsi:type="DashletBadge">
<rank>4</rank>
<class>MobilePhone</class>
</dashlet>
<dashlet id="7" xsi:type="DashletBadge">
<rank>5</rank>
<class>Printer</class>
</dashlet>
</dashlets>
</cell> </cell>
<cell> <cell id="1">
<dashlet id="8" xsi:type="DashletHeaderStatic"> <rank>1</rank>
<title>Menu:ConfigManagement:SWAndApps</title> <dashlets>
<icon>itop-config-mgmt-1.0.0/images/application.png</icon> <dashlet id="8" xsi:type="DashletHeaderStatic">
</dashlet> <rank>0</rank>
<dashlet id="9" xsi:type="DashletBadge"> <title>Menu:ConfigManagement:SWAndApps</title>
<class>ApplicationInstance</class> <icon>itop-config-mgmt-1.0.0/images/application.png</icon>
</dashlet> </dashlet>
<dashlet id="10" xsi:type="DashletBadge"> <dashlet id="9" xsi:type="DashletBadge">
<class>DBServerInstance</class> <rank>1</rank>
</dashlet> <class>ApplicationInstance</class>
<dashlet id="11" xsi:type="DashletBadge"> </dashlet>
<class>DatabaseInstance</class> <dashlet id="10" xsi:type="DashletBadge">
</dashlet> <rank>2</rank>
<dashlet id="12" xsi:type="DashletBadge"> <class>DBServerInstance</class>
<class>Patch</class> </dashlet>
</dashlet> <dashlet id="11" xsi:type="DashletBadge">
<dashlet id="13" xsi:type="DashletBadge"> <rank>3</rank>
<class>Licence</class> <class>DatabaseInstance</class>
</dashlet> </dashlet>
<dashlet id="12" xsi:type="DashletBadge">
<rank>4</rank>
<class>Patch</class>
</dashlet>
<dashlet id="13" xsi:type="DashletBadge">
<rank>5</rank>
<class>Licence</class>
</dashlet>
</dashlets>
</cell> </cell>
<cell> <cell id="2">
<dashlet id="14" xsi:type="DashletHeaderStatic"> <rank>2</rank>
<title>Menu:ConfigManagement:Misc</title> <dashlets>
<icon>itop-config-mgmt-1.0.0/images/subnet.png</icon> <dashlet id="14" xsi:type="DashletHeaderStatic">
</dashlet> <rank>0</rank>
<dashlet id="15" xsi:type="DashletBadge"> <title>Menu:ConfigManagement:Misc</title>
<class>NetworkInterface</class> <icon>itop-config-mgmt-1.0.0/images/subnet.png</icon>
</dashlet> </dashlet>
<dashlet id="16" xsi:type="DashletBadge"> <dashlet id="15" xsi:type="DashletBadge">
<class>Subnet</class> <rank>1</rank>
</dashlet> <class>NetworkInterface</class>
<dashlet id="17" xsi:type="DashletBadge"> </dashlet>
<class>BusinessProcess</class> <dashlet id="16" xsi:type="DashletBadge">
</dashlet> <rank>2</rank>
<dashlet id="18" xsi:type="DashletBadge"> <class>Subnet</class>
<class>ApplicationSolution</class> </dashlet>
</dashlet> <dashlet id="17" xsi:type="DashletBadge">
<dashlet id="19" xsi:type="DashletBadge"> <rank>3</rank>
<class>Group</class> <class>BusinessProcess</class>
</dashlet> </dashlet>
<dashlet id="18" xsi:type="DashletBadge">
<rank>4</rank>
<class>ApplicationSolution</class>
</dashlet>
<dashlet id="19" xsi:type="DashletBadge">
<rank>5</rank>
<class>Group</class>
</dashlet>
</dashlets>
</cell> </cell>
</cells> </cells>
</dashboard> </dashboard>

View File

@@ -1,31 +1,43 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<dashboard xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <dashboard xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<title>UI:ConfigMgmtMenuOverview:Title</title> <title>UI:ConfigMgmtMenuOverview:Title</title>
<layout>DashboardLayoutTwoCols</layout> <layout>DashboardLayoutTwoCols</layout>
<cells> <cells>
<cell> <cell id="0">
<dashlet id="1" xsi:type="DashletGroupByPie"> <rank>0</rank>
<title>UI-ConfigMgmtMenuOverview-FunctionalCIbyStatus</title> <dashlets>
<query>SELECT FunctionalCI</query> <dashlet id="1" xsi:type="DashletGroupByPie">
<group_by>status</group_by> <rank>0</rank>
<style>pie</style> <title>UI-ConfigMgmtMenuOverview-FunctionalCIbyStatus</title>
</dashlet> <query>SELECT FunctionalCI</query>
</cell> <group_by>status</group_by>
<cell> <style>pie</style>
<dashlet id="2" xsi:type="DashletGroupByBars"> </dashlet>
<title>UI-ConfigMgmtMenuOverview-FunctionalCIByType</title> </dashlets>
<query>SELECT FunctionalCI</query> </cell>
<group_by>finalclass</group_by> <cell id="0">
<style>bars</style> <rank>0</rank>
</dashlet> <dashlets>
</cell> <dashlet id="2" xsi:type="DashletGroupByBars">
<cell> <rank>0</rank>
<dashlet id="3" xsi:type="DashletGroupByTable"> <title>UI-ConfigMgmtMenuOverview-FunctionalCIByType</title>
<title>UI-ConfigMgmtMenuOverview-FunctionalCIByType</title> <query>SELECT FunctionalCI</query>
<query>SELECT FunctionalCI</query> <group_by>finalclass</group_by>
<group_by>finalclass</group_by> <style>bars</style>
<style>table</style> </dashlet>
</dashlet> </dashlets>
</cell> </cell>
</cells> <cell id="0">
<rank>0</rank>
<dashlets>
<dashlet id="3" xsi:type="DashletGroupByTable">
<rank>0</rank>
<title>UI-ConfigMgmtMenuOverview-FunctionalCIByType</title>
<query>SELECT FunctionalCI</query>
<group_by>finalclass</group_by>
<style>table</style>
</dashlet>
</dashlets>
</cell>
</cells>
</dashboard> </dashboard>

View File

@@ -4,28 +4,38 @@
<title></title> <title></title>
<cells> <cells>
<cell> <cell>
<dashlet id="1" xsi:type="DashletHeaderDynamic"> <rank>0</rank>
<title>UI:ContactsMenu</title> <dashlets>
<icon>itop-config-mgmt-1.0.0/images/team.png</icon> <dashlet id="1" xsi:type="DashletHeaderDynamic">
<subtitle>Menu:ConfigManagement:AllContacts</subtitle> <rank>0</rank>
<query>SELECT Contact</query> <title>UI:ContactsMenu</title>
<group_by>status</group_by> <icon>itop-config-mgmt-1.0.0/images/team.png</icon>
<values>active,inactive</values> <subtitle>Menu:ConfigManagement:AllContacts</subtitle>
</dashlet> <query>SELECT Contact</query>
<dashlet id="2" xsi:type="DashletBadge"> <group_by>status</group_by>
<class>Team</class> <values>active,inactive</values>
</dashlet> </dashlet>
<dashlet id="3" xsi:type="DashletBadge"> <dashlet id="2" xsi:type="DashletBadge">
<class>Person</class> <rank>1</rank>
</dashlet> <class>Team</class>
</dashlet>
<dashlet id="3" xsi:type="DashletBadge">
<rank>2</rank>
<class>Person</class>
</dashlet>
</dashlets>
</cell> </cell>
<cell> <cell>
<dashlet id="4" xsi:type="DashletGroupByPie"> <rank>1</rank>
<title>UI-ContactsMenu-ContactsByLocation</title> <dashlets>
<query>SELECT Contact</query> <dashlet id="4" xsi:type="DashletGroupByPie">
<group_by>location_id</group_by> <rank>0</rank>
<style>pie</style> <title>UI-ContactsMenu-ContactsByLocation</title>
</dashlet> <query>SELECT Contact</query>
<group_by>location_id</group_by>
<style>pie</style>
</dashlet>
</dashlets>
</cell> </cell>
</cells> </cells>
</dashboard> </dashboard>

View File

@@ -1,29 +1,41 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<dashboard xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <dashboard xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<title>UI:IncidentMgmtMenuOverview:Title</title> <title>UI:IncidentMgmtMenuOverview:Title</title>
<layout>DashboardLayoutTwoCols</layout> <layout>DashboardLayoutTwoCols</layout>
<cells> <cells>
<cell> <cell>
<dashlet id="1" xsi:type="DashletGroupByBars"> <rank>0</rank>
<title>UI-IncidentManagementOverview-IncidentByService</title> <dashlets>
<query>SELECT Incident</query> <dashlet id="1" xsi:type="DashletGroupByBars">
<group_by>service_id</group_by> <rank>0</rank>
<style>bars</style> <title>UI-IncidentManagementOverview-IncidentByService</title>
</dashlet> <query>SELECT Incident</query>
</cell> <group_by>service_id</group_by>
<cell> <style>bars</style>
<dashlet id="2" xsi:type="DashletGroupByPie"> </dashlet>
<title>UI-IncidentManagementOverview-IncidentByPriority</title> </dashlets>
<query>SELECT Incident</query> </cell>
<group_by>priority</group_by> <cell>
<style>pie</style> <rank>1</rank>
</dashlet> <dashlets>
</cell> <dashlet id="2" xsi:type="DashletGroupByPie">
<cell> <rank>0</rank>
<dashlet id="3" xsi:type="DashletObjectList"> <title>UI-IncidentManagementOverview-IncidentByPriority</title>
<title>UI-IncidentManagementOverview-IncidentUnassigned</title> <query>SELECT Incident</query>
<query>SELECT Incident WHERE status IN ("new", "escalated_tto")</query> <group_by>priority</group_by>
</dashlet> <style>pie</style>
</cell> </dashlet>
</cells> </dashlets>
</cell>
<cell>
<rank>2</rank>
<dashlets>
<dashlet id="3" xsi:type="DashletObjectList">
<rank>0</rank>
<title>UI-IncidentManagementOverview-IncidentUnassigned</title>
<query>SELECT Incident WHERE status IN ("new", "escalated_tto")</query>
</dashlet>
</dashlets>
</cell>
</cells>
</dashboard> </dashboard>

View File

@@ -3,27 +3,40 @@
<layout>DashboardLayoutTwoCols</layout> <layout>DashboardLayoutTwoCols</layout>
<title></title> <title></title>
<cells> <cells>
<cell> <cell id="0">
<dashlet id="1" xsi:type="DashletGroupByBars"> <rank>0</rank>
<title>UI-ProblemManagementOverview-ProblemByService</title> <dashlets>
<query>SELECT Problem</query> <dashlet id="1" xsi:type="DashletGroupByBars">
<group_by>service_id</group_by> <rank>0</rank>
<style>bars</style> <title>UI-ProblemManagementOverview-ProblemByService</title>
</dashlet> <query>SELECT Problem</query>
<group_by>service_id</group_by>
<style>bars</style>
</dashlet>
</dashlets>
</cell> </cell>
<cell> <cell id="1">
<dashlet id="2" xsi:type="DashletGroupByPie"> <rank>1</rank>
<title>UI-ProblemManagementOverview-ProblemByPriority</title> <dashlets>
<query>SELECT Problem</query> <dashlet id="2" xsi:type="DashletGroupByPie">
<group_by>priority</group_by> <rank>0</rank>
<style>pie</style> <title>UI-ProblemManagementOverview-ProblemByPriority</title>
</dashlet> <query>SELECT Problem</query>
<group_by>priority</group_by>
<style>pie</style>
</dashlet>
</dashlets>
</cell> </cell>
<cell> <cell id="2">
<dashlet id="3" xsi:type="DashletObjectList"/> <rank>2</rank>
<title>UI-ProblemManagementOverview-ProblemUnassigned</title> <dashlets>
<query>SELECT Problem WHERE status IN ("new")</query> <dashlet id="3" xsi:type="DashletObjectList">
<menu>true</menu> <rank>0</rank>
<title>UI-ProblemManagementOverview-ProblemUnassigned</title>
<query>SELECT Problem WHERE status IN ("new")</query>
<menu>true</menu>
</dashlet>
</dashlets>
</cell> </cell>
</cells> </cells>
</dashboard> </dashboard>

View File

@@ -1,29 +1,41 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<dashboard xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <dashboard xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<title>UI:RequestMgmtMenuOverview:Title</title> <title>UI:RequestMgmtMenuOverview:Title</title>
<layout>DashboardLayoutTwoCols</layout> <layout>DashboardLayoutTwoCols</layout>
<cells> <cells>
<cell> <cell id="0">
<dashlet id="1" xsi:type="DashletGroupByBars"> <rank>0</rank>
<title>UI-RequestManagementOverview-RequestByService</title> <dashlets>
<query>SELECT UserRequest</query> <dashlet id="1" xsi:type="DashletGroupByBars">
<group_by>service_id</group_by> <rank>0</rank>
<style>bars</style> <title>UI-RequestManagementOverview-RequestByService</title>
</dashlet> <query>SELECT UserRequest</query>
</cell> <group_by>service_id</group_by>
<cell> <style>bars</style>
<dashlet id="2" xsi:type="DashletGroupByPie"> </dashlet>
<title>UI-RequestManagementOverview-RequestByPriority</title> </dashlets>
<query>SELECT UserRequest</query> </cell>
<group_by>priority</group_by> <cell id="1">
<style>pie</style> <rank>1</rank>
</dashlet> <dashlets>
</cell> <dashlet id="2" xsi:type="DashletGroupByPie">
<cell> <rank>0</rank>
<dashlet id="3" xsi:type="DashletObjectList"> <title>UI-RequestManagementOverview-RequestByPriority</title>
<title>UI-RequestManagementOverview-RequestUnassigned</title> <query>SELECT UserRequest</query>
<query>SELECT UserRequest WHERE status IN ("new", "escalated_tto")</query> <group_by>priority</group_by>
</dashlet> <style>pie</style>
</cell> </dashlet>
</cells> </dashlets>
</cell>
<cell id="2">
<rank>2</rank>
<dashlets>
<dashlet id="3" xsi:type="DashletObjectList">
<rank>0</rank>
<title>UI-RequestManagementOverview-RequestUnassigned</title>
<query>SELECT UserRequest WHERE status IN ("new", "escalated_tto")</query>
</dashlet>
</dashlets>
</cell>
</cells>
</dashboard> </dashboard>

View File

@@ -4,62 +4,82 @@
<title></title> <title></title>
<cells> <cells>
<cell> <cell>
<dashlet id="1" xsi:type="DashletHeaderDynamic"> <rank>0</rank>
<title>UI:ConfigurationManagementMenu</title> <dashlets>
<icon>itop-config-mgmt-1.0.0/images/database.png</icon> <dashlet id="1" xsi:type="DashletHeaderDynamic">
<subtitle>UI:WelcomeMenu:AllConfigItems</subtitle> <rank>0</rank>
<query>SELECT FunctionalCI</query> <title>UI:ConfigurationManagementMenu</title>
<group_by>status</group_by> <icon>itop-config-mgmt-1.0.0/images/database.png</icon>
<values>implementation,production,obsolete</values> <subtitle>UI:WelcomeMenu:AllConfigItems</subtitle>
</dashlet> <query>SELECT FunctionalCI</query>
<dashlet id="2" xsi:type="DashletBadge"> <group_by>status</group_by>
<class>BusinessProcess</class> <values>implementation,production,obsolete</values>
</dashlet> </dashlet>
<dashlet id="3" xsi:type="DashletBadge"> <dashlet id="2" xsi:type="DashletBadge">
<class>Contact</class> <rank>1</rank>
</dashlet> <class>BusinessProcess</class>
<dashlet id="4" xsi:type="DashletBadge"> </dashlet>
<class>Location</class> <dashlet id="3" xsi:type="DashletBadge">
</dashlet> <rank>2</rank>
<dashlet id="5" xsi:type="DashletBadge"> <class>Contact</class>
<class>Server</class> </dashlet>
</dashlet> <dashlet id="4" xsi:type="DashletBadge">
<dashlet id="6" xsi:type="DashletBadge"> <rank>3</rank>
<class>DatabaseInstance</class> <class>Location</class>
</dashlet> </dashlet>
<dashlet id="7" xsi:type="DashletBadge"> <dashlet id="5" xsi:type="DashletBadge">
<class>NetworkDevice</class> <rank>4</rank>
</dashlet> <class>Server</class>
</dashlet>
<dashlet id="6" xsi:type="DashletBadge">
<rank>5</rank>
<class>DatabaseInstance</class>
</dashlet>
<dashlet id="7" xsi:type="DashletBadge">
<rank>6</rank>
<class>NetworkDevice</class>
</dashlet>
</dashlets>
</cell> </cell>
<cell> <cell>
<dashlet id="8" xsi:type="DashletHeaderDynamic"> <rank>0</rank>
<title>Menu:RequestManagement</title> <dashlets>
<icon>itop-request-mgmt-1.0.0/images/user-request-deadline.png</icon> <dashlet id="8" xsi:type="DashletHeaderDynamic">
<subtitle>UI:WelcomeMenu:AllOpenRequests</subtitle> <rank>0</rank>
<query>SELECT UserRequest WHERE status != "closed"</query> <title>Menu:RequestManagement</title>
<group_by>status</group_by> <icon>itop-request-mgmt-1.0.0/images/user-request-deadline.png</icon>
<values>new,assigned,escalated_tto,escalated_ttr,resolved</values> <subtitle>UI:WelcomeMenu:AllOpenRequests</subtitle>
</dashlet> <query>SELECT UserRequest WHERE status != "closed"</query>
<dashlet id="9" xsi:type="DashletObjectList"> <group_by>status</group_by>
<title>UI:WelcomeMenu:MyCalls</title> <values>new,assigned,escalated_tto,escalated_ttr,resolved</values>
<query>SELECT UserRequest AS i WHERE i.caller_id = :current_contact_id AND status NOT IN ("closed", "resolved")</query> </dashlet>
<menu>true</menu> <dashlet id="9" xsi:type="DashletObjectList">
</dashlet> <rank>1</rank>
<title>UI:WelcomeMenu:MyCalls</title>
<query>SELECT UserRequest AS i WHERE i.caller_id = :current_contact_id AND status NOT IN ("closed", "resolved")</query>
<menu>true</menu>
</dashlet>
</dashlets>
</cell> </cell>
<cell> <cell>
<dashlet id="10" xsi:type="DashletHeaderDynamic"> <rank>0</rank>
<title>Menu:IncidentManagement</title> <dashlets>
<icon>itop-incident-mgmt-1.0.0/images/incident-escalated.png</icon> <dashlet id="10" xsi:type="DashletHeaderDynamic">
<subtitle>UI:WelcomeMenu:OpenIncidents</subtitle> <rank>0</rank>
<query>SELECT Incident WHERE status != "closed"</query> <title>Menu:IncidentManagement</title>
<group_by>status</group_by> <icon>itop-incident-mgmt-1.0.0/images/incident-escalated.png</icon>
<values>new,assigned,escalated_tto,escalated_ttr,resolved</values> <subtitle>UI:WelcomeMenu:OpenIncidents</subtitle>
</dashlet> <query>SELECT Incident WHERE status != "closed"</query>
<dashlet id="11" xsi:type="DashletObjectList"> <group_by>status</group_by>
<title>UI:WelcomeMenu:MyIncidents</title> <values>new,assigned,escalated_tto,escalated_ttr,resolved</values>
<query>SELECT Incident AS i WHERE i.agent_id = :current_contact_id AND status NOT IN ("closed", "resolved")</query> </dashlet>
<menu>true</menu> <dashlet id="11" xsi:type="DashletObjectList">
</dashlet> <rank>1</rank>
<title>UI:WelcomeMenu:MyIncidents</title>
<query>SELECT Incident AS i WHERE i.agent_id = :current_contact_id AND status NOT IN ("closed", "resolved")</query>
<menu>true</menu>
</dashlet>
</dashlets>
</cell> </cell>
</cells> </cells>
</dashboard> </dashboard>

View File

@@ -3,37 +3,54 @@
<layout>DashboardLayoutTwoCols</layout> <layout>DashboardLayoutTwoCols</layout>
<title>UI:ChangeMgmtMenuOverview:Title</title> <title>UI:ChangeMgmtMenuOverview:Title</title>
<cells> <cells>
<cell> <cell id="0">
<dashlet id="1" xsi:type="DashletGroupByTable"> <rank>0</rank>
<title>UI-ChangeManagementOverview-ChangeByCategory-last-7-days</title> <dashlets>
<query>SELECT Change WHERE start_date &gt; DATE_SUB(NOW(), INTERVAL 7 DAY)</query> <dashlet id="1" xsi:type="DashletGroupByTable">
<group_by>category</group_by> <rank>0</rank>
<style>table</style> <title>UI-ChangeManagementOverview-ChangeByCategory-last-7-days</title>
</dashlet> <query>SELECT Change WHERE start_date &gt; DATE_SUB(NOW(), INTERVAL 7 DAY)</query>
<group_by>category</group_by>
<style>table</style>
</dashlet>
</dashlets>
</cell> </cell>
<cell> <cell id="1">
<dashlet id="2" xsi:type="DashletGroupByBars"> <rank>1</rank>
<title>UI-ChangeManagementOverview-Last-7-days</title> <dashlets>
<query>SELECT Change WHERE start_date &gt; DATE_SUB(NOW(), INTERVAL 7 DAY)</query> <dashlet id="2" xsi:type="DashletGroupByBars">
<group_by>start_date:day_of_month</group_by> <rank>0</rank>
<style>bars</style> <title>UI-ChangeManagementOverview-Last-7-days</title>
</dashlet> <query>SELECT Change WHERE start_date &gt; DATE_SUB(NOW(), INTERVAL 7 DAY)</query>
<group_by>start_date:day_of_month</group_by>
<style>bars</style>
</dashlet>
</dashlets>
</cell> </cell>
<cell> <cell id="2">
<dashlet id="3" xsi:type="DashletGroupByTable"> <rank>2</rank>
<title>UI-ChangeManagementOverview-ChangeByDomain-last-7-days</title> <dashlets>
<query>SELECT Change WHERE start_date &gt; DATE_SUB(NOW(), INTERVAL 7 DAY)</query> <dashlet id="3" xsi:type="DashletGroupByTable">
<group_by>finalclass</group_by> <rank>0</rank>
<style>table</style> <title>UI-ChangeManagementOverview-ChangeByDomain-last-7-days</title>
</dashlet> <query>SELECT Change WHERE start_date &gt; DATE_SUB(NOW(), INTERVAL 7 DAY)</query>
<group_by>finalclass</group_by>
<style>table</style>
</dashlet>
</dashlets>
</cell> </cell>
<cell> <cell id="3">
<dashlet id="4" xsi:type="DashletGroupByTable"> <rank>3</rank>
<title>UI-ChangeManagementOverview-ChangeByStatus-last-7-days</title> <dashlets>
<query>SELECT Change WHERE start_date &gt; DATE_SUB(NOW(), INTERVAL 7 DAY)</query> <dashlet id="4" xsi:type="DashletGroupByTable">
<group_by>status</group_by> <rank>0</rank>
<style>table</style> <title>UI-ChangeManagementOverview-ChangeByStatus-last-7-days</title>
</dashlet> <query>SELECT Change WHERE start_date &gt; DATE_SUB(NOW(),
INTERVAL 7 DAY)</query>
<group_by>status</group_by>
<style>table</style>
</dashlet>
</dashlets>
</cell> </cell>
</cells> </cells>
</dashboard> </dashboard>

View File

@@ -3,138 +3,192 @@
<layout>DashboardLayoutOneCol</layout> <layout>DashboardLayoutOneCol</layout>
<title></title> <title></title>
<cells> <cells>
<cell> <cell id="0">
<dashlet id="1" xsi:type="DashletHeaderStatic"> <rank>0</rank>
<title>Menu:ConfigManagement:AllDevices</title> <dashlets>
<icon>itop-config-mgmt/images/server.png</icon> <dashlet id="1" xsi:type="DashletHeaderStatic">
<subtitle>Menu_ConfigManagement_AllDevices</subtitle> <rank>0</rank>
</dashlet> <title>Menu:ConfigManagement:AllDevices</title>
<dashlet id="2" xsi:type="DashletBadge"> <icon>itop-config-mgmt/images/server.png</icon>
<class>Rack</class> <subtitle>Menu_ConfigManagement_AllDevices</subtitle>
</dashlet> </dashlet>
<dashlet id="3" xsi:type="DashletBadge"> <dashlet id="2" xsi:type="DashletBadge">
<class>Enclosure</class> <rank>1</rank>
</dashlet> <class>Rack</class>
<dashlet id="4" xsi:type="DashletBadge"> </dashlet>
<class>Server</class> <dashlet id="3" xsi:type="DashletBadge">
</dashlet> <rank>2</rank>
<dashlet id="5" xsi:type="DashletBadge"> <class>Enclosure</class>
<class>NetworkDevice</class> </dashlet>
</dashlet> <dashlet id="4" xsi:type="DashletBadge">
<dashlet id="6" xsi:type="DashletBadge"> <rank>3</rank>
<class>StorageSystem</class> <class>Server</class>
</dashlet> </dashlet>
<dashlet id="7" xsi:type="DashletBadge"> <dashlet id="5" xsi:type="DashletBadge">
<class>SANSwitch</class> <rank>4</rank>
</dashlet> <class>NetworkDevice</class>
<dashlet id="8" xsi:type="DashletBadge"> </dashlet>
<class>NAS</class> <dashlet id="6" xsi:type="DashletBadge">
</dashlet> <rank>5</rank>
<dashlet id="9" xsi:type="DashletBadge"> <class>StorageSystem</class>
<class>TapeLibrary</class> </dashlet>
</dashlet> <dashlet id="7" xsi:type="DashletBadge">
<dashlet id="10" xsi:type="DashletBadge"> <rank>6</rank>
<class>ElectricalConnection</class> <class>SANSwitch</class>
</dashlet> </dashlet>
<dashlet id="8" xsi:type="DashletBadge">
<rank>7</rank>
<class>NAS</class>
</dashlet>
<dashlet id="9" xsi:type="DashletBadge">
<rank>8</rank>
<class>TapeLibrary</class>
</dashlet>
<dashlet id="10" xsi:type="DashletBadge">
<rank>9</rank>
<class>ElectricalConnection</class>
</dashlet>
</dashlets>
</cell> </cell>
<cell> <cell id="1">
<dashlet id="11" xsi:type="DashletHeaderStatic"> <rank>1</rank>
<title>Menu:ConfigManagement:virtualization</title> <dashlets>
<icon>itop-config-mgmt/images/application.png</icon> <dashlet id="11" xsi:type="DashletHeaderStatic">
</dashlet> <rank>0</rank>
<dashlet id="12" xsi:type="DashletBadge"> <title>Menu:ConfigManagement:virtualization</title>
<class>Farm</class> <icon>itop-config-mgmt/images/application.png</icon>
</dashlet> </dashlet>
<dashlet id="13" xsi:type="DashletBadge"> <dashlet id="12" xsi:type="DashletBadge">
<class>Hypervisor</class> <rank>1</rank>
</dashlet> <class>Farm</class>
<dashlet id="14" xsi:type="DashletBadge"> </dashlet>
<class>VirtualMachine</class> <dashlet id="13" xsi:type="DashletBadge">
</dashlet> <rank>2</rank>
<class>Hypervisor</class>
</dashlet>
<dashlet id="14" xsi:type="DashletBadge">
<rank>3</rank>
<class>VirtualMachine</class>
</dashlet>
</dashlets>
</cell> </cell>
<cell> <cell id="2">
<dashlet id="15" xsi:type="DashletHeaderStatic"> <rank>2</rank>
<title>Menu:ConfigManagement:EndUsers</title> <dashlets>
<icon>itop-config-mgmt/images/team.png</icon> <dashlet id="15" xsi:type="DashletHeaderStatic">
</dashlet> <rank>0</rank>
<dashlet id="16" xsi:type="DashletBadge"> <title>Menu:ConfigManagement:EndUsers</title>
<class>PC</class> <icon>itop-config-mgmt/images/team.png</icon>
</dashlet> </dashlet>
<dashlet id="17" xsi:type="DashletBadge"> <dashlet id="16" xsi:type="DashletBadge">
<class>Phone</class> <rank>1</rank>
</dashlet> <class>PC</class>
<dashlet id="18" xsi:type="DashletBadge"> </dashlet>
<class>IpPhone</class> <dashlet id="17" xsi:type="DashletBadge">
</dashlet> <rank>2</rank>
<dashlet id="19" xsi:type="DashletBadge"> <class>Phone</class>
<class>MobilePhone</class> </dashlet>
</dashlet> <dashlet id="18" xsi:type="DashletBadge">
<dashlet id="20" xsi:type="DashletBadge"> <rank>3</rank>
<class>Tablet</class> <class>IpPhone</class>
</dashlet> </dashlet>
<dashlet id="21" xsi:type="DashletBadge"> <dashlet id="19" xsi:type="DashletBadge">
<class>Printer</class> <rank>4</rank>
</dashlet> <class>MobilePhone</class>
<dashlet id="22" xsi:type="DashletBadge"> </dashlet>
<class>Peripheral</class> <dashlet id="20" xsi:type="DashletBadge">
</dashlet> <rank>5</rank>
<class>Tablet</class>
</dashlet>
<dashlet id="21" xsi:type="DashletBadge">
<rank>6</rank>
<class>Printer</class>
</dashlet>
<dashlet id="22" xsi:type="DashletBadge">
<rank>7</rank>
<class>Peripheral</class>
</dashlet>
</dashlets>
</cell> </cell>
<cell> <cell id="3">
<dashlet id="23" xsi:type="DashletHeaderStatic"> <rank>3</rank>
<title>Menu:ConfigManagement:SWAndApps</title> <dashlets>
<icon>itop-config-mgmt/images/application.png</icon> <dashlet id="23" xsi:type="DashletHeaderStatic">
</dashlet> <rank>0</rank>
<dashlet id="24" xsi:type="DashletBadge"> <title>Menu:ConfigManagement:SWAndApps</title>
<class>Middleware</class> <icon>itop-config-mgmt/images/application.png</icon>
</dashlet> </dashlet>
<dashlet id="25" xsi:type="DashletBadge"> <dashlet id="24" xsi:type="DashletBadge">
<class>DBserver</class> <rank>1</rank>
</dashlet> <class>Middleware</class>
<dashlet id="26" xsi:type="DashletBadge"> </dashlet>
<class>Webserver</class> <dashlet id="25" xsi:type="DashletBadge">
</dashlet> <rank>2</rank>
<dashlet id="27" xsi:type="DashletBadge"> <class>DBserver</class>
<class>OtherSoftware</class> </dashlet>
</dashlet> <dashlet id="26" xsi:type="DashletBadge">
<dashlet id="29" xsi:type="DashletBadge"> <rank>3</rank>
<class>MiddlewareInstance</class> <class>Webserver</class>
</dashlet> </dashlet>
<dashlet id="30" xsi:type="DashletBadge"> <dashlet id="27" xsi:type="DashletBadge">
<class>DatabaseSchema</class> <rank>4</rank>
</dashlet> <class>OtherSoftware</class>
<dashlet id="31" xsi:type="DashletBadge"> </dashlet>
<class>WebApplication</class> <dashlet id="29" xsi:type="DashletBadge">
</dashlet> <rank>5</rank>
<dashlet id="32" xsi:type="DashletBadge"> <class>MiddlewareInstance</class>
<class>Patch</class> </dashlet>
</dashlet> <dashlet id="30" xsi:type="DashletBadge">
<dashlet id="33" xsi:type="DashletBadge"> <rank>6</rank>
<class>Licence</class> <class>DatabaseSchema</class>
</dashlet> </dashlet>
<dashlet id="31" xsi:type="DashletBadge">
<rank>7</rank>
<class>WebApplication</class>
</dashlet>
<dashlet id="32" xsi:type="DashletBadge">
<rank>8</rank>
<class>Patch</class>
</dashlet>
<dashlet id="33" xsi:type="DashletBadge">
<rank>9</rank>
<class>Licence</class>
</dashlet>
</dashlets>
</cell> </cell>
<cell> <cell id="4">
<dashlet id="34" xsi:type="DashletHeaderStatic"> <rank>4</rank>
<title>Menu:ConfigManagement:Misc</title> <dashlets>
<icon>itop-config-mgmt/images/subnet.png</icon> <dashlet id="34" xsi:type="DashletHeaderStatic">
</dashlet> <rank>0</rank>
<dashlet id="35" xsi:type="DashletBadge"> <title>Menu:ConfigManagement:Misc</title>
<class>NetworkInterface</class> <icon>itop-config-mgmt/images/subnet.png</icon>
</dashlet> </dashlet>
<dashlet id="36" xsi:type="DashletBadge"> <dashlet id="35" xsi:type="DashletBadge">
<class>Subnet</class> <rank>1</rank>
</dashlet> <class>NetworkInterface</class>
<dashlet id="37" xsi:type="DashletBadge"> </dashlet>
<class>LogicalVolume</class> <dashlet id="36" xsi:type="DashletBadge">
</dashlet> <rank>2</rank>
<dashlet id="38" xsi:type="DashletBadge"> <class>Subnet</class>
<class>BusinessProcess</class> </dashlet>
</dashlet> <dashlet id="37" xsi:type="DashletBadge">
<dashlet id="39" xsi:type="DashletBadge"> <rank>3</rank>
<class>ApplicationSolution</class> <class>LogicalVolume</class>
</dashlet> </dashlet>
<dashlet id="40" xsi:type="DashletBadge"> <dashlet id="38" xsi:type="DashletBadge">
<class>Group</class> <rank>4</rank>
</dashlet> <class>BusinessProcess</class>
</dashlet>
<dashlet id="39" xsi:type="DashletBadge">
<rank>5</rank>
<class>ApplicationSolution</class>
</dashlet>
<dashlet id="40" xsi:type="DashletBadge">
<rank>6</rank>
<class>Group</class>
</dashlet>
</dashlets>
</cell> </cell>
</cells> </cells>
</dashboard> </dashboard>

View File

@@ -3,21 +3,27 @@
<layout>DashboardLayoutOneCol</layout> <layout>DashboardLayoutOneCol</layout>
<title></title> <title></title>
<cells> <cells>
<cell> <cell id="0">
<dashlet id="1" xsi:type="DashletHeaderDynamic"> <rank>0</rank>
<title>Menu:Contact</title> <dashlets>
<icon>itop-config-mgmt/images/team.png</icon> <dashlet id="1" xsi:type="DashletHeaderDynamic">
<subtitle>Menu:Contact:Count</subtitle> <rank>1</rank>
<query>SELECT Contact</query> <title>Menu:Contact</title>
<group_by>status</group_by> <icon>itop-config-mgmt/images/team.png</icon>
<values>active,inactive</values> <subtitle>Menu:Contact:Count</subtitle>
</dashlet> <query>SELECT Contact</query>
<dashlet id="2" xsi:type="DashletBadge"> <group_by>status</group_by>
<class>Team</class> <values>active,inactive</values>
</dashlet> </dashlet>
<dashlet id="3" xsi:type="DashletBadge"> <dashlet id="2" xsi:type="DashletBadge">
<class>Person</class> <rank>2</rank>
</dashlet> <class>Team</class>
</dashlet>
<dashlet id="3" xsi:type="DashletBadge">
<rank>3</rank>
<class>Person</class>
</dashlet>
</dashlets>
</cell> </cell>
</cells> </cells>
</dashboard> </dashboard>

View File

@@ -3,51 +3,74 @@
<layout>DashboardLayoutTwoCols</layout> <layout>DashboardLayoutTwoCols</layout>
<title>UI:IncidentMgmtMenuOverview:Title</title> <title>UI:IncidentMgmtMenuOverview:Title</title>
<cells> <cells>
<cell> <cell id="0">
<dashlet id="1" xsi:type="DashletGroupByPie"> <rank>0</rank>
<title>UI-IncidentManagementOverview-IncidentByPriority-last-14-days</title> <dashlets>
<query>SELECT Incident WHERE DATE_SUB(NOW(), INTERVAL 14 DAY) &lt; start_date</query> <dashlet id="1" xsi:type="DashletGroupByPie">
<group_by>priority</group_by> <title>UI-IncidentManagementOverview-IncidentByPriority-last-14-days</title>
<style>pie</style> <query>SELECT Incident WHERE DATE_SUB(NOW(), INTERVAL 14 DAY) &lt; start_date</query>
</dashlet> <group_by>priority</group_by>
<style>pie</style>
</dashlet>
</dashlets>
</cell> </cell>
<cell> <cell id="1">
<dashlet id="2" xsi:type="DashletGroupByBars"> <rank>1</rank>
<title>UI-IncidentManagementOverview-Last-14-days</title> <dashlets>
<query>SELECT Incident WHERE DATE_SUB(NOW(), INTERVAL 14 DAY) &lt; start_date</query> <dashlet id="2" xsi:type="DashletGroupByBars">
<group_by>start_date:day_of_month</group_by> <title>UI-IncidentManagementOverview-Last-14-days</title>
<style>bars</style> <query>SELECT Incident WHERE DATE_SUB(NOW(), INTERVAL 14 DAY) &lt; start_date</query>
</dashlet> <group_by>start_date:day_of_month</group_by>
<style>bars</style>
</dashlet>
</dashlets>
</cell> </cell>
<cell> <cell id="2">
<dashlet id="3" xsi:type="DashletGroupByTable"> <rank>2</rank>
<title>UI-IncidentManagementOverview-OpenIncidentByStatus</title> <dashlets>
<query>SELECT Incident WHERE status NOT IN ('closed','rejected')</query> <dashlet id="3" xsi:type="DashletGroupByTable">
<group_by>status</group_by> <title>UI-IncidentManagementOverview-OpenIncidentByStatus</title>
<style>table</style> <query>SELECT Incident WHERE status NOT IN
</dashlet> ('closed','rejected')</query>
<group_by>status</group_by>
<style>table</style>
</dashlet>
</dashlets>
</cell> </cell>
<cell> <cell id="3">
<dashlet id="4" xsi:type="DashletGroupByTable"> <rank>3</rank>
<title>UI-IncidentManagementOverview-OpenIncidentByAgent</title> <dashlets>
<query>SELECT Incident WHERE status NOT IN ('closed','rejected')</query> <dashlet id="4" xsi:type="DashletGroupByTable">
<group_by>agent_id</group_by> <title>UI-IncidentManagementOverview-OpenIncidentByAgent</title>
<style>table</style> <query>SELECT Incident WHERE status NOT IN
</dashlet> ('closed','rejected')</query>
<group_by>agent_id</group_by>
<style>table</style>
</dashlet>
</dashlets>
</cell> </cell>
<cell> <cell id="4">
<dashlet id="5" xsi:type="DashletGroupByTable"> <rank>4</rank>
<title>UI-IncidentManagementOverview-OpenIncidentByCustomer</title> <dashlets>
<query>SELECT Incident WHERE status NOT IN ('closed','rejected')</query> <dashlet id="5" xsi:type="DashletGroupByTable">
<group_by>org_id</group_by> <title>UI-IncidentManagementOverview-OpenIncidentByCustomer</title>
<style>table</style> <query>SELECT Incident WHERE status NOT IN ('closed','rejected')</query>
</dashlet> <group_by>org_id</group_by>
<style>table</style>
</dashlet>
</dashlets>
</cell> </cell>
<cell> <cell id="5">
<dashlet id="0" xsi:type="DashletEmptyCell"/> <rank>5</rank>
<dashlets>
<dashlet id="0" xsi:type="DashletEmptyCell" />
</dashlets>
</cell> </cell>
<cell> <cell id="6">
<dashlet id="0" xsi:type="DashletEmptyCell"/> <rank>6</rank>
<dashlets>
<dashlet id="0" xsi:type="DashletEmptyCell" />
</dashlets>
</cell> </cell>
</cells> </cells>
</dashboard> </dashboard>

View File

@@ -3,28 +3,40 @@
<layout>DashboardLayoutTwoCols</layout> <layout>DashboardLayoutTwoCols</layout>
<title>UI:ProblemMgmtMenuOverview:Title</title> <title>UI:ProblemMgmtMenuOverview:Title</title>
<cells> <cells>
<cell> <cell id="0">
<dashlet id="1" xsi:type="DashletGroupByBars"> <rank>0</rank>
<title>UI-ProblemManagementOverview-ProblemByService</title> <dashlets>
<query>SELECT Problem</query> <dashlet id="1" xsi:type="DashletGroupByBars">
<group_by>service_id</group_by> <rank>0</rank>
<style>bars</style> <title>UI-ProblemManagementOverview-ProblemByService</title>
</dashlet> <query>SELECT Problem</query>
<group_by>service_id</group_by>
<style>bars</style>
</dashlet>
</dashlets>
</cell> </cell>
<cell> <cell id="1">
<dashlet id="2" xsi:type="DashletGroupByPie"> <rank>1</rank>
<title>UI-ProblemManagementOverview-ProblemByPriority</title> <dashlets>
<query>SELECT Problem</query> <dashlet id="2" xsi:type="DashletGroupByPie">
<group_by>priority</group_by> <rank>0</rank>
<style>pie</style> <title>UI-ProblemManagementOverview-ProblemByPriority</title>
</dashlet> <query>SELECT Problem</query>
<group_by>priority</group_by>
<style>pie</style>
</dashlet>
</dashlets>
</cell> </cell>
<cell> <cell id="2">
<dashlet id="3" xsi:type="DashletObjectList"> <rank>2</rank>
<title>UI-ProblemManagementOverview-ProblemUnassigned</title> <dashlets>
<query>SELECT Problem WHERE status IN ("new")</query> <dashlet id="3" xsi:type="DashletObjectList">
<menu>false</menu> <rank>0</rank>
</dashlet> <title>UI-ProblemManagementOverview-ProblemUnassigned</title>
<query>SELECT Problem WHERE status IN ("new")</query>
<menu>false</menu>
</dashlet>
</dashlets>
</cell> </cell>
</cells> </cells>
</dashboard> </dashboard>

View File

@@ -3,59 +3,84 @@
<layout>DashboardLayoutTwoCols</layout> <layout>DashboardLayoutTwoCols</layout>
<title>UI:RequestMgmtMenuOverview:Title</title> <title>UI:RequestMgmtMenuOverview:Title</title>
<cells> <cells>
<cell> <cell id="0">
<dashlet id="1" xsi:type="DashletGroupByPie"> <rank>0</rank>
<title>UI-RequestManagementOverview-RequestByType-last-14-days</title> <dashlets>
<query>SELECT UserRequest WHERE DATE_SUB(NOW(), INTERVAL 14 DAY) &lt; start_date</query> <dashlet id="1" xsi:type="DashletGroupByPie">
<group_by>request_type</group_by> <rank>0</rank>
<style>pie</style> <title>UI-RequestManagementOverview-RequestByType-last-14-days</title>
</dashlet> <query>SELECT UserRequest WHERE DATE_SUB(NOW(), INTERVAL 14
DAY) &lt; start_date</query>
<group_by>request_type</group_by>
<style>pie</style>
</dashlet>
</dashlets>
</cell> </cell>
<cell> <cell id="1">
<dashlet id="2" xsi:type="DashletGroupByBars"> <rank>1</rank>
<title>UI-RequestManagementOverview-Last-14-days</title> <dashlets>
<query>SELECT UserRequest WHERE DATE_SUB(NOW(), INTERVAL 14 DAY) &lt; start_date</query> <dashlet id="2" xsi:type="DashletGroupByBars">
<group_by>start_date:day_of_month</group_by> <rank>0</rank>
<style>bars</style> <title>UI-RequestManagementOverview-Last-14-days</title>
</dashlet> <query>SELECT UserRequest WHERE DATE_SUB(NOW(), INTERVAL 14
DAY)
&lt; start_date</query>
<group_by>start_date:day_of_month</group_by>
<style>bars</style>
</dashlet>
</dashlets>
</cell> </cell>
<cell> <cell id="2">
<dashlet id="3" xsi:type="DashletGroupByTable"> <rank>2</rank>
<title>UI-RequestManagementOverview-OpenRequestByStatus</title> <dashlets>
<query>SELECT UserRequest WHERE status NOT IN ('closed','rejected')</query> <dashlet id="3" xsi:type="DashletGroupByTable">
<group_by>status</group_by> <rank>0</rank>
<style>table</style> <title>UI-RequestManagementOverview-OpenRequestByStatus</title>
</dashlet> <query>SELECT UserRequest WHERE status NOT IN
('closed','rejected')</query>
<group_by>status</group_by>
<style>table</style>
</dashlet>
</dashlets>
</cell> </cell>
<cell> <cell id="3">
<dashlet id="4" xsi:type="DashletGroupByTable"> <rank>3</rank>
<title>UI-RequestManagementOverview-OpenRequestByAgent</title> <dashlets>
<query>SELECT UserRequest WHERE status NOT IN ('closed','rejected')</query> <dashlet id="4" xsi:type="DashletGroupByTable">
<group_by>agent_id</group_by> <rank>0</rank>
<style>table</style> <title>UI-RequestManagementOverview-OpenRequestByAgent</title>
</dashlet> <query>SELECT UserRequest WHERE status NOT IN
('closed','rejected')</query>
<group_by>agent_id</group_by>
<style>table</style>
</dashlet>
</dashlets>
</cell> </cell>
<cell> <cell id="4">
<dashlet id="5" xsi:type="DashletGroupByTable"> <rank>4</rank>
<title>UI-RequestManagementOverview-OpenRequestByType</title> <dashlets>
<query>SELECT UserRequest WHERE status NOT IN ('closed','rejected')</query> <dashlet id="5" xsi:type="DashletGroupByTable">
<group_by>finalclass</group_by> <rank>0</rank>
<style>table</style> <title>UI-RequestManagementOverview-OpenRequestByType</title>
</dashlet> <query>SELECT UserRequest WHERE status NOT IN
('closed','rejected')</query>
<group_by>finalclass</group_by>
<style>table</style>
</dashlet>
</dashlets>
</cell> </cell>
<cell> <cell id="5">
<dashlet id="6" xsi:type="DashletGroupByTable"> <rank>5</rank>
<title>UI-RequestManagementOverview-OpenRequestByCustomer</title> <dashlets>
<query>SELECT UserRequest WHERE status NOT IN ('closed','rejected')</query> <dashlet id="6" xsi:type="DashletGroupByTable">
<group_by>org_id</group_by> <rank>0</rank>
<style>table</style> <title>UI-RequestManagementOverview-OpenRequestByCustomer</title>
</dashlet> <query>SELECT UserRequest WHERE status NOT IN
</cell> ('closed','rejected')</query>
<cell> <group_by>org_id</group_by>
<dashlet id="0" xsi:type="DashletEmptyCell"/> <style>table</style>
</cell> </dashlet>
<cell> </dashlets>
<dashlet id="0" xsi:type="DashletEmptyCell"/>
</cell> </cell>
</cells> </cells>
</dashboard> </dashboard>

View File

@@ -3,59 +3,77 @@
<layout>DashboardLayoutTwoCols</layout> <layout>DashboardLayoutTwoCols</layout>
<title>UI:RequestMgmtMenuOverview:Title</title> <title>UI:RequestMgmtMenuOverview:Title</title>
<cells> <cells>
<cell> <cell id="0">
<dashlet id="1" xsi:type="DashletGroupByPie"> <rank>0</rank>
<title>UI-RequestManagementOverview-RequestByType-last-14-days</title> <dashlets>
<query>SELECT UserRequest WHERE DATE_SUB(NOW(), INTERVAL 14 DAY) &lt; start_date</query> <dashlet id="1" xsi:type="DashletGroupByPie">
<group_by>request_type</group_by> <rank>0</rank>
<style>pie</style> <title>UI-RequestManagementOverview-RequestByType-last-14-days</title>
</dashlet> <query>SELECT UserRequest WHERE DATE_SUB(NOW(), INTERVAL 14 DAY) &lt; start_date</query>
<group_by>request_type</group_by>
<style>pie</style>
</dashlet>
</dashlets>
</cell> </cell>
<cell> <cell id="1">
<dashlet id="2" xsi:type="DashletGroupByBars"> <rank>1</rank>
<title>UI-RequestManagementOverview-Last-14-days</title> <dashlets>
<query>SELECT UserRequest WHERE DATE_SUB(NOW(), INTERVAL 14 DAY) &lt; start_date</query> <dashlet id="2" xsi:type="DashletGroupByBars">
<group_by>start_date:day_of_month</group_by> <rank>0</rank>
<style>bars</style> <title>UI-RequestManagementOverview-Last-14-days</title>
</dashlet> <query>SELECT UserRequest WHERE DATE_SUB(NOW(), INTERVAL 14 DAY) &lt; start_date</query>
<group_by>start_date:day_of_month</group_by>
<style>bars</style>
</dashlet>
</dashlets>
</cell> </cell>
<cell> <cell id="1">
<dashlet id="3" xsi:type="DashletGroupByTable"> <rank>2</rank>
<title>UI-RequestManagementOverview-OpenRequestByStatus</title> <dashlets>
<query>SELECT UserRequest WHERE status NOT IN ('closed','rejected')</query> <dashlet id="3" xsi:type="DashletGroupByTable">
<group_by>status</group_by> <rank>0</rank>
<style>table</style> <title>UI-RequestManagementOverview-OpenRequestByStatus</title>
</dashlet> <query>SELECT UserRequest WHERE status NOT IN ('closed','rejected')</query>
<group_by>status</group_by>
<style>table</style>
</dashlet>
</dashlets>
</cell> </cell>
<cell> <cell id="2">
<dashlet id="4" xsi:type="DashletGroupByTable"> <rank>3</rank>
<title>UI-RequestManagementOverview-OpenRequestByAgent</title> <dashlets>
<query>SELECT UserRequest WHERE status NOT IN ('closed','rejected')</query> <dashlet id="4" xsi:type="DashletGroupByTable">
<group_by>agent_id</group_by> <rank>0</rank>
<style>table</style> <title>UI-RequestManagementOverview-OpenRequestByAgent</title>
</dashlet> <query>SELECT UserRequest WHERE status NOT IN ('closed','rejected')</query>
<group_by>agent_id</group_by>
<style>table</style>
</dashlet>
</dashlets>
</cell> </cell>
<cell> <cell id="3">
<dashlet id="5" xsi:type="DashletGroupByTable"> <rank>4</rank>
<title>UI-RequestManagementOverview-OpenRequestByType</title> <dashlets>
<query>SELECT UserRequest WHERE status NOT IN ('closed','rejected')</query> <dashlet id="5" xsi:type="DashletGroupByTable">
<group_by>finalclass</group_by> <rank>0</rank>
<style>table</style> <title>UI-RequestManagementOverview-OpenRequestByType</title>
</dashlet> <query>SELECT UserRequest WHERE status NOT IN ('closed','rejected')</query>
<group_by>finalclass</group_by>
<style>table</style>
</dashlet>
</dashlets>
</cell> </cell>
<cell> <cell id="4">
<dashlet id="6" xsi:type="DashletGroupByTable"> <rank>5</rank>
<title>UI-RequestManagementOverview-OpenRequestByCustomer</title> <dashlets>
<query>SELECT UserRequest WHERE status NOT IN ('closed','rejected')</query> <dashlet id="6" xsi:type="DashletGroupByTable">
<group_by>org_id</group_by> <rank>0</rank>
<style>table</style> <title>UI-RequestManagementOverview-OpenRequestByCustomer</title>
</dashlet> <query>SELECT UserRequest WHERE status NOT IN ('closed','rejected')</query>
</cell> <group_by>org_id</group_by>
<cell> <style>table</style>
<dashlet id="0" xsi:type="DashletEmptyCell"/> </dashlet>
</cell> </dashlets>
<cell>
<dashlet id="0" xsi:type="DashletEmptyCell"/>
</cell> </cell>
</cells> </cells>
</dashboard> </dashboard>

View File

@@ -3,48 +3,63 @@
<layout>DashboardLayoutOneCol</layout> <layout>DashboardLayoutOneCol</layout>
<title></title> <title></title>
<cells> <cells>
<cell> <cell id="0">
<dashlet id="1" xsi:type="DashletHeaderStatic"> <rank>0</rank>
<title>Menu:ConfigManagementCI</title> <dashlets>
<icon>itop-welcome-itil/images/database.png</icon> <dashlet id="1" xsi:type="DashletHeaderStatic">
</dashlet> <rank>0</rank>
<dashlet id="2" xsi:type="DashletBadge"> <title>Menu:ConfigManagementCI</title>
<class>BusinessProcess</class> <icon>itop-welcome-itil/images/database.png</icon>
</dashlet> </dashlet>
<dashlet id="3" xsi:type="DashletBadge"> <dashlet id="2" xsi:type="DashletBadge">
<class>ApplicationSolution</class> <rank>1</rank>
</dashlet> <class>BusinessProcess</class>
<dashlet id="4" xsi:type="DashletBadge"> </dashlet>
<class>Contact</class> <dashlet id="3" xsi:type="DashletBadge">
</dashlet> <rank>2</rank>
<dashlet id="5" xsi:type="DashletBadge"> <class>ApplicationSolution</class>
<class>Location</class> </dashlet>
</dashlet> <dashlet id="4" xsi:type="DashletBadge">
<dashlet id="6" xsi:type="DashletBadge"> <rank>3</rank>
<class>Contract</class> <class>Contact</class>
</dashlet> </dashlet>
<dashlet id="7" xsi:type="DashletBadge"> <dashlet id="5" xsi:type="DashletBadge">
<class>Server</class> <rank>4</rank>
</dashlet> <class>Location</class>
<dashlet id="8" xsi:type="DashletBadge"> </dashlet>
<class>NetworkDevice</class> <dashlet id="6" xsi:type="DashletBadge">
</dashlet> <rank>5</rank>
<class>Contract</class>
</dashlet>
<dashlet id="7" xsi:type="DashletBadge">
<rank>6</rank>
<class>Server</class>
</dashlet>
<dashlet id="8" xsi:type="DashletBadge">
<rank>7</rank>
<class>NetworkDevice</class>
</dashlet>
</dashlets>
</cell> </cell>
<cell> <cell id="1">
<dashlet id="8" xsi:type="DashletHeaderDynamic"> <rank>1</rank>
<title>Menu:RequestManagement</title> <dashlets>
<icon>itop-welcome-itil/images/user-request-deadline.png</icon> <dashlet id="8" xsi:type="DashletHeaderDynamic">
<subtitle>Open Requests</subtitle> <rank>0</rank>
<query>SELECT UserRequest WHERE status != "closed"</query> <title>Menu:RequestManagement</title>
<group_by>status</group_by> <icon>itop-welcome-itil/images/user-request-deadline.png</icon>
<values>new,assigned,escalated_tto,escalated_ttr,resolved</values> <subtitle>Open Requests</subtitle>
</dashlet> <query>SELECT UserRequest WHERE status != "closed"</query>
<dashlet id="9" xsi:type="DashletObjectList"> <group_by>status</group_by>
<title>UI:WelcomeMenu:MyCalls</title> <values>new,assigned,escalated_tto,escalated_ttr,resolved</values>
<query>SELECT UserRequest AS i WHERE i.agent_id = :current_contact_id AND status NOT IN ("closed", "resolved")</query> </dashlet>
<menu>true</menu> <dashlet id="9" xsi:type="DashletObjectList">
</dashlet> <rank>1</rank>
<title>UI:WelcomeMenu:MyCalls</title>
<query>SELECT UserRequest AS i WHERE i.agent_id = :current_contact_id AND status NOT IN ("closed", "resolved")</query>
<menu>true</menu>
</dashlet>
</dashlets>
</cell> </cell>
</cells> </cells>
</dashboard> </dashboard>

View File

@@ -176,7 +176,7 @@ EOF;
} }
try try
{ {
$sCompiledCode .= $this->CompileMenu($oMenuNode, $sRelativeDir, $oP); $sCompiledCode .= $this->CompileMenu($oMenuNode, $sTargetDir, $sRelativeDir, $oP);
} }
catch (ssDOMFormatException $e) catch (ssDOMFormatException $e)
{ {
@@ -929,7 +929,7 @@ EOF;
}// function CompileClass() }// function CompileClass()
protected function CompileMenu($oMenu, $sModuleRelativeDir, $oP) protected function CompileMenu($oMenu, $sTargetDir, $sModuleRelativeDir, $oP)
{ {
$sMenuId = $oMenu->getAttribute("id"); $sMenuId = $oMenu->getAttribute("id");
$sMenuClass = $oMenu->getAttribute("xsi:type"); $sMenuClass = $oMenu->getAttribute("xsi:type");
@@ -954,8 +954,35 @@ EOF;
break; break;
case 'DashboardMenuNode': case 'DashboardMenuNode':
$sTemplateFile = $oMenu->GetChildText('definition_file'); $sTemplateFile = $oMenu->GetChildText('definition_file', '');
$sTemplateSpec = $this->PathToPHP($sTemplateFile, $sModuleRelativeDir); if ($sTemplateFile != '')
{
$sTemplateSpec = $this->PathToPHP($sTemplateFile, $sModuleRelativeDir);
}
else
{
$oDashboardDefinition = $oMenu->GetOptionalElement('definition');
if ($oDashboardDefinition == null)
{
throw(new Exception('Missing definition for Dashboard menu "'.$sMenuId.'" expecting either a tag "definition_file" or "definition".'));
}
$sFileName = strtolower(str_replace(array(':', '/', '\\', '*'), '_', $sMenuId)).'_dashboard_menu.xml';
$sTemplateSpec = $this->PathToPHP($sFileName, $sModuleRelativeDir);
$oXMLDoc = new DOMDocument('1.0', 'UTF-8');
$oXMLDoc->formatOutput = true; // indent (must be loaded with option LIBXML_NOBLANKS)
$oXMLDoc->preserveWhiteSpace = true; // otherwise the formatOutput option would have no effect
$oRootNode = $oXMLDoc->createElement('dashboard'); // make sure that the document is not empty
$oRootNode->setAttribute('xmlns:xsi', "http://www.w3.org/2001/XMLSchema-instance");
$oXMLDoc->appendChild($oRootNode);
foreach($oDashboardDefinition->childNodes as $oNode)
{
$oDefNode = $oXMLDoc->importNode($oNode, true); // layout, cells, etc Nodes and below
$oRootNode->appendChild($oDefNode);
}
$oXMLDoc->save($sTargetDir.'/'.$sModuleRelativeDir.'/'.$sFileName);
}
$sNewMenu = "new DashboardMenuNode('$sMenuId', $sTemplateSpec, $sParentSpec, $fRank);"; $sNewMenu = "new DashboardMenuNode('$sMenuId', $sTemplateSpec, $sParentSpec, $fRank);";
break; break;