Built files from Bizgaze WebServer
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

comparision.js 12KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178
  1. var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
  2. function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
  3. return new (P || (P = Promise))(function (resolve, reject) {
  4. function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
  5. function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
  6. function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
  7. step((generator = generator.apply(thisArg, _arguments || [])).next());
  8. });
  9. };
  10. var Unibase;
  11. (function (Unibase) {
  12. let Themes;
  13. (function (Themes) {
  14. let Compact;
  15. (function (Compact) {
  16. let KpiWidgets;
  17. (function (KpiWidgets) {
  18. class Comparision extends Unibase.Platform.Core.BaseComponent {
  19. jsFiles() {
  20. return [];
  21. }
  22. cssFiles() {
  23. return [];
  24. }
  25. html(id, containerid) {
  26. let title = id[0].WidgetName;
  27. var html = '<div class="card card-sm" id="widget_kpis_Comparision kpi-card">' +
  28. '<a href="Javascript:;" class="kpi-link-report" onclick="Unibase.Themes.Compact.KpiWidgets.Comparision.Instance().linkReport(' + id[0].WidgetId + ',' + id[0].PortletWidgetId + ',' + "'" + containerid + "'" + ')";><small id="showreport_' + id[0].PortletWidgetId + '" class="font-sm-11"><span class="nav-icon-wrap"><i class="font-14 dripicons dripicons-graph-pie text-dark"></i></span></small></a>' +
  29. '<div class="card-body p-2">' +
  30. '<span class="d-block font-14 font-weight-400 text-dark mb-10" ><span id="hf_kpi_widgetName_' + id[0].PortletWidgetId + '">' + title + '</span>' +
  31. '</span>' +
  32. '<span class="d-block align-items-center card-action-wrap pull-right font-11" >' +
  33. '<a href="#" class="inline-block full-screen mr-15 hidden" id="kpi_FullScreen_' + id[0].PortletWidgetId + '">' +
  34. '<i class="ion ion-md-expand"></i>' +
  35. '</a>' +
  36. '</span>' +
  37. '<span class="d-block text-primary mb-10 pull-right font-11" id="kpi_Percentage_' + id[0].PortletWidgetId + '">0%</span></span>' +
  38. '<span id="config_widget_' + id[0].PortletWidgetId + '"></span>' +
  39. '<span class="d-block display-5 font-weight-400 text-dark" id="kpi_value_1_' + id[0].PortletWidgetId + '">0000</span>' +
  40. '<span class="text-secondary font-12 ml-1" ><span id="kpi_value_2_' + id[0].PortletWidgetId + '"></span>000000</span>' +
  41. '</div>' +
  42. '</div>';
  43. return html;
  44. }
  45. load(id, containerid, callback) {
  46. let instance = this;
  47. let inputparameters = Unibase.Themes.Providers.DashboardHelper.Instance().replaceWidgetParameterValues(id[0].WidgetParameters, id[0].InstalledAppId);
  48. let fromDate = "", toDate = "";
  49. var cf_fromDate = Unibase.Platform.Membership.Infos.Identity.currentUser.fromDate;
  50. var cf_toDate = Unibase.Platform.Membership.Infos.Identity.currentUser.toDate;
  51. if (cf_fromDate != null && cf_toDate != null) {
  52. fromDate = cf_fromDate.toString();
  53. toDate = cf_toDate.toString();
  54. }
  55. else {
  56. fromDate = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocalDateformat(new Date(Unibase.Platform.Helpers.DateTimeHelper.Instance().currentDate()), "YYYY/MM/DD");
  57. toDate = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocalDateformat(new Date(Unibase.Platform.Helpers.DateTimeHelper.Instance().currentDate()), "YYYY/MM/DD");
  58. }
  59. var parameters = {
  60. WidgetId: id[0].WidgetId,
  61. PortletWidgetId: id[0].PortletWidgetId,
  62. InstalledAppId: id[0].InstalledAppId,
  63. InputParameters: inputparameters,
  64. FromDate: fromDate,
  65. ToDate: toDate
  66. };
  67. instance.loadResponseData(id[0].PortletWidgetId, containerid, parameters);
  68. }
  69. loadResponseData(portletwidgetid, detailContainer, parameters) {
  70. let instance = this;
  71. instance.inputParameters = parameters.InputParameters;
  72. Unibase.Platform.Widgets.Managers.WidgetManager.Instance().getKpiWidgetData(parameters).then(function (response) {
  73. instance.loadData(portletwidgetid, detailContainer, parameters, false, response);
  74. });
  75. }
  76. loadData(portletwidgetid, detailContainer, parameters, IsPreview, response) {
  77. detailContainer = '.' + detailContainer;
  78. var post = response.result;
  79. if (post != null) {
  80. if (post.IsMaximize == true) {
  81. $("#kpi_FullScreen_" + portletwidgetid).removeClass("hidden");
  82. }
  83. if (response != null) {
  84. var data = JSON.parse(post.Data)[0];
  85. var selected_values = post.Selected_Columns;
  86. var sp = selected_values.split(',');
  87. var column1 = sp[0];
  88. var column2 = sp[1];
  89. var column3 = sp[2];
  90. var Value_1 = data[column1];
  91. var Value_2 = data[column2];
  92. var Value_3 = data[column3];
  93. if (data == null || data == "" || data == undefined) {
  94. Value_1 = 0;
  95. Value_2 = 0;
  96. }
  97. if (Value_2 != 0)
  98. var difference = Value_2 - Value_1;
  99. if (Value_3 == null || Value_3 == undefined) {
  100. var kpi_percentage = Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(((Value_2 - Value_1) / Value_2) * 100, 2);
  101. if (difference > 0) {
  102. $(detailContainer).find("#kpi_Percentage_" + portletwidgetid).addClass('text-success');
  103. kpi_percentage = '+' + kpi_percentage;
  104. }
  105. else if (difference < 0) {
  106. $(detailContainer).find("#kpi_Percentage_" + portletwidgetid).addClass('text-danger');
  107. kpi_percentage = '-' + kpi_percentage;
  108. }
  109. else {
  110. $(detailContainer).find("#kpi_Percentage_" + portletwidgetid).removeClass('d-block');
  111. $(detailContainer).find("#kpi_Percentage_" + portletwidgetid).addClass('hidden');
  112. }
  113. }
  114. else {
  115. var kpi_percentage = Value_3;
  116. if (Value_3 > 0) {
  117. $(detailContainer).find("#kpi_Percentage_" + portletwidgetid).addClass('text-success');
  118. kpi_percentage = '+' + kpi_percentage;
  119. }
  120. else if (Value_3 < 0) {
  121. $(detailContainer).find("#kpi_Percentage_" + portletwidgetid).addClass('text-danger');
  122. kpi_percentage = '-' + kpi_percentage;
  123. }
  124. else {
  125. $(detailContainer).find("#kpi_Percentage_" + portletwidgetid).removeClass('d-block');
  126. $(detailContainer).find("#kpi_Percentage_" + portletwidgetid).addClass('hidden');
  127. }
  128. }
  129. $(detailContainer).find("#kpi_value_1_" + portletwidgetid).text(Value_1);
  130. $(detailContainer).find("#kpi_value_2_" + portletwidgetid).text(Value_2);
  131. $(detailContainer).find("#kpi_Percentage_" + portletwidgetid).text(kpi_percentage + '% ');
  132. var colors = ["primary", "success", "warning", "danger", "info", "light", "secondary", "dark"];
  133. if (response.result.AppConfigurations.length != 0) {
  134. var designhtml = "";
  135. var appconfig = response.result.AppConfigurations;
  136. for (var i = 0; i < appconfig.length; i++) {
  137. var onlickurl = "";
  138. var sname = appconfig[i].SettingName.replace(/ /g, '');
  139. designhtml += ' <span class="mr-10"><a href="javascript:;" id="widgetconfig_' + sname + '" onclick="' + onlickurl + '">' +
  140. '<button class="btn btn-sm btn-' + colors[i] + ' pull-right btn-rounded text-white">' + appconfig[i].SettingName + '</button>' +
  141. '</a> </span>';
  142. }
  143. designhtml += "</div>";
  144. $(detailContainer).find("#config_widget_" + portletwidgetid).html(designhtml);
  145. }
  146. if (post.LinkReportId != 0 && post.LinkReportId != null) {
  147. }
  148. else {
  149. $(detailContainer).find("#showreport_" + portletwidgetid).addClass('hidden');
  150. }
  151. }
  152. }
  153. $(detailContainer).siblings('.line-loader').remove();
  154. $(detailContainer).removeClass('hidden');
  155. }
  156. linkReport(widgetid, portletwidgetid, containerid) {
  157. return __awaiter(this, void 0, void 0, function* () {
  158. var instance = this;
  159. yield Unibase.Platform.Widgets.Managers.WidgetManager.Instance().getKPIWidget(widgetid).then(function (response) {
  160. var res = response.result;
  161. if (res != null) {
  162. let containerid = "div_kpireport_" + portletwidgetid;
  163. instance.navigationHelper.popup(res.LinkReportId, containerid, Unibase.Platform.Analytics.Components.ReportViewer.Instance(), null, Unibase.Platform.Helpers.Size.ExtraLarge);
  164. }
  165. });
  166. });
  167. }
  168. static Instance() {
  169. if (this.instance === null || this.instance === undefined)
  170. this.instance = new Comparision();
  171. return this.instance;
  172. }
  173. }
  174. KpiWidgets.Comparision = Comparision;
  175. })(KpiWidgets = Compact.KpiWidgets || (Compact.KpiWidgets = {}));
  176. })(Compact = Themes.Compact || (Themes.Compact = {}));
  177. })(Themes = Unibase.Themes || (Unibase.Themes = {}));
  178. })(Unibase || (Unibase = {}));