Built files from Bizgaze WebServer
Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

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