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.

templateviewer.js 98KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217
  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 Platform;
  13. (function (Platform) {
  14. let Analytics;
  15. (function (Analytics) {
  16. let Viewers;
  17. (function (Viewers) {
  18. class TemplateViewer extends Platform.Core.BaseComponent {
  19. constructor() {
  20. super();
  21. this.TemplatePageSize = 20;
  22. this.MoreBtnViewerId = 0;
  23. this.SubTemplatesPage = [];
  24. this._lists_default_index = 0;
  25. this.last_page = 1;
  26. this.pivotChildRecords = [];
  27. this.widgetHeightPx = Unibase.Themes.Compact.Components.Index.Instance().widgetHeightPx;
  28. this.widgetHeightNum = Unibase.Themes.Compact.Components.Index.Instance().widgetHeightNum;
  29. this.reportManager = Analytics.Managers.ReportManager.Instance();
  30. this.viewerManager = Analytics.Managers.ViewerManager.Instance();
  31. this._reportViewer = Analytics.Components.ReportViewer.Instance();
  32. this._reportBuilder = Analytics.Reports.ReportBuilder.Instance();
  33. this.TemplateViewerId = 0;
  34. this.MainTemplateReportId = 0;
  35. this.MainTemplateViewerId = 0;
  36. this.Filter = [];
  37. this.ReportId = 0;
  38. this.ListSearchTerm = "";
  39. }
  40. loadView(reportresponse, reportid, viewerid, page, pageSize, containerid, viewerSettings, callback, reportwidgetdata) {
  41. var instance = this;
  42. let portletWidgetId = 0;
  43. if (containerid.indexOf("div_portletwidget") > -1) {
  44. portletWidgetId = Number(containerid.split("_")[2]);
  45. if (containerid.indexOf("viewall") == -1)
  46. instance._reportViewer.IsPortletWidget = true;
  47. }
  48. else {
  49. $(`#${containerid} .report-search`).addClass("d-sm-flex");
  50. $(`#${containerid} .search_icon`).removeClass("hidden");
  51. }
  52. if (containerid.indexOf("div_dashboardportletwidget") > -1) {
  53. portletWidgetId = Number(containerid.split("_")[2]);
  54. }
  55. this.viewerManager.getTemplateView(viewerid).then(function (templateresponse) {
  56. if (templateresponse.status == Unibase.Data.Status.Error) {
  57. return MessageHelper.Instance().showError(templateresponse.message, 'div_ErrorMessage', containerid);
  58. }
  59. if (templateresponse.result.PageSize != 0) {
  60. instance.TemplatePageSize = templateresponse.result.PageSize;
  61. }
  62. let rv = Unibase.Platform.Analytics.Components.ReportViewer.Instance();
  63. let rv_instance = rv.getReportViewerInstance(containerid);
  64. if (rv_instance && !rv_instance.isShowAll) {
  65. rv_instance.PageSize = templateresponse.result.PageSize || 20;
  66. }
  67. instance.loadTemplateReport(templateresponse, reportresponse, reportid, containerid, page, reportwidgetdata, portletWidgetId, viewerid);
  68. Unibase.Platform.Helpers.NavigationHelper.Instance().hideLoading();
  69. });
  70. }
  71. loadpivotdata(ev, reportid, templateviewerid, parentid, childid, inputparams) {
  72. var instance = this;
  73. if ($(".parentPlusIcon_" + parentid + "_" + childid).hasClass("fa-minus")) {
  74. $(".parentUl_" + parentid + "_" + childid).remove();
  75. $(".parentPlusIcon_" + parentid + "_" + childid).removeClass("fa-minus");
  76. $(".parentPlusIcon_" + parentid + "_" + childid).addClass("fa-plus");
  77. return false;
  78. }
  79. var fromDate = "";
  80. var toDate = "";
  81. var cf_fromDate = Unibase.Platform.Helpers.NavigationHelper.commonFilter_FromDate;
  82. var cf_toDate = Unibase.Platform.Helpers.NavigationHelper.commonFilter_ToDate;
  83. if (cf_fromDate != null && cf_toDate != null) {
  84. fromDate = cf_fromDate.toString();
  85. toDate = cf_toDate.toString();
  86. }
  87. else {
  88. fromDate = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocalDateformat(new Date(Unibase.Platform.Helpers.DateTimeHelper.Instance().currentDate()), "YYYY/MM/DD");
  89. toDate = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocalDateformat(new Date(Unibase.Platform.Helpers.DateTimeHelper.Instance().currentDate()), "YYYY/MM/DD");
  90. }
  91. var postdata = {
  92. ReportId: reportid,
  93. page: 1,
  94. pageSize: 0,
  95. IsPivot: true,
  96. FromDate: fromDate,
  97. ToDate: toDate,
  98. PivotId: Number(childid),
  99. IsJson: true,
  100. InputParameters: inputparams
  101. };
  102. $.when(instance.reportManager.getReportViewerData(postdata)).done(function (response1) {
  103. instance.viewerManager.getTemplateView(templateviewerid).then(function (templateresponse) {
  104. var temptext = templateresponse.result.TemplateText;
  105. temptext = HtmlHelper.getHelper().decode(templateresponse.result.TemplateText);
  106. let res = JSON.parse(response1.result);
  107. var data = JSON.parse(res.Data);
  108. $(".parentUl_" + parentid + "_" + childid).remove();
  109. $(".parentPlusIcon_" + parentid + "_" + childid).addClass("fa-minus");
  110. $(".parentPlusIcon_" + parentid + "_" + childid).removeClass("fa-plus");
  111. var html = "";
  112. var templateScript = Handlebars.compile(temptext);
  113. for (let j = 0; j < data.length; j++) {
  114. data[j]["pivot_reportid"] = reportid;
  115. data[j]["pivot_viewerid"] = templateviewerid;
  116. var templatescript = templateScript(data[j]);
  117. if (data[j].haschild == true) {
  118. templatescript = templatescript.replace("parentPlusIcon_" + data[j]["parentid"] + "_" + data[j]["childid"] + " d-none", "parentPlusIcon_" + data[j]["parentid"] + "_" + data[j]["childid"] + "");
  119. }
  120. html += templatescript;
  121. }
  122. let ultag = '<ul class="report-parent-ul parentUl_' + parentid + '_' + childid + ' pl-30">' + html + '</ul>';
  123. $("#list-group-item-" + childid).append(ultag);
  124. $(document).ready(function () {
  125. eval(templateresponse.result.Js);
  126. });
  127. });
  128. });
  129. }
  130. loadpivotdataprofitandloss(ev, reportid, templateviewerid, parentid, childid, inputparams) {
  131. var instance = this;
  132. if ($(".parentPlusIcon_" + parentid + "_" + childid).hasClass("fa-minus")) {
  133. $(".parentUl_" + parentid + "_" + childid).remove();
  134. $(".childUl_" + childid).remove();
  135. $(".parentPlusIcon_" + parentid + "_" + childid).removeClass("fa-minus");
  136. $(".parentPlusIcon_" + parentid + "_" + childid).addClass("fa-plus");
  137. return false;
  138. }
  139. var fromDate = "";
  140. var toDate = "";
  141. var cf_fromDate = Unibase.Platform.Helpers.NavigationHelper.commonFilter_FromDate;
  142. var cf_toDate = Unibase.Platform.Helpers.NavigationHelper.commonFilter_ToDate;
  143. if (cf_fromDate != null && cf_toDate != null) {
  144. fromDate = cf_fromDate.toString();
  145. toDate = cf_toDate.toString();
  146. }
  147. else {
  148. fromDate = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocalDateformat(new Date(Unibase.Platform.Helpers.DateTimeHelper.Instance().currentDate()), "YYYY/MM/DD");
  149. toDate = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocalDateformat(new Date(Unibase.Platform.Helpers.DateTimeHelper.Instance().currentDate()), "YYYY/MM/DD");
  150. }
  151. var postdata = {
  152. ReportId: reportid,
  153. page: 1,
  154. pageSize: 0,
  155. IsPivot: true,
  156. FromDate: fromDate,
  157. ToDate: toDate,
  158. PivotId: Number(childid),
  159. IsJson: true,
  160. InputParameters: inputparams
  161. };
  162. $.when(instance.reportManager.getReportViewerData(postdata)).done(function (response1) {
  163. instance.viewerManager.getTemplateView(templateviewerid).then(function (templateresponse) {
  164. var temptext = templateresponse.result.TemplateText;
  165. temptext = HtmlHelper.getHelper().decode(templateresponse.result.TemplateText);
  166. let temptext_dummy = temptext.slice(0, 26) + 'child_tr parentUl_' + parentid + '_' + childid + ' childUl_' + parentid + temptext.slice(26);
  167. let res = JSON.parse(response1.result);
  168. var data = JSON.parse(res.Data);
  169. $(".parentUl_" + parentid + "_" + childid).remove();
  170. $(".parentPlusIcon_" + parentid + "_" + childid).addClass("fa-minus");
  171. $(".parentPlusIcon_" + parentid + "_" + childid).removeClass("fa-plus");
  172. var html = "";
  173. var templateScript = Handlebars.compile(temptext_dummy);
  174. for (let j = 0; j < data.length; j++) {
  175. data[j]["pivot_reportid"] = reportid;
  176. data[j]["pivot_viewerid"] = templateviewerid;
  177. var templatescript = templateScript(data[j]);
  178. if (data[j].haschild == true) {
  179. templatescript = templatescript.replace("parentPlusIcon_" + data[j]["parentid"] + "_" + data[j]["childid"] + " d-none", "parentPlusIcon_" + data[j]["parentid"] + "_" + data[j]["childid"] + "");
  180. }
  181. html += templatescript;
  182. }
  183. $("#list-group-items-" + childid).after(html);
  184. if (parentid != 0) {
  185. $(".childUl_" + parentid).find('.pl-4').addClass('pl-85');
  186. }
  187. eval(templateresponse.result.Js);
  188. });
  189. });
  190. }
  191. loadpivotdata_old(ev, reportid, templateviewerid, inputparams) {
  192. var currentid = Number($(ev.closest("ul")).find("#hf_list_Id").val());
  193. let marginnumber = 0;
  194. if ($(".child-" + currentid + "").length > 0) {
  195. $(".child-" + currentid + "").parents(".ul_div_parent_sub").remove();
  196. $(".child-" + currentid + "").remove();
  197. $(ev).removeClass("fa fa-minus");
  198. $(ev).addClass("fa fa-plus");
  199. return false;
  200. }
  201. if ($(ev.closest("ul")).attr("class").split(' ')[$(ev.closest("ul")).attr("class").split(' ').length - 1].includes('ml') == true) {
  202. marginnumber = Number(($(ev.closest("ul")).attr("class").split(' ')[$(ev.closest("ul")).attr("class").split(' ').length - 1]).split("-")[1]);
  203. }
  204. var instance = this;
  205. var fromDate = "";
  206. var toDate = "";
  207. var cf_fromDate = Unibase.Platform.Helpers.NavigationHelper.commonFilter_FromDate;
  208. var cf_toDate = Unibase.Platform.Helpers.NavigationHelper.commonFilter_ToDate;
  209. if (cf_fromDate != null && cf_toDate != null) {
  210. fromDate = cf_fromDate.toString();
  211. toDate = cf_toDate.toString();
  212. }
  213. else {
  214. fromDate = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocalDateformat(new Date(Unibase.Platform.Helpers.DateTimeHelper.Instance().currentDate()), "YYYY/MM/DD");
  215. toDate = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocalDateformat(new Date(Unibase.Platform.Helpers.DateTimeHelper.Instance().currentDate()), "YYYY/MM/DD");
  216. }
  217. var postdata = {
  218. ReportId: reportid,
  219. page: 1,
  220. pageSize: 15,
  221. IsPivot: true,
  222. FromDate: fromDate,
  223. ToDate: toDate,
  224. PivotId: Number(currentid),
  225. IsJson: true,
  226. InputParameters: inputparams,
  227. DisplayModeTypeId: instance._reportViewer.getDisplayModeTypeId(),
  228. };
  229. $.when(instance.reportManager.getReportViewerData(postdata)).done(function (response1) {
  230. instance.viewerManager.getTemplateView(templateviewerid).then(function (templateresponse) {
  231. var temptext = templateresponse.result.TemplateText;
  232. temptext = HtmlHelper.getHelper().decode(templateresponse.result.TemplateText);
  233. temptext = $($(temptext).addClass("ml-" + (marginnumber + 20) + "")).prop('outerHTML');
  234. temptext = $($(temptext).addClass("child-" + Number(currentid) + "")).prop('outerHTML');
  235. let res = JSON.parse(response1.result);
  236. var data = JSON.parse(res.Data);
  237. var html = "";
  238. var templateScript = Handlebars.compile(temptext);
  239. for (let j = 0; j < data.length; j++) {
  240. data[j]["pivot__reportid"] = reportid;
  241. data[j]["pivot__viewerid"] = templateviewerid;
  242. var templatescript = templateScript(data[j]);
  243. if (data[j].haschild == true) {
  244. data[j]["primarypivotid"] = 0;
  245. templatescript = templatescript.replace("Pivot_Template hidden", "Pivot_Template");
  246. }
  247. html += templatescript;
  248. }
  249. $(ev).removeClass("fa fa-plus");
  250. $(ev).addClass("fa fa-minus");
  251. $(ev.closest("ul")).after(html);
  252. });
  253. });
  254. }
  255. loadTemplateReport(templateresponse, reportresponse, id, containerid, page, reportwidgetdata, portletwidgetid, viewerid) {
  256. var instance = this;
  257. let rv_instance;
  258. if (Unibase.Platform.Helpers.NavigationHelper.reportViewerInstance.length > 0) {
  259. let reportviewerInstance = Unibase.Platform.Helpers.NavigationHelper.reportViewerInstance.find(x => x.childcontainerid == containerid);
  260. if (reportviewerInstance != undefined)
  261. rv_instance = reportviewerInstance.instance;
  262. else
  263. rv_instance = instance;
  264. }
  265. else {
  266. rv_instance = instance;
  267. }
  268. if (reportresponse.result.ReportJsonData != null) {
  269. let IsPivotRow = reportresponse.result.ReportInfo.ReportColumns.filter(function (o) { return o.IsPivotRow === true; });
  270. let reportresp = reportresponse.result.ReportJsonData.Result;
  271. instance._reportViewer.PortletWidgetId = portletwidgetid;
  272. const isReportPopup = instance.navigationHelper.isReportPopup(containerid);
  273. if (page == instance._reportViewer.Page && instance.MoreBtnViewerId == 0) {
  274. instance.MainTemplateReportId = id;
  275. var IsAdmin = Unibase.Platform.Membership.Infos.Identity.getCurrentUser().isAdmin;
  276. if (IsAdmin) {
  277. $("#Table_View_" + containerid).removeClass("hidden");
  278. }
  279. let mx_20, scrollBarClass = '', simpleBarDataAttr = '', templatePb = 'pb-15';
  280. if (Unibase.Themes.Providers.DetailHelper.installedAppId == 0 || isReportPopup) {
  281. mx_20 = '';
  282. if (reportresp.Data != '') {
  283. scrollBarClass = 'simple-scroll-bar';
  284. simpleBarDataAttr = 'data-simplebar';
  285. }
  286. else {
  287. scrollBarClass = 'biz-custom-scrollbar';
  288. }
  289. if ((containerid.includes('div_dashboardportletwidget') || containerid.includes('div_portletwidget')) && !isReportPopup) {
  290. templatePb = '';
  291. }
  292. }
  293. else {
  294. mx_20 = 'mx-3 mb-1';
  295. scrollBarClass = 'biz-custom-scrollbar';
  296. simpleBarDataAttr = '';
  297. templatePb = '';
  298. }
  299. const isCountVisible = instance._reportViewer.tabMode && (!portletwidgetid || isReportPopup);
  300. if (templateresponse && templateresponse.result && templateresponse.result.TemplateViewId)
  301. instance.TemplateViewerId = templateresponse.result.TemplateViewId;
  302. $(`#Viewer_${containerid}`).html(`<input type="hidden" id="hfTemplateViewerId" value="${instance.TemplateViewerId}" /><div class="card-header Templateheader hidden" id="templateViewerHeader_${containerid}"></div><div id="div_errors_reportviewer_${containerid}" class="clear viewer-error-message"></div><div ${simpleBarDataAttr} class="bg-white-s bg-white-removed ${scrollBarClass} templateviewer-body ${templatePb}" id="templateViewerBody_${containerid}"><ul class="list-group layout_list_container font-14 ${mx_20}" id="layout_list_container_${containerid}" ></ul><div class="text-center text-white bg-white-removed templatebody-div report-viewer-footer ${isCountVisible ? 'footer-count-wrap' : ''}" id="templateBodyFooter_${containerid}">
  303. <div class="btn-group btn-group-sm btn-list-load-more more-btn-group" id="btn-list-load-more_${containerid}">
  304. <a class="btn btn-outline-primary load-more-list-btn rounded-left" id="loadMoreListBtn_${containerid}">More</a>
  305. <button type="button" class="btn btn-primary dropdown-toggle dropdown-toggle-split rounded-right px-10" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><span class="sr-only">Toggle Dropdown</span></button>
  306. <div class="dropdown-menu p-1" id="moreBtnDpMenu_${containerid}">
  307. <a class="dropdown-item d-flex align-items-center c-gap-5 showall-link" href="javascript:;" id="showAllLink_${containerid}" onclick="Unibase.Platform.Analytics.Components.ReportViewer.Instance().showAllData(${rv_instance.ReportId}, ${rv_instance.InstalledAppId},'${containerid}');">Next <span class="showall-count" id="showAllCount_${containerid}">500</span><input class="showall-input w-100 ml-1 hidden" id="showAllInput_${containerid}" pattern="[0-9]+"></a>
  308. </div>
  309. </div>
  310. <div class="text-center w-100 m-0 NoMore-Records p-2 text-secondary d-none" style="border-top:dashed 1px #E6E9EB;">No More Records</div>
  311. <div class="reportCountWrap_${containerid} text-right report-count-wrap ${!isCountVisible ? 'd-none' : ''}"><span class="biz-highlight-bg-color" id="visibleReportCountWrap_${containerid}"><span id="visibleReportCount_${containerid}">0</span> of </span><a href="javascript:;" class="rpt-Count${containerid} biz-highlight-bg-color text-underline" onclick="Unibase.Platform.Analytics.Components.ReportViewer.Instance().getCount(${rv_instance.ReportId}, ${rv_instance.InstalledAppId},'${containerid}');">Get count</a><span class="biz-highlight-bg-color hidden" id="Viewer_pagintion${containerid}">0 of 0</span>
  312. </div>
  313. ${instance._reportViewer.getViewAllHtml(containerid, 'mobile', id)}</div></div></div><div class="card-footer Templatefooter bg-light pl-0 pr-0" id="templateViewerFooter_${containerid}"></div>`);
  314. Unibase.Platform.Analytics.Viewers.TemplateViewer.Instance().MainTemplateViewerId = instance.TemplateViewerId;
  315. instance.MainTemplateViewerId = instance.TemplateViewerId;
  316. var templateHeader;
  317. if (templateresponse.result.HeaderText) {
  318. templateHeader = HtmlHelper.getHelper().decode(templateresponse.result.HeaderText.trim(" "));
  319. if (templateHeader) {
  320. $(`#templateViewerHeader_${containerid}`).removeClass("hidden").html(HtmlHelper.getHelper().decode(templateresponse.result.HeaderText));
  321. }
  322. instance.headerText = HtmlHelper.getHelper().decode(templateresponse.result.HeaderText);
  323. }
  324. if (!instance.currentUser.isRestrictedUser) {
  325. $(`.portletwidget-${portletwidgetid}`).find(`#ViewerTypes_${containerid}`).removeClass('d-none');
  326. }
  327. instance._reportViewer.bindShowAllCountChangeEvents(containerid);
  328. }
  329. instance.bindMoreClickEvent(reportresponse, containerid, reportwidgetdata);
  330. if ($("#" + containerid).parents(".portletwidget-item").length === 0) {
  331. if ($(document).outerWidth() <= 576) {
  332. $(`#templateViewerHeader_${containerid}`).addClass("hidden");
  333. }
  334. }
  335. else if ((rv_instance.ViewerSettings.defaultViewerId != 0) && ($("#Viewer_" + containerid).attr('data-iscollapseapplied') == 'false')) {
  336. $("#WidgetTitleLink_" + containerid).addClass('widget-title-link');
  337. $("#ViewerHeader_" + containerid).attr('data-toggle', 'collapse').attr('data-target', "#Viewer_" + containerid);
  338. $("#Viewer_" + containerid).addClass('collapse');
  339. if (reportwidgetdata != "undefined" && reportwidgetdata != null) {
  340. if (reportwidgetdata != 0) {
  341. if (reportwidgetdata.Data.CssProperty != null && reportwidgetdata.Data.CssProperty != undefined && reportwidgetdata.Data.CssProperty != "") {
  342. if (reportwidgetdata.Data.PortletWidgetCss == undefined) {
  343. if (JSON.parse(reportwidgetdata.Data.CssProperty)[0].ReportCollapase == true && JSON.parse(reportwidgetdata.Data.CssProperty)[0].ReportCollapase != undefined) {
  344. $("#Viewer_" + containerid).addClass('show');
  345. $("#ViewerHeader_" + containerid).attr('aria-expanded', 'true');
  346. }
  347. else {
  348. $("#Viewer_" + containerid).removeClass('show');
  349. $("#ViewerHeader_" + containerid).attr('aria-expanded', 'false');
  350. }
  351. }
  352. if (reportwidgetdata.Data.PortletWidgetCss != undefined && reportwidgetdata.Data.PortletWidgetCss != "") {
  353. if (JSON.parse(reportwidgetdata.Data.PortletWidgetCss)[0].ReportCollapase == true) {
  354. $("#Viewer_" + containerid).addClass('show');
  355. $("#ViewerHeader_" + containerid).attr('aria-expanded', 'true');
  356. }
  357. else {
  358. $("#Viewer_" + containerid).removeClass('show');
  359. $("#ViewerHeader_" + containerid).attr('aria-expanded', 'false');
  360. }
  361. }
  362. $("#Viewer_" + containerid).attr('data-iscollapseapplied', 'true');
  363. }
  364. }
  365. }
  366. $(`#Viewer_${containerid}`).removeAttr('style tabulator-layout').removeClass('tabulator');
  367. instance._reportViewer.appendWidgetNoDataIcon(reportresp, containerid);
  368. let widgetHeight = instance.widgetHeightNum - Math.abs($(`#templateViewerHeader_${containerid}`).outerHeight(true));
  369. if (!Unibase.Themes.Compact.Components.Index.Instance().isAppStructureEnable) {
  370. $(`#templateViewerBody_${containerid}`).css({ "max-height": `${widgetHeight}px`, 'overflow-y': 'overlay' });
  371. }
  372. }
  373. $("#" + containerid).find(".card-footer").removeClass("hidden");
  374. var TempText = HtmlHelper.getHelper().decode(templateresponse.result.TemplateText).replace("{{onclick}}", rv_instance.ViewerSettings.OnClick);
  375. let data = "";
  376. var TemnplateTextArr = [];
  377. var statusconditions = "";
  378. var designhtml = '';
  379. var sub = '';
  380. var widgetconditions = "";
  381. if (reportwidgetdata != 0) {
  382. if (reportwidgetdata != null && reportwidgetdata != 0) {
  383. if (reportwidgetdata.AppConfigurations != null && reportwidgetdata.Data.ReportId == templateresponse.result.ReportId) {
  384. let widgetitemid = $(TempText).find("#hf_widgetitem_Id").val();
  385. if (TempText.indexOf('widgetitem_config') > -1) {
  386. var detailsub = TempText.substring(TempText.indexOf('widgetitem_config') - 15, TempText.indexOf('widgetitem_config') + 40);
  387. sub = detailsub.substring(detailsub.indexOf('<div'), detailsub.indexOf('</div>') + 6);
  388. if (reportwidgetdata.AppConfigurations.WidgetItemGrouped.length != 0) {
  389. var widgetitemgrouped = reportwidgetdata.AppConfigurations.WidgetItemGrouped;
  390. designhtml = `<div class='dropdown widget-item-config-dp'><a href='javascript:;' class='no-caret pull-right dropdown-link btn btn-icon btn-flush-biz-theme btn-rounded flush-soft-hover w-25p h-25p' data-toggle='dropdown'><span class="btn-icon-wrap"><i class='fa fa-ellipsis-h dropdown-icon text-dark'></i></span></a><ul class='dropdown-menu pull-right clearfix'><li class='dropdown-menu-item hidden'>`;
  391. for (var i = 0; i < widgetitemgrouped.length; i++) {
  392. var sname = widgetitemgrouped[i].SettingName.replace(/ /g, '');
  393. var onlickurl = "";
  394. let jsfunction1 = "";
  395. if (widgetitemgrouped[i].JsFunction != null && widgetitemgrouped[i].JsFunction != "")
  396. jsfunction1 = HtmlHelper.getHelper().decode(widgetitemgrouped[i].JsFunction);
  397. if (widgetitemgrouped[i].SettingUrlType == 4) {
  398. statusconditions += HtmlHelper.getHelper().decode(widgetitemgrouped[i].JsFunction);
  399. var onclick = widgetitemgrouped[i].SettingUrl.replace(/ /g, '');
  400. onlickurl = onclick;
  401. }
  402. else {
  403. onlickurl = instance.load_appconfigurations(widgetitemgrouped[i], TempText, portletwidgetid);
  404. if (jsfunction1 != null && jsfunction1 != "") {
  405. if (jsfunction1.indexOf("{{") > -1 || jsfunction1.indexOf("}}") > -1) {
  406. statusconditions += jsfunction1 + ";";
  407. }
  408. else {
  409. widgetconditions += jsfunction1 + ";";
  410. }
  411. }
  412. }
  413. if (!Unibase.Themes.Compact.Components.Details.Instance().isSystemLock || (Unibase.Themes.Compact.Components.Details.Instance().isSystemLock && widgetitemgrouped[i].ExcludeFromLock)) {
  414. designhtml += '<li id="li_' + containerid + '"><a class="dropdown-item" href="javascript:;" id="widgetconfig_' + widgetitemid + '_' + sname + '" onclick="' + onlickurl + '">' + widgetitemgrouped[i].SettingName + '</a></li>';
  415. }
  416. }
  417. designhtml += "</li></ul></div>";
  418. instance.autoFixConfigDpVisibility(containerid);
  419. }
  420. if (reportwidgetdata.AppConfigurations.WidgetItemUnGrouped.length != 0) {
  421. designhtml += "<div class='pull-right'>";
  422. var WidgetItemUnGrouped = reportwidgetdata.AppConfigurations.WidgetItemUnGrouped;
  423. for (var i = 0; i < WidgetItemUnGrouped.length; i++) {
  424. var sname = WidgetItemUnGrouped[i].SettingName.replace(/ /g, '');
  425. let jsfunction2 = "";
  426. if (WidgetItemUnGrouped[i].JsFunction != null && WidgetItemUnGrouped[i].JsFunction != "")
  427. jsfunction2 = HtmlHelper.getHelper().decode(WidgetItemUnGrouped[i].JsFunction);
  428. onlickurl = instance.load_appconfigurations(WidgetItemUnGrouped[i], TempText, portletwidgetid);
  429. if (jsfunction2 != null && jsfunction2 != "") {
  430. if (jsfunction2.indexOf("{{") > -1 || jsfunction2.indexOf("}}") > -1) {
  431. statusconditions += jsfunction2 + ";";
  432. }
  433. else {
  434. widgetconditions += jsfunction2 + ";";
  435. }
  436. }
  437. if (!Unibase.Themes.Compact.Components.Details.Instance().isSystemLock || (Unibase.Themes.Compact.Components.Details.Instance().isSystemLock && WidgetItemUnGrouped[i].ExcludeFromLock)) {
  438. designhtml += ' <span class="mr-10"><a href="javascript:;" id="widgetconfig_' + widgetitemid + '_' + sname + '" onclick="' + onlickurl + '">' +
  439. '<i class="' + WidgetItemUnGrouped[i].Icon + '"></i>' +
  440. '</a> </span>';
  441. }
  442. }
  443. designhtml += "</div>";
  444. }
  445. if (reportwidgetdata.AppConfigurations.WidgetSettings.length != 0) {
  446. designhtml += "<div class='pull-right'>";
  447. var WidgetSettings = reportwidgetdata.AppConfigurations.WidgetSettings;
  448. for (var i = 0; i < WidgetSettings.length; i++) {
  449. var sname = WidgetSettings[i].SettingName.replace(/ /g, '');
  450. let jsfunction3 = "";
  451. if (WidgetSettings[i].JsFunction != null && WidgetSettings[i].JsFunction != "")
  452. jsfunction3 = HtmlHelper.getHelper().decode(WidgetSettings[i].JsFunction);
  453. if (jsfunction3 != null && jsfunction3 != "") {
  454. if (jsfunction3.indexOf("{{") > -1 || jsfunction3.indexOf("}}") > -1) {
  455. statusconditions += jsfunction3 + ";";
  456. }
  457. else {
  458. widgetconditions += jsfunction3 + ";";
  459. }
  460. }
  461. var onlickurl = "";
  462. if (WidgetSettings[i].SettingUrlType == 4) {
  463. if (jsfunction3 != null && jsfunction3 != "") {
  464. if (WidgetSettings[i].JsFunction != null && WidgetSettings[i].JsFunction != "")
  465. statusconditions += HtmlHelper.getHelper().decode(WidgetSettings[i].JsFunction);
  466. }
  467. onlickurl = WidgetSettings[i].SettingUrl;
  468. }
  469. else {
  470. onlickurl = instance.load_appconfigurations(WidgetSettings[i], TempText, portletwidgetid);
  471. }
  472. var SettingDesignHtml = "";
  473. if (reportwidgetdata.AppConfigurations.WidgetSettings[i].SettingDesignHtml != null && reportwidgetdata.AppConfigurations.WidgetSettings[i].SettingDesignHtml != "")
  474. SettingDesignHtml = HtmlHelper.getHelper().decode(reportwidgetdata.AppConfigurations.WidgetSettings[i].SettingDesignHtml);
  475. if (SettingDesignHtml != null) {
  476. SettingDesignHtml = SettingDesignHtml.replace("{{id}}", '"widgetconfig_' + widgetitemid + '_' + sname + '"');
  477. SettingDesignHtml = SettingDesignHtml.replace("{{onclick}}", '"' + onlickurl + '"');
  478. SettingDesignHtml = SettingDesignHtml.replace("{{SettingName}}", WidgetSettings[i].SettingName);
  479. designhtml += ' <span class="mr-10">' + SettingDesignHtml + '</span>';
  480. }
  481. }
  482. designhtml += "</div>";
  483. }
  484. }
  485. TempText = TempText.replace(sub, designhtml);
  486. }
  487. }
  488. }
  489. if (reportresp !== null && reportresp.Data == "") {
  490. $("#btn-list-load-more_" + containerid).addClass('hidden');
  491. $(`#Viewer_${containerid}`).find('.Templateheader,.Templatefooter').addClass("hidden");
  492. if (rv_instance.reportResponse && rv_instance.reportResponse.result && !rv_instance.reportResponse.result.ReportInfo.IsAutoData && !rv_instance.dynamicFilters.length && !rv_instance.dateFilters.length) {
  493. $("#templateViewerBody_" + containerid).html("<div class='alert alert-primary text-center mb-0 border-0 rounded-0 w-100 font-14 font-weight-500'>Select filter to show data</div>");
  494. }
  495. else {
  496. $("#templateViewerBody_" + containerid).html("<div class='alert alert-primary text-center mb-0 border-0 rounded-0 w-100 font-14 font-weight-500'>No data available</div>");
  497. }
  498. }
  499. else {
  500. if (reportresp != null && typeof (reportresp.Data) === 'string')
  501. data = JSON.parse(reportresp.Data);
  502. else if (typeof (reportresp.Data) === 'object')
  503. data = reportresp.Data;
  504. rv_instance.reportDatalength = +$(`#visibleReportCount_${containerid}`).text() + data.length;
  505. $(`#visibleReportCount_${containerid}`).text(rv_instance.reportDatalength);
  506. }
  507. if (!containerid.includes('div_dashboardportletwidget') || containerid.includes('fullscreen')) {
  508. $(`#Viewer_${containerid}`).removeAttr('style tabulator-layout').removeClass('tabulator');
  509. }
  510. var templateScript = Handlebars.compile(TempText);
  511. var templatefooterScript = Handlebars.compile(HtmlHelper.getHelper().decode(templateresponse.result.FooterText));
  512. const totalRecords = reportresponse.result.ReportJsonData.TotalRecords;
  513. let records = 0;
  514. if (instance._reportViewer.IsPortletWidget) {
  515. if (instance.TemplatePageSize == data.length && !reportresponse.result.ReportInfo.IsEnableCount) {
  516. $(`#lnkViewAll_${containerid}`).removeClass("hidden");
  517. }
  518. else if (data.length >= 5) {
  519. $(`#lnkViewAll_${containerid}`).removeClass("hidden");
  520. }
  521. else if (rv_instance.reportDatalength == 0) {
  522. $(`#lnkViewAll_${containerid}`).addClass("hidden");
  523. }
  524. $("#btn-list-load-more_" + containerid).addClass('hidden');
  525. if (totalRecords > 0) {
  526. $("#Viewer_pagintion" + containerid).html(data.length + ' ' + 'of' + ' ' + totalRecords);
  527. }
  528. if (data.length >= 5) {
  529. $(`#lnkViewAll_${containerid}`).removeClass("hidden").addClass("btn font-10");
  530. }
  531. if (containerid.indexOf("div_portletwidget") > -1 && reportresponse.result.ReportInfo.IsEnableCount) {
  532. $("#Viewer_pagintion_Badge_count" + containerid).removeClass('d-none');
  533. $("#Viewer_pagintion_Badge_count_badge" + containerid).html(data.length);
  534. }
  535. }
  536. else {
  537. if (totalRecords <= page * instance.TemplatePageSize) {
  538. records = totalRecords;
  539. if (templateresponse.result.EnableSubTemplatesMode) {
  540. if (instance.MoreBtnViewerId == 0) {
  541. $("#card-footer_" + containerid).hide();
  542. }
  543. else {
  544. $("#card-footer_" + instance.TemplateViewerId + "_" + containerid).hide();
  545. }
  546. }
  547. else {
  548. if (instance.TemplatePageSize == data.length && !reportresponse.result.ReportInfo.IsEnableCount) {
  549. $("#btn-list-load-more_" + containerid).removeClass('hidden');
  550. }
  551. else if (totalRecords == rv_instance.reportData.length) {
  552. $("#btn-list-load-more_" + containerid).addClass('hidden');
  553. let VisibleContainerId = instance.navigationHelper.getLastContainerId();
  554. var notdashboard = $("#" + VisibleContainerId).find("#dashboardwidget-container").length;
  555. var notdetailspage = $("#" + VisibleContainerId).find(".detail-container-content").length;
  556. var nomodal = $("._bizgaze_popup_container").find(".NoMore-Records").length;
  557. if (notdashboard == 0 && notdetailspage == 0 && nomodal == 0) {
  558. $("#btn-list-load-more_" + containerid).parents().find(".NoMore-Records").removeClass('d-none');
  559. }
  560. }
  561. }
  562. }
  563. else {
  564. if (totalRecords != 0) {
  565. $("#btn-list-load-more_" + containerid).removeClass('hidden');
  566. }
  567. records = page * rv_instance.PageSize;
  568. if (records > totalRecords) {
  569. records = totalRecords;
  570. $("#btn-list-load-more_" + containerid).addClass('hidden');
  571. $(`#templateBodyFooter_${containerid} .NoMore-Records`).removeClass('d-none');
  572. }
  573. }
  574. $("#Viewer_pagintion" + containerid).html(records + ' of ' + totalRecords);
  575. if (totalRecords != 0) {
  576. var display_count = `<span>(${totalRecords})</span>`;
  577. $("#Viewer_pagintion_count" + containerid).html(display_count);
  578. }
  579. else if (rv_instance.isEnableCount) {
  580. $("#Viewer_pagintion_count" + containerid).html(`(${rv_instance.totalRecords})`);
  581. }
  582. }
  583. if (totalRecords != 0) {
  584. $(`#visibleReportCountWrap_${containerid}`).addClass('d-none');
  585. $(`.reportCountWrap_${containerid} .rpt-Count${containerid}`).addClass("hidden");
  586. $(`#Viewer_pagintion${containerid}`).removeClass('hidden');
  587. }
  588. if (rv_instance.isShowAll && data.length < rv_instance.PageSize) {
  589. $("#btn-list-load-more_" + containerid).addClass('hidden');
  590. }
  591. let html = "";
  592. let footerhtml = "";
  593. $(".list-content-section" + containerid).removeClass('hidden');
  594. $(".report_filter_" + containerid).addClass('hidden');
  595. if (reportresponse.result.ReportInfo.IsPivotTree && reportresponse.result.ReportInfo.IsTreeExpand) {
  596. html = instance.getTreeViewTemplate(data, TempText, reportresponse.result.ReportInfo.PivotValue, reportresponse.result.ReportInfo.IsTreeExpand);
  597. }
  598. else {
  599. for (let i = 0; i < data.length; i++) {
  600. data[i]["appinstalledappid"] = rv_instance.ViewerSettings.InstalledAppId;
  601. if (data[i].statusid == 1) {
  602. data[i]["statusname"] = "text-success";
  603. }
  604. else {
  605. data[i]["statusname"] = "text-danger";
  606. }
  607. if (data[i].haschild == true) {
  608. data[i]["pivot_reportid"] = id;
  609. data[i]["pivot_viewerid"] = viewerid;
  610. }
  611. var templatescript = templateScript(data[i]);
  612. if (reportresponse.result.ReportInfo.IsPivotTree && !reportresponse.result.ReportInfo.IsTreeExpand) {
  613. if (data[i].haschild == true) {
  614. templatescript = templatescript.replace("parentPlusIcon_" + data[i]["parentid"] + "_" + data[i]["childid"] + " d-none", "parentPlusIcon_" + data[i]["parentid"] + "_" + data[i]["childid"] + "");
  615. }
  616. }
  617. html += templatescript;
  618. }
  619. }
  620. if (page == instance._reportViewer.Page && instance.MoreBtnViewerId == 0) {
  621. if (templateresponse.result.EnableSubTemplatesMode) {
  622. instance.loadCardMode(reportresponse, html, templateresponse, containerid, reportwidgetdata);
  623. }
  624. else {
  625. if (templateresponse.result.EnableCardMode) {
  626. $(".layout_list_container").addClass("removed");
  627. }
  628. if (Unibase.Themes.Providers.DetailHelper.installedAppId != 0 && Unibase.Themes.Compact.Components.Index.Instance().currentTheme.isstructenable) {
  629. let _html = html.replace(/col-sm-12|col-md-3|col-md-4|col-md-6|col-lg-3|col-lg-4|col-lg-6|col-xl-3|col-xl-4|col-xl-3|col-xxl-3|col-xxl-4|col-xxl-6/gi, function (x) {
  630. return 'col-12';
  631. });
  632. $("#layout_list_container_" + containerid).html(_html);
  633. }
  634. else {
  635. $("#layout_list_container_" + containerid).html(html);
  636. }
  637. instance.templateText = html;
  638. if (HtmlHelper.getHelper().decode(templateresponse.result.FooterText.trim(" ")) == "") {
  639. $(`#templateViewerFooter_${containerid}`).addClass("hidden");
  640. $(`#templateViewerFooter_${containerid}`).removeClass("card-footer");
  641. }
  642. else {
  643. $(`#templateViewerFooter_${containerid}`).html(templatefooterScript(data[0]));
  644. instance.footerText = templatefooterScript(data[0]);
  645. }
  646. }
  647. }
  648. else {
  649. instance.templateText = html;
  650. if (instance.MoreBtnViewerId == 0) {
  651. $("#layout_list_container_" + containerid).append(html);
  652. }
  653. else {
  654. let TempViewId = instance.MoreBtnViewerId;
  655. $("#layout_list_container_" + TempViewId + "_" + containerid).append(html);
  656. }
  657. }
  658. if (templateresponse.result.EnableSubTemplatesMode) {
  659. $("#templateViewerBody_" + containerid).css('height', '100%');
  660. }
  661. if (templateresponse.result.EnableCardMode) {
  662. $("#layout_list_container_" + containerid).addClass("d-flex flex-wrap").removeClass("list-group");
  663. $("#templateViewerBody_" + containerid).css('background-color', 'transparent');
  664. }
  665. if (templateresponse.result.IsCarousel) {
  666. var finalHtml = instance.headerText + instance.templateText + instance.footerText;
  667. $("#Viewer_" + containerid).html(finalHtml).css({ "height": "100%", "max-height": instance.widgetHeightPx });
  668. }
  669. if (templateresponse.result.Js != null && templateresponse.result.Js != "") {
  670. if (templateresponse.result.Js.indexOf("{{") > -1 || templateresponse.result.Js.indexOf("}}") > -1) {
  671. statusconditions += templateresponse.result.Js + ";";
  672. }
  673. else {
  674. widgetconditions += templateresponse.result.Js + ";";
  675. }
  676. }
  677. $("#layout_list_container" + containerid).find(".list-group-item a").on("click", function (e) {
  678. this.id;
  679. });
  680. $(".grid-stack-item-content").removeClass("hidden");
  681. let iconhtml = "";
  682. let threeDotsHtml = '<div class="mx-2 my-auto"><a href="javascript:void(0);" id="dropdownMenuButton_' + containerid + '" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><i class="fa fa-ellipsis-v"></i></a><div class="dropdown-menu drop-Button_' + containerid + '" aria-labelledby="dropdownMenuButton_"' + containerid + '></div></div>';
  683. $('#dropdownMenuButton_' + containerid).parent().remove();
  684. $(".sp_widget_create_" + containerid + "").find("a").remove();
  685. if (($(window).width()) <= 575) {
  686. if ($(".sp_widget_create_" + containerid).find("span").length == 0) {
  687. $(".sp_widget_create_" + containerid).parents('.card-header-right').siblings('.card-header-left').removeClass("w-70");
  688. }
  689. }
  690. if (reportwidgetdata != null) {
  691. if (reportwidgetdata.AppConfigurations != null && reportwidgetdata.Data.ReportId == templateresponse.result.ReportId) {
  692. var ungroued = [];
  693. var widgetcreate = reportwidgetdata.AppConfigurations.WidgetGrouped.filter(function (o) { return o.AppConfigType === 3; });
  694. if (widgetcreate.length > 0) {
  695. var onlickurl_grouped = "";
  696. for (var i = 0; i < widgetcreate.length; i++) {
  697. var createjsfunction = "";
  698. var settingdesignhtml = "";
  699. if (widgetcreate[i].JsFunction != null && widgetcreate[i].JsFunction != "")
  700. createjsfunction = HtmlHelper.getHelper().decode(widgetcreate[i].JsFunction);
  701. if (widgetcreate[i].SettingDesignHtml != null && widgetcreate[i].SettingDesignHtml != "")
  702. settingdesignhtml = HtmlHelper.getHelper().decode(widgetcreate[i].SettingDesignHtml);
  703. onlickurl_grouped = instance.load_appconfigurations(widgetcreate[i], TempText, portletwidgetid);
  704. if (!Unibase.Themes.Compact.Components.Details.Instance().isSystemLock || (Unibase.Themes.Compact.Components.Details.Instance().isSystemLock && widgetcreate[i].ExcludeFromLock)) {
  705. let details_btn_p = 'pr-3';
  706. if (Unibase.Platform.Membership.Infos.Identity.getCurrentUser().isAdmin) {
  707. details_btn_p = '';
  708. }
  709. if ((widgetcreate[i].Icon == "null" || widgetcreate[i].Icon == "") && widgetcreate[i].SettingUrlType == 3) {
  710. iconhtml += '<span class="' + details_btn_p + '"><a href="javascript:;" class="nav-link biz-highlight-bg-color" id="LinkButton" title="' + widgetcreate[i].SettingName + '" onclick="' + onlickurl_grouped + '"><i class=""></i>' + settingdesignhtml + '</a></span>';
  711. }
  712. else if ((widgetcreate[i].Icon == "null" || widgetcreate[i].Icon == "") && (widgetcreate[i].SettingUrlType == 10 || widgetcreate[i].SettingUrlType == 11)) {
  713. iconhtml += '<span class="' + details_btn_p + '"><a href="javascript:;" class="nav-link biz-highlight-bg-color btn btn-sm btn-outline-primary" id="LinkButton" title="' + widgetcreate[i].SettingName + '" onclick="' + onlickurl_grouped + '">' + widgetcreate[i].SettingName + '</a></span>';
  714. }
  715. else {
  716. iconhtml += '<span class="' + details_btn_p + '"><a href="javascript:;" class="nav-link no-caret btn btn-icon btn-flush-biz-theme btn-rounded flush-soft-hover w-30p h-30p" id="LinkButton" title="' + widgetcreate[i].SettingName + '" onclick="' + onlickurl_grouped + '"><span class="btn-icon-wrap"><i class="' + widgetcreate[i].Icon + '"></i></span></a></span>';
  717. }
  718. }
  719. if (createjsfunction != null && createjsfunction != "") {
  720. if (createjsfunction.indexOf("{{") > -1 || createjsfunction.indexOf("}}") > -1) {
  721. statusconditions += createjsfunction + ";";
  722. }
  723. else {
  724. widgetconditions += createjsfunction + ";";
  725. }
  726. }
  727. }
  728. $(".sp_widget_create_" + containerid + "").addClass('d-flex flex-row align-items-center');
  729. $(".sp_widget_create_" + containerid + "").html(iconhtml);
  730. }
  731. let widgetUngrouped = reportwidgetdata.AppConfigurations.WidgetUnGrouped.filter(function (o) { return o.AppConfigType === 3; });
  732. if (widgetUngrouped.length > 0) {
  733. $(".sp_widget_create_" + containerid).parent().addClass('align-items-center').append(threeDotsHtml);
  734. let onlickurl_ungrouped = "", Ungroupedhtml = '';
  735. for (var i = 0; i < widgetUngrouped.length; i++) {
  736. var jsfunction = HtmlHelper.getHelper().decode(widgetUngrouped[i].JsFunction);
  737. onlickurl_ungrouped = instance.load_appconfigurations(widgetUngrouped[i], TempText, portletwidgetid);
  738. if (!Unibase.Themes.Compact.Components.Details.Instance().isSystemLock || (Unibase.Themes.Compact.Components.Details.Instance().isSystemLock && widgetcreate[i].ExcludeFromLock)) {
  739. if (widgetUngrouped[i].Icon == "null" || widgetUngrouped[i].Icon == "" && widgetUngrouped[i].SettingUrlType == 3) {
  740. Ungroupedhtml += '<a href="javascript:;" class="nav-link biz-highlight-bg-color" id="LinkButton" title="' + widgetUngrouped[i].SettingName + '" onclick="' + onlickurl_ungrouped + '"><i class=""></i>' + HtmlHelper.getHelper().decode(widgetUngrouped[i].SettingDesignHtml) + '</a>';
  741. }
  742. else {
  743. Ungroupedhtml += '<a href="javascript:;" class="nav-link d-flex flex-row" id="LinkButton" title="' + widgetUngrouped[i].SettingName + '" onclick="' + onlickurl_ungrouped + '"><span>' + widgetUngrouped[i].SettingName + '</span><i class="ml-auto my-auto font-14 ' + widgetUngrouped[i].Icon + '"></i></a>';
  744. }
  745. }
  746. if (jsfunction != null && jsfunction != "") {
  747. if (jsfunction.indexOf("{{") > -1 || jsfunction.indexOf("}}") > -1) {
  748. statusconditions += jsfunction + ";";
  749. }
  750. else {
  751. widgetconditions += jsfunction + ";";
  752. }
  753. }
  754. }
  755. $('.drop-Button_' + containerid).empty().append(Ungroupedhtml);
  756. }
  757. }
  758. }
  759. if (statusconditions != "") {
  760. if (data != null) {
  761. for (var i = 0; i < data.length; i++) {
  762. var model = data[i];
  763. instance.fileCacheHelper.loadJsFile("platform/core/helpers/token/tokenhelper.js", () => {
  764. var condition = Unibase.Core.Helpers.TokenHelper.Instance().replace(statusconditions, model);
  765. eval(condition);
  766. });
  767. }
  768. }
  769. }
  770. if (widgetconditions != "") {
  771. eval(widgetconditions);
  772. }
  773. if (templateresponse.result.IsCarousel) {
  774. var finalHtml = instance.headerText + instance.templateText + instance.footerText;
  775. $(".BindData_" + containerid).find('.report-search').remove();
  776. $(".BindData_" + containerid).find('.search_icon').remove();
  777. if (containerid.indexOf("div_portletwidget") > -1 || containerid.indexOf("div_dashboardportletwidget") > -1) {
  778. $(".BindData_" + containerid).addClass('shadow');
  779. $(".BindData_" + containerid).find('.card-footer').remove();
  780. $(".BindData_" + containerid).find('.card-header.search-bar-main-wrapper').addClass('py-0 border-0');
  781. }
  782. else {
  783. let height = $("#templateViewerBody_" + containerid).height();
  784. $("#Viewer_" + containerid).html(finalHtml).css("height", height + 50);
  785. }
  786. }
  787. if (reportwidgetdata != 0 && reportwidgetdata != undefined && reportwidgetdata != null) {
  788. if (reportwidgetdata.Data) {
  789. let widgetDesignName = reportwidgetdata.Data.WidgetDesignName;
  790. if (widgetDesignName == 'Report_WithoutHeaderAndFooter') {
  791. if (containerid.indexOf("div_portletwidget") > -1 || containerid.indexOf("div_dashboardportletwidget") > -1) {
  792. $("#Viewer_" + containerid).css("height", "100%");
  793. $("#templateViewerBody_" + containerid).css("height", "100%");
  794. $(".BindData_" + containerid).find('.card-footer,.report-search,.card-header').remove();
  795. $(".BindData_" + containerid).find('.card-header.search-bar-main-wrapper').addClass('py-0 border-0');
  796. }
  797. else {
  798. let height = $("#templateViewerBody_" + containerid).height();
  799. $("#Viewer_" + containerid).html(finalHtml).css("height", height + 50);
  800. }
  801. }
  802. else {
  803. $('#' + containerid).find('.search_icon').removeClass('hidden');
  804. }
  805. }
  806. }
  807. $("#Viewer_" + containerid).find("#layout_list_header,.list-group-item").addClass("biz-transparent-text-color no-background list-border-color");
  808. $("#Viewer_" + containerid).find(".list-group-item a").addClass("biz-transparent-text-color");
  809. }
  810. }
  811. autoFixConfigDpVisibility(containerid) {
  812. $(`#Viewer_${containerid}`).on('shown.bs.dropdown', '.widget-item-config-dp', function () {
  813. const templateBodyEl = $(`#templateViewerBody_${containerid}`);
  814. const dropdownHeight = $(this).find('.dropdown-menu').outerHeight(true) + 5;
  815. const templateBodyHeight = templateBodyEl.height();
  816. if ((dropdownHeight > templateBodyHeight) && (templateBodyEl.prop('scrollHeight') > templateBodyHeight)) {
  817. templateBodyEl.css('overflow', 'visible');
  818. }
  819. });
  820. }
  821. bindMoreClickEvent(reportresponse, containerid, reportwidgetdata) {
  822. var instance = this;
  823. var data = reportresponse.result.ReportJsonData.Result.Data;
  824. if (reportresponse.result.ReportJsonData.TotalRecords == 0) {
  825. var res = [];
  826. if (data != "" && typeof (data) === 'string')
  827. res = JSON.parse(data);
  828. else if (typeof (data) === 'object')
  829. res = data;
  830. if (res.length < instance._reportViewer.PageSize || res.length == 0) {
  831. $("#btn-list-load-more_" + containerid).addClass('hidden');
  832. let VisibleContainerId = Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds[Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds.length - 1];
  833. var notdashboard = $("#" + VisibleContainerId).find("#dashboardwidget-container").length;
  834. var notdetailspage = $("#" + VisibleContainerId).find(".detail-container-content").length;
  835. var nomodal = $("._bizgaze_popup_container").find(".NoMore-Records").length;
  836. if (notdashboard == 0 && notdetailspage == 0 && nomodal == 0 && res.length != 0) {
  837. $("#btn-list-load-more_" + containerid).parents().find(".NoMore-Records").removeClass('d-none');
  838. }
  839. }
  840. }
  841. if (data != "") {
  842. if (reportresponse.result.ReportJsonData.TotalRecords == JSON.parse(data).length) {
  843. $("#btn-list-load-more_" + containerid).addClass('hidden');
  844. }
  845. }
  846. $("#loadMoreListBtn_" + containerid).off('click').click(function () {
  847. instance.MoreBtnViewerId = 0;
  848. let page = instance.last_page + 1;
  849. let listsearch = $("#" + containerid).find("#ListSearch").val();
  850. let rv = Unibase.Platform.Analytics.Components.ReportViewer.Instance();
  851. let rv_instance = rv.getReportViewerInstance(containerid);
  852. let isdynamicfilters = rv.isIdentityFilter(rv_instance.dynamicFilters);
  853. let { fromDate, toDate } = rv.checkForReportDatePicker(rv_instance.ReportId, containerid);
  854. if (rv_instance.fromDate && rv_instance.toDate) {
  855. fromDate = rv_instance.fromDate;
  856. toDate = rv_instance.toDate;
  857. }
  858. let displayModeId = rv.getDisplayModeTypeId();
  859. rv_instance.Page = Number(page);
  860. let repObj = {
  861. ReportId: Number(instance.MainTemplateReportId),
  862. page: rv_instance.Page,
  863. Filter: rv_instance.dynamicFilters,
  864. InputParameters: rv_instance.inputParameters,
  865. pageSize: rv_instance.PageSize,
  866. SearchTerm: listsearch ? $("#" + containerid).find("#ListSearch").val().toString() : null,
  867. FilterId: rv_instance.filterId,
  868. DateFilter: rv_instance.dateFilters,
  869. IsEnableCount: rv_instance.isEnableCount,
  870. DisplayModeTypeId: displayModeId,
  871. FromDate: fromDate,
  872. ToDate: toDate,
  873. viewerTypeId: rv_instance.ViewerSettings.selectedViewerTypeId,
  874. IsDynamicFilterApplied: isdynamicfilters,
  875. IsShowAll: rv_instance.isShowAll,
  876. };
  877. instance.last_page += 1;
  878. instance.reportManager.getReportInfo(repObj).then(function (reportresponse) {
  879. if (reportresponse.status == Unibase.Data.Status.Success) {
  880. if (reportresponse.result.ReportJsonData.Result.Data != "") {
  881. let prevData = rv_instance.reportData;
  882. let currentData = JSON.parse(reportresponse.result.ReportJsonData.Result.Data);
  883. rv_instance.reportData = $.merge(prevData, currentData);
  884. rv_instance.reportDatalength = rv_instance.reportData.length;
  885. let selectedvId = rv_instance.ViewerSettings.defaultViewerId;
  886. if (rv_instance.ViewerSettings.selectedViewerId != undefined)
  887. selectedvId = rv_instance.ViewerSettings.selectedViewerId;
  888. instance.loadView(reportresponse, instance.MainTemplateReportId, selectedvId, page, rv_instance.PageSize, containerid, rv_instance.ViewerSettings, null, reportwidgetdata);
  889. }
  890. else {
  891. $("#btn-list-load-more_" + containerid).addClass('hidden');
  892. $(`#templateBodyFooter_${containerid} .NoMore-Records`).removeClass('d-none');
  893. }
  894. }
  895. else {
  896. instance.last_page -= 1;
  897. }
  898. });
  899. if (instance.templateText) {
  900. Unibase.Platform.Helpers.NavigationHelper.TemplateText = instance.templateText;
  901. Unibase.Platform.Helpers.NavigationHelper.FooterText = instance.footerText;
  902. Unibase.Platform.Helpers.NavigationHelper.HeaderText = instance.headerText;
  903. }
  904. });
  905. }
  906. loadCardMode(reportresponse, html, templateresponse, containerid, reportwidgetdata) {
  907. var instance = this;
  908. let rv_instance;
  909. if (Unibase.Platform.Helpers.NavigationHelper.reportViewerInstance.length > 0) {
  910. let reportviewerInstance = Unibase.Platform.Helpers.NavigationHelper.reportViewerInstance.find(x => x.childcontainerid == containerid);
  911. if (reportviewerInstance != undefined)
  912. rv_instance = reportviewerInstance.instance;
  913. else
  914. rv_instance = instance;
  915. }
  916. else {
  917. rv_instance = instance;
  918. }
  919. function loadsubtemplates(subTmpResp) {
  920. return __awaiter(this, void 0, void 0, function* () {
  921. for (const subTmp of subTmpResp) {
  922. var subrptData = "";
  923. var templateHeader = HtmlHelper.getHelper().decode(subTmp.HeaderText);
  924. $("#layout_list_container_" + subTmp.TemplateViewId + "_" + containerid).remove();
  925. $("#templateViewerBody_" + containerid).append(`<br/><ul class="layout_list_container card font-14 row ml-15 mr-15"><div class="card-header bg-light col-sm-12">${templateHeader}</div><div class="card-body row" id="layout_list_container_${subTmp.TemplateViewId}_${containerid}"> </div> <div class="card-footer" id="card-footer_${subTmp.TemplateViewId}_${containerid}"> <div class="text-center text-white col-sm-12"> <a class="btn btn-success m-b btn-list-load-more" id="btn-list-load-more_${subTmp.TemplateViewId}_${containerid}">More<i class=""> </i></a></div></div></ul>`);
  926. var templateScript = Handlebars.compile(HtmlHelper.getHelper().decode(subTmp.TemplateText));
  927. var templateHeaderScript = Handlebars.compile(templateHeader);
  928. let postdata = {
  929. ReportId: subTmp.ReportId,
  930. page: 1,
  931. pageSize: subTmp.PageSize,
  932. FilterId: rv_instance.filterId,
  933. Filter: rv_instance.dynamicFilters,
  934. InputParameters: rv_instance.inputParameters,
  935. SearchTerm: $("#" + containerid).find("#ListSearch").val().toString(),
  936. IsJson: true,
  937. viewerTypeId: rv_instance.ViewerSettings.selectedViewerTypeId,
  938. DisplayModeTypeId: instance._reportViewer.getDisplayModeTypeId(),
  939. };
  940. yield instance.reportManager.getReportViewerData(postdata).then(function (Subtableresponse) {
  941. let response = JSON.parse(Subtableresponse.result);
  942. if (response.Data != "") {
  943. let subData = JSON.parse(response.Data);
  944. subrptData = subData;
  945. var HeaderHtml = "";
  946. for (let d = 0; d < subData.length; d++) {
  947. html = templateScript(subData[d]);
  948. if (templateHeader != "") {
  949. HeaderHtml = templateHeaderScript(subData[d]);
  950. }
  951. $("#layout_list_container_" + subTmp.TemplateViewId + "_" + containerid).append(html);
  952. instance.templateText = html;
  953. $(`#templateViewerHeader_${containerid}`).removeClass("hidden").html(HeaderHtml);
  954. instance.headerText = HeaderHtml;
  955. }
  956. instance.SubTemplatesPage[subTmp.TemplateViewId] = 2;
  957. $("#Viewer_" + containerid).find(".simplebar-wrapper").removeClass("simplebar-wrapper").removeAttr("style");
  958. $(`#templateViewerFooter_${containerid}`).remove();
  959. if (Subtableresponse.totalRecords <= instance.SubTemplatesPage[subTmp.TemplateViewId] * subTmp.PageSize) {
  960. $("#card-footer_" + subTmp.TemplateViewId + "_" + containerid).hide();
  961. }
  962. }
  963. else {
  964. $("#btn-list-load-more_" + subTmp.TemplateViewId + "_" + containerid + "").addClass("hidden");
  965. }
  966. }).then(function () {
  967. $("#btn-list-load-more_" + subTmp.TemplateViewId + "_" + containerid).off('click').click(function () {
  968. instance.MoreBtnViewerId = subTmp.TemplateViewId;
  969. var page = instance.SubTemplatesPage[subTmp.TemplateViewId];
  970. instance.SubTemplatesPage[subTmp.TemplateViewId] = instance.SubTemplatesPage[subTmp.TemplateViewId] + 1;
  971. let listsearch = $("#" + containerid).find("#ListSearch").val();
  972. let repObj = {
  973. ReportId: Number(subTmp.ReportId),
  974. page: Number(page),
  975. Filter: rv_instance.dynamicFilters,
  976. FilterId: rv_instance.filterId,
  977. pageSize: instance.TemplatePageSize,
  978. SearchTerm: listsearch ? $("#" + containerid).find("#ListSearch").val().toString() : null,
  979. viewerTypeId: rv_instance.ViewerSettings.selectedViewerTypeId,
  980. DisplayModeTypeId: instance._reportViewer.getDisplayModeTypeId(),
  981. };
  982. instance.reportManager.getReportInfo(repObj).then(function (reportresponse) {
  983. instance.loadView(reportresponse, instance.MainTemplateReportId, subTmp.TemplateViewId, page, instance.TemplatePageSize, containerid, rv_instance.ViewerSettings, null, reportwidgetdata);
  984. });
  985. });
  986. });
  987. if (subTmp.Js != "") {
  988. if (subrptData != null) {
  989. for (var i = 0; i < subrptData.length; i++) {
  990. var model = subrptData[i];
  991. var condition = Unibase.Core.Helpers.TokenHelper.Instance().replace(subTmp.Js, model);
  992. eval(condition);
  993. }
  994. }
  995. }
  996. }
  997. });
  998. }
  999. var instance = this;
  1000. $("#layout_list_container_" + containerid).html(`<div class="card-body row" id="layout_list_container_${containerid}">${html}</div>`);
  1001. $("#layout_list_container_" + containerid).removeClass("list-group").addClass("row ml-15 mr-15 mt-40 card");
  1002. let moreBtn = $("#btn-list-load-more_" + containerid).parent().html();
  1003. $("#btn-list-load-more_" + containerid).parent().remove();
  1004. let html2 = $(`#templateViewerHeader_${containerid}`)[0];
  1005. $("#card-footer_" + containerid).remove();
  1006. $("#layout_list_container_" + containerid).prepend(html2);
  1007. $("#layout_list_container_" + containerid).append(`<div class="card-footer" id="card-footer_` + containerid + `"><div class="text-center text-white col-sm-12">` + moreBtn + `</div></div>`);
  1008. instance.bindMoreClickEvent(reportresponse, containerid, reportwidgetdata);
  1009. $("#layout_list_container_" + containerid).removeAttr("id");
  1010. if (templateresponse.result.SubTemplates != "" && templateresponse.result.SubTemplates != null) {
  1011. instance.viewerManager.getSubTemplate(templateresponse.result.TemplateViewId).then(function (subTmpResp) {
  1012. loadsubtemplates(subTmpResp.result);
  1013. });
  1014. }
  1015. }
  1016. load_appconfigurations(config, templatetext, portletwidgetid) {
  1017. var instance = this;
  1018. let settingurltype = config.SettingUrlType;
  1019. var widgetid = config.WidgetId;
  1020. var appconfigurationid = config.AppConfigurationId;
  1021. var settingUrl = config.SettingUrl;
  1022. var formid = config.FormId;
  1023. let editformid;
  1024. var formpkname = config.FormPrimaryColumn;
  1025. if (config.Icon == "fa fa-plus")
  1026. editformid = 0;
  1027. else if (formpkname != "" && formpkname != null && templatetext == undefined) {
  1028. formpkname = formpkname.toString().toLowerCase();
  1029. editformid = Unibase.Themes.Providers.DetailHelper.recordId;
  1030. }
  1031. else {
  1032. if (templatetext != undefined && templatetext != "") {
  1033. var htmlObject = $(templatetext);
  1034. editformid = htmlObject.find("#hf_widgetitem_Id").val();
  1035. }
  1036. else
  1037. editformid = 0;
  1038. }
  1039. var onclick = "";
  1040. if (settingurltype == 2) {
  1041. let jsfun = "";
  1042. if (config.JsFunction != null && config.JsFunction != "") {
  1043. jsfun = HtmlHelper.getHelper().decode(config.JsFunction);
  1044. }
  1045. onclick = "this.fileCacheHelper.loadJsFile('" + config.SettingUrl + "', function (){var html = Unibase.Apps.Components.Stages.Instance().init();NavigationHelper.Instance().loadPopupHtml(html, Helpers.Size.DockLeft, function(containerid) {" + jsfun + " ;});});";
  1046. }
  1047. else if (settingurltype == 1) {
  1048. if (templatetext.indexOf('hf_widgetid_recordId') > 0) {
  1049. editformid = Unibase.Themes.Providers.DetailHelper.recordId;
  1050. }
  1051. onclick = 'Unibase.Platform.Helpers.NavigationHelper.Instance().loadForm(' + formid + ', ' + editformid + ',' + appconfigurationid + ',' + portletwidgetid + ' )';
  1052. }
  1053. else if (settingurltype == 3) {
  1054. let variablename = "Widget_" + config.SettingUrl.split(",")[0].split(".")[0].trim();
  1055. let methodname = config.SettingUrl.split(".js,")[1];
  1056. Unibase.Platform.Helpers.FileCacheHelper.Instance().loadJsFile('widgets/' + config.SettingUrl.split(",")[0], null);
  1057. var onclickurl = "Unibase.Platform.Helpers.FileCacheHelper.Instance().loadJsFile('widgets/" + config.SettingUrl.split(",")[0] + "', function () { " + variablename + "." + methodname + " });";
  1058. onclick = onclickurl;
  1059. }
  1060. else if (settingurltype == 5) {
  1061. onclick = "Unibase.Platform.Analytics.Viewers.TemplateViewer.Instance().dynamicDelete(" + editformid + "," + appconfigurationid + ")";
  1062. }
  1063. else if (settingurltype == 7) {
  1064. onclick = "Unibase.Themes.Compact.Components.ReportWidgets.Default.Instance().loaddynamicwidgets(" + widgetid + "," + editformid + ",''," + appconfigurationid + ",true)";
  1065. }
  1066. else if (settingurltype == 10) {
  1067. onclick = "Unibase.Themes.Compact.Components.Nav.Instance().loadDashboard(" + config.LinkDashboardId + ",'" + config.DashboardName + "')";
  1068. }
  1069. else if (settingurltype == 11) {
  1070. onclick = "Unibase.Themes.Compact.Components.Nav.Instance().loadDashboardsInDashboard(" + config.LinkDashboardGroupId + ",0,true)";
  1071. }
  1072. return onclick;
  1073. }
  1074. dynamicDelete(Id, AppConfigId) {
  1075. bootbox.confirm("Are you sure to delete this record?", function (result) {
  1076. if (result) {
  1077. Unibase.Platform.Forms.Managers.FormManager.Instance().dynamicDelete(Id, AppConfigId).then(function (response) {
  1078. if (response.status == Unibase.Data.Status.Error) {
  1079. }
  1080. else {
  1081. MessageHelper.Instance().showSuccess(response.message, '');
  1082. }
  1083. let id = Unibase.Platform.Helpers.NavigationHelper.Instance().getLastContainerId();
  1084. let wdgtContainerId = id.replace("_viewall", "");
  1085. let rprtId = Number($(`[class^="${wdgtContainerId}"]`).parent().siblings('#hf_ReportId').val());
  1086. Unibase.Platform.Analytics.Components.ReportViewer.Instance().refreshReportData(rprtId, id, null);
  1087. var detail_instance = Unibase.Themes.Compact.Components.Details.Instance();
  1088. detail_instance.loadPortlets(detail_instance);
  1089. });
  1090. }
  1091. });
  1092. }
  1093. getTreeViewTemplate(data, tempText, pivotValue, istreeexpand) {
  1094. let instance = this;
  1095. let html = "";
  1096. let finalchildTempText = "";
  1097. let ulClass, dNone, onClick, childtm, templatescript = "";
  1098. var templateTextScript = Handlebars.compile(tempText);
  1099. if (!istreeexpand)
  1100. dNone = 'd-none';
  1101. if (tempText.indexOf("parentPlusIcon_") > -1) {
  1102. ulClass = 'pl-30';
  1103. onClick = "Unibase.Platform.Analytics.Viewers.TemplateViewer.Instance().getChilds({{parentid}})";
  1104. }
  1105. else {
  1106. ulClass = '';
  1107. dNone = '';
  1108. }
  1109. let parentrecords = data.filter(function (col) {
  1110. return col.parentid == pivotValue;
  1111. });
  1112. for (var p = 0; p < parentrecords.length; p++) {
  1113. let childs = _children(parentrecords[p].childid);
  1114. if (childs != undefined && childs.length > 0) {
  1115. let childtemp = "<ul class='parentUl_" + parentrecords[p].parentid + "_" + parentrecords[p].childid + " " + dNone + " " + ulClass + "'>" + finalchildTempText + "</ul>";
  1116. let parenttempscript = templateTextScript(parentrecords[p]);
  1117. templatescript = parenttempscript.slice(0, parenttempscript.lastIndexOf("</li>")) + childtemp + "</li>";
  1118. templatescript = templatescript.replace("parentPlusIcon_" + parentrecords[p].parentid + "_" + parentrecords[p].childid + " d-none", "parentPlusIcon_" + parentrecords[p].parentid + "_" + parentrecords[p].childid + "");
  1119. }
  1120. else {
  1121. templatescript += templateTextScript(parentrecords[p]);
  1122. }
  1123. html += templatescript;
  1124. templatescript = "";
  1125. finalchildTempText = "";
  1126. instance.pivotChildRecords = [];
  1127. }
  1128. return html;
  1129. function _children(childid) {
  1130. let childrecords = instance.gettreeChildRecords(data, childid);
  1131. if (childrecords.length > 0) {
  1132. if (instance.pivotChildRecords.length == 0)
  1133. instance.pivotChildRecords = childrecords;
  1134. for (var c = 0; c < childrecords.length; c++) {
  1135. let subchilds = _children(childrecords[c].childid);
  1136. if (subchilds.length > 0) {
  1137. for (var s = 0; s < subchilds.length; s++) {
  1138. templatescript = "";
  1139. let s1 = instance.gettreeChildRecords(data, subchilds[s].childid);
  1140. if (s1.length == 0) {
  1141. templatescript += templateTextScript(subchilds[s]);
  1142. }
  1143. else {
  1144. let suboardinates = "";
  1145. if (childtm != "")
  1146. suboardinates = childtm;
  1147. else {
  1148. if (templatescript == "")
  1149. templatescript += templateTextScript(subchilds[s]);
  1150. suboardinates = templatescript;
  1151. }
  1152. childtm = "";
  1153. let childTemp = "<ul class='parentUl_" + childrecords[c].parentid + "_" + childrecords[c].childid + " " + ulClass + " " + dNone + "'> " + suboardinates + " < /ul>";
  1154. let tempscript = templateTextScript(subchilds[s]);
  1155. templatescript = tempscript.slice(0, tempscript.lastIndexOf("</li>")) + childTemp + "</li>";
  1156. templatescript = templatescript.replace("parentPlusIcon_" + childrecords[c].parentid + "_" + childrecords[c].childid + " d-none", "parentPlusIcon_" + childrecords[c].parentid + "_" + childrecords[c].childid + "");
  1157. childtm += templatescript;
  1158. templatescript = "";
  1159. }
  1160. childtm += templatescript;
  1161. }
  1162. }
  1163. else {
  1164. templatescript += templateTextScript(childrecords[c]);
  1165. }
  1166. let cr = instance.pivotChildRecords.filter(function (col) { return col.childid == childrecords[c].childid; });
  1167. if (cr.length > 0) {
  1168. let childs = instance.gettreeChildRecords(data, childrecords[c].childid);
  1169. if (childs.length > 0) {
  1170. let suboardinatesTemp, mainptemptext = "";
  1171. if (childtm != "") {
  1172. suboardinatesTemp = childtm;
  1173. }
  1174. else {
  1175. suboardinatesTemp = templatescript;
  1176. }
  1177. let pTemp = "<ul class ='parentUl_" + childrecords[c].parentid + "_" + childrecords[c].childid + " " + ulClass + " " + dNone + "'>" + suboardinatesTemp + "</ul>";
  1178. let parenttempscript = templateTextScript(childrecords[c]);
  1179. mainptemptext = parenttempscript.slice(0, parenttempscript.lastIndexOf("</li>")) + pTemp + "</li>";
  1180. mainptemptext = mainptemptext.replace("parentPlusIcon_" + childrecords[c].parentid + "_" + childrecords[c].childid + " d-none", "parentPlusIcon_" + childrecords[c].parentid + "_" + childrecords[c].childid + "");
  1181. finalchildTempText += mainptemptext;
  1182. }
  1183. else {
  1184. finalchildTempText += templatescript;
  1185. }
  1186. childtm = "";
  1187. templatescript = "";
  1188. }
  1189. }
  1190. }
  1191. return childrecords;
  1192. }
  1193. }
  1194. gettreeChildRecords(reportjsondata, childid) {
  1195. return reportjsondata.filter(function (col) {
  1196. return col.parentid == childid;
  1197. });
  1198. }
  1199. getTreeChilds(parentid, childid) {
  1200. let isdnone = $(".parentUl_" + parentid + "_" + childid).hasClass("d-none");
  1201. if (isdnone)
  1202. $(".parentUl_" + parentid + "_" + childid).removeClass("d-none");
  1203. else
  1204. $(".parentUl_" + parentid + "_" + childid).addClass("d-none");
  1205. }
  1206. static Instance() {
  1207. if (this.rv_instance === undefined) {
  1208. this.rv_instance = new Unibase.Platform.Analytics.Viewers.TemplateViewer();
  1209. }
  1210. return this.rv_instance;
  1211. }
  1212. }
  1213. Viewers.TemplateViewer = TemplateViewer;
  1214. })(Viewers = Analytics.Viewers || (Analytics.Viewers = {}));
  1215. })(Analytics = Platform.Analytics || (Platform.Analytics = {}));
  1216. })(Platform = Unibase.Platform || (Unibase.Platform = {}));
  1217. })(Unibase || (Unibase = {}));