Creating a Dashboard

You can create dashboards by copying definition files with either HTML or jSettings extensions to %appdata%App/GEODI/GUI/Custom/ES/Dashboard or the folders under GUI/Custom/ES/Dashboard, which is located next to the application. A definition file is used to determine features such as image name, authorization of the dashboard.


The definition file must conform to the sample format and __type information should be used as in the example. The description line should not contain any features that are not going to be used.

MyDashboard.jSettings
{
    ID:"MyDashBoard",
	DisplayName:"[$.en:My Dashboard;tr:Benim Panelim]",
	 IconName:"Layer/newspaper",
    __type: "Factory.ActionFactory:HTMLReporter",
	ActionTargets:"*",
	ConditionMacro:'c.HasPermission("DECE.SYSTEMMANAGER")'
}

(warning) If the name or path of the HTML file to be copied will not be the same as the jSettings file, the TemplateFile value must also be specified in the JSON context. Example:   TemplateFile:"%AppData%\\App\\GEODI\\GUI\\Custom\\ES\\DashboardTemplates\\MyDashboard.html"

(warning) If the dashboard ID value is starting with "m_", the dashboard link will be displayed on the main tabs, not the submenu in the interface.

MyDashboard.html
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="[=c.GetCurrentLanguage(true)]">
	<head>
		<meta charset="utf-8" />
		<title>GEODI</title>
		<dcc:item factoryname="IncludeScriptResource" src="~/GUI/js/jquery-2.1.3.min.js" />
		<dcc:item factoryname="IncludeScriptResource" src="~/GUI/js/bootstrap.min.js" />
		<dcc:item factoryname="IncludeScriptResource" src="~/GUI/js/GeodiQueryJS.js" />
		<dcc:item factoryname="IncludeScriptResource" src="~/GUI/js/GeodiGenericJS.js" />
		<dcc:item factoryname="IncludeScriptResource" src="~/GUI/js/PlatformCommunication.js" />
		<dcc:item factoryname="IncludeCssResource" src="~/GUI/css/GeodiStyle.css" />
		<dcc:item factoryname="GeodiSessionInfoHtmlPageItem" />
		<dcc:item factoryname="IncludeScriptResource" src="~/GUI/js/moment.js" />
		<dcc:CultureInfoWriter formattype="DateTime" />
		<dcc:item factoryname="IncludeScriptResource" src="~/GUI/js/GeodiHelpManager.js" />
	</head>
	<body>
		<div class=container style="background-color:#fff">
			.....
		</div>
	</body>
</html>

(warning) The query can be accessed using the script "window.parent.CurrentQueryContainer.CurrentQuery" within the dashboard.


The PCCommand event is triggered when the query changes.

  $(window).on("PCCommand",
           function (e, obj) {
               if (obj.Command == "ExecutedQuery") {
                   UpdateMyGUI(window.parent.CurrentQueryContainer.CurrentQuery);
               }
           });