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

nav.js 242KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245
  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 Nav extends Unibase.Platform.Core.BaseComponent {
  19. constructor() {
  20. super();
  21. this.indexInstance = Unibase.Themes.Compact.Components.Index.Instance();
  22. this.layoutIndex = this.indexInstance.layoutIndex;
  23. this.leftLayout = this.indexInstance.leftLayout;
  24. this.topLayout = this.indexInstance.topLayout;
  25. this.topLeftLayout = this.indexInstance.topLeftLayout;
  26. this.currentTheme = this.indexInstance.currentTheme;
  27. this.Logo = this.indexInstance.Logo;
  28. this.desktopMode = this.indexInstance.desktopMode;
  29. this.tabMode = this.indexInstance.tabMode;
  30. this.switchToSecondary = false;
  31. this.isRestrictHidden = '';
  32. this.initialLoad = false;
  33. this.isList = false;
  34. this.isDshboardBck = false;
  35. this.isDshboardBckArray = [];
  36. this.dashboards = [];
  37. this.apps = [];
  38. this.createapps = [];
  39. this.fileCacheHelper.loadCssFile("tenants/themes/compact/components/nav/nav.style.css", null);
  40. }
  41. cssFiles() {
  42. return [];
  43. }
  44. jsFiles() {
  45. return [];
  46. }
  47. html(id, containerid) {
  48. var _a, _b, _c, _d;
  49. var instance = this;
  50. var BranchName = "NA";
  51. var TrimmedBranchName = "NA";
  52. if (Unibase.Platform.Membership.Infos.Identity.getCurrentUser().settings != null) {
  53. var branch = Unibase.Platform.Membership.Infos.Identity.getCurrentUser().settings.find(x => x.settingName == "branchname");
  54. if (branch != undefined) {
  55. BranchName = branch.settingValue;
  56. TrimmedBranchName = BranchName.length > 20 ? branch.settingValue.substring(0, 20) + "..." : BranchName;
  57. }
  58. }
  59. var branchshortcode = "NA";
  60. if (Unibase.Platform.Membership.Infos.Identity.getCurrentUser().settings != null) {
  61. var branchname = Unibase.Platform.Membership.Infos.Identity.getCurrentUser().settings.find(x => x.settingName == "branchcode");
  62. if (branchname != undefined && branchname != null) {
  63. branchshortcode = branchname.settingValue;
  64. }
  65. }
  66. var TrimmedUserName = "";
  67. var UserName = Unibase.Platform.Membership.Infos.Identity.getCurrentUser().name;
  68. if (UserName != null && UserName != undefined && UserName != "") {
  69. TrimmedUserName = UserName.length > 20 ? UserName.substring(0, 20) + "..." : UserName;
  70. }
  71. if (Unibase.Platform.Membership.Infos.Identity.currentUser.isRestrictedUser) {
  72. instance.isRestrictHidden = 'd-none';
  73. }
  74. var adminHtml = '';
  75. let html = `<div class="biz-menu biz-primary-color biz-primary-text-color biz-highlight-color"><div class="biz-nav-fullwidth hidden"></div><div class="biz-main-menu shadow">`;
  76. html += `<div class="menu-content-wrap">
  77. <ul class="navbar-nav flex-column">
  78. <li class="nav-item nav-button d-xl-none d-lg-block" id="nav-button-close">
  79. <a class="nav-link btn btn-icon btn-flush-nav btn-rounded biz-primary-text-color w-100" href="javascript:;" id="biz_nav_close">
  80. <span class="btn-icon-wrap"><i class="dripicons dripicons-cross"></i></span>
  81. </a>
  82. </li>` +
  83. `<li class="nav-item sunbnav-active nav-button" id="nav-button-dashboards" data-buttonType='nav-button-dashboards'>
  84. <a class="nav-link d-none" href="javascript:;" onclick="javascript:Unibase.Themes.Compact.Components.Nav.Instance().showNavOptions(1);" id="lnkDashboards">
  85. <span class="nav-icon-wrap" data-tooltip="true" title="Dashboard"><i class="dripicons dripicons-archive nav-link-icon"></i></span>
  86. </a>
  87. </li>`;
  88. html += `<li class="nav-item nav-button d-none" id="nav-button-apps" data-buttonType='nav-button-apps'>
  89. <a class="nav-link d-none" href="javascript:;" onclick="javascript:Unibase.Themes.Compact.Components.Nav.Instance().showNavOptions(2);" id="lnkApps">
  90. <span class="nav-icon-wrap" data-tooltip="true" title="Apps"><i class="dripicons dripicons-view-apps nav-link-icon"></i></span>
  91. </a>
  92. </li>
  93. <li class="nav-item nav-button d-none" id="nav-button-create">
  94. <a class="nav-link d-none" href="javascript:;" onclick="javascript:Unibase.Themes.Compact.Components.Nav.Instance().showNavOptions(3);" id="lnkCreate">
  95. <span class="nav-icon-wrap" data-tooltip="true" title="Create"><i class="dripicons dripicons-plus"></i></span>
  96. </a>
  97. </li>
  98. <li class="nav-item nav-button d-none" id="nav-button-reports" data-buttonType='nav-button-reports'>
  99. <a class="nav-link d-none" href="javascript:;" onclick="javascript:Unibase.Themes.Compact.Components.Nav.Instance().showNavOptions(4);" id="lnkReports">
  100. <span class="nav-icon-wrap" data-tooltip="true" title="Reports"><i class="dripicons dripicons-graph-pie nav-link-icon"></i></span>
  101. </a>
  102. </li>
  103. </ul>
  104. </div>
  105. <!-- Sidebar Fixnav -->
  106. <div class="biz-bottom-nav-menu">
  107. <ul class="nav nav-light">
  108. <li class="nav-item nav-button d-none" id="nav-button-conversation">
  109. <a class="nav-link dropdown-toggle no-caret" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false" id="lnkConversation">
  110. <span class="nav-icon-wrap"><i class="dripicons dripicons-conversation"></i></span>
  111. </a>
  112. </li>`;
  113. if ((_a = this.currentUser) === null || _a === void 0 ? void 0 : _a.isAdmin) {
  114. let hiddenClass = this.layoutIndex == instance.topLayout ? "d-none d-xl-block" : "";
  115. if (this.layoutIndex == instance.leftLayout || !instance.desktopMode) {
  116. adminHtml = `<li class="nav-item dropdown" id="nav-settings-dropdown">
  117. <a href="javascript:;" class="nav-link dropdown-toggle no-caret py-1" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">
  118. <span class="nav-icon-wrap"><i class="fa fa-cogs"></i></span>
  119. </a>
  120. <div class="dropdown-menu dropdown-menu-right biz-custom-scrollbar moreoptions" id="bizAppSettingsDpMenu">
  121. <div class="d-none d-xl-block"><a href="javascript:;" onclick="Unibase.Themes.Compact.Components.Nav.Instance().loadLayoutBuilder()" class="dropdown-item"><i class="dropdown-icon fa fa-desktop"></i><span>Layout Builder</span></a>
  122. <a href="javascript:;" onclick="Unibase.Themes.Compact.Components.Nav.Instance().manageDashboards()" class="dropdown-item db-setting-dp-item"><i class=" dropdown-icon fa fa-list"></i><span>Manage Dashboards</span></a>
  123. <a href="javascript:;" onclick="Unibase.Themes.Compact.Components.Nav.Instance().addWidget()" class="dropdown-item db-setting-dp-item"><i class="dropdown-icon fa fa-arrows-alt"></i><span>Design Dashboard</span></a></div>
  124. <a href="javascript:;" onclick="Unibase.Themes.Compact.Components.Nav.Instance().loadAppGroups()" class="dropdown-item"><i class=" dropdown-icon fa fa-list"></i><span>Manage Apps</span></a>
  125. <div class="dropdown-divider"></div>
  126. <a class="dropdown-item" href="javascript:;" id="btnrefresh_dataapis">
  127. <i class=" dropdown-icon fa fa-refresh"></i>
  128. <span>Refresh DataApis</span>
  129. </a>
  130. <a class="dropdown-item" href="javascript:;" id="btnrefresh_actionproviders">
  131. <i class=" dropdown-icon fa fa-refresh"></i>
  132. <span>Refresh Action Providers</span>
  133. </a>
  134. <a class="dropdown-item" href="javascript:;" id="btnrefresh_integrationproviders">
  135. <i class=" dropdown-icon fa fa-refresh"></i>
  136. <span>Refresh Integration Providers</span>
  137. </a>
  138. <a class="dropdown-item" href="javascript:;" id="btnrefresh_Controls">
  139. <i class=" dropdown-icon fa fa-refresh"></i>
  140. <span>Refresh Controls</span>
  141. </a>
  142. <a class="dropdown-item" href="javascript:;" id="btnrefresh_Forms">
  143. <i class=" dropdown-icon fa fa-refresh"></i>
  144. <span>Refresh Forms</span>
  145. </a>
  146. <a class="dropdown-item" href="javascript:;" id="btnrefresh_Autocompletes">
  147. <i class=" dropdown-icon fa fa-refresh"></i>
  148. <span>Refresh AutoCompletes</span>
  149. </a>
  150. <a class="dropdown-item" href="javascript:;" id="btnrefresh_Widgetlayouts">
  151. <i class="dropdown-icon fa fa-refresh"></i>
  152. <span>Refresh WidgetLayouts</span>
  153. </a>
  154. <a class="dropdown-item" href="javascript:;" id="btnrefresh_FileProviders">
  155. <i class=" dropdown-icon fa fa-refresh"></i>
  156. <span>Refresh FileProviders</span>
  157. </a>
  158. <a class="dropdown-item" href="javascript:;" id="btnrefresh_PrintProviders">
  159. <i class=" dropdown-icon fa fa-refresh"></i>
  160. <span>Refresh PrintProviders</span>
  161. </a>
  162. <a class="dropdown-item" href="javascript:;" id="btnrefresh_StaticReportObject">
  163. <i class=" dropdown-icon fa fa-refresh"></i>
  164. <span>Refresh StaticReportObject</span>
  165. </a>
  166. <a class="dropdown-item" href="javascript:;" id="btnupdate_datalistcolums">
  167. <i class=" dropdown-icon fa fa-refresh"></i>
  168. <span>Update ReportQuery</span>
  169. </a>
  170. <a class="dropdown-item" href="javascript:;" id="btnrefresh_cryptoproviders">
  171. <i class=" dropdown-icon fa fa-refresh"></i>
  172. <span>Refresh CryptoProviders</span>
  173. </a>
  174. <a class="dropdown-item" href="javascript:;" id="btnrefresh_templateproviders">
  175. <i class=" dropdown-icon fa fa-refresh"></i>
  176. <span>Refresh TemplateProviders</span>
  177. </a>
  178. <a class="dropdown-item" href="javascript:;" id="btn_refreshnotificationproviders">
  179. <i class=" dropdown-icon fa fa-refresh"></i>
  180. <span>Refresh AutomationProviders</span>
  181. </a>
  182. </div>
  183. </li>`;
  184. adminHtml += `<li class="nav-item d-xl-none" id="nav-button-changebranch">
  185. <a href="javascript:;" class="nav-link lnk_nav_changebranch py-1" id="lnk_nav_changebranch"><div class="mx-1 biz-primary-text-color border border-2 nav-location-icon rounded" data-tooltip="true" title="` + BranchName + `"><p class="text-uppercase"style="padding: 0 2px;font-size: 10px;font-weight: 700;">` + branchshortcode + `</p></div></a>
  186. </li>
  187. <li class="nav-item dropdown mob-view" id="nav-profile-dropdown">
  188. <a class="nav-link dropdown-toggle no-caret py-1 pb-2" href="javascript:;" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
  189. <span class="nav-icon-wrap profile-Img-Update" data-tooltip="true" title="Profile"><i class="la la-user-circle font-25"></i></span>
  190. </a>
  191. <div class="dropdown-menu dropdown-menu-right profile-dropdown-menu" data-dropdown-in="flipInX" data-dropdown-out="flipOutX">
  192. <a class="dropdown-item d-flex align-items-center border-bottom py-3 lnk_nav_profile" href="javascript:;" id="lnk_nav_profile" data-tooltip="true" title="` + UserName + `"> <div class="w-30p"><i class="fa fa-user"></i></div> <div class="link_nav_profile text-truncate w-100"> ` + TrimmedUserName + `</div> </a>`;
  193. if (this.switchToSecondary) {
  194. adminHtml += `<a class="dropdown-item border-bottom d-flex align-items-center py-3" href="#"><div class="w-30p"><i class="fa fa-server"></i></div><div class="">Switch to Secondary</div></a>`;
  195. }
  196. adminHtml += `<a class="dropdown-item border-bottom d-flex align-items-center py-3 btn_cloudsettings 1" id="btn_cloudsettings" href="javascript:;"><div class="w-30p"><i class="fa fa-cloud"></i></div><div class="">Cloud Settings</div></a>
  197. <a href="javascript:;" class="dropdown-item border-bottom d-none align-items-center py-3 lnk_nav_changebranch"><div class="w-30p"><i class="fa fa-map-marker"></i></div><div>${BranchName}</div></a><a href="javascript:;" class="dropdown-item border-bottom d-none align-items-center py-3 app-settings-dropdown" id="nav-settings-dropdown" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false"><div class="w-30p"><i class="fa fa-cogs"></i></div><div>Settings</div></a>
  198. <a class="dropdown-item d-flex align-items-center py-3 border-bottom userBtnLogoff" id="userBtnLogoff" href="javascript:;"><span class="w-30p"><i class="fa fa-sign-out"></i></span><span>User Logoff</span></a>
  199. <a class="dropdown-item btnLogoff d-flex align-items-center py-3 btn_cloudsettings" id="btnLogoff" href="javascript:;"><div class="w-30p"> <i class="fa fa-power-off"></i></div> <div>Logoff </div></a>
  200. </div>
  201. </li>`;
  202. }
  203. html += adminHtml;
  204. }
  205. if (((_b = this.currentUser) === null || _b === void 0 ? void 0 : _b.isAdmin) == false) {
  206. let hiddenClass = this.layoutIndex == instance.topLayout ? "d-none d-xl-block" : "";
  207. adminHtml = `
  208. <li class="nav-item dropdown mob-view" id="nav-profile-dropdown">
  209. <a class="nav-link dropdown-toggle no-caret" href="javascript:;" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
  210. <span class="nav-icon-wrap profile-Img-Update" data-tooltip="true" title="Profile"><i class="la la-user-circle font-25"></i></span>
  211. </a>
  212. <div class="dropdown-menu dropdown-menu-right" data-dropdown-in="flipInX" data-dropdown-out="flipOutX">
  213. <a class="dropdown-item d-flex align-items-center border-bottom py-3 lnk_nav_profile" href="javascript:;" id="lnk_nav_profile" data-tooltip="true" title="` + UserName + `"> <div class="w-30p"><i class="fa fa-user"></i></div> <div class="link_nav_profile text-truncate w-100"> ` + TrimmedUserName + `</div></a>`;
  214. if (this.switchToSecondary) {
  215. adminHtml += `<a class="dropdown-item border-bottom d-flex align-items-center py-3" href="javascript:;"><div class="w-30p"><i class="fa fa-server"></i></div><div class="">Switch to Secondary</div></a>`;
  216. }
  217. adminHtml += `<a class="dropdown-item d-flex align-items-center py-3 border-bottom userBtnLogoff" id="userBtnLogoff" href="javascript:;"><span class="w-30p"><i class="fa fa-sign-out"></i></span><span>User Logoff</span></a>
  218. <a class="dropdown-item btnLogoff d-flex align-items-center py-3 btn_cloudsettings" id="btnLogoff" href="javascript:;"><div class="w-30p"> <i class="fa fa-power-off"></i></div> <div>Logoff </div></a>
  219. </div>
  220. </li>`;
  221. html += adminHtml;
  222. }
  223. if (this.layoutIndex == instance.leftLayout || this.layoutIndex == instance.topLayout || this.layoutIndex == instance.topLeftLayout) {
  224. if (this.layoutIndex == instance.topLayout || this.layoutIndex == instance.topLeftLayout) {
  225. let otherHtml = `<a class="nav-link dropdown-toggle no-caret" href="javascript:;" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
  226. <span class="nav-icon-wrap profile-Img-Update" data-tooltip="true" title="Profile"><i class="la la-user-circle font-25"></i></span>
  227. </a>
  228. <div class="dropdown-menu dropdown-menu-right bg-white profile-dropdown-menu userdetails" data-dropdown-in="flipInX" data-dropdown-out="flipOutX">
  229. <a class="dropdown-item d-flex align-items-center border-bottom py-3 lnk_nav_profile" href="javascript:;" id="lnk_nav_profile" data-tooltip="true" title="` + UserName + `"> <div class="w-30p"><i class="fa fa-user"></i></div> <div class="link_nav_profile text-truncate w-100"> ` + TrimmedUserName + `</div> </a>`;
  230. if (this.switchToSecondary) {
  231. otherHtml += `<a class="dropdown-item border-bottom d-flex align-items-center py-3" href="#"><div class="w-30p"><i class="fa fa-server"></i></div><div class="">Switch to Secondary</div></a>`;
  232. }
  233. if ((_c = Unibase.Platform.Membership.Infos.Identity.currentUser) === null || _c === void 0 ? void 0 : _c.isAdmin) {
  234. otherHtml += `<a class="dropdown-item border-bottom d-flex align-items-center py-3 btn_cloudsettings" id="btn_cloudsettings" href="javascript:;"><div class="w-30p"><i class="fa fa-cloud"></i></div><div class="">Cloud Settings</div></a>`;
  235. }
  236. otherHtml += `
  237. <a href="javascript:;" class="dropdown-item border-bottom d-flex align-items-center py-3 lnk_nav_changebranch d-md-none" id="lnk_nav_changebranch"><span class="w-30p"><i class="fa fa-map-marker font-18 text-dark pl-1"></i></span>${BranchName}</a>
  238. <a href="javascript:;" class="dropdown-item border-bottom d-flex align-items-center py-3 usertheme" onclick="javascript:Unibase.Themes.Compact.Components.Nav.Instance().loadUserTheme();"><div class="w-30p"><i class="la la-fill-drip font-25" style="transform: rotateY(180deg);"></i></div>Themes</a>
  239. <a href="javascript:;" class="dropdown-item border-bottom d-flex align-items-center py-3 btn_help" id="btn_help" aria-haspopup="true" aria-expanded="false"><span class="w-30p"><i class="ti-help-alt text-dark"></i></span><div>Help</div></a>
  240. <a href="javascript:;" class="app-settings-dropdown no-caret dropdown-item border-bottom d-flex align-items-center py-3" id="nav-settings-dropdown" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false"><span class="w-30p"><i class="fa fa-cogs text-dark"></i></span><div>Settings</div></a>
  241. <div class="dropdown-menu dropdown-menu-right biz-custom-scrollbar moreoptions" id="bizAppSettingsDpMenu">
  242. <div class="d-none d-xl-block"><a href="javascript:;" onclick="Unibase.Themes.Compact.Components.Nav.Instance().loadLayoutBuilder()" class="dropdown-item"><i class="dropdown-icon fa fa-desktop"></i><span>Layout Builder</span></a>
  243. <a href="javascript:;" onclick="Unibase.Themes.Compact.Components.Nav.Instance().manageDashboards()" class="dropdown-item db-setting-dp-item"><i class="dropdown-icon fa fa-list"></i><span>Manage Dashboards</span></a>
  244. <a href="javascript:;" onclick="Unibase.Themes.Compact.Components.Nav.Instance().addWidget()" class="dropdown-item db-setting-dp-item"><i class="dropdown-icon fa fa-arrows-alt"></i><span>Design Dashboard</span></a></div>
  245. <a href="javascript:;" onclick="Unibase.Themes.Compact.Components.Nav.Instance().loadAppGroups()" class="dropdown-item"><i class="dropdown-icon fa fa-list"></i><span>Manage Apps</span></a>
  246. <div class="dropdown-divider"></div>
  247. <a class="dropdown-item" href="javascript:;" id="btnrefresh_dataapis">
  248. <i class="dropdown-icon fa fa-refresh"></i>
  249. <span>Refresh DataApis</span>
  250. </a>
  251. <a class="dropdown-item" href="javascript:;" id="btnrefresh_actionproviders">
  252. <i class=" dropdown-icon fa fa-refresh"></i>
  253. <span>Refresh Action Providers</span>
  254. </a>
  255. <a class="dropdown-item" href="javascript:;" id="btnrefresh_integrationproviders">
  256. <i class=" dropdown-icon fa fa-refresh"></i>
  257. <span>Refresh Integration Providers</span>
  258. </a>
  259. <a class="dropdown-item" href="javascript:;" id="btnrefresh_Controls">
  260. <i class=" dropdown-icon fa fa-refresh"></i>
  261. <span>Refresh Controls</span>
  262. </a>
  263. <a class="dropdown-item" href="javascript:;" id="btnrefresh_Forms">
  264. <i class=" dropdown-icon fa fa-refresh"></i>
  265. <span>Refresh Forms</span>
  266. </a>
  267. <a class="dropdown-item" href="javascript:;" id="btnrefresh_Autocompletes">
  268. <i class=" dropdown-icon fa fa-refresh"></i>
  269. <span>Refresh Autocompletes</span>
  270. </a>
  271. <a class="dropdown-item" href="javascript:;" id="btnrefresh_Widgetlayouts">
  272. <i class="dropdown-icon fa fa-refresh"></i>
  273. <span>Refresh WidgetLayouts</span>
  274. </a>
  275. <a class="dropdown-item" href="javascript:;" id="btnrefresh_FileProviders">
  276. <i class=" dropdown-icon fa fa-refresh"></i>
  277. <span>Refresh FileProviders</span>
  278. </a>
  279. <a class="dropdown-item" href="javascript:;" id="btnrefresh_PrintProviders">
  280. <i class=" dropdown-icon fa fa-refresh"></i>
  281. <span>Refresh PrintProviders</span>
  282. </a>
  283. <a class="dropdown-item" href="javascript:;" id="btnrefresh_StaticReportObject">
  284. <i class=" dropdown-icon fa fa-refresh"></i>
  285. <span>Refresh StaticReportObject</span>
  286. </a>
  287. <a class="dropdown-item" href="javascript:;" id="btnupdate_datalistcolums">
  288. <i class=" dropdown-icon fa fa-refresh"></i>
  289. <span>Update ReportQuery</span>
  290. </a>
  291. <a class="dropdown-item" href="javascript:;" id="btnrefresh_templateproviders">
  292. <i class=" dropdown-icon fa fa-refresh"></i>
  293. <span>Refresh TemplateProviders</span>
  294. </a>
  295. <a class="dropdown-item" href="javascript:;" id="btn_refreshnotificationproviders">
  296. <i class=" dropdown-icon fa fa-refresh"></i>
  297. <span>Refresh AutomationProviders</span>
  298. </a>
  299. </div>
  300. <a class="dropdown-item d-flex align-items-center py-3 border-bottom userBtnLogoff" id="userBtnLogoff" href="javascript:;"><span class="w-30p"><i class="fa fa-sign-out"></i></span><span>User Logoff</span></a>
  301. <a class="dropdown-item btnLogoff d-flex align-items-center py-3 btn_cloudsettings" id="btnLogoff" href="javascript:;"><div class="w-30p"><i class="fa fa-power-off"></i></div>Logoff</a>
  302. </div>`;
  303. $('#nav-profile-dropdown').append(otherHtml);
  304. }
  305. let layoutNavId = "";
  306. if (this.layoutIndex == instance.leftLayout) {
  307. if (instance.desktopMode)
  308. layoutNavId = "#biz-right-side-menu .navbar-nav";
  309. else
  310. layoutNavId = "#biz-layout-1-nav";
  311. }
  312. else if (this.layoutIndex == instance.topLayout) {
  313. layoutNavId = "#layout2-nav";
  314. }
  315. else if (this.layoutIndex == instance.topLeftLayout) {
  316. layoutNavId = "#biz-layout-3-nav";
  317. }
  318. if (this.desktopMode && (this.layoutIndex == instance.topLayout || this.layoutIndex == instance.topLeftLayout)) {
  319. $(layoutNavId).prepend(adminHtml);
  320. }
  321. if (instance.tabMode) {
  322. $(layoutNavId).prepend(`<li class="nav-item">
  323. <a href="javascript:;" class="nav-link lnk_nav_changebranch" id="lnk_nav_changebranch" data-tooltip="true" title="${BranchName}"><div class="biz-primary-text-color border border-2 nav-location-icon rounded" ><p class="text-uppercase font-weight-700 text-center" style="padding: 0 2px;font-size: 10px;width:2rem">${branchshortcode}</p></div></a>
  324. </li>
  325. <li class="nav-item mx-2 mx-md-0 chat-nav-item d-none dropdown-notifications">
  326. <a href="javascript:;" class="navbar-settings-toggle-btn nav-link" title="Chat" onclick="Unibase.Themes.Compact.Components.Nav.Instance().loadChat();">
  327. <span class="nav-icon-wrap"><i class="fa fa-comments-o font-20 chatAppIcon"></i></span><span class="badge-wrap">
  328. <span class="badge badge-danger font-12 d-none" style="position:absolute;top:-6px;left:1px" id="chatIconBadge">0</span>
  329. </span>
  330. </a>
  331. </li>
  332. <li class="nav-item dropdown dropdown-notifications d-none d-md-block mx-2 mx-md-0 ">
  333. <a href="javascript:;" class="navbar-settings-toggle-btn nav-link no-caret" onclick="javascript:Unibase.Themes.Compact.Components.Notification.Instance().loadReminders();">
  334. <span class="nav-icon-wrap" data-tooltip="true" title="Notifications"><i class="dripicons dripicons-bell font-17"></i>
  335. </span>
  336. <span class="badge-wrap">
  337. <span class="badge badge-danger font-12 d-none" id="notificatonIconBadge"></span>
  338. </span>
  339. </a>
  340. </li>
  341. <li class="nav-item dropdown dropdown-notifications d-none d-md-block mx-2 mx-md-0">
  342. <a href="javascript:;" class="navbar-settings-toggle-btn nav-link no-caret" onclick="javascript:Unibase.Themes.Compact.Components.Notification.Instance().loadTasks();">
  343. <span class="nav-icon-wrap" data-tooltip="true" title="Tasks"><i class="dripicons dripicons-checklist font-17"></i></span>
  344. <span class="badge-wrap">
  345. <span class="badge badge-danger font-12 d-none" id="taskIconBadge"></span>
  346. </span>
  347. </a>
  348. </li>`);
  349. }
  350. else {
  351. let mobileTopNavItemsHtml = `<li class="nav-item nav-date-filter-dp ${instance.isRestrictHidden}" id="navCmnDateFilterDp">
  352. <a href="javascript:;" class="nav-link dropdown-toggle no-caret biz-primary-text-color" data-toggle="dropdown"><i class="las la-calendar font-25"></i>
  353. </a>
  354. <div class="dropdown-menu nav-date-filter-dp-menu py-1 px-0" id="dynamic-filters_navCmnDateFilter" onclick="event.stopPropagation();">
  355. </div>
  356. </li>
  357. <li class="nav-item mx-md-0 chat-nav-item d-none dropdown-notifications">
  358. <a href="javascript:;" class="navbar-settings-toggle-btn nav-link" title="Chat" onclick="Unibase.Themes.Compact.Components.Nav.Instance().loadChat();">
  359. <span class="nav-icon-wrap"><i class="fa fa-comments-o font-20 chatAppIcon"></i></span><span class="badge-wrap">
  360. <span class="badge badge-danger font-12 d-none" style="position:absolute;top:-6px;left:1px" id="chatIconBadge">0</span>
  361. </span>
  362. </a>
  363. </li>
  364. <li class="nav-item dropdown dropdown-notifications">
  365. <a href="javascript:;" class="navbar-settings-toggle-btn nav-link no-caret" onclick="javascript:Unibase.Themes.Compact.Components.Notification.Instance().loadTasks('tab-view');">
  366. <span class="nav-icon-wrap"><i class="dripicons dripicons-bell font-17"></i></span>
  367. <span class="badge-wrap">
  368. <span class="badge badge-danger font-12 d-none" id="notificatonIconBadge"></span>
  369. </span>
  370. </a>
  371. </li>
  372. <li class="nav-item dropdown d-none">
  373. <a class="nav-link dropdown-toggle no-caret" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false" id="lnkConversation">
  374. <span class="nav-icon-wrap"><i class="dripicons dripicons-conversation text-white"></i></span>
  375. </a>
  376. </li>`;
  377. $(layoutNavId).find('.nav-item').not('#nav-profile-dropdown').remove();
  378. $(layoutNavId).prepend(mobileTopNavItemsHtml);
  379. if (screen.width <= 360) {
  380. $(layoutNavId).find('li a i').removeClass('font-25 font-20 font-17').addClass('font-18');
  381. $(layoutNavId).find('li.chat-nav-item').removeClass('mx-2');
  382. }
  383. }
  384. if (instance.tabMode) {
  385. let html = `<li class="nav-item dropdown layout-2 right-side-menu-userdetails" id="right_side_menu_userdetails">
  386. <a class="nav-link dropdown-toggle no-caret text-white" href="javascript:void(0);" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">
  387. <span class="nav-icon-wrap profile-Img-Update" data-tooltip="true" title="Profile"><i class="la la-user-circle font-25"></i></span>
  388. </a>
  389. <div class="dropdown-menu userdetails">
  390. <a class="dropdown-item d-flex align-items-center border-bottom py-3 lnk_nav_profile" href="javascript:;" id="lnk_nav_profile" data-tooltip="true" title="` + UserName + `"> <div class="w-30p"><i class="fa fa-user"></i></div> <div class="link_nav_profile text-truncate w-100"> ` + TrimmedUserName + `</div> </a>`;
  391. if (this.switchToSecondary) {
  392. html += `<a class="dropdown-item border-bottom d-flex align-items-center py-3" href="#"><div class="w-30p"><i class="fa fa-server"></i></div><div class="">Switch to Secondary</div></a>`;
  393. }
  394. if ((_d = Unibase.Platform.Membership.Infos.Identity.currentUser) === null || _d === void 0 ? void 0 : _d.isAdmin) {
  395. html += `<a class="dropdown-item border-bottom d-flex align-items-center py-3 btn_cloudsettings" id="btn_cloudsettings" href="javascript:;"><div class="w-30p"><i class="fa fa-cloud"></i></div><div class="">Cloud Settings</div></a>`;
  396. }
  397. html += `<a href="javascript:;" class="dropdown-item border-bottom d-flex align-items-center py-3 btn_help" id="btn_help" aria-haspopup="true" aria-expanded="false"><span class="w-30p"><i class="ti-help-alt text-dark"></i></span><div>Help</div></a><a class="dropdown-item d-flex align-items-center py-3 border-bottom userBtnLogoff" id="userBtnLogoff" href="javascript:;"><span class="w-30p"><i class="fa fa-sign-out"></i></span><span>User Logoff</span></a>
  398. <a class="dropdown-item btnLogoff d-flex align-items-center py-3 btn_cloudsettings" id="btnLogoff" href="javascript:;"><div class="w-30p"> <i class="fa fa-power-off"></i></div> <div>Logoff </div></a>
  399. </div>
  400. </li>
  401. ${instance.desktopMode && !instance.indexInstance.isLeftLayout() ? `<li class="nav-item nav-date-filter-item ${instance.isRestrictHidden}" id="navCmnDateFilterItem"><div class="flex-center position-relative"><div id="dynamic-filters_navCmnDateFilter"></div><span class="nav-icon-wrap line-height-0 cursor-pointer" data-tooltip="true" title="Global Datepicker" id="navGlobalDatepickerIcon"><i class="las la-calendar font-25"></i></span></div></li>` : `<li class="nav-item dropdown nav-date-filter-dp mx-2 mx-md-0 ${instance.isRestrictHidden}" id="navCmnDateFilterDp">
  402. <a href="javascript:;" class="nav-link dropdown-toggle no-caret biz-primary-text-color" data-toggle="dropdown"><span class="nav-icon-wrap" data-tooltip="true" title="Global Datepicker"><i class="las la-calendar font-25"></i></span>
  403. </a>
  404. <div class="dropdown-menu nav-date-filter-dp-menu py-1" id="dynamic-filters_navCmnDateFilter" onclick="event.stopPropagation();">
  405. </div>
  406. </li>`}
  407. <li class="nav-item dropdown mx-2 mx-md-0 d-none ${instance.layoutIndex == instance.leftLayout ? 'd-flex' : ''} usertheme">
  408. <a href="javascript:;" class="navbar-settings-toggle-btn nav-link" onclick="javascript:Unibase.Themes.Compact.Components.Nav.Instance().loadUserTheme();">
  409. <span class="nav-icon-wrap" data-tooltip="true" title="Themes"><i class="la la-fill-drip font-25" style="transform: rotateY(180deg);"></i></span>
  410. </a>
  411. </li>`;
  412. $(layoutNavId).prepend(html);
  413. }
  414. $(".navbar-settings-toggle-btn").click(function () {
  415. $(".biz-wrapper,.hk-wrapper").addClass("biz-settings-toggle");
  416. });
  417. $('#right_side_menu_userdetails').on('show.bs.dropdown', function () {
  418. $(".settings-panel-close").click();
  419. $('#right_side_menu_userdetails').addClass('right-sunbnav-active');
  420. });
  421. $('#right_side_menu_userdetails').on('hide.bs.dropdown', function () {
  422. $('#right_side_menu_userdetails').removeClass('right-sunbnav-active');
  423. });
  424. $(".btn_help").click(function () {
  425. Unibase.Platform.Helpers.FileCacheHelper.Instance().loadJsFiles(['platform/apps/managers/appmanager.js'], function () {
  426. Unibase.Platform.Apps.Managers.AppManager.Instance().getInstallAppId("Bizgaze_Extension_Support_Help_App_Help").then(function (res) {
  427. Unibase.Themes.Compact.Components.Nav.Instance().loadList(res.result.InstalledAppId);
  428. });
  429. });
  430. });
  431. Unibase.Platform.Analytics.Components._CommonFilter.Instance().commonFilter(0, '_navCmnDateFilter');
  432. $('#navCmnDateFilterDp').on('show.bs.dropdown', function () {
  433. $(".settings-panel-close").click();
  434. $(this).addClass('right-sunbnav-active');
  435. Unibase.Platform.Analytics.Components._CommonFilter.Instance().commonFilter(0, '_navCmnDateFilter');
  436. });
  437. $('#navCmnDateFilterDp').on('hide.bs.dropdown', function () {
  438. $(this).removeClass('right-sunbnav-active');
  439. });
  440. $('#navGlobalDatepickerIcon').click(function () {
  441. $('#report-daterange_navCmnDateFilter-0').trigger('click');
  442. });
  443. if (!instance.desktopMode) {
  444. const filterIconEl = $('#navCmnDateFilterDp .nav-link');
  445. filterIconEl.removeAttr('data-toggle');
  446. $('#dynamic-filters_navCmnDateFilter').addClass('d-none');
  447. filterIconEl.click(function () {
  448. Unibase.Platform.Analytics.Components._CommonFilter.Instance().commonFilter(0, '_navCmnDateFilter');
  449. $("#bizCmnDateFilterModal").modal({
  450. show: true,
  451. backdrop: 'static'
  452. });
  453. });
  454. }
  455. }
  456. html += `</ul></div>
  457. <!--/ Sidebar Fixnav-->
  458. </div>
  459. <!-- Secondary Menu Pane -->
  460. <div class="biz-submenu">
  461. <a class="navbar-brand" onclick="javascript:Unibase.Themes.Compact.Components.Nav.Instance().getNavParentGroups();">
  462. <img class="brand-img d-inline-block" src="${this.Logo}" alt="brand" onerror="ReloadImage(event)" data-dynamic="1" style="height: 35px">
  463. </a>`;
  464. html += `<div class="nav-header header-wth-search border-bottom mb-10 mx-10 ${instance.isRestrictHidden}">
  465. <div class="nav-header-text">
  466. <a class="d-flex btn-search-toggle w-100" href="javascript:void(0);" id="searchToggleBtn">
  467. <ul class="d-flex list-inline justify-content-between align-items-center w-100">
  468. <li class="nav-title-item text-truncate mr-10"><span class="sub-heading-uppercase nav-title">Title</span></li>
  469. <li class="nav-search-icon-item"><i class="fa fa-search"></i></span></li>
  470. </ul></a>
  471. </div>
  472. <div class="form-group nav-search w-100">
  473. <div class="input-group input-group-type-2">
  474. <input type="text" id="txt_global_Search" placeholder="Search..." class="form-control transparent-input pl-1 pr-25" autocomplete="off">
  475. <div class="input-group-append">
  476. <span class="input-group-text pa-0">
  477. <a href="javascript:;" class="search-icon fe-x clear-search btn btn-icon btn-flush-biz-theme btn-rounded flush-soft-hover w-20p h-20p" onclick="Unibase.Themes.Compact.Components.Nav.Instance().clearNavSearch();">
  478. <span class="btn-icon-wrap"><i class="dripicons dripicons-cross"></i></span>
  479. </a>
  480. <a href="javascript:;" class="search-icon fe-x close-search btn btn-icon btn-flush-biz-theme btn-rounded flush-soft-hover w-20p h-20p">
  481. <span class="btn-icon-wrap"><i class="dripicons dripicons-cross"></i></span>
  482. </a>
  483. </span>
  484. </div>
  485. </div>
  486. </div>
  487. </div>
  488. <div data-simplebar class="simple-scroll-bar submenu-scroll-bar flex-grow-1 pb-15">
  489. <div class="nav-options-container nav-dashboards" id="nav-dashboards-container">
  490. <ul class="navbar-nav nav-dashboards" id="nav-dashboards" data-navigation="Back2Path"></ul>
  491. </div>
  492. <div class="nav-options-container nav-apps hidden" id="nav-apps-container">
  493. <ul class="navbar-nav flex-column" id="nav-apps"></ul>
  494. </div>
  495. <div class="nav-options-container nav-create hidden" id="nav-create-container">
  496. <ul class="navbar-nav flex-column" id="nav-create"></ul>
  497. </div>
  498. <div class="nav-options-container nav-reports hidden" id="nav-reports-container">
  499. <ul class="navbar-nav flex-column" id="nav-reports"></ul>
  500. </div>
  501. <div class="nav-options-container nav-notifications hidden nav-item dropdown-notifications" id="nav-notifications-container">
  502. <div id="nav-notifications" class=""><div class="notifications-nicescroll-bar biz-dropdown-tasks"></div></div>
  503. </div>
  504. <div class="nav-options-container nav-filters hidden" id="nav-filters-container">
  505. <div class="navbar-nav flex-column" id="nav-filters_old"></div>
  506. <div id="_report_filter_buttons"></div></div>
  507. <div class="nav-options-container nav-widgets-container hidden" id="nav-widgets-container">
  508. <div id="nav-widgets"></div>
  509. </div>
  510. <div class="nav-options-container nav-widgets-container hidden" id="nav-branches-container">
  511. <ul id="nav-branches" class="nav"></ul>
  512. </div>
  513. <div class="nav-options-container nav-navitems-container hidden" id="nav-navitems-container">
  514. <ul id="nav-navitems" class="navbar-nav flex-column" data-navigation="Back2Path"></ul>
  515. </div>
  516. </div>
  517. <!-- /Secondary Menu Pane -->
  518. </div></div>`;
  519. return html;
  520. }
  521. loadimage() {
  522. var _a;
  523. var userImage = (_a = this.currentUser) === null || _a === void 0 ? void 0 : _a.photoUrl;
  524. if (userImage != null && userImage != undefined && userImage != "") {
  525. $("#loginUserImg").attr("src", userImage);
  526. }
  527. else {
  528. $("#loginUserImg").attr("src", "tenants/themes/compact/imgs/avatar.svg");
  529. }
  530. }
  531. load(id, containerid, callback) {
  532. const instance = this;
  533. var html = this.html(0, containerid);
  534. if (this.layoutIndex == instance.leftLayout) {
  535. $("#" + containerid).html(html);
  536. }
  537. $(window).on('orientationchange', function () {
  538. if ((screen.width < 1198 || isMobileApp) && screen.width > screen.height) {
  539. var msg = 'Screen Rotation detected <br> Do you wish to Refresh ? ';
  540. bootbox.confirm({
  541. message: msg,
  542. closeButton: false,
  543. buttons: {
  544. confirm: {
  545. label: 'OK',
  546. className: 'btn-success'
  547. },
  548. cancel: {
  549. label: 'Cancel',
  550. className: 'btn-danger'
  551. }
  552. },
  553. callback: function (result) {
  554. if (result) {
  555. location.reload();
  556. }
  557. else {
  558. $('#modal_popup_EditLineItem').modal('hide');
  559. bootbox.hideAll();
  560. return false;
  561. }
  562. }
  563. });
  564. }
  565. });
  566. var rightSideNavItem = ".biz-wrapper .biz-right-side-menu .right-side-menu-content-wrap .navbar-nav > li.nav-item";
  567. $(rightSideNavItem).click(function () {
  568. $(rightSideNavItem).removeClass('right-sunbnav-active');
  569. $(this).addClass('right-sunbnav-active');
  570. });
  571. this.appendSettingPanelHtml();
  572. this.loadSettingGroups(containerid);
  573. this.loadUserProfile(containerid);
  574. this.loadimage();
  575. this.loadNotifications("nav-notifications");
  576. this.loadLayoutSettings();
  577. this.getNavParentGroups();
  578. if (!Unibase.Platform.Membership.Infos.Identity.currentUser.isAdmin) {
  579. $("#nav-settings-dropdown").removeClass('d-flex').addClass('d-none');
  580. $(".usertheme").removeClass('d-flex').addClass("d-none");
  581. }
  582. let photourl = Unibase.Platform.Membership.Infos.Identity.currentUser.photoUrl;
  583. if (photourl) {
  584. if (photourl.includes("~")) {
  585. photourl = photourl.slice(2);
  586. }
  587. if ($(".biz-wrapper").hasClass("biz__bottom__nav__menu") == true) {
  588. $('.biz-layout-2-top-navbar .profile-Img-Update').parent().addClass("w-40p");
  589. let checkclass = $('.profile-Img-Update').parent().parent(".right_side_menu_userdetails");
  590. $('.profile-Img-Update').html(`<img src='` + photourl + `' class="img-fluid w-30p h-30p rounded-circle" onerror="ReloadImage(event)" data-dynamic="1" style="object-fit: cover;">`);
  591. }
  592. else {
  593. $('.profile-Img-Update').parent().addClass("w-40p");
  594. $('.profile-Img-Update').parent().parent().addClass("mt-1");
  595. $('.profile-Img-Update').html(`<img src='` + photourl + `' class="img-fluid w-30p h-30p rounded-circle" onerror="ReloadImage(event)" data-dynamic="1" style="object-fit: cover;" >`);
  596. }
  597. }
  598. $(".link_nav_profile").text(Unibase.Platform.Membership.Infos.Identity.currentUser.name);
  599. $(".lnk_nav_profile").click(function () {
  600. instance.navigationHelper.loadDetail(Unibase.Platform.Membership.Infos.Identity.currentUser.userId, Unibase.Platform.Membership.Infos.Identity.getSetting("installedappid"), null);
  601. $('.biz-wrapper').removeClass('biz__nav__toggle');
  602. $('.biz-nav-fullwidth').addClass('hidden');
  603. });
  604. $(".lnk_nav_changebranch").click(function () {
  605. instance.loadBranches("nav-branches");
  606. });
  607. $(".btn_cloudsettings").click(function () {
  608. instance.showNavOptions(13);
  609. });
  610. if (this.layoutIndex == instance.topLayout || this.layoutIndex == instance.topLeftLayout)
  611. this.loadAllOtherNavs();
  612. var idleTime = 0;
  613. $("#bizgaze_body").ready(function () {
  614. setInterval(timerIncrement, 1000);
  615. $(this).mousemove(function (e) {
  616. idleTime = 0;
  617. });
  618. $(this).keypress(function (e) {
  619. idleTime = 0;
  620. });
  621. });
  622. function timerIncrement() {
  623. idleTime = idleTime + 1;
  624. if (idleTime >= 3600) {
  625. if (!isMobileApp()) {
  626. var checkcount = $("#bizgaze_body").find("#_bizgaze_modal").find("#sessionsModal").length;
  627. if (checkcount == 0) {
  628. Unibase.Themes.Compact.Components.Nav.instance.sessiontimeout("nav-branches");
  629. }
  630. }
  631. ;
  632. }
  633. }
  634. $("#bizgaze_body").on("click", ".nav-footer-link", function () {
  635. $(".nav-footer-link").removeClass("active");
  636. $(this).addClass("active");
  637. });
  638. if (instance.layoutIndex == instance.topLeftLayout && Unibase.Platform.Membership.Infos.Identity.currentUser.settings) {
  639. const companyName = Unibase.Platform.Membership.Infos.Identity.currentUser.settings.find(x => x.settingName == "companyname");
  640. if (companyName != undefined) {
  641. $('#navCompanyName').text(companyName.settingValue);
  642. }
  643. }
  644. if (Unibase.Platform.Membership.Infos.Identity.currentUser.tenant != null) {
  645. if (Unibase.Platform.Membership.Infos.Identity.currentUser.tenant.isChatAppEnabled) {
  646. $(".chat-nav-item").removeClass("d-none");
  647. Unibase.Platform.Connect.Managers.ChatManager.Instance().getUnreadChatCount().then(function (chatcount) {
  648. if (chatcount != 0) {
  649. $('#chatIconBadge').text(chatcount).removeClass('d-none');
  650. }
  651. });
  652. }
  653. }
  654. instance.setSettingsDropdownMenuHeight();
  655. instance.scrollOnPageUpAndDownKeypress();
  656. }
  657. loadAllOtherNavs() {
  658. Unibase.Themes.Compact.Components.Nav.Instance().showNavOptions(2);
  659. Unibase.Themes.Compact.Components.Nav.Instance().showNavOptions(4);
  660. }
  661. appendSettingPanelHtml() {
  662. const html = `<div class="settings-panel-wrap pa-0 h-100 d-flex flex-column ">
  663. <div class="settings-panel-head">
  664. <a href="javascript:void(0);" id="settings_panel_close" class="settings-panel-close biz-primary-text-color-removed text-danger">
  665. <span><i class="icon dripicons-chevron-right font-20"></i></span>
  666. </a>
  667. <span class="biz-secondary-text-color mr-auto ml-3" id="settings-panel-head-title"></span>
  668. </div>
  669. <div data-simplebar id="settingsPanelBodyWrap" class="simple-scroll-bar flex-grow-1">
  670. <div id="settings-panel-body" class="settings-panel-body"></div>
  671. </div>
  672. <div class="settings-panel-footer text-center notification-footer border-0"></div>
  673. <div id="chatPanelBodyWrap" class="chat-panel-wrap h-100 d-none"></div>
  674. </div>`;
  675. $('.biz-settings-panel').html(html);
  676. $(".settings-panel-close").click(function () {
  677. $('.settings-panel-head').find('.notification-viewall').html("");
  678. $(".biz-wrapper,.hk-wrapper").removeClass("biz-settings-toggle");
  679. $('.hk-settings-panel').removeClass('show');
  680. $('.right-side-menu-content-wrap').find('.nav-item').removeClass('right-sunbnav-active');
  681. });
  682. if (!this.indexInstance.mobileLMode) {
  683. eval(`jquerySwipeHandler.handleSwipe("#chatPanelBodyWrap", [jquerySwipeHandler.SWIPE_LEFT, jquerySwipeHandler.SWIPE_RIGHT], function (direction) {
  684. if(direction == 'SWIPE_LEFT' || direction == 'SWIPE_RIGHT'){
  685. Unibase.Platform.Connect.Components.Chat.Instance().routeHandler();
  686. }
  687. });`);
  688. }
  689. }
  690. scrollOnPageUpAndDownKeypress() {
  691. let total = 0;
  692. $(window).on('keydown', function (e) {
  693. let VisibleContainerId = Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds[Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds.length - 1];
  694. if (e.keyCode == 38) {
  695. total = Number(total - 50);
  696. if ($('#' + VisibleContainerId).hasClass("_bizgaze_popup_container")) {
  697. $('#' + VisibleContainerId).find(".simplebar-content-wrapper").scrollTop(total);
  698. }
  699. else {
  700. $('#' + VisibleContainerId).find(".simplebar-content-wrapper").scrollTop(total);
  701. }
  702. }
  703. if (e.keyCode == 40) {
  704. total = Number(total + 50);
  705. if ($('#' + VisibleContainerId).hasClass("_bizgaze_popup_container")) {
  706. $('#' + VisibleContainerId).find(".simplebar-content-wrapper").scrollTop(total);
  707. }
  708. else {
  709. $('#' + VisibleContainerId).find(".simplebar-content-wrapper").scrollTop(total);
  710. }
  711. }
  712. total = total;
  713. });
  714. }
  715. addMenuCollapseClickEvent() {
  716. let navItem = $('.hk-wrapper.hk-horizontal-nav .hk-nav .navbar-nav li.nav-item.collapsed');
  717. $(navItem).unbind().click(function () {
  718. if ($(this).hasClass('active')) {
  719. $(this).removeClass('active');
  720. }
  721. else {
  722. $(this).addClass('active');
  723. }
  724. });
  725. }
  726. initiateNavSearch(searchEl) {
  727. const instance = this;
  728. var timer;
  729. $(searchEl).off().keyup(function () {
  730. clearTimeout(timer);
  731. const searchInput = $(this);
  732. timer = setTimeout(function () {
  733. let parentElement = '', groupItem = '', addedLiGroupItem = '', liGroupItem = '', childGroupItem = '';
  734. if (searchInput.hasClass('dashboards-search-input')) {
  735. instance.navInputSearch(searchInput, 'nav-button-dashboard');
  736. }
  737. else if (searchInput.hasClass('reports-search-input')) {
  738. instance.navInputSearch(searchInput, 'nav-button-reports');
  739. parentElement = '#nav-reports';
  740. addedLiGroupItem = '.lireportgrp-item';
  741. liGroupItem = '.lireportgrp-item';
  742. }
  743. else if (searchInput.hasClass('apps-search-input')) {
  744. instance.navInputSearch(searchInput, 'nav-button-apps');
  745. parentElement = '#nav-apps';
  746. addedLiGroupItem = '.liappgrp-addeditem';
  747. liGroupItem = '.liappgrp-item';
  748. childGroupItem = '#liAppGroup_1';
  749. }
  750. if (parentElement != "") {
  751. const SearchTerm = searchInput.val().toString().toLowerCase().replace(/\s/g, '');
  752. if (SearchTerm == "") {
  753. $(groupItem).removeClass("hidden");
  754. $(addedLiGroupItem).removeClass("hidden");
  755. $(`${parentElement} li`).find(".flex-column.show").collapse("hide");
  756. $(childGroupItem).addClass("hidden");
  757. $(groupItem).removeClass("active");
  758. $(`${parentElement} li`).find("a.nav-link").css({ "display": "" });
  759. }
  760. else {
  761. $('.header-wth-search .clear-search').show();
  762. if (searchInput.hasClass('group-search-input')) {
  763. searchInput.siblings('.search-icon').fadeOut();
  764. searchInput.siblings('.clear-search').fadeIn();
  765. }
  766. $(childGroupItem).removeClass("hidden");
  767. $(groupItem).addClass("hidden");
  768. const filteredList = $(parentElement).find('.nav-item input').filter(function () {
  769. if ($(this).attr('value') != undefined) {
  770. return $(this).attr('value').toLowerCase().replace(/\s/g, '').indexOf(SearchTerm) > -1;
  771. }
  772. });
  773. if (filteredList.length > 0) {
  774. filteredList.each(function () {
  775. var value = $(this).attr("value").toLowerCase().replace(/\s/g, '');
  776. $(this).attr("title", value);
  777. }).parent().parent().parent().each(function () {
  778. $(this).removeClass("hidden").addClass('active');
  779. ;
  780. $(this).find(".flex-column").addClass("show").siblings('.nav-link').attr('aria-expanded', 'true');
  781. $(this).find(liGroupItem).addClass("hidden");
  782. $(this).find('input[title *= "' + SearchTerm + '"]').parent().find("a.nav-link").css({ "display": "" });
  783. $(this).find('input[title *= "' + SearchTerm + '"]').parent().removeClass("hidden");
  784. });
  785. }
  786. else {
  787. }
  788. }
  789. }
  790. }, 1000);
  791. });
  792. $('.nav-group-search-li .clear-search').hide();
  793. $(".nav-group-search-li .clear-search").off('click').click(function () {
  794. $(this).siblings('.group-search-input').val("").keyup();
  795. $(this).fadeOut();
  796. $(this).siblings('.search-icon').fadeIn();
  797. $('.top-search-icon').fadeIn();
  798. });
  799. }
  800. navInputSearch(searchInput, name) {
  801. let instance = this;
  802. const searchTerm = searchInput.val().toString().trim().toLowerCase();
  803. let isResultFound = false;
  804. $(`[data-buttontype="${name}"] #nav-dashboards .li-dashboard-item, [data-buttontype="${name}"] #nav-apps .nav-AppGroup, [data-buttontype="${name}"] #nav-reports .nav-ReportGroup`).each(function () {
  805. const lcval = $(this).find(".nav-link.mega-sub-head-nav-link").text().replace(/\s/g, '').toLowerCase();
  806. if (lcval.includes(searchTerm.replace(/\s/g, '')) == true) {
  807. $(this).addClass('d-none');
  808. isResultFound = false;
  809. }
  810. else {
  811. $(this).hide();
  812. }
  813. });
  814. if (instance.layoutIndex == instance.leftLayout) {
  815. $(`#nav-dashboards .li-dashboard-item, #nav-apps .nav-AppGroup, #nav-reports .nav-ReportGroup`).each(function () {
  816. const lcval = $(this).find('.nav-link').text().replace(/\s/g, '').toLowerCase();
  817. if (lcval.indexOf(searchTerm.replace(/\s/g, '')) > -1) {
  818. $(this).show();
  819. isResultFound = true;
  820. }
  821. else {
  822. $(this).hide();
  823. }
  824. });
  825. }
  826. else {
  827. $(`[data-buttontype="${name}"] #nav-dashboards .li-dashboard-item, [data-buttontype="${name}"] #nav-apps .nav-AppGroup, [data-buttontype="${name}"] #nav-reports .nav-ReportGroup`).each(function () {
  828. $($(this)).find('.drp-list').find('.nav-link').each(function () {
  829. let txtval = $(this).text().toLowerCase();
  830. const val = txtval.includes(searchTerm);
  831. if (val != true) {
  832. $(this).hide();
  833. }
  834. else {
  835. isResultFound = true;
  836. $(this).parents('.nav-item.li-dashboard-item').css({ 'display': '' }).removeClass('d-none');
  837. $(this).parents('.nav-item.nav-AppGroup').css({ 'display': '' }).removeClass('d-none hidden');
  838. $(this).parents(".nav-item.nav-ReportGroup").css({ 'display': '' }).removeClass('d-none');
  839. }
  840. });
  841. });
  842. }
  843. $('#nav-dashboards .no-result-item,#nav-apps .no-result-item,#nav-reports .no-result-item').remove();
  844. if (!isResultFound) {
  845. $(`[data-buttontype="${name}"] #nav-dashboards,[data-buttontype="${name}"] #nav-apps, [data-buttontype="${name}"] #nav-reports`).append('<li class="nav-item no-result-item"><a class="nav-link">No results found!</a></li>');
  846. }
  847. if (searchTerm != "") {
  848. if (searchInput.hasClass('group-search-input')) {
  849. searchInput.siblings('.search-icon').fadeOut();
  850. searchInput.siblings('.clear-search').fadeIn();
  851. }
  852. }
  853. }
  854. clearNavSearch() {
  855. const globalInputEl = $('#txt_global_Search');
  856. if (globalInputEl.hasClass('apps-search-input')) {
  857. $("#nav-apps .nav-AppGroup").removeClass("hidden");
  858. $(".liappgrp-addeditem").removeClass("hidden");
  859. $("#nav-apps li").find(".flex-column.show").collapse("hide");
  860. $("#liAppGroup_1").addClass("hidden");
  861. }
  862. else if (globalInputEl.hasClass('reports-search-input')) {
  863. $("#nav-reports .nav-ReportGroup").removeClass("hidden");
  864. $("#nav-reports li").find(".flex-column.show").collapse("hide");
  865. }
  866. else if (globalInputEl.hasClass('dashboards-search-input')) {
  867. $("#nav-dashboards .li-dashboard-item").show().collapse("hide");
  868. }
  869. }
  870. showNavOptions(type) {
  871. var _a;
  872. let elem;
  873. var instance = this;
  874. if (instance.layoutIndex == instance.leftLayout) {
  875. let prevActive = $('.nav-item.nav-button.sunbnav-active').find('a').attr('onclick');
  876. if (prevActive != undefined) {
  877. let prevType = Number(prevActive.replace(/\D/g, ''));
  878. if (prevType === type && this.initialLoad) {
  879. return;
  880. }
  881. }
  882. instance.initialLoad = true;
  883. }
  884. $('body').removeClass('active-report-popup');
  885. $(".nav-options-container").not('.nav-setting-visible').addClass("hidden");
  886. $('.biz-submenu .header-wth-search').find('.nav-header-text').css('pointer-events', 'auto').find('#searchToggleBtn').addClass('btn-search-toggle').find('.nav-search-icon-item').removeClass('d-none');
  887. $(".nav-item").removeClass("sunbnav-active");
  888. $("#simplescrollbar").removeClass("hidden");
  889. if ($('.nav-search').find('.close-search').length > 0) {
  890. $('.nav-search').find('.close-search').trigger('click');
  891. }
  892. if (instance.layoutIndex == instance.leftLayout) {
  893. $('.dashboard-setting-dp,.db-setting-dp-item').addClass('d-none');
  894. if ($('#bizCmnFilterPanel').hasClass('show'))
  895. $('#cmnFilterPanelClose').trigger('click');
  896. }
  897. switch (type) {
  898. case 1:
  899. elem = $("#nav-dashboards");
  900. $("#nav-dashboards-container").removeClass("hidden");
  901. $("#nav-button-dashboards").addClass("sunbnav-active");
  902. $(".nav-title").html("Dashboard");
  903. if ((_a = this.currentUser) === null || _a === void 0 ? void 0 : _a.isAdmin) {
  904. $('.dashboard-setting-dp,.db-setting-dp-item').removeClass('d-none');
  905. }
  906. this.applyLeftLayoutSettings('dashboards');
  907. Unibase.Platform.Helpers.NavigationHelper.Instance().closeAllModals();
  908. this.loadDashboards("nav-dashboards");
  909. Unibase.Platform.Helpers.NavigationHelper.Instance().loadSection(0, "", Unibase.Themes.Compact.Components.Dashboard.Instance(), null, null);
  910. break;
  911. case 2:
  912. elem = $("#nav-apps");
  913. $("#nav-apps-container").removeClass("hidden");
  914. $("#nav-button-apps").addClass("sunbnav-active");
  915. $(".nav-title").html("Apps");
  916. this.applyLeftLayoutSettings('apps');
  917. if (this.apps.length === 0)
  918. this.loadApps("nav-apps");
  919. break;
  920. case 3:
  921. elem = $("#nav-create");
  922. $("#nav-create-container").removeClass("hidden");
  923. $("#nav-button-create").addClass("sunbnav-active");
  924. $(".nav-title").html("Create");
  925. if (this.createapps.length === 0)
  926. this.loadCreateApps("nav-create");
  927. break;
  928. case 4:
  929. elem = $("#nav-reports");
  930. $("#nav-reports-container").removeClass("hidden");
  931. $("#hf_DashboardPortletId").val("");
  932. $("#nav-button-reports").addClass("sunbnav-active");
  933. $(".nav-title").html("Reports");
  934. this.applyLeftLayoutSettings('reports');
  935. this.loadReports("nav-reports");
  936. break;
  937. case 5:
  938. elem = $("#nav-settings");
  939. $("#nav-settings-container").removeClass("hidden");
  940. $("#nav-button-settings").addClass("sunbnav-active");
  941. $(".nav-title").html("Settings");
  942. this.loadSettingGroups("nav-settings");
  943. break;
  944. case 6:
  945. elem = $("#nav-userprofile");
  946. $("#nav-userprofile-container").removeClass("hidden");
  947. $("#nav-button-userprofile").addClass("sunbnav-active");
  948. this.loadUserProfile("nav-userprofile");
  949. break;
  950. case 7:
  951. elem = $("#nav-notifications");
  952. $("#nav-notifications-container").removeClass("hidden");
  953. $("#nav-button-notifications").addClass("sunbnav-active");
  954. $(".nav-title").html("Notifications");
  955. Unibase.Themes.Compact.Components.Notification.Instance().loadReminders();
  956. break;
  957. case 8:
  958. $("#nav-apps-container").removeClass("hidden");
  959. break;
  960. case 9:
  961. elem = $("#nav-widgets");
  962. $("#nav-widgets-container").removeClass("hidden");
  963. $(".nav-title").html("Widgets");
  964. break;
  965. case 10:
  966. break;
  967. case 11:
  968. elem = $("#nav-notifications");
  969. $("#nav-notifications-container").removeClass("hidden");
  970. $(".nav-title").html("Tasks");
  971. Unibase.Themes.Compact.Components.Notification.Instance().loadTasks();
  972. case 13:
  973. elem = $("#nav-fileproviders");
  974. this.loadFileProviders("nav-fileproviders");
  975. break;
  976. }
  977. }
  978. setSettingsDropdownMenuHeight() {
  979. const instance = this;
  980. if (instance.layoutIndex == instance.leftLayout) {
  981. $('#nav-settings-dropdown').on('shown.bs.dropdown', function () {
  982. $('#bizAppSettingsDpMenu').css('max-height', `${window.innerHeight - 60}px`).attr('data-deductheight', '60');
  983. });
  984. $('#biz-right-side-menu').on('shown.bs.dropdown', '#nav-settings-dropdown', function () {
  985. $('#bizAppSettingsDpMenu').css('max-height', `${window.innerHeight - 20}px`).attr('data-deductheight', '20');
  986. });
  987. }
  988. else {
  989. $('#nav-settings-dropdown').click(function () {
  990. $('#bizAppSettingsDpMenu').css('max-height', `${window.innerHeight - 70}px`).attr('data-deductheight', '70');
  991. });
  992. }
  993. }
  994. applyLeftLayoutSettings(navGroup) {
  995. const instance = this;
  996. if (instance.layoutIndex == instance.leftLayout) {
  997. let removeClasses = '';
  998. if ($('#txt_global_Search').length != 0 && $('#txt_global_Search').attr('class') != undefined) {
  999. removeClasses = $('#txt_global_Search').attr("class").match(/[\w-]*-search-input[\w-]*/g);
  1000. }
  1001. $('#txt_global_Search').removeClass(removeClasses).addClass(`${navGroup}-search-input`);
  1002. instance.initiateNavSearch(`.${navGroup}-search-input`);
  1003. if ($(`#nav-${navGroup}`).attr('data-istitlehidden') == 'true') {
  1004. $('.biz-submenu .header-wth-search').addClass('d-none');
  1005. }
  1006. else {
  1007. $('.biz-submenu .header-wth-search').removeClass('d-none');
  1008. }
  1009. if (!$(`#nav-button-${navGroup}`).is(':visible')) {
  1010. $('.biz-submenu .header-wth-search').addClass('d-none').find('#txt_global_Search').removeClass(`#${navGroup}-search-input`);
  1011. }
  1012. if ($(`#nav-button-${navGroup}`).attr('data-issettingsenabled') == 'false') {
  1013. $(`#nav-button-${navGroup}`).nextAll('.nav-button:visible').first().find('.nav-link').trigger('click');
  1014. }
  1015. }
  1016. }
  1017. loadLayoutSettings() {
  1018. const instance = this;
  1019. const settings = Unibase.Platform.Membership.Infos.Identity.getCurrentUser().settings;
  1020. if (settings) {
  1021. const themeSettings = settings.find(x => x.settingName == "themeobj");
  1022. if (themeSettings) {
  1023. let layoutSettings = themeSettings.settingValue.layoutSettings;
  1024. if (layoutSettings) {
  1025. if (layoutSettings.settingValue) {
  1026. let layoutNavSettings = JSON.parse(layoutSettings.settingValue);
  1027. const layoutIndex = instance.layoutIndex;
  1028. instance.showAllNavGroups();
  1029. $.each(layoutNavSettings, function (group, settings) {
  1030. const navGroup = group.toString();
  1031. if (navGroup != '') {
  1032. if (settings.IsEnabled) {
  1033. if (!settings.Icon && !settings.Title) {
  1034. if (layoutIndex == instance.leftLayout) {
  1035. $(`#nav-button-${navGroup}`).addClass('d-none');
  1036. if (navGroup != 'dashboards') {
  1037. $(`#nav-button-${navGroup}`).find('.nav-link').trigger('click');
  1038. }
  1039. }
  1040. else if (layoutIndex == instance.topLayout || layoutIndex == instance.topLeftLayout) {
  1041. if (layoutIndex == instance.topLeftLayout || (layoutIndex == instance.topLayout && !instance.desktopMode)) {
  1042. if (navGroup == 'dashboards') {
  1043. $('#dash_drp').removeClass('collapse collapse-level-1');
  1044. }
  1045. else if (navGroup == 'apps') {
  1046. $('#pages_drp').removeClass('collapse collapse-level-1');
  1047. }
  1048. else if (navGroup == 'reports') {
  1049. $('#reports_drp').removeClass('collapse collapse-level-1');
  1050. }
  1051. }
  1052. $(`.nav-${navGroup}-item .nav-link`).addClass('d-none');
  1053. $(`#nav-${navGroup} .nav-group-search-li`).addClass('d-none');
  1054. }
  1055. $(`#nav-${navGroup}`).attr('data-istitlehidden', 'true');
  1056. }
  1057. else if (!settings.Icon) {
  1058. if (layoutIndex == instance.leftLayout) {
  1059. $(`#nav-button-${navGroup}`).addClass('d-none');
  1060. if (navGroup != 'dashboards')
  1061. $(`#nav-button-${navGroup}`).find('.nav-link').trigger('click');
  1062. $(`#nav-${navGroup}-container`).addClass('nav-setting-visible').prepend(`<a class="nav-link nav-group-collapse-link biz-primary-text-color" href="javascript:void(0);" data-toggle="collapse" data-target="#nav-${navGroup}"><span class="nav-link-text text-capitalize text-truncate mr-10">${navGroup}</span></a>`).find(`#nav-${navGroup}`).addClass('collapse collapse-level-1').prepend(`<li class="nav-item border-bottom nav-group-search-li position-relative"><input type="text" placeholder="Search..." class="${navGroup}-search-input group-search-input w-100 py-1 biz-primary-text-color" autocomplete="off"><span class="search-icon"><i class="fa fa-search"></i></span><a href="javascript:;" class="clear-search btn btn-icon btn-flush-biz-theme btn-rounded flush-soft-hover w-20p h-20p"><span class="btn-icon-wrap"><i class="dripicons dripicons-cross"></i></span></a></li>`);
  1063. instance.initiateNavSearch(`.${navGroup}-search-input`);
  1064. }
  1065. else if (layoutIndex == instance.topLayout || layoutIndex == instance.topLeftLayout) {
  1066. $(`.nav-${navGroup}-item .nav-link-icon`).addClass('d-none');
  1067. }
  1068. }
  1069. else if (!settings.Title) {
  1070. if (layoutIndex == instance.topLayout || layoutIndex == instance.topLeftLayout) {
  1071. $(`.nav-${navGroup}-item .nav-link-text`).addClass('d-none');
  1072. $(`#nav-${navGroup} .nav-group-search-li`).addClass('d-none');
  1073. }
  1074. $(`#nav-${navGroup}`).attr('data-istitlehidden', 'true');
  1075. }
  1076. }
  1077. else {
  1078. if (layoutIndex == instance.leftLayout) {
  1079. $(`#nav-button-${navGroup}`).addClass('d-none').attr('data-issettingsenabled', 'false');
  1080. $(`#nav-${navGroup}-container`).addClass('d-none');
  1081. }
  1082. else if (layoutIndex == instance.topLayout || layoutIndex == instance.topLeftLayout) {
  1083. $(`.nav-${navGroup}-item`).addClass('d-none');
  1084. }
  1085. }
  1086. }
  1087. else {
  1088. $('.nav-header-text .nav-title').removeClass('d-none');
  1089. }
  1090. });
  1091. if (layoutIndex == instance.leftLayout) {
  1092. instance.hideMainMenuSidebar();
  1093. instance.collapseSingleNavGroup();
  1094. }
  1095. else {
  1096. instance.collapseSingleNavGroup();
  1097. }
  1098. }
  1099. else {
  1100. instance.showAllNavGroups();
  1101. }
  1102. if (layoutSettings.isOverrideLogo && layoutSettings.logoImageUrl) {
  1103. $('.navbar-brand .brand-img').attr({ 'src': layoutSettings.logoImageUrl, 'data-loaded': 0, 'data-dynamic': 1 });
  1104. }
  1105. }
  1106. else {
  1107. instance.showAllNavGroups();
  1108. }
  1109. }
  1110. else {
  1111. instance.showAllNavGroups();
  1112. }
  1113. }
  1114. else {
  1115. instance.showAllNavGroups();
  1116. }
  1117. }
  1118. showAllNavGroups() {
  1119. const instance = this;
  1120. const layoutIndex = instance.layoutIndex;
  1121. if (layoutIndex == instance.leftLayout) {
  1122. $('.biz-main-menu .menu-content-wrap').find('.nav-button').removeClass('d-none');
  1123. }
  1124. else if (layoutIndex == instance.topLayout || layoutIndex == instance.topLeftLayout) {
  1125. $('#layoutMainNavbar .nav-group-container').removeClass('d-none');
  1126. }
  1127. }
  1128. hideMainMenuSidebar() {
  1129. const instance = this;
  1130. let isAllNavButtonsHidden = true;
  1131. $('.menu-content-wrap .nav-button').not('#nav-button-create,#nav-button-close').each(function (i, e) {
  1132. if ($(e).is(':visible')) {
  1133. isAllNavButtonsHidden = false;
  1134. return false;
  1135. }
  1136. });
  1137. if (isAllNavButtonsHidden) {
  1138. if (instance.desktopMode) {
  1139. $('.biz-bottom-nav-menu #nav-settings-dropdown').find('.nav-link').first().removeClass('py-1').parent().detach().appendTo($('.right-side-menu-content-wrap .navbar-nav'));
  1140. $('.biz-submenu').css({ 'width': '240px', 'left': '0' });
  1141. $('.biz-pg-wrapper').css('margin-left', '240px');
  1142. }
  1143. else {
  1144. $('.profile-dropdown-menu').find('.lnk_nav_changebranch,.app-settings-dropdown').removeClass('d-none').addClass('d-flex');
  1145. $('.biz-bottom-nav-menu #nav-settings-dropdown').find('.moreoptions').detach().appendTo('.app-settings-dropdown');
  1146. $('.biz-bottom-nav-menu').find('#nav-button-changebranch,#nav-settings-dropdown').addClass('d-none');
  1147. $('#nav-profile-dropdown').detach().appendTo('.biz-navbar-content');
  1148. $('#nav-profile-dropdown').removeClass('dropdown').find('.nav-link').first().addClass('biz-primary-text-color profile-dropdown-btn').removeClass('pb-2 py-1');
  1149. }
  1150. $('.biz-main-menu').addClass('d-none');
  1151. $('.biz-wrapper').addClass('biz-main-menu-hidden');
  1152. }
  1153. }
  1154. collapseSingleNavGroup() {
  1155. const instance = this;
  1156. const layoutIndex = instance.layoutIndex;
  1157. let navGroupContainer;
  1158. if (layoutIndex == instance.leftLayout) {
  1159. navGroupContainer = $('.nav-options-container:visible');
  1160. }
  1161. else if (layoutIndex == instance.topLeftLayout) {
  1162. navGroupContainer = $('.nav-group-container:visible');
  1163. }
  1164. else if (layoutIndex == instance.topLayout && !instance.desktopMode) {
  1165. navGroupContainer = $('.nav-group-container:visible');
  1166. }
  1167. if (navGroupContainer && navGroupContainer.length == 1 && navGroupContainer.find('.nav-group-collapse-link').length > 0) {
  1168. navGroupContainer.find('.collapse').first().collapse('show');
  1169. }
  1170. }
  1171. loadDashboards(containerid) {
  1172. $("#nav-dashboards .li-dashboard-item").remove();
  1173. var instance = this;
  1174. var dashboardmanager = Unibase.Platform.Dashboards.Managers.DashboardManager.Instance();
  1175. dashboardmanager.getDashboards().then(function (response) {
  1176. const modalContainerId = instance.navigationHelper.getLastContainerId();
  1177. if (response.result != null && response.result.length != 0) {
  1178. let html = "";
  1179. let dbGroupHtml = "";
  1180. var grouptemplate = Components.Nav_Template.Instance().DashboardGroupsTemplate();
  1181. let dbGroupTemplate = Components.Nav_Template.Instance().DashboardGroupsTemplate3();
  1182. if (instance.desktopMode && instance.layoutIndex == instance.topLayout)
  1183. grouptemplate = Components.Nav_Template.Instance().DashboardGroupsTemplate2();
  1184. var template = Components.Nav_Template.Instance().DashboardsTemplate();
  1185. var optionTemplate = Components.Nav_Template.Instance().DashboardItemTemplate();
  1186. var dashboards = response.result;
  1187. var dashboardgroups;
  1188. dashboardgroups = [];
  1189. instance.dashboards = dashboards;
  1190. if (dashboards != null) {
  1191. var prevdashboardgroupname = "";
  1192. var firstgroupid = -1;
  1193. var groupname = '';
  1194. for (let i = 0; i < dashboards.length; i++) {
  1195. var dashboard = dashboards[i];
  1196. var groupname = dashboard.DashboardGroupName;
  1197. if (groupname === null)
  1198. groupname = "No Group";
  1199. if (firstgroupid === -1) {
  1200. firstgroupid = dashboard.DashboardGroupId;
  1201. instance.loadDashboardsInDashboard(firstgroupid, 0);
  1202. }
  1203. var dashboardIndex = dashboardgroups.findIndex(x => x.DashboardGroupId == dashboard.DashboardGroupId && x.DashboardGroupName == groupname);
  1204. if (dashboardIndex == -1) {
  1205. dashboardgroups.push({
  1206. DashboardGroupId: dashboard.DashboardGroupId,
  1207. DashboardGroupName: groupname,
  1208. DisplayIndex: 0,
  1209. ViewAll: true,
  1210. IconName: "",
  1211. PortletCount: 0
  1212. });
  1213. prevdashboardgroupname = groupname;
  1214. }
  1215. }
  1216. $(`#${containerid},.dashboard-options-list`).empty();
  1217. for (let i = 0; i < dashboardgroups.length; i++) {
  1218. let group = dashboardgroups[i];
  1219. let groupid = group.DashboardGroupId;
  1220. var templateScript = Handlebars.compile(grouptemplate);
  1221. var dbTemplateScript = Handlebars.compile(dbGroupTemplate);
  1222. let context = { "DashboardGroupId": group.DashboardGroupId, "DashboardGroupName": group.DashboardGroupName };
  1223. html = templateScript(context);
  1224. dbGroupHtml = dbTemplateScript(context);
  1225. $("#" + containerid).append(html);
  1226. $("#dbGroupsDropdownList").append(dbGroupHtml);
  1227. if (i == 0) {
  1228. $('#nav-dashboards,#dbGroupsDropdownList').find('.li-dashboard-item').first().addClass('active-item');
  1229. let firstGroupTitle = '';
  1230. if ($('.li-dashboard-item').first().text().length != 0) {
  1231. firstGroupTitle = $('.li-dashboard-item').first().text().trim();
  1232. }
  1233. $('#lblDbGroup_Title').text(firstGroupTitle);
  1234. }
  1235. let groupdashboards = dashboards.filter(function (dashboard, index) {
  1236. return dashboard.DashboardGroupId === group.DashboardGroupId;
  1237. });
  1238. if (groupdashboards.length > 0) {
  1239. function dashboardChangeHandler(dashboardId, pinCmnFilters) {
  1240. const dashboardOptionListEl = $(".dashboard-options-list");
  1241. let dashBoardName = $('#' + dashboardId).find('#hf_Dashboard_DashboardName').attr('data-dashboardname');
  1242. const navHelper = Unibase.Platform.Helpers.NavigationHelper;
  1243. if (navHelper.ModalContainerIds.length > 1) {
  1244. navHelper.ModalContainerIds.forEach(function (containerId) {
  1245. navHelper.ModalContainerIds = navHelper.ModalContainerIds.filter(id => id !== containerId);
  1246. $(`#${containerId}`).remove();
  1247. });
  1248. $('.modal-backdrop').remove();
  1249. }
  1250. if (!$('#hf_DashboardPortletId').length && dashboardId) {
  1251. instance.loadDashboardsInDashboard(groupid, dashboardId, true);
  1252. }
  1253. else {
  1254. instance.loadDashboard(dashboardId, dashBoardName, pinCmnFilters);
  1255. }
  1256. let groupTitle = $('.liDashboardGroup_' + groupid).find("a").first().text();
  1257. $('#lblDbGroup_Title').text(groupTitle);
  1258. let groupdashboards = dashboards.filter(function (dashboard, index) {
  1259. return dashboard.DashboardGroupId === group.DashboardGroupId;
  1260. });
  1261. dashboardOptionListEl.html('');
  1262. groupdashboards.forEach(function (dashboard, index) {
  1263. context = dashboard;
  1264. let optiontemplatescript = Handlebars.compile(optionTemplate);
  1265. let optionhtml = optiontemplatescript(context);
  1266. dashboardOptionListEl.append(optionhtml);
  1267. });
  1268. $('li.li-dashboard-item.active-item,.ligrp-item.active-item').removeClass('active-item');
  1269. $(`.liDashboardGroup_${groupid}`).addClass('active-item');
  1270. if (dashboardId) {
  1271. $(`.liDashboardGroup_${groupid} .UlItem_${dashboardId}`).addClass('active-item');
  1272. dashboardOptionListEl.find(`#filterItem_${dashboardId}`).addClass("active");
  1273. }
  1274. else {
  1275. if (instance.desktopMode && instance.layoutIndex === instance.topLayout) {
  1276. $(`#liDashboardGroup_${groupid}`).find('.ligrp-item').first().addClass('active-item');
  1277. }
  1278. dashboardOptionListEl.find('.filter-item').first().addClass("active");
  1279. }
  1280. instance.removeToolTipForFilterItem(dashboardOptionListEl);
  1281. }
  1282. groupdashboards.forEach(function (dashboard, index) {
  1283. context = dashboard;
  1284. templateScript = Handlebars.compile(template);
  1285. html = templateScript(context);
  1286. if (!instance.desktopMode) {
  1287. dashboard.PinCommonFilters = false;
  1288. }
  1289. if (instance.desktopMode && instance.layoutIndex == instance.topLayout) {
  1290. const dashboardId = dashboard.DashboardId;
  1291. $(`#dashboard-drp-${groupid}`).append(html);
  1292. if (index === 0) {
  1293. $('#nav-dashboards').find('.ligrp-item').first().addClass('active-item');
  1294. }
  1295. $(`#nav-dashboards .UlItem_${dashboardId} .nav-link`).attr('onclick', '');
  1296. $(`#nav-dashboards .UlItem_${dashboardId} .nav-link`).click(function (e) {
  1297. e.stopPropagation();
  1298. dashboardChangeHandler(dashboardId, dashboard.PinCommonFilters);
  1299. $("#dash_drp").css('display', 'none');
  1300. });
  1301. }
  1302. let optionTemplateScript = Handlebars.compile(optionTemplate);
  1303. let optionHtml = optionTemplateScript(context);
  1304. if (i == 0) {
  1305. const dashboardOptionListEl = $(".dashboard-options-list");
  1306. dashboardOptionListEl.append(optionHtml);
  1307. if (index == groupdashboards.length - 1) {
  1308. dashboardOptionListEl.find('.filter-item').first().addClass("active");
  1309. instance.removeToolTipForFilterItem(dashboardOptionListEl);
  1310. }
  1311. if (index === 0 && dashboard.PinCommonFilters) {
  1312. Unibase.Themes.Compact.Components.Dashboard.Instance().loadCommonFilterPanel(modalContainerId);
  1313. }
  1314. }
  1315. });
  1316. }
  1317. }
  1318. if (dashboardgroups.length > 5) {
  1319. instance.appendNavSearchInput(containerid);
  1320. }
  1321. else if (instance.layoutIndex == instance.leftLayout) {
  1322. $('.biz-submenu .header-wth-search').find('.nav-header-text').css('pointer-events', 'none').find('#searchToggleBtn').removeClass('btn-search-toggle').find('.nav-search-icon-item').addClass('d-none');
  1323. }
  1324. instance.loadTopNavMegaMenu('nav-dashboards');
  1325. }
  1326. }
  1327. else {
  1328. $(`#${containerid}`).html('<li class="nav-item"><a class="nav-link">No Dashboards!</a></li>');
  1329. let createDbHtml = '';
  1330. if (Unibase.Platform.Membership.Infos.Identity.getCurrentUser().isAdmin) {
  1331. createDbHtml = `<a href = "javascript:;" class="btn btn-outline-primary btn-sm mt-10 create-db-group-btn" onclick = "Unibase.Themes.Compact.Components.Dashboard.Instance().loadCreateDashboard();" > Create Dashboard </a>`;
  1332. }
  1333. $('#dbGroupsDropdownMenu').html(`<div class="text-center"><p class="text-danger">No Dashboards Found!</p>${createDbHtml}</div>`);
  1334. $('#' + modalContainerId).find('.db-group-title').text('No Dashboards Found!');
  1335. instance.navigationHelper.hideLoading();
  1336. }
  1337. });
  1338. }
  1339. removeToolTipForFilterItem(containerEl) {
  1340. const instance = this;
  1341. containerEl.find('.filter-link').each(function (i, el) {
  1342. if ($(el)[0].offsetWidth >= $(el)[0].scrollWidth) {
  1343. $(el).removeAttr('title');
  1344. }
  1345. });
  1346. instance.setFiltersNavigation();
  1347. }
  1348. setFiltersNavigation(containerId) {
  1349. const instance = this;
  1350. let containerid = containerId;
  1351. if (!containerid) {
  1352. containerid = instance.navigationHelper.getLastContainerId();
  1353. }
  1354. instance.showHideFilterNavIcons(containerid);
  1355. instance.filterNavMouseDragging(containerid);
  1356. instance.filterNavMouseScroll(containerid);
  1357. }
  1358. changeFilterScroll(elem, containerid) {
  1359. const instance = this;
  1360. const containerEl = $('#filters-list' + containerid);
  1361. const containerElWidth = $(containerEl).outerWidth();
  1362. const currentPos = containerEl.scrollLeft();
  1363. const operation = $(elem).data('operation');
  1364. let scrollLeftVal = 0;
  1365. if (operation == '-') {
  1366. scrollLeftVal = currentPos - containerElWidth;
  1367. }
  1368. else {
  1369. scrollLeftVal = currentPos + containerElWidth;
  1370. }
  1371. containerEl.animate({
  1372. scrollLeft: scrollLeftVal
  1373. }, 300, function () {
  1374. instance.toggleFilterNavIconsOnScroll(containerid);
  1375. });
  1376. }
  1377. toggleFilterNavIconsOnScroll(containerid) {
  1378. const containerEl = $('#filters-list' + containerid);
  1379. const containerElWidth = $(containerEl).outerWidth();
  1380. const newScrollLeft = containerEl.scrollLeft();
  1381. const scrollWidth = containerEl.prop('scrollWidth');
  1382. const filterContainerEl = $(`#card-header-filters${containerid}`);
  1383. if (Math.round(scrollWidth - newScrollLeft) < Math.round(containerElWidth + 2)) {
  1384. filterContainerEl.find('.filter-right-icon').addClass('hidden');
  1385. }
  1386. else {
  1387. filterContainerEl.find('.filter-right-icon').removeClass('hidden');
  1388. }
  1389. if (newScrollLeft === 0) {
  1390. filterContainerEl.find('.filter-left-icon').addClass('hidden');
  1391. }
  1392. else {
  1393. filterContainerEl.find('.filter-left-icon').removeClass('hidden');
  1394. }
  1395. }
  1396. showHideFilterNavIcons(containerid) {
  1397. const containerEl = $("#filters-list" + containerid);
  1398. const indexInstance = Unibase.Themes.Compact.Components.Index.Instance();
  1399. if (Unibase.Themes.Compact.Components.Index.Instance().isIframeObj.isListPage) {
  1400. indexInstance.desktopMode = true;
  1401. $("#card-header-filters" + containerid).find('.filter-nav-icon').removeClass('hidden').addClass('d-block');
  1402. $("#card-header-filters" + containerid).find('.biz-report-filters').addClass('iframe');
  1403. }
  1404. if (indexInstance.desktopMode) {
  1405. if (containerEl.prop('scrollWidth') > Math.round(containerEl.outerWidth() + 2)) {
  1406. $("#card-header-filters" + containerid).find('.filter-right-icon').removeClass('hidden');
  1407. }
  1408. else {
  1409. $("#card-header-filters" + containerid).find('.filter-right-icon').addClass('hidden');
  1410. }
  1411. }
  1412. }
  1413. filterNavMouseDragging(containerid) {
  1414. const instance = this;
  1415. const indexInstance = Unibase.Themes.Compact.Components.Index.Instance();
  1416. if (indexInstance.desktopMode) {
  1417. const slider = $("#filters-list" + containerid);
  1418. let mouseDown = false;
  1419. let startX, scrollLeft;
  1420. let startDragging = function (e) {
  1421. mouseDown = true;
  1422. startX = e.pageX - slider.offset().left;
  1423. scrollLeft = slider.scrollLeft();
  1424. };
  1425. let stopDragging = function (event) {
  1426. mouseDown = false;
  1427. };
  1428. slider.off().on('mousemove', (e) => {
  1429. e.preventDefault();
  1430. if (!mouseDown) {
  1431. return;
  1432. }
  1433. const x = e.pageX - slider.offset().left;
  1434. const scroll = x - startX;
  1435. slider.scrollLeft(scrollLeft - scroll);
  1436. instance.toggleFilterNavIconsOnScroll(containerid);
  1437. });
  1438. slider.on('mousedown', startDragging);
  1439. slider.on('mouseup', stopDragging);
  1440. slider.on('mouseleave', stopDragging);
  1441. }
  1442. }
  1443. filterNavMouseScroll(containerid) {
  1444. const instance = this;
  1445. const amount = 50;
  1446. const slider = $("#filters-list" + containerid);
  1447. slider.on("DOMMouseScroll mousewheel", function (event) {
  1448. let oEvent = event.originalEvent, direction = oEvent.detail ? oEvent.detail * -amount : oEvent.wheelDelta, position = $(this).scrollLeft();
  1449. position += direction > 0 ? -amount : amount;
  1450. $(this).scrollLeft(position);
  1451. instance.toggleFilterNavIconsOnScroll(containerid);
  1452. event.preventDefault();
  1453. });
  1454. }
  1455. ;
  1456. loadDashboard(dashboardid, dashboardname, pincmnfilters) {
  1457. let instance = this;
  1458. instance.isDshboardBckArray.push({ "DashbaordId": dashboardid, "DashboardName": dashboardname, "isBack": "Dashboard" });
  1459. const commonFilterInstance = Unibase.Platform.Analytics.Components._CommonFilter.Instance();
  1460. commonFilterInstance.commonfilterColumns = [];
  1461. commonFilterInstance.appliedFilters = [];
  1462. commonFilterInstance.selectedCommonFilters = [];
  1463. let rvInsArray = Unibase.Platform.Helpers.NavigationHelper.reportViewerInstance;
  1464. if (rvInsArray.length > 0) {
  1465. for (var i = 0; i < rvInsArray.length; i++) {
  1466. rvInsArray[i].instance.inputParameters = [];
  1467. rvInsArray[i].instance.dynamicFilters = [];
  1468. }
  1469. }
  1470. Unibase.Themes.Compact.Components.Dashboard.Instance().loadWidgets(dashboardid, dashboardname);
  1471. const modalContainerId = instance.navigationHelper.getLastContainerId();
  1472. if ($(`#filterItem_${dashboardid}`).attr('data-pincmnfilters') === 'true' || pincmnfilters) {
  1473. if ($('#bizCmnFilterPanel').hasClass('show')) {
  1474. const portletId = +$("#hf_PortletId").val();
  1475. Unibase.Platform.Analytics.Components._CommonFilter.Instance().commonFilter(portletId, `_CmnFilterPanel_${$("#hf_PortletId").parent().attr('id')}`);
  1476. }
  1477. else {
  1478. Unibase.Themes.Compact.Components.Dashboard.Instance().loadCommonFilterPanel(modalContainerId);
  1479. }
  1480. }
  1481. else {
  1482. let cls_fnav = $("#bizgaze_body").find('.biz-layout-3-top-navbar').hasClass("hk-nav-toggle");
  1483. if (cls_fnav == false) {
  1484. Unibase.Themes.Compact.Components.Dashboard.Instance().closeCmnFilterPanel(modalContainerId);
  1485. }
  1486. }
  1487. }
  1488. prflDropDownMenu() {
  1489. $('.mob-view').removeClass('show');
  1490. $('.mob-view').find('a[aria-expanded="true"]').attr({ 'aria-expanded': 'false' });
  1491. $('.mob-view').find('.dropdown-menu').removeClass('show');
  1492. }
  1493. loadDashboardsInDashboard(groupid, dashboardid, IsEvent) {
  1494. var dboards = this.dashboards.filter(x => x.DashboardGroupId == groupid);
  1495. Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.length = 0;
  1496. try {
  1497. if (($(window).width()) <= 575) {
  1498. this.activeFooter(dboards[0].DashboardId, true);
  1499. }
  1500. }
  1501. catch (e) {
  1502. }
  1503. this.prflDropDownMenu();
  1504. $("._bizgaze_detail_container.bg-cyan-light-5-removed").each(function (i, e) {
  1505. Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds = Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds.filter(id => id !== $(e).attr('id'));
  1506. $(e).remove();
  1507. });
  1508. $("._bizgaze_detail_container").removeClass("hidden");
  1509. if ($(".dashboard-options-list").length === 0) {
  1510. Unibase.Platform.Helpers.NavigationHelper.Instance().loadSection(0, "", Unibase.Themes.Compact.Components.Dashboard.Instance(), null, null);
  1511. }
  1512. $('#layoutMainNavbar,.biz-submenu').find('.nav-item.active-item').removeClass('active-item');
  1513. if ($('#bizCmnFilterPanel').hasClass('show')) {
  1514. $('#cmnFilterPanelClose').trigger('click');
  1515. }
  1516. if (!this.desktopMode) {
  1517. $('#settings_panel_close').trigger('click');
  1518. }
  1519. Unibase.Themes.Providers.DetailHelper.installedAppId = 0;
  1520. Unibase.Themes.Providers.DetailHelper.recordId = 0;
  1521. Unibase.Platform.Helpers.NavigationHelper.installedAppId = 0;
  1522. Unibase.Themes.Compact.Components.Dashboard.Instance().loadDashboards(dboards, dashboardid, IsEvent);
  1523. }
  1524. manageDashboards() {
  1525. var instance = this;
  1526. var jsfiles = ["platform/dashboards/components/managedashboards.js"];
  1527. instance.fileCacheHelper.loadJsFiles(jsfiles, function () {
  1528. instance.navigationHelper.popup(0, "", Unibase.Platform.Dashboards.Components.ManageDashboard.Instance(), null, Unibase.Platform.Helpers.Size.DockLeft);
  1529. });
  1530. }
  1531. loadAppGroups() {
  1532. var instance = this;
  1533. var jsfiles = ["platform/bundle/index.load.appgroup.min.js"];
  1534. instance.fileCacheHelper.loadJsFiles(jsfiles, function () {
  1535. Unibase.Platform.Helpers.FileCacheHelper.Instance().addCacheFiles(["platform/appgroups/components/manageappgroup.js", "platform/appgroups/managers/appgroupmanager.js"]);
  1536. instance.navigationHelper.popup(0, "", Unibase.Platform.AppGroups.Components.ManageAppGroup.Instance(), null, Unibase.Platform.Helpers.Size.DockLeft);
  1537. });
  1538. }
  1539. loadApps(containerid) {
  1540. let instance = this;
  1541. if ($(`#${containerid} .nav-item`).length <= 1) {
  1542. var manager = Unibase.Platform.Apps.Managers.AppManager.Instance();
  1543. manager.getMyApps().then(function (response) {
  1544. if (response.result.length != 0) {
  1545. var myapps = response.result;
  1546. let html = "";
  1547. let grouptemplate = Components.Nav_Template.Instance().appGroupTemplate();
  1548. var template = Components.Nav_Template.Instance().appTemplate();
  1549. var appgroups;
  1550. appgroups = [];
  1551. for (let i = 0; i < myapps.length; i++) {
  1552. var myapp = myapps[i];
  1553. var groupname = myapp.AppGroupName;
  1554. if (myapp.ParentAppId != 0) {
  1555. groupname = "Child Apps";
  1556. myapp.AppGroupId = 1;
  1557. }
  1558. if (groupname === null || groupname === "")
  1559. groupname = "No Group";
  1560. var isAppGroupExists = appgroups.findIndex(x => x.AppGroupName == groupname);
  1561. if (isAppGroupExists == -1) {
  1562. appgroups.push({
  1563. AppGroupId: myapp.AppGroupId,
  1564. AppGroupName: groupname,
  1565. IconName: myapp.GroupIconName,
  1566. });
  1567. }
  1568. }
  1569. $("#" + containerid).empty();
  1570. for (let i = 0; i < appgroups.length; i++) {
  1571. var group = appgroups[i];
  1572. var groupid = group.AppGroupId;
  1573. var templateScript = Handlebars.compile(grouptemplate);
  1574. var context = { "AppGroupId": group.AppGroupId, "AppGroupName": group.AppGroupName, "IconName": group.IconName };
  1575. html = templateScript(context);
  1576. $("#" + containerid).append(html);
  1577. var groupapps = myapps.filter(function (myapp, index) {
  1578. return myapp.AppGroupId === group.AppGroupId;
  1579. });
  1580. if (groupapps.length > 0) {
  1581. groupapps.forEach(function (dashboard, index) {
  1582. context = dashboard;
  1583. templateScript = Handlebars.compile(template);
  1584. html = templateScript(context);
  1585. $("#liAppGroup_" + groupid + "_item").before(html);
  1586. });
  1587. }
  1588. }
  1589. $("#liAppGroup_1").addClass("hidden");
  1590. if ($('#nav-apps .nav-AppGroup').not('.hidden').length > 5) {
  1591. instance.appendNavSearchInput(containerid);
  1592. }
  1593. else if (instance.layoutIndex == instance.leftLayout) {
  1594. $('.biz-submenu .header-wth-search').addClass('d-none');
  1595. }
  1596. instance.loadTopNavMegaMenu('nav-apps');
  1597. }
  1598. else {
  1599. $(`#${containerid}`).html('<li class="nav-item"><a class="nav-link">No Apps!</a></li>');
  1600. }
  1601. });
  1602. }
  1603. let detailContainerId = $('._bizgaze_detail_container').attr('id');
  1604. if (!$(`#searchWrapper${detailContainerId}`).is(':visible') && !$('#div_detail_profile').is(':visible')) {
  1605. $('#nav-apps .liappgrp-item.active-item').removeClass('active-item');
  1606. }
  1607. $("#nav-apps .nav-AppGroup").removeClass("hidden");
  1608. $(".liappgrp-addeditem").removeClass("hidden");
  1609. $("#nav-apps li").find(".flex-column.show").collapse("hide");
  1610. $("#liAppGroup_1").addClass("hidden");
  1611. $("#txt_global_Search").val('');
  1612. $('#nav-apps').on('mouseenter', '.nav-app-link', function () {
  1613. let canCreate = $(this).find('.createform').attr('createid');
  1614. if (canCreate == 'true') {
  1615. $(this).find('.createform').removeClass('hidden');
  1616. }
  1617. else {
  1618. $(this).find('.createform').addClass('hidden');
  1619. }
  1620. }).on("mouseleave", '.nav-app-link', function () {
  1621. $(this).find('.createform').addClass('hidden');
  1622. });
  1623. }
  1624. loadApp(reportid) {
  1625. }
  1626. loadCreateAppGroups() {
  1627. }
  1628. loadCreateApps(containerid) {
  1629. var jsfiles = [
  1630. "platform/apps/managers/appmanager.js",
  1631. "platform/apps/infos/apps.js"
  1632. ];
  1633. var instance = this;
  1634. if ($(`#${containerid} .nav-item`).length <= 1) {
  1635. this.fileCacheHelper.loadJsFiles(jsfiles, function () {
  1636. var manager = Unibase.Platform.Apps.Managers.AppManager.Instance();
  1637. manager.getMyApps().then(function (response) {
  1638. if (response.result.length != 0) {
  1639. var myapps = response.result;
  1640. instance.createapps = myapps;
  1641. let html = "";
  1642. let grouptemplate = Components.Nav_Template.Instance().createAppGroupTemplate();
  1643. if (instance.layoutIndex == instance.topLayout)
  1644. grouptemplate = Components.Nav_Template.Instance().createAppGroupTemplate2();
  1645. var template = Components.Nav_Template.Instance().createAppTemplate();
  1646. var appgroups;
  1647. appgroups = [];
  1648. myapps = myapps.sort(function (a, b) {
  1649. var aAppGroupName = a.AppGroupName;
  1650. var bAppGroupName = b.AppGroupName;
  1651. if (aAppGroupName === null)
  1652. aAppGroupName = "";
  1653. if (bAppGroupName === null)
  1654. bAppGroupName = "";
  1655. var x = aAppGroupName.toLowerCase();
  1656. var y = bAppGroupName.toLowerCase();
  1657. if (x < y) {
  1658. return -1;
  1659. }
  1660. if (x > y) {
  1661. return 1;
  1662. }
  1663. return 0;
  1664. });
  1665. var prevappgroupname = "";
  1666. for (let i = 0; i < myapps.length; i++) {
  1667. var myapp = myapps[i];
  1668. var groupname = myapp.AppGroupName;
  1669. if (groupname === null || groupname === "")
  1670. groupname = "No Group";
  1671. if (prevappgroupname != groupname) {
  1672. appgroups.push({
  1673. AppGroupId: myapp.AppGroupId,
  1674. AppGroupName: groupname,
  1675. IconName: myapp.GroupIconName,
  1676. });
  1677. prevappgroupname = groupname;
  1678. }
  1679. }
  1680. $("#" + containerid).empty();
  1681. for (let i = 0; i < appgroups.length; i++) {
  1682. var group = appgroups[i];
  1683. var groupid = group.AppGroupId;
  1684. var templateScript = Handlebars.compile(grouptemplate);
  1685. var context = { "AppGroupId": group.AppGroupId, "AppGroupName": group.AppGroupName, "IconName": group.IconName };
  1686. html = templateScript(context);
  1687. $("#" + containerid).append(html);
  1688. var groupapps = myapps.filter(function (myapp, index) {
  1689. return myapp.AppGroupId === group.AppGroupId;
  1690. });
  1691. if (groupapps.length > 0) {
  1692. groupapps.forEach(function (dashboard, index) {
  1693. context = dashboard;
  1694. templateScript = Handlebars.compile(template);
  1695. html = templateScript(context);
  1696. $("#licreateAppGroup_" + groupid + "_item").before(html);
  1697. });
  1698. }
  1699. }
  1700. }
  1701. else {
  1702. $(`#${containerid}`).html('<li class="nav-item"><a class="nav-link">No Apps!</a></li>');
  1703. }
  1704. });
  1705. });
  1706. }
  1707. }
  1708. loadCreateApp(reportid) {
  1709. }
  1710. loadSettingGroups(containerid) {
  1711. var _fileCacheHelper = this.fileCacheHelper;
  1712. var instance = this;
  1713. $("#btnrefresh").click(function () {
  1714. _fileCacheHelper.loadJsFile('/platform/apps/managers/appmanager.js', function () {
  1715. Unibase.Platform.Apps.Managers.AppManager.Instance().refreshApps().then(function (response) {
  1716. });
  1717. });
  1718. });
  1719. $("#btnrefresh_Forms").click(function () {
  1720. _fileCacheHelper.loadJsFile('/platform/forms/managers/formmanager.js', function () {
  1721. Unibase.Platform.Forms.Managers.FormManager.Instance().refreshForms().then(function (response) {
  1722. });
  1723. });
  1724. });
  1725. $("#btnrefresh_Autocompletes").click(function () {
  1726. _fileCacheHelper.loadJsFile('/platform/forms/managers/formmanager.js', function () {
  1727. Unibase.Platform.Forms.Managers.FormManager.Instance().refreshAutocompletes().then(function (response) {
  1728. });
  1729. });
  1730. });
  1731. $("#btnrefresh_Controls").click(function () {
  1732. _fileCacheHelper.loadJsFile('/platform/forms/managers/formmanager.js', function () {
  1733. Unibase.Platform.Forms.Managers.FormManager.Instance().refreshControls().then(function (response) {
  1734. });
  1735. });
  1736. });
  1737. $("#btnrefresh_actionproviders").click(function () {
  1738. _fileCacheHelper.loadJsFile('/platform/forms/managers/formmanager.js', function () {
  1739. Unibase.Platform.Forms.Managers.FormManager.Instance().refreshActionProviders().then(function (response) {
  1740. });
  1741. });
  1742. });
  1743. $("#btnrefresh_Widgets").click(function () {
  1744. _fileCacheHelper.loadJsFile('/platform/widgets/managers/widgetmanager.js', function () {
  1745. Unibase.Platform.Widgets.Managers.WidgetManager.Instance().refreshWidgets().then(function (response) {
  1746. });
  1747. });
  1748. });
  1749. $("#btnrefresh_Widgetlayouts").click(function () {
  1750. _fileCacheHelper.loadJsFile('/platform/widgets/managers/widgetmanager.js', function () {
  1751. Unibase.Platform.Widgets.Managers.WidgetManager.Instance().refreshWidgetLayouts().then(function (response) {
  1752. });
  1753. });
  1754. });
  1755. $("#btnrefresh_datalists").click(function () {
  1756. _fileCacheHelper.loadJsFile('/platform/datasources/managers/datalistmanager.js', function () {
  1757. Unibase.Platform.DataSources.Managers.DataListManager.Instance().refreshDataLists().then(function (response) {
  1758. });
  1759. });
  1760. });
  1761. $("#btnrefresh_reports").click(function () {
  1762. _fileCacheHelper.loadJsFile('/platform/analytics/managers/reportmanager.js', function () {
  1763. Unibase.Platform.Analytics.Managers.ReportManager.Instance().refreshReports().then(function (response) {
  1764. alert(response);
  1765. });
  1766. });
  1767. });
  1768. $("#btnrefresh_dataapis").click(function () {
  1769. _fileCacheHelper.loadJsFile('/platform/dataapis/managers/dataapimanager.js', function () {
  1770. Unibase.Platform.DataApis.Manangers.DataApiManager.Instance().refreshDataApis().then(function (response) {
  1771. });
  1772. });
  1773. });
  1774. $("#btnrefresh_integrationproviders").click(function () {
  1775. _fileCacheHelper.loadJsFile('/platform/integrations/managers/integrationmanager.js', function () {
  1776. Unibase.Platform.Integrations.Managers.IntegrationManager.Instance().refreshIntegrationProviders().then(function (response) {
  1777. });
  1778. });
  1779. });
  1780. $("#btnrefresh_FileProviders").click(function () {
  1781. _fileCacheHelper.loadJsFile('apps/collaboration/managers/filemanager.js', function () {
  1782. Unibase.Apps.Collaboration.FileManager.Instance().refreshApps().then(function (response) {
  1783. });
  1784. });
  1785. });
  1786. $("#btnrefresh_PrintProviders").click(function () {
  1787. _fileCacheHelper.loadJsFile('platform/templates/managers/templatemanager.js', function () {
  1788. Unibase.Platform.Templates.Managers.TemplateManager.Instance().refreshPrintProviders().then(function (response) {
  1789. });
  1790. });
  1791. });
  1792. $("#btnrefresh_templateproviders").click(function () {
  1793. _fileCacheHelper.loadJsFile('platform/templates/managers/templatemanager.js', function () {
  1794. Unibase.Platform.Templates.Managers.TemplateManager.Instance().refreshTemplateProviders().then(function (response) {
  1795. });
  1796. });
  1797. });
  1798. $("#btnrefresh_cryptoproviders").click(function () {
  1799. _fileCacheHelper.loadJsFile('platform/crypto/managers/cryptomanager.js', function () {
  1800. Unibase.Platform.Crypto.Managers.CryptoManger.Instance().refreshcryptoproviders().then(function (response) {
  1801. });
  1802. });
  1803. });
  1804. $("#btnrefresh_StaticReportObject").click(function () {
  1805. instance.refreshReportStaticObj();
  1806. });
  1807. $("#btnupdate_datalistcolums").click(function () {
  1808. instance.updateReport(0);
  1809. });
  1810. $("#btn_refreshnotificationproviders").click(function () {
  1811. _fileCacheHelper.loadJsFile('platform/automation/managers/rulemanager.js', function () {
  1812. Unibase.Platform.Automation.Managers.RuleManager.Instance().refreshNotificationProviders().then(function (response) {
  1813. });
  1814. });
  1815. });
  1816. }
  1817. refreshReportStaticObj() {
  1818. var instance = this;
  1819. instance.fileCacheHelper.loadJsFile('platform/core/infos/status.js', function () {
  1820. Unibase.Platform.Analytics.Managers.ReportManager.Instance().refreshStaticObj(0).then(function (rsoresponse) {
  1821. if (rsoresponse.status == Unibase.Data.Status.Success) {
  1822. return MessageHelper.Instance().showSuccess('StaticObject Refreshed Successfully', '');
  1823. }
  1824. });
  1825. });
  1826. }
  1827. updateReport(reportid) {
  1828. var instance = this;
  1829. if (reportid != 0)
  1830. reportid = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + Unibase.Themes.Providers.DetailHelper.installedAppId + "_reportid").Value);
  1831. instance.fileCacheHelper.loadJsFile('/platform/analytics/managers/reportmanager.js', function () {
  1832. Unibase.Platform.Analytics.Managers.ReportManager.Instance().updatecolumns(reportid).then(function (csresponse) {
  1833. if (csresponse.status == Unibase.Data.Status.Error) {
  1834. return MessageHelper.Instance().showError(csresponse.message, 'div_message');
  1835. }
  1836. else {
  1837. return MessageHelper.Instance().showSuccess('Report Executed', '');
  1838. }
  1839. });
  1840. });
  1841. }
  1842. loadSettings(groupid) {
  1843. }
  1844. loadReports(containerid) {
  1845. if ($(`#${containerid} .nav-item`).length <= 1) {
  1846. var instance = this;
  1847. Unibase.Platform.Analytics.Managers.ReportManager.Instance().getViewableReports().then(function (response) {
  1848. if (response.result.length != 0) {
  1849. var allReports = response.result;
  1850. let html = "";
  1851. let groupTemplate = Components.Nav_Template.Instance().reportGroupTemplate();
  1852. let reportTemplate = Components.Nav_Template.Instance().reportTemplate();
  1853. var groupTemplateScript = Handlebars.compile(groupTemplate);
  1854. var reportTemplateScript = Handlebars.compile(reportTemplate);
  1855. let filterReportGroups = allReports.filter((report, index, self) => index === self.findIndex((x) => (x.ReportGroupId === report.ReportGroupId)));
  1856. filterReportGroups = filterReportGroups.filter(x => x.IsInternalGroup == false);
  1857. $.each(filterReportGroups, function (index, group) {
  1858. let context = { "ReportGroupId": group.ReportGroupId, "ReportGroupName": group.GroupName };
  1859. html += groupTemplateScript(context);
  1860. });
  1861. $(`#${containerid}`).html(html);
  1862. $.each(allReports, function (index, report) {
  1863. let reportHtml = "";
  1864. if (!report.DisplayName) {
  1865. report.DisplayName = report.ReportName;
  1866. }
  1867. var context = report;
  1868. reportHtml = reportTemplateScript(context);
  1869. $(`#reportgroup-drp-${report.ReportGroupId}`).append(reportHtml);
  1870. });
  1871. if (filterReportGroups.length > 5) {
  1872. instance.appendNavSearchInput(containerid);
  1873. }
  1874. else if (instance.layoutIndex == instance.leftLayout) {
  1875. $('.biz-submenu .header-wth-search').addClass('d-none');
  1876. }
  1877. if (instance.desktopMode && instance.layoutIndex !== instance.topLayout) {
  1878. $("#nav-reports .nav-item[title]").tooltip({ position: { my: "left top", at: "right+5 top+2", collision: "none" } });
  1879. }
  1880. instance.loadTopNavMegaMenu('nav-reports');
  1881. }
  1882. else {
  1883. $(`#${containerid}`).html('<li class="nav-item"><a class="nav-link">No Reports!</a></li>');
  1884. }
  1885. });
  1886. }
  1887. $("#nav-reports .nav-ReportGroup").removeClass("hidden");
  1888. $(".lireportgrp-item").removeClass("hidden");
  1889. $("#nav-reports li").find(".flex-column.show").collapse("hide");
  1890. $("#txt_global_Search").val('');
  1891. }
  1892. appendNavSearchInput(containerid) {
  1893. const instance = this;
  1894. if (instance.layoutIndex == instance.topLayout || instance.layoutIndex == instance.topLeftLayout) {
  1895. if ($(`#${containerid}`).attr('data-istitlehidden') != 'true') {
  1896. instance.addMenuCollapseClickEvent();
  1897. let searchInputClass = '';
  1898. let searchInputPlaceholder = '';
  1899. if (containerid == 'nav-dashboards') {
  1900. searchInputClass = 'dashboards-search-input';
  1901. searchInputPlaceholder = 'Dashboards';
  1902. }
  1903. else if (containerid == 'nav-apps') {
  1904. searchInputClass = 'apps-search-input';
  1905. searchInputPlaceholder = 'Apps';
  1906. }
  1907. else if (containerid == 'nav-reports') {
  1908. searchInputClass = 'reports-search-input';
  1909. searchInputPlaceholder = 'Reports';
  1910. }
  1911. let searchHtml = '';
  1912. if (instance.desktopMode && instance.layoutIndex === instance.topLayout) {
  1913. searchHtml = `<li class="nav-item border-bottom nav-group-search-li top-menu-search position-relative"><span class="top-search-icon opacity-90"><i class="fa fa-search"></i></span><a href="javascript:;" class="clear-search btn btn-icon btn-flush-biz-theme btn-rounded flush-soft-hover w-20p h-20p"><span class="btn-icon-wrap"><i class="dripicons dripicons-cross"></i></span></a> <input type="text" placeholder="Search ${searchInputPlaceholder}..." class="${searchInputClass} group-search-input w-100 py-1 biz-primary-text-color pl-20" autocomplete="off"></li>`;
  1914. $("#" + containerid).parents('.collapse-level-1').find('.nav-group-search-li').remove();
  1915. $("#" + containerid).parents('.collapse-level-1').prepend(searchHtml);
  1916. }
  1917. else {
  1918. searchHtml = `<li class="nav-item border-bottom nav-group-search-li position-relative"><input type="text" placeholder="Search ${searchInputPlaceholder}..." class="${searchInputClass} group-search-input w-100 py-1 biz-primary-text-color" autocomplete="off"><span class="search-icon"><i class="fa fa-search"></i></span><a href="javascript:;" class="clear-search btn btn-icon btn-flush-biz-theme btn-rounded flush-soft-hover w-20p h-20p"><span class="btn-icon-wrap"><i class="dripicons dripicons-cross"></i></span></a></li>`;
  1919. $("#" + containerid).find('.nav-group-search-li').remove();
  1920. $("#" + containerid).prepend(searchHtml);
  1921. }
  1922. instance.initiateNavSearch(`.${searchInputClass}`);
  1923. }
  1924. }
  1925. }
  1926. loadTopNavMegaMenu(containerid) {
  1927. const instance = this;
  1928. if (instance.desktopMode && instance.layoutIndex === instance.topLayout) {
  1929. const containerEl = $(`#${containerid}`);
  1930. let navGroupEl = '';
  1931. if (containerid.includes('nav-dashboards')) {
  1932. navGroupEl = $('#dash_drp');
  1933. }
  1934. else if (containerid.includes('nav-apps')) {
  1935. navGroupEl = $('#pages_drp');
  1936. }
  1937. else if (containerid.includes('nav-reports')) {
  1938. navGroupEl = $('#reports_drp');
  1939. }
  1940. containerEl.removeClass('flex-column');
  1941. navGroupEl.find('.biz_anchor,.mega-sub-head-nav-link').click(function () {
  1942. $(this).parents("ul.collapse.collapse-level-1").css('display', 'none');
  1943. });
  1944. let isSettingsPanelVisible = false;
  1945. navGroupEl.parents('#layoutMainNavbar').find('.nav-group-collapse-link, .collapse.collapse-level-1').off('mouseenter mouseleave').hover(function () {
  1946. $(this).parent().find(".collapse.collapse-level-1").css('display', 'block');
  1947. $('#reportdatepicker__navCmnDateFilter_0').hide();
  1948. $('.profile-dropdown-menu').removeClass('show');
  1949. if ($('.biz-settings-toggle').length) {
  1950. isSettingsPanelVisible = true;
  1951. $('.biz-settings-toggle').removeClass('biz-settings-toggle');
  1952. }
  1953. else {
  1954. isSettingsPanelVisible = false;
  1955. }
  1956. $('.select2-dropdown').parent().hide();
  1957. }, function () {
  1958. isSettingsPanelVisible && $('.hk-wrapper').addClass('biz-settings-toggle');
  1959. $(this).parent().find(".collapse.collapse-level-1").css('display', 'none');
  1960. $('.select2-dropdown').parent().show();
  1961. });
  1962. navGroupEl.addClass('pl-15');
  1963. navGroupEl.find('.nav-group-search-li').attr('style', 'width:400px !important;margin-left:0px !important');
  1964. navGroupEl.attr('style', 'min-width: 90vw;position:fixed !important;display:none').removeClass('flex-column');
  1965. navGroupEl.find('.nav-item').addClass('p-0');
  1966. navGroupEl.find('.mega-nav-li-list .mega-sub-head-nav-link').addClass('font-weight-bold').attr("data-toggle", '');
  1967. navGroupEl.find('.mega-nav-li-list').find('.drp-list').removeClass('collapse-level-1 flex-column collapse');
  1968. navGroupEl.find('.liappgrp-item ,.lireportgrp-item').find('.mega-nav-item').addClass('font-14');
  1969. navGroupEl.find('.mega-sub-head-nav-link ,.liappgrp-item,.lireportgrp-item .biz_anchor,.li-dashboard-item .nav-link').removeClass('nav-hover-link');
  1970. $('#nav-apps').find('.mega-nav-li-list .drp-list .w-90,.mega-nav-li-list .drp-list .w-10').removeClass('w-10 w-90').addClass('w-100');
  1971. navGroupEl.find('.mega-nav-item').attr('style', 'opacity:0.8;border:1px solid transparent;').addClass('h-100');
  1972. $('#nav-reports').find('.mega-nav-li-list .drp-list .mega-nav-item').css('width', '75%');
  1973. navGroupEl.find('.mega-nav-li-list').css('break-inside', 'avoid');
  1974. navGroupEl.find('.mega-nav').addClass('mega-nav-col');
  1975. $('.dashboards-search-input,.apps-search-input,.reports-search-input').focus(function () {
  1976. $('.top-search-icon').addClass('d-none');
  1977. });
  1978. $('.dashboards-search-input,.apps-search-input,.reports-search-input').blur(function () {
  1979. $('.top-search-icon').removeClass('d-none');
  1980. });
  1981. $('.dashboards-search-input,.apps-search-input,.reports-search-input').keyup(function (e) {
  1982. let val = $(e.target).val();
  1983. $(this).parent().parent().find(".collapse-item").find("ul li").find(".nav-link").show();
  1984. if (val === '') {
  1985. $(this).parent().parent().find(".collapse-item").find("ul li").find(".nav-link").show();
  1986. $(this).parent().parent().find(".collapse-item").find("#liAppGroup_1").removeClass("active").addClass("hidden");
  1987. $(e.target).parent().find('.top-search-icon').removeClass('d-none');
  1988. $(e.target).parent().find('.clear-search.btn').fadeOut();
  1989. }
  1990. else {
  1991. $(e.target).parent().find('.top-search-icon').addClass('d-none');
  1992. }
  1993. });
  1994. $(".nav-dashboards-item,.nav-apps-item,.nav-reports-item").on("mouseenter", function (e) {
  1995. $('#nav-apps li.nav-item.nav-AppGroup:first-child').addClass('hidden');
  1996. let dis_val = $('#nav-apps li.nav-item.nav-AppGroup#liAppGroup_1').hasClass("active");
  1997. if (dis_val == false) {
  1998. $('#nav-apps li.nav-item.nav-AppGroup#liAppGroup_1').addClass('hidden');
  1999. }
  2000. else {
  2001. $('#nav-apps li.nav-item.nav-AppGroup#liAppGroup_1').removeClass('hidden');
  2002. }
  2003. });
  2004. }
  2005. }
  2006. activeFooter(id, isDashBoard) {
  2007. try {
  2008. var footerElement = document.getElementsByClassName("biz-mobile-footer");
  2009. if (footerElement) {
  2010. let existingActiveElement = $(footerElement).find(".active");
  2011. if (existingActiveElement) {
  2012. $(existingActiveElement).removeClass("active");
  2013. }
  2014. }
  2015. var footerGroupElement = document.querySelector(".footerItem_" + id);
  2016. if (isDashBoard && footerGroupElement == undefined) {
  2017. var dashBoardGroupId = this.dashboards.find(x => x.DashboardId == id).DashboardGroupId;
  2018. footerGroupElement = document.querySelector(".footerItem_" + dashBoardGroupId);
  2019. }
  2020. if (footerGroupElement) {
  2021. let footerItem = $(footerGroupElement).find(".nav-footer-link");
  2022. if (footerItem) {
  2023. footerItem.addClass("active");
  2024. }
  2025. }
  2026. }
  2027. catch (e) {
  2028. }
  2029. }
  2030. loadList(installedappid) {
  2031. const instance = this;
  2032. this.installedAppId = installedappid;
  2033. Unibase.Themes.Providers.DetailHelper.recordId = 0;
  2034. Unibase.Themes.Providers.DetailHelper.installedAppId = 0;
  2035. Unibase.Platform.Helpers.NavigationHelper.Filter = [];
  2036. Unibase.Platform.Helpers.NavigationHelper.ListSearchTerm = "";
  2037. Unibase.Themes.Compact.Components.Details.Instance().lastContinerId = '';
  2038. try {
  2039. if (($(window).width()) <= 575) {
  2040. this.activeFooter(installedappid);
  2041. }
  2042. }
  2043. catch (e) {
  2044. }
  2045. this.navigationHelper.loadList(installedappid, null);
  2046. $('#layoutMainNavbar,.biz-submenu').find('.nav-item.active-item').removeClass('active-item');
  2047. $(`.UlItem_${installedappid}`).addClass('active-item');
  2048. $('.db-setting-dp-item').addClass('d-none');
  2049. if ($('#bizCmnFilterPanel').hasClass('show'))
  2050. $('#cmnFilterPanelClose').trigger('click');
  2051. if (!instance.desktopMode) {
  2052. $('#settings_panel_close').trigger('click');
  2053. }
  2054. }
  2055. loadCreateHtml(installedappid) {
  2056. var instance = this.fileCacheHelper;
  2057. var jsfiles = [
  2058. "platform/apps/managers/appmanager.js",
  2059. "platform/forms/components/formviewer/formviewer.js",
  2060. "platform/forms/managers/formmanager.js",
  2061. "platform/apps/enums/appconfigurationtypes.js"
  2062. ];
  2063. this.fileCacheHelper.loadJsFiles(jsfiles, function () {
  2064. Unibase.Platform.Apps.Managers.AppManager.Instance().getListAppConfigurations(installedappid).then(function (response) {
  2065. var data = response.result;
  2066. var FormId;
  2067. var AppConfigId;
  2068. if (response.result == null || response.result.length == 0) {
  2069. }
  2070. else {
  2071. for (let i = 0; i < data.length; i++) {
  2072. if (Number(response.result[i].SettingUrlType) == Unibase.Platform.Apps.Enums.SettingUrlType.Form && Number(response.result[i].AppConfigType) == Unibase.Platform.Apps.Enums.AppConfigeType.List && response.result[i].Ungrouped == true) {
  2073. FormId = response.result[i].FormId;
  2074. AppConfigId = response.result[i].AppConfigurationId;
  2075. }
  2076. }
  2077. }
  2078. if (FormId)
  2079. instance.loadJsFile("platform/forms/components/formviewer/formviewer.js", function () {
  2080. Unibase.Platform.Forms.Components.FormViewer.Instance().loadForm(FormId, 0, AppConfigId, null, 0);
  2081. });
  2082. });
  2083. });
  2084. }
  2085. loadReport(Reportid) {
  2086. var instance = this;
  2087. if (!instance.isDshboardBck) {
  2088. instance.isDshboardBckArray.push({ "ReportId": Reportid, "ReportName": $('#' + Reportid).find("#hf_Analytics_ReportName").val(), "isBack": "Report" });
  2089. }
  2090. else {
  2091. instance.isDshboardBck = false;
  2092. }
  2093. this.navigationHelper.closeAllModals();
  2094. try {
  2095. if (($(window).width()) <= 575) {
  2096. this.activeFooter(Reportid);
  2097. }
  2098. }
  2099. catch (e) {
  2100. }
  2101. Unibase.Platform.Helpers.NavigationHelper.reportViewerInstance = [];
  2102. Unibase.Platform.Helpers.NavigationHelper.installedAppId = 0;
  2103. Unibase.Themes.Providers.DetailHelper.installedAppId = 0;
  2104. Unibase.Themes.Providers.DetailHelper.recordId = 0;
  2105. this.fileCacheHelper.loadJsFiles(["platform/analytics/managers/reportmanager.js", "platform/analytics/components/reportviewer/reportviewerhiddenfields.js", "platform/analytics/managers/reportmanager.js", "platform/analytics/components/reportbuilder/reportbuilderhiddenfields.js", "platform/analytics/enums/reporttype.js", "platform/analytics/enums/viewertype.js", "platform/analytics/components/reportviewer/_reportviewer.js", "platform/analytics/components/reportviewer/reportviewer.js", "platform/filters/components/editfilter.js"], function () {
  2106. instance.navigationHelper.popin(Reportid, "", Unibase.Platform.Analytics.Components.ReportViewer.Instance(), null);
  2107. $(".reportview-remove-none").removeClass("d-none");
  2108. $('#layoutMainNavbar,.biz-submenu').find('.nav-item.active-item').removeClass('active-item');
  2109. $(`li.UlItem_${Reportid}`).addClass('active-item');
  2110. if (!instance.desktopMode) {
  2111. $('#settings_panel_close').trigger('click');
  2112. }
  2113. });
  2114. $('.filters-dropdown-div-top-layout').addClass('d-none');
  2115. instance.installedAppId = 0;
  2116. instance.reportId = Reportid;
  2117. }
  2118. loadUserProfile(containerid) {
  2119. var cookieHelper = Unibase.Platform.Helpers.CookieHelper.Instance();
  2120. var currentuser = Unibase.Platform.Membership.Infos.Identity.getCurrentUser();
  2121. var userIdentityStr = cookieHelper.getUserIdentityCookie();
  2122. if (userIdentityStr == "")
  2123. $(".userBtnLogoff").removeClass('d-flex').addClass('d-none');
  2124. $(".userBtnLogoff").click(function () {
  2125. Unibase.Platform.Membership.Managers.AccountManager.Instance().userLogoff(currentuser.sessionId).then(function (response) {
  2126. if (userIdentityStr !== "") {
  2127. var obj = JSON.parse(userIdentityStr);
  2128. cookieHelper.deleteCookie(Unibase.Platform.Helpers.CookieHelper._userIdentitycookie);
  2129. Unibase.Platform.Membership.Infos.Identity.setCurrentUser(obj);
  2130. window.location.href = '#/welcome';
  2131. window.location.reload();
  2132. MessageHelper.Instance().showSuccess("User Logged Out Successfully", '');
  2133. }
  2134. });
  2135. });
  2136. $(".btnLogoff").click(function () {
  2137. if (isMobileApp()) {
  2138. Unibase.Platform.Helpers.MobileHelper.Instance().cacheUserCredantials('', '');
  2139. Unibase.Platform.Helpers.MobileHelper.Instance().logout();
  2140. Unibase.Platform.Membership.Infos.Identity.setCurrentUser(null);
  2141. cookieHelper.deleteCookie(Unibase.Platform.Helpers.CookieHelper._userIdentitycookie);
  2142. }
  2143. else {
  2144. Unibase.Platform.Membership.Infos.Identity.setCurrentUser(null);
  2145. $("#bizgaze_body").html("");
  2146. cookieHelper.deleteCookie(Unibase.Platform.Helpers.CookieHelper._userIdentitycookie);
  2147. window.location.href = '/#/logoff';
  2148. window.location.reload();
  2149. }
  2150. });
  2151. if (jQuery("#" + containerid) == undefined || jQuery("#" + containerid).html() == undefined)
  2152. return;
  2153. if (jQuery("#" + containerid).html().length < 10) {
  2154. var _fileCacheHelper = this.fileCacheHelper;
  2155. $("#btn_bizgaze_normalmode").click(function () {
  2156. _fileCacheHelper.loadJsFile("tenants/themes/compact/js/designmode/designmode.js", function () {
  2157. let IsAdmin = true;
  2158. let InstalledAppId = 0;
  2159. var isadmin = $("#hfBizgaze_IsAdmin").val();
  2160. if (isadmin === 1)
  2161. IsAdmin = true;
  2162. var installedAppId = $("#hfLayout_InstalledPageId").val();
  2163. if (installedAppId !== undefined && installedAppId !== 0 && installedAppId !== "")
  2164. InstalledAppId = Number(installedAppId);
  2165. Components.DesignMode.Instance().closeDesignMode(IsAdmin, InstalledAppId);
  2166. });
  2167. });
  2168. }
  2169. }
  2170. loadNotifications(containerid) {
  2171. Unibase.Themes.Compact.Components.Notification.Instance().init(containerid);
  2172. }
  2173. loadFilters(containerid) {
  2174. var instance = this;
  2175. var containerid = $("._bizgaze_detail_container:visible").attr("id");
  2176. var jsfiles = ['platform/analytics/enums/datatype.js', 'platform/analytics/components/filterpanel/filterpanel.js', 'platform/filters/components/filter.js', 'platform/filters/components/editfilter.js'];
  2177. if (!$("#hf_DashboardPortletId").val()) {
  2178. instance.fileCacheHelper.loadJsFiles(jsfiles, function () {
  2179. Unibase.Platform.Analytics.Components.ReportViewer.Instance().loadFilters(instance.reportId, containerid);
  2180. });
  2181. }
  2182. else {
  2183. this.fileCacheHelper.loadJsFile("platform/analytics/components/commonfilter/_commonfilter.js", function () {
  2184. if ($('.Reportid__commonfilter').text())
  2185. Unibase.Platform.Analytics.Components._CommonFilter.Instance().commonFilter($("#hf_DashboardPortletId").val(), null);
  2186. });
  2187. }
  2188. }
  2189. addWidget() {
  2190. const instance = this;
  2191. var _fileCacheHelper = this.fileCacheHelper;
  2192. $(".toplayout-structures-panel").addClass("nav_2_layout");
  2193. $(".biz-layout-3-left-nav").addClass("nav_3_layout");
  2194. $(".biz-submenu").addClass("nav_sub_layout");
  2195. _fileCacheHelper.loadJsFile("platform/widgets/components/widget.js", function () {
  2196. let InstalledAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
  2197. if (InstalledAppId == undefined || InstalledAppId == null) {
  2198. InstalledAppId = 0;
  2199. }
  2200. Unibase.Platform.Widgets.Components.Widget.Instance().EditScreen(InstalledAppId);
  2201. });
  2202. if (instance.layoutIndex == instance.leftLayout) {
  2203. $('.biz-submenu .header-wth-search').addClass('d-none');
  2204. }
  2205. }
  2206. loadLayoutBuilder() {
  2207. var _fileCacheHelper = this.fileCacheHelper;
  2208. _fileCacheHelper.loadJsFiles(["platform/layout/components/layoutbuilder/layoutbuilder.js",
  2209. "platform/layout/components/layoutbuilder/layoutbuilder.template.js"], function () {
  2210. Unibase.Platform.Layouts.Components.LayoutBuilder.Instance().init();
  2211. });
  2212. }
  2213. loadUserTheme(isCompany, companyId, isRole) {
  2214. const instance = this;
  2215. var _fileCacheHelper = this.fileCacheHelper;
  2216. var roleId = 0;
  2217. if (isRole == true) {
  2218. roleId = companyId;
  2219. companyId = 0;
  2220. }
  2221. $('#settingsPanelBodyWrap').removeClass('d-none');
  2222. $('#chatPanelBodyWrap').addClass('d-none');
  2223. $('.biz-settings-panel').removeClass('notifications-tasks-panel');
  2224. _fileCacheHelper.loadJsFiles(["platform/bundle/index.themes.builder.js"], function () {
  2225. Unibase.Themes.Compact.Components.UserTheme.Instance().userTheme(isCompany, companyId, roleId, isRole);
  2226. $('.settings-panel-wrap').addClass('p-0');
  2227. $('.settings-panel-head').addClass('px-3 py-2').removeClass('border-bottom mobileChat-view d-none');
  2228. $(".biz-settings-panel").toggleClass("show");
  2229. $('#settings-panel-body').addClass('px-3');
  2230. $('.notification-footer').addClass('d-none');
  2231. $(".biz-settings-panel").css({ "background": "white" });
  2232. if ($('.settings-panel-head').children().length == 2) {
  2233. $('#settings-panel-head-title').remove();
  2234. $('#myTab').remove();
  2235. let appendhtml = '<span class="biz-primary-text-color-removed flex-grow-1 ml-10 order-1" id="settings-panel-head-title">Themes</span>';
  2236. $('#settings_panel_close').before(appendhtml);
  2237. }
  2238. if (isCompany == true) {
  2239. $('.biz-settings-panel.hk-settings-panel').parent().addClass('companyApp');
  2240. }
  2241. if (Unibase.Themes.Compact.Components.Index.Instance().layoutIndex == instance.leftLayout) {
  2242. $('.biz-settings-panel').addClass('layout-1');
  2243. }
  2244. if (Unibase.Themes.Compact.Components.Index.Instance().layoutIndex == instance.topLayout) {
  2245. $('.biz-settings-panel').addClass('layout-2');
  2246. }
  2247. });
  2248. }
  2249. loadFileProviders(containerid) {
  2250. let ModalHtml = `<div class="settings-modal-container">
  2251. <div class="modal fade" id="loadFileProvidersModal" data-backdrop="static" data-keyboard="false" tabindex="-1" role="dialog" aria-hidden="true">
  2252. <div class="modal-dialog modal-dialog-centered" role="document">
  2253. <div class="modal-content rounded-10">
  2254. <div class="modal-header" style="border-style: dashed;">
  2255. <h5 class="modal-title ml-auto">Cloud Settings</h5>
  2256. <button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true" class="badge badge-soft-danger font-20 rounded-circle pb-2 px-2">×</span> </button>
  2257. </div>
  2258. <div class="modal-body">
  2259. <form>
  2260. <div class="form-group">
  2261. <label class="control-label text-primary font-weight-500 mb-5 pl-3" for="fileProviderSelect"> FileProvider</label>
  2262. <select class="form-control border border-top-0 border-right-0 border-left-0" style="width: 100%;" id="txtAutoComplete_FileProviderId"> </select>
  2263. </div>
  2264. <div class="text-center">
  2265. <button type="submit" class="btn px-4 py-1 btn btn-sm btn-primary" onclick="Unibase.Themes.Compact.Components.Nav.Instance().updateFileProvider()">Apply</button>
  2266. </div>
  2267. </form>
  2268. </div>
  2269. </div>
  2270. </div>
  2271. </div>
  2272. </div>`;
  2273. $("#_bizgaze_modal").append(ModalHtml);
  2274. $('#loadFileProvidersModal').modal();
  2275. var url = _appsettings.server_url() + '/apis/v4/unibase/unicloud/fileproviders/getfileprovidersAutoComplete';
  2276. AutoCompleteHelper.getHelper().Create("#txtAutoComplete_FileProviderId", "#hfAutoComplete_FileProviderId", url, function (response) {
  2277. var data = response;
  2278. });
  2279. var instance = this;
  2280. $("#txtAutoComplete_FileProviderId").empty();
  2281. instance.fileCacheHelper.loadJsFile("platform/files/managers/filemanager.js", function () {
  2282. Unibase.Platform.Files.Managers.FileManager.Instance().getfileprovider().then(function (response) {
  2283. var data = JSON.parse(JSON.stringify(response.result));
  2284. var fileproviderid = data[0].fileproviderid;
  2285. var providername = data[0].fileprovidername;
  2286. var fileprovider = new Option(providername, fileproviderid.toString(), true);
  2287. $("#txtAutoComplete_FileProviderId").append(fileprovider);
  2288. $("#txtAutoComplete_FileProviderId").val(fileproviderid);
  2289. });
  2290. });
  2291. }
  2292. _bindtenants_data() {
  2293. Unibase.Platform.Membership.Managers.AccountManager.Instance().getSharedTenants().then(function (result) {
  2294. $("#selectbranch").empty();
  2295. if (result != "") {
  2296. let data = result.result;
  2297. for (var i = 0; i < data.length; i++) {
  2298. var primary_tenant = data[i].tenantName;
  2299. var primary_tenant_id = data[i].tenantId;
  2300. var html = `<option class="primary-account font-10" value =` + primary_tenant_id + `> ` + primary_tenant + ` </option>`;
  2301. $("#selectbranch").append(html);
  2302. }
  2303. }
  2304. let branch_selct = $("#selectbranch").find("option").length;
  2305. if (branch_selct <= 1) {
  2306. $("#selectbranch").parent(".branch-Group").addClass("d-none");
  2307. }
  2308. $("#selectbranch").val(_appsettings.active_identity().tenantId);
  2309. });
  2310. }
  2311. loadBranches(containerid) {
  2312. var instance = this;
  2313. $(".settings-panel-close").trigger('click');
  2314. let ModalHtml = `<div class="settings-modal-container">
  2315. <div class="modal fade" id="settingsModal" data-backdrop="static" data-keyboard="false" tabindex="-1" role="dialog" aria-hidden="true">
  2316. <div class="modal-dialog modal-dialog-centered" role="document">
  2317. <div class="modal-content rounded-10">
  2318. <div class="modal-header" style="border-style: dashed;">
  2319. <h5 class="modal-title ml-auto">Change Branch</h5>
  2320. <button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true" class="badge badge-soft-danger font-20 rounded-circle pb-2 px-2">×</span> </button>
  2321. </div>
  2322. <div class="modal-body">
  2323. <div class="row date-time-row">
  2324. <div class="col-sm-6">
  2325. <div class="form-group">
  2326. <label class="control-label text-primary font-weight-500 mb-5 biz-highlight-text-color" for="fiscalYearSelect"> Fiscal Year</label>
  2327. <select class="form-control border border-top-0 border-right-0 border-left-0" style="width: 100%;" id="txtAutoComplete_PartitionId"> </select>
  2328. </div>
  2329. </div>
  2330. <div class="col-sm-6">
  2331. <div class="form-group ${this.isRestrictHidden}">
  2332. <label class="control-label text-primary font-weight-500 mb-0 biz-highlight-text-color">FromDate-ToDate</label>
  2333. ${!instance.desktopMode ? '<input class="form-control datepicker-input cmn-daterange-input" type="text" placeholder="DD/MM/YYYY - DD/MM/YYYY" id="mobileCmnDataRangeInput">' : ''}
  2334. <div id="dynamic-filters_modalCmnDateFilter"></div>
  2335. </div>
  2336. </div>
  2337. </div>
  2338. <div class="form-group branch-Section">
  2339. <label class="control-label text-primary font-weight-500 mb-5 biz-highlight-text-color" for="branchSelect"> Branch</label>
  2340. <select class="form-control border border-top-0 border-right-0 border-left-0" style="width: 100%;" id="txtAutoComplete_BranchId"> </select>
  2341. </div>
  2342. <div class="form-group branch-Group">
  2343. <label class="control-label text-primary font-weight-500 mb-5 biz-highlight-text-color"> Switch To</label>
  2344. <select class="form-control border border-top-0 border-right-0 border-left-0 pl-0" id="selectbranch" style="width:100%;">
  2345. </select>
  2346. </div>
  2347. <div class="text-center">
  2348. <button class="btn px-4 py-1 btn btn-sm btn-primary" onclick="Unibase.Themes.Compact.Components.Nav.Instance().changeBranch()">Apply</button>
  2349. </div>
  2350. </div>
  2351. </div>
  2352. </div>
  2353. </div>
  2354. </div>`;
  2355. $("#_bizgaze_modal").append(ModalHtml);
  2356. let checkisrescritted = _appsettings.active_identity().isRestrictedUser;
  2357. if (checkisrescritted) {
  2358. $("#settingsModal").find(".branch-Section,.date-time-row").addClass("d-none");
  2359. }
  2360. instance._bindtenants_data();
  2361. $('#settingsModal').modal();
  2362. let _secDataenabled = _appsettings.active_identity().secDataEnabled;
  2363. if (_secDataenabled) {
  2364. $(".secondary-account").attr("selected", "selected");
  2365. }
  2366. else {
  2367. $(".primary-account").attr("selected", "selected");
  2368. }
  2369. $('#settingsModal').on('hide.bs.modal', function (e) {
  2370. $('.right-side-menu-content-wrap').find('.nav-item').removeClass('right-sunbnav-active');
  2371. });
  2372. var url = _appsettings.server_url() + '/apis/v4/bizgaze/crm/companies/getbranchesAutoComplete';
  2373. AutoCompleteHelper.getHelper().Create("#txtAutoComplete_BranchId", "#hfAutoComplete_BranchId", url, function (response) {
  2374. var data = response;
  2375. });
  2376. var url = _appsettings.server_url() + '/apis/v4/unibase/platform/partitions/getPartitionsAutoComplete';
  2377. AutoCompleteHelper.getHelper().Create("#txtAutoComplete_PartitionId", "#hfAutoComplete_PartitionId", url, function (response) {
  2378. var data = response;
  2379. });
  2380. $("#txtAutoComplete_BranchId").empty();
  2381. $("#txtAutoComplete_PartitionId").empty();
  2382. var BranchId = 0, PartitionId = 0;
  2383. var Branch = Unibase.Platform.Membership.Infos.Identity.getCurrentUser().settings.find(x => x.settingName == "branchid");
  2384. var PartitionId = Unibase.Platform.Membership.Infos.Identity.getCurrentUser().partitionId;
  2385. var PartitionName = Unibase.Platform.Membership.Infos.Identity.getCurrentUser().partitionName;
  2386. if (Branch != undefined) {
  2387. BranchId = Branch.settingValue;
  2388. if (BranchId != 0) {
  2389. var BranchName = Unibase.Platform.Membership.Infos.Identity.getCurrentUser().settings.find(x => x.settingName == "branchname").settingValue;
  2390. var branch = new Option(BranchName, BranchId.toString(), true);
  2391. $("#txtAutoComplete_BranchId").append(branch);
  2392. $("#txtAutoComplete_BranchId").val(BranchId);
  2393. }
  2394. }
  2395. if (PartitionId != undefined) {
  2396. var partition = new Option(PartitionName, PartitionId.toString(), true);
  2397. $("#txtAutoComplete_PartitionId").append(partition);
  2398. $("#txtAutoComplete_PartitionId").val(PartitionId);
  2399. }
  2400. if (instance.desktopMode) {
  2401. Unibase.Platform.Analytics.Components._CommonFilter.Instance().commonFilter(0, '_modalCmnDateFilter');
  2402. }
  2403. else {
  2404. const fromDate = moment(instance.currentUser.fromDate).format('DD/MM/YYYY');
  2405. const toDate = moment(instance.currentUser.toDate).format('DD/MM/YYYY');
  2406. $('#mobileCmnDataRangeInput').val(fromDate + ' - ' + toDate);
  2407. $('#mobileCmnDataRangeInput').off('click').click(function () {
  2408. Unibase.Platform.Analytics.Components._CommonFilter.Instance().commonFilter(0, '_navCmnDateFilter');
  2409. $("#bizCmnDateFilterModal").modal({
  2410. show: true,
  2411. backdrop: 'static'
  2412. });
  2413. });
  2414. }
  2415. }
  2416. _isSwitched() {
  2417. let _currentTenant = _appsettings.active_identity().tenantId;
  2418. let _switchedTenant = $('#selectbranch').find(":selected").val();
  2419. if (_switchedTenant == undefined) {
  2420. return false;
  2421. }
  2422. return _currentTenant != Number(_switchedTenant);
  2423. }
  2424. changeBranch() {
  2425. var instance = this;
  2426. var BranchId = $("#txtAutoComplete_BranchId").val();
  2427. var PartitionId = $("#txtAutoComplete_PartitionId").val();
  2428. BranchId = BranchId == null ? 0 : BranchId;
  2429. PartitionId = PartitionId == null ? 0 : PartitionId;
  2430. if (this._isSwitched()) {
  2431. $('#settingsModal').modal("hide");
  2432. let checkswitchid = $('#selectbranch').find(":selected").val();
  2433. Unibase.Platform.Membership.Managers.AccountManager.Instance().switchtotenant(Number(checkswitchid));
  2434. }
  2435. else {
  2436. instance.fileCacheHelper.loadJsFile("apps/crm/companies/managers/companymanager.js", function () {
  2437. Bizgaze.Apps.CRM.Companies.Managers.CompanyManager.Instance().changeBranch(BranchId, PartitionId).then(function (res) {
  2438. $('#settingsModal').modal("hide");
  2439. if (isMobileApp()) {
  2440. Unibase.Platform.Helpers.MobileHelper.Instance().redirectToLogin();
  2441. }
  2442. else {
  2443. window.location.href = '#/welcome';
  2444. window.location.reload();
  2445. }
  2446. });
  2447. });
  2448. }
  2449. }
  2450. sessiontimeout(containerid) {
  2451. Unibase.Platform.Helpers.CookieHelper.Instance().setIdentityCookie('');
  2452. $(".settings-panel-close").trigger('click');
  2453. $(".sessioninput").val('');
  2454. var Username = Unibase.Platform.Membership.Infos.Identity.getCurrentUser().name;
  2455. let ModalHtml = `<div class="modal fade" id="sessionsModal" data-backdrop="static" data-keyboard="false" tabindex="-1" role="dialog" aria-hidden="true">
  2456. <div class="modal-dialog modal-lg modal-dialog-centered " role="document" >
  2457. <div class="modal-content rounded-10 text-center bg-white" style="background:url(tenants/themes/compact/imgs/biz-alert-bg.png);background-size:100%;background-repeat:no-repeat">
  2458. <img src="tenants/themes/compact/imgs/alertimg.png" class="img-fluid pt-20 pb-10 w-80p m-auto sessiontimeoutimg" >
  2459. <div class="modal-body sessiontimeoutmodal text-center pb-30">
  2460. <h5>Hi ${Username}</h5>
  2461. <p class="py-1">For Security reasons, the session will expire automatically, If the browser window <br> is idle for a long time. </p>
  2462. <label class="sessiontimeoutlabel"></label>
  2463. <form name="sessionform" onkeydown="return event.key != 'Enter';" >
  2464. <div class="input-group w-50 mx-auto">
  2465. <input type="password" class="form-control border sessioninput" placeholder="Enter your Password to Login *" aria-label="Passwrod" aria-describedby="basic-addon2" id="reEnterpswd" name="loginpassword">
  2466. <div class="input-group-append">
  2467. <a toggle="#InputPassword" id="confirmPasswordHide" class="fa fa-eye-slash font-15 btn" style="position:absolute;right:55px; top: 7px;z-index:10; padding:5px" ></a>
  2468. <button class="btn btn-primary rounded login-btn" id="login-btn" type="button" onclick=" Unibase.Themes.Compact.Components.Nav.instance.checkpassword()" name="loginpassword"><i class="fa fa-sign-in"></i></button>
  2469. </div>
  2470. </div>
  2471. </form>
  2472. </div>
  2473. <span>or</span>
  2474. <div class="pt-1 pb-3">Click here to </span><a class="text-dark font-weight-600 loginpage" id="btnLogoff" href="javascript:;" style="text-decoration: underline;">Sign out</a></div>
  2475. </div>
  2476. </div>
  2477. </div>
  2478. </div>`;
  2479. $("#_bizgaze_modal").html(ModalHtml);
  2480. $('#sessionsModal').modal();
  2481. $(".loginpage").click(function () {
  2482. $("#btnLogoff").click();
  2483. $("#userBtnLogoff").click();
  2484. });
  2485. $("#reEnterpswd").off().keyup(function (e) {
  2486. if (e.which == 13) {
  2487. e.preventDefault();
  2488. Unibase.Themes.Compact.Components.Nav.instance.checkpassword();
  2489. }
  2490. });
  2491. $("#confirmPasswordHide").click(function () {
  2492. var input = $('#reEnterpswd');
  2493. input.attr('type') == "password" ? input.attr('type', 'text') : input.attr('type', 'password');
  2494. $("#confirmPasswordHide").toggleClass('fa-eye-slash fa-eye');
  2495. $("#reEnterpswd").focus();
  2496. });
  2497. }
  2498. checkpassword() {
  2499. Unibase.Platform.Helpers.FileCacheHelper.Instance().loadJsFile("platform/membership/requests/login.js", function () {
  2500. const Loginpassword = $(".sessioninput").val();
  2501. if (Loginpassword === "") {
  2502. $(".sessiontimeoutlabel").html('<div class="alert alert-danger" role ="alert">Enter Your Password to Login Again </div>');
  2503. return false;
  2504. }
  2505. else {
  2506. const unibaseid = Unibase.Platform.Membership.Infos.Identity.getCurrentUser().unibaseId;
  2507. var request = new Unibase.Platform.Membership.Requests.Login("", Loginpassword.toString(), unibaseid, true);
  2508. var _accountManager = Unibase.Platform.Membership.Managers.AccountManager.Instance();
  2509. _accountManager.validateLogin(request).then(function (response) {
  2510. const _identity = response.result;
  2511. if (_identity === null) {
  2512. $(".sessiontimeoutlabel").html('<div class="alert alert-danger" role ="alert">' + response.message + '</div>');
  2513. return false;
  2514. }
  2515. else {
  2516. $('#sessionsModal').modal('hide');
  2517. $('#sessionsModal').on('hidden.bs.modal', function () {
  2518. $(this).remove();
  2519. });
  2520. Unibase.Platform.Membership.Infos.Identity.setCurrentUser(_identity);
  2521. }
  2522. });
  2523. }
  2524. });
  2525. }
  2526. getNavParentGroups() {
  2527. const instance = this;
  2528. var userInfo = Unibase.Platform.Membership.Infos.Identity.getCurrentUser();
  2529. if (userInfo.settings) {
  2530. var index = userInfo.settings.findIndex(x => x.settingName == 'navigationid');
  2531. var navigationId = 0;
  2532. if (index != -1) {
  2533. navigationId = userInfo.settings.find(x => x.settingName == 'navigationid').settingValue;
  2534. }
  2535. if (navigationId != 0) {
  2536. instance.fileCacheHelper.loadJsFiles(["platform/navigation/managers/navigationmanager.js", "platform/dashboards/managers/dashboardmanager.js"], function () {
  2537. Unibase.Platform.Navigation.Managers.NavigationManager.Instance().getNavParentGroups(navigationId).then(function (response) {
  2538. if (response.result != null && response.result.length > 0) {
  2539. var html = '';
  2540. var iconhtml = '';
  2541. var count = 0;
  2542. var active = "";
  2543. Unibase.Platform.Dashboards.Managers.DashboardManager.Instance().getDashboards().then(function (res) {
  2544. if (res.result != null && res.result.length > 0) {
  2545. instance.dashboards = res.result;
  2546. }
  2547. if (instance.layoutIndex == instance.leftLayout) {
  2548. var navElement = $(document.querySelectorAll(".menu-content-wrap")).find(".navbar-nav");
  2549. if (navElement) {
  2550. $(navElement).children().not('#nav-button-close').empty();
  2551. }
  2552. }
  2553. else if (instance.layoutIndex == instance.topLayout || instance.layoutIndex == instance.topLeftLayout) {
  2554. $('#layoutMainNavbar .nav-group-container').remove();
  2555. }
  2556. for (var i = 0; i < response.result.length; i++) {
  2557. if (response.result[i].IsFooter) {
  2558. if (($(window).width() <= 575)) {
  2559. instance.loadFooter(response.result[i].NavigationGroupId);
  2560. }
  2561. }
  2562. else {
  2563. if (instance.layoutIndex == instance.leftLayout) {
  2564. if (count == 0) {
  2565. active = "sunbnav-active";
  2566. }
  2567. else {
  2568. active = "";
  2569. }
  2570. html = `<li class="nav-item nav-button ${active}" id = "navgrp_${response.result[i].NavigationGroupName}" ><a class="nav-link" href = "javascript:;" onclick = "Unibase.Themes.Compact.Components.Nav.Instance().getNavChildGroups(${response.result[i].NavigationGroupId},'nav-navitems','${response.result[i].NavigationGroupName}')" id = "lnkNavGroups" >`;
  2571. if (response.result[i].ImageUrl != null && response.result[i].ImageUrl != "") {
  2572. var bool = response.result[i].ImageUrl.includes("~");
  2573. if (bool) {
  2574. response.result[i].ImageUrl = response.result[i].ImageUrl.replace("~", "");
  2575. }
  2576. iconhtml = `<img src="${response.result[i].ImageUrl}" class="w-30p h-30p" data-dynamic="1" onerror="ReloadImage(event)" data-loaded="1" > </a></li>`;
  2577. }
  2578. else {
  2579. iconhtml = `<span class="nav-icon-wrap" > <i class="${response.result[i].Icon}"></i></span></a></li>`;
  2580. }
  2581. html = html + iconhtml;
  2582. $(".biz-main-menu").find(".navbar-nav li:last").after(html);
  2583. if (count == 0) {
  2584. instance.getNavChildGroups(response.result[i].NavigationGroupId, 'nav-navitems', response.result[i].NavigationGroupName, true);
  2585. count++;
  2586. }
  2587. }
  2588. else if (instance.layoutIndex == instance.topLayout || instance.layoutIndex == instance.topLeftLayout) {
  2589. $('#layoutMainNavbar').append(`<li class="nav-item nav-group-container nav-navitems-container ${instance.layoutIndex == instance.topLayout ? 'my-0' : ''}" id="navgrp_${response.result[i].NavigationGroupId}"><a class="nav-link nav-group-collapse-link" href="javascript:void(0);" data-toggle="collapse" data-target="#navGrpNav_${response.result[i].NavigationGroupId}" id="navLink_${response.result[i].NavigationGroupId}"></a><ul id="navGrpNav_${response.result[i].NavigationGroupId}" class="flex-column collapse collapse-level-1" data-navigation="Back2Path"><li class="nav-item"><ul class="nav flex-column" id="nav-navitems-${response.result[i].NavigationGroupId}"></ul></li></ul></li>`);
  2590. if (instance.layoutIndex == instance.topLayout && instance.desktopMode) {
  2591. $(`#navLink_${response.result[i].NavigationGroupId}`).removeAttr('data-target');
  2592. }
  2593. if (response.result[i].ImageUrl != null && response.result[i].ImageUrl != "") {
  2594. var bool = response.result[i].ImageUrl.includes("~");
  2595. if (bool) {
  2596. response.result[i].ImageUrl = response.result[i].ImageUrl.replace("~", "");
  2597. }
  2598. iconhtml = `<img src="${response.result[i].ImageUrl}" class="w-30p h-30p" data-dynamic="1" onerror="ReloadImage(event)" data-loaded="1">`;
  2599. }
  2600. else {
  2601. iconhtml = `<i class="${response.result[i].Icon} nav-link-icon"></i>`;
  2602. }
  2603. $(`#navLink_${response.result[i].NavigationGroupId}`).html(`${iconhtml}<span class="nav-link-text">${response.result[i].NavigationGroupName}</span>`);
  2604. instance.getNavChildGroups(response.result[i].NavigationGroupId, `nav-navitems-${response.result[i].NavigationGroupId}`, response.result[i].NavigationGroupName, true);
  2605. }
  2606. }
  2607. }
  2608. });
  2609. if (response.result.length > 0 && instance.layoutIndex == instance.leftLayout) {
  2610. if (document.getElementById("nav-button-dashboards")) {
  2611. document.getElementById("nav-button-dashboards").remove();
  2612. }
  2613. if (document.getElementById("nav-button-apps")) {
  2614. document.getElementById("nav-button-apps").remove();
  2615. }
  2616. if (document.getElementById("nav-button-create")) {
  2617. document.getElementById("nav-button-create").remove();
  2618. }
  2619. if (document.getElementById("nav-button-reports")) {
  2620. document.getElementById("nav-button-reports").remove();
  2621. }
  2622. }
  2623. }
  2624. else {
  2625. instance.showLeftLayoutDefaultNavIcons();
  2626. if (isMobileApp()) {
  2627. instance.loadMobileReminders();
  2628. }
  2629. }
  2630. });
  2631. });
  2632. }
  2633. else {
  2634. instance.showLeftLayoutDefaultNavIcons();
  2635. if (isMobileApp()) {
  2636. instance.loadMobileReminders();
  2637. }
  2638. }
  2639. }
  2640. else {
  2641. instance.showLeftLayoutDefaultNavIcons();
  2642. }
  2643. }
  2644. showLeftLayoutDefaultNavIcons() {
  2645. const instance = this;
  2646. if (instance.layoutIndex == instance.leftLayout) {
  2647. $("#lnkDashboards").removeClass("d-none");
  2648. $("#lnkReports").removeClass("d-none");
  2649. $("#lnkCreate").removeClass("d-none");
  2650. $("#lnkApps").removeClass("d-none");
  2651. }
  2652. instance.showNavOptions(1);
  2653. }
  2654. getNavChildGroups(navParentGroupId, containerId, navParentGrpName, test) {
  2655. var instance = this;
  2656. if (instance.layoutIndex == instance.leftLayout) {
  2657. $("#nav-apps-container").addClass("hidden");
  2658. $("#nav-reports-container").addClass("hidden");
  2659. $("#nav-dashboards-container").addClass("hidden");
  2660. $("#nav-navitems-container").removeClass("hidden");
  2661. $(".nav-title").text(navParentGrpName);
  2662. }
  2663. $("#" + containerId).empty();
  2664. instance.fileCacheHelper.loadJsFile("platform/navigation/managers/navigationmanager.js", function () {
  2665. Unibase.Platform.Navigation.Managers.NavigationManager.Instance().getNavItems(navParentGroupId, false).then(function (response) {
  2666. if (response.result != null) {
  2667. var navitems = response.result;
  2668. var navGroups = [];
  2669. var apptemplate = Components.Nav_Template.Instance().navAppTemplate();
  2670. var appgrouptemplate = Components.Nav_Template.Instance().navAppGroupTemplate();
  2671. var dashboardtemaplate = Components.Nav_Template.Instance().navDashboardTemplate();
  2672. var dashboardgrouptemaplate = Components.Nav_Template.Instance().navDashboardGroupTemplate();
  2673. var reporttemplate = Components.Nav_Template.Instance().navReportTemplate();
  2674. var reportgrouptemplate = Components.Nav_Template.Instance().navReportGroupTemplate();
  2675. var templateScript;
  2676. var context;
  2677. var count = 0;
  2678. for (var i = 0; i < navitems.length; i++) {
  2679. var item = navitems[i];
  2680. if (navitems[i].IsChild) {
  2681. if (navGroups.length > 0) {
  2682. var index = navGroups.findIndex(x => x.NavigationGroupId == item.NavigationGroupId && x.NavigationGroupName == item.NavigationGroupName);
  2683. if (index == -1) {
  2684. navGroups.push({ NavigationGroupId: item.NavigationGroupId, NavigationGroupName: item.NavigationGroupName });
  2685. instance.renderNavChildGroup(item, context, containerId, navitems);
  2686. }
  2687. }
  2688. else {
  2689. navGroups.push({ NavigationGroupId: item.NavigationGroupId, NavigationGroupName: item.NavigationGroupName });
  2690. instance.renderNavChildGroup(item, context, containerId, navitems);
  2691. }
  2692. }
  2693. else {
  2694. var html = ``;
  2695. context = navitems[i];
  2696. if (item.NavigationGroupType == 1) {
  2697. if (item.IsGroup) {
  2698. templateScript = Handlebars.compile(dashboardgrouptemaplate);
  2699. }
  2700. else {
  2701. templateScript = Handlebars.compile(dashboardtemaplate);
  2702. }
  2703. }
  2704. else if (item.NavigationGroupType == 2) {
  2705. if (item.IsGroup) {
  2706. templateScript = Handlebars.compile(appgrouptemplate);
  2707. }
  2708. else {
  2709. templateScript = Handlebars.compile(apptemplate);
  2710. }
  2711. }
  2712. else if (item.NavigationGroupType == 3) {
  2713. if (item.IsGroup) {
  2714. templateScript = Handlebars.compile(reportgrouptemplate);
  2715. }
  2716. else {
  2717. templateScript = Handlebars.compile(reporttemplate);
  2718. }
  2719. }
  2720. else {
  2721. var jstemplate = `<li id='{{ItemId}}' class="nav-item lireportgrp-item lireportgrp-addeditem UlItem_{{ItemId}}">
  2722. <a href="javascript:;" class="nav-link nav-anchor biz_anchor nav-hover-link text-truncate" data-reportname="{{ItemName}}" onclick="{{OnClick}}">{{ItemName}}</a></li>`;
  2723. templateScript = Handlebars.compile(jstemplate);
  2724. }
  2725. html = templateScript(context);
  2726. jQuery("#" + containerId).append(html);
  2727. }
  2728. if (test) {
  2729. if (count == 0) {
  2730. if (navitems[i].NavigationGroupType == 1) {
  2731. if (navitems[i].IsGroup) {
  2732. instance.loadDashboardsInDashboard(navitems[i].ItemId, 0, true);
  2733. }
  2734. else {
  2735. instance.loadNavDashBoard(navitems[i].ItemId, navitems[i].ItemName);
  2736. }
  2737. }
  2738. else if (navitems[i].NavigationGroupType == 2) {
  2739. }
  2740. else if (navitems[i].NavigationGroupType == 3) {
  2741. }
  2742. else if (navitems[i].NavigationGroupType == 4) {
  2743. }
  2744. count++;
  2745. }
  2746. }
  2747. }
  2748. if (isMobileApp()) {
  2749. instance.loadMobileReminders();
  2750. }
  2751. $('#nav-navitems .ligrp-item,#layoutMainNavbar .ligrp-item').first().addClass('active-item');
  2752. $('#nav-navitems .nav-item').not('.nav-item.collapsed').off().click(function (e) {
  2753. e.stopImmediatePropagation();
  2754. $('#nav-navitems .nav-item.active-item').removeClass('active-item');
  2755. let clickedEl = $(e.currentTarget);
  2756. if (!$(clickedEl).hasClass('collapsed')) {
  2757. $(clickedEl).addClass('active-item');
  2758. if ($(clickedEl).parents('.collapsed').length) {
  2759. $(clickedEl).parents('.collapsed').find('[data-toggle="collapse"]').addClass('active-item');
  2760. }
  2761. }
  2762. });
  2763. $('#layoutMainNavbar .ligrp-item').off().click(function (e) {
  2764. e.stopImmediatePropagation();
  2765. $('#layoutMainNavbar .nav-item.active-item').removeClass('active-item');
  2766. $(this).addClass('active-item');
  2767. });
  2768. }
  2769. });
  2770. });
  2771. }
  2772. renderNavChildGroup(item, context, containerId, navitems) {
  2773. var groupid = item.NavigationGroupId;
  2774. var templateScript = Handlebars.compile(Components.Nav_Template.Instance().navGroupTemplate());
  2775. context = { "NavGroupId": item.NavigationGroupId, "NavGroupName": item.NavigationGroupName };
  2776. var html = templateScript(context);
  2777. jQuery("#" + containerId).append(html);
  2778. var groupitems = navitems.filter(function (navitem, index) {
  2779. return navitem.NavigationGroupId === item.NavigationGroupId;
  2780. });
  2781. if (groupitems.length > 0) {
  2782. groupitems.forEach(function (item, index) {
  2783. var context = item;
  2784. if (item.NavigationGroupType == 1) {
  2785. if (item.IsGroup) {
  2786. templateScript = Handlebars.compile(Components.Nav_Template.Instance().navDashboardGroupTemplate());
  2787. }
  2788. else {
  2789. templateScript = Handlebars.compile(Components.Nav_Template.Instance().navDashboardTemplate());
  2790. }
  2791. }
  2792. else if (item.NavigationGroupType == 2) {
  2793. if (item.IsGroup) {
  2794. templateScript = Handlebars.compile(Components.Nav_Template.Instance().navAppGroupTemplate());
  2795. }
  2796. else {
  2797. templateScript = Handlebars.compile(Components.Nav_Template.Instance().navAppTemplate());
  2798. }
  2799. }
  2800. else if (item.NavigationGroupType == 3) {
  2801. if (item.IsGroup) {
  2802. templateScript = Handlebars.compile(Components.Nav_Template.Instance().navReportGroupTemplate());
  2803. }
  2804. else {
  2805. templateScript = Handlebars.compile(Components.Nav_Template.Instance().navReportTemplate());
  2806. }
  2807. }
  2808. else {
  2809. var jstemplate = `<li id='{{ItemId}}' class="nav-item lireportgrp-item lireportgrp-addeditem UlItem_{{ItemId}}">
  2810. <a href="javascript:;" class="nav-link nav-anchor biz_anchor nav-hover-link text-truncate" data-reportname="{{ItemName}}" onclick="{{OnClick}}">{{ItemName}}</a></li>`;
  2811. templateScript = Handlebars.compile(jstemplate);
  2812. }
  2813. html = templateScript(context);
  2814. $("#liNavGroup_" + groupid + "_item").before(html);
  2815. });
  2816. }
  2817. }
  2818. loadFooter(navGroupId) {
  2819. var instance = this;
  2820. instance.fileCacheHelper.loadJsFile("apps/crm/companies/managers/companymanager.js", function () {
  2821. Unibase.Platform.Navigation.Managers.NavigationManager.Instance().getNavItems(navGroupId, true).then(function (response) {
  2822. if (response.result != null) {
  2823. var footer = '<div class="biz-mobile-footer h-55p shadow w-100 bg-white z-index-2 py-3 px-4"><ul class="d-flex list-inline align-items-center justify-content-between mobile-footer-content"></ul></div>';
  2824. $("#bizgaze_body").append(footer);
  2825. var navitems = response.result;
  2826. var count = 0;
  2827. var active = "";
  2828. for (let i = 0; i < navitems.length; i++) {
  2829. var iconhtml = "";
  2830. if (count == 0) {
  2831. active = "active";
  2832. count++;
  2833. }
  2834. else {
  2835. active = "";
  2836. }
  2837. if (navitems[i].NavigationGroupType == 1) {
  2838. var load = "";
  2839. if (navitems[i].IsGroup) {
  2840. load = "loadDashboardsInDashboard";
  2841. }
  2842. else {
  2843. load = "loadNavDashBoard";
  2844. }
  2845. let html = `<li id='${navitems[i].ItemId}' class="nav-footer-top ligrp-addeditem footerItem_${navitems[i].ItemId}" ><input type="hidden" id="hf_Dashboard_DashboardId" value="${navitems[i].ItemId}"><input type="hidden" id="hf_Dashboard_DashboardName" data-Dashboardname="${navitems[i].ItemName}"value="${navitems[i].ItemName}"> <a href="javascript:;" class="nav-footer-link p-3 ${navitems[i].ItemName} ${active}" data-Dashboardname="${navitems[i].ItemName}" onclick="javascript:Unibase.Themes.Compact.Components.Nav.Instance().${load}(${navitems[i].ItemId},\'${navitems[i].ItemName}\')">`;
  2846. if (navitems[i].ImageUrl != null && navitems[i].ImageUrl != "") {
  2847. var bool = navitems[i].ImageUrl.includes("~");
  2848. if (bool) {
  2849. navitems[i].ImageUrl.replace("~", "");
  2850. }
  2851. iconhtml = `<img src="${navitems[i].ImageUrl}" class="w-30p h-30p" data-dynamic="1" onerror="ReloadImage(event)" data-loaded="1" > </a></li>`;
  2852. }
  2853. else {
  2854. iconhtml = `<i class='${navitems[i].Icon} font-25 ' style="color:black !important"></i> </a></li>`;
  2855. }
  2856. html = html + iconhtml;
  2857. $(".mobile-footer-content").append(html);
  2858. }
  2859. else if (navitems[i].NavigationGroupType == 2) {
  2860. var icon = navitems[i].Icon;
  2861. var image = navitems[i].ImageUrl;
  2862. var html = `<li id='${navitems[i].ItemId}' class="nav-footer-top footerItem_${navitems[i].ItemId}"> <input type="hidden" id = "hf_Apps_InstalledAppId"
  2863. value = "${navitems[i].ItemId}" > <input type="hidden" id = "hf_Apps_InstalledAppName" data-installedappname="${navitems[i].ItemName}" value = "${navitems[i].ItemName}" ><a href="javascript:;" class="nav-footer-link p-3 biz-${navitems[i].ItemId} ${active}" data-installedappname="${navitems[i].ItemName}" onclick = "Unibase.Themes.Compact.Components.Nav.Instance().loadList(${navitems[i].ItemId})" > `;
  2864. if (navitems[i].ImageUrl != null && navitems[i].ImageUrl != "") {
  2865. var bool = navitems[i].ImageUrl.includes("~");
  2866. if (bool) {
  2867. navitems[i].ImageUrl.replace("~", "");
  2868. }
  2869. iconhtml = `<img src="${navitems[i].ImageUrl}" class="w-30p h-30p" data-dynamic="1" onerror="ReloadImage(event)" data-loaded="1" > </a></li>`;
  2870. }
  2871. else {
  2872. iconhtml = `<i class='${navitems[i].Icon} font-25' style="color:black !important"></i> </a></li>`;
  2873. }
  2874. html = html + iconhtml;
  2875. $(".mobile-footer-content").append(html);
  2876. }
  2877. else if (navitems[i].NavigationGroupType == 3) {
  2878. let html = `<li id='${navitems[i].ItemId}' class="nav-footer-top lireportgrp-item lireportgrp-addeditem footerItem_${navitems[i].ItemId}"><input type="hidden" id="hf_Analytics_ReportId"
  2879. value="${navitems[i].ItemId}"><input type="hidden" id="hf_Analytics_ReportName" data-reportname="${navitems[i].ItemName}" value="${navitems[i].ItemName}">
  2880. <a href="javascript:;" class="nav-footer-link p-3" data-reportname="${navitems[i].ItemName} ${active}" onclick="javascript: Unibase.Themes.Compact.Components.Nav.Instance().loadReport(${navitems[i].ItemId});">`;
  2881. if (navitems[i].ImageUrl != null && navitems[i].ImageUrl != "") {
  2882. var bool = navitems[i].ImageUrl.includes("~");
  2883. if (bool) {
  2884. navitems[i].ImageUrl.replace("~", "");
  2885. }
  2886. iconhtml = `<img src="${navitems[i].ImageUrl}" class="w-30p h-30p" data-dynamic="1" onerror="ReloadImage(event)" data- loaded="1" > </a></li>`;
  2887. }
  2888. else {
  2889. iconhtml = `<i class='${navitems[i].Icon} font-25' style="color:black !important"></i> </a></li>`;
  2890. }
  2891. html = html + iconhtml;
  2892. $(".mobile-footer-content").append(html);
  2893. }
  2894. else {
  2895. let html = `<li id='${navitems[i].ItemId}' class="nav-footer-top ligrp-addeditem footerItem_${navitems[i].ItemId}" ><input type="hidden" id="hf_User_UserId" value="${navitems[i].ItemId}"><input type="hidden" id="hf_User_UserName" data-Dashboardname="${navitems[i].ItemName}"value="${navitems[i].ItemName}"> <a href="javascript:;" class="nav-footer-link p-3 ${navitems[i].ItemName} ${active}" data-Username="${navitems[i].ItemName}" onclick="${navitems[i].OnClick}">`;
  2896. if (navitems[i].ImageUrl == null && navitems[i].ImageUrl == "" && navitems[i].Icon == "") {
  2897. iconhtml = `${navitems[i].ItemName}</a></li>`;
  2898. }
  2899. if (navitems[i].ImageUrl != null && navitems[i].ImageUrl != "") {
  2900. var bool = navitems[i].ImageUrl.includes("~");
  2901. if (bool) {
  2902. navitems[i].ImageUrl.replace("~", "");
  2903. }
  2904. iconhtml = `<img src="${navitems[i].ImageUrl}" class="w-30p h-30p" data-dynamic="1" onerror="ReloadImage(event)" data-loaded="1" > </a></li>`;
  2905. }
  2906. else if (navitems[i].Icon != "") {
  2907. iconhtml = `<i class='${navitems[i].Icon} font-25 ' style="color:black !important"></i> </a></li>`;
  2908. }
  2909. html = html + iconhtml;
  2910. $(".mobile-footer-content").append(html);
  2911. }
  2912. }
  2913. }
  2914. });
  2915. });
  2916. }
  2917. loadNavDashBoard(dashboardId, dashboardName) {
  2918. const instance = this;
  2919. instance.prflDropDownMenu();
  2920. var Dashboard_len = $(".dashboard-options-list").length;
  2921. if ($("._bizgaze_detail_container.bg-cyan-light-5-removed").length != 0) {
  2922. Unibase.Themes.Providers.DetailHelper.installedAppId = 0;
  2923. Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds.pop();
  2924. }
  2925. $("._bizgaze_detail_container.bg-cyan-light-5-removed").remove();
  2926. $("._bizgaze_detail_container").removeClass("hidden");
  2927. if (Dashboard_len == 0 && Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds.length > 0) {
  2928. $(".biz-pg-wrapper ._bizgaze_detail_container.bg-cyan-light-5-removed").remove();
  2929. Unibase.Platform.Helpers.NavigationHelper.Instance().loadSection(0, "", Unibase.Themes.Compact.Components.Dashboard.Instance(), null, null);
  2930. }
  2931. $("#lblDbGroup_Title").text(dashboardName);
  2932. $(".layout-dashboard-tabs").addClass('hidden');
  2933. const dboards = instance.dashboards.filter(x => x.DashboardId == dashboardId);
  2934. const groupId = dboards[0].DashboardGroupId;
  2935. instance.loadDashboardsInDashboard(groupId, dashboardId, true);
  2936. $('.biz-wrapper').removeClass('biz__nav__toggle');
  2937. $('.biz-nav-fullwidth').addClass('hidden');
  2938. }
  2939. loadUserProfile_() {
  2940. var instance = this;
  2941. instance.navigationHelper.loadDetail(Unibase.Platform.Membership.Infos.Identity.currentUser.userId, Unibase.Platform.Membership.Infos.Identity.getSetting("installedappid"), null);
  2942. }
  2943. loadUserLogOff() {
  2944. var cookieHelper = Unibase.Platform.Helpers.CookieHelper.Instance();
  2945. if (isMobileApp()) {
  2946. Unibase.Platform.Helpers.MobileHelper.Instance().cacheUserCredantials('', '');
  2947. Unibase.Platform.Helpers.MobileHelper.Instance().logout();
  2948. }
  2949. else {
  2950. Unibase.Platform.Membership.Infos.Identity.setCurrentUser(null);
  2951. $("#bizgaze_body").html("");
  2952. cookieHelper.deleteCookie(Unibase.Platform.Helpers.CookieHelper._userIdentitycookie);
  2953. window.location.href = '/#/logoff';
  2954. window.location.reload();
  2955. }
  2956. }
  2957. static Instance() {
  2958. if (this.instance === undefined)
  2959. this.instance = new Nav();
  2960. return this.instance;
  2961. }
  2962. updateFileProvider() {
  2963. var FileProviderId = Number($("#txtAutoComplete_FileProviderId").val());
  2964. Unibase.Platform.Helpers.FileCacheHelper.Instance().loadJsFile("platform/files/managers/filemanager.js", function () {
  2965. Unibase.Platform.Files.Managers.FileManager.Instance().updateFileProvider(FileProviderId).then(function () {
  2966. $('#loadFileProvidersModal').modal("hide");
  2967. });
  2968. });
  2969. }
  2970. loadChat() {
  2971. $('#settingsPanelBodyWrap').addClass('d-none');
  2972. $('#chatPanelBodyWrap').removeClass('d-none');
  2973. $('.biz-settings-panel .settings-panel-head').addClass('d-none');
  2974. $(".biz-wrapper,.hk-wrapper").addClass("biz-settings-toggle");
  2975. if ($("#nav-chats-container").children().length === 0) {
  2976. if (this.indexInstance.isIframe) {
  2977. Unibase.Platform.Connect.Components.Chat.isFullScreen = true;
  2978. }
  2979. Unibase.Platform.Connect.Components.Chat.Instance().loadchats();
  2980. }
  2981. }
  2982. loadMobileReminders() {
  2983. let params = Unibase.Platform.Helpers.MobileHelper.Instance().getReminderParmeters();
  2984. let reminderType = Unibase.Platform.Helpers.MobileHelper.Instance().getReminderType();
  2985. if (params != '') {
  2986. Unibase.Platform.Helpers.MobileHelper.Instance().loadMobileReminders(params);
  2987. }
  2988. else if (reminderType != '' && reminderType != null) {
  2989. this.fileCacheHelper.loadJsFiles(['platform/communications/enums/reminders/remindertype.js', 'platform/communications/managers/reminders/remindermanager.js'], function () {
  2990. Unibase.Themes.Compact.Components.Notification.Instance().loadReminders('tab-view').then(function () {
  2991. $(".biz-wrapper,.hk-wrapper").addClass("biz-settings-toggle");
  2992. if (reminderType == 'Task') {
  2993. Unibase.Themes.Compact.Components.Notification.Instance().tabView('task-tab');
  2994. }
  2995. });
  2996. });
  2997. }
  2998. }
  2999. wizard() {
  3000. Unibase.Platform.Helpers.FileCacheHelper.Instance().loadJsFiles(["tenants/themes/compact/components/dashboard/wizard/request/wizardrequest.js", "tenants/themes/compact/components/dashboard/wizard/manager/wizardmanager.js", "tenants/themes/compact/components/dashboard/wizard/wizard.js", "platform/core/helpers/file/file.js"], function () {
  3001. Unibase.Themes.Compact.Components.Wizard.Wizard.Instance().wizardApp();
  3002. });
  3003. }
  3004. stagesListPage(id, _installedAppId, _recordId) {
  3005. let instance = this;
  3006. var fromDate = "";
  3007. var toDate = "";
  3008. var cf_fromDate = Unibase.Platform.Helpers.NavigationHelper.commonFilter_FromDate;
  3009. var cf_toDate = Unibase.Platform.Helpers.NavigationHelper.commonFilter_ToDate;
  3010. if (cf_fromDate != null && cf_toDate != null) {
  3011. fromDate = cf_fromDate.toString();
  3012. toDate = cf_toDate.toString();
  3013. }
  3014. else {
  3015. fromDate = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocalDateformat(new Date(Unibase.Platform.Helpers.DateTimeHelper.Instance().currentDate()), "YYYY/MM/DD");
  3016. toDate = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocalDateformat(new Date(Unibase.Platform.Helpers.DateTimeHelper.Instance().currentDate()), "YYYY/MM/DD");
  3017. }
  3018. var expObj = {
  3019. InstalledAppId: Number(_installedAppId),
  3020. RecordId: Number(_recordId),
  3021. FromDate: fromDate,
  3022. ToDate: toDate
  3023. };
  3024. Unibase.Platform.Widgets.Managers.WidgetManager.Instance().getDefaultWidget(expObj).then(function (res) {
  3025. let html = '', response;
  3026. for (var i = 0; i < res.result.Stages.length; i++) {
  3027. response = res.result.Stages[i];
  3028. if (Unibase.Platform.Membership.Infos.Identity.getCurrentUser().isAdmin) {
  3029. html += `<a class="dropdown-item" onclick="Unibase.Themes.Compact.Components.Details.Instance().change(${response.StageId}, ${response.InstalledAppId},'${id}')" data-stageindex="${response.StageIndex}" data-stageid="${response.StageId}" data-stageList_Name="${response.StageName}" data-inastalledappid="${response.InstalledAppId}" href="javascript:void();">${response.StageName}</a>`;
  3030. }
  3031. else {
  3032. if (response.ChangeAll && response.StageRoles == null) {
  3033. html += `<a class="dropdown-item" onclick="Unibase.Themes.Compact.Components.Details.Instance().change(${response.StageId}, ${response.InstalledAppId},'${id}')" data-stageindex="${response.StageIndex}" data-stageid="${response.StageId}" data-stageList_Name="${response.StageName}" data-inastalledappid="${response.InstalledAppId}" href="javascript:void();">${response.StageName}</a>`;
  3034. }
  3035. if (response.StageRoles != null && response.StageRoles.length != 0) {
  3036. for (var j = 0; j < response.StageRoles.length; j++) {
  3037. if (response.ChangeAll && (!response.StageRoles[j].ExcludeChangeRole)) {
  3038. html += `<a class="dropdown-item" onclick="Unibase.Themes.Compact.Components.Details.Instance().change(${response.StageId}, ${response.InstalledAppId},'${id}')" data-stageindex="${response.StageIndex}" data-stageid="${response.StageId}" data-stageList_Name="${response.StageName}" data-inastalledappid="${response.InstalledAppId}" href="javascript:void();">${response.StageName}</a>`;
  3039. }
  3040. }
  3041. }
  3042. if (response.ChangeAll == false && response.StageRoles != null && response.StageRoles.length > 0) {
  3043. html += `<a class="dropdown-item" onclick="Unibase.Themes.Compact.Components.Details.Instance().change(${response.StageId}, ${response.InstalledAppId},'${id}')" data-stageindex="${response.StageIndex}" data-stageid="${response.StageId}" data-stageList_Name="${response.StageName}" data-inastalledappid="${response.InstalledAppId}" href="javascript:void();">${response.StageName}</a>`;
  3044. }
  3045. }
  3046. }
  3047. $(`[aria-labelledby="${id}"]`).removeClass('d-none').html(html);
  3048. let inptParamter = JSON.parse(res.result.Data)[0];
  3049. Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters = [];
  3050. for (const property in inptParamter) {
  3051. debugger;
  3052. console.log(`${property}: ${inptParamter[property]}`);
  3053. Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.push({
  3054. Key: "hf_" + _installedAppId + "_" + property.toLowerCase(),
  3055. Value: inptParamter[property],
  3056. DataType: typeof (inptParamter[property])
  3057. });
  3058. }
  3059. Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.push({
  3060. Key: "hf_" + _installedAppId + "_" + "recordid",
  3061. Value: _recordId.toString(),
  3062. DataType: typeof (_recordId)
  3063. });
  3064. Unibase.Themes.Providers.DetailHelper.installedAppId = Number(_installedAppId);
  3065. Unibase.Themes.Providers.DetailHelper.recordId = Number(_recordId);
  3066. Unibase.Themes.Providers.DetailHelper.isListStages = true;
  3067. Unibase.Themes.Providers.Detail_Settings.Instance().InstalledAppId = Number(_installedAppId);
  3068. Unibase.Themes.Providers.Detail_Settings.Instance().RecordId = Number(_recordId);
  3069. Unibase.Themes.Providers.Detail_Settings.Instance().isListStages = true;
  3070. });
  3071. }
  3072. isListRefresh() {
  3073. Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters = [];
  3074. Unibase.Themes.Providers.DetailHelper.installedAppId = 0;
  3075. Unibase.Themes.Providers.DetailHelper.recordId = 0;
  3076. Unibase.Themes.Providers.DetailHelper.isListStages = false;
  3077. Unibase.Themes.Providers.Detail_Settings.Instance().InstalledAppId = 0;
  3078. Unibase.Themes.Providers.Detail_Settings.Instance().RecordId = 0;
  3079. Unibase.Themes.Providers.Detail_Settings.Instance().isListStages = false;
  3080. }
  3081. logOffBootbox() {
  3082. bootbox.confirm({
  3083. message: "Do you want Logoff",
  3084. closeButton: false,
  3085. buttons: {
  3086. confirm: {
  3087. label: 'Logoff',
  3088. className: 'btn-success'
  3089. },
  3090. cancel: {
  3091. label: 'Cancel',
  3092. className: 'btn-danger'
  3093. }
  3094. },
  3095. callback: function (result) {
  3096. if (result) {
  3097. $(".btnLogoff").click();
  3098. }
  3099. else {
  3100. return '';
  3101. }
  3102. }
  3103. });
  3104. }
  3105. exitMobileApp() {
  3106. return __awaiter(this, void 0, void 0, function* () {
  3107. let VisibleContainerId = Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds[Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds.length - 1], instance = this, length = Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds.length;
  3108. let isPopup = false, isDetailContainer = false;
  3109. let InstalledAppId_html = Unibase.Themes.Providers.DetailHelper.installedAppId;
  3110. var userInfo = Unibase.Platform.Membership.Infos.Identity.getCurrentUser();
  3111. if (userInfo.settings) {
  3112. var index = userInfo.settings.findIndex(x => x.settingName == 'navigationid');
  3113. var navigationId = 0;
  3114. if (index != -1) {
  3115. navigationId = userInfo.settings.find(x => x.settingName == 'navigationid').settingValue;
  3116. }
  3117. }
  3118. if (InstalledAppId_html != null) {
  3119. if ($('#' + VisibleContainerId).find('.mainform_container').length != 0 || $('._bizgaze_popup_container').length != 0) {
  3120. isPopup = true;
  3121. Unibase.Platform.Helpers.NavigationHelper.Instance().closePopUp();
  3122. if (length == Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds.length) {
  3123. Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds.pop();
  3124. }
  3125. }
  3126. if (InstalledAppId_html != 0) {
  3127. if ($('._bizgaze_detail_container').length > 1) {
  3128. isDetailContainer = true;
  3129. $('#' + VisibleContainerId).find('.detail-close').click();
  3130. }
  3131. }
  3132. if ((length == 1) || ($('._bizgaze_detail_container').length == 1) && isDetailContainer == false) {
  3133. if (navigationId != 0) {
  3134. if (!$('[data-navigation="Back2Path"] li:first')[0].classList.value.includes('active-item')) {
  3135. $('#nav-button-dashboard').click();
  3136. if ($('[data-navigation="Back2Path"] li.nav-NavGroup:first').index() == 0) {
  3137. $('[data-navigation="Back2Path"] li.nav-NavGroup a').click();
  3138. $('[data-navigation="Back2Path"] li.nav-NavGroup:first').find('.nav-parent-item:first a').click();
  3139. }
  3140. else {
  3141. $('[data-navigation="Back2Path"] li:first a').click();
  3142. }
  3143. }
  3144. else {
  3145. if (isMobileApp()) {
  3146. Unibase.Platform.Helpers.MobileHelper.Instance().exitMobileApp();
  3147. }
  3148. else {
  3149. yield instance.logOffBootbox();
  3150. }
  3151. }
  3152. }
  3153. if (navigationId == 0) {
  3154. if (isPopup == false) {
  3155. if (!$('[data-navigation="Back2Path"]').children('.li-dashboard-item:first')[0].classList.value.includes('active-item') || ($("[data-buttonType='nav-button-apps']")[0].classList.value.includes('sunbnav-active') && $('.liappgrp-item.nav-app-link').filter('.active-item') && InstalledAppId_html == 0)) {
  3156. if (($("[data-buttonType='nav-button-apps']")[0].classList.value.includes('sunbnav-active') || ($("[data-buttonType='nav-button-apps']").children('a').attr('aria-expanded') == 'true')) || ($('.liappgrp-item.nav-app-link').filter('.active-item') && InstalledAppId_html == 0)) {
  3157. if ($('[data-navigation="Back2Path"] .li-dashboard-item:first').filter('.active-item').length == 0) {
  3158. instance.dshBoardBack();
  3159. }
  3160. else {
  3161. if (isMobileApp()) {
  3162. Unibase.Platform.Helpers.MobileHelper.Instance().exitMobileApp();
  3163. }
  3164. else {
  3165. yield instance.logOffBootbox();
  3166. }
  3167. }
  3168. }
  3169. else {
  3170. if (!$("[data-buttonType='nav-button-apps']")[0].classList.value.includes('sunbnav-active') && $('#' + Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds[0] + ':visible').length >= 1) {
  3171. $('[data-navigation="Back2Path"] li:first a').click();
  3172. Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds.pop();
  3173. }
  3174. else {
  3175. if (isMobileApp()) {
  3176. Unibase.Platform.Helpers.MobileHelper.Instance().exitMobileApp();
  3177. }
  3178. else {
  3179. yield instance.logOffBootbox();
  3180. }
  3181. }
  3182. }
  3183. }
  3184. else {
  3185. if ($('[data-navigation="Back2Path"]').children('.li-dashboard-item:first')[0].classList.value.includes('active-item') && InstalledAppId_html == 0) {
  3186. instance.dshBoardBack();
  3187. }
  3188. else {
  3189. if (isMobileApp()) {
  3190. Unibase.Platform.Helpers.MobileHelper.Instance().exitMobileApp();
  3191. }
  3192. else {
  3193. yield instance.logOffBootbox();
  3194. }
  3195. }
  3196. }
  3197. }
  3198. }
  3199. }
  3200. }
  3201. });
  3202. }
  3203. isJsFileLoaded(filename) {
  3204. if (_appsettings.isdevelopement()) {
  3205. Unibase.Platform.Helpers.FileCacheHelper.Instance().loadJsFile("platform/core/helpers/filecache/auditjsfile.js", function () {
  3206. Unibase.Platform.Helpers.AuditJsFile.Instance().init(filename);
  3207. });
  3208. }
  3209. }
  3210. dshBoardBack() {
  3211. let instance = this;
  3212. if (instance.isDshboardBckArray.length != 1 && instance.isDshboardBckArray.length != 0) {
  3213. instance.isDshboardBck = true;
  3214. instance.isDshboardBckArray.pop();
  3215. let len = instance.isDshboardBckArray.length - 1;
  3216. console.log(instance.isDshboardBckArray[len].isBack);
  3217. if (instance.isDshboardBckArray[len].isBack == "Dashboard") {
  3218. let data = instance.dashboards.filter(function (o) { return o.DashboardId == instance.isDshboardBckArray[len].DashbaordId; });
  3219. instance.loadDashboardsInDashboard(data[0].DashboardGroupId, instance.isDshboardBckArray[len].DashbaordId, true);
  3220. }
  3221. else if (instance.isDshboardBckArray[len].isBack == "App") {
  3222. Unibase.Themes.Compact.Components.Nav.Instance().loadList(instance.isDshboardBckArray[len].InstalledAppId);
  3223. }
  3224. else if (instance.isDshboardBckArray[len].isBack == "Report") {
  3225. Unibase.Themes.Compact.Components.Nav.Instance().loadReport(instance.isDshboardBckArray[len].ReportId);
  3226. }
  3227. }
  3228. else {
  3229. if (isMobileApp()) {
  3230. Unibase.Platform.Helpers.MobileHelper.Instance().exitMobileApp();
  3231. }
  3232. else {
  3233. instance.logOffBootbox();
  3234. }
  3235. }
  3236. }
  3237. }
  3238. Components.Nav = Nav;
  3239. })(Components = Compact.Components || (Compact.Components = {}));
  3240. })(Compact = Themes.Compact || (Themes.Compact = {}));
  3241. })(Themes = Unibase.Themes || (Unibase.Themes = {}));
  3242. })(Unibase || (Unibase = {}));