Adding the analytics-scripts and themes template.

application-manager-new
sinthuja 8 years ago
parent 87109d5b87
commit 3156fd01ea

@ -624,29 +624,83 @@
</includes>
</fileSet>
<!-- Copying the "portal" app specific modifications to the distribution pack-->
<fileSet>
<directory>
src/repository/jaggeryapps/portal/store/carbon.super/gadget
</directory>
<outputDirectory>
${pom.artifactId}-${pom.version}/repository/deployment/server/jaggeryapps/portal/store/carbon.super/gadget
</outputDirectory>
<includes>
<include>**/*</include>
</includes>
</fileSet>
<!-- End of "portal" app specific modifications -->
<!-- Adding analytics theme to extensions -->
<fileSet>
<directory>
src/repository/jaggeryapps/ues/themes
src/repository/jaggeryapps/portal/themes
</directory>
<outputDirectory>${pom.artifactId}-${pom.version}/repository/deployment/server/jaggeryapps/portal/extensions/themes</outputDirectory>
<includes>
<include>**/*</include>
</includes>
</fileSet>
<!-- TODO: Remove below Andriod Analytics -->
<!--<fileSet>-->
<!--<directory>-->
<!--src/repository/analytics/android/store-->
<!--</directory>-->
<!--<outputDirectory>${pom.artifactId}-${pom.version}/repository/deployment/server/jaggeryapps/portal/store</outputDirectory>-->
<!--<includes>-->
<!--<include>**/*</include>-->
<!--</includes>-->
<!--</fileSet>-->
<!--<fileSet>-->
<!--<directory>-->
<!--src/repository/analytics/android/streams-->
<!--</directory>-->
<!--<outputDirectory>-->
<!--${pom.artifactId}-${pom.version}/repository/deployment/server/eventstreams-->
<!--</outputDirectory>-->
<!--<includes>-->
<!--<include>**/*</include>-->
<!--</includes>-->
<!--</fileSet>-->
<!--<fileSet>-->
<!--<directory>-->
<!--src/repository/analytics/android/event-sink-->
<!--</directory>-->
<!--<outputDirectory>-->
<!--${pom.artifactId}-${pom.version}/repository/deployment/server/eventsink-->
<!--</outputDirectory>-->
<!--<includes>-->
<!--<include>**/*</include>-->
<!--</includes>-->
<!--</fileSet>-->
<!--<fileSet>-->
<!--<directory>-->
<!--src/repository/analytics/android/eventpublishers-->
<!--</directory>-->
<!--<outputDirectory>-->
<!--${pom.artifactId}-${pom.version}/repository/deployment/server/eventpublishers-->
<!--</outputDirectory>-->
<!--<includes>-->
<!--<include>**/*</include>-->
<!--</includes>-->
<!--</fileSet>-->
<!--<fileSet>-->
<!--<directory>-->
<!--src/repository/analytics/android/executionplans-->
<!--</directory>-->
<!--<outputDirectory>-->
<!--${pom.artifactId}-${pom.version}/repository/deployment/server/executionplans-->
<!--</outputDirectory>-->
<!--<includes>-->
<!--<include>**/*</include>-->
<!--</includes>-->
<!--</fileSet>-->
<!--<fileSet>-->
<!--<directory>-->
<!--src/repository/analytics/android/simulators-->
<!--</directory>-->
<!--<outputDirectory>-->
<!--${pom.artifactId}-${pom.version}/repository/deployment/server/eventsimulatorfiles-->
<!--</outputDirectory>-->
<!--<includes>-->
<!--<include>**/*</include>-->
<!--</includes>-->
<!--</fileSet>-->
</fileSets>
<dependencySets>
@ -679,24 +733,32 @@
</file>
<!-- Copying the "portal" app specific modifications to the distribution pack-->
<file>
<source>src/repository/jaggeryapps/portal/controllers/apis/analytics.jag</source>
<outputDirectory>${pom.artifactId}-${pom.version}/repository/deployment/server/jaggeryapps/portal/controllers/apis
</outputDirectory>
<fileMode>755</fileMode>
</file>
<file>
<source>src/repository/jaggeryapps/portal/js/outputAdapterUiLibrary.js</source>
<outputDirectory>${pom.artifactId}-${pom.version}/repository/deployment/server/jaggeryapps/portal/js
</outputDirectory>
<fileMode>755</fileMode>
</file>
<file>
<source>src/repository/jaggeryapps/portal/templates/gadgets/igviz/js/outputAdapterUiLibrary.js</source>
<outputDirectory>${pom.artifactId}-${pom.version}/repository/deployment/server/jaggeryapps/portal/templates/gadgets/igviz/js
</outputDirectory>
<fileMode>755</fileMode>
</file>
<!--<file>-->
<!--<source>src/repository/jaggeryapps/portal/controllers/apis/analytics.jag</source>-->
<!--<outputDirectory>${pom.artifactId}-${pom.version}/repository/deployment/server/jaggeryapps/portal/controllers/apis-->
<!--</outputDirectory>-->
<!--<fileMode>755</fileMode>-->
<!--</file>-->
<!--<file>-->
<!--<source>src/repository/jaggeryapps/portal/js/outputAdapterUiLibrary.js</source>-->
<!--<outputDirectory>${pom.artifactId}-${pom.version}/repository/deployment/server/jaggeryapps/portal/js-->
<!--</outputDirectory>-->
<!--<fileMode>755</fileMode>-->
<!--</file>-->
<!--<file>-->
<!--<source>src/repository/jaggeryapps/portal/templates/gadgets/igviz/js/outputAdapterUiLibrary.js</source>-->
<!--<outputDirectory>${pom.artifactId}-${pom.version}/repository/deployment/server/jaggeryapps/portal/templates/gadgets/igviz/js-->
<!--</outputDirectory>-->
<!--<fileMode>755</fileMode>-->
<!--</file>-->
<!-- TODO: Uncomment below -->
<!--<file>-->
<!--<source>src/repository/jaggeryapps/portal/uipublisher/websocketSubscriptionEndpoint.jag</source>-->
<!--<outputDirectory>-->
<!--${pom.artifactId}-${pom.version}/repository/deployment/server/jaggeryapps/portal/uipublisher/-->
<!--</outputDirectory>-->
<!--<fileMode>755</fileMode>-->
<!--</file>-->
<file>
<source>src/repository/jaggeryapps/portal/configs/designer.json</source>
<outputDirectory>

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Analytics>
<Editable>true</Editable>
<Name>AndriodCallScript</Name>
<Script> CREATE TEMPORARY TABLE AndroidCallData USING CarbonAnalytics OPTIONS(tableName "ORG_WSO2_IOT_ANDROID_CALL_STATS", incrementalParams "ORG_WSO2_IOT_ANDROID_CALL_STATS, DAY");
CREATE TEMPORARY TABLE Android_Call_Stat_Per_Day USING CarbonAnalytics
OPTIONS (tableName "Android_Call_Stat_Per_Day",
schema "owner STRING, deviceId STRING, type STRING, duration LONG -i, year INT -i, month INT -i, day INT -i, timestamp STRING",
primaryKeys "year, month, day, deviceId, owner, type",
mergeSchema "false");
INSERT INTO TABLE Android_Call_Stat_Per_Day
SELECT meta_owner as owner, meta_deviceId as deviceId, type, sum(duration) as duration, year, month, day, getDateStartingTime(year, month, day) as timestamp
FROM AndroidCallData
GROUP BY year, month, day, meta_deviceId, meta_owner, type ORDER BY timestamp DESC;
INCREMENTAL_TABLE_COMMIT ORG_WSO2_IOT_ANDROID_CALL_STATS; </Script>
</Analytics>

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Analytics>
<Editable>true</Editable>
<Name>AndriodDataScript</Name>
<Script> CREATE TEMPORARY TABLE AndroidDataData USING CarbonAnalytics OPTIONS(tableName "ORG_WSO2_IOT_ANDROID_DATA_STATS", incrementalParams "ORG_WSO2_IOT_ANDROID_DATA_STATS, DAY");
CREATE TEMPORARY TABLE Android_Data_Stat_Per_Day USING CarbonAnalytics
OPTIONS (tableName "Android_Data_Stat_Per_Day",
schema "owner STRING, deviceId STRING, type STRING, total LONG -i, year INT -i, month INT -i, day INT -i, timestamp STRING",
primaryKeys "year, month, day, deviceId, owner, type",
mergeSchema "false");
INSERT INTO TABLE Android_Data_Stat_Per_Day
SELECT meta_owner as owner, meta_deviceId as deviceId, type, sum(total) as total, year, month, day, getDateStartingTime(year, month, day) as timestamp
FROM AndroidDataData
GROUP BY year, month, day, meta_deviceId, meta_owner, type ORDER BY timestamp DESC;
INCREMENTAL_TABLE_COMMIT ORG_WSO2_IOT_ANDROID_DATA_STATS; </Script>
</Analytics>

