1/* 2 * Copyright 2018 "P.H.U. Clean Barbara Tywoniuk-Lubecka" (https://phuclean.pl) 3 * All rights reserved. 4 */ 5 6if (!Array.prototype.includes) { 7 Object.defineProperty(Array.prototype, "includes", { 8 enumerable: false, 9 value: function(obj) { 10 var newArr = this.filter(function(el) { 11 return el == obj; 12 }); 13 return newArr.length > 0; 14 } 15 }); 16} 17 18var appModule = function() { 19 var accessRights = []; 20 21 function checkLoggedIn() { 22 var logged = !(localStorage.getItem('loggedIn') !== '1' && typeof skipCheckLoggedIn === 'undefined'); 23 $.ajax({ 24 type: 'GET', 25 contentType: 'application/json; charset=utf-8', 26 dataType: 'json', 27 url: apiUrl + 'userContext', 28 beforeSend: function(request) { 29 request.setRequestHeader('Accept-Language', localStorage.getItem('language')); 30 } 31 }).fail(function(data) { 32 logged = false; 33 }).always(function(data) { 34 if (!logged && typeof skipCheckLoggedIn === 'undefined') { 35 window.location.replace('login.html'); 36 } else { 37 $('body').css('background-color', ''); 38 $('body').css('display', ''); 39 } 40 }); 41 } 42 43 function preInit() { 44 var storeRights = this.storeRead('accessRights'); 45 try { 46 this.accessRights = JSON.parse(storeRights); 47 } catch(e) { 48 this.accessRights = []; 49 } 50 var miniNavbar = this.storeRead('miniNavbar'); 51 if (miniNavbar == '1') { 52 $('body').addClass("mini-navbar"); 53 } 54 } 55 56 function init() { 57 checkLoggedIn(); 58 setUserData(); 59 translate(); 60 $('#setLanguage').click(setLanguage); 61 var that = this; 62 $('.navbar-minimalize').on('click', function (event) { 63 var miniNavbar = $('body').hasClass("mini-navbar"); 64 that.storeWrite('miniNavbar', miniNavbar ? '1' : '0'); 65 }); 66 } 67 68 function reloadOrdersTable() { 69 $('#ordersTable').DataTable().destroy(); 70 indexModule.loadTable(); 71 } 72 73 function setLanguage() { 74 localStorage.setItem('language', $(this).prop('src').indexOf('Poland') === -1 ? 'en' : 'pl'); 75 location.reload(); 76 } 77 78 function setLanguageButton() { 79 $('#setLanguage').prop('src', 'img/flags/' + (localStorage.getItem('language') === 'pl' ? 'United-Kingdom' : 'Poland') + '.png'); 80 } 81 82 function setUserData() { 83 $('#appUserName').text(localStorage.getItem('userName')); 84 $('#appCompanyName').text(localStorage.getItem('companyName')); 85 $('#appCartValue').text(localStorage.getItem('cartValue')); 86 $('#accountManagerName').text(localStorage.getItem('accountManagerName')); 87 $('#accountManagerPhone').text(localStorage.getItem('accountManagerPhone')); 88 } 89 90 function setCartValue(value) { 91 localStorage.setItem('cartValue', value || ''); 92 setUserData(); 93 } 94 95 function translate() { 96 i18n.init({ 97 resGetPath: 'locales/__lng__.json', 98 load: 'unspecific', 99 fallbackLng: false, 100 lng: localStorage.getItem('language') 101 }, function (t){ 102 $('.i18n').i18n(); 103 }); 104 setLanguageButton(); 105 } 106 107 function storeWrite(name, obj) { 108 localStorage.setItem(name, obj); 109 } 110 111 function storeRead(name) { 112 return localStorage.getItem(name); 113 } 114 115 function setAccessRights(array) { 116 this.accessRights = array ? array : []; 117 } 118 119 function hasAccessRight(right) { 120 return this.accessRights.includes(right); 121 } 122 123 function saleCategoryAvailable() { 124 var saleCategoryAvailable = localStorage.getItem('saleCategoryAvailable') === 'true'; 125 126 return saleCategoryAvailable; 127 } 128 129 return { 130 preInit: preInit, 131 init: init, 132 setCartValue: setCartValue, 133 storeWrite: storeWrite, 134 storeRead: storeRead, 135 setAccessRights: setAccessRights, 136 hasAccessRight: hasAccessRight, 137 reload: setUserData, 138 saleCategoryAvailable: saleCategoryAvailable 139 } 140}(); 141 142appModule.preInit(); 143$(function() { 144 appModule.init(); 145}); 146 147Vue.component('navigation-component', { 148 data: function () { 149 var currentPage = window.location.pathname; 150 return { 151 isActive: function(menuItem) { 152 var result = currentPage == menuItem.path; 153 154 if (!result) { 155 result = menuItem.children && $.inArray(currentPage, menuItem.children); 156 } 157 158 return result; 159 }, 160 menu: [ 161 //{name: 'panel', path: '/index.html', icon: 'fa-dashboard'}, 162 {name: 'products', path: '/products.html', icon: 'fa-qrcode', visible: true}, 163 {name: 'sale', path: '/products.html?categoryId=' + saleCategoryId, icon: 'fa-exclamation', visible: appModule.saleCategoryAvailable()}, 164 {name: 'offers', path: '/offers.html', icon: 'fa-th-list', visible: true, visible: appModule.hasAccessRight('OFERTY.PRZEGLAD')}, 165 {name: 'payments', path: '/payments.html', icon: 'fa-money', visible: appModule.hasAccessRight('ROZLICZENIA.PRZEGLAD')}, 166 {name: 'orders', path: '/orders.html', icon: 'fa-list', children: ['/order.html'], visible: appModule.hasAccessRight('ZAMOWIENIA.PRZEGLAD')}, 167 {name: 'carts', path: '/carts.html', icon: 'fa-shopping-cart', children: ['/cart.html', '/cartSummary.html'], visible: true}, 168 {name: 'user', path: '/user.html', icon: 'fa-user', visible: true}, 169 {name: 'generalSaleTerms', path: '/generalSaleTerms.html', icon: 'fa-file', visible: true}, 170 {name: 'contact', path: 'mailto:[email protected]', icon: 'fa-envelope', visible: true} 171 ], 172 availableBudget: localStorage.getItem('availableBudget') 173 } 174 }, 175 template: '<div class="sidebar-collapse">'+ 176 ' <ul class="nav metismenu" id="side-menu">'+ 177 ' <li class="nav-header">'+ 178 ' <div class="dropdown profile-element">'+ 179 ' <span><img alt="PHU Clean logo" class="img" src="img/logo_ciemne.png" style="max-width: 160px; margin-bottom: 10px;"></span>'+ 180 ' <a data-toggle="dropdown" class="dropdown-toggle" href="#">'+ 181 ' <span class="clear" /> <span class="block m-t-xs"> <strong id="appUserName" class="font-bold"></strong></span> '+ 182 ' <span id="appCompanyName" class="text-muted text-xs block"></span>'+ 183 ' <span class="clear" /> <span class="block m-t-xs"> <strong id="appUserName2" class="font-bold">Opiekun:</strong></span> '+ 184 ' <span id="accountManagerName" class="text-muted text-xs block"></span>'+ 185 ' <span id="accountManagerPhone" class="text-muted text-xs block"></span>'+ 186 ' <span class="clear" /> <span class="block m-t-xs" v-if="availableBudget"> <strong class="font-bold">DostÄpny budżet:</strong></span> '+ 187 ' <span class="text-muted text-xs block" v-if="availableBudget">{{availableBudget}}</span>'+ 188 ' </a>'+ 189 ' </div>'+ 190 ' </li>'+ 191 ' <li v-for="menuItem in menu" :key="menuItem.name" v-if="menuItem.visible" v-bind:id="\'menu_\' + menuItem.name" v-bind:class="[isActive(menuItem) == true ? \'active\' : \'\']">'+ 192 ' <a :href="menuItem.path"><i :class="menuItem.icon" class="fa"></i> <span class="nav-label i18n" :data-i18n="\'app.\' + menuItem.name" /></span></a>'+ 193 ' </li>'+ 194 ' </ul>'+ 195 ''+ 196 ' </div>' 197}); 198new Vue({ 199 el: '#navigation-app' 200}); 201 202Vue.component('top-navigation-component', { 203 data: function () { 204 return { 205 cartValue: '' 206 } 207 }, 208 template: '<nav class="navbar navbar-static-top white-bg" role="navigation" style="margin-bottom: 0">'+ 209 ' <div class="navbar-header">'+ 210 ' <a class="navbar-minimalize minimalize-styl-2 btn btn-primary " href="#" aria-label="Minimalizuj"><i class="fa fa-bars"></i> </a> '+
211 ' </div>'+ 212 ' <ul class="nav navbar-top-links navbar-right">'+ 213 ' <li>'+ 214 ' <a href="cart.html"><button class="btn btn-primary btn-sm"><i class="fa fa-cart-plus"></i>Koszyk <span v-if="appModule.hasAccessRight(\'CENY.PRZEGLAD\')" class="badge badge-primary" id="appCartValue"></span></button></a>'+ 215 ' </li>'+ 216 //' <li>'+ 217 //' <a><img id="setLanguage" src=""></a>'+ 218 //' </li>'+ 219 ' <li>'+ 220 ' <a href="login.html?logout">'+ 221 ' <i class="fa fa-sign-out"></i> <span class="i18n" data-i18n="app.logout"></span>'+ 222 ' </a>'+ 223 ' </li>'+ 224 ' </ul>'+ 225 '</nav>' 226}); 227new Vue({ 228 el: '#top-navigation-app' 229});
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.