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.

icon.js 12KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175
  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. class Icon extends Unibase.Platform.Core.BaseComponent {
  10. jsFiles() {
  11. return [];
  12. }
  13. cssFiles() {
  14. return [];
  15. }
  16. html(id, containerid) {
  17. let title = id[0].WidgetName;
  18. let html = '<div class="card p-2 shadow-hover w-100" id="kpi_card_' + id[0].PortletWidgetId + ' kpi-card">' +
  19. '<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>' +
  20. '<div class="row">' +
  21. '<div class="col-3 py-0 d-flex justify-content-center px-0" id="div_kpi_icon_' + id[0].PortletWidgetId + '"><img class="avatar-img rounded-circle imageUpload" id="kpi_icon_2250" src="tenants/themes/compact/imgs/avatar.jpg" style="width:75px;">' +
  22. '</div>' +
  23. '<div class="col-9 pull-right">' +
  24. '<span class="font-14 font-weight-400 text-dark">' + title + '</span>' +
  25. '<span class="d-block align-items-center card-action-wrap pull-right font-11" >' +
  26. '<a href="#" class="inline-block full-screen hidden" id="kpi_FullScreen_' + id[0].PortletWidgetId + '">' +
  27. '<i class="ion ion-md-expand"></i>' +
  28. '</a>' +
  29. '</span>' +
  30. '<div>';
  31. html += '<span id="spanlnk_widget_' + id[0].PortletWidgetId + '" class="mb-10 block text-underline hidden">' +
  32. '<input type="hidden" id="hdn_widget_link_' + id[0].PortletWidgetId + '" />' +
  33. '<a href="javascript:;" id="lnk_widget_' + id[0].PortletWidgetId + '"><span id="value_widget_' + id[0].PortletWidgetId + '" class="display-5 font-weight-400 text-dark">0</span></a></span > ' +
  34. '<span id="span_widget_' + id[0].PortletWidgetId + '" class="h4 block mt-10 mb-10"><span class="display-5 font-weight-400 text-dark" id="value_widget_' + id[0].PortletWidgetId + '">8854</span></span>' +
  35. '<span id="config_widget_' + id[0].PortletWidgetId + '"></span>' +
  36. '</div></div></div></div>';
  37. return html;
  38. }
  39. load(id, containerid, callback) {
  40. let instance = this;
  41. let inputparameters = Unibase.Themes.Providers.DashboardHelper.Instance().replaceWidgetParameterValues(id[0].WidgetParameters, id[0].InstalledAppId);
  42. let fromDate = "", toDate = "";
  43. var cf_fromDate = Unibase.Platform.Membership.Infos.Identity.currentUser.fromDate;
  44. var cf_toDate = Unibase.Platform.Membership.Infos.Identity.currentUser.toDate;
  45. if (cf_fromDate != null && cf_toDate != null) {
  46. fromDate = cf_fromDate.toString();
  47. toDate = cf_toDate.toString();
  48. }
  49. else {
  50. fromDate = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocalDateformat(new Date(Unibase.Platform.Helpers.DateTimeHelper.Instance().currentDate()), "YYYY/MM/DD");
  51. toDate = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocalDateformat(new Date(Unibase.Platform.Helpers.DateTimeHelper.Instance().currentDate()), "YYYY/MM/DD");
  52. }
  53. var parameters = {
  54. WidgetId: id[0].WidgetId,
  55. PortletWidgetId: id[0].PortletWidgetId,
  56. InstalledAppId: id[0].InstalledAppId,
  57. InputParameters: inputparameters,
  58. FromDate: fromDate,
  59. ToDate: toDate
  60. };
  61. instance.loadResponseData(id[0].PortletWidgetId, containerid, parameters);
  62. }
  63. loadResponseData(portletwidgetid, detailContainer, parameters) {
  64. let instance = this;
  65. instance.inputParameters = parameters.InputParameters;
  66. Unibase.Platform.Widgets.Managers.WidgetManager.Instance().getKpiWidgetData(parameters).then(function (response) {
  67. instance.loadData(portletwidgetid, detailContainer, parameters, false, response);
  68. });
  69. }
  70. loadData(portletwidgetid, detailContainer, parameters, IsPreview, response) {
  71. detailContainer = '.' + detailContainer;
  72. var post = response.result;
  73. if (post != null) {
  74. if (post.IsMaximize == true) {
  75. $("#kpi_FullScreen_" + portletwidgetid).removeClass("hidden");
  76. }
  77. if (response.result.Icon == "" || response.result.Icon == null) {
  78. response.result.Icon = "tenants/themes/compact/imgs/avatar.jpg";
  79. }
  80. var iconhtml = '<img class ="avatar-img rounded-circle imageUpload" id="kpi_icon_' + portletwidgetid + '"src="' + response.result.Icon + '" style="width:75px;"/>';
  81. $("#div_kpi_icon_" + portletwidgetid).html(iconhtml);
  82. if (response.result.Data != null) {
  83. var data = JSON.parse(response.result.Data)[0];
  84. }
  85. var selected_values = post.Selected_Columns;
  86. if (selected_values != null) {
  87. var sp = selected_values.split(',');
  88. var column1 = sp[0];
  89. post.Data = data[column1];
  90. }
  91. var color = post.Color;
  92. var icon = post.Icon;
  93. if (color != null) {
  94. $(detailContainer).find("#kpi_card_" + portletwidgetid).addClass(color);
  95. }
  96. if (post.IsFiltarable == true) {
  97. $(detailContainer).find(".KpiFilter_" + portletwidgetid + "").removeClass('hidden');
  98. }
  99. if (post.Data == "0.000" || post.Data == "" || post.Data == null) {
  100. post.Data = "0";
  101. }
  102. if (post.LinkUrl == 'NULL' || post.LinkUrl == null) {
  103. $(detailContainer).find("#spanlnk_widget_" + portletwidgetid).remove();
  104. }
  105. else {
  106. $(detailContainer).find("#span_widget_" + portletwidgetid).remove();
  107. $(detailContainer).find("#spanlnk_widget_" + portletwidgetid).removeClass("hidden");
  108. $(detailContainer).find("#hdn_widget_link_" + portletwidgetid).val(post.LinkUrl);
  109. $(detailContainer).find("#lnk_widget_" + portletwidgetid).click(function () {
  110. if (post.Data == "0" || Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(post.Data, 2) == 0.00) {
  111. alert('No data');
  112. }
  113. else {
  114. }
  115. });
  116. }
  117. var iconhtml = "";
  118. if (icon != null && icon != "") {
  119. iconhtml = "<span class='mr-10'>" + icon + "</span>";
  120. $(detailContainer).find("#kpi_icon_" + portletwidgetid).html(iconhtml);
  121. }
  122. var l;
  123. var m;
  124. var n;
  125. if (l == true || m == true || n == true)
  126. $(detailContainer).find("#value_widget_" + portletwidgetid).text(Unibase.Core.Helpers.NumberHelper.Instance().format(post.Data, 2, ''));
  127. else
  128. $(detailContainer).find("#value_widget_" + portletwidgetid).text(Unibase.Core.Helpers.NumberHelper.Instance().format(post.Data, 2, ''));
  129. if (post.LinkReportId != 0 && post.LinkReportId != null) {
  130. }
  131. else {
  132. $(detailContainer).find("#showreport_" + portletwidgetid).addClass('hidden');
  133. }
  134. var colors = ["primary", "success", "warning", "danger", "info", "light", "secondary", "dark"];
  135. if (response.result.AppConfigurations != null) {
  136. if (response.result.AppConfigurations.length != 0) {
  137. var designhtml = "";
  138. var appconfig = response.result.AppConfigurations;
  139. for (var i = 0; i < appconfig.length; i++) {
  140. var onlickurl = "";
  141. var sname = appconfig[i].SettingName.replace(/ /g, '');
  142. designhtml += ' <span class="mr-10"><a href="javascript:;" id="widgetconfig_' + sname + '" onclick="' + onlickurl + '">' +
  143. '<button class="btn btn-sm btn-' + colors[i] + ' pull-right btn-rounded text-white">' + appconfig[i].SettingName + '</button>' +
  144. '</a> </span>';
  145. }
  146. designhtml += "</div>";
  147. $(detailContainer).find("#config_widget_" + portletwidgetid).html(designhtml);
  148. }
  149. }
  150. }
  151. $(detailContainer).siblings('.line-loader').remove();
  152. $(detailContainer).removeClass('hidden');
  153. }
  154. linkReport(widgetid, portletwidgetid, containerid) {
  155. var instance = this;
  156. Unibase.Platform.Widgets.Managers.WidgetManager.Instance().getKPIWidget(widgetid).then(function (response) {
  157. var res = response.result;
  158. if (res != null) {
  159. let containerid = "div_kpireport_" + portletwidgetid;
  160. var rv_obj = Unibase.Platform.Analytics.Components.ReportViewer.Instance();
  161. instance.navigationHelper.popup(res.LinkReportId, containerid, rv_obj, null, Unibase.Platform.Helpers.Size.Large);
  162. }
  163. });
  164. }
  165. static Instance() {
  166. if (this.instance === null || this.instance === undefined)
  167. this.instance = new Icon();
  168. return this.instance;
  169. }
  170. }
  171. KpiWidgets.Icon = Icon;
  172. })(KpiWidgets = Compact.KpiWidgets || (Compact.KpiWidgets = {}));
  173. })(Compact = Themes.Compact || (Themes.Compact = {}));
  174. })(Themes = Unibase.Themes || (Unibase.Themes = {}));
  175. })(Unibase || (Unibase = {}));