@ -0,0 +1,53 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Analytics>
<Editable>true</Editable>
<Name>AndriodFrequentContactsScript</Name>
<Script> CREATE TEMPORARY TABLE AndroidFrequentCallData USING CarbonAnalytics OPTIONS(tableName "ORG_WSO2_IOT_ANDROID_CALL_STATS", incrementalParams "ORG_WSO2_IOT_ANDROID_CALL_STATS, DAY");
CREATE TEMPORARY TABLE AndroidFrequentSmsData USING CarbonAnalytics OPTIONS(tableName "ORG_WSO2_IOT_ANDROID_SMS_STATS", incrementalParams "ORG_WSO2_IOT_ANDROID_SMS_STATS, DAY");
CREATE TEMPORARY TABLE Android_Frequent_Contacts_Per_Day USING CarbonAnalytics
OPTIONS (tableName "Android_Frequent_Contacts_Per_Day",
schema "owner STRING -i, deviceId STRING -i, number STRING -i, callCount INT -i, smsCount INT -i, total INT -i, year INT -i, month INT -i, day INT -i, _timestamp LONG -i",
primaryKeys "deviceId, owner, number, year, month, day",
mergeSchema "false", incrementalParams "Android_Frequent_Contacts_Per_Day, MONTH");
CREATE TEMPORARY TABLE Android_Frequent_Contacts_Per_Month USING CarbonAnalytics
OPTIONS (tableName "Android_Frequent_Contacts_Per_Month",
schema "owner STRING -i, deviceId STRING -i, number STRING -i, callCount INT -i, smsCount INT -i, total INT -i, year INT -i, month INT -i, _timestamp LONG -i",
primaryKeys "deviceId, owner, number, year, month",
mergeSchema "false", incrementalParams "Android_Frequent_Contacts_Per_Month, YEAR");
CREATE TEMPORARY TABLE Android_Frequent_Contacts_Per_Year USING CarbonAnalytics
OPTIONS (tableName "Android_Frequent_Contacts_Per_Year",
schema "owner STRING -i, deviceId STRING -i, number STRING -i, callCount INT -i, smsCount INT -i, total INT -i, year INT -i",
primaryKeys "deviceId, owner, number, year",
mergeSchema "false");
INSERT INTO TABLE Android_Frequent_Contacts_Per_Day
SELECT IF(callData.owner is null,smsData.owner,callData.owner) as owner, IF(callData.deviceId is null,smsData.deviceId,callData.deviceId) as deviceId, IF(callData.number is null,smsData.number,callData.number) as number, IF(callData.callCount is null,0,callData.callCount) as callCount, IF(smsData.smsCount is null,0,smsData.smsCount) as smsCount, (IF(callData.callCount is null,0,callData.callCount) + IF(smsData.smsCount is null,0,smsData.smsCount)) as total, IF(callData.year is null,smsData.year,callData.year) as year, IF(callData.month is null,smsData.month,callData.month) as month, IF(callData.day is null,smsData.day,callData.day) as day, getDateStartingTime(IF(callData.year is null,smsData.year,callData.year), IF(callData.month is null,smsData.month,callData.month), IF(callData.day is null,smsData.day,callData.day)) as _timestamp
FROM (SELECT meta_owner as owner, meta_deviceId as deviceId, number, count(*) as callCount, year, month, day
FROM AndroidFrequentCallData
GROUP BY meta_deviceId, meta_owner, number, year, month, day) callData FULL OUTER JOIN
(SELECT meta_owner as owner, meta_deviceId as deviceId, number, count(*) as smsCount, year, month, day
FROM AndroidFrequentSmsData
GROUP BY meta_deviceId, meta_owner, number, year, month, day) smsData ON smsData.owner = callData.owner AND smsData.deviceId = callData.deviceId AND smsData.number = callData.number AND smsData.year = callData.year AND smsData.month = callData.month AND smsData.day = callData.day
ORDER BY total DESC;
INCREMENTAL_TABLE_COMMIT ORG_WSO2_IOT_ANDROID_CALL_STATS;
INCREMENTAL_TABLE_COMMIT ORG_WSO2_IOT_ANDROID_SMS_STATS;
INSERT INTO TABLE Android_Frequent_Contacts_Per_Month
SELECT owner, deviceId, number, sum(callCount) as callCount, sum(smsCount) as smsCount, sum(total) as total, year, month, getMonthStartingTime(year, month) as _timestamp
FROM Android_Frequent_Contacts_Per_Day
GROUP BY deviceId, owner, number, year, month
ORDER BY total DESC;
INCREMENTAL_TABLE_COMMIT Android_Frequent_Contacts_Per_Month;
INSERT INTO TABLE Android_Frequent_Contacts_Per_Year
SELECT owner, deviceId, number, sum(callCount) as callCount, sum(smsCount) as smsCount, sum(total) as total, year
FROM Android_Frequent_Contacts_Per_Month
GROUP BY deviceId, owner, number, year
ORDER BY total DESC; </Script>
</Analytics>

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Analytics>
<Editable>true</Editable>
<Name>AndriodScreenScript</Name>
<Script> CREATE TEMPORARY TABLE AndroidScreenData USING CarbonAnalytics OPTIONS(tableName "ORG_WSO2_IOT_ANDROID_SCREEN_STATS", incrementalParams "ORG_WSO2_IOT_ANDROID_SCREEN_STATS, DAY");
CREATE TEMPORARY TABLE Android_Screen_Stat_Per_Day USING CarbonAnalytics
OPTIONS (tableName "Android_Screen_Stat_Per_Day",
schema "owner STRING -i, deviceId STRING -i, duration LONG -i, year INT -i, month INT -i, day INT -i, timestamp STRING -i",
primaryKeys "year, month, day, deviceId, owner",
mergeSchema "false");
INSERT INTO TABLE Android_Screen_Stat_Per_Day
SELECT meta_owner as owner, meta_deviceId as deviceId, sum(duration) as duration, year, month, day, getDateStartingTime(year, month, day) as timestamp
FROM AndroidScreenData
GROUP BY year, month, day, meta_deviceId, meta_owner ORDER BY timestamp DESC;
INCREMENTAL_TABLE_COMMIT ORG_WSO2_IOT_ANDROID_SCREEN_STATS; </Script>
</Analytics>

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Analytics>
<Editable>true</Editable>
<Name>AndriodSmsScript</Name>
<Script> CREATE TEMPORARY TABLE AndroidSmsData USING CarbonAnalytics OPTIONS(tableName "ORG_WSO2_IOT_ANDROID_SMS_STATS", incrementalParams "ORG_WSO2_IOT_ANDROID_SMS_STATS, DAY");
CREATE TEMPORARY TABLE Android_Sms_Stat_Per_Day USING CarbonAnalytics
OPTIONS (tableName "Android_Sms_Stat_Per_Day",
schema "owner STRING, deviceId STRING, type STRING, count LONG -i, year INT -i, month INT -i, day INT -i, timestamp STRING",
primaryKeys "year, month, day, deviceId, owner, type",
mergeSchema "false");
INSERT INTO TABLE Android_Sms_Stat_Per_Day
SELECT meta_owner as owner, meta_deviceId as deviceId, type, count(*) as count, year, month, day, getDateStartingTime(year, month, day) as timestamp
FROM AndroidSmsData
GROUP BY year, month, day, meta_deviceId, meta_owner, type ORDER BY timestamp DESC;
INCREMENTAL_TABLE_COMMIT ORG_WSO2_IOT_ANDROID_SMS_STATS; </Script>
</Analytics>

@ -0,0 +1,30 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Analytics>
<Editable>true</Editable>
<Name>AndroidActivityScript</Name>
<Script> CREATE TEMPORARY TABLE AndroidActivityData USING CarbonAnalytics OPTIONS(tableName "ORG_WSO2_IOT_ANDROID_ACTIVITY_STATS", incrementalParams "ORG_WSO2_IOT_ANDROID_ACTIVITY_STATS, DAY");
CREATE TEMPORARY TABLE Android_Activity_Stat_Per_Day USING CarbonAnalytics
OPTIONS (tableName "Android_Activity_Stat_Per_Day",
schema "owner STRING, deviceId STRING, action STRING, duration LONG -i, year INT -i, month INT -i, day INT -i, _timestamp LONG -i",
primaryKeys "year, month, day, deviceId, action, owner",
mergeSchema "false");
CREATE TEMPORARY TABLE Android_Active_Stat_Per_Day USING CarbonAnalytics
OPTIONS (tableName "Android_Active_Stat_Per_Day",
schema "owner STRING, deviceId STRING, action STRING, duration LONG -i, year INT -i, month INT -i, day INT -i, timestamp LONG -i",
primaryKeys "year, month, day, deviceId, owner, action",
mergeSchema "false");
INSERT INTO TABLE Android_Activity_Stat_Per_Day
SELECT meta_owner as owner, meta_deviceId as deviceId, action, sum(duration) as duration, year, month, day, getDateStartingTime(year, month, day) as _timestamp
FROM AndroidActivityData
GROUP BY year, month, day, meta_deviceId, action, meta_owner ORDER BY _timestamp DESC;
INSERT INTO TABLE Android_Active_Stat_Per_Day
SELECT meta_owner as owner, meta_deviceId as deviceId, action, sum(duration) as duration, year, month, day, getDateStartingTime(year, month, day) as timestamp
FROM AndroidActivityData WHERE action = 'RUNNING' OR action = 'WALKING' OR action = 'CYCLING'
GROUP BY year, month, day, meta_deviceId, action, meta_owner ORDER BY timestamp ASC;
INCREMENTAL_TABLE_COMMIT ORG_WSO2_IOT_ANDROID_ACTIVITY_STATS; </Script>
</Analytics>

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Analytics>
<Editable>true</Editable>
<Name>AndroidAudioScript</Name>
<Script> CREATE TEMPORARY TABLE AndroidHeadsetData USING CarbonAnalytics OPTIONS(tableName "ORG_WSO2_IOT_ANDROID_HEADSET_STATS", incrementalParams "ORG_WSO2_IOT_ANDROID_HEADSET_STATS, DAY");
CREATE TEMPORARY TABLE Android_Headset_Stat_Per_Day USING CarbonAnalytics
OPTIONS (tableName "Android_Headset_Stat_Per_Day",
schema "owner STRING -i, deviceId STRING -i, duration LONG -i, year INT -i, month INT -i, day INT -i, timestamp STRING -i",
primaryKeys "year, month, day, deviceId, owner",
mergeSchema "false");
INSERT INTO TABLE Android_Headset_Stat_Per_Day
SELECT meta_owner as owner, meta_deviceId as deviceId, sum(duration) as duration, year, month, day, getDateStartingTime(year, month, day) as timestamp
FROM AndroidHeadsetData
GROUP BY year, month, day, meta_deviceId, meta_owner ORDER BY timestamp DESC;
INCREMENTAL_TABLE_COMMIT ORG_WSO2_IOT_ANDROID_HEADSET_STATS; </Script>
</Analytics>

@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Analytics>
<Editable>true</Editable>
<Name>Android_Sense_Script</Name>
<Script>CREATE TEMPORARY TABLE AndroidHeadsetData USING CarbonAnalytics OPTIONS(tableName "ORG_WSO2_IOT_ANDROID_HEADSET_STATS", incrementalParams "ORG_WSO2_IOT_ANDROID_HEADSET_STATS, DAY");
CREATE TEMPORARY TABLE Android_Headset_Stat_Per_Day USING CarbonAnalytics
OPTIONS (tableName "Android_Headset_Stat_Per_Day",
schema "owner STRING -i, deviceId STRING -i, duration LONG -i, year INT -i, month INT -i, day INT -i, timestamp STRING -i",
primaryKeys "year, month, day, deviceId, owner",
mergeSchema "false");
INSERT INTO TABLE Android_Headset_Stat_Per_Day
SELECT meta_owner as owner, meta_deviceId as deviceId, sum(duration) as duration, year, month, day, getDateStartingTime(year, month, day) as timestamp
FROM AndroidHeadsetData
GROUP BY year, month, day, meta_deviceId, meta_owner ORDER BY timestamp DESC;
INCREMENTAL_TABLE_COMMIT ORG_WSO2_IOT_ANDROID_HEADSET_STATS;
</Script>
</Analytics>

@ -0,0 +1,43 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Analytics>
<Editable>true</Editable>
<Name>LocationScript</Name>
<Script> CREATE TEMPORARY TABLE AndroidLocationData USING CarbonAnalytics OPTIONS(tableName "ORG_WSO2_IOT_ANDROID_LOCATION_STATS", incrementalParams "ORG_WSO2_IOT_ANDROID_LOCATION_STATS, DAY");
CREATE TEMPORARY TABLE Android_Location_Stats_Per_Day USING CarbonAnalytics
OPTIONS (tableName "Android_Location_Stats_Per_Day",
schema "owner STRING, deviceId STRING, latitude DOUBLE -i, longitude DOUBLE -i, streetName STRING, noOfVisits INT -i, year INT -i, month INT -i, day INT -i, _timestamp LONG -i",
primaryKeys "deviceId, owner, streetName, latitude, longitude, year, month, day",
mergeSchema "false", incrementalParams "Android_Location_Stats_Per_Day, MONTH");
CREATE TEMPORARY TABLE Android_Location_Stats_Per_Month USING CarbonAnalytics
OPTIONS (tableName "Android_Location_Stats_Per_Month",
schema "owner STRING, deviceId STRING, latitude DOUBLE -i, longitude DOUBLE -i, streetName STRING, noOfVisits INT -i, year INT -i, month INT -i, _timestamp LONG -i",
primaryKeys "deviceId, owner, streetName, latitude, longitude, year, month",
mergeSchema "false", incrementalParams "Android_Location_Stats_Per_Month, YEAR");
CREATE TEMPORARY TABLE Android_Location_Stats_Per_Year USING CarbonAnalytics
OPTIONS (tableName "Android_Location_Stats_Per_Year",
schema "owner STRING, deviceId STRING, latitude DOUBLE -i, longitude DOUBLE -i, streetName STRING, noOfVisits INT -i, year INT -i",
primaryKeys "deviceId, owner, streetName, latitude, longitude, year",
mergeSchema "false");
INSERT INTO TABLE Android_Location_Stats_Per_Day
SELECT meta_owner as owner, meta_deviceId as deviceId, latitude, longitude, streetName, count(*) as noOfVisits, year, month, day, getDateStartingTime(year, month, day) as _timestamp
FROM AndroidLocationData
GROUP BY year, month, day, meta_deviceId, streetName, meta_owner, latitude, longitude;
INCREMENTAL_TABLE_COMMIT ORG_WSO2_IOT_ANDROID_LOCATION_STATS;
INSERT INTO TABLE Android_Location_Stats_Per_Month
SELECT owner, deviceId, latitude, longitude, streetName, sum(noOfVisits) as noOfVisits, year, month, getMonthStartingTime(year, month) as _timestamp
FROM Android_Location_Stats_Per_Day
GROUP BY deviceId, owner, year, month, streetName, latitude, longitude;
INCREMENTAL_TABLE_COMMIT Android_Location_Stats_Per_Month;
INSERT INTO TABLE Android_Location_Stats_Per_Year
SELECT owner, deviceId, latitude, longitude, streetName, sum(noOfVisits) as noOfVisits, year
FROM Android_Location_Stats_Per_Month
GROUP BY deviceId, owner, year, streetName, latitude, longitude; </Script>
</Analytics>

@ -0,0 +1,239 @@
body.dashboard {
background: #fff;
}
.dropdown-menu {
border: 1px solid #ccc;
}
.dashboard .btn-default.active,
.dashboard .btn-default.active:focus {
background-color: #29313E;
color: #fff;
}
.dashboard .btn-default.active:hover {
background-color: #53627B;
color: #fff;
}
.dashboard .page-header {
background: #29313e;
min-height: 50px;
padding: 0;
color: #ebeced;
}
.dashboard .page-header .page-title > h1 {
padding: 15px 15px 0 15px;
font-weight: 100;
text-transform: uppercase;
font-size: 18px;
}
.dashboard .page-header .page-title > h1 > .icon {
font-size: 24px;
margin-top: -5px;
margin-right: 5px;
}
.dashboard .page-header .navbar-header {
margin-right: 15px;
margin-left: 15px;
float: none;
}
@media (min-width: 768px) {
.dashboard .page-header .navbar-collapse.collapse {
display: none !important;
}
.page-header .container-fluid {
padding: 0 15px;
}
.navbar-nav > li > a {
padding: 10px 0;
}
}
.nav > li > a > .icon {
margin-right: 8px;
}
.nav > li > a > .badge {
position: absolute;
top: 5px;
right: 5px;
background: #ff124a;
}
.dashboard .page-header .auth {
margin-bottom: 0;
padding: 6px 0;
}
.dashboard .page-content {
overflow: inherit;
}
.dashboard .footer {
background: #0d1219;
}
.dashboard .gadget-wrapper {
border: 1px dashed #e4e4e4;
}
.dashboard .gadget .gadget-heading {
background: transparent;
border-bottom: none;
color: #29313e;
}
.gadget .gadget-heading > .gadget-title {
font-size: 20px;
}
.gadget .gadget-heading > .gadget-actions button {
border: none;
}
.sidebar-wrapper hr {
border-top-color: #ebeced;
}
.sidebar-toggle-button {
float: left;
height: 50px;
line-height: 50px;
font-size: 18px;
background: #438cad;
color: #ffffff;
margin-left: -15px;
}
.sidebar-toggle-button > .icon {
line-height: 48px;
}
.sidebar-nav {
background: #29313e;
color: #e3e5e6;
}
.nav.pages {
text-transform: uppercase;
}
.nav.pages > li {
line-height: 20px;
}
.nav > li {
text-indent: 0;
line-height: 10px;
}
.nav > li > a {
border-radius: 0;
color: #e3e5e6;
background: transparent;
}
.collapse-nav-sub > li > a {
padding: 4px 10px;
font-size: 21px;
}
.collapse-nav-sub > li > a > .icon {
margin: 0;
}
.page-header .fw-inverse {
color: #29313e;
}
.nav li:hover > a,
.nav li.open > a,
.nav li.open > a:focus,
.nav li.open > a:hover {
background: #1a2332;
}
.nav > li > a:focus {
background: transparent;
}
.nav.pages > li.active a {
background: #121822;
border-left: 5px solid #438cad;
}
.navbar-collapse {
padding: 15px;
background: #1A2331;
}
.navbar-collapse li:hover > a {
background: #29313E;
}
.sidebar-nav .user {
text-align: center;
margin: 20px auto;
}
.sidebar-nav .user > .user-image {
margin-bottom: 10px;
}
.sidebar-nav .user > .user-image > .default .icon {
font-size: 25px;
}
.sidebar-nav .user > .user-image > .default .icon .fw-inverse,
.sidebar-nav .user > .user-image > .default .icon .fa-inverse {
color: #29313e;
}
.widget .gadget-wrapper {
border: none;
}
.widget .ues-component-heading {
display: none !important;
height: 0;
}
.widget .ues-component {
height: auto;
}
.widget.form-control-widget {
height: 35px !important;
}
.dropdown-menu.arrow.arrow-top-right:before {
right: 20px;
}
.dropdown-menu.arrow:before,
.dropdown-menu.arrow.arrow-top-left:before {
top: -10px;
border-right: 10px solid transparent;
border-bottom: 10px solid #e4e4e4;
border-left: 10px solid transparent;
}
.dropdown-menu.alerts {
min-width: 400px;
max-width: 100%;
line-height: 1.2;
}
ul.sidebar-messages > li:first-child {
margin-top: 0;
}
ul.sidebar-messages > li:last-child {
margin-bottom: 0;
}

@ -0,0 +1,12 @@
var vizgSettings = {
colorScale: colorbrewer.RdYlBu[4].reverse(),
colors: {
green:"#5FCE9B",
blue:"#438CAD",
red:"#E87352",
yellow:"#EECA5A",
purple:"#B6688F",
grey:"434343",
brown:"#C59787"
}
}

