Built files from Bizgaze WebServer
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

details.js 176KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039
  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 Components;
  17. (function (Components) {
  18. class Details extends Unibase.Platform.Core.BaseComponent {
  19. constructor() {
  20. super();
  21. this.model = [];
  22. this.jsindex = 0;
  23. this.htmlindex = 0;
  24. this.evalExecuted = 0;
  25. this._recordId = 0;
  26. this._installedAppId = 0;
  27. this.changestagedata = "";
  28. this.unibase_core_activeportletid = 0;
  29. this.unibase_ActiveInstalledAppId = 0;
  30. this.layoutIndex = Unibase.Themes.Compact.Components.Index.Instance().layoutIndex;
  31. this.detailsViewIndex = Unibase.Themes.Compact.Components.Index.Instance().detailsViewIndex;
  32. this.IsCustomDetailHeader = false;
  33. this.desktopMode = Unibase.Themes.Compact.Components.Index.Instance().desktopMode;
  34. this.mobileLMode = Unibase.Themes.Compact.Components.Index.Instance().mobileLMode;
  35. this.isSystemLock = false;
  36. this.isPortletModified = false;
  37. this.isDetailsUpdated = false;
  38. this.isPortletEdit = false;
  39. this.isDashboardWidgetDetail = false;
  40. var instance = this;
  41. var jsfiles = ["platform/portlets/managers/portletmanager.js", "platform/widgets/managers/widgetmanager.js", "/platform/apps/managers/stagemanager.js", "platform/apps/managers/appmanager.js"];
  42. }
  43. jsFiles() {
  44. return ["platform/bundle/index.details.min.js"];
  45. }
  46. cssFiles() {
  47. return [];
  48. }
  49. init() {
  50. }
  51. html(id, containerid) {
  52. var instance = this;
  53. this._containerId = containerid;
  54. var margin_padding = 20, hidden = 'd-flex';
  55. if (instance.IsCustomDetailHeader == true) {
  56. hidden = "d-none";
  57. }
  58. var html = `<div class="profile-cover-wrap overlay-wrap h-100 px-0 d-flex flex-column invisible" id="div_detail_profile">
  59. <div class="d-flex align-items-center p-relative mx-sm-20 mx-2 pa-0 h-80p flex-shrink-0 portlet-header-wrapper">
  60. <div id="div_message" class="details-err-msg"></div>
  61. <div class="portlet-detail-header d-flex justify-content-between align-items-center w-100 z-index-1" id="portletDetailHeader_${containerid}">
  62. <div class="d-flex check-mobile-mode align-items-center"><a href="javascript:void(0);" id="detail-close" class="detail-close d-none btn btn-icon btn-flush-biz-theme btn-rounded flush-soft-hover w-30p h-30p mr-10 text-dark" data-tooltip="true" title="Close"><span class="btn-icon-wrap"><i data-icon="l"></i></span></a>
  63. <div class="Mobile-mode">
  64. <div class="clear" id="div_App_DefaultWidget"></div>
  65. <div class="heading-display-name d-none"></div>
  66. <div class="div_details_stages d-sm-none mt-1 ml-35">
  67. <div class="d-flex">
  68. <select class="border pa-5 rounded-5 btn-outline-light font-weight-500 font-11 stage-change-select text-dark ${hidden} mw-150p text-truncate" id="stageChangeSelect_${containerid}" onchange="Unibase.Themes.Compact.Components.Details.Instance().mobileStageChange('${containerid}');"></select>
  69. <div class="div_details_lock d-none"><span data-toggle="tooltip" title="Locked"><i class="fa fa-lock text-danger"></i></span></div></div>
  70. </div>
  71. </div>
  72. </div>
  73. <div class="d-flex block-on-mobile"><div class="d-sm-block d-none"><div class="div_details_lock d-none"><span data-toggle="tooltip" title="Locked"><i class="fa fa-lock text-danger"></i></span></div></div><div class="div_details_stages d-none d-sm-block">
  74. <button class="border btn btn-outline-light font-weight-500 no-caret font-14 btn btnChangeStage mr-10 text-dark h-100 ${hidden} align-items-center mw-250p justify-content-center" data-toggle="dropdown"></button>
  75. <div class="layout-details-stages dropdown-menu dropdown-menu-right">
  76. </div></div>
  77. <div class="detail-config-place"></div>
  78. <div class="edit-screen-place">
  79. <div id="ModelPager" class="pagination custom-pagination pagination-rounded pull-left"></div></div>
  80. <div class="${hidden} Detail_Configurations_${containerid} pull-right">
  81. <div class="select div_configurationsetting"><a class="btn btn-outline-light border d-flex align-items-center biz-highlight-bg-color" data-toggle="dropdown">
  82. <span class="mr-1 d-none d-sm-block font-14">More</span><span class="fa fa-angle-down font-20"></a>
  83. <div id="DetailsProperties_${containerid}" class="dropdown-menu dropdown-menu-right shadow"></div>
  84. </div>
  85. </div>
  86. </div>
  87. </div>
  88. <div class="details-edit-header justify-content-between align-items-center w-100 d-none z-index-1" id="details-edit-header">
  89. <div class="d-flex details-edit-left">
  90. <a class="btn btn-outline-primary bg-white mr-10 create-btn btn_addportlt" id="AddPortlets" href="javascript:;" onclick="Unibase.Platform.Widgets.Components.Widget.Instance().renderAddPortletText(false,'${instance._installedAppId}');" data-isClicked="false">Create Tab</a><div class="d-none d-xl-block"><a class="btn btn-outline-primary bg-white create-btn mr-10 dashboardcreatewidgetbtn" href="javascript:;" id="AddWidget_btnCreateWidget" onclick="Unibase.Platform.Widgets.Components.Widget.Instance().createWidget('${instance._installedAppId}')">Create Widget</a></div>
  91. <div class="dropdown">
  92. <button aria-expanded="false" data-toggle="dropdown" class="btn btn-outline-primary bg-white mr-10 manage-portlet-btn dropdown-toggle" id="managePortletBtn" type="button">Manage <span class="portlet-title-span"><span class="caret"></span></button>
  93. <div role="menu" class="dropdown-menu">
  94. <a class="dropdown-item btnEdit_portlet" href="javascript:;" onclick="Unibase.Platform.Widgets.Components.Widget.Instance().renderAddPortletText(true,'${instance._installedAppId}');">Edit</a>
  95. <a class="dropdown-item btn_dltportlet" href="javascript:;" onclick="Unibase.Platform.Widgets.Components.Widget.Instance().DeletePortlet('${instance._installedAppId}');" >Delete</a>
  96. <a class="dropdown-item manage_pPermissions" href="javascript:;" onclick="Unibase.Platform.Widgets.Components.Widget.Instance().ShowPortletPermissions();">Permissions</a>
  97. <a class="dropdown-item btnExport_portlet" href="javascript:;" onclick="Unibase.Platform.Portlets.Components.Portlet.Instance().exportPortlet(${instance._installedAppId});" >Export</a>
  98. </div>
  99. <a class="btn btn-outline-primary bg-white mr-10 import-btn btn_importportlt" id="importPortlets" href="javascript:;" onclick="Unibase.Platform.Dashboards.Components.ManageDashboard.Instance().ImportDashBoard(0,'${containerid}');">Import</a>
  100. </div>
  101. </div>
  102. <div class="d-flex details-edit-right">
  103. <a class="btn btn-outline-danger detail-edit-close" href="javascript:;" onclick="Unibase.Platform.Widgets.Components.Widget.Instance().loadportlet();" id="detail-edit-close">Close</a>
  104. <a class="btn btn-primary ml-10" href="javascript:;" data-toggle="modal" data-target="#SaveEditDetailScreen" onclick="Unibase.Platform.Widgets.Components.Widget.Instance().confirmSave();" id="AddWidget_btnSelectWidget">Save</a>
  105. </div>
  106. </div>
  107. </div>
  108. <div class="bg-white rounded-4 mx-sm-20 mx-2" id="layout-detail-tabs-container"><div class="container-fluid">
  109. <ul class="nav nav-light nav-tabs nav-line layout-detail-tabs" role="tablist" id="layout-detail-tabs">
  110. <li class="nav-item tab-item detail-tab exclude-tab" style="display:none;"><a href="javascript:;" class="d-flex h-40p align-items-center nav-link">Hidden</a></li> <li class="nav-item tab-item hidden more-tab exclude-tab" id="layout-detail-lastTab"> <a class="d-flex h-40p align-items-center dropdown-toggle no-caret text-dark font-weight-600 font-16" data-toggle="dropdown" href="javascript:;">More<i class="ml-5 fa fa-angle-down"></i></a> <ul class="dropdown-menu pa-10 bg-white" data-toggle="dropdown" id="collapsed"></ul></li></ul></div></div><div class="add-widget-container mb-1 mt-25 mx-sm-20 mx-2 structureContent hidden" id="addWidgetContainer"><a href="javascript:void(0)" title="Click here to add widget" class="w-100 p-2 my-auto d-flex justify-content-center" data-toggle="modal" data-target="#dashboardWidgetModal" onclick=" Unibase.Platform.Widgets.Components._Widget.Instance().widgetsModal(${instance._installedAppId}, this);"><span><i class="la la-plus mr-2"></i>Add Widget</span></a></div><div class="detail-container-content-outer overflow-auto flex-grow-1 flex-basis-0 pt-sm-20 pt-2"><div data-simplebar class="simple-scroll-bar scrollable tab-content biz-detail-page-view mt-0 pa-0 pb-sm-15"> <div class="detail-container-content mx-sm-20 mx-2"><div class="tab-pane show active"></div><div class="row mx-0 rounded bg-white mb-20 d-none" id="detailActionsWidget_${containerid}"><div id="div_App_DefaultWidgetSettings" class="col-sm-12 pr-0"> <ul class='px-15 align-items-center row div_detailconfigurations justify-content-between py-10 pl-3'><li class='biz-highlight-bg-color font-weight-500 cursor-pointer' id='div_App_DefaultWidgetSettings_toggle' onclick='Unibase.Themes.Compact.Components.Details.Instance().div_App_DefaultWidgetSettings_toggle(event)'><span class='align-items-center d-flex'><i class='fa fa-angle-down div_App_DefaultWidgetSettings_toggle_down' id="div_App_DefaultWidgetSettings_angledown"></i><span class='pl-1 biz-highlight-bg-color'>Actions</li><li><ul class='pl-20 pr-2 div_detailconfigurations_headerbtns d-flex flex-wrap align-items-center'></ul></li></ul></div> <div class="ApprovalTasks col-sm-12 pr-0" id="div_detail_notifications"></div></div><div class="row tab-container" id="tab-container" style="min-height:120px;"></div> </div></div></div><div class="bg-white EditPortlets d-none modal-footer pa-10"><a href="javascript:void(0);" id="detail-close" class="btn detail-close d-none btn-outline-danger btn-sm">Close</a><div class="mr-auto" id="div_Model_pagination"></div></div></div>`;
  111. return html;
  112. }
  113. load(id, containerid, callback) {
  114. var instance = this;
  115. Unibase.Platform.Helpers.FileCacheHelper.Instance().addCacheFiles(["platform/apps/managers/stagemanager.js", "platform/datasources/managers/doctypemanager.js", "tenants/themes/compact/components/notifications/TaskParams.js", "platform/communications/managers/tasks/taskmanager.js", "platform/apps/components/stages/stagereason.js", "platform/apps/managers/interfaces/iappmanager.js", "platform/forms/managers/interfaces/iformmanager.js", "platform/permission/managers/interfaces/ipermissionmanager.js", "platform/dashboards/components/managedashboards.js", "platform/dashboards/components/import.js"]);
  116. Unibase.Themes.Providers.DetailHelper.isListStages = false;
  117. Unibase.Themes.Providers.Detail_Settings.Instance().isListStages = false;
  118. instance.lastContinerId = "";
  119. instance.lastReportInstance = null;
  120. instance.isDetailsUpdated = false;
  121. Compact.CollapsedTabs.Instance().autoCollapse($("#" + containerid).find("#layout-detail-tabs"));
  122. instance.portletmanager = Unibase.Platform.Portlets.Managers.PortletManager.Instance();
  123. instance.widgetmanager = Unibase.Platform.Widgets.Managers.WidgetManager.Instance();
  124. instance.stagemanager = Unibase.Platform.Apps.Managers.StageManager.Instance();
  125. instance.appmanager = Unibase.Platform.Apps.Managers.AppManager.Instance();
  126. instance.doctypemanager = Unibase.Platform.DataSources.Managers.DocTypeManager.Instance();
  127. $("#" + containerid).find(".detail-close").click(function () {
  128. if (!Unibase.Themes.Compact.Components.Index.Instance().isIframeObj.isListDetailPage) {
  129. window.parent.postMessage('List-Details-page', '*');
  130. }
  131. else {
  132. window.parent.postMessage('clickToBack', '*');
  133. }
  134. $('.txt_global_search').show();
  135. $('.search_icon').removeClass("hidden");
  136. $(this).removeClass("hidden");
  137. Unibase.Themes.Providers.DetailHelper.installedAppId = 0;
  138. Unibase.Themes.Providers.DetailHelper.recordId = 0;
  139. Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters = [];
  140. Unibase.Themes.Providers.Detail_Settings.Instance().RecordId = 0;
  141. var ModalContainers = Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds;
  142. let rv_instance = Unibase.Platform.Helpers.NavigationHelper.reportViewerInstance;
  143. for (var i = 0; i < rv_instance.length; i++) {
  144. if (rv_instance[i].parentcontainerid == ModalContainers[$.inArray(containerid, ModalContainers)]) {
  145. rv_instance.splice(i, 1);
  146. i--;
  147. }
  148. }
  149. ModalContainers.splice($.inArray(containerid, ModalContainers), 1);
  150. var ContainerId = ModalContainers[ModalContainers.length - 1];
  151. instance.lastContinerId = ContainerId;
  152. var DetailContainer = $("#" + ContainerId).find("#div_detail_profile");
  153. var FormContainer = $("#" + ContainerId).attr("class") == undefined ? "" : $("#" + ContainerId).attr("class");
  154. var IsListRefresh = Unibase.Platform.Helpers.NavigationHelper.IsListRefresh;
  155. IsListRefresh = instance.evaluateDefaultWidgetCallback("#" + containerid, true, IsListRefresh);
  156. if (DetailContainer.length != 0) {
  157. var installedappid = Unibase.Themes.Providers.Detail_Settings.Instance().DetailParameters["#" + ContainerId].InstalledAppId;
  158. Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters = Unibase.Themes.Providers.Detail_Settings.Instance().DetailParameters["#" + ContainerId].InputParameters;
  159. instance._installedAppId = installedappid;
  160. Unibase.Themes.Providers.DetailHelper.installedAppId = installedappid;
  161. instance.unibase_ActiveInstalledAppId = installedappid;
  162. var recordid = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + installedappid + "_recordid").Value);
  163. instance._recordId = recordid;
  164. Unibase.Themes.Providers.DetailHelper.recordId = recordid;
  165. instance._containerId = ContainerId;
  166. var portletid = Number(Unibase.Themes.Providers.Detail_Settings.Instance().DetailParameters["#" + ContainerId].ActivePortletId);
  167. if (isNaN(portletid)) {
  168. portletid = 0;
  169. }
  170. instance.unibase_core_activeportletid = portletid;
  171. if (IsListRefresh) {
  172. var detailInstance = Unibase.Themes.Compact.Components.Details.Instance();
  173. var panel = "#" + ContainerId;
  174. var obj = Themes.Compact.Components.Details.Instance();
  175. obj._recordId = recordid;
  176. obj._installedAppId = installedappid;
  177. Unibase.Themes.Providers.DetailHelper.recordId = recordid;
  178. detailInstance.loadAppDefaultWidget(obj, panel, ContainerId, function () {
  179. Unibase.Themes.Compact.Components.Details.Instance().loadWidgets(installedappid, portletid, panel);
  180. });
  181. }
  182. else {
  183. $("#" + ContainerId).find(".tabid-" + portletid).find(".nav-link").addClass("active");
  184. }
  185. }
  186. else if (FormContainer.includes("_bizgaze_popup_container")) {
  187. $("#" + ContainerId).modal("show");
  188. }
  189. else {
  190. Unibase.Platform.Helpers.NavigationHelper.IsListRefresh = false;
  191. var installedappid = Unibase.Themes.Providers.Detail_Settings.Instance().DetailParameters["#" + containerid].InstalledAppId;
  192. $("#" + ContainerId).find('.txt_global_search').show();
  193. if (IsListRefresh) {
  194. Unibase.Themes.Compact.Components.List.Instance().isListRefresh = IsListRefresh;
  195. if (!instance.isDashboardWidgetDetail) {
  196. instance.navigationHelper.loadList(installedappid, null);
  197. }
  198. else {
  199. const portletid = +$("#hf_DashboardPortletId").val();
  200. Unibase.Themes.Compact.Components.Nav.Instance().loadDashboard(portletid, '');
  201. }
  202. }
  203. }
  204. instance.isDashboardWidgetDetail = false;
  205. var containerClass = $("#" + containerid).attr("class") == undefined ? "" : $("#" + containerid).attr("class");
  206. if (containerClass.includes("_bizgaze_popup_container")) {
  207. $("#" + containerid).modal("hide");
  208. $('#' + containerid).remove();
  209. }
  210. else {
  211. Unibase.Platform.Helpers.NavigationHelper.Instance().close(containerid, null);
  212. }
  213. });
  214. $('.db-setting-dp-item').addClass('d-none');
  215. if (isMobileApp()) {
  216. eval(`jquerySwipeHandler.handleSwipe(".detail-container-content-outer", [jquerySwipeHandler.SWIPE_LEFT, jquerySwipeHandler.SWIPE_RIGHT], function (direction) { console.log("swipe Diredction: ", direction);
  217. if(direction == 'SWIPE_LEFT' || direction == 'SWIPE_RIGHT'){
  218. Unibase.Themes.Compact.Components.Details.Instance().swipe(direction);
  219. }
  220. });`);
  221. }
  222. }
  223. resize1(containerid) {
  224. var panel = containerid;
  225. if (panel === "" || panel === undefined)
  226. panel = '_modal_bizgaze_edit_' + moment().unix();
  227. var deductHeight = 202;
  228. if ($(document).outerWidth() < 1200) {
  229. deductHeight = 266;
  230. $("#" + panel).find(".modal-body").addClass("px-0").removeClass("pa-15");
  231. }
  232. if (this.desktopMode && this.detailsViewIndex != 2 && (this.layoutIndex == 2 || this.layoutIndex == 3)) {
  233. deductHeight = 256;
  234. }
  235. $("#" + panel).find(".modal-body").height($(window).outerHeight() - deductHeight);
  236. }
  237. loadPortlets(obj) {
  238. var instance = this;
  239. let skelhtml = '<div class="skelton_loader biz-secondary-color px-20 position-absolute w-100 z-index-10">';
  240. skelhtml += Unibase.Themes.Compact.Components.Nav_Template.Instance().skelTonDetailsHDRPage();
  241. skelhtml += Unibase.Themes.Compact.Components.Nav_Template.Instance().skelTonDetailsbBDYPage();
  242. skelhtml += '</div>';
  243. $('#' + obj._containerId).find('#div_detail_profile').addClass('invisible').before(skelhtml);
  244. if (this.unibase_ActiveInstalledAppId != obj._installedAppId) {
  245. this.unibase_core_activeportletid = 0;
  246. this.unibase_ActiveInstalledAppId = obj._installedAppId;
  247. }
  248. var panel;
  249. if (Unibase.Platform.Helpers.NavigationHelper.Instance().getLastContainerId().includes('_viewall')) {
  250. panel = Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds[Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds.length - 2];
  251. }
  252. else {
  253. panel = "#" + instance._containerId;
  254. }
  255. var image_src = $("#hf_AppImage").val();
  256. if (image_src == '') {
  257. image_src = 'tenants/themes/compact/images/avatar_default.jpg';
  258. }
  259. $(panel).find("#bizgaze_AppImage").attr("src", 'image_src');
  260. var id1 = $("#hf_AppTitle").val();
  261. $(panel).find("#bizgaze_AppTitle").text('id1');
  262. var hiddenhtml = "<input type='hidden' id='hf_" + obj._installedAppId + "' value='" + obj._recordId + "'>";
  263. $(panel).find("#div_detail_notifications").attr("id", "div_detail_notifications_" + obj._recordId);
  264. instance.loadAppDefaultWidget(obj, panel, instance._containerId, function () {
  265. return __awaiter(this, void 0, void 0, function* () {
  266. if (instance.IsCustomDetailHeader != true) {
  267. instance.getPortlets(obj._installedAppId, panel);
  268. }
  269. yield instance.loadDefaultWidgets(obj._installedAppId, panel);
  270. yield instance.LoadApprovals(obj._recordId, obj._installedAppId);
  271. });
  272. });
  273. $(panel).find(".tab-addeditem").remove();
  274. }
  275. getPortlets(installedappid, panel) {
  276. var instance = this;
  277. var currentstageid = 0;
  278. var userinfo = Unibase.Platform.Membership.Infos.Identity.getCurrentUser();
  279. if (installedappid != null && installedappid != 0 && installedappid != undefined) {
  280. if (!userinfo.isAdmin && Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.
  281. find(x => x.Key == "hf_" + installedappid + "_stageid") != undefined) {
  282. currentstageid = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.
  283. find(x => x.Key == "hf_" + installedappid + "_stageid").Value);
  284. }
  285. instance.portletmanager.getPortletsByInstalledApp(installedappid, currentstageid).then(function (response) {
  286. var data = response.result;
  287. var html = "";
  288. var firstportletid = 0;
  289. var activePortletIndex = Unibase.Themes.Providers.Detail_Settings.Instance().ActivePortlets.findIndex(x => x.InstalledAppId == installedappid);
  290. if (activePortletIndex != -1) {
  291. firstportletid = Unibase.Themes.Providers.Detail_Settings.Instance().ActivePortlets[activePortletIndex].ActivePortletId;
  292. }
  293. if (data.length > 0) {
  294. for (var i = 0; i < data.length; i++) {
  295. var portletName = data[i].PortletName;
  296. var portletId = data[i].PortletId;
  297. if (firstportletid == 0) {
  298. firstportletid = portletId;
  299. }
  300. Details.Instance().unibase_core_activeportletid = firstportletid;
  301. html += '<li class="nav-item tab-item tab-pane tab-addeditem tabid-' + portletId + '" id="portletTab_' + portletId + '" value=' + portletId + '><a href="javascript:;" class="h-40p nav-link px-2 px-md-3 findportlets_' + portletId + '" onclick="Unibase.Themes.Compact.Components.Details.Instance().loadWidgets(' + installedappid + ',' + portletId + ',\'' + panel + '\')" data_isappstructenable="' + data[i].IsStructureEnabled + '">' +
  302. '<input type="hidden" id="hf_PortletId" data-portletId=' + portletId + ' value=' + portletId + '>' +
  303. '<span class="portletName text-dark font-weight-600 font-16" id="portletName_' + portletId + '">' + portletName + '</span>' +
  304. '</a></li>';
  305. }
  306. $(panel).find("#layout-detail-tabs").find('.detail-tab:first').prevAll().remove();
  307. $(panel).find("#layout-detail-tabs").find('.detail-tab:first').before(html);
  308. $(panel).find(".tab-addeditem").removeClass("active");
  309. $(panel).find(".tabid-" + firstportletid).find(".nav-link").addClass("active");
  310. $("#managePortletBtn .portlet-title-span").text($(`#portletName_${firstportletid}`).text());
  311. if (Unibase.Themes.Providers.Detail_Settings.Instance().DetailParameters["" + panel] == undefined) {
  312. Unibase.Themes.Providers.Detail_Settings.Instance().DetailParameters["" + panel] = [];
  313. }
  314. Unibase.Themes.Providers.Detail_Settings.Instance().DetailParameters[panel]["ActivePortletId"] = firstportletid;
  315. Unibase.Themes.Providers.Detail_Settings.Instance().DetailParameters.length++;
  316. if ($(window).width() > 768) {
  317. Unibase.Themes.Compact.CollapsedTabs.Instance().autoCollapse($(panel).find("#layout-detail-tabs"));
  318. }
  319. else {
  320. let activePortletEl = $(panel).find(`.tabid-${firstportletid} .nav-link.active`);
  321. activePortletEl.parents('#layout-detail-tabs').scrollLeft(activePortletEl.parent().position().left - 30);
  322. }
  323. $(panel).find(".tabid-" + firstportletid).find(".collapsedPortlet").addClass("nav-link active");
  324. }
  325. else {
  326. $(panel).find('#divAddWidgetAndPortletMenu').css('display', 'none');
  327. $(panel).find('#divMsgAddWidgetAndPortletMenu').css('display', 'block');
  328. }
  329. }, null);
  330. }
  331. }
  332. loadAppDefaultWidget(obj, panel, containerId, callback) {
  333. var instance = this;
  334. var configurations = [];
  335. var detailsettingjs = [];
  336. var settingurl = [];
  337. instance.fileCacheHelper.loadJsFile("platform/core/helpers/token/tokenhelper.js", null);
  338. let lastContainerId = instance.navigationHelper.getLastContainerId();
  339. $('.div_detailconfigurations_headerbtns').last().html('');
  340. var userinfo = Unibase.Platform.Membership.Infos.Identity.getCurrentUser();
  341. var fromDate = "";
  342. var toDate = "";
  343. var cf_fromDate = Unibase.Platform.Helpers.NavigationHelper.commonFilter_FromDate;
  344. var cf_toDate = Unibase.Platform.Helpers.NavigationHelper.commonFilter_ToDate;
  345. if (cf_fromDate != null && cf_toDate != null) {
  346. fromDate = cf_fromDate.toString();
  347. toDate = cf_toDate.toString();
  348. }
  349. else {
  350. fromDate = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocalDateformat(new Date(Unibase.Platform.Helpers.DateTimeHelper.Instance().currentDate()), "YYYY/MM/DD");
  351. toDate = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocalDateformat(new Date(Unibase.Platform.Helpers.DateTimeHelper.Instance().currentDate()), "YYYY/MM/DD");
  352. }
  353. var expObj = {
  354. InstalledAppId: obj._installedAppId,
  355. RecordId: obj._recordId,
  356. FromDate: fromDate,
  357. ToDate: toDate
  358. };
  359. Unibase.Platform.Widgets.Managers.WidgetManager.Instance().getDefaultWidget(expObj).then(function (response) {
  360. if (response.status != Unibase.Data.Status.Error) {
  361. if (response.result != null) {
  362. var data = response.result.Data;
  363. instance.isSystemLock = response.result._IsSystemLock;
  364. var templatetext = response.result.TemplateText;
  365. var stages = response.result.Stages;
  366. var installedappinfo = response.result.InstalledApp;
  367. var statusinfo = response.result.Status;
  368. var permission = response.result.EditScreenPermission;
  369. if (data != null && data != "") {
  370. var model = "";
  371. if (data != null) {
  372. model = JSON.parse(data);
  373. }
  374. var info = Object.keys(model[0]).map(function (key) {
  375. return [key, model[0][key]];
  376. });
  377. Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters = [];
  378. for (var i = 0; i < info.length; i++) {
  379. Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.push({
  380. Key: "hf_" + obj._installedAppId + "_" + info[i][0].toLowerCase(),
  381. Value: info[i][1],
  382. DataType: typeof (info[i][1])
  383. });
  384. }
  385. Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.push({
  386. Key: "hf_" + obj._installedAppId + "_" + "recordid",
  387. Value: obj._recordId.toString(),
  388. DataType: typeof (obj._recordId)
  389. });
  390. if (Unibase.Themes.Providers.Detail_Settings.Instance().DetailParameters["" + panel] == undefined) {
  391. Unibase.Themes.Providers.Detail_Settings.Instance().DetailParameters["" + panel] = [];
  392. Unibase.Themes.Providers.Detail_Settings.Instance().DetailParameters.length++;
  393. }
  394. Unibase.Themes.Providers.Detail_Settings.Instance().DetailParameters[panel]["InputParameters"] = Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters;
  395. Unibase.Themes.Providers.Detail_Settings.Instance().DetailParameters[panel]["InstalledAppId"] = obj._installedAppId;
  396. if (templatetext != null) {
  397. var html = Unibase.Core.Helpers.TokenHelper.Instance().replace(response.result.TemplateText, model[0]);
  398. var icon = '';
  399. if (response.result.AppConfigurations.length > 0) {
  400. var confightml = "";
  401. var appconfigurations = response.result.AppConfigurations;
  402. for (var i = 0; i < appconfigurations.length; i++) {
  403. if (appconfigurations[i].AppConfigType == Unibase.Platform.Apps.Enums.AppConfigeType.DetailSetting) {
  404. var onclickurl = "";
  405. var settingname = appconfigurations[i].SettingName;
  406. var description = appconfigurations[i].Description;
  407. var sname = settingname.replace(/ /g, '');
  408. if (description != null && description != "" && description != undefined) {
  409. description = appconfigurations[i].Description;
  410. }
  411. else {
  412. description = appconfigurations[i].SettingName;
  413. }
  414. if (appconfigurations[i].JsFunction != null && appconfigurations[i].JsFunction != "") {
  415. detailsettingjs.push(appconfigurations[i].JsFunction);
  416. }
  417. ;
  418. if (appconfigurations[i].SettingUrl != null && appconfigurations[i].SettingUrl != "") {
  419. settingurl.push(appconfigurations[i].SettingUrl);
  420. }
  421. icon = appconfigurations[i].Icon;
  422. if (appconfigurations[i].SettingUrlType == Unibase.Platform.Apps.Enums.SettingUrlType.Form && appconfigurations[i].AppConfigType == Unibase.Platform.Apps.Enums.AppConfigeType.DetailSetting) {
  423. onclickurl = "onclick='Unibase.Platform.Helpers.NavigationHelper.Instance().loadDetailSettingForm(" + appconfigurations[i].FormId + ", " + obj._recordId + ", " + appconfigurations[i].AppConfigurationId + ")'";
  424. }
  425. if (appconfigurations[i].SettingUrlType == Unibase.Platform.Apps.Enums.SettingUrlType.JsFunction) {
  426. onclickurl = "";
  427. }
  428. if (appconfigurations[i].Icon != null && appconfigurations[i].Icon != "null" && appconfigurations[i].Icon != "") {
  429. confightml += '<li class="mt-5 mb-5 mr-2 detail-setting-item li_DetailSetting_' + obj._installedAppId + '_' + sname + '" id="li_DetailSetting_' + obj._installedAppId + '_' + sname + '"><a href="javascript:;" class="font-12 font-md-14 btn btn-sm detail-setting-btn';
  430. confightml += ' btn-outline-primary ';
  431. confightml += ' DetailSetting_' + obj._installedAppId + '_' + sname + '" id="DetailSetting_' + obj._installedAppId + '_' + sname + '" ' + onclickurl + '">' + '<span class="' + appconfigurations[i].Icon + ' line-height-0" > </span> ' + settingname + '</a></li>';
  432. }
  433. else {
  434. confightml += '<li class="mt-5 mb-5 mr-2 detail-setting-item li_DetailSetting_' + obj._installedAppId + '_' + sname + '" id="li_DetailSetting_' + obj._installedAppId + '_' + sname + '"><a href="javascript:;" class="font-12 font-md-14 btn btn-sm detail-setting-btn';
  435. confightml += ' btn-outline-primary ';
  436. confightml += ' DetailSetting_' + obj._installedAppId + '_' + sname + '" id="DetailSetting_' + obj._installedAppId + '_' + sname + '" ' + onclickurl + '">' + settingname + '</a></li>';
  437. }
  438. }
  439. else {
  440. if (!Unibase.Platform.Membership.Infos.Identity.getCurrentUser().isAdmin) {
  441. appconfigurations[i].IsOwner = response.result.IsOwner;
  442. appconfigurations[i].IsManager = response.result.IsManager;
  443. }
  444. configurations.push(appconfigurations[i]);
  445. }
  446. }
  447. }
  448. $(`#${lastContainerId}`).find('.div_detailconfigurations_headerbtns').html('').append(confightml);
  449. if ($(`#${lastContainerId}`).find('.div_detailconfigurations_headerbtns li').length > 0 || $(`#${lastContainerId}`).find('#div_detail_notification_list .task').length > 0) {
  450. $(`#detailActionsWidget_${lastContainerId}`).removeClass('d-none');
  451. }
  452. else {
  453. $(`#detailActionsWidget_${lastContainerId}`).addClass('d-none');
  454. }
  455. $('.detail-close').removeClass('d-none');
  456. if (obj._detailsHeader != true) {
  457. $(panel).find("#div_App_DefaultWidget").html(html);
  458. }
  459. else {
  460. $(panel).find(".app_defaultwidget").addClass("hidden");
  461. $(panel).find("#div_App_DefaultWidget").html(html);
  462. instance.evaluateDefaultWidgetCallback(panel, false, false);
  463. }
  464. instance.loadHeaderAvatar(panel);
  465. instance.toggleAppDefaultWidget(panel);
  466. }
  467. }
  468. }
  469. if (settingurl.length > 0 && detailsettingjs.length > 0) {
  470. instance.fileCacheHelper.loadJsFiles(settingurl, function (resp) {
  471. for (var i = 0; i < detailsettingjs.length; i++) {
  472. eval(detailsettingjs[i]);
  473. }
  474. });
  475. }
  476. if (callback != null)
  477. callback();
  478. if (configurations.length > 0) {
  479. instance.loadAppConfigurations(configurations, containerId);
  480. }
  481. else {
  482. let checkEditsScreen = $("#DetailsProperties_" + containerId).find(".editscreen_view").length;
  483. if (checkEditsScreen == 0) {
  484. $("#DetailsProperties_" + containerId).append('<a href="javascript::" id="editscreen" class="dropdown-item editscreen_view" onclick="Unibase.Themes.Compact.Components.Details.Instance().addWidget();">Edit Screen</a>');
  485. }
  486. if (!userinfo.isAdmin) {
  487. $("#DetailsProperties_" + containerId).find("#editscreen").addClass('hidden');
  488. $(".div_configurationsetting").addClass('hidden');
  489. }
  490. }
  491. let isStageOrStatusPresent = false;
  492. if (stages != null && stages.length > 0) {
  493. $(".div_details_stages").removeClass('hidden');
  494. instance.loadStages(stages, obj._installedAppId, panel);
  495. isStageOrStatusPresent = true;
  496. instance.toggleStagesOnMobileScroll(panel);
  497. }
  498. if (statusinfo != null || statusinfo != undefined) {
  499. statusinfo = Object.keys(statusinfo).map(function (key) {
  500. return [key, statusinfo[key]];
  501. });
  502. if (statusinfo.length > 0) {
  503. instance.loadRowStatusList(panel, statusinfo);
  504. isStageOrStatusPresent = true;
  505. instance.toggleStagesOnMobileScroll(panel);
  506. }
  507. if (($(".btnChangeStage").contents().length) == 0) {
  508. $(".div_details_stages").removeClass('d-none d-sm-block');
  509. $(".div_details_stages").addClass('hidden');
  510. $(".btnstagemobileview").addClass('hidden').removeClass("d-flex");
  511. }
  512. }
  513. if (!installedappinfo.IsDynamic) {
  514. $(".div_details_stages").removeClass('d-none d-sm-block');
  515. }
  516. if (instance.isSystemLock) {
  517. $(".div_details_lock").removeClass("d-none");
  518. }
  519. }
  520. else {
  521. let VisibleContainerId = instance.navigationHelper.getLastContainerId();
  522. $('#' + VisibleContainerId).find('#div_message').addClass('w-95 ml-35 mt-2');
  523. $('#' + VisibleContainerId).find('#detail-close').removeClass('d-none');
  524. $('#' + VisibleContainerId).find('.block-on-mobile').removeClass('d-flex').addClass('d-none');
  525. instance.navigationHelper.hideLoading();
  526. MessageHelper.Instance().showError(response.message, 'div_message', VisibleContainerId);
  527. $('#' + VisibleContainerId).find('#detail-close').off('click').on('click', function () {
  528. if ($(`#${VisibleContainerId}`).hasClass('_bizgaze_popup_container')) {
  529. instance.navigationHelper.closePopUp();
  530. }
  531. else {
  532. Unibase.Platform.Helpers.NavigationHelper.Instance().close(VisibleContainerId, null);
  533. }
  534. });
  535. }
  536. });
  537. }
  538. div_App_DefaultWidgetSettings_toggle(e) {
  539. if ($(e.currentTarget).find('#div_App_DefaultWidgetSettings_angledown').hasClass('div_App_DefaultWidgetSettings_toggle_down')) {
  540. $(e.currentTarget).find('#div_App_DefaultWidgetSettings_angledown').removeClass('div_App_DefaultWidgetSettings_toggle_down').addClass('div_App_DefaultWidgetSettings_toggle_right');
  541. }
  542. else {
  543. $(e.currentTarget).find('#div_App_DefaultWidgetSettings_angledown').removeClass('div_App_DefaultWidgetSettings_toggle_right').addClass('div_App_DefaultWidgetSettings_toggle_down');
  544. }
  545. $(e.currentTarget).parents('.detail-container-content').find('.ApprovalTasks').toggleClass('hidden');
  546. $('.ActionsApprovalError').toggleClass('hidden');
  547. }
  548. updateToOldStageIdInMobileMode(installedappid, inputParam) {
  549. const instance = this;
  550. if (!instance.mobileLMode) {
  551. const oldId = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == `hf_${installedappid}_${inputParam}`).Value);
  552. const containerId = instance.navigationHelper.getLastContainerId();
  553. $(`#${containerId}`).find('.stage-change-select').val(oldId);
  554. }
  555. }
  556. loadAppConfigurations(Configurations, containerid) {
  557. var instance = this;
  558. var filecachehelper = this.fileCacheHelper;
  559. var html = "";
  560. var updatehtml = "";
  561. var recordid = Unibase.Themes.Providers.DetailHelper.recordId;
  562. var installedappid = Unibase.Themes.Providers.DetailHelper.installedAppId;
  563. var userinfo = Unibase.Platform.Membership.Infos.Identity.getCurrentUser();
  564. var detailConfigjs = [];
  565. var detailSettingUrl = [];
  566. let VisibleContainerId = Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds[Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds.length - 1];
  567. $("#DetailsProperties_" + containerid).empty();
  568. if ($(".Detail_Configurations_" + containerid).find(".update").length > 0) {
  569. $(".Detail_Configurations_" + containerid).find(".update").empty();
  570. }
  571. let checkEditsScreen = $("#DetailsProperties_" + containerid).find(".editscreen_view").length;
  572. if (checkEditsScreen == 0) {
  573. $("#DetailsProperties_" + containerid).append('<a href="javascript::" id="editscreen" class="dropdown-item editscreen_view" onclick="Unibase.Themes.Compact.Components.Details.Instance().addWidget();">Edit Screen</a>');
  574. }
  575. Unibase.Platform.Apps.Managers.AppManager.Instance().getInstallApp(recordid).then(function (appResponse) {
  576. for (let i = 0; i < Configurations.length; i++) {
  577. var response = Configurations[i];
  578. if (!userinfo.isAdmin) {
  579. var createdbyid = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + installedappid + "_createdby").Value);
  580. if (createdbyid == userinfo.userId) {
  581. response.IsOwner = true;
  582. }
  583. }
  584. if (instance.isSystemLock == false) {
  585. if (Number(response.SettingUrlType) == Unibase.Platform.Apps.Enums.SettingUrlType.Form && Number(response.AppConfigType) == Unibase.Platform.Apps.Enums.AppConfigeType.Details && response.Ungrouped == true) {
  586. var onclickhtml = "Unibase.Platform.Helpers.NavigationHelper.Instance().loadForm(" + response.FormId + ", " + recordid + ", " + response.AppConfigurationId + ")";
  587. if (userinfo.isAdmin || response.PermissionName == "Admin" || response.PermissionName == "Allow") {
  588. updatehtml += '<a class="btn btn-outline-light border d-flex align-items-center mr-10 biz-highlight-bg-color font-14" href = "javascript:;" onclick="' + onclickhtml + '" id = "btn_' + response.SettingName + '" > <span class="' + response.Icon + ' line-height-0"></span><span class="ml-1 d-none d-sm-block">Edit</span></a>';
  589. }
  590. else if (response.PermissionName == "Owner") {
  591. if (response.IsOwner) {
  592. updatehtml += '<a class="btn btn-outline-light border d-flex align-items-center mr-10 biz-highlight-bg-color font-14" href = "javascript:;" onclick="' + onclickhtml + '" id = "btn_' + response.SettingName + '" ><span class="' + response.Icon + ' line-height-0"></span><span class="ml-1 d-none d-sm-block">Edit</span> </a>';
  593. }
  594. }
  595. else if (response.PermissionName == "Manager") {
  596. if (response.IsManager || response.IsOwner) {
  597. updatehtml += '<a class="btn btn-outline-light border d-flex align-items-center mr-10 biz-highlight-bg-color font-14" href = "javascript:;" onclick="' + onclickhtml + '" id = "btn_' + response.SettingName + '" > <span class="' + response.Icon + ' line-height-0"></span><span class="ml-1 d-none d-sm-block">Edit</span></a>';
  598. }
  599. }
  600. if (response.JsFunction != "" && response.JsFunction != null) {
  601. detailConfigjs.push(response.JsFunction);
  602. }
  603. if (response.SettingUrl != "" && response.SettingUrl != null) {
  604. detailSettingUrl.push(response.SettingUrl);
  605. }
  606. }
  607. if (Number(response.SettingUrlType) == Unibase.Platform.Apps.Enums.SettingUrlType.JsFunction && Number(response.AppConfigType) == Unibase.Platform.Apps.Enums.AppConfigeType.Details && response.Ungrouped == true) {
  608. var jsfunction = response.JsFunction;
  609. filecachehelper.loadJsFile(response.SettingUrl == null ? "" : response.SettingUrl, function () { });
  610. if (userinfo.isAdmin || response.PermissionName == "Admin") {
  611. updatehtml += '<a class="btn btn-sm btn-outline-light border mr-2 ml-2 d-flex align-items-center" href = "javascript:;" onclick="' + jsfunction + '" id = "btn_' + response.SettingName + '" > <span class="' + response.Icon + ' font-10" > </span></a>';
  612. }
  613. else if (response.PermissionName == "Owner") {
  614. if (response.IsOwner) {
  615. updatehtml += '<a class="btn btn-sm btn-outline-light border mr-2 ml-2 d-flex align-items-center" href = "javascript:;" onclick="' + jsfunction + '" id = "btn_' + response.SettingName + '" > <span class="' + response.Icon + ' font-10" > </span></a>';
  616. }
  617. }
  618. else if (response.PermissionName == "Manager") {
  619. if (response.IsManager || response.IsOwner) {
  620. updatehtml += '<a class="btn btn-sm btn-outline-light border mr-2 ml-2 d-flex align-items-center" href = "javascript:;" onclick="' + jsfunction + '" id = "btn_' + response.SettingName + '" > <span class="' + response.Icon + ' font-10" > </span></a>';
  621. }
  622. }
  623. }
  624. if (Number(response.SettingUrlType) == Unibase.Platform.Apps.Enums.SettingUrlType.JsFunction && Number(response.AppConfigType) == Unibase.Platform.Apps.Enums.AppConfigeType.Details && response.Ungrouped == false) {
  625. var jsfunction = response.JsFunction;
  626. filecachehelper.loadJsFile(response.SettingUrl == null ? "" : response.SettingUrl, function () { });
  627. if (userinfo.isAdmin || response.PermissionName == "Admin") {
  628. html += "<a href='javascript:;' id='Setting_" + response.AppConfigurationId + "_" + response.SettingName + "' class='dropdown-item' onclick='" + jsfunction + "'>" + response.SettingName + "</a>";
  629. }
  630. else if (response.PermissionName == "Owner") {
  631. if (response.IsOwner) {
  632. html += "<a href='javascript:;' id='Setting_" + response.AppConfigurationId + "_" + response.SettingName + "' class='dropdown-item' onclick='" + jsfunction + "'>" + response.SettingName + "</a>";
  633. }
  634. }
  635. else if (response.PermissionName == "Manager") {
  636. if (response.IsManager || response.IsOwner) {
  637. html += "<a href='javascript:;' id='Setting_" + response.AppConfigurationId + "_" + response.SettingName + "' class='dropdown-item' onclick='" + jsfunction + "'>" + response.SettingName + "</a>";
  638. }
  639. }
  640. }
  641. if (Number(response.SettingUrlType) == Unibase.Platform.Apps.Enums.SettingUrlType.Form && Number(response.AppConfigType) == Unibase.Platform.Apps.Enums.AppConfigeType.Details && response.Ungrouped == false) {
  642. var onclickhtml = "Unibase.Platform.Helpers.NavigationHelper.Instance().loadForm(" + response.FormId + ", " + recordid + ", " + response.AppConfigurationId + ")";
  643. if (userinfo.isAdmin || response.PermissionName == "Admin" || response.PermissionName == "Allow") {
  644. html += "<a href='javascript:;' id='Setting_" + response.AppConfigurationId + "_" + response.SettingName + "' class='dropdown-item' onclick='" + onclickhtml + "'>" + response.SettingName + "</a>";
  645. }
  646. else if (response.PermissionName == "Owner") {
  647. if (response.IsOwner) {
  648. html += "<a href='javascript:;' id='Setting_" + response.AppConfigurationId + "_" + response.SettingName + "' class='dropdown-item' onclick='" + onclickhtml + "'>" + response.SettingName + "</a>";
  649. }
  650. }
  651. else if (response.PermissionName == "Manager") {
  652. if (response.IsManager || response.IsOwner) {
  653. html += "<a href='javascript:;' id='Setting_" + response.AppConfigurationId + "_" + response.SettingName + "' class='dropdown-item' onclick='" + onclickhtml + "'>" + response.SettingName + "</a>";
  654. }
  655. }
  656. }
  657. if (Number(response.SettingUrlType) == Unibase.Platform.Apps.Enums.SettingUrlType.Status && Number(response.AppConfigType) == Unibase.Platform.Apps.Enums.AppConfigeType.Details) {
  658. var jsfunction = response.JsFunction;
  659. filecachehelper.loadJsFile(response.SettingUrl == null ? "" : response.SettingUrl, function () { });
  660. var statusid = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + installedappid + "_statusid").Value);
  661. if (userinfo.isAdmin || response.PermissionName == "Admin") {
  662. if (statusid != undefined) {
  663. if (statusid != 0 && statusid != 1) {
  664. var onclickurl = 'Unibase.Themes.Compact.Components.Details.Instance().changeStatus(1,' + recordid + ')';
  665. html += "<a href='javascript:;' id='Setting_'" + response.AppConfigurationId + "_Activate' class='dropdown-item' onclick='" + onclickurl + "'>Activate</a>";
  666. }
  667. else {
  668. var onclickurl = 'Unibase.Themes.Compact.Components.Details.Instance().changeStatus(2,' + recordid + ')';
  669. html += "<a href='javascript:;' id='Setting_" + response.AppConfigurationId + "_" + response.SettingName + "' class='dropdown-item' onclick='" + onclickurl + "'>" + response.SettingName + "</a>";
  670. }
  671. }
  672. else {
  673. MessageHelper.Instance().showError("Please select statusid column in report", "div_message", VisibleContainerId);
  674. }
  675. }
  676. else if (response.PermissionName == "Owner") {
  677. if (response.IsOwner) {
  678. if (statusid != 0 && statusid != 1) {
  679. var onclickurl = 'Unibase.Themes.Compact.Components.Details.Instance().changeStatus(1,' + recordid + ')';
  680. html += "<a href='javascript:;' id='Setting_'" + response.AppConfigurationId + "_Activate' class='dropdown-item' onclick='" + onclickurl + "'>Activate</a>";
  681. }
  682. else {
  683. var onclickurl = 'Unibase.Themes.Compact.Components.Details.Instance().changeStatus(2,' + recordid + ')';
  684. html += "<a href='javascript:;' id='Setting_" + response.AppConfigurationId + "_" + response.SettingName + "' class='dropdown-item' onclick='" + onclickurl + "'>" + response.SettingName + "</a>";
  685. }
  686. }
  687. }
  688. else if (response.PermissionName == "Manager") {
  689. if (response.IsManager || response.IsOwner) {
  690. if (statusid != 0 && statusid != 1) {
  691. var onclickurl = 'Unibase.Themes.Compact.Components.Details.Instance().changeStatus(1,' + recordid + ')';
  692. html += "<a href='javascript:;' id='Setting_'" + response.AppConfigurationId + "_Activate' class='dropdown-item' onclick='" + onclickurl + "'>Activate</a>";
  693. }
  694. else {
  695. var onclickurl = 'Unibase.Themes.Compact.Components.Details.Instance().changeStatus(2,' + recordid + ')';
  696. html += "<a href='javascript:;' id='Setting_" + response.AppConfigurationId + "_" + response.SettingName + "' class='dropdown-item' onclick='" + onclickurl + "'>" + response.SettingName + "</a>";
  697. }
  698. }
  699. }
  700. }
  701. if (Number(response.SettingUrlType) == Unibase.Platform.Apps.Enums.SettingUrlType.JsFunction && Number(response.AppConfigType) == Unibase.Platform.Apps.Enums.AppConfigeType.Status) {
  702. var jsfunction = response.JsFunction;
  703. filecachehelper.loadJsFile(response.SettingUrl == null ? "" : response.SettingUrl, function () { });
  704. if (appResponse.result.StatusId == 1) {
  705. html += "<a href='javascript:;' id='Setting_" + response.AppConfigurationId + "_Uninstall' class='dropdown-item setting_status' onclick='" + jsfunction + "'>Uninstall</a>";
  706. }
  707. else {
  708. html += "<a href='javascript:;' id='Setting_" + response.AppConfigurationId + "_Install' class='dropdown-item setting_status' onclick='" + jsfunction + "'>Install</a>";
  709. }
  710. }
  711. }
  712. }
  713. if (html != "") {
  714. $("#DetailsProperties_" + containerid).find("#editscreen").before(html);
  715. }
  716. $(".Detail_Configurations_" + containerid).contents().not(".div_configurationsetting").remove();
  717. $(".Detail_Configurations_" + containerid).find(".div_configurationsetting").before(updatehtml);
  718. if (detailSettingUrl.length > 0) {
  719. instance.fileCacheHelper.loadJsFiles(detailSettingUrl, function (resp) {
  720. for (var i = 0; i < detailConfigjs.length; i++) {
  721. eval(detailConfigjs[i]);
  722. }
  723. });
  724. }
  725. if ($(window).width() < 576) {
  726. $("#DetailsProperties_" + containerid).find("#editscreen").remove();
  727. if ($('.div_configurationsetting').find("#DetailsProperties_" + containerid).children().length == 0) {
  728. $('.div_configurationsetting').addClass("d-none");
  729. }
  730. }
  731. if (!userinfo.isAdmin) {
  732. let detailsPropContainer = $("#DetailsProperties_" + containerid);
  733. detailsPropContainer.find("#editscreen").addClass('hidden');
  734. if (detailsPropContainer.children().length == 1) {
  735. if (!($(window).width() < 576)) {
  736. detailsPropContainer.parent().addClass('d-none');
  737. }
  738. if (detailsPropContainer.children().length == 0) {
  739. detailsPropContainer.closest('.div_configurationsetting').addClass('hidden');
  740. }
  741. }
  742. }
  743. });
  744. }
  745. loadRowStatusList(panel, statuslist) {
  746. const instance = this;
  747. var recordid = Unibase.Themes.Providers.DetailHelper.recordId;
  748. var installedappid = Unibase.Themes.Providers.DetailHelper.installedAppId;
  749. $(panel).find(".layout-details-stages,.stage-change-select").empty();
  750. if (statuslist != null && statuslist.length > 0) {
  751. var currentstatusid = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + installedappid + "_statusid").Value);
  752. $(".div_details_stages").removeClass('hidden');
  753. $(panel).find(".stage-change-select").addClass('row-status-select');
  754. for (var i = 0; i < statuslist.length; i++) {
  755. var statusid = statuslist[i][1];
  756. var statusname = statuslist[i][0];
  757. var color;
  758. if (statusname == "Active") {
  759. color = "green";
  760. }
  761. else if (statusname == "InActive") {
  762. color = "orange";
  763. }
  764. else {
  765. color = "red";
  766. }
  767. let html = '';
  768. if (instance.mobileLMode) {
  769. html = '<a href="javascript:;" class="dropdown-item clear status-list-addedItem" id="StatusId_' + statusid + '" onclick="Unibase.Themes.Compact.Components.Details.Instance().changeStatus(' + statusid + ',' + recordid + ')"><i class="badge badge-' + color + ' badge-indicator mr-10"></i> ' + statusname + '</a>';
  770. $(panel).find(".layout-details-stages").append(html);
  771. }
  772. else {
  773. html = `<option value="${statusid}" data-recordid="${recordid}">${statusname}</option>`;
  774. $(panel).find(".stage-change-select").append(html);
  775. if ($(panel).find(".stage-change-select option").length == 0) {
  776. $(panel).find(".stage-change-select").addClass("d-none").removeClass("d-flex");
  777. }
  778. }
  779. if (statusid == currentstatusid) {
  780. $(panel).find(".btnChangeStage").html('<i class="fa fa-check-circle-o statuscircle pull-left mt-1"></i><span>' + statusname + '</span><i class="fa fa-angle-down pull-right mt-1 font-18"></i>');
  781. $('.btnChangeStage').removeAttr("style");
  782. $('.btnChangeStage').attr("style", "border:solid 1px " + color + "");
  783. $("#StatusId_" + statusid + "").addClass('disabled');
  784. $("#StatusId_" + statusid + "").removeAttr('onclick');
  785. $(panel).find(".stage-change-select").val(statusid);
  786. }
  787. }
  788. }
  789. }
  790. changeStatus(statusid, recordid) {
  791. var instance = this;
  792. var installedAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
  793. let VisibleContainerId = Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds[Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds.length - 1];
  794. var versionGuid = "";
  795. var index = Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.findIndex(x => x.Key == "hf_" + installedAppId + "_versionguid");
  796. if (index > 0) {
  797. versionGuid = Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + installedAppId + "_versionguid").Value;
  798. }
  799. else {
  800. MessageHelper.Instance().showError("Need to add versionguid column to your report", 'div_message', VisibleContainerId);
  801. return false;
  802. }
  803. if (statusid == 2)
  804. var msg = "Are you sure you want to De-Activate ?";
  805. else if (statusid == 1)
  806. var msg = "Are you sure you want to Activate ?";
  807. else
  808. var msg = "Are you sure you want to Delete ?";
  809. bootbox.confirm({
  810. message: msg,
  811. closeButton: false,
  812. buttons: {
  813. confirm: {
  814. label: 'Yes',
  815. className: 'btn-success'
  816. },
  817. cancel: {
  818. label: 'No',
  819. className: 'btn-defualt'
  820. }
  821. },
  822. callback: function (result) {
  823. if (result) {
  824. instance.appmanager.getInstallApp(installedAppId).then(function (appresponse) {
  825. if (appresponse.result != null) {
  826. var doctypeid = appresponse.result.DefaultDocTypeId;
  827. if (doctypeid != 0 && doctypeid != undefined) {
  828. instance.appmanager.saveStatus(statusid, doctypeid, recordid, versionGuid).then(function (statusresponse) {
  829. Unibase.Platform.Helpers.NavigationHelper.IsListRefresh = true;
  830. if (statusresponse.status == Unibase.Data.Status.Error) {
  831. MessageHelper.Instance().showError(appresponse.result.AppTitle + " " + statusresponse.message, "div_message", VisibleContainerId);
  832. instance.updateToOldStageIdInMobileMode(installedAppId, 'statusid');
  833. }
  834. else {
  835. MessageHelper.Instance().showSuccess(appresponse.result.AppTitle + " " + statusresponse.message, "div_message");
  836. var obj = Unibase.Themes.Compact.Components.Details.Instance();
  837. obj._recordId = Unibase.Themes.Compact.Components.Details.Instance()._recordId;
  838. obj._installedAppId = Unibase.Themes.Compact.Components.Details.Instance()._installedAppId;
  839. instance.loadPortlets(obj);
  840. Unibase.Platform.Helpers.NavigationHelper.IsListRefresh = true;
  841. instance.isDetailsUpdated = true;
  842. }
  843. });
  844. }
  845. else {
  846. MessageHelper.Instance().showError("Please Select Doctype", "div_message", VisibleContainerId);
  847. }
  848. }
  849. });
  850. }
  851. else {
  852. instance.updateToOldStageIdInMobileMode(installedAppId, 'statusid');
  853. }
  854. }
  855. });
  856. }
  857. loadStages(response, InstalledAppId, panel) {
  858. var instance = this;
  859. Details.Instance().changestagedata = "";
  860. var html = "";
  861. let shortcodes = [];
  862. var userinfo = Unibase.Platform.Membership.Infos.Identity.getCurrentUser();
  863. $(panel).find(".layout-details-stages,.stage-change-select").empty();
  864. if (response != null && response.length > 0) {
  865. $(panel).find(".layout-details-stages").find(".content").html(html);
  866. $(panel).find(".list-group-stages").html('');
  867. var currentstageid = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + InstalledAppId + "_stageid").Value);
  868. let currentstageindex = 0;
  869. let disableStages = "";
  870. for (var i = 0; i < response.length; i++) {
  871. shortcodes.push(response[i].ShortCode);
  872. if (response[i].StageId == currentstageid) {
  873. $(panel).find(".btnChangeStage").html('<i class="fa fa-check-circle-o statuscircle pull-left "></i> <span class="text-truncate">' + response[i].StageName + '</span><i class="fa fa-angle-down pull-right font-16"></i>');
  874. $(panel).find(".btnChangeStageshort").html('<i class="fa fa-check-circle-o statuscircle pull-left pt-1"></i><span class="text-truncate">' + response[i].ShortCode + '</span><i class="fa fa-angle-down pull-right pt-1"></i>');
  875. $(panel).find('.btnChangeStage').removeAttr("style");
  876. $(panel).find('.btnChangeStage .statuscircle').css({ "color": "" + response[i].ColorCode + "" });
  877. $(panel).find('.btnChangeStage').css({ "padding": "0px 15px" });
  878. $(panel).find('.btnChangeStageshort').removeAttr("style");
  879. $(panel).find('.btnChangeStageshort').css({ "border": "solid 1px #000000" });
  880. $(panel).find('.btnChangeStageshort .statuscircle').css({
  881. "color": "" + response[i].ColorCode + ""
  882. });
  883. }
  884. if (userinfo.isAdmin == true) {
  885. instance.loadstagedesign(panel, response[i], InstalledAppId);
  886. }
  887. else {
  888. if (response[i].ChangeAll && response[i].StageRoles == null) {
  889. instance.loadstagedesign(panel, response[i], InstalledAppId);
  890. }
  891. if (response[i].StageRoles != null && response[i].StageRoles.length != 0) {
  892. for (var j = 0; j < response[i].StageRoles.length; j++) {
  893. if (response[i].ChangeAll && (!response[i].StageRoles[j].ExcludeChangeRole)) {
  894. instance.loadstagedesign(panel, response[j], InstalledAppId);
  895. }
  896. }
  897. }
  898. if (response[i].ChangeAll == false && response[i].StageRoles != null && response[i].StageRoles.length > 0) {
  899. instance.loadstagedesign(panel, response[i], InstalledAppId);
  900. }
  901. }
  902. if (response[i].StageId == currentstageid) {
  903. $(panel).find(".layout-details-stages").find("#StageId_" + response[i].StageId).addClass("disabled");
  904. $(panel).find(".layout-details-stages").find("#StageId_" + response[i].StageId).removeAttr("onclick");
  905. let containerId = Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds[Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds.length - 1];
  906. const stageSelectEl = $(panel).find(".stage-change-select");
  907. const selectEl = $(`#stageChangeSelect_${containerId}`).find('option').length;
  908. if ($(".stage-change-select option[value='" + currentstageid + "']").length == 0) {
  909. stageSelectEl.append(`<option value="${response[i].StageId}" selected>${response[i].StageName}</option>`);
  910. }
  911. if (selectEl == 1) {
  912. $(`#stageChangeSelect_${containerId}`).attr('style', '-webkit-appearance: none;-moz-appearance: none;');
  913. }
  914. stageSelectEl.val(response[i].StageId);
  915. }
  916. }
  917. }
  918. if (($(".layout-details-stages").contents().length) == 0) {
  919. $(".layout-details-stages").addClass('d-none').siblings('.btnChangeStage').find('.fa-angle-down').addClass('d-none');
  920. }
  921. }
  922. loadstagedesign(panel, response, installedappid) {
  923. const instance = this;
  924. var currentstagename = "";
  925. if (response.IsDefault) {
  926. currentstagename = response.StageName;
  927. }
  928. var html = '';
  929. if (instance.mobileLMode) {
  930. html = '<a href="javascript:;" class="dropdown-item clear stages-list-addedItem" value=' + response.StageId + ' id="StageId_' + response.StageId + '" onclick="Unibase.Themes.Compact.Components.Details.Instance().change(' + response.StageId + ',' + installedappid + ');"><i class="badge badge-' + response.ColorCode + ' badge-indicator mr-10"></i> ' + response.StageName + '</a>';
  931. $(panel).find(".layout-details-stages").append(html);
  932. }
  933. else {
  934. html = `<option value="${response.StageId}" data-installedappid="${installedappid}">${response.StageName}</option>`;
  935. $(panel).find(".stage-change-select").append(html);
  936. if ($(panel).find(".stage-change-select option").length == 0) {
  937. $(panel).find(".stage-change-select").addClass("d-none").removeClass("d-flex");
  938. }
  939. }
  940. }
  941. change(StageId, InstalledAppId, id) {
  942. var instance = this;
  943. var stagemanager = Unibase.Platform.Apps.Managers.StageManager.Instance();
  944. var oldstageid;
  945. if (Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.length > 0) {
  946. oldstageid = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + InstalledAppId + "_stageid").Value);
  947. }
  948. else {
  949. let stagename;
  950. oldstageid = Number($('#' + id).attr('data-oldstageid'));
  951. if ($('#' + id + '[data-kanban2view="stagechange"][data-stagechange="true"]').length > 0) {
  952. stagename = $('#' + id + '[data-kanban2view="stagechange"][data-stagechange="true"]').attr('data-stagename');
  953. oldstageid = Number(StageId);
  954. StageId = Number($('#' + id + '[data-kanban2view="stagechange"][data-stagechange="true"]').parent().siblings().find('[data-kanban2view="stagechange"]').attr('data-oldstageid'));
  955. }
  956. else {
  957. stagename = $('#' + id).text();
  958. oldstageid = Number($('#' + id).attr('data-oldstageid'));
  959. }
  960. }
  961. stagemanager.getStage(oldstageid).then(function (oldstageresp) {
  962. stagemanager.getStage(StageId).then(function (stageresp) {
  963. if (stageresp.result.ReasonMandatory == 1) {
  964. var reasons = false;
  965. stagemanager.getStageReasons(StageId).then(function (response) {
  966. if (response.result.length > 0) {
  967. reasons = true;
  968. }
  969. if (stageresp.result.IsForward == true && stageresp.result.IsBackward == false && (stageresp.result.StageIndex > oldstageresp.result.StageIndex)) {
  970. Unibase.Platform.Apps.Components.StageReason.Instance().loaddesign(0, StageId, InstalledAppId, reasons, "Forward");
  971. }
  972. else if (stageresp.result.IsForward == false && stageresp.result.IsBackward == true && (oldstageresp.result.StageIndex > stageresp.result.StageIndex)) {
  973. Unibase.Platform.Apps.Components.StageReason.Instance().loaddesign(0, StageId, InstalledAppId, reasons, "Backward");
  974. }
  975. else if (stageresp.result.IsForward == true && stageresp.result.IsBackward == true) {
  976. Unibase.Platform.Apps.Components.StageReason.Instance().loaddesign(0, StageId, InstalledAppId, reasons, "Both");
  977. }
  978. else {
  979. Details.Instance().changeStage(StageId, InstalledAppId, 0, '', 0, id);
  980. }
  981. });
  982. }
  983. else {
  984. Details.Instance().changeStage(StageId, InstalledAppId, 0, '', 0, id);
  985. }
  986. });
  987. });
  988. }
  989. changeStage(StageId, InstalledAppId, reasonid = 0, reason = '', refstatusid = 0, id) {
  990. var instance = this, oldstageid, VersionGuid, recordid;
  991. let VisibleContainerId = Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds[Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds.length - 1];
  992. var userinfo = Unibase.Platform.Membership.Infos.Identity.getCurrentUser();
  993. if (Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.length > 0) {
  994. VersionGuid = Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + InstalledAppId + "_versionguid").Value;
  995. oldstageid = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + InstalledAppId + "_stageid").Value);
  996. recordid = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + InstalledAppId + "_recordid").Value);
  997. }
  998. else {
  999. if (id == undefined || id == null) {
  1000. id = $('[data-stage2event="true"][data-click2event="active"]').attr('id');
  1001. }
  1002. VersionGuid = $('#' + id).attr('data-versionguid');
  1003. oldstageid = Number($('#' + id).attr('data-oldstageid'));
  1004. recordid = Number($('#' + id).attr('data-record2id'));
  1005. }
  1006. if (oldstageid != 0 && recordid != 0 && InstalledAppId != 0) {
  1007. if (StageId != 0 || refstatusid != 0) {
  1008. Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.push({
  1009. Key: "hf_" + InstalledAppId + "_" + "newstageid",
  1010. Value: StageId.toString(),
  1011. DataType: typeof (StageId)
  1012. });
  1013. let postData = {
  1014. VersionGuid: VersionGuid,
  1015. StageId: Number(StageId),
  1016. InstalledAppId: Number(InstalledAppId),
  1017. OldStageId: Number(oldstageid),
  1018. RefStatusId: refstatusid
  1019. };
  1020. if (reasonid != 0 && reasonid != undefined) {
  1021. postData.StageReasonId = reasonid;
  1022. }
  1023. if (reason != null && reason != undefined && reason != "") {
  1024. postData.Description = reason;
  1025. }
  1026. Unibase.Themes.Compact.Components.Details.Instance().PostData = postData;
  1027. var FormId = 0;
  1028. if (StageId != 0) {
  1029. Unibase.Platform.Apps.Managers.StageManager.Instance().getStage(StageId).then(function (response) {
  1030. FormId = response.result.FormId;
  1031. if (FormId != 0) {
  1032. Unibase.Platform.Helpers.NavigationHelper.Instance().loadForm(FormId, recordid, 0, 0, function () {
  1033. Unibase.Themes.Compact.Components.Details.Instance().StageChange(Unibase.Themes.Compact.Components.Details.Instance().PostData, Unibase.Themes.Providers.DetailHelper.installedAppId);
  1034. });
  1035. }
  1036. else {
  1037. Unibase.Themes.Compact.Components.Details.Instance().StageChange(postData, InstalledAppId);
  1038. }
  1039. });
  1040. }
  1041. else {
  1042. Unibase.Themes.Compact.Components.Details.Instance().StageChange(postData, InstalledAppId);
  1043. }
  1044. }
  1045. else {
  1046. MessageHelper.Instance().showError("Newstageid or refstatusid should not be 0", "div_message", VisibleContainerId);
  1047. }
  1048. }
  1049. else {
  1050. MessageHelper.Instance().showError("Installedappid,Recordid,Oldstageid,Newstageid should not be 0", "div_message", VisibleContainerId);
  1051. }
  1052. }
  1053. StageChange(postData, InstalledAppId) {
  1054. var instance = this;
  1055. let VisibleContainerId = Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds[Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds.length - 1];
  1056. var stagemanager = Unibase.Platform.Apps.Managers.StageManager.Instance();
  1057. instance.navigationHelper.showLoading();
  1058. stagemanager.changeStage(postData).then(function (response) {
  1059. return __awaiter(this, void 0, void 0, function* () {
  1060. if (response.status == Unibase.Data.Status.Error) {
  1061. if ($('#' + VisibleContainerId).find('#div_message').length != 0) {
  1062. MessageHelper.Instance().showError(response.message, 'div_message', VisibleContainerId);
  1063. }
  1064. if (($('#' + VisibleContainerId).find('.portletwidget-item #div_ErrorMessage').length == 0) && ($('#' + VisibleContainerId).find('#div_ErrorMessage').length != 0)) {
  1065. MessageHelper.Instance().showError(response.message, 'div_ErrorMessage', VisibleContainerId);
  1066. }
  1067. instance.updateToOldStageIdInMobileMode(InstalledAppId, 'stageid');
  1068. }
  1069. else {
  1070. MessageHelper.Instance().showSuccess(response.message, '');
  1071. var newstageid = response.result.StageId.toString();
  1072. if (Unibase.Themes.Providers.DetailHelper.installedAppId != 0) {
  1073. Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == 'hf_' + InstalledAppId + '_stageid').Value = newstageid;
  1074. var obj = Unibase.Themes.Compact.Components.Details.Instance();
  1075. obj._recordId = Unibase.Themes.Compact.Components.Details.Instance()._recordId;
  1076. obj._installedAppId = Unibase.Themes.Compact.Components.Details.Instance()._installedAppId;
  1077. instance.loadPortlets(obj);
  1078. Unibase.Platform.Helpers.NavigationHelper.IsListRefresh = true;
  1079. instance.isDetailsUpdated = true;
  1080. }
  1081. else {
  1082. Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.pop();
  1083. let fitername = $(`#filters-list${VisibleContainerId} .filter-item.active`).attr('data-filtername');
  1084. $(`#filters-list${VisibleContainerId} .filter-item[data-filtername="${fitername}"] a`).click();
  1085. }
  1086. }
  1087. instance.navigationHelper.hideLoading();
  1088. });
  1089. });
  1090. }
  1091. mobileStageChange(containerId) {
  1092. const instance = this;
  1093. const selectEl = $(`#stageChangeSelect_${containerId}`);
  1094. if (selectEl.hasClass('row-status-select')) {
  1095. const statusId = +selectEl.val();
  1096. const recordId = +selectEl.find('option:selected').attr('data-recordid');
  1097. instance.changeStatus(statusId, recordId);
  1098. }
  1099. else {
  1100. const stageId = +selectEl.val();
  1101. const installedAppId = +selectEl.find('option:selected').attr('data-installedappid');
  1102. instance.change(stageId, installedAppId);
  1103. }
  1104. }
  1105. loadDefaultWidgets(InstalledAppId, panel) {
  1106. return __awaiter(this, void 0, void 0, function* () {
  1107. var instance = this;
  1108. var currentstageid = 0;
  1109. var userinfo = Unibase.Platform.Membership.Infos.Identity.getCurrentUser();
  1110. var detailSettingInstance = Unibase.Themes.Providers.Detail_Settings.Instance();
  1111. if (!userinfo.isAdmin && detailSettingInstance.InputParameters.
  1112. find(x => x.Key == "hf_" + InstalledAppId + "_stageid") != undefined) {
  1113. currentstageid = Number(detailSettingInstance.InputParameters.
  1114. find(x => x.Key == "hf_" + InstalledAppId + "_stageid").Value);
  1115. }
  1116. var activeportletid;
  1117. let ActivePortletIndex = detailSettingInstance.ActivePortlets.findIndex(x => x.InstalledAppId == InstalledAppId);
  1118. if (ActivePortletIndex != -1) {
  1119. activeportletid = detailSettingInstance.ActivePortlets[ActivePortletIndex].ActivePortletId;
  1120. }
  1121. else {
  1122. activeportletid = 0;
  1123. }
  1124. yield this.getportletlayout(InstalledAppId, activeportletid, panel);
  1125. if ($(panel).find('#tab-container').hasClass('ui-sortable') && (Unibase.Themes.Compact.Components.Index.Instance().isAppStructureEnable)) {
  1126. Unibase.Platform.Widgets.Components.Widget.Instance().EditScreen(InstalledAppId);
  1127. }
  1128. });
  1129. }
  1130. loadWidgets(installedappid, portletid, panel) {
  1131. if ($(panel).find('#details-edit-header').not('.d-none').length != 0) {
  1132. $(panel).find('#details-edit-header').find('.portlet-title-span').text($(panel).find('#portletName_' + portletid).text());
  1133. }
  1134. var instance = this;
  1135. let isAppStructure = Unibase.Themes.Compact.Components.Index.Instance().isAppStructureEnable;
  1136. if (instance.isPortletModified) {
  1137. if ((isAppStructure == true && instance.isAppStructEnable == true)) {
  1138. instance.savedChanges(installedappid, portletid, panel);
  1139. }
  1140. else {
  1141. instance.confirmPortletChangesModal(installedappid, portletid, panel);
  1142. }
  1143. }
  1144. else {
  1145. $(panel).find('.tab-container').empty();
  1146. this.unibase_core_activeportletid = portletid;
  1147. var currentstageid = 0;
  1148. var userinfo = Unibase.Platform.Membership.Infos.Identity.getCurrentUser();
  1149. if (!userinfo.isAdmin && Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.
  1150. find(x => x.Key == "hf_" + installedappid + "_stageid") != undefined) {
  1151. currentstageid = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.
  1152. find(x => x.Key == "hf_" + installedappid + "_stageid").Value);
  1153. }
  1154. if (portletid != 0) {
  1155. this.unibase_core_activeportletid = portletid;
  1156. this.reloadWidgetReport(panel);
  1157. let containerId = Unibase.Platform.Helpers.NavigationHelper.Instance().getLastContainerId();
  1158. try {
  1159. Unibase.Themes.Providers.Detail_Settings.Instance().DetailParameters[panel]["ActivePortletId"] = portletid;
  1160. }
  1161. catch (_a) {
  1162. if (containerId.includes('_viewall')) {
  1163. containerId = Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds[Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds.length - 2];
  1164. if (Unibase.Themes.Providers.Detail_Settings.Instance().DetailParameters[containerId] != undefined) {
  1165. Unibase.Themes.Providers.Detail_Settings.Instance().DetailParameters[containerId]["ActivePortletId"] = portletid;
  1166. }
  1167. }
  1168. }
  1169. var activePortletIndex = Unibase.Themes.Providers.Detail_Settings.Instance().ActivePortlets.findIndex(x => x.InstalledAppId == installedappid);
  1170. if (activePortletIndex != -1) {
  1171. Unibase.Themes.Providers.Detail_Settings.Instance().ActivePortlets[activePortletIndex].ActivePortletId = portletid;
  1172. }
  1173. else {
  1174. Unibase.Themes.Providers.Detail_Settings.Instance().ActivePortlets.push({
  1175. InstalledAppId: Number(installedappid),
  1176. ActivePortletId: Number(portletid)
  1177. });
  1178. }
  1179. $("#managePortletBtn .portlet-title-span").text($(`#portletName_${portletid}`).text());
  1180. this.portletmanager.getPortletWidgets(portletid, currentstageid).then(function (response) {
  1181. return __awaiter(this, void 0, void 0, function* () {
  1182. var data = response.result;
  1183. if ($("#" + Unibase.Platform.Helpers.NavigationHelper.Instance().getLastContainerId()).find('#portletTab_' + portletid + ' .findportlets_' + portletid).attr('data_isappstructenable') == 'true') {
  1184. instance.isAppStructEnable = true;
  1185. }
  1186. else {
  1187. instance.isAppStructEnable = false;
  1188. }
  1189. if ((isAppStructure == true && instance.isAppStructEnable == true)) {
  1190. if ($("#" + Unibase.Platform.Helpers.NavigationHelper.Instance().getLastContainerId()).find("#tab-container").hasClass('ui-sortable')) {
  1191. $("#bizgaze_body").addClass("edit-dashboard-mode");
  1192. $("#" + Unibase.Platform.Helpers.NavigationHelper.Instance().getLastContainerId()).find("#addWidgetContainer").addClass('hidden');
  1193. instance.savedChanges(installedappid, portletid, panel);
  1194. }
  1195. else {
  1196. yield instance.btnchange(installedappid, portletid, panel);
  1197. yield instance.getportletlayout(installedappid, portletid, panel);
  1198. }
  1199. }
  1200. else {
  1201. $("#bizgaze_body").removeClass("edit-dashboard-mode");
  1202. yield instance.btnchange(installedappid, portletid, panel);
  1203. yield instance.getportletlayout(installedappid, portletid, panel);
  1204. }
  1205. });
  1206. });
  1207. }
  1208. }
  1209. }
  1210. savedChanges(installedappid, portletid, panel) {
  1211. return __awaiter(this, void 0, void 0, function* () {
  1212. let instance = this;
  1213. var msg = 'Are You Want Save Layout ?';
  1214. if ($("#tab-container").hasClass('ui-sortable') && instance.isPortletModified) {
  1215. bootbox.confirm({
  1216. message: msg,
  1217. closeButton: false,
  1218. buttons: {
  1219. confirm: {
  1220. label: 'OK',
  1221. className: 'btn-success'
  1222. },
  1223. cancel: {
  1224. label: 'Cancel',
  1225. className: 'btn-danger'
  1226. }
  1227. },
  1228. callback: function (result) {
  1229. return __awaiter(this, void 0, void 0, function* () {
  1230. if (result) {
  1231. yield Unibase.Platform.Widgets.Components.Widget.Instance().parentStructures('tab-container', 'portletwidget-item');
  1232. yield Unibase.Platform.Widgets.Components.Widget.Instance().SaveStructureLayout();
  1233. yield instance.btnchange(installedappid, portletid, panel);
  1234. $(panel).find('.tab-container').empty();
  1235. yield instance.getportletlayout(installedappid, portletid, panel);
  1236. yield Unibase.Themes.Compact.Components.Details.Instance().addWidget();
  1237. }
  1238. else {
  1239. yield instance.btnchange(installedappid, portletid, panel);
  1240. yield instance.getportletlayout(installedappid, portletid, panel);
  1241. yield Unibase.Themes.Compact.Components.Details.Instance().addWidget();
  1242. }
  1243. });
  1244. }
  1245. });
  1246. }
  1247. else {
  1248. yield instance.btnchange(installedappid, portletid, panel);
  1249. yield instance.getportletlayout(installedappid, portletid, panel);
  1250. yield Unibase.Themes.Compact.Components.Details.Instance().addWidget();
  1251. }
  1252. instance.isPortletModified = false;
  1253. });
  1254. }
  1255. btnchange(installedappid, portletid, panel) {
  1256. $(".nav-link").removeClass("active");
  1257. $(".collapsedPortlet").removeClass("nav-link active");
  1258. $(".tabid-" + portletid).find(".nav-link").addClass("active");
  1259. $(".tabid-" + portletid).find(".collapsedPortlet").addClass("nav-link active");
  1260. }
  1261. reloadWidgetReport(panel) {
  1262. if (panel.includes('_viewall')) {
  1263. const containerId = panel.replace('#', '');
  1264. const reportInstance = Unibase.Platform.Analytics.Components.ReportViewer.Instance();
  1265. const rv_instance = reportInstance.getReportViewerInstance(containerId);
  1266. Unibase.Platform.Analytics.Components.ReportViewer.Instance().getReportData(rv_instance.ReportId, containerId, rv_instance.reportWidgetData, null);
  1267. return;
  1268. }
  1269. }
  1270. getportletlayout(InstalledAppId, activeportletid, panel) {
  1271. return __awaiter(this, void 0, void 0, function* () {
  1272. let instance = this;
  1273. var currentstageid = 0;
  1274. let VisibleContainerId = Unibase.Platform.Helpers.NavigationHelper.Instance().getLastContainerId();
  1275. if (VisibleContainerId.includes('_viewall')) {
  1276. let wdgtContainerId = VisibleContainerId.replace("_viewall", "");
  1277. let rprtId = Number($(`[class^="${wdgtContainerId}"]`).parent().siblings('#hf_ReportId').val());
  1278. Unibase.Platform.Analytics.Components.ReportViewer.Instance().refreshReportData(rprtId, VisibleContainerId, null);
  1279. VisibleContainerId = Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds[Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds.length - 2];
  1280. }
  1281. var userinfo = Unibase.Platform.Membership.Infos.Identity.getCurrentUser();
  1282. var detailSettingInstance = Unibase.Themes.Providers.Detail_Settings.Instance();
  1283. if (!userinfo.isAdmin && detailSettingInstance.InputParameters.
  1284. find(x => x.Key == "hf_" + InstalledAppId + "_stageid") != undefined) {
  1285. currentstageid = Number(detailSettingInstance.InputParameters.
  1286. find(x => x.Key == "hf_" + InstalledAppId + "_stageid").Value);
  1287. }
  1288. if (Unibase.Themes.Compact.Components.Index.Instance().isAppStructureEnable) {
  1289. yield instance.portletmanager.getdefaultAppsPortletWidgetStruct(InstalledAppId, currentstageid, activeportletid).then(function (response) {
  1290. return __awaiter(this, void 0, void 0, function* () {
  1291. let data = response.result;
  1292. instance.isAppStructEnable = data.isAppStructEnable;
  1293. if (data.isAppStructEnable) {
  1294. let isStructure = true;
  1295. let divStructure = 'divStructure_' + Math.floor(Math.random() * Date.now());
  1296. let boxId = 'structureId_' + Math.floor(Math.random() * Date.now());
  1297. if ((data.portletstructure != null) && (data.portletstructure != undefined)) {
  1298. if (data.portletstructure.length > 0) {
  1299. yield $(panel).find(".tab-container").empty();
  1300. $(panel).find(".tab-container").removeClass('row');
  1301. yield Unibase.Themes.Compact.Components.Dashboard.Instance().filterStructures(data.portletstructure, "tab-container");
  1302. $('#' + VisibleContainerId).find('.structureDiv[data-parentindex="0"]').each(function () {
  1303. $(this).find('.droppablePlaceCol[data-parentindex="0"]:first').removeClass('px-lg-10 px-md-10').addClass('pl-lg-0');
  1304. });
  1305. }
  1306. else {
  1307. if (data.portletwidget != null) {
  1308. if (data.portletwidget.length) {
  1309. isStructure = false;
  1310. let html = `<div class="d-flex flex-wrap structureToDelete w-100 structureDiv" data-divstructureid="default-structure" data-clone="clonestruct" data-parent="tab-container" id="${divStructure}" data-isedit="true" data-strctwidgetindex="0" data-parentindex="0"> <div class="col-lg-12 droppablePlaceCol ui-sortable-handle px-md-0 px-0" data-isblock="1" data-structureindex="0" data-parent="${divStructure}" id="${boxId}" data-mobile_settingwidth="" data-tab_settingwidth="" data-parentindex="0"> <div class="blocks-droppable-items-place ui-sortable-handle widgetplace ui-sortable d-flex flex-wrap" id="12"></div></div></div>`;
  1311. $('#' + VisibleContainerId).find('#tab-container').html(html);
  1312. }
  1313. }
  1314. }
  1315. }
  1316. if (data.portletwidget != null && data.portletwidget != undefined && data.portletwidget.length > 0) {
  1317. yield instance.loadWidgetData(InstalledAppId, data.portletwidget, panel, isStructure, boxId);
  1318. }
  1319. else {
  1320. instance.navigationHelper.hideLoading();
  1321. }
  1322. }
  1323. else {
  1324. yield instance.portletmanager.getDefaultWidgets(InstalledAppId, currentstageid, activeportletid).then(function (response) {
  1325. instance.loadWidgetData(InstalledAppId, response.result, panel, false);
  1326. });
  1327. }
  1328. });
  1329. });
  1330. }
  1331. else {
  1332. yield instance.portletmanager.getDefaultWidgets(InstalledAppId, currentstageid, activeportletid).then(function (response) {
  1333. instance.loadWidgetData(InstalledAppId, response.result, panel, false);
  1334. });
  1335. }
  1336. });
  1337. }
  1338. loadWidgetData(installedappid, widgetdata, panel, isStructure, boxId) {
  1339. var instance = this;
  1340. let data;
  1341. if (widgetdata != "" && widgetdata != null && widgetdata.length > 0) {
  1342. if (Unibase.Themes.Compact.Components.Index.Instance().isAppStructureEnable) {
  1343. data = widgetdata.sort(Unibase.Themes.Compact.Components.Dashboard.Instance().sortStructureWidgets);
  1344. instance.reloadWidgetReport(panel);
  1345. }
  1346. else {
  1347. data = widgetdata;
  1348. }
  1349. if (data.length != 0) {
  1350. let skelhtml = '<div class="skelton_loader biz-secondary-color position-absolute pr-20 w-100 z-index-10">';
  1351. skelhtml += Unibase.Themes.Compact.Components.Nav_Template.Instance().skelTonDetailsbBDYPage();
  1352. skelhtml += '</div>';
  1353. $('.detail-container-content').before(skelhtml);
  1354. let sorting = 'widgetdataHere', plus = '';
  1355. if (!Unibase.Themes.Compact.Components.Index.Instance().isAppStructureEnable) {
  1356. sorting = '', plus = "+";
  1357. $(panel).find("#tab-container").empty();
  1358. }
  1359. $(panel).find('.detail-container-content').addClass('invisible');
  1360. var html = "";
  1361. for (var i = 0; i < data.length; i++) {
  1362. var model = data[i];
  1363. let elem;
  1364. try {
  1365. elem = $(panel).find('#portletTab_' + model.PortletId + ' .findportlets_' + model.PortletId).attr('data_isappstructenable').toString();
  1366. }
  1367. catch (_a) {
  1368. elem = '';
  1369. }
  1370. if (elem != undefined && elem != null && elem != '') {
  1371. if (elem == 'true') {
  1372. instance.isAppStructEnable = true;
  1373. $(panel).find('.tab-container').removeClass('row');
  1374. }
  1375. else {
  1376. instance.isAppStructEnable = false;
  1377. $(panel).find('.tab-container').addClass('row');
  1378. }
  1379. }
  1380. else {
  1381. if (isStructure) {
  1382. instance.isAppStructEnable = true;
  1383. $(panel).find('.tab-container').removeClass('row');
  1384. }
  1385. else {
  1386. instance.isAppStructEnable = false;
  1387. $(panel).find('.tab-container').addClass('row');
  1388. }
  1389. }
  1390. var widgetUrl = model.WidgetUrl;
  1391. var WidgetName = "";
  1392. if (model.DisplayText == null || model.DisplayText == "") {
  1393. WidgetName = model.WidgetName;
  1394. }
  1395. else {
  1396. WidgetName = model.DisplayText;
  1397. }
  1398. var IsFiltarable = model.IsFilterable;
  1399. var filterhtml = "";
  1400. if (IsFiltarable == null || IsFiltarable == false || IsFiltarable == "") {
  1401. filterhtml = "hidden";
  1402. }
  1403. var Width = '';
  1404. if (isStructure == false) {
  1405. if (model.WidgetLayoutName == "List") {
  1406. Width = 'mb-2 col-lg-' + 12;
  1407. }
  1408. else {
  1409. if (model.PortletWidgetCss != null && model.PortletWidgetCss != undefined && model.CssProperty != null && model.CssProperty != undefined && model.CssProperty != '' && model.PortletWidgetCss != '') {
  1410. if (JSON.parse(model.PortletWidgetCss)[0].Width != null && JSON.parse(model.PortletWidgetCss)[0].Width != undefined) {
  1411. Width = 'mb-2 col-lg-' + Number(JSON.parse(model.PortletWidgetCss)[0].Width);
  1412. }
  1413. else if (JSON.parse(model.CssProperty)[0].Width != null && JSON.parse(model.CssProperty)[0].Width != undefined) {
  1414. Width = 'mb-2 col-lg-' + Number(JSON.parse(model.CssProperty)[0].Width);
  1415. }
  1416. else {
  1417. Width = 'mb-2 col-lg-' + model.Width;
  1418. }
  1419. }
  1420. else {
  1421. Width = 'mb-2 col-lg-' + model.Width;
  1422. }
  1423. }
  1424. }
  1425. let hidden = '';
  1426. if (instance.IsCustomDetailHeader == true) {
  1427. hidden = 'hidden';
  1428. }
  1429. if (Unibase.Themes.Compact.Components.Index.Instance().isAppStructureEnable == true && instance.isAppStructEnable == true) {
  1430. html = '<div class="portletwidget-item mb-sm-20 px-0 mb-2 ' + Width + ' ' + sorting + ' portletwidget-addeditem ' + hidden + ' portletwidget-' + model.PortletWidgetId + ' widgetItem-' + model.PortletWidgetId + ' widgetid-' + model.WidgetId + '" id="' + model.WidgetId + '" data-portletwidgetid="" data-widgetid="' + model.WidgetId + '" data-strctwidgetindex="' + model.StrctWidgetIndex + '" data-boxid="' + model.StructureDesignId + '" data-portletid="' + model.PortletId + '" data-widgetname="' + model.WidgetName + '"><div class="Border"><div class="Border1 hidden"><div class="dragWidget dargwidget-' + model.WidgetId + ' pull-left" id="dragWidget"><a class="btn btn-icon btn-rounded btn-flush-primary flush-soft-hover"><span class="btn-icon-wrap"><i class="ti-fullscreen"></i></span></a></div><div class="card-action-wrap editwidget editwidget-' + model.WidgetId + ' pull-right m-t-sm m-r-lg" id="editwidget"><a href="javascript:;" class="inline-block btn btn-icon btn-rounded btn-flush-primary flush-soft-hover" title="Edit Widget" onclick="Unibase.Platform.Helpers.FileCacheHelper.Instance().loadJsFile(\'platform/widgets/components/widget.js\',function () {Unibase.Platform.Widgets.Components.Widget.Instance().loadWidgetData(' + model.WidgetId + ',' + installedappid + ', true,' + model.PortletWidgetId + ');});"><span class="btn-icon-wrap"><i class="ti-pencil" id = "EditWidget-' + model.PortletWidgetId + '"></i></span></a><a href = "javascript:;" class="btn btn-icon btn-rounded btn-flush-primary flush-soft-hover" title="Permissions" onclick = "Unibase.Themes.Compact.Components.Details.Instance().ShowWidgetPermissions(' + model.PortletWidgetId + ')";><span class="btn-icon-wrap"><i class="ti-key"></i></span></a><a href="javascript:;" class="btn btn-icon btn-rounded btn-flush-primary flush-soft-hover" title="delete widget" onclick="Unibase.Platform.Widgets.Components.Widget.Instance().deletePortletWidgets(' + model.PortletWidgetId + ')"><span class="btn-icon-wrap"><i class="ti-trash"></i></span></a><a href="javascript:;" title = "Export Widget" onclick = "Unibase.Platform.Widgets.Components.Widget.Instance().exportWidgetByWidgetId(' + model.WidgetId + ')" > <i class="fa fa-download text-info mr-2" id = "ExportWidget-' + model.PortletWidgetId + '" > </i></a ></div></div><input type="hidden" id="hf_PortletWidgetId" value="' + model.PortletWidgetId + '" /><input type="hidden" id="hf_widgetId" value="' + model.WidgetId + '" /><input type="hidden" id="hf_ReportId" value="' + model.ReportId + '" /><input type = "hidden" id = "hf_widgetName_' + model.PortletWidgetId + '" value = "' + WidgetName + '" /><div class="" id="editWidgetData-' + model.PortletWidgetId + '" /></div><div class="cardbody rounded-4">';
  1431. }
  1432. else {
  1433. html += '<div class="portletwidget-item mb-sm-20 ' + Width + ' ' + sorting + ' portletwidget-addeditem ' + hidden + ' portletwidget-' + model.PortletWidgetId + ' widgetItem-' + model.PortletWidgetId + ' widgetid-' + model.WidgetId + '" id="' + model.WidgetId + '" data-portletwidgetid="" data-widgetid="' + model.WidgetId + '" data-strctwidgetindex="' + model.StrctWidgetIndex + '" data-portletid="' + model.PortletId + '" data-widgetname="' + model.WidgetName + '"><div class="Border"><div class="Border1 hidden"><div class="dragWidget dargwidget-' + model.WidgetId + ' pull-left" id="dragWidget"><a class="btn btn-icon btn-rounded btn-flush-primary flush-soft-hover"><span class="btn-icon-wrap"><i class="ti-fullscreen"></i></span></a></div><div class="card-action-wrap editwidget editwidget-' + model.WidgetId + ' pull-right m-t-sm m-r-lg" id="editwidget"><a href="javascript:;" class="inline-block btn btn-icon btn-rounded btn-flush-primary flush-soft-hover" title="Edit Widget" onclick="Unibase.Platform.Helpers.FileCacheHelper.Instance().loadJsFile(\'platform/widgets/components/widget.js\',function () {Unibase.Platform.Widgets.Components.Widget.Instance().loadWidgetData(' + model.WidgetId + ',' + installedappid + ', true,' + model.PortletWidgetId + ');});"><span class="btn-icon-wrap"><i class="ti-pencil" id = "EditWidget-' + model.PortletWidgetId + '"></i></span></a><a href = "javascript:;" class="btn btn-icon btn-rounded btn-flush-primary flush-soft-hover" title="Permissions" onclick = "Unibase.Themes.Compact.Components.Details.Instance().ShowWidgetPermissions(' + model.PortletWidgetId + ')";><span class="btn-icon-wrap"><i class="ti-key"></i></span></a><a href="javascript:;" class="btn btn-icon btn-rounded btn-flush-primary flush-soft-hover" title="delete widget" onclick="Unibase.Platform.Widgets.Components.Widget.Instance().deletePortletWidgets(' + model.PortletWidgetId + ')"><span class="btn-icon-wrap"><i class="ti-trash"></i></span></a><a href="javascript:;" title = "Export Widget" onclick = "Unibase.Platform.Widgets.Components.Widget.Instance().exportWidgetByWidgetId(' + model.WidgetId + ')" > <i class="fa fa-download text-info mr-2" id = "ExportWidget-' + model.PortletWidgetId + '" > </i></a ></div></div><input type="hidden" id="hf_PortletWidgetId" value="' + model.PortletWidgetId + '" /><input type="hidden" id="hf_widgetId" value="' + model.WidgetId + '" /><input type="hidden" id="hf_ReportId" value="' + model.ReportId + '" /><input type = "hidden" id = "hf_widgetName_' + model.PortletWidgetId + '" value = "' + WidgetName + '" /><div class="" id="editWidgetData-' + model.PortletWidgetId + '" /></div><div class="cardbody rounded-4">';
  1434. }
  1435. if (model.WidgetLayoutName == 'KPI' || model.WidgetLayoutName == 'Detail') {
  1436. html += '<div class="bg-white d-block h-90p line-loader position-relative div_LineLoader"></div><div class="hidden div_portletwidget_' + model.PortletWidgetId + "_" + panel.replace("#", "") + '" id="div_portletwidget_' + model.PortletWidgetId + "_" + panel.replace("#", "") + '" data-widgetid="' + model.WidgetId + '"></div></div></div></div>';
  1437. }
  1438. else {
  1439. html += '<div class="div_portletwidget_' + model.PortletWidgetId + "_" + panel.replace("#", "") + '" id="div_portletwidget_' + model.PortletWidgetId + "_" + panel.replace("#", "") + '" data-widgetid="' + model.WidgetId + '"></div></div></div></div>';
  1440. }
  1441. if (Unibase.Themes.Compact.Components.Index.Instance().isAppStructureEnable == true && instance.isAppStructEnable == true) {
  1442. let afterchild, beforechild;
  1443. if (model.StrctWidgetIndex == 1 || model.StrctWidgetIndex == 0) {
  1444. if (isStructure != false) {
  1445. $(panel).find('#structureId_' + model.StructureDesignId).find('.widgetplace').first().prepend(html);
  1446. }
  1447. else {
  1448. $(panel).find('#' + boxId + ' .widgetplace').append(html);
  1449. }
  1450. }
  1451. else {
  1452. if (isStructure != false) {
  1453. afterchild = model.StrctWidgetIndex - 1;
  1454. beforechild = model.StrctWidgetIndex + 1;
  1455. if (($(panel).find('#structureId_' + model.StructureDesignId + ' .widgetplace').find('[data-strctwidgetindex="' + afterchild + '"][data-boxid="' + model.StructureDesignId + '"]').length) > 0) {
  1456. $(panel).find('#structureId_' + model.StructureDesignId + ' .widgetplace').find('[data-strctwidgetindex="' + afterchild + '"][data-boxid="' + model.StructureDesignId + '"]').after(html);
  1457. }
  1458. else if (($(panel).find('#structureId_' + model.StructureDesignId + ' .widgetplace').find('[data-strctwidgetindex="' + beforechild + '"][data-boxid="' + model.StructureDesignId + '"]').length) > 0) {
  1459. $(panel).find('#structureId_' + model.StructureDesignId + ' .widgetplace').find('[data-strctwidgetindex="' + beforechild + '"][data-boxid="' + model.StructureDesignId + '"]').before(html);
  1460. }
  1461. else if (model.StrctWidgetIndex < Number($(panel).find('#structureId_' + model.StructureDesignId + ' [data-boxid="' + model.StructureDesignId + '"]').attr('data-strctwidgetindex'))) {
  1462. $(panel).find('#structureId_' + model.StructureDesignId + ' [data-boxid="' + model.StructureDesignId + '"]').before(html);
  1463. }
  1464. else if (model.StrctWidgetIndex > Number($(panel).find('#structureId_' + model.StructureDesignId + ' [data-boxid="' + model.StructureDesignId + '"]').attr('data-strctwidgetindex'))) {
  1465. $(panel).find('#structureId_' + model.StructureDesignId + ' [data-boxid="' + model.StructureDesignId + '"]').after(html);
  1466. }
  1467. else {
  1468. $(panel).find('#structureId_' + model.StructureDesignId + ' .widgetplace').append(html);
  1469. }
  1470. }
  1471. else {
  1472. $(panel).find('#' + boxId + ' .widgetplace').append(html);
  1473. }
  1474. }
  1475. }
  1476. var StrWidgetID = '.widgetdataHere.widgetid-' + model.WidgetId + '';
  1477. var FindStrutreLength = $(StrWidgetID).length;
  1478. if (FindStrutreLength >= 2) {
  1479. $(panel).find('#tab-container .widgetdataHere.widgetid-' + model.WidgetId + '').not(':last').remove();
  1480. }
  1481. }
  1482. if ($("body").hasClass('background-image')) {
  1483. $(panel).find(".simple-scroll-bar.scrollable").css("background", "rgb(255,255,255,0.8)");
  1484. $(panel).find(".simple-scroll-bar.tab-content").css({ "background": "rgb(255,255,255,0)", "height": "calc(100% - 100px) !important" });
  1485. }
  1486. if (instance.isAppStructEnable == false || Unibase.Themes.Compact.Components.Index.Instance().isAppStructureEnable == false) {
  1487. $(panel).find("#tab-container").html(html);
  1488. }
  1489. else {
  1490. $(panel).find('#addWidgetContainer').addClass('hidden');
  1491. }
  1492. instance.navigationHelper.hideLoading();
  1493. if ($(panel).find('#addWidgetContainer').is(':visible') || instance.isPortletEdit == true) {
  1494. if (!instance.isAppStructEnable) {
  1495. $(panel).find('#addWidgetContainer').removeClass('hidden');
  1496. }
  1497. $(panel).find(".Border").addClass('card');
  1498. $(panel).find(".Border1").addClass('card-header').removeClass('hidden');
  1499. }
  1500. var checklistcount = $(".portletwidget-item").find(".list-group-item").length;
  1501. if (checklistcount >= 2) {
  1502. $(".portletwidget-item").find(".list-group-item:not(:last)").css({ "border-bottom": "solid 1px rgb(204,204,204,0.6) !important;" });
  1503. }
  1504. if ($(window).width() <= 1198) {
  1505. let VisibleContainerId = Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds[Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds.length - 1];
  1506. $("#" + VisibleContainerId).find('.app_defaultwidget').on('click', function () {
  1507. let modalimgUrl, modalsubtext, modalmaintext, modalHtml, modalavatar = '';
  1508. modalavatar = $("#" + VisibleContainerId).find(this).find('.biz-detail-avatar').find('.biz-primary-text-color').html();
  1509. modalimgUrl = $("#" + VisibleContainerId).find(this).find('.avatar-img').attr('src');
  1510. modalsubtext = $("#" + VisibleContainerId).find(this).find('.biz-header-sub-text').text();
  1511. modalmaintext = $("#" + VisibleContainerId).find(this).find('.biz-header-main-text').text();
  1512. if (modalimgUrl != null) {
  1513. modalHtml = `<div class=detailHeader-modal-container><div class="fade modal"role=dialog aria-hidden=true data-backdrop=static data-keyboard=false id=detailHeaderModal tabindex=-1><div class="modal-dialog "role=document><div class="modal-content rounded-10"><div class="modal-body dropdown-menu-scrollbar p-0" style="overflow:auto;"> <div class="card p-0 mb-0"><span class="headerbtn-close p-absolute l-5 text-dark"> <i class="fa fa-arrow-left" aria-hidden="true"></i> </span> <img src="${modalimgUrl}" data-dynamic="1" onerror="ReloadImage(event)" class="avatar-img img-fluid card-img-top h-250p" alt="img" > <div class="card-body px-2 text-center"> <p class="card-text mb-0">${modalmaintext}</p><p class="card-text mb-0">${modalsubtext}</p></div></div></div></div></div></div></div>`;
  1514. }
  1515. else {
  1516. modalHtml = `<div class=detailHeader-modal-container><div class="fade modal"role=dialog aria-hidden=true data-backdrop=static data-keyboard=false id=detailHeaderModal tabindex=-1><div class="modal-dialog "role=document><div class="modal-content rounded-10"><div class="modal-body dropdown-menu-scrollbar p-0" style="overflow:auto;"><div class="card p-0 mb-0"><span class="headerbtn-close p-absolute l-5 text-dark"> <i class="fa fa-arrow-left" aria-hidden="true"></i> </span> <div class="biz-detail-avatar flex-shrink-0 header-avatar modalheader-main mx-auto"> <div class="biz-primary-text-color font-weight-bold">${modalavatar}</div> </div><div class="card-body px-2 text-center"> <p class="card-text mb-0 ">${modalmaintext}</p><p class="card-text mb-0 ">${modalsubtext}</p></div></div></div></div></div></div></div>`;
  1517. }
  1518. $("#_bizgaze_modal").html(modalHtml);
  1519. $('#detailHeaderModal').modal();
  1520. $('#bizgaze_body').click(function () {
  1521. $('#detailHeaderModal').modal('hide');
  1522. });
  1523. });
  1524. $(`${panel} .portlet-detail-header`).find(".biz-header-main-text,.biz-header-sub-text").addClass("text-truncate w-170p");
  1525. }
  1526. else {
  1527. $(`${panel} .portlet-detail-header`).find(".biz-header-main-text,.biz-header-sub-text").removeClass("text-truncate w-170p");
  1528. }
  1529. $(".heading-display-name").click(function () { $(".dropdown-menu-name").removeClass("show"); $(".heading-display-name").addClass("d-none"); });
  1530. var instance = this;
  1531. instance.model = data;
  1532. instance.jsindex = 0;
  1533. instance.htmlindex = 0;
  1534. instance.evalExecuted = 0;
  1535. instance.evaluateJs(data, panel);
  1536. $(".portletwidget-item").find(".card-header-right").find(".my-auto").find(".nav-link").removeClass("d-none");
  1537. }
  1538. else {
  1539. if (!Unibase.Themes.Compact.Components.Index.Instance().isAppStructureEnable) {
  1540. $(panel).find("#tab-container").empty();
  1541. }
  1542. instance.navigationHelper.hideLoading();
  1543. }
  1544. }
  1545. else
  1546. instance.navigationHelper.hideLoading();
  1547. }
  1548. toggleStagesOnMobileScroll(panel) {
  1549. if ($(window).width() <= 576 && $(panel).find('.Mobile-mode .div_details_stages option').length > 0) {
  1550. $(panel).find('.portlet-header-wrapper').addClass("h-80p").removeClass('h-55p');
  1551. $(panel).find('.portlet-header-wrapper').removeClass("align-items-center");
  1552. let scrollEl = $(panel).find('.biz-detail-page-view');
  1553. eval(`const simpleBar = new SimpleBar($(panel).find('.biz-detail-page-view')[0]);
  1554. const wrapperEl = $(simpleBar.el).find('.simplebar-content-wrapper');
  1555. if (wrapperEl.length) { scrollEl = wrapperEl; }`);
  1556. scrollEl.off('scroll').on('scroll', function () {
  1557. var st = $(this).scrollTop();
  1558. var lastScrollTop = 0;
  1559. if (st > lastScrollTop) {
  1560. $(panel).find(".Mobile-mode .div_details_stages").addClass('d-none').removeClass("d-block d-sm-none");
  1561. $(panel).find(".sales_invoice_column_three").addClass('d-none').removeClass("d-block d-sm-none");
  1562. $(panel).find('.portlet-header-wrapper').removeClass('h-80p').addClass("h-55p");
  1563. }
  1564. else {
  1565. $(panel).find(".Mobile-mode .div_details_stages").removeClass('d-none').addClass("d-block d-sm-none");
  1566. $(panel).find(".sales_invoice_column_three").removeClass('d-none').addClass("d-block d-sm-none");
  1567. $(panel).find('.portlet-header-wrapper').addClass('h-80p').removeClass("h-55p");
  1568. }
  1569. lastScrollTop = st;
  1570. });
  1571. }
  1572. }
  1573. loadWidgetEditData(installedappid, data, panel) {
  1574. let instance = this;
  1575. if (data != null) {
  1576. $(panel).find('.detail-container-content').addClass('invisible');
  1577. instance.navigationHelper.showLoading();
  1578. var DeletedWidgets = [];
  1579. for (var i = 0; i < data.length; i++) {
  1580. DeletedWidgets = Unibase.Platform.Widgets.WidgetHiddenFields.Instance().NewWidgets;
  1581. for (var j = 0; j < DeletedWidgets.length; j++) {
  1582. var _isDeleted = DeletedWidgets.find(x => x.PortletWidgetId == data[i].PortletWidgetId) ? true : false;
  1583. if (_isDeleted) {
  1584. data.splice(i, 1);
  1585. }
  1586. }
  1587. }
  1588. $(panel).find("#tab-container").empty();
  1589. var html = "";
  1590. var cWidth = 0;
  1591. var cHeight = 0;
  1592. for (var i = 0; i < data.length; i++) {
  1593. var model = data[i];
  1594. var widgetUrl = model.WidgetUrl;
  1595. var WidgetName = "";
  1596. if (model.DisplayText == null || model.DisplayText == "") {
  1597. WidgetName = model.WidgetName;
  1598. }
  1599. else {
  1600. WidgetName = model.DisplayText;
  1601. }
  1602. var IsFiltarable = model.IsFilterable;
  1603. var filterhtml = "";
  1604. if (IsFiltarable == null || IsFiltarable == false || IsFiltarable == "") {
  1605. filterhtml = "hidden";
  1606. }
  1607. var Width = 0;
  1608. if (model.WidgetLayoutName == "List") {
  1609. Width = 12;
  1610. }
  1611. else {
  1612. Width = model.Width;
  1613. }
  1614. let hidden = '';
  1615. if (instance.IsCustomDetailHeader == true) {
  1616. hidden = 'hidden';
  1617. }
  1618. html += '<div class="widgetdataHere portletwidget-item mb-sm-20 ' + hidden + ' mb-2 portletwidget-addeditem portletwidget-' + model.PortletWidgetId + ' widgetItem-' + model.PortletWidgetId + ' widgetid-' + model.WidgetId + ' col-lg-' + Width + '" data-portletwidgetid="" data-widgetid="' + model.WidgetId + '" data-portletid="' + model.PortletId + '" data-widgetname="' + model.WidgetName + '">' +
  1619. '<div class="Border card">' +
  1620. '<div class="Border1 card-header">' +
  1621. '<div class="card-action-wrap editwidget editwidget-' + model.WidgetId + ' pull-right m-t-sm m-r-lg" id="editwidget">' +
  1622. '<a href="javascript:;" class="inline-block btn btn-icon btn-rounded btn-flush-primary flush-soft-hover" title="Edit Widget" onclick="Unibase.Platform.Helpers.FileCacheHelper.Instance().loadJsFile(\'platform/widgets/components/widget.js\',function () {Unibase.Platform.Widgets.Components.Widget.Instance().loadWidgetData(' + model.WidgetId + ',' + installedappid + ',true,' + model.PortletWidgetId + ');});"><span class="btn-icon-wrap"><i class="ti-pencil" id = "EditWidget-' + model.PortletWidgetId + '"></i></span></a>' +
  1623. '<a href = "javascript:;" class="btn btn-icon btn-rounded btn-flush-primary flush-soft-hover" title="Permissions" onclick = "Unibase.Themes.Compact.Components.Details.Instance().ShowWidgetPermissions(' + model.PortletWidgetId + ')";><span class="btn-icon-wrap"><i class="ti-key"></i></span></a>' +
  1624. '<a href="javascript:;" class="btn btn-icon btn-rounded btn-flush-primary flush-soft-hover" title="delete widget" onclick="Unibase.Platform.Widgets.Components.Widget.Instance().deletePortletWidgets(' + model.PortletWidgetId + ')"><span class="btn-icon-wrap"><i class="ti-trash"></i></span></a>' +
  1625. '</div>' +
  1626. '<div class="dragWidget dargwidget-' + model.WidgetId + ' pull-left" id="dragWidget">' +
  1627. '<a class="pull-left btn btn-sm">' +
  1628. '<i class="ti-fullscreen"></i>' +
  1629. '</a>' +
  1630. '</div>' +
  1631. '</div>' +
  1632. '<input type="hidden" id="hf_PortletWidgetId" value="' + model.PortletWidgetId + '" />' +
  1633. '<input type="hidden" id="hf_widgetId" value="' + model.WidgetId + '" />' +
  1634. '<input type="hidden" id="hf_ReportId" value="' + model.ReportId + '" />' +
  1635. '<input type = "hidden" id = "hf_widgetName_' + model.PortletWidgetId + '" value = "' + WidgetName + '" />' +
  1636. ' <div class="" id="editWidgetData-' + model.PortletWidgetId + '" /></div>' +
  1637. '<div class="cardbody rounded-4"><div class="div_portletwidget_' + model.PortletWidgetId + "_" + panel.replace("#", "") + '" id="div_portletwidget_' + model.PortletWidgetId + "_" + panel.replace("#", "") + '" data-widgetid="' + model.WidgetId + '"></div>' +
  1638. '</div></div></div>';
  1639. }
  1640. $(panel).find("#tab-container").html(html);
  1641. instance.navigationHelper.hideLoading();
  1642. instance.model = data;
  1643. instance.jsindex = 0;
  1644. instance.htmlindex = 0;
  1645. instance.evalExecuted = 0;
  1646. instance.evaluateJs(data, panel);
  1647. }
  1648. else {
  1649. $(panel).find("#tab-container").empty();
  1650. }
  1651. if (Unibase.Platform.Widgets.WidgetHiddenFields.Instance().NewWidgets.length != 0) {
  1652. var html = "";
  1653. for (let i = 0; i < Unibase.Platform.Widgets.WidgetHiddenFields.Instance().NewWidgets.length; i++) {
  1654. if (Unibase.Platform.Widgets.WidgetHiddenFields.Instance().NewWidgets[i].PortletId == $("#hf_PortletId").val()) {
  1655. var html1 = '<div class="card-header"><div class="WidgetName pull-left" id="WidgetName"><a class="pull-left btn btn-sm"><strong>' + Unibase.Platform.Widgets.WidgetHiddenFields.Instance().NewWidgets[i].WidgetName + '</strong></a></div><div class="card-action-wrap editwidget editwidget-' + $(this).find("#hf_ListwidgetId").val() + ' pull-right" id="editwidget">' +
  1656. ' <a href="javascript:;" onclick="Unibase.Platform.Widgets.Components.Widget.Instance().deletePortletWidgets()" ;="" title="Click here to Remove Widget"> <i class="ti-trash"></i></a></div></div>';
  1657. html += '<div class="portletwidget-item portletwidget-addeditem widgetItem-' + Unibase.Platform.Widgets.WidgetHiddenFields.Instance().NewWidgets[i].WidgetId + ' widgetid-' + Unibase.Platform.Widgets.WidgetHiddenFields.Instance().NewWidgets[i].WidgetId + ' col-sm-12">' +
  1658. '<div class="b-a card"><input type = "hidden" value = ' + Unibase.Platform.Widgets.WidgetHiddenFields.Instance().NewWidgets[i].WidgetId + ' id = "hf_widgetId" />' +
  1659. '<input type = "hidden" value = ' + Unibase.Platform.Widgets.WidgetHiddenFields.Instance().NewWidgets[i].WidgetUniqueId + ' id = "hf_widgetId_uniq" />' +
  1660. '' + html1 + '<img src="tenants/themes/compact/imgs/imgpopover.png" style="width:100%" class="img-responsive"></div></div>';
  1661. }
  1662. }
  1663. $(panel).find("#tab-container .portletwidget-addeditem:last").after(html);
  1664. }
  1665. }
  1666. evaluateJs(data, panel) {
  1667. var currentinstance = this, url = [];
  1668. var staticfileaarry = [];
  1669. currentinstance.evalExecuted = 1;
  1670. var staticwidetfiles = data.filter(function (o) { return o.WidgetUrl !== '' && o.WidgetUrl !== null; });
  1671. if (staticwidetfiles != null && staticwidetfiles != '') {
  1672. for (var i = 0; i < staticwidetfiles.length; i++) {
  1673. var staticjs = staticwidetfiles[i].WidgetUrl.split(',');
  1674. staticfileaarry.push(staticjs[0]);
  1675. }
  1676. currentinstance.fileCacheHelper.loadJsFiles(staticfileaarry, function () {
  1677. for (var i = 0; i < staticwidetfiles.length; i++) {
  1678. var model = staticwidetfiles[i];
  1679. if (model.WidgetUrl != null && model.WidgetUrl != '') {
  1680. let containerid = "div_portletwidget_" + model.PortletWidgetId + "_" + panel.replace("#", "");
  1681. var loadcurentjs = staticwidetfiles[i].WidgetUrl.split(',');
  1682. eval(loadcurentjs[1] + '.init("' + containerid + '")');
  1683. }
  1684. }
  1685. });
  1686. }
  1687. for (var i = 0; i < data.length; i++) {
  1688. var model = data[i];
  1689. var wclist = [];
  1690. let containerid = "div_portletwidget_" + model.PortletWidgetId + "_" + panel.replace("#", "");
  1691. if (model.WidgetUrl == null || model.WidgetUrl == '') {
  1692. if (model != null) {
  1693. if (model.StaticJsPath != null) {
  1694. var instance1 = eval(model.StaticJsPath);
  1695. }
  1696. if (model.Js != null) {
  1697. Unibase.Platform.Helpers.FileCacheHelper.Instance().addCacheFiles([model.JsPath]);
  1698. let instance = eval(model.Js);
  1699. var widgetsettingcomponent = instance;
  1700. let containerid = "div_portletwidget_" + model.PortletWidgetId + "_" + panel.replace("#", "");
  1701. wclist.push({ PortletWidgetId: model.PortletWidgetId, WidgetId: model.WidgetId, WidgetParameters: model.Parameter, WidgetName: model.WidgetName, InstalledAppId: currentinstance._installedAppId, DetailContainerId: panel, StaticJsPath: model.StaticJsPath, ReportId: model.ReportId, CustomHtml: model.CustomHtml });
  1702. currentinstance.navigationHelper.loadSection(wclist, containerid, instance, null, null);
  1703. }
  1704. }
  1705. }
  1706. }
  1707. $('.portletwidget-item').on('touchstart', function () {
  1708. $('.portletwidget-item').attr('data-mobileSwipe', 'false');
  1709. });
  1710. }
  1711. ShowWidgetPermissions(PortletWidgetId) {
  1712. this.navigationHelper.popup(0, "", Unibase.Platform.Widgets.Components.WidgetPermission.Instance(), function () {
  1713. $(".toplayout-structures-panel").css({ "z-index": "1040" });
  1714. $(".biz-layout-3-left-nav").css({ "z-index": "1040" });
  1715. $(".biz-submenu").css({ "z-index": "1040" });
  1716. Unibase.Platform.Widgets.Components.WidgetPermission.Instance().showPermissions(PortletWidgetId, 'widget', 0);
  1717. }, Unibase.Platform.Helpers.Size.Medium);
  1718. }
  1719. addWidget() {
  1720. var instance = this;
  1721. this.fileCacheHelper.loadJsFile("platform/widgets/components/widget.js", function () {
  1722. Unibase.Platform.Widgets.Components.Widget.Instance().EditScreen(instance._installedAppId);
  1723. });
  1724. }
  1725. LoadApprovals(id, InstalledAppId) {
  1726. const instance = this;
  1727. var notificationdiv = $("#div_detail_notifications_" + id);
  1728. var approvalhtml = '<div>' +
  1729. '<div class="card-body pb-2 pt-0 px-20">' +
  1730. '<ul id="div_detail_notification_list"><li class="list-group-item hidden" id="div_detail_notification_list_item"></li></ul>' +
  1731. '</div>' +
  1732. '</div>';
  1733. var VersionGuid = "";
  1734. for (let obj of Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters) {
  1735. if (obj.Key === "hf_" + InstalledAppId + "_versionguid") {
  1736. VersionGuid = obj.Value.toString();
  1737. }
  1738. }
  1739. Unibase.Platform.Communications.Managers.TaskManager.Instance().getTasksByRefId(VersionGuid).then(function (response) {
  1740. var data = response.result;
  1741. if (data != null && data.length != 0) {
  1742. let lastContainerId = instance.navigationHelper.getLastContainerId();
  1743. $(`#${lastContainerId}`).find("#div_detail_notifications_" + id).html(approvalhtml);
  1744. notificationdiv.find("#div_detail_notification_footer").show();
  1745. var html = '';
  1746. var confirmtext = "";
  1747. var rejecttext = "";
  1748. var rejectonclick = "";
  1749. for (var i = 0; i < data.length; i++) {
  1750. var j = i + 1;
  1751. confirmtext = "Confirm";
  1752. rejecttext = "Reject";
  1753. rejectonclick = 'Unibase.Themes.Compact.Components.Details.Instance().SaveTaskReason(' + data[i].TaskId + ',\'Reject\')';
  1754. if (data[i].ConfirmKeyText != null && data[i].ConfirmKeyText != undefined && data[i].ConfirmKeyText != "") {
  1755. confirmtext = data[i].ConfirmKeyText;
  1756. }
  1757. if (data[i].RejectKeyText != null && data[i].RejectKeyText != undefined && data[i].RejectKeyText != "") {
  1758. rejecttext = data[i].RejectKeyText;
  1759. }
  1760. if (Number(data[i].RejectFormId) != 0) {
  1761. rejectonclick = 'Unibase.Themes.Compact.Components.Details.Instance().ChangeApprovalStatus(' + data[i].TaskId + ', \'Reject\',' + data[i].RejectFormId + ',' + data[i].RejectFormPkId + ')';
  1762. }
  1763. html += '<li class="task rounded mb-2 font-14 pb-10" data-refid="' + data[i].RefGuid + '" id="notification_list_' + data[i].TaskId + '"style="background-color:rgb(252 250 247);border-left: 3px solid #ff6060;padding:0.5rem 1rem 1rem;">' +
  1764. '<div class="d-flex flex-column"><div class="d-flex justify-content-between"><span class="mb-1 list-item-main-title">' + data[i].Subject + '</span>' +
  1765. '</div><p class="font-14 mb-2 text-dark">' + data[i].Body + '</p><span><a id="btn_Approve_' + data[i].TaskId + '" class="font-12 px-3 btn btn-outline-success btn-sm mr-10" href="javascript:;" onclick="Unibase.Themes.Compact.Components.Details.Instance().ChangeApprovalStatus(' + data[i].TaskId + ',\'Accept\',' + data[i].ApprovalFormId + ',' + data[i].ApprovalFormPkId + ')">' + confirmtext + '</a>' +
  1766. '<a id="btn_Reject_' + data[i].TaskId + '" class="font-12 px-3 btn btn-outline-danger btn-sm mr-2" href="javascript:;" onclick="Unibase.Themes.Compact.Components.Details.Instance().ChangeRejectStatus(' + data[i].TaskId + ')">' + rejecttext + '</a><a id="btn_close_' + data[i].TaskId + '" class="font-12 px-3 btn btn-outline-primary btn-sm mr-2" style="position:absolute;right:50px" href="javascript:;" onclick="Unibase.Themes.Compact.Components.Details.Instance().confirmclosetask(' + data[i].TaskId + ')">Close</a>' +
  1767. '<span></div><div id="Reason_' + data[i].TaskId + '" class="d-none align-items-center"><div class="w-75 mr-3"><div class="input-group"><textarea id="textarea_Reason_' + data[i].TaskId + '" class="type-control form-control value-control floating-label-control" placeholder="Reason" data-placeholder="Enter Reason" data-label="Reason"></textarea></div></div>' +
  1768. '<div><button id="btnSaveReason" class="btn btn-primary btn-sm pull-right" onclick="' + rejectonclick + '">Save</button></div></div></li>';
  1769. }
  1770. $(`#${lastContainerId}`).find("#div_detail_notification_list_item:last").after(html);
  1771. $(".span_notification_count").text(data.length);
  1772. if ($(`#${lastContainerId}`).find('#div_detail_notification_list').find('li.task').length > 0) {
  1773. $(`#${lastContainerId}`).find('#div_detail_notification_list').parents('.ApprovalTasks').parent().addClass('bg-white mb-20').removeClass('d-none');
  1774. }
  1775. }
  1776. else {
  1777. notificationdiv.find(".fa-angle-down,.fa-angle-right,.card-body,#div_detail_notification_footer").toggleClass("hidden");
  1778. }
  1779. });
  1780. }
  1781. CloseApprovals(taskid) {
  1782. var instance = this;
  1783. $("#notification_list_" + taskid).remove();
  1784. var tasks = $(".task").each(function () { });
  1785. if (tasks.length == 0) {
  1786. $(".ApprovalTasks").remove();
  1787. }
  1788. if (instance = null)
  1789. Unibase.Platform.Helpers.NavigationHelper.Instance().loadDetail(instance._recordId, instance._installedAppId, null);
  1790. }
  1791. confirmclosetask(taskid) {
  1792. bootbox.confirm({
  1793. title: "<span class='dstry' style='color:red'>Close Task?</span>",
  1794. message: "Are you sure? If you are deleting this task.Then work flow will override",
  1795. buttons: {
  1796. cancel: {
  1797. label: '<i class="fa fa-times"></i> Cancel'
  1798. },
  1799. confirm: {
  1800. label: '<i class="fa fa-check"></i> Confirm'
  1801. }
  1802. },
  1803. callback: function (result) {
  1804. if (result) {
  1805. Unibase.Themes.Compact.Components.Details.Instance().CloseTask(taskid, "Completed");
  1806. }
  1807. else {
  1808. return;
  1809. }
  1810. }
  1811. });
  1812. }
  1813. CloseTask(taskid, status) {
  1814. var username = Unibase.Platform.Membership.Infos.Identity.currentUser.name;
  1815. let reason = "Task is Closed by " + username;
  1816. var obj = { TaskId: taskid, Status: status, Reason: reason };
  1817. Unibase.Platform.Communications.Managers.TaskManager.Instance().changeApprovalStatus(obj).then(function (response) {
  1818. Unibase.Themes.Compact.Components.Notification.Instance().removetask(taskid);
  1819. });
  1820. }
  1821. ToggleApprovals(id) {
  1822. $("#div_detail_notifications_" + id).find(".fa-angle-down").toggleClass("hidden");
  1823. $("#div_detail_notifications_" + id).find(".fa-angle-right").toggleClass("hidden");
  1824. $("#div_detail_notifications_" + id).find(".card-body").toggleClass("hidden");
  1825. $("#div_detail_notifications_" + id).find(".card-footer").toggleClass("hidden");
  1826. }
  1827. ChangeApprovalStatus(taskid, status, formid, formpkid) {
  1828. var reason = status == "Reject" ? $("#textarea_Reason_" + taskid).val().toString() : "Accepted";
  1829. let lastContainerId = this.navigationHelper.getLastContainerId();
  1830. if (formid != 0) {
  1831. Unibase.Themes.Compact.Components.TaskParms.Instance().SaveTaskParameters({
  1832. TaskId: taskid, Reason: reason, Status: status,
  1833. ActivePortletId: Unibase.Themes.Compact.Components.Details.Instance().unibase_core_activeportletid,
  1834. FormId: formid,
  1835. });
  1836. Unibase.Platform.Helpers.NavigationHelper.Instance().loadForm(formid, formpkid, 0, 0, function (response) {
  1837. var taskparameters = Unibase.Themes.Compact.Components.TaskParms.Instance().GetTaskParameters(taskid);
  1838. Unibase.Themes.Compact.Components.TaskParms.Instance().RemoveTaskParameters(taskparameters.TaskId);
  1839. if (response != null) {
  1840. var obj = { TaskId: taskparameters.TaskId, Status: taskparameters.Status, Reason: taskparameters.Reason };
  1841. Unibase.Platform.Communications.Managers.TaskManager.Instance().changeApprovalStatus(obj).then(function (response) {
  1842. if (response.status == Unibase.Data.Status.Success) {
  1843. var refid = $('#notification_list_' + taskid).attr('data-refid');
  1844. Unibase.Themes.Compact.Components.Notification.Instance().reloadPage(refid);
  1845. Unibase.Themes.Compact.Components.Notification.Instance().removetask(taskid);
  1846. }
  1847. });
  1848. }
  1849. });
  1850. }
  1851. else {
  1852. var reqobj = { TaskId: taskid, Status: status, Reason: reason };
  1853. Unibase.Platform.Communications.Managers.TaskManager.Instance().changeApprovalStatus(reqobj).then(function (response) {
  1854. if (response.status == Unibase.Data.Status.Success) {
  1855. var refid = $('#notification_list_' + taskid).attr('data-refid');
  1856. Unibase.Themes.Compact.Components.Notification.Instance().reloadPage(refid);
  1857. Unibase.Themes.Compact.Components.Notification.Instance().removetask(taskid);
  1858. if ($(`#${lastContainerId}`).find('#div_detail_notification_list').find('li.task').length == 0) {
  1859. $(`#detailActionsWidget_${lastContainerId}`).addClass('d-none');
  1860. }
  1861. }
  1862. });
  1863. }
  1864. }
  1865. SaveTaskReason(taskid, status) {
  1866. let reason = $("#textarea_Reason_" + taskid).val().toString();
  1867. let lastContainerId = this.navigationHelper.getLastContainerId();
  1868. var obj = { TaskId: taskid, Status: status, Reason: reason };
  1869. Unibase.Platform.Communications.Managers.TaskManager.Instance().changeApprovalStatus(obj).then(function (response) {
  1870. var refid = $('#notification_list_' + taskid).attr('data-refid');
  1871. Unibase.Themes.Compact.Components.Notification.Instance().reloadPage(refid);
  1872. Unibase.Themes.Compact.Components.Notification.Instance().removetask(taskid);
  1873. if ($(`#${lastContainerId}`).find('#div_detail_notification_list').find('li.task').length == 0) {
  1874. $(`#detailActionsWidget_${lastContainerId}`).addClass('d-none');
  1875. }
  1876. });
  1877. }
  1878. ChangeRejectStatus(taskid) {
  1879. $("#Reason_" + taskid).removeClass("d-none").addClass('d-flex');
  1880. $("#btn_Approve_" + taskid).addClass("hidden");
  1881. $("#btn_Reject_" + taskid).addClass("hidden");
  1882. $("#btn_close_" + taskid).addClass("hidden");
  1883. }
  1884. loadHeaderAvatar(panel) {
  1885. let avatarElement = $(panel).find('.app_defaultwidget .biz-detail-avatar');
  1886. if (avatarElement.length > 0) {
  1887. let dataSrc = avatarElement.attr('data-src');
  1888. if (dataSrc == '' || dataSrc == 'NA' || dataSrc == undefined) {
  1889. let dataIconName = avatarElement.attr('data-icon-name');
  1890. if (dataIconName == '' || dataIconName == 'NA' || dataIconName == undefined) {
  1891. let avatarTxt = "";
  1892. let headingTxt = $(panel).find('.app_defaultwidget #Column1').text();
  1893. let matches = headingTxt.match(/\b(\w)/g);
  1894. if (matches.length == 1) {
  1895. avatarTxt = $.trim(headingTxt).substr(0, 1).toUpperCase() + $.trim(headingTxt).substr(1, 1);
  1896. }
  1897. else {
  1898. avatarTxt = matches.join('').slice(0, 2).toUpperCase();
  1899. }
  1900. avatarElement.html(`<h5 class="biz-primary-text-color text-uppercase">${avatarTxt}</h5>`);
  1901. }
  1902. else {
  1903. avatarElement.html(`<i class="${dataIconName} biz-primary-text-color font-20"></i>`);
  1904. }
  1905. }
  1906. else {
  1907. if (dataSrc && dataSrc.includes("~")) {
  1908. dataSrc = dataSrc.slice(2);
  1909. }
  1910. avatarElement.html(`<img src="${_appsettings.asset_url() + dataSrc}" data-dynamic="1" onerror="ReloadImage(event)" class="avatar-img img-fluid rounded-circle" alt="img">`);
  1911. }
  1912. avatarElement.addClass('flex-shrink-0');
  1913. }
  1914. else {
  1915. $(panel).find(".div_details_stages.d-sm-none").removeClass("ml-35");
  1916. }
  1917. }
  1918. confirmPortletChangesModal(installedappid, portletid, panel) {
  1919. var instance = this;
  1920. $('#confirmPortletChangesModal').remove();
  1921. $('body').append(`<div class="modal bootbox fade" id="confirmPortletChangesModal" tabindex="-1" role="dialog" style="display: none;" aria-hidden="true" data-backdrop="false"><div class="modal-dialog" role="document"><div class="modal-content"><div class="modal-header d-none"><h5 class="modal-title">Screen</h5></div><div class="modal-body h-100"><p>Do you want to Save Changes?</p></div><div class="modal-footer d-flex justify-content-between"><button type="button" class="btn btn-secondary" data-dismiss="modal" id="discardChangesBtn">Discard Changes</button><button type="button" class="btn btn-primary" onclick="Unibase.Platform.Widgets.Components.Widget.Instance().SaveScreen();">Save changes</button></div></div></div></div>`);
  1922. $("#confirmPortletChangesModal").modal({
  1923. keyboard: false,
  1924. backdrop: 'static',
  1925. show: true
  1926. });
  1927. $('#confirmPortletChangesModal').attr('data-portletid', portletid);
  1928. $("#discardChangesBtn").click(function (e) {
  1929. instance.isPortletModified = false;
  1930. instance.loadWidgets(installedappid, portletid, panel);
  1931. });
  1932. $('#confirmPortletChangesModal').on('hide.bs.modal', function () {
  1933. $('#confirmPortletChangesModal').remove();
  1934. });
  1935. }
  1936. evaluateDefaultWidgetCallback(panel, IsDetailClose, IsListRefresh) {
  1937. let closeCallbackfn = $(panel).find("#div_App_DefaultWidget").find("#defaultwidgetclosecallbackfn");
  1938. let Callbackfn = $(panel).find("#div_App_DefaultWidget").find("#defaultwidgetcallbackfn");
  1939. let callbck;
  1940. let defaultcallbackfn = $(panel).find("#div_App_DefaultWidget").find("#defaultwidgetclosecallbackfn");
  1941. if (defaultcallbackfn.length > 0) {
  1942. IsListRefresh = false;
  1943. if (!IsDetailClose) {
  1944. $(panel).find(".app_defaultwidget").html('').removeClass("hidden");
  1945. }
  1946. }
  1947. if (closeCallbackfn.length > 0 && IsDetailClose) {
  1948. callbck = closeCallbackfn.val();
  1949. }
  1950. if (Callbackfn.length > 0 && !IsDetailClose) {
  1951. callbck = Callbackfn.val();
  1952. }
  1953. if (callbck != null) {
  1954. eval(callbck);
  1955. }
  1956. return IsListRefresh;
  1957. }
  1958. swipe(direction) {
  1959. if ($('.portletwidget-item[data-mobileswipe="true"]').length == 0) {
  1960. let VisibleContainerId = Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds[Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds.length - 1], instance = this, _installedAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
  1961. let id = $('#' + VisibleContainerId).find("#div_detail_profile").attr('id');
  1962. if (_installedAppId != 0 && id == 'div_detail_profile') {
  1963. let totalLength = $('#' + VisibleContainerId + ' .layout-detail-tabs .tab-item').not('.exclude-tab').find('a').length;
  1964. let activeIndex = $('#' + VisibleContainerId + ' .layout-detail-tabs .tab-item').not('.exclude-tab').find('a.active').parent().index(), isClickEvent = direction, _activeIndex = activeIndex + 1, leftscrolling = _activeIndex - 1, rightscrolling = _activeIndex + 1;
  1965. if (isClickEvent == 'SWIPE_RIGHT' && leftscrolling != 0) {
  1966. $('#' + VisibleContainerId + ' .layout-detail-tabs .tab-item:nth-child(' + leftscrolling + ') a').not('.exclude-tab').click();
  1967. instance.scrollEvent(isClickEvent);
  1968. }
  1969. if ((isClickEvent == 'SWIPE_LEFT')) {
  1970. $('#' + VisibleContainerId + ' .layout-detail-tabs .tab-item:nth-child(' + rightscrolling + ') a').not('.exclude-tab').click();
  1971. instance.scrollEvent(isClickEvent);
  1972. }
  1973. }
  1974. }
  1975. }
  1976. scrollEvent(scroll) {
  1977. let VisibleContainerId = Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds[Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds.length - 1];
  1978. let ActivePortletElement = $('#' + VisibleContainerId + ' .layout-detail-tabs .tab-item').not('.exclude-tab').find('a.active');
  1979. let IndividualWidth = [], index = ActivePortletElement.parent().index() + 1;
  1980. for (let i = 1; i <= index; i++) {
  1981. IndividualWidth.push($('#' + VisibleContainerId).find('.layout-detail-tabs .tab-item:nth-child(' + i + ') a').not('.exclude-tab').outerWidth());
  1982. }
  1983. var sumWidth = IndividualWidth.reduce(function (a, b) { return a + b; }, 0);
  1984. ActivePortletElement.parents('#layout-detail-tabs').scrollLeft(sumWidth - ActivePortletElement.parent().outerWidth());
  1985. }
  1986. toggleAppDefaultWidget(panel) {
  1987. const configHeaderBtnEl = $(panel).find('.div_detailconfigurations_headerbtns');
  1988. const containerId = panel.replace('#', '');
  1989. if (configHeaderBtnEl[0] !== undefined) {
  1990. const observer = new window.MutationObserver(function (mutations) {
  1991. let findableEl;
  1992. if ($(mutations[0].target).hasClass('detail-setting-item')) {
  1993. findableEl = '.detail-setting-item';
  1994. }
  1995. else if ($(mutations[0].target).hasClass('detail-setting-btn')) {
  1996. findableEl = '.detail-setting-btn';
  1997. }
  1998. if (configHeaderBtnEl.find(findableEl).not('.hidden').length) {
  1999. $(`#detailActionsWidget_${containerId}`).removeClass('d-none');
  2000. }
  2001. else {
  2002. $(`#detailActionsWidget_${containerId}`).addClass('d-none');
  2003. }
  2004. });
  2005. observer.observe(configHeaderBtnEl[0], {
  2006. subtree: true,
  2007. attributes: true
  2008. });
  2009. }
  2010. }
  2011. reloadActivePortlet() {
  2012. var installedAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
  2013. var containerId = "#" + Unibase.Platform.Helpers.NavigationHelper.Instance().getLastContainerId();
  2014. var portletId = 0;
  2015. var activePortletsList = Unibase.Themes.Providers.Detail_Settings.Instance().ActivePortlets;
  2016. if (activePortletsList.length > 0) {
  2017. var activePortletIndex = activePortletsList.findIndex(x => x.InstalledAppId == installedAppId);
  2018. if (activePortletIndex > -1) {
  2019. portletId = activePortletsList[activePortletIndex].ActivePortletId;
  2020. }
  2021. }
  2022. if (portletId == 0) {
  2023. portletId = Number($("#hf_PortletId").val());
  2024. }
  2025. Unibase.Themes.Compact.Components.Details.Instance().loadWidgets(installedAppId, portletId, containerId);
  2026. }
  2027. static Instance() {
  2028. if (this.instance === undefined) {
  2029. this.instance = new Details();
  2030. }
  2031. return this.instance;
  2032. }
  2033. }
  2034. Details.inputparameters = [];
  2035. Components.Details = Details;
  2036. })(Components = Compact.Components || (Compact.Components = {}));
  2037. })(Compact = Themes.Compact || (Themes.Compact = {}));
  2038. })(Themes = Unibase.Themes || (Unibase.Themes = {}));
  2039. })(Unibase || (Unibase = {}));