Built files from Bizgaze WebServer
Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

kpimanager.js 18KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248
  1. var Unibase;
  2. (function (Unibase) {
  3. let Themes;
  4. (function (Themes) {
  5. let Compact;
  6. (function (Compact) {
  7. let KpiWidgets;
  8. (function (KpiWidgets) {
  9. let Manager;
  10. (function (Manager) {
  11. class KpiManager extends Unibase.Platform.Core.BaseComponent {
  12. _load(id, containerid, callback, params) {
  13. let instance = this;
  14. let dynamicFilters;
  15. if (params) {
  16. dynamicFilters = params;
  17. }
  18. let inputparameters = Unibase.Themes.Providers.DashboardHelper.Instance().replaceWidgetParameterValues(id[0].WidgetParameters, id[0].InstalledAppId);
  19. let fromDate = "", toDate = "";
  20. var cf_fromDate = Unibase.Platform.Membership.Infos.Identity.currentUser.fromDate;
  21. var cf_toDate = Unibase.Platform.Membership.Infos.Identity.currentUser.toDate;
  22. if (cf_fromDate != null && cf_toDate != null) {
  23. fromDate = cf_fromDate.toString();
  24. toDate = cf_toDate.toString();
  25. }
  26. else {
  27. fromDate = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocalDateformat(new Date(Unibase.Platform.Helpers.DateTimeHelper.Instance().currentDate()), "YYYY/MM/DD");
  28. toDate = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocalDateformat(new Date(Unibase.Platform.Helpers.DateTimeHelper.Instance().currentDate()), "YYYY/MM/DD");
  29. }
  30. var parameters = {
  31. WidgetId: id[0].WidgetId,
  32. PortletWidgetId: id[0].PortletWidgetId,
  33. InstalledAppId: id[0].InstalledAppId,
  34. InputParameters: inputparameters,
  35. DynamicFilters: dynamicFilters,
  36. FromDate: fromDate,
  37. ToDate: toDate
  38. };
  39. instance.loadResponseData(id[0].PortletWidgetId, containerid, parameters);
  40. }
  41. loadResponseData(portletwidgetid, detailContainer, parameters, _portletwidgetid) {
  42. let instance = this;
  43. instance.inputParameters = parameters.InputParameters;
  44. Unibase.Platform.Widgets.Managers.WidgetManager.Instance().getKpiWidgetData(parameters).then(function (response) {
  45. if (_portletwidgetid == undefined) {
  46. Unibase.Platform.Widgets.Managers.WidgetManager.Instance().getPortletWidget(portletwidgetid).then(function (portletresponse) {
  47. instance.loadData(portletwidgetid, detailContainer, parameters, false, response, portletresponse);
  48. });
  49. }
  50. else {
  51. if (_portletwidgetid != 0) {
  52. Unibase.Platform.Widgets.Managers.WidgetManager.Instance().getPortletWidget(_portletwidgetid).then(function (portletresponse) {
  53. instance.loadData(portletwidgetid, detailContainer, parameters, false, response, portletresponse);
  54. });
  55. }
  56. else {
  57. instance.loadData(portletwidgetid, detailContainer, parameters, false, response);
  58. }
  59. }
  60. });
  61. }
  62. loadData(portletwidgetid, Container, parameters, IsPreview, response, portletresponse) {
  63. let instance = this, result, selected_values, split_columns = [];
  64. let KpiContainer = '.' + Container;
  65. let post = response.result, value = [];
  66. let cssproperty;
  67. var viewerComponent = eval(response.result.Js);
  68. let dataType = [], isRoundOff = [], labelsArray = [];
  69. labelsArray = response.result.Selected_Columns_Labels.split(',');
  70. if (portletresponse != undefined) {
  71. if (portletresponse.result.PortletWidgetCss != null && portletresponse.result.PortletWidgetCss != '') {
  72. response.result.CssProperty = portletresponse.result.PortletWidgetCss;
  73. cssproperty = JSON.parse(portletresponse.result.PortletWidgetCss);
  74. response.result.KpiHeight = portletresponse.result.PortletWidgetHeight;
  75. }
  76. else {
  77. response.result.CssProperty = response.result.CssProperty;
  78. cssproperty = JSON.parse(response.result.CssProperty);
  79. response.result.KpiHeight = response.result.KpiHeight;
  80. }
  81. }
  82. else {
  83. response.result.CssProperty = response.result.CssProperty;
  84. cssproperty = JSON.parse(response.result.CssProperty);
  85. response.result.KpiHeight = response.result.KpiHeight;
  86. }
  87. viewerComponent._styling(portletwidgetid, KpiContainer, response);
  88. if (post != null) {
  89. result = JSON.parse(response.result.Data);
  90. selected_values = post.Selected_Columns;
  91. if (selected_values != null) {
  92. split_columns = selected_values.split(',');
  93. for (let i = 0; i < split_columns.length; i++) {
  94. if (split_columns[i] != null && split_columns[i] != undefined && split_columns[i] != '' && split_columns[i] != "Select Column") {
  95. let column = split_columns[i];
  96. if (result.length != 0) {
  97. value.push(result[0][column]);
  98. }
  99. else {
  100. value.push(0);
  101. }
  102. }
  103. }
  104. }
  105. let kpihidden;
  106. if (cssproperty[0].KPI_ValueHidden != '' && cssproperty[0].KPI_ValueHidden != null) {
  107. kpihidden = cssproperty[0].KPI_ValueHidden.split(',');
  108. for (let i = 0; i < kpihidden.length; i++) {
  109. if (kpihidden[i] == 'true' && kpihidden[i] != '' && kpihidden[i] != null && kpihidden[i].length != 0) {
  110. $('.kpivalue_' + (i + 1) + '_' + portletwidgetid).attr('data-hidden-check', 'true').addClass('align-items-end').find('div').last().remove();
  111. if (i + 1 == 3) {
  112. $('.card-body-kpi-CBBC-' + portletwidgetid).removeAttr("style").addClass("h-100");
  113. }
  114. if (i + 1 == 2) {
  115. $('.card-body-kpi-TVBBC-' + portletwidgetid).removeAttr("style").addClass("h-100");
  116. }
  117. }
  118. }
  119. }
  120. let kpisettingJSON;
  121. if (response.result.KpiSetting != undefined)
  122. kpisettingJSON = JSON.parse(response.result.KpiSetting);
  123. dataType = kpisettingJSON[0].DataType.split(',');
  124. isRoundOff = kpisettingJSON[0].IsRoundOff.split(',');
  125. let _value, stringBind = [];
  126. for (let b = 0; b < value.length; b++) {
  127. let e = b + 1;
  128. _value = value[b];
  129. if (dataType[b] != '' && dataType[b] != null && dataType[b] != undefined) {
  130. if (dataType[b] == 'int') {
  131. _value = Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(value[b], 0);
  132. }
  133. if (dataType[b] == 'float') {
  134. _value = Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(value[b], 2);
  135. }
  136. if (dataType[b] == 'char' || dataType[b] == 'varchar') {
  137. _value = value[b];
  138. }
  139. if (dataType[b] == 'INR') {
  140. _value = Unibase.Core.Helpers.NumberHelper.Instance().format(value[b], 2, '') + '<span class="pl-2 font-weight-400" style="font-size:20px">INR</span>';
  141. }
  142. if (dataType[b] == 'percent') {
  143. _value = Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(value[b], 0) + '<span>%</span>';
  144. $(KpiContainer).find('.kpivalue_' + portletwidgetid + '[role="progressbar"][data-valueBind="Value-' + e + '"]').css("width", Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(value[b], 0) + '%').html('');
  145. }
  146. }
  147. if (isRoundOff[b] != '' && isRoundOff[b] != null && isRoundOff[b] != undefined && isRoundOff[b] == 'true') {
  148. _value = Unibase.Core.Helpers.NumberHelper.Instance().format(value[b], 2, '');
  149. }
  150. $(KpiContainer).find('[data-valueBind="Value-' + e + '"]').html(_value).attr('title', _value).addClass('text-truncate');
  151. $(KpiContainer).find('[data-valueLabelBind="Value-' + e + '"]').text(labelsArray[b]);
  152. $(KpiContainer).find('.kpivalue_' + portletwidgetid + '[role="progressbar"][data-valueBind="Value-' + e + '"]').html('');
  153. }
  154. if (post.LinkReportId != 0 && post.LinkReportId != null) {
  155. if (cssproperty[0].KPI_LinkReportLabelName != undefined && cssproperty[0].KPI_LinkReportLabelName != null && cssproperty[0].KPI_LinkReportLabelName != '') {
  156. $(KpiContainer).find('.LinkReport_' + portletwidgetid + '').html('<span class="btn btn-xs btn-outline-primary rounded-4">' + cssproperty[0].KPI_LinkReportLabelName + '</span>');
  157. }
  158. }
  159. else {
  160. $(KpiContainer).find('[data-LinkReport="LinkReport"]').addClass('hidden');
  161. }
  162. if (response.result.AppConfigurations != null && response.result.AppConfigurations != '[]' && response.result.AppConfigurations != '' && response.result.AppConfigurations != undefined) {
  163. instance.appConfiguration(portletwidgetid, KpiContainer, response);
  164. }
  165. $(KpiContainer).ready(function () {
  166. eval(response.result.StaticJsPath.replace(/`/g, ''));
  167. });
  168. $(KpiContainer).siblings('.line-loader').remove();
  169. $(KpiContainer).removeClass('hidden');
  170. }
  171. }
  172. linkReport(widgetid, portletwidgetid, containerid) {
  173. var instance = this;
  174. Unibase.Platform.Widgets.Managers.WidgetManager.Instance().getKPIWidget(widgetid).then(function (response) {
  175. var res = response.result;
  176. if (res != null) {
  177. let containerid = "div_kpireport_" + portletwidgetid;
  178. var rv_obj = Unibase.Platform.Analytics.Components.ReportViewer.Instance();
  179. Unibase.Platform.Helpers.NavigationHelper.Instance().popup(res.LinkReportId, containerid, rv_obj, null, Unibase.Platform.Helpers.Size.ExtraLarge);
  180. }
  181. });
  182. }
  183. appConfiguration(portletwidgetid, containerid, response) {
  184. let instance = this;
  185. if (response.result.AppConfigurations.length != 0) {
  186. var designhtml = "";
  187. var colors = ["primary", "success", "warning", "danger", "info", "light", "secondary", "dark"];
  188. var appconfig = response.result.AppConfigurations;
  189. for (var i = 0; i < appconfig.length; i++) {
  190. var onlickurl = "";
  191. var sname = appconfig[i].SettingName.replace(/ /g, '');
  192. onlickurl = instance.loadAppconfigurations(appconfig[i], response.result.Data, portletwidgetid);
  193. designhtml += ' <span class="mr-10"><a href="javascript:;" id="widgetconfig_' + sname + '" onclick="' + onlickurl + '">' +
  194. '<button class="btn btn-sm btn-' + colors[i] + ' pull-right text-white">' + appconfig[i].SettingName + '</button>' +
  195. '</a> </span>';
  196. }
  197. designhtml += "</div>";
  198. $(containerid).find("#config_widget_" + portletwidgetid).html(designhtml);
  199. }
  200. }
  201. loadAppconfigurations(config, data, portletwidgetid) {
  202. var instance = this;
  203. let settingurltype = config.SettingUrlType;
  204. var appconfigurationid = config.AppConfigurationId;
  205. var settingUrl = config.SettingUrl;
  206. var jsfunction = config.JsFunction;
  207. var formid = config.FormId;
  208. let editformid;
  209. var formpkname = config.FormPrimaryColumn;
  210. if (data.length <= 0) {
  211. editformid = 0;
  212. }
  213. else {
  214. editformid = 0;
  215. }
  216. var onclick = "";
  217. if (settingurltype == 2) {
  218. onclick = "this.fileCacheHelper.loadJsFile('" + config.SettingUrl + "', function () {var html = Unibase.Apps.Components.Stages.Instance().init();NavigationHelper.Instance().loadPopupHtml(html, Helpers.Size.DockLeft, function(containerid) {" + config.JsFunction + " ;});});";
  219. }
  220. else if (settingurltype == 1) {
  221. onclick = 'Unibase.Platform.Helpers.NavigationHelper.Instance().loadForm(' + formid + ', ' + editformid + ',' + appconfigurationid + ',' + portletwidgetid + ' )';
  222. }
  223. else if (settingurltype == 3) {
  224. let variablename = "Widget_" + config.SettingUrl.split(",")[0].split(".")[0].trim();
  225. let methodname = config.SettingUrl.split(",")[1];
  226. var onclickurl = "Unibase.Platform.Helpers.FileCacheHelper.Instance().loadJsFile('Widgets/" + config.SettingUrl.split(",")[0] + "', function () { " + variablename + "." + methodname + " });";
  227. onclick = onclickurl;
  228. }
  229. else if (settingurltype == 10) {
  230. onclick = "Unibase.Themes.Compact.Components.Nav.Instance().loadDashboard(" + config.LinkDashboardId + ",'Overview')";
  231. }
  232. else if (settingurltype == 11) {
  233. onclick = "Unibase.Themes.Compact.Components.Nav.Instance().loadDashboardsInDashboard(" + config.LinkDashboardGroupId + ",0,true)";
  234. }
  235. return onclick;
  236. }
  237. static Instance() {
  238. if (this._instance === undefined)
  239. this._instance = new KpiManager();
  240. return this._instance;
  241. }
  242. }
  243. Manager.KpiManager = KpiManager;
  244. })(Manager = KpiWidgets.Manager || (KpiWidgets.Manager = {}));
  245. })(KpiWidgets = Compact.KpiWidgets || (Compact.KpiWidgets = {}));
  246. })(Compact = Themes.Compact || (Themes.Compact = {}));
  247. })(Themes = Unibase.Themes || (Unibase.Themes = {}));
  248. })(Unibase || (Unibase = {}));