@ -0,0 +1,303 @@
// This product includes color specifications and designs developed by Cynthia Brewer (http://colorbrewer.org/).
// JavaScript specs as packaged in the D3 library (d3js.org). Please see license at http://colorbrewer.org/export/LICENSE.txt
var colorbrewer = {YlGn: {
3: ["#f7fcb9","#addd8e","#31a354"],
4: ["#ffffcc","#c2e699","#78c679","#238443"],
5: ["#ffffcc","#c2e699","#78c679","#31a354","#006837"],
6: ["#ffffcc","#d9f0a3","#addd8e","#78c679","#31a354","#006837"],
7: ["#ffffcc","#d9f0a3","#addd8e","#78c679","#41ab5d","#238443","#005a32"],
8: ["#ffffe5","#f7fcb9","#d9f0a3","#addd8e","#78c679","#41ab5d","#238443","#005a32"],
9: ["#ffffe5","#f7fcb9","#d9f0a3","#addd8e","#78c679","#41ab5d","#238443","#006837","#004529"]
},YlGnBu: {
3: ["#edf8b1","#7fcdbb","#2c7fb8"],
4: ["#ffffcc","#a1dab4","#41b6c4","#225ea8"],
5: ["#ffffcc","#a1dab4","#41b6c4","#2c7fb8","#253494"],
6: ["#ffffcc","#c7e9b4","#7fcdbb","#41b6c4","#2c7fb8","#253494"],
7: ["#ffffcc","#c7e9b4","#7fcdbb","#41b6c4","#1d91c0","#225ea8","#0c2c84"],
8: ["#ffffd9","#edf8b1","#c7e9b4","#7fcdbb","#41b6c4","#1d91c0","#225ea8","#0c2c84"],
9: ["#ffffd9","#edf8b1","#c7e9b4","#7fcdbb","#41b6c4","#1d91c0","#225ea8","#253494","#081d58"]
},GnBu: {
3: ["#e0f3db","#a8ddb5","#43a2ca"],
4: ["#f0f9e8","#bae4bc","#7bccc4","#2b8cbe"],
5: ["#f0f9e8","#bae4bc","#7bccc4","#43a2ca","#0868ac"],
6: ["#f0f9e8","#ccebc5","#a8ddb5","#7bccc4","#43a2ca","#0868ac"],
7: ["#f0f9e8","#ccebc5","#a8ddb5","#7bccc4","#4eb3d3","#2b8cbe","#08589e"],
8: ["#f7fcf0","#e0f3db","#ccebc5","#a8ddb5","#7bccc4","#4eb3d3","#2b8cbe","#08589e"],
9: ["#f7fcf0","#e0f3db","#ccebc5","#a8ddb5","#7bccc4","#4eb3d3","#2b8cbe","#0868ac","#084081"]
},BuGn: {
3: ["#e5f5f9","#99d8c9","#2ca25f"],
4: ["#edf8fb","#b2e2e2","#66c2a4","#238b45"],
5: ["#edf8fb","#b2e2e2","#66c2a4","#2ca25f","#006d2c"],
6: ["#edf8fb","#ccece6","#99d8c9","#66c2a4","#2ca25f","#006d2c"],
7: ["#edf8fb","#ccece6","#99d8c9","#66c2a4","#41ae76","#238b45","#005824"],
8: ["#f7fcfd","#e5f5f9","#ccece6","#99d8c9","#66c2a4","#41ae76","#238b45","#005824"],
9: ["#f7fcfd","#e5f5f9","#ccece6","#99d8c9","#66c2a4","#41ae76","#238b45","#006d2c","#00441b"]
},PuBuGn: {
3: ["#ece2f0","#a6bddb","#1c9099"],
4: ["#f6eff7","#bdc9e1","#67a9cf","#02818a"],
5: ["#f6eff7","#bdc9e1","#67a9cf","#1c9099","#016c59"],
6: ["#f6eff7","#d0d1e6","#a6bddb","#67a9cf","#1c9099","#016c59"],
7: ["#f6eff7","#d0d1e6","#a6bddb","#67a9cf","#3690c0","#02818a","#016450"],
8: ["#fff7fb","#ece2f0","#d0d1e6","#a6bddb","#67a9cf","#3690c0","#02818a","#016450"],
9: ["#fff7fb","#ece2f0","#d0d1e6","#a6bddb","#67a9cf","#3690c0","#02818a","#016c59","#014636"]
},PuBu: {
3: ["#ece7f2","#a6bddb","#2b8cbe"],
4: ["#f1eef6","#bdc9e1","#74a9cf","#0570b0"],
5: ["#f1eef6","#bdc9e1","#74a9cf","#2b8cbe","#045a8d"],
6: ["#f1eef6","#d0d1e6","#a6bddb","#74a9cf","#2b8cbe","#045a8d"],
7: ["#f1eef6","#d0d1e6","#a6bddb","#74a9cf","#3690c0","#0570b0","#034e7b"],
8: ["#fff7fb","#ece7f2","#d0d1e6","#a6bddb","#74a9cf","#3690c0","#0570b0","#034e7b"],
9: ["#fff7fb","#ece7f2","#d0d1e6","#a6bddb","#74a9cf","#3690c0","#0570b0","#045a8d","#023858"]
},BuPu: {
3: ["#e0ecf4","#9ebcda","#8856a7"],
4: ["#edf8fb","#b3cde3","#8c96c6","#88419d"],
5: ["#edf8fb","#b3cde3","#8c96c6","#8856a7","#810f7c"],
6: ["#edf8fb","#bfd3e6","#9ebcda","#8c96c6","#8856a7","#810f7c"],
7: ["#edf8fb","#bfd3e6","#9ebcda","#8c96c6","#8c6bb1","#88419d","#6e016b"],
8: ["#f7fcfd","#e0ecf4","#bfd3e6","#9ebcda","#8c96c6","#8c6bb1","#88419d","#6e016b"],
9: ["#f7fcfd","#e0ecf4","#bfd3e6","#9ebcda","#8c96c6","#8c6bb1","#88419d","#810f7c","#4d004b"]
},RdPu: {
3: ["#fde0dd","#fa9fb5","#c51b8a"],
4: ["#feebe2","#fbb4b9","#f768a1","#ae017e"],
5: ["#feebe2","#fbb4b9","#f768a1","#c51b8a","#7a0177"],
6: ["#feebe2","#fcc5c0","#fa9fb5","#f768a1","#c51b8a","#7a0177"],
7: ["#feebe2","#fcc5c0","#fa9fb5","#f768a1","#dd3497","#ae017e","#7a0177"],
8: ["#fff7f3","#fde0dd","#fcc5c0","#fa9fb5","#f768a1","#dd3497","#ae017e","#7a0177"],
9: ["#fff7f3","#fde0dd","#fcc5c0","#fa9fb5","#f768a1","#dd3497","#ae017e","#7a0177","#49006a"]
},PuRd: {
3: ["#e7e1ef","#c994c7","#dd1c77"],
4: ["#f1eef6","#d7b5d8","#df65b0","#ce1256"],
5: ["#f1eef6","#d7b5d8","#df65b0","#dd1c77","#980043"],
6: ["#f1eef6","#d4b9da","#c994c7","#df65b0","#dd1c77","#980043"],
7: ["#f1eef6","#d4b9da","#c994c7","#df65b0","#e7298a","#ce1256","#91003f"],
8: ["#f7f4f9","#e7e1ef","#d4b9da","#c994c7","#df65b0","#e7298a","#ce1256","#91003f"],
9: ["#f7f4f9","#e7e1ef","#d4b9da","#c994c7","#df65b0","#e7298a","#ce1256","#980043","#67001f"]
},OrRd: {
3: ["#fee8c8","#fdbb84","#e34a33"],
4: ["#fef0d9","#fdcc8a","#fc8d59","#d7301f"],
5: ["#fef0d9","#fdcc8a","#fc8d59","#e34a33","#b30000"],
6: ["#fef0d9","#fdd49e","#fdbb84","#fc8d59","#e34a33","#b30000"],
7: ["#fef0d9","#fdd49e","#fdbb84","#fc8d59","#ef6548","#d7301f","#990000"],
8: ["#fff7ec","#fee8c8","#fdd49e","#fdbb84","#fc8d59","#ef6548","#d7301f","#990000"],
9: ["#fff7ec","#fee8c8","#fdd49e","#fdbb84","#fc8d59","#ef6548","#d7301f","#b30000","#7f0000"]
},YlOrRd: {
3: ["#ffeda0","#feb24c","#f03b20"],
4: ["#ffffb2","#fecc5c","#fd8d3c","#e31a1c"],
5: ["#ffffb2","#fecc5c","#fd8d3c","#f03b20","#bd0026"],
6: ["#ffffb2","#fed976","#feb24c","#fd8d3c","#f03b20","#bd0026"],
7: ["#ffffb2","#fed976","#feb24c","#fd8d3c","#fc4e2a","#e31a1c","#b10026"],
8: ["#ffffcc","#ffeda0","#fed976","#feb24c","#fd8d3c","#fc4e2a","#e31a1c","#b10026"],
9: ["#ffffcc","#ffeda0","#fed976","#feb24c","#fd8d3c","#fc4e2a","#e31a1c","#bd0026","#800026"]
},YlOrBr: {
3: ["#fff7bc","#fec44f","#d95f0e"],
4: ["#ffffd4","#fed98e","#fe9929","#cc4c02"],
5: ["#ffffd4","#fed98e","#fe9929","#d95f0e","#993404"],
6: ["#ffffd4","#fee391","#fec44f","#fe9929","#d95f0e","#993404"],
7: ["#ffffd4","#fee391","#fec44f","#fe9929","#ec7014","#cc4c02","#8c2d04"],
8: ["#ffffe5","#fff7bc","#fee391","#fec44f","#fe9929","#ec7014","#cc4c02","#8c2d04"],
9: ["#ffffe5","#fff7bc","#fee391","#fec44f","#fe9929","#ec7014","#cc4c02","#993404","#662506"]
},Purples: {
3: ["#efedf5","#bcbddc","#756bb1"],
4: ["#f2f0f7","#cbc9e2","#9e9ac8","#6a51a3"],
5: ["#f2f0f7","#cbc9e2","#9e9ac8","#756bb1","#54278f"],
6: ["#f2f0f7","#dadaeb","#bcbddc","#9e9ac8","#756bb1","#54278f"],
7: ["#f2f0f7","#dadaeb","#bcbddc","#9e9ac8","#807dba","#6a51a3","#4a1486"],
8: ["#fcfbfd","#efedf5","#dadaeb","#bcbddc","#9e9ac8","#807dba","#6a51a3","#4a1486"],
9: ["#fcfbfd","#efedf5","#dadaeb","#bcbddc","#9e9ac8","#807dba","#6a51a3","#54278f","#3f007d"]
},Blues: {
3: ["#deebf7","#9ecae1","#3182bd"],
4: ["#eff3ff","#bdd7e7","#6baed6","#2171b5"],
5: ["#eff3ff","#bdd7e7","#6baed6","#3182bd","#08519c"],
6: ["#eff3ff","#c6dbef","#9ecae1","#6baed6","#3182bd","#08519c"],
7: ["#eff3ff","#c6dbef","#9ecae1","#6baed6","#4292c6","#2171b5","#084594"],
8: ["#f7fbff","#deebf7","#c6dbef","#9ecae1","#6baed6","#4292c6","#2171b5","#084594"],
9: ["#f7fbff","#deebf7","#c6dbef","#9ecae1","#6baed6","#4292c6","#2171b5","#08519c","#08306b"]
},Greens: {
3: ["#e5f5e0","#a1d99b","#31a354"],
4: ["#edf8e9","#bae4b3","#74c476","#238b45"],
5: ["#edf8e9","#bae4b3","#74c476","#31a354","#006d2c"],
6: ["#edf8e9","#c7e9c0","#a1d99b","#74c476","#31a354","#006d2c"],
7: ["#edf8e9","#c7e9c0","#a1d99b","#74c476","#41ab5d","#238b45","#005a32"],
8: ["#f7fcf5","#e5f5e0","#c7e9c0","#a1d99b","#74c476","#41ab5d","#238b45","#005a32"],
9: ["#f7fcf5","#e5f5e0","#c7e9c0","#a1d99b","#74c476","#41ab5d","#238b45","#006d2c","#00441b"]
},Oranges: {
3: ["#fee6ce","#fdae6b","#e6550d"],
4: ["#feedde","#fdbe85","#fd8d3c","#d94701"],
5: ["#feedde","#fdbe85","#fd8d3c","#e6550d","#a63603"],
6: ["#feedde","#fdd0a2","#fdae6b","#fd8d3c","#e6550d","#a63603"],
7: ["#feedde","#fdd0a2","#fdae6b","#fd8d3c","#f16913","#d94801","#8c2d04"],
8: ["#fff5eb","#fee6ce","#fdd0a2","#fdae6b","#fd8d3c","#f16913","#d94801","#8c2d04"],
9: ["#fff5eb","#fee6ce","#fdd0a2","#fdae6b","#fd8d3c","#f16913","#d94801","#a63603","#7f2704"]
},Reds: {
3: ["#fee0d2","#fc9272","#de2d26"],
4: ["#fee5d9","#fcae91","#fb6a4a","#cb181d"],
5: ["#fee5d9","#fcae91","#fb6a4a","#de2d26","#a50f15"],
6: ["#fee5d9","#fcbba1","#fc9272","#fb6a4a","#de2d26","#a50f15"],
7: ["#fee5d9","#fcbba1","#fc9272","#fb6a4a","#ef3b2c","#cb181d","#99000d"],
8: ["#fff5f0","#fee0d2","#fcbba1","#fc9272","#fb6a4a","#ef3b2c","#cb181d","#99000d"],
9: ["#fff5f0","#fee0d2","#fcbba1","#fc9272","#fb6a4a","#ef3b2c","#cb181d","#a50f15","#67000d"]
},Greys: {
3: ["#f0f0f0","#bdbdbd","#636363"],
4: ["#f7f7f7","#cccccc","#969696","#525252"],
5: ["#f7f7f7","#cccccc","#969696","#636363","#252525"],
6: ["#f7f7f7","#d9d9d9","#bdbdbd","#969696","#636363","#252525"],
7: ["#f7f7f7","#d9d9d9","#bdbdbd","#969696","#737373","#525252","#252525"],
8: ["#ffffff","#f0f0f0","#d9d9d9","#bdbdbd","#969696","#737373","#525252","#252525"],
9: ["#ffffff","#f0f0f0","#d9d9d9","#bdbdbd","#969696","#737373","#525252","#252525","#000000"]
},PuOr: {
3: ["#f1a340","#f7f7f7","#998ec3"],
4: ["#e66101","#fdb863","#b2abd2","#5e3c99"],
5: ["#e66101","#fdb863","#f7f7f7","#b2abd2","#5e3c99"],
6: ["#b35806","#f1a340","#fee0b6","#d8daeb","#998ec3","#542788"],
7: ["#b35806","#f1a340","#fee0b6","#f7f7f7","#d8daeb","#998ec3","#542788"],
8: ["#b35806","#e08214","#fdb863","#fee0b6","#d8daeb","#b2abd2","#8073ac","#542788"],
9: ["#b35806","#e08214","#fdb863","#fee0b6","#f7f7f7","#d8daeb","#b2abd2","#8073ac","#542788"],
10: ["#7f3b08","#b35806","#e08214","#fdb863","#fee0b6","#d8daeb","#b2abd2","#8073ac","#542788","#2d004b"],
11: ["#7f3b08","#b35806","#e08214","#fdb863","#fee0b6","#f7f7f7","#d8daeb","#b2abd2","#8073ac","#542788","#2d004b"]
},BrBG: {
3: ["#d8b365","#f5f5f5","#5ab4ac"],
4: ["#a6611a","#dfc27d","#80cdc1","#018571"],
5: ["#a6611a","#dfc27d","#f5f5f5","#80cdc1","#018571"],
6: ["#8c510a","#d8b365","#f6e8c3","#c7eae5","#5ab4ac","#01665e"],
7: ["#8c510a","#d8b365","#f6e8c3","#f5f5f5","#c7eae5","#5ab4ac","#01665e"],
8: ["#8c510a","#bf812d","#dfc27d","#f6e8c3","#c7eae5","#80cdc1","#35978f","#01665e"],
9: ["#8c510a","#bf812d","#dfc27d","#f6e8c3","#f5f5f5","#c7eae5","#80cdc1","#35978f","#01665e"],
10: ["#543005","#8c510a","#bf812d","#dfc27d","#f6e8c3","#c7eae5","#80cdc1","#35978f","#01665e","#003c30"],
11: ["#543005","#8c510a","#bf812d","#dfc27d","#f6e8c3","#f5f5f5","#c7eae5","#80cdc1","#35978f","#01665e","#003c30"]
},PRGn: {
3: ["#af8dc3","#f7f7f7","#7fbf7b"],
4: ["#7b3294","#c2a5cf","#a6dba0","#008837"],
5: ["#7b3294","#c2a5cf","#f7f7f7","#a6dba0","#008837"],
6: ["#762a83","#af8dc3","#e7d4e8","#d9f0d3","#7fbf7b","#1b7837"],
7: ["#762a83","#af8dc3","#e7d4e8","#f7f7f7","#d9f0d3","#7fbf7b","#1b7837"],
8: ["#762a83","#9970ab","#c2a5cf","#e7d4e8","#d9f0d3","#a6dba0","#5aae61","#1b7837"],
9: ["#762a83","#9970ab","#c2a5cf","#e7d4e8","#f7f7f7","#d9f0d3","#a6dba0","#5aae61","#1b7837"],
10: ["#40004b","#762a83","#9970ab","#c2a5cf","#e7d4e8","#d9f0d3","#a6dba0","#5aae61","#1b7837","#00441b"],
11: ["#40004b","#762a83","#9970ab","#c2a5cf","#e7d4e8","#f7f7f7","#d9f0d3","#a6dba0","#5aae61","#1b7837","#00441b"]
},PiYG: {
3: ["#e9a3c9","#f7f7f7","#a1d76a"],
4: ["#d01c8b","#f1b6da","#b8e186","#4dac26"],
5: ["#d01c8b","#f1b6da","#f7f7f7","#b8e186","#4dac26"],
6: ["#c51b7d","#e9a3c9","#fde0ef","#e6f5d0","#a1d76a","#4d9221"],
7: ["#c51b7d","#e9a3c9","#fde0ef","#f7f7f7","#e6f5d0","#a1d76a","#4d9221"],
8: ["#c51b7d","#de77ae","#f1b6da","#fde0ef","#e6f5d0","#b8e186","#7fbc41","#4d9221"],
9: ["#c51b7d","#de77ae","#f1b6da","#fde0ef","#f7f7f7","#e6f5d0","#b8e186","#7fbc41","#4d9221"],
10: ["#8e0152","#c51b7d","#de77ae","#f1b6da","#fde0ef","#e6f5d0","#b8e186","#7fbc41","#4d9221","#276419"],
11: ["#8e0152","#c51b7d","#de77ae","#f1b6da","#fde0ef","#f7f7f7","#e6f5d0","#b8e186","#7fbc41","#4d9221","#276419"]
},RdBu: {
3: ["#ef8a62","#f7f7f7","#67a9cf"],
4: ["#ca0020","#f4a582","#92c5de","#0571b0"],
5: ["#ca0020","#f4a582","#f7f7f7","#92c5de","#0571b0"],
6: ["#b2182b","#ef8a62","#fddbc7","#d1e5f0","#67a9cf","#2166ac"],
7: ["#b2182b","#ef8a62","#fddbc7","#f7f7f7","#d1e5f0","#67a9cf","#2166ac"],
8: ["#b2182b","#d6604d","#f4a582","#fddbc7","#d1e5f0","#92c5de","#4393c3","#2166ac"],
9: ["#b2182b","#d6604d","#f4a582","#fddbc7","#f7f7f7","#d1e5f0","#92c5de","#4393c3","#2166ac"],
10: ["#67001f","#b2182b","#d6604d","#f4a582","#fddbc7","#d1e5f0","#92c5de","#4393c3","#2166ac","#053061"],
11: ["#67001f","#b2182b","#d6604d","#f4a582","#fddbc7","#f7f7f7","#d1e5f0","#92c5de","#4393c3","#2166ac","#053061"]
},RdGy: {
3: ["#ef8a62","#ffffff","#999999"],
4: ["#ca0020","#f4a582","#bababa","#404040"],
5: ["#ca0020","#f4a582","#ffffff","#bababa","#404040"],
6: ["#b2182b","#ef8a62","#fddbc7","#e0e0e0","#999999","#4d4d4d"],
7: ["#b2182b","#ef8a62","#fddbc7","#ffffff","#e0e0e0","#999999","#4d4d4d"],
8: ["#b2182b","#d6604d","#f4a582","#fddbc7","#e0e0e0","#bababa","#878787","#4d4d4d"],
9: ["#b2182b","#d6604d","#f4a582","#fddbc7","#ffffff","#e0e0e0","#bababa","#878787","#4d4d4d"],
10: ["#67001f","#b2182b","#d6604d","#f4a582","#fddbc7","#e0e0e0","#bababa","#878787","#4d4d4d","#1a1a1a"],
11: ["#67001f","#b2182b","#d6604d","#f4a582","#fddbc7","#ffffff","#e0e0e0","#bababa","#878787","#4d4d4d","#1a1a1a"]
},RdYlBu: {
3: ["#fc8d59","#ffffbf","#91bfdb"],
4: ["#d7191c","#fdae61","#abd9e9","#2c7bb6"],
5: ["#d7191c","#fdae61","#ffffbf","#abd9e9","#2c7bb6"],
6: ["#d73027","#fc8d59","#fee090","#e0f3f8","#91bfdb","#4575b4"],
7: ["#d73027","#fc8d59","#fee090","#ffffbf","#e0f3f8","#91bfdb","#4575b4"],
8: ["#d73027","#f46d43","#fdae61","#fee090","#e0f3f8","#abd9e9","#74add1","#4575b4"],
9: ["#d73027","#f46d43","#fdae61","#fee090","#ffffbf","#e0f3f8","#abd9e9","#74add1","#4575b4"],
10: ["#a50026","#d73027","#f46d43","#fdae61","#fee090","#e0f3f8","#abd9e9","#74add1","#4575b4","#313695"],
11: ["#a50026","#d73027","#f46d43","#fdae61","#fee090","#ffffbf","#e0f3f8","#abd9e9","#74add1","#4575b4","#313695"]
},Spectral: {
3: ["#fc8d59","#ffffbf","#99d594"],
4: ["#d7191c","#fdae61","#abdda4","#2b83ba"],
5: ["#d7191c","#fdae61","#ffffbf","#abdda4","#2b83ba"],
6: ["#d53e4f","#fc8d59","#fee08b","#e6f598","#99d594","#3288bd"],
7: ["#d53e4f","#fc8d59","#fee08b","#ffffbf","#e6f598","#99d594","#3288bd"],
8: ["#d53e4f","#f46d43","#fdae61","#fee08b","#e6f598","#abdda4","#66c2a5","#3288bd"],
9: ["#d53e4f","#f46d43","#fdae61","#fee08b","#ffffbf","#e6f598","#abdda4","#66c2a5","#3288bd"],
10: ["#9e0142","#d53e4f","#f46d43","#fdae61","#fee08b","#e6f598","#abdda4","#66c2a5","#3288bd","#5e4fa2"],
11: ["#9e0142","#d53e4f","#f46d43","#fdae61","#fee08b","#ffffbf","#e6f598","#abdda4","#66c2a5","#3288bd","#5e4fa2"]
},RdYlGn: {
3: ["#fc8d59","#ffffbf","#91cf60"],
4: ["#d7191c","#fdae61","#a6d96a","#1a9641"],
5: ["#d7191c","#fdae61","#ffffbf","#a6d96a","#1a9641"],
6: ["#d73027","#fc8d59","#fee08b","#d9ef8b","#91cf60","#1a9850"],
7: ["#d73027","#fc8d59","#fee08b","#ffffbf","#d9ef8b","#91cf60","#1a9850"],
8: ["#d73027","#f46d43","#fdae61","#fee08b","#d9ef8b","#a6d96a","#66bd63","#1a9850"],
9: ["#d73027","#f46d43","#fdae61","#fee08b","#ffffbf","#d9ef8b","#a6d96a","#66bd63","#1a9850"],
10: ["#a50026","#d73027","#f46d43","#fdae61","#fee08b","#d9ef8b","#a6d96a","#66bd63","#1a9850","#006837"],
11: ["#a50026","#d73027","#f46d43","#fdae61","#fee08b","#ffffbf","#d9ef8b","#a6d96a","#66bd63","#1a9850","#006837"]
},Accent: {
3: ["#7fc97f","#beaed4","#fdc086"],
4: ["#7fc97f","#beaed4","#fdc086","#ffff99"],
5: ["#7fc97f","#beaed4","#fdc086","#ffff99","#386cb0"],
6: ["#7fc97f","#beaed4","#fdc086","#ffff99","#386cb0","#f0027f"],
7: ["#7fc97f","#beaed4","#fdc086","#ffff99","#386cb0","#f0027f","#bf5b17"],
8: ["#7fc97f","#beaed4","#fdc086","#ffff99","#386cb0","#f0027f","#bf5b17","#666666"]
},Dark2: {
3: ["#1b9e77","#d95f02","#7570b3"],
4: ["#1b9e77","#d95f02","#7570b3","#e7298a"],
5: ["#1b9e77","#d95f02","#7570b3","#e7298a","#66a61e"],
6: ["#1b9e77","#d95f02","#7570b3","#e7298a","#66a61e","#e6ab02"],
7: ["#1b9e77","#d95f02","#7570b3","#e7298a","#66a61e","#e6ab02","#a6761d"],
8: ["#1b9e77","#d95f02","#7570b3","#e7298a","#66a61e","#e6ab02","#a6761d","#666666"]
},Paired: {
3: ["#a6cee3","#1f78b4","#b2df8a"],
4: ["#a6cee3","#1f78b4","#b2df8a","#33a02c"],
5: ["#a6cee3","#1f78b4","#b2df8a","#33a02c","#fb9a99"],
6: ["#a6cee3","#1f78b4","#b2df8a","#33a02c","#fb9a99","#e31a1c"],
7: ["#a6cee3","#1f78b4","#b2df8a","#33a02c","#fb9a99","#e31a1c","#fdbf6f"],
8: ["#a6cee3","#1f78b4","#b2df8a","#33a02c","#fb9a99","#e31a1c","#fdbf6f","#ff7f00"],
9: ["#a6cee3","#1f78b4","#b2df8a","#33a02c","#fb9a99","#e31a1c","#fdbf6f","#ff7f00","#cab2d6"],
10: ["#a6cee3","#1f78b4","#b2df8a","#33a02c","#fb9a99","#e31a1c","#fdbf6f","#ff7f00","#cab2d6","#6a3d9a"],
11: ["#a6cee3","#1f78b4","#b2df8a","#33a02c","#fb9a99","#e31a1c","#fdbf6f","#ff7f00","#cab2d6","#6a3d9a","#ffff99"],
12: ["#a6cee3","#1f78b4","#b2df8a","#33a02c","#fb9a99","#e31a1c","#fdbf6f","#ff7f00","#cab2d6","#6a3d9a","#ffff99","#b15928"]
},Pastel1: {
3: ["#fbb4ae","#b3cde3","#ccebc5"],
4: ["#fbb4ae","#b3cde3","#ccebc5","#decbe4"],
5: ["#fbb4ae","#b3cde3","#ccebc5","#decbe4","#fed9a6"],
6: ["#fbb4ae","#b3cde3","#ccebc5","#decbe4","#fed9a6","#ffffcc"],
7: ["#fbb4ae","#b3cde3","#ccebc5","#decbe4","#fed9a6","#ffffcc","#e5d8bd"],
8: ["#fbb4ae","#b3cde3","#ccebc5","#decbe4","#fed9a6","#ffffcc","#e5d8bd","#fddaec"],
9: ["#fbb4ae","#b3cde3","#ccebc5","#decbe4","#fed9a6","#ffffcc","#e5d8bd","#fddaec","#f2f2f2"]
},Pastel2: {
3: ["#b3e2cd","#fdcdac","#cbd5e8"],
4: ["#b3e2cd","#fdcdac","#cbd5e8","#f4cae4"],
5: ["#b3e2cd","#fdcdac","#cbd5e8","#f4cae4","#e6f5c9"],
6: ["#b3e2cd","#fdcdac","#cbd5e8","#f4cae4","#e6f5c9","#fff2ae"],
7: ["#b3e2cd","#fdcdac","#cbd5e8","#f4cae4","#e6f5c9","#fff2ae","#f1e2cc"],
8: ["#b3e2cd","#fdcdac","#cbd5e8","#f4cae4","#e6f5c9","#fff2ae","#f1e2cc","#cccccc"]
},Set1: {
3: ["#e41a1c","#377eb8","#4daf4a"],
4: ["#e41a1c","#377eb8","#4daf4a","#984ea3"],
5: ["#e41a1c","#377eb8","#4daf4a","#984ea3","#ff7f00"],
6: ["#e41a1c","#377eb8","#4daf4a","#984ea3","#ff7f00","#ffff33"],
7: ["#e41a1c","#377eb8","#4daf4a","#984ea3","#ff7f00","#ffff33","#a65628"],
8: ["#e41a1c","#377eb8","#4daf4a","#984ea3","#ff7f00","#ffff33","#a65628","#f781bf"],
9: ["#e41a1c","#377eb8","#4daf4a","#984ea3","#ff7f00","#ffff33","#a65628","#f781bf","#999999"]
},Set2: {
3: ["#66c2a5","#fc8d62","#8da0cb"],
4: ["#66c2a5","#fc8d62","#8da0cb","#e78ac3"],
5: ["#66c2a5","#fc8d62","#8da0cb","#e78ac3","#a6d854"],
6: ["#66c2a5","#fc8d62","#8da0cb","#e78ac3","#a6d854","#ffd92f"],
7: ["#66c2a5","#fc8d62","#8da0cb","#e78ac3","#a6d854","#ffd92f","#e5c494"],
8: ["#66c2a5","#fc8d62","#8da0cb","#e78ac3","#a6d854","#ffd92f","#e5c494","#b3b3b3"]
},Set3: {
3: ["#8dd3c7","#ffffb3","#bebada"],
4: ["#8dd3c7","#ffffb3","#bebada","#fb8072"],
5: ["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3"],
6: ["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3","#fdb462"],
7: ["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3","#fdb462","#b3de69"],
8: ["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3","#fdb462","#b3de69","#fccde5"],
9: ["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3","#fdb462","#b3de69","#fccde5","#d9d9d9"],
10: ["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3","#fdb462","#b3de69","#fccde5","#d9d9d9","#bc80bd"],
11: ["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3","#fdb462","#b3de69","#fccde5","#d9d9d9","#bc80bd","#ccebc5"],
12: ["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3","#fdb462","#b3de69","#fccde5","#d9d9d9","#bc80bd","#ccebc5","#ffed6f"]
}};

