Commit 16ecb410 authored by prumde's avatar prumde

Coaching Dashboard - XML

git-svn-id: http://15.206.35.175/svn/proteus/business-java/trunk@214261 ce508802-f39f-4f6c-b175-0d175dae99d5
parent 294317ef
<?xml version='1.0'?>
<Root>
<filters display="N">
<filter type="4">
<default_value><![CDATA[LAST('0','M')]]></default_value>
<col_name><![CDATA[FromDate]]></col_name>
<col_descr><![CDATA[From date]]></col_descr>
<col_id><![CDATA[FromDate]]></col_id>
<field_name><![CDATA[]]></field_name>
<mod_name><![CDATA[]]></mod_name>
<show_ontitle><![CDATA[1]]></show_ontitle>
<mandatory><![CDATA[Y]]></mandatory>
</filter>
<filter type="4">
<default_value><![CDATA[CURRENT_DATE]]></default_value>
<col_name><![CDATA[ToDate]]></col_name>
<col_descr><![CDATA[To date]]></col_descr>
<col_id><![CDATA[ToDate]]></col_id>
<field_name><![CDATA[]]></field_name>
<mod_name><![CDATA[]]></mod_name>
<show_ontitle><![CDATA[1]]></show_ontitle>
<mandatory><![CDATA[Y]]></mandatory>
</filter>
</filters>
<page_title><![CDATA[Coaching Activity]]></page_title>
<datasource id="1" dataSourceType="datamodel"><![CDATA[LEADERBOARD_ABM_DM]]></datasource>
<datasource id="2" dataSourceType="datamodel"><![CDATA[COACHING_ABM_DM]]></datasource>
<view id="1" name="Default" type="flatonly">
<component datasource="1" id="1" type="COMPOSITE">
<component_icon><![CDATA[]]></component_icon>
<ComponentTitle><![CDATA[]]></ComponentTitle>
<ComponentName><![CDATA[]]></ComponentName>
<component_css><![CDATA[db-col-1]]></component_css>
<component_descr><![CDATA[]]></component_descr>
<layout>
<html><![CDATA[]]></html>
</layout>
<composite>
<composite_id><![CDATA[_composite_banner]]></composite_id>
<composite_descr><![CDATA[ABM Coaching Leaderboard - Banner Card]]></composite_descr>
<link_metadata><![CDATA[leaderboard_abm]]></link_metadata>
<column_group id="1">
<columns>
<column id="1" type="number" aggFunction="RANK" filterkey="EMP_CODE" range="1:1"><![CDATA[COACHING_COUNT]]></column>
</columns>
</column_group>
<composite_config><![CDATA[
{
component_type: 'BANNER_CARD',
detailModel: {
image_column: 'image',
info_column: 'rank',
sub_info_column: 'COACHING_COUNT',
}
}
]]></composite_config>
</composite>
</component>
<component datasource="2" id="1" type="COMPOSITE">
<component_icon><![CDATA[]]></component_icon>
<ComponentTitle><![CDATA[]]></ComponentTitle>
<ComponentName><![CDATA[]]></ComponentName>
<component_css><![CDATA[db-col-1]]></component_css>
<component_descr><![CDATA[]]></component_descr>
<layout>
<html><![CDATA[]]></html>
</layout>
<composite>
<composite_id><![CDATA[_composite_abm_details]]></composite_id>
<composite_descr><![CDATA[ABM Coaching - Custom Chart Card]]></composite_descr>
<link_metadata><![CDATA[]]></link_metadata>
<column_group id="1">
<columns>
<column id="1" type="string" filterBy="POSITION_DESCR"><![CDATA[ABM]]></column>
</columns>
</column_group>
<column_group id="2">
<columns>
<column id="1" type="string" groupBy="SURVEY_GROUP"><![CDATA[]]></column>
</columns>
</column_group>
<column_group id="2">
<columns>
<column id="1" type="number" aggFunction="SORT_BY" order="ASC"><![CDATA[DISPLAY_ORDER]]></column>
</columns>
</column_group>
<composite_config><![CDATA[
{
component_type: 'CUSTOM_CHART',
detailModel: {
image_column: 'SURVEY_IMAGE',
theme_column: 'SURVEY_THEME',
title_column: 'SH_DESCR',
info_column: 'PERC',
order_column: 'PERC',
sub_info_column: 'DESCR',
},
chart_properties: {
chartType: 'percentage',
labels: [''],
options: {
width: 64,
height: 64,
responsive: true,
maintainAspectRatio: false,
tooltip: false,
cutOutPercentage: 85,
chartCenterText: "data[0] + '%'",
condnFormat: [
{
id: "RED",
expression: " data[0] <= 60 ",
colors: [[252, 101, 101], [248, 248, 248]]
},
{
id: "YELLOW",
expression: " ( 61 < data[0] ) && ( data[0] <= 80 ) ",
colors: [[255, 211, 90], [248, 248, 248]]
},
{
id: "GREEN",
expression: " ( 81 < data[0] ) && ( data[0] <= 100 ) ",
colors: [[0, 199, 153], [248, 248, 248]]
}
]
}
}
}
]]></composite_config>
</composite>
<composite>
<composite_id><![CDATA[_composite_esi_list]]></composite_id>
<composite_descr><![CDATA[ABM Coaching ESI Summary - Profile Card with Drilldown]]></composite_descr>
<link_metadata><![CDATA[_composite_esi_details]]></link_metadata>
<column_group id="1">
<columns>
<column id="1" type="string" filterBy="POSITION_DESCR"><![CDATA[ESI]]></column>
</columns>
</column_group>
<column_group id="2">
<columns>
<column id="1" type="string" aggFunction="SUM" groupBy="EMP_CODE"><![CDATA[COACHING_COUNT,CUST_COUNT]]></column>
</columns>
</column_group>
<column_group id="3">
<columns>
<column id="1" type="number" aggFunction="SORT_BY" order="ASC"><![CDATA[COACHING_COUNT]]></column>
</columns>
</column_group>
<composite_config><![CDATA[
{
component_type: 'PROFILE_CARD',
summaryModel: {
image: 'meet_summary.svg',
title: 'Summary',
title_column: 'title',
info_visible: false,
selected: true
},
detailModel: {
image_column: 'USER:EMP_CODE',
image_size: 'lg',
title_column: 'EMP_NAME',
filter_column: 'EMP_CODE',
badge_column: 'POSITION_DESCR',
info_text: 'Customer',
info_column: 'CUST_COUNT',
sub_info_text: 'Coaching',
sub_info_column: 'COACHING_COUNT',
info_visible : true,
}
}
]]></composite_config>
</composite>
<composite>
<composite_id><![CDATA[_composite_esi_details]]></composite_id>
<composite_descr><![CDATA[ABM Coaching ESI Summary - Custom Chart Card]]></composite_descr>
<link_metadata><![CDATA[]]></link_metadata>
<column_group id="1">
<columns>
<column id="1" type="string" filterBy="POSITION_DESCR"><![CDATA[ESI]]></column>
</columns>
</column_group>
<column_group id="2">
<columns>
<column id="1" type="string" aggFunction="AVERAGE" groupBy="SURVEY_GROUP,SURVEY_CODE"><![CDATA[PERC]]></column>
</columns>
</column_group>
<column_group id="2">
<columns>
<column id="1" type="string" groupBy="SURVEY_GROUP"><![CDATA[]]></column>
</columns>
</column_group>
<column_group id="3">
<columns>
<column id="1" type="number" aggFunction="SORT_BY" order="ASC"><![CDATA[DISPLAY_ORDER]]></column>
</columns>
</column_group>
<composite_config><![CDATA[
{
component_type: 'CUSTOM_CHART',
detailModel: {
image_column: 'SURVEY_IMAGE',
theme_column: 'SURVEY_THEME',
title_column: 'SH_DESCR',
info_column: 'PERC',
order_column: 'PERC',
sub_info_column: 'DESCR',
},
chart_properties: {
chartType: 'percentage',
labels: [''],
options: {
width: 64,
height: 64,
responsive: true,
maintainAspectRatio: false,
tooltip: false,
cutOutPercentage: 85,
chartCenterText: "data[0] + '%'",
condnFormat: [
{
id: "RED",
expression: " data[0] <= 60 ",
colors: [[252, 101, 101], [248, 248, 248]]
},
{
id: "YELLOW",
expression: " ( 61 < data[0] ) && ( data[0] <= 80 ) ",
colors: [[255, 211, 90], [248, 248, 248]]
},
{
id: "GREEN",
expression: " ( 81 < data[0] ) && ( data[0] <= 100 ) ",
colors: [[0, 199, 153], [248, 248, 248]]
}
]
}
}
}
]]></composite_config>
</composite>
</component>
</view>
</Root>
<?xml version='1.0'?>
<Root>
<filters display="N">
<filter type="4">
<default_value><![CDATA[LAST('0','M')]]></default_value>
<col_name><![CDATA[FromDate]]></col_name>
<col_descr><![CDATA[From date]]></col_descr>
<col_id><![CDATA[FromDate]]></col_id>
<field_name><![CDATA[]]></field_name>
<mod_name><![CDATA[]]></mod_name>
<show_ontitle><![CDATA[1]]></show_ontitle>
<mandatory><![CDATA[Y]]></mandatory>
</filter>
<filter type="4">
<default_value><![CDATA[CURRENT_DATE]]></default_value>
<col_name><![CDATA[ToDate]]></col_name>
<col_descr><![CDATA[To date]]></col_descr>
<col_id><![CDATA[ToDate]]></col_id>
<field_name><![CDATA[]]></field_name>
<mod_name><![CDATA[]]></mod_name>
<show_ontitle><![CDATA[1]]></show_ontitle>
<mandatory><![CDATA[Y]]></mandatory>
</filter>
</filters>
<page_title><![CDATA[Coaching Activity]]></page_title>
<datasource id="1" dataSourceType="datamodel"><![CDATA[LEADERBOARD_ESI_DM]]></datasource>
<datasource id="2" dataSourceType="datamodel"><![CDATA[COACHING_ESI_DM]]></datasource>
<view id="1" name="Default" type="flatonly">
<component datasource="1" id="1" type="COMPOSITE">
<component_icon><![CDATA[]]></component_icon>
<ComponentTitle><![CDATA[]]></ComponentTitle>
<ComponentName><![CDATA[]]></ComponentName>
<component_css><![CDATA[db-col-1]]></component_css>
<component_descr><![CDATA[]]></component_descr>
<layout>
<html><![CDATA[]]></html>
</layout>
<composite>
<composite_id><![CDATA[_composite_banner]]></composite_id>
<composite_descr><![CDATA[ESI Coaching Leaderboard - Banner Card]]></composite_descr>
<link_metadata><![CDATA[leaderboard_esi]]></link_metadata>
<column_group id="1">
<columns>
<column id="1" type="number" aggFunction="RANK" filterkey="EMP_CODE" range="1:1"><![CDATA[COACHING_COUNT]]></column>
</columns>
</column_group>
<composite_config><![CDATA[
{
component_type: 'BANNER_CARD',
detailModel: {
image_column: 'image',
info_column: 'rank',
sub_info_column: 'COACHING_COUNT',
}
}
]]></composite_config>
</composite>
</component>
<component datasource="2" id="1" type="COMPOSITE">
<component_icon><![CDATA[]]></component_icon>
<ComponentTitle><![CDATA[]]></ComponentTitle>
<ComponentName><![CDATA[]]></ComponentName>
<component_css><![CDATA[db-col-1]]></component_css>
<component_descr><![CDATA[]]></component_descr>
<layout>
<html><![CDATA[]]></html>
</layout>
<composite>
<composite_id><![CDATA[_composite_esi_summary]]></composite_id>
<composite_descr><![CDATA[ESI Coaching Summary - Profile Card with Drilldown]]></composite_descr>
<link_metadata><![CDATA[_composite_esi_details]]></link_metadata>
<column_group id="1">
<columns>
<column id="1" type="string" aggFunction="SUM" groupBy="SURVEY_GROUP"><![CDATA[COACHING_COUNT,CUST_COUNT]]></column>
</columns>
</column_group>
<column_group id="2">
<columns>
<column id="1" type="number" aggFunction="SORT_BY" order="ASC"><![CDATA[DISPLAY_ORDER]]></column>
</columns>
</column_group>
<composite_config><![CDATA[
{
component_type: 'PROFILE_CARD',
summaryModel: {
image: 'meet_summary.svg',
title: 'Summary',
title_column: 'title',
info_visible: false,
selected: true
},
detailModel: {
image_column: 'SURVEY_IMAGE',
image_size: 'lg',
theme_column: 'SURVEY_THEME',
title_column: 'SH_DESCR',
filter_column: 'SH_DESCR',
info_text: 'Customer',
info_column: 'CUST_COUNT',
sub_info_text: 'Coaching',
sub_info_column: 'COACHING_COUNT',
info_visible : true,
}
}
]]></composite_config>
</composite>
<composite>
<composite_id><![CDATA[_composite_esi_details]]></composite_id>
<composite_descr><![CDATA[ESI Coaching - Custom Chart Card]]></composite_descr>
<link_metadata><![CDATA[]]></link_metadata>
<column_group id="1">
<columns>
<column id="1" type="string" groupBy="SURVEY_GROUP"><![CDATA[]]></column>
</columns>
</column_group>
<column_group id="2">
<columns>
<column id="1" type="number" aggFunction="SORT_BY" order="ASC"><![CDATA[DISPLAY_ORDER]]></column>
</columns>
</column_group>
<composite_config><![CDATA[
{
component_type: 'CUSTOM_CHART',
detailModel: {
image_column: 'SURVEY_IMAGE',
theme_column: 'SURVEY_THEME',
title_column: 'SH_DESCR',
info_column: 'PERC',
order_column: 'PERC',
sub_info_column: 'DESCR',
},
chart_properties: {
chartType: 'percentage',
labels: [''],
options: {
width: 64,
height: 64,
responsive: true,
maintainAspectRatio: false,
tooltip: false,
cutOutPercentage: 85,
chartCenterText: "data[0] + '%'",
condnFormat: [
{
id: "RED",
expression: " data[0] <= 60 ",
colors: [[252, 101, 101], [248, 248, 248]]
},
{
id: "YELLOW",
expression: " ( 61 < data[0] ) && ( data[0] <= 80 ) ",
colors: [[255, 211, 90], [248, 248, 248]]
},
{
id: "GREEN",
expression: " ( 81 < data[0] ) && ( data[0] <= 100 ) ",
colors: [[0, 199, 153], [248, 248, 248]]
}
]
}
}
}
]]></composite_config>
</composite>
</component>
</view>
</Root>
<?xml version='1.0'?>
<Root>
<filters display="N">
<filter type="4">
<default_value><![CDATA[LAST('0','M')]]></default_value>
<col_name><![CDATA[FromDate]]></col_name>
<col_descr><![CDATA[From date]]></col_descr>
<col_id><![CDATA[FromDate]]></col_id>
<field_name><![CDATA[]]></field_name>
<mod_name><![CDATA[]]></mod_name>
<show_ontitle><![CDATA[1]]></show_ontitle>
<mandatory><![CDATA[Y]]></mandatory>
</filter>
<filter type="4">
<default_value><![CDATA[CURRENT_DATE]]></default_value>
<col_name><![CDATA[ToDate]]></col_name>
<col_descr><![CDATA[To date]]></col_descr>
<col_id><![CDATA[ToDate]]></col_id>
<field_name><![CDATA[]]></field_name>
<mod_name><![CDATA[]]></mod_name>
<show_ontitle><![CDATA[1]]></show_ontitle>
<mandatory><![CDATA[Y]]></mandatory>
</filter>
</filters>
<page_title><![CDATA[Coaching Activity]]></page_title>
<datasource id="1" dataSourceType="datamodel"><![CDATA[COACHING_RSM_DM]]></datasource>
<view id="1" name="Default" type="flatonly">
<component datasource="1" id="1" type="COMPOSITE">
<component_icon><![CDATA[]]></component_icon>
<ComponentTitle><![CDATA[]]></ComponentTitle>
<ComponentName><![CDATA[]]></ComponentName>
<component_css><![CDATA[db-col-1]]></component_css>
<component_descr><![CDATA[]]></component_descr>
<layout>
<html><![CDATA[]]></html>
</layout>
<composite>
<composite_id><![CDATA[_composite_rsm_abm_list]]></composite_id>
<composite_descr><![CDATA[ABM Coaching Summary - Profile Card with Drilldown]]></composite_descr>
<link_metadata><![CDATA[_composite_rsm_abm_details,coaching_rsm_abm]]></link_metadata>
<column_group id="1">
<columns>
<column id="1" type="string" filterBy="POSITION_DESCR"><![CDATA[ABM]]></column>
</columns>
</column_group>
<column_group id="2">
<columns>
<column id="1" type="string" aggFunction="SUM" groupBy="EMP_CODE"><![CDATA[COACHING_COUNT,CUST_COUNT]]></column>
</columns>
</column_group>
<column_group id="3">
<columns>
<column id="1" type="number" aggFunction="SORT_BY" order="ASC"><![CDATA[COACHING_COUNT]]></column>
</columns>
</column_group>
<composite_config><![CDATA[
{
component_type: 'PROFILE_CARD',
summaryModel: {
image: 'meet_summary.svg',
title: 'Summary',
title_column: 'title',
info_visible: false,
selected: true
},
detailModel: {
image_column: 'USER:EMP_CODE',
image_size: 'lg',
title_column: 'EMP_NAME',
filter_column: 'EMP_CODE',
badge_column: 'POSITION_DESCR',
info_text: 'Customer',
info_column: 'CUST_COUNT',
sub_info_text: 'Coaching',
sub_info_column: 'COACHING_COUNT',
info_visible : true,
}
}
]]></composite_config>
</composite>
<composite>
<composite_id><![CDATA[_composite_rsm_abm_details]]></composite_id>
<composite_descr><![CDATA[ABM Coaching Summary - Custom Chart Card]]></composite_descr>
<link_metadata><![CDATA[]]></link_metadata>
<column_group id="1">
<columns>
<column id="1" type="string" filterBy="POSITION_DESCR"><![CDATA[ABM]]></column>
</columns>
</column_group>
<column_group id="2">
<columns>
<column id="1" type="string" aggFunction="AVERAGE" groupBy="SURVEY_GROUP,SURVEY_CODE"><![CDATA[PERC]]></column>
</columns>
</column_group>
<column_group id="2">
<columns>
<column id="1" type="string" groupBy="SURVEY_GROUP"><![CDATA[]]></column>
</columns>
</column_group>
<column_group id="3">
<columns>
<column id="1" type="number" aggFunction="SORT_BY" order="ASC"><![CDATA[DISPLAY_ORDER]]></column>
</columns>
</column_group>
<composite_config><![CDATA[
{
component_type: 'CUSTOM_CHART',
detailModel: {
image_column: 'SURVEY_IMAGE',
theme_column: 'SURVEY_THEME',
title_column: 'SH_DESCR',
info_column: 'PERC',
order_column: 'PERC',
sub_info_column: 'DESCR',
},
chart_properties: {
chartType: 'percentage',
labels: [''],
options: {
width: 64,
height: 64,
responsive: true,
maintainAspectRatio: false,
tooltip: false,
cutOutPercentage: 85,
chartCenterText: "data[0] + '%'",
condnFormat: [
{
id: "RED",
expression: " data[0] <= 60 ",
colors: [[252, 101, 101], [248, 248, 248]]
},
{
id: "YELLOW",
expression: " ( 61 < data[0] ) && ( data[0] <= 80 ) ",
colors: [[255, 211, 90], [248, 248, 248]]
},
{
id: "GREEN",
expression: " ( 81 < data[0] ) && ( data[0] <= 100 ) ",
colors: [[0, 199, 153], [248, 248, 248]]
}
]
}
}
}
]]></composite_config>
</composite>
<composite>
<composite_id><![CDATA[_composite_rsm_esi_details]]></composite_id>
<composite_descr><![CDATA[ABM Coaching ESI Summary - Custom Chart Card]]></composite_descr>
<link_metadata><![CDATA[]]></link_metadata>
<column_group id="1">
<columns>
<column id="1" type="string" filterBy="POSITION_DESCR"><![CDATA[ESI]]></column>
</columns>
</column_group>
<column_group id="2">
<columns>
<column id="1" type="string" aggFunction="AVERAGE" groupBy="SURVEY_GROUP,SURVEY_CODE"><![CDATA[PERC]]></column>
</columns>
</column_group>
<column_group id="3">
<columns>
<column id="1" type="string" groupBy="SURVEY_GROUP"><![CDATA[]]></column>
</columns>
</column_group>
<column_group id="4">
<columns>
<column id="1" type="number" aggFunction="SORT_BY" order="ASC"><![CDATA[DISPLAY_ORDER]]></column>
</columns>
</column_group>
<composite_config><![CDATA[
{
component_type: 'CUSTOM_CHART',
detailModel: {
image_column: 'SURVEY_IMAGE',
theme_column: 'SURVEY_THEME',
title_column: 'SH_DESCR',
info_column: 'PERC',
order_column: 'PERC',
sub_info_column: 'DESCR',
},
chart_properties: {
chartType: 'percentage',
labels: [''],
options: {
width: 64,
height: 64,
responsive: true,
maintainAspectRatio: false,
tooltip: false,
cutOutPercentage: 85,
chartCenterText: "data[0] + '%'",
condnFormat: [
{
id: "RED",
expression: " data[0] <= 60 ",
colors: [[252, 101, 101], [248, 248, 248]]
},
{
id: "YELLOW",
expression: " ( 61 < data[0] ) && ( data[0] <= 80 ) ",
colors: [[255, 211, 90], [248, 248, 248]]
},
{
id: "GREEN",
expression: " ( 81 < data[0] ) && ( data[0] <= 100 ) ",
colors: [[0, 199, 153], [248, 248, 248]]
}
]
}
}
}
]]></composite_config>
</composite>
</component>
</view>
</Root>
<?xml version='1.0'?>
<Root>
<filters display="N">
<filter type="4">
<default_value><![CDATA[LAST('0','M')]]></default_value>
<col_name><![CDATA[FromDate]]></col_name>
<col_descr><![CDATA[From date]]></col_descr>
<col_id><![CDATA[FromDate]]></col_id>
<field_name><![CDATA[]]></field_name>
<mod_name><![CDATA[]]></mod_name>
<show_ontitle><![CDATA[1]]></show_ontitle>
<mandatory><![CDATA[Y]]></mandatory>
</filter>
<filter type="4">
<default_value><![CDATA[CURRENT_DATE]]></default_value>
<col_name><![CDATA[ToDate]]></col_name>
<col_descr><![CDATA[To date]]></col_descr>
<col_id><![CDATA[ToDate]]></col_id>
<field_name><![CDATA[]]></field_name>
<mod_name><![CDATA[]]></mod_name>
<show_ontitle><![CDATA[1]]></show_ontitle>
<mandatory><![CDATA[Y]]></mandatory>
</filter>
<filter type="1">
<default_value><![CDATA[]]></default_value>
<col_name><![CDATA[EMP_CODE]]></col_name>
<col_descr><![CDATA[To EMP_CODE]]></col_descr>
<col_id><![CDATA[EMP_CODE]]></col_id>
<field_name><![CDATA[]]></field_name>
<mod_name><![CDATA[]]></mod_name>
<show_ontitle><![CDATA[1]]></show_ontitle>
<mandatory><![CDATA[Y]]></mandatory>
</filter>
</filters>
<page_title><![CDATA[Coaching Activity]]></page_title>
<datasource id="1" dataSourceType="datamodel" filterKey='EMP_CODE' filterExpr=' context["REPORT_TO"] == "EMP_CODE" '><![CDATA[COACHING_RSM_DM]]></datasource>
<view id="1" name="Default" type="flatonly">
<component datasource="1" id="1" type="COMPOSITE">
<component_icon><![CDATA[]]></component_icon>
<ComponentTitle><![CDATA[]]></ComponentTitle>
<ComponentName><![CDATA[]]></ComponentName>
<component_css><![CDATA[db-col-1]]></component_css>
<component_descr><![CDATA[]]></component_descr>
<layout>
<html><![CDATA[]]></html>
</layout>
<composite>
<composite_id><![CDATA[_composite_esi_list]]></composite_id>
<composite_descr><![CDATA[ABM Coaching ESI Summary - Profile Card with Drilldown]]></composite_descr>
<link_metadata><![CDATA[_composite_esi_details]]></link_metadata>
<column_group id="1">
<columns>
<column id="1" type="string" aggFunction="SUM" groupBy="EMP_CODE"><![CDATA[COACHING_COUNT,CUST_COUNT]]></column>
</columns>
</column_group>
<column_group id="2">
<columns>
<column id="1" type="number" aggFunction="SORT_BY" order="ASC"><![CDATA[COACHING_COUNT]]></column>
</columns>
</column_group>
<composite_config><![CDATA[
{
component_type: 'PROFILE_CARD',
summaryModel: {
image: 'meet_summary.svg',
title: 'Summary',
title_column: 'title',
info_visible: false,
selected: true
},
detailModel: {
image_column: 'USER:EMP_CODE',
image_size: 'lg',
title_column: 'EMP_NAME',
filter_column: 'EMP_CODE',
badge_column: 'POSITION_DESCR',
info_text: 'Customer',
info_column: 'CUST_COUNT',
sub_info_text: 'Coaching',
sub_info_column: 'COACHING_COUNT',
info_visible : true,
}
}
]]></composite_config>
</composite>
<composite>
<composite_id><![CDATA[_composite_esi_details]]></composite_id>
<composite_descr><![CDATA[ABM Coaching ESI Summary - Custom Chart Card]]></composite_descr>
<link_metadata><![CDATA[]]></link_metadata>
<column_group id="1">
<columns>
<column id="1" type="string" aggFunction="AVERAGE" groupBy="SURVEY_GROUP,SURVEY_CODE"><![CDATA[PERC]]></column>
</columns>
</column_group>
<column_group id="2">
<columns>
<column id="1" type="string" groupBy="SURVEY_GROUP"><![CDATA[]]></column>
</columns>
</column_group>
<column_group id="3">
<columns>
<column id="1" type="number" aggFunction="SORT_BY" order="ASC"><![CDATA[DISPLAY_ORDER]]></column>
</columns>
</column_group>
<composite_config><![CDATA[
{
component_type: 'CUSTOM_CHART',
detailModel: {
image_column: 'SURVEY_IMAGE',
theme_column: 'SURVEY_THEME',
title_column: 'SH_DESCR',
info_column: 'PERC',
order_column: 'PERC',
sub_info_column: 'DESCR',
},
chart_properties: {
chartType: 'percentage',
labels: [''],
options: {
width: 64,
height: 64,
responsive: true,
maintainAspectRatio: false,
tooltip: false,
cutOutPercentage: 85,
chartCenterText: "data[0] + '%'",
condnFormat: [
{
id: "RED",
expression: " data[0] <= 60 ",
colors: [[252, 101, 101], [248, 248, 248]]
},
{
id: "YELLOW",
expression: " ( 61 < data[0] ) && ( data[0] <= 80 ) ",
colors: [[255, 211, 90], [248, 248, 248]]
},
{
id: "GREEN",
expression: " ( 81 < data[0] ) && ( data[0] <= 100 ) ",
colors: [[0, 199, 153], [248, 248, 248]]
}
]
}
}
}
]]></composite_config>
</composite>
</component>
</view>
</Root>
<?xml version='1.0'?>
<Root>
<filters display="N">
<filter type='4'>
<default_value><![CDATA[LAST('0','M')]]>
</default_value>
<col_name><![CDATA[FromDate]]></col_name>
<col_descr><![CDATA[From date]]></col_descr>
<col_id><![CDATA[FromDate]]></col_id>
<field_name><![CDATA[]]></field_name>
<mod_name><![CDATA[]]></mod_name>
<show_ontitle><![CDATA[1]]></show_ontitle>
<mandatory><![CDATA[Y]]></mandatory>
</filter>
<filter type='4'>
<default_value><![CDATA[CURRENT_DATE]]>
</default_value>
<col_name><![CDATA[ToDate]]></col_name>
<col_descr><![CDATA[To date]]></col_descr>
<col_id><![CDATA[ToDate]]></col_id>
<field_name><![CDATA[]]></field_name>
<mod_name><![CDATA[]]></mod_name>
<show_ontitle><![CDATA[1]]></show_ontitle>
<mandatory><![CDATA[Y]]></mandatory>
</filter>
</filters>
<page_title><![CDATA[Leaderboard]]></page_title>
<datasource id="1" driverName="DriverITM" dataSourceType='datamodel'><![CDATA[LEADERBOARD_ABM_DM]]></datasource>
<datasource id="2" driverName="DriverITM" dataSourceType='datamodel'><![CDATA[LEADERBOARD_ESI_DM]]></datasource>
<view id="1" name="Default">
<component datasource="1" id="1" type="FEED">
<component_icon><![CDATA[stock_status.svg]]></component_icon>
<ComponentTitle><![CDATA[ABM Leaderboard]]></ComponentTitle>
<component_css><![CDATA[db-col-2]]></component_css>
<component_descr><![CDATA[]]></component_descr>
<obj_name><![CDATA[leaderboard_abm]]></obj_name>
<height><![CDATA[368]]></height>
<link_metadata><![CDATA[]]></link_metadata>
<layout protoType="card">
<html>
<![CDATA[
<style>
.feedData
{
padding: 4px 0px;
display: flex;
align-items: center;
width: calc(100% - 0px);
flex-direction: row;
}
.feedRow
{
display: flex;
align-items: center;
width: 100%;
position: relative;
}
.nameDetails
{
display: inline-block;
font-size: 14px;
padding: 1px;
/*cursor: pointer;*/
width: calc(100% - 110px);
}
.userName
{
position: relative;
vertical-align: -webkit-baseline-middle;
}
.userNameImg
{
width: 30px;
height: 30px;
background: #6673a0;
border-radius: 50%;
text-align: center;
line-height: 30px;
color: #fff;
font-size: 14px;
}
.countIndex
{
float: right;
font-size: 14px;
width: auto;
line-height: 29px;
display: flex;
position: absolute;
flex-direction: row;
align-items: center;
right: 0px;
}
.coachingPoint
{
text-align: right;
margin-right: 8px;
float: right;
/* position: absolute; */
/* right: 50px; */
}
.index
{
min-width: 15px;
width: auto;
right: 0px;
position: relative;
height: 25px;
background-image: linear-gradient(-45deg, rgb(0, 123, 171), rgb(0, 201, 255));
border-radius: 12PX;
color: #fff;
line-height: 25px;
text-align: center;
padding: 0 5px;
font-size: 12px;
}
</style>
<div style='max-height: auto; overflow: auto;'>
<div *ngFor="let userData of context; index as index;" style="padding: 0px 5px 0px;">
<ng-container *ngTemplateOutlet=" eventsTemplate; context:{ 'userData' : userData , 'index':index }"></ng-container>
</div>
</div>
<ng-template #eventsTemplate let-userData = 'userData' let-index='index' >
<div class="feedData">
<div class="feedRow">
<div style=" width: 38px; display: block;">
<img #img [src]= "_hostUrl+'/ibase/resource/images/users/' +userData.EMP_CODE.trim()+ '.png'"
(error)="img.style.display='none'" class="userNameImg">
<div *ngIf="img.style.display==='none' && userData.EMP_NAME " class="userNameImg" >
{{userData.EMP_NAME.substring(0,1)}}{{ userData.EMP_NAME.trim().indexOf(' ') > 0 ?
userData.EMP_NAME.substring(userData.EMP_NAME.indexOf(' ')
+1,userData.EMP_NAME.indexOf(' ')+2) : userData.EMP_NAME.substring(1,2) }}
</div>
</div>
<div class="nameDetails" title='{{userData.EMP_NAME}}'>
<div class=" userName componantTtl truncateText" style='position: relative; vertical-align: -webkit-baseline-middle;'>
{{userData.EMP_NAME}}
</div>
<div style=" font-size: 12px; color: #666; " > {{ userData.POSITION_DESCR }} , {{ userData.LOCALITY }} </div>
</div>
<div class="countIndex">
<div class="coachingPoint"> {{ userData.COACHING_COUNT }}
</div>
<div class="index" >{{index+1}}</div>
</div>
</div>
</div>
</ng-template> ]]>
</html>
</layout>
<column_group id="1">
<columns>
<column id="1" type="number" aggFunction="SORT_BY" order="descending"><![CDATA[COACHING_COUNT]]></column>
</columns>
</column_group>
</component>
<component datasource="2" id="2" type="FEED">
<component_icon><![CDATA[stock_status.svg]]></component_icon>
<ComponentTitle><![CDATA[ESI Leaderboard]]></ComponentTitle>
<component_css><![CDATA[db-col-2]]></component_css>
<component_descr><![CDATA[]]></component_descr>
<obj_name><![CDATA[leaderboard_esi]]></obj_name>
<height><![CDATA[368]]></height>
<link_metadata><![CDATA[]]></link_metadata>
<layout protoType="card">
<html>
<![CDATA[
<style>
.feedData
{
padding: 4px 0px;
display: flex;
align-items: center;
width: calc(100% - 0px);
flex-direction: row;
}
.feedRow
{
display: flex;
align-items: center;
width: 100%;
position: relative;
}
.nameDetails
{
display: inline-block;
font-size: 14px;
padding: 1px;
/*cursor: pointer;*/
width: calc(100% - 110px);
}
.userName
{
position: relative;
vertical-align: -webkit-baseline-middle;
}
.userNameImg
{
width: 30px;
height: 30px;
background: #6673a0;
border-radius: 50%;
text-align: center;
line-height: 30px;
color: #fff;
font-size: 14px;
}
.countIndex
{
float: right;
font-size: 14px;
width: auto;
line-height: 29px;
display: flex;
position: absolute;
flex-direction: row;
align-items: center;
right: 0px;
}
.coachingPoint
{
text-align: right;
margin-right: 8px;
float: right;
/* position: absolute; */
/* right: 50px; */
}
.index
{
min-width: 15px;
width: auto;
right: 0px;
position: relative;
height: 25px;
background-image: linear-gradient(-45deg, rgb(0, 123, 171), rgb(0, 201, 255));
border-radius: 12PX;
color: #fff;
line-height: 25px;
text-align: center;
padding: 0 5px;
font-size: 12px;
}
</style>
<div style='max-height: auto; overflow: auto;'>
<div *ngFor="let userData of context; index as index;" style="padding: 0px 5px 0px;">
<ng-container *ngTemplateOutlet=" eventsTemplate; context:{ 'userData' : userData , 'index':index }"></ng-container>
</div>
</div>
<ng-template #eventsTemplate let-userData = 'userData' let-index='index' >
<div class="feedData">
<div class="feedRow">
<div style=" width: 38px; display: block;">
<img #img [src]= "_hostUrl+'/ibase/resource/images/users/' +userData.EMP_CODE.trim()+ '.png'"
(error)="img.style.display='none'" class="userNameImg">
<div *ngIf="img.style.display==='none' && userData.EMP_NAME " class="userNameImg" >
{{userData.EMP_NAME.substring(0,1)}}{{ userData.EMP_NAME.trim().indexOf(' ') > 0 ?
userData.EMP_NAME.substring(userData.EMP_NAME.indexOf(' ')
+1,userData.EMP_NAME.indexOf(' ')+2) : userData.EMP_NAME.substring(1,2) }}
</div>
</div>
<div class="nameDetails" title='{{userData.EMP_NAME}}'>
<div class=" userName componantTtl truncateText" style='position: relative; vertical-align: -webkit-baseline-middle;'>
{{userData.EMP_NAME}}
</div>
<div style=" font-size: 12px; color: #666; " > {{ userData.POSITION_DESCR }} , {{ userData.LOCALITY }} </div>
</div>
<div class="countIndex">
<div class="coachingPoint"> {{ userData.COACHING_COUNT }}
</div>
<div class="index" >{{index+1}}</div>
</div>
</div>
</div>
</ng-template> ]]>
</html>
</layout>
<column_group id="1">
<columns>
<column id="1" type="number" aggFunction="SORT_BY" order="descending"><![CDATA[COACHING_COUNT]]></column>
</columns>
</column_group>
</component>
</view>
<!-- sample data
{"EMP_NAME":"SAMEER AHMED","LOCALITY":"CHENNAI","POSITION_DESCR":"ESI",
"CUST_COUNT":"0","EMP_CODE":"1002782 ","COACHING_COUNT":"0","REPORT_TO":"85348940 "} -->
</Root>
<?xml version='1.0'?>
<Root>
<filters display="N">
<filter type='4'>
<default_value><![CDATA[LAST('0','M')]]>
</default_value>
<col_name><![CDATA[FromDate]]></col_name>
<col_descr><![CDATA[From date]]></col_descr>
<col_id><![CDATA[FromDate]]></col_id>
<field_name><![CDATA[]]></field_name>
<mod_name><![CDATA[]]></mod_name>
<show_ontitle><![CDATA[1]]></show_ontitle>
<mandatory><![CDATA[Y]]></mandatory>
</filter>
<filter type='4'>
<default_value><![CDATA[CURRENT_DATE]]>
</default_value>
<col_name><![CDATA[ToDate]]></col_name>
<col_descr><![CDATA[To date]]></col_descr>
<col_id><![CDATA[ToDate]]></col_id>
<field_name><![CDATA[]]></field_name>
<mod_name><![CDATA[]]></mod_name>
<show_ontitle><![CDATA[1]]></show_ontitle>
<mandatory><![CDATA[Y]]></mandatory>
</filter>
</filters>
<page_title><![CDATA[Leaderboard]]></page_title>
<datasource id="1" driverName="DriverITM" dataSourceType='datamodel'><![CDATA[LEADERBOARD_ABM_DM]]></datasource>
<view id="1" name="Default">
<component datasource="1" id="1" type="FEED">
<component_icon><![CDATA[stock_status.svg]]></component_icon>
<ComponentTitle><![CDATA[ABM Leaderboard]]></ComponentTitle>
<component_css><![CDATA[db-col-1]]></component_css>
<component_descr><![CDATA[]]></component_descr>
<obj_name><![CDATA[leaderboard_abm]]></obj_name>
<height><![CDATA[368]]></height>
<link_metadata><![CDATA[]]></link_metadata>
<layout protoType="card">
<html>
<![CDATA[
<style>
.feedData
{
padding: 4px 0px;
display: flex;
align-items: center;
width: calc(100% - 0px);
flex-direction: row;
}
.feedRow
{
display: flex;
align-items: center;
width: 100%;
position: relative;
}
.nameDetails
{
display: inline-block;
font-size: 14px;
padding: 1px;
/*cursor: pointer;*/
width: calc(100% - 110px);
}
.userName
{
position: relative;
vertical-align: -webkit-baseline-middle;
}
.userNameImg
{
width: 30px;
height: 30px;
background: #6673a0;
border-radius: 50%;
text-align: center;
line-height: 30px;
color: #fff;
font-size: 14px;
}
.countIndex
{
float: right;
font-size: 14px;
width: auto;
line-height: 29px;
display: flex;
position: absolute;
flex-direction: row;
align-items: center;
right: 0px;
}
.coachingPoint
{
text-align: right;
margin-right: 8px;
float: right;
/* position: absolute; */
/* right: 50px; */
}
.index
{
min-width: 15px;
width: auto;
right: 0px;
position: relative;
height: 25px;
background-image: linear-gradient(-45deg, rgb(0, 123, 171), rgb(0, 201, 255));
border-radius: 12PX;
color: #fff;
line-height: 25px;
text-align: center;
padding: 0 5px;
font-size: 12px;
}
</style>
<div style='max-height: auto; overflow: auto;'>
<div *ngFor="let userData of context; index as index;" style="padding: 0px 5px 0px;">
<ng-container *ngTemplateOutlet=" eventsTemplate; context:{ 'userData' : userData , 'index':index }"></ng-container>
</div>
</div>
<ng-template #eventsTemplate let-userData = 'userData' let-index='index' >
<div class="feedData">
<div class="feedRow">
<div style=" width: 38px; display: block;">
<img #img [src]= "_hostUrl+'/ibase/resource/images/users/' +userData.EMP_CODE.trim()+ '.png'"
(error)="img.style.display='none'" class="userNameImg">
<div *ngIf="img.style.display==='none' && userData.EMP_NAME " class="userNameImg" >
{{userData.EMP_NAME.substring(0,1)}}{{ userData.EMP_NAME.trim().indexOf(' ') > 0 ?
userData.EMP_NAME.substring(userData.EMP_NAME.indexOf(' ')
+1,userData.EMP_NAME.indexOf(' ')+2) : userData.EMP_NAME.substring(1,2) }}
</div>
</div>
<div class="nameDetails" title='{{userData.EMP_NAME}}'>
<div class=" userName componantTtl truncateText" style='position: relative; vertical-align: -webkit-baseline-middle;'>
{{userData.EMP_NAME}}
</div>
<div style=" font-size: 12px; color: #666; " > {{ userData.POSITION_DESCR }} , {{ userData.LOCALITY }} </div>
</div>
<div class="countIndex">
<div class="coachingPoint"> {{ userData.COACHING_COUNT }}
</div>
<div class="index" >{{index+1}}</div>
</div>
</div>
</div>
</ng-template> ]]>
</html>
</layout>
<column_group id="1">
<columns>
<column id="1" type="number" aggFunction="SORT_BY" order="descending"><![CDATA[COACHING_COUNT]]></column>
</columns>
</column_group>
</component>
</view>
<!-- sample data
{"EMP_NAME":"SAMEER AHMED","LOCALITY":"CHENNAI","POSITION_DESCR":"ESI",
"CUST_COUNT":"0","EMP_CODE":"1002782 ","COACHING_COUNT":"0","REPORT_TO":"85348940 "} -->
</Root>
<?xml version='1.0'?>
<Root>
<filters display="N">
<filter type='4'>
<default_value><![CDATA[LAST('0','M')]]>
</default_value>
<col_name><![CDATA[FromDate]]></col_name>
<col_descr><![CDATA[From date]]></col_descr>
<col_id><![CDATA[FromDate]]></col_id>
<field_name><![CDATA[]]></field_name>
<mod_name><![CDATA[]]></mod_name>
<show_ontitle><![CDATA[1]]></show_ontitle>
<mandatory><![CDATA[Y]]></mandatory>
</filter>
<filter type='4'>
<default_value><![CDATA[CURRENT_DATE]]>
</default_value>
<col_name><![CDATA[ToDate]]></col_name>
<col_descr><![CDATA[To date]]></col_descr>
<col_id><![CDATA[ToDate]]></col_id>
<field_name><![CDATA[]]></field_name>
<mod_name><![CDATA[]]></mod_name>
<show_ontitle><![CDATA[1]]></show_ontitle>
<mandatory><![CDATA[Y]]></mandatory>
</filter>
</filters>
<page_title><![CDATA[Leaderboard]]></page_title>
<datasource id="1" driverName="DriverITM" dataSourceType='datamodel'><![CDATA[LEADERBOARD_ESI_DM]]></datasource>
<view id="1" name="Default">
<component datasource="1" id="2" type="FEED">
<component_icon><![CDATA[stock_status.svg]]></component_icon>
<ComponentTitle><![CDATA[ESI Leaderboard]]></ComponentTitle>
<component_css><![CDATA[db-col-1]]></component_css>
<component_descr><![CDATA[]]></component_descr>
<obj_name><![CDATA[leaderboard_esi]]></obj_name>
<height><![CDATA[100%]]></height>
<link_metadata><![CDATA[]]></link_metadata>
<layout protoType="card">
<html>
<![CDATA[
<style>
.feedData
{
padding: 4px 0px;
display: flex;
align-items: center;
width: calc(100% - 0px);
flex-direction: row;
}
.feedRow
{
display: flex;
align-items: center;
width: 100%;
position: relative;
}
.nameDetails
{
display: inline-block;
font-size: 14px;
padding: 1px;
/*cursor: pointer;*/
width: calc(100% - 110px);
}
.userName
{
position: relative;
vertical-align: -webkit-baseline-middle;
}
.userNameImg
{
width: 30px;
height: 30px;
background: #6673a0;
border-radius: 50%;
text-align: center;
line-height: 30px;
color: #fff;
font-size: 14px;
}
.countIndex
{
float: right;
font-size: 14px;
width: auto;
line-height: 29px;
display: flex;
position: absolute;
flex-direction: row;
align-items: center;
right: 0px;
}
.coachingPoint
{
text-align: right;
margin-right: 8px;
float: right;
/* position: absolute; */
/* right: 50px; */
}
.index
{
min-width: 15px;
width: auto;
right: 0px;
position: relative;
height: 25px;
background-image: linear-gradient(-45deg, rgb(0, 123, 171), rgb(0, 201, 255));
border-radius: 12PX;
color: #fff;
line-height: 25px;
text-align: center;
padding: 0 5px;
font-size: 12px;
}
</style>
<div style='max-height: auto; overflow: auto;'>
<div *ngFor="let userData of context; index as index;" style="padding: 0px 5px 0px;">
<ng-container *ngTemplateOutlet=" eventsTemplate; context:{ 'userData' : userData , 'index':index }"></ng-container>
</div>
</div>
<ng-template #eventsTemplate let-userData = 'userData' let-index='index' >
<div class="feedData">
<div class="feedRow">
<div style=" width: 38px; display: block;">
<img #img [src]= "_hostUrl+'/ibase/resource/images/users/' +userData.EMP_CODE.trim()+ '.png'"
(error)="img.style.display='none'" class="userNameImg">
<div *ngIf="img.style.display==='none' && userData.EMP_NAME " class="userNameImg" >
{{userData.EMP_NAME.substring(0,1)}}{{ userData.EMP_NAME.trim().indexOf(' ') > 0 ?
userData.EMP_NAME.substring(userData.EMP_NAME.indexOf(' ')
+1,userData.EMP_NAME.indexOf(' ')+2) : userData.EMP_NAME.substring(1,2) }}
</div>
</div>
<div class="nameDetails" title='{{userData.EMP_NAME}}'>
<div class=" userName componantTtl truncateText" style='position: relative; vertical-align: -webkit-baseline-middle;'>
{{userData.EMP_NAME}}
</div>
<div style=" font-size: 12px; color: #666; " > {{ userData.POSITION_DESCR }} , {{ userData.LOCALITY }} </div>
</div>
<div class="countIndex">
<div class="coachingPoint"> {{ userData.COACHING_COUNT }}
</div>
<div class="index" >{{index+1}}</div>
</div>
</div>
</div>
</ng-template> ]]>
</html>
</layout>
<column_group id="1">
<columns>
<column id="1" type="number" aggFunction="SORT_BY" order="descending"><![CDATA[COACHING_COUNT]]></column>
</columns>
</column_group>
</component>
</view>
<!-- sample data
{"EMP_NAME":"SAMEER AHMED","LOCALITY":"CHENNAI","POSITION_DESCR":"ESI",
"CUST_COUNT":"0","EMP_CODE":"1002782 ","COACHING_COUNT":"0","REPORT_TO":"85348940 "} -->
</Root>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment