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);
$oCellsList = $oCellsNode->getElementsByTagName('cell');
$aCellOrder = array();
$iCellRank = 0;
foreach($oCellsList as $oCellNode)
{
$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)
{
$sDashletClass = $oDomNode->getAttribute('xsi:type');
$oRank = $oDomNode->getElementsByTagName('rank')->item(0);
if ($oRank)
{
$iRank = (int)$oRank->textContent;
}
$sId = $oDomNode->getAttribute('id');
$oNewDashlet = new $sDashletClass($sId);
$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
*/
@@ -108,17 +140,29 @@ abstract class Dashboard
$oCellsNode = $oDoc->createElement('cells');
$oMainNode->appendChild($oCellsNode);
$iCellRank = 0;
foreach ($this->aCells as $aCell)
{
$oCellNode = $oDoc->createElement('cell');
$oCellNode->setAttribute('id', $iCellRank);
$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)
{
$oNode = $oDoc->createElement('dashlet');
$oCellNode->appendChild($oNode);
$oDashletsNode->appendChild($oNode);
$oNode->setAttribute('id', $oDashlet->GetID());
$oNode->setAttribute('xsi:type', get_class($oDashlet));
$oDashletRank = $oDoc->createElement('rank', $iDashletRank);
$oNode->appendChild($oDashletRank);
$iDashletRank++;
$oDashlet->ToDOMNode($oNode);
}
}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -176,7 +176,7 @@ EOF;
}
try
{
$sCompiledCode .= $this->CompileMenu($oMenuNode, $sRelativeDir, $oP);
$sCompiledCode .= $this->CompileMenu($oMenuNode, $sTargetDir, $sRelativeDir, $oP);
}
catch (ssDOMFormatException $e)
{
@@ -929,7 +929,7 @@ EOF;
}// function CompileClass()
protected function CompileMenu($oMenu, $sModuleRelativeDir, $oP)
protected function CompileMenu($oMenu, $sTargetDir, $sModuleRelativeDir, $oP)
{
$sMenuId = $oMenu->getAttribute("id");
$sMenuClass = $oMenu->getAttribute("xsi:type");
@@ -954,8 +954,35 @@ EOF;
break;
case 'DashboardMenuNode':
$sTemplateFile = $oMenu->GetChildText('definition_file');
$sTemplateSpec = $this->PathToPHP($sTemplateFile, $sModuleRelativeDir);
$sTemplateFile = $oMenu->GetChildText('definition_file', '');
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);";
break;