@ -0,0 +1,447 @@
<!--
~ Copyright (c) WSO2 Inc. (http://wso2.com) All Rights Reserved.
~
~ Licensed under the Apache License, Version 2.0 (the "License");
~ you may not use this file except in compliance with the License.
~ You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing, software
~ distributed under the License is distributed on an "AS IS" BASIS,
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
<%
// i18n
var i18n = require("i18n");
i18n.init(request, utils.getLocaleResourcePath());
// If the pageId is null, render the landing page
pageId = pageId || dashboard.landing;
var usr = require('/modules/user.js'),
user = usr.current(),
isAnonView = request.getParameter('isAnonView');
// Get the anon view
if (!user) {
if (isAnonView) {
response.sendRedirect(request.getRequestURL());
}
isAnonView = true;
} else {
isAnonView = JSON.parse(isAnonView);
if((user.domain != urlDomain && urlDomain) ||
(dashboard.isanon && !utils.allowed(user.roles, dashboard.permissions.editors) && !utils.allowed(user.roles, dashboard.permissions.viewers))) {
isAnonView = true;
}
}
// Get the current page
var pages = dashboard.pages,
page;
pages.forEach(function(p) {
if (p.id == pageId) {
page = p;
}
});
%>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title><%= i18n.localize("dashboard.server.label")%></title>
<!-- Favicon -->
<link rel="shortcut icon" href="<%=urlPrefix%>libs/theme-wso2_1.0/images/favicon.png" />
<!-- Bootstrap CSS -->
<link href="<%=urlPrefix%>libs/bootstrap_3.3.5/css/bootstrap.min.css" rel="stylesheet" type="text/css" />
<!-- Font WSO2 CSS -->
<link href="<%=urlPrefix%>libs/font-wso2_1.0.0/css/font-wso2.min.css" rel="stylesheet" type="text/css" />
<!-- Jquery Nanoscroller CSS -->
<link href="<%=urlPrefix%>libs/nanoscroller_0.8.7/nanoscroller.css" rel="stylesheet" type="text/css" />
<!-- Theme WSO2 CSS -->
<link href="<%=urlPrefix%>libs/theme-wso2_1.0/css/theme-wso2.css" rel="stylesheet" type="text/css" />
<!-- Custom CSS -->
<link href="<%=urlPrefix%>css/custom.css" rel="stylesheet" type="text/css" />
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script src="<%=urlPrefix%>libs/html5shiv_3.7.2/html5shiv.min.js"></script>
<script src="<%=urlPrefix%>libs/respond_1.4.2/respond.min.js"></script>
<![endif]-->
<!-- JQuery UI -->
<link rel="stylesheet" type="text/css" href="<%=urlPrefix%>libs/jquery-ui-1.11.4/jquery-ui.min.css" />
<link rel="stylesheet" href="<%=urlPrefix%>css/dashboard.css" />
<!-- Common CSS -->
<link rel="stylesheet" type="text/css" href="<%=urlPrefix%>css/common.css" />
<!-- Custom theme overrides -->
<link rel="stylesheet" href="<%=urlPrefix%><%=utils.dashboardStyles(dashboard.theme)%>">
</head>
<body class="dashboard lang_<%=request.getLocale()%>">
<!-- .left-sidebar -->
<div class="sidebar-wrapper sidebar-nav toggled hidden-xs" id="left-sidebar" data-side="left" data-width="260" style="width:260px">
<div class="nano">
<div class="nano-content">
<div class="user">
<div class="user-image">
<span class="default">
<span class="icon fw fw-stack">
<i class="fw fw-circle fw-stack-2x"></i>
<i class="fw fw-user fw-stack-1x fw-inverse"></i>
</span>
</span>
</div>
<div class="user-name"><%= user ? user.username : "anon" %></div>
</div>
<ul class="nav nav-pills nav-stacked pages">
<% if (pages.length > 1) {
// render links
pages.forEach(function (p) {
if (isAnonView || !user) {
if (p.isanon) {
// Anonymous viewing. So render only anonymous pages links.
renderPageLink(p);
}
} else {
renderPageLink(p);
}
});
}
function renderPageLink(p) {
var queryString = isAnonView ? '?isAnonView=true' : '';
%>
<li class="<%= (p.id === pageId) ? 'active': '' %>"><a href="<%=dbRoot%><%=p.id%><%=queryString%>"><%=encodeHtml(p.title)%></a></li>
<% } %>
</ul>
<hr>
<ul class="nav nav-pills nav-stacked">
<% if (user) { %>
<% if (!isAnonView && (urlDomain == user.domain || (user.domain == superDomain && (!urlDomain || urlDomain == superDomain)))) { %>
<% if (user.isEditor) { %>
<li><a href="<%=dbRoot%>?editor=true"><i class="icon fw fw-settings ues-copy" title="<%= i18n.localize("edit.button")%>"></i>Dashboard Settings</a></li>
<% } else { %>
<li><a href="<%=dbRoot%>?custom=true"><i class="icon fw fw-settings ues-copy" title="<%= i18n.localize("personalize")%>"></i>Customize Dashboard</a></li>
<% } %>
<% } %>
<li><a href="<%=urlPrefix%>logout?destination=<%=dest%>"><i class="icon fw fw-sign-out"></i><%= i18n.localize("logout.label")%></a></li>
<% } else { %>
<li><a href="<%=urlPrefix%>login-controller?destination=<%=dest%>"><i class="icon fw fw-sign-in"></i><%= i18n.localize("login.label")%></a></li>
<% } %>
</ul>
</div>
</div>
</div>
<!-- #page-content-wrapper -->
<div class="page-content-wrapper remove-padding-xs" style="padding-left:260px;">
<div class="nano">
<div class="nano-content">
<div class="page-header">
<div class="container-fluid">
<div class="navbar-header">
<a class="sidebar-toggle-button hidden-xs" data-toggle="sidebar" data-target="#left-sidebar" data-container=".page-content-wrapper" data-container-divide="true" aria-expanded="true" rel="sub-nav">
<span class="icon fw-stack">
<i class="fw fw-menu fw-stack-1x toggle-icon-left"></i>
</span>
</a>
<a class="sidebar-toggle-button visible-xs" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
<span class="icon fw-stack">
<i class="fw fw-menu fw-stack-1x toggle-icon-up"></i>
</span>
</a>
<div class="page-title pull-left text-center-xs">
<h1 class="text-center-xs"><i class="icon fw fw-wso2-logo"></i><%=encodeHtml(dashboard.title)%></h1>
</div>
<div class="pull-right auth visible-xs">
<span class="add-padding-left-3x"><%= user ? user.username : "anon" %></span>
<span class="icon fw-stack fw-lg">
<i class="fw fw-circle fw-stack-2x"></i>
<i class="fw fw-user fw-stack-1x fw-inverse"></i>
</span>
</div>
<ul class="nav collapse-nav-sub pull-right hidden">
<li class="visible-inline-block">
<a data-toggle="dropdown">
<span class="icon fw-stack">
<i class="fw fw-notification fw-stack-1x"></i>
</span>
<span class="badge">4</span>
</a>
<div class="dropdown-menu dropdown-menu-right arrow alerts arrow-top-right dark add-margin-top-2x" role="menu">
<ul class="sidebar-messages">
<li class="message message-success">
<h4><i class="icon fw fw-success"></i>Minor Information Message</h4>
<p>Alerts don't have default classes, only base and modifier classes.</p>
</li>
<li class="message message-info">
<h4><i class="icon fw fw-info"></i>Minor Information Message</h4>
<p>Alerts don't have default classes, only base and modifier classes.</p>
</li>
<li class="message message-warning">
<h4><i class="icon fw fw-warning"></i>Major Information Message</h4>
<p>Alerts don't have default classes, only base and modifier classes.</p>
</li>
<li class="message message-danger">
<h4><i class="icon fw fw-error"></i>Critical Information Message</h4>
<p>Alerts don't have default classes, only base and modifier classes.</p>
</li>
</ul>
</div>
</li>
</ul>
</div>
<div id="navbar" class="navbar-collapse collapse" aria-expanded="false">
<ul class="nav navbar-nav pages">
<% if (pages.length > 1) {
// render links
pages.forEach(function (p) {
if (isAnonView || !user) {
if (p.isanon) {
// Anonymous viewing. So render only anonymous pages links.
renderPageLink(p);
}
} else {
renderPageLink(p);
}
});
}
function renderPageLink(p) {
var queryString = isAnonView ? '?isAnonView=true' : '';
%>
<li class="<%= (p.id === pageId) ? 'active': '' %>"><a href="<%=dbRoot%><%=p.id%><%=queryString%>"><%=encodeHtml(p.title)%></a></li>
<% } %>
</ul>
<hr>
<ul class="nav nav-pills nav-stacked">
<% if (user) { %>
<% if (!isAnonView && (urlDomain == user.domain || (user.domain == superDomain && (!urlDomain || urlDomain == superDomain)))) { %>
<% if (user.isEditor) { %>
<li><a href="<%=dbRoot%>?editor=true"><i class="icon fw fw-settings ues-copy" title="<%= i18n.localize("edit.button")%>"></i>Dashboard Settings</a></li>
<% } else { %>
<li><a href="<%=dbRoot%>?custom=true"><i class="icon fw fw-settings ues-copy" title="<%= i18n.localize("personalize")%>"></i>Customize Dashboard</a></li>
<% } %>
<% } %>
<li><a href="<%=urlPrefix%>logout?destination=<%=dest%>"><i class="icon fw fw-sign-out"></i><%= i18n.localize("logout.label")%></a></li>
<% } else { %>
<li><a href="<%=urlPrefix%>login-controller?destination=<%=dest%>"><i class="icon fw fw-sign-in"></i><%= i18n.localize("login.label")%></a></li>
<% } %>
</ul>
</div><!--/.nav-collapse -->
</div>
</div>
<!-- page content -->
<div class="container-fluid body-wrapper">
<div class="page-content">
<!-- Components grid -->
<div class="ues-components-grid gadgets-grid">
<%=renderEngine.getDashboardContent(pageId || dashboard.landing, isAnonView)%>
</div>
</div>
</div>
</div>
</div>
</div><!-- /#page-content-wrapper -->
<!--Footer -->
<footer class="footer">
<div class="container-fluid">
<p>WSO2 Dashboard Server 2.0.0 | &copy; <script>document.write(new Date().getFullYear());</script> <a href="http://wso2.com/" target="_blank"><i class="icon fw fw-wso2"></i> Inc</a>.</p>
</div>
</footer>
<!-- Jquery/Jquery UI JS -->
<script src="<%=urlPrefix%>libs/jquery_1.11.0/jquery-1.11.3.min.js"></script>
<script src="<%=urlPrefix%>libs/jquery-ui-1.11.4/jquery-ui.min.js"></script>
<!-- Bootstrap JS -->
<script src="<%=urlPrefix%>libs/bootstrap_3.3.5/js/bootstrap.min.js"></script>
<!-- Jquery Nanoscroller JS -->
<script src="<%=urlPrefix%>libs/nanoscroller_0.8.7/jquery.nanoscroller.min.js"></script>
<!-- Theme WSO2 JS -->
<script src="<%=urlPrefix%>libs/theme-wso2_1.0/js/theme-wso2.js"></script>
<!-- Handlebars JS -->
<script src="<%=urlPrefix%>libs/handlebars-v4.0.2/handlebars.min.js"></script>
<script src="/shindig/gadgets/js/container:open-views:opensearch:rpc:xmlutil:pubsub-2.js?c=1&debug=1&container=default"></script>
<script src="<%=urlPrefix%>js/ues.js"></script>
<script src="<%=urlPrefix%>js/ues-prefs.js"></script>
<% include('/controllers/includes/common-scripts.jag'); %>
<% include('/controllers/includes/dashboard-scripts.jag'); %>
<script src="<%=urlPrefix%>js/ues-gadgets.js"></script>
<script src="<%=urlPrefix%>js/ues-dashboards.js"></script>
<script src="<%=urlPrefix%>extensions/components/gadget/index.js"></script>
<script src="<%=urlPrefix%>extensions/components/widget/index.js"></script>
<script src="<%=urlPrefix%>extensions/uris/local/index.js"></script>
<script src="<%=urlPrefix%>extensions/uris/store/index.js"></script>
<script src="<%=urlPrefix%>js/gadget-properties.js"></script>
<script src="<%=urlPrefix%>js/ds-handlebar-helpers.js"></script>
<script src="<%=urlPrefix%>js/ues-saml-at.js"></script>
<script src="<%=urlPrefix%>js/dashboard.js"></script>
<% include('/controllers/includes/theme-dashboard-scripts.jag'); %>
<!-- Handlebar templates -->
<!-- Component container -->
<script id="ues-component-box-content-hbs" type="text/x-handlebars-template">
<div class="gadget-wrapper">
<div class="ues-component gadget">
<div class="ues-component-heading gadget-heading">
<h4 class="ues-component-title gadget-title truncate"></h4>
<div class="ues-component-actions gadget-actions">
</div>
</div>
<div class="ues-component-body gadget-body"></div>
</div>
</div>
</script>
<!-- Component toolbar actions -->
<script id="ues-component-actions-hbs" type="text/x-handlebars-template">
<div class="btn-group">
{{#if userPrefsExists}}
<button type="button" class="btn btn-default ues-component-settings-handle" title="<%= i18n.localize("properties.label") %>">
<i class="icon fw fw fw-configarations"></i>
</button>
{{/if}}
<button type="button" class="btn btn-default ues-component-full-handle" title="<%= i18n.localize("maximize.label") %>"
data-maximize-title="<%= i18n.localize("maximize.label") %>" data-minimize-title="<%= i18n.localize("minimize.label") %>">
<i class="icon fw fw-expand"></i>
</button>
</div>
</script>
<!-- Gadget settings -->
<script id="ues-gadget-setting-hbs" type="text/x-handlebars-template">
<div class="ues-sandbox gadget-setting" data-component="{{id}}">
<form>
{{#has options}}
<div class="ues-options">
<h4><%= i18n.localize("options") %></h4>
{{#each options}}
<div class="form-group">
<div class="col-sm-12">
{{#equals type "STRING"}}
<label>{{title}}
<input type="text" class="form-control" name="{{@key}}" placeholder="{{title}}" value="{{value}}">
</label>
{{/equals}}
{{#equals type "BOOL"}}
<label>
<input type="checkbox" name="{{title}}"{{#equals value true}} checked="checked"{{/equals}}> {{title}}
</label>
{{/equals}}
{{#equals type "ENUM"}}
<label>{{title}}
<select id={{title}} name={{title}} class="form-control ues-title-position">
{{#each options}}
<option value={{value}}{{#equals value ../value}} selected="selected"{{/equals}}>{{displayValue}}</option>
{{/each}}
</select>
</label>
{{/equals}}
{{#equals type "LIST"}}
<label>{{title}}
<textarea name="{{@key}}" class="form-control" rows="4" placeholder='<%= i18n.localize("placeholder.item.list")%>'>{{value}}</textarea>
<label><%= i18n.localize("enter.your.list.entries.label")%></label>
</label>
{{/equals}}
{{#equals type "text"}}
<label>{{title}}
<textarea name="{{@key}}" class="form-control" rows="4">{{value}}</textarea>
</label>
{{/equals}}
</div>
</div>
{{/each}}
</div>
{{else}}
<div class="alert alert-info">No properties to configure.</div>
{{/has}}
</form>
</div>
</script>
<!-- Scripts -->
<script>
var nanoScrollerSelector = $(".nano");
nanoScrollerSelector.nanoScroller();
function updateSidebarNav(target) {
$(target).show();
$(target).siblings().hide();
nanoScrollerSelector[0].nanoscroller.reset();
}
if (!ues.global.renderFromExtension) {
ues.dashboards.render($('.ues-components-grid'), ues.global.dashboard, ues.global.page);
}
$(document).ready(function() {
// Show banner
if (ues.global.dashboard.banner.globalBannerExists || ues.global.dashboard.banner.customBannerExists) {
$('.ues-banner-placeholder').css("background-image", "url('<%=tenantedUrlPrefix%>banners/<%=dashboard.id%>')");
} else {
$('.ues-banner-placeholder').hide();
}
// Toggle component box heading
$('.ues-component').hover(function() {
toggleHeading($(this), true);
}, function() {
toggleHeading($(this), false);
});
});
function toggleHeading(source, show) {
if (source.hasClass('ues-no-heading')) {
var heading = source.find('.ues-component-heading');
if (show) {
heading.slideDown();
} else {
heading.slideUp();
}
}
}
</script>
</body>
</html>
Loading…
Cancel
Save