function checkMobile(){return/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)}function checkMobileApple(){return/iPhone|iPad|iPod/i.test(navigator.userAgent)}function IconSymbol(){}function LabelSymbol(){GEMSS.Symbol.apply(this,arguments),this.textXGutter=4,this.textYGutter=4}function LinkSymbol(){GEMSS.Symbol.apply(this,arguments)}function MultiSelectionVisibleSymbol(){GEMSS.Symbol.apply(this,arguments)}function LayerSymbol(){GEMSS.Symbol.apply(this,arguments)}function AntintrusionSymbol(){GEMSS.Symbol.apply(this,arguments)}function ModBusSymbol(){GEMSS.Symbol.apply(this,arguments),this.internalBorderGutter=2}function MODBUSSymbolValueStatic(){GEMSS.Symbol.apply(this,arguments),this.textXGutter=-2,this.showValue=!0}function MODBUSSymbolValue(){GEMSS.Symbol.apply(this,arguments),this.textYGutter=3}function MODBUSSymbolONOFF(){GEMSS.Symbol.apply(this,arguments)}function MapControl(n,e,t){this.symbols=[],this.symbolsMap={},this.linkSymbolsArray=[],this.selectedSymbols=[],this.paper=void 0,this.backGroundImage=void 0,this.imageGroup=void 0,this.paper=Snap(n);var o=this.paper.group();this.getCanvas=function(){return o},o.attr({id:"graphic_1"}),o.attr({a:"parent_el"}),this.imageGroup=o.group(),void 0!==e&&(this.backGroundImage=this.imageGroup.image(e)),void 0!==t&&(t.$uibModal&&(this.$uibModal=t.$uibModal||{}),void 0!==t.onNavigateEvent&&(this.onNavigateEvent=t.onNavigateEvent),void 0!==t.onGetCommand&&(this.onGetCommand=t.onGetCommand),void 0!==t.onSendCommand&&(this.onSendCommand=t.onSendCommand),void 0!==t.onPopupOpen&&(this.onPopupOpen=t.onPopupOpen),void 0!==t.onCommandPopupOpen&&(this.onCommandPopupOpen=t.onCommandPopupOpen),void 0!==t.getNodeData&&(this.getNodeData=t.getNodeData),void 0!==t.sendPropertyListCommand&&(this.sendPropertyListCommand=t.sendPropertyListCommand),void 0!==t.openChartModal&&(this.openChartModal=t.openChartModal),void 0!==t.sendNoteListCommand&&(this.sendNoteListCommand=t.sendNoteListCommand),void 0!==t.sendDefaultCommand&&(this.sendDefaultCommand=t.sendDefaultCommand)),this.askForValue=function(n){return this.$uibModal.open({animation:!0,templateUrl:"app/shared/askValueModal/askValueModal.html",controller:"askValueModalCtrl",resolve:{options:function(){return n}}})},this.openPopupMap=function(n,e,t,o){void 0!==this.onPopupOpen&&this.onPopupOpen(n,t,e,o)},this.openCommandPopup=function(n,e){if(void 0!==this.onCommandPopupOpen)return this.onCommandPopupOpen(n,e)},this.onSelectSymbol=function(n){for(var e=this.selectedSymbols.length-1;e>=0;e--)this.selectedSymbols[e].notifySelectionOnMap(n);this.selectedSymbols.push(n)},this.deSelectSymbol=function(n){for(var e=this.selectedSymbols.length-1;e>=0;e--)this.selectedSymbols[e]==n&&this.selectedSymbols.splice(e,1)},this.cleanMap=function(){(o.selectAll("*").forEach(function(n){n.remove()}),window.hideContextMenu&&window.hideContextMenu(),this.paper)&&this.paper.select(".svg-pan-zoom_viewport");this.backGroundImage=void 0,this.imageGroup=o.group()},this.navigateMap=function(n){this.onNavigateEvent(n.guidLink,n.backGroundFileId,n)},this.navigateToGuid=function(n){this.onNavigateEvent(n.guidLink,void 0,void 0,n.pathLink)},this.getSymbolById=function(n){return this.symbolsMap[n]},this.updateSymbol=function(n){var e=this.symbolsMap[n.symbolId];void 0!==e&&(e.hydrate(n),e.draw());for(var t=this.linkSymbolsArray.length-1;t>=0;t--)this.symbolLinkIsEqual(n,this.linkSymbolsArray[t])&&(this.linkSymbolsArray[t].hydrate(n),this.linkSymbolsArray[t].draw())},this.symbolLinkIsEqual=function(n,e){return void 0!==n&&void 0!==e&&n.symbolId===e.guidLink},this.addSymbol=function(n){n.draw(o),this.symbols.push(n),this.symbolsMap[n.symbolId]=n,n instanceof LinkSymbol&&this.linkSymbolsArray.push(n),this.symbolsMap[n.symbolId].labelAlwaysVisibile&&!this.symbolsMap[n.symbolId].isSymbol&&this.symbolsMap[n.symbolId].toggleLabel()},this.toggleLabel=function(){for(var n in this.symbols)try{this.symbols[n].isLabelAlwaysVisible()||this.symbols[n].labelNeverVisible||this.symbols[n].toggleLabel()}catch(n){}},this.setNodesVisibility=function(n,e){n.forEach(function(n){this.symbolsMap[n].setVisibility(!0)},this),e.forEach(function(n){this.symbolsMap[n].setVisibility(!1)},this)},this.setBackGroundURI=function(n,e){function t(){}function o(){l.onload=t(),l.onerror=t(),i.paper.node.setAttribute("height","100%"),i.backGroundImage.node.setAttribute("href",n),e&&e()}function a(){l.onload=t(),l.onerror=t(),i.paper.node.setAttribute("height","100%"),e&&e()}var i=this;void 0===this.backGroundImage&&(this.backGroundImage=this.imageGroup.image(n));var l=new Image;l.onload=o.bind(),l.onerror=a.bind(),l.src=n},this.getCommand=function(n,e){this.onGetCommand(n,e)},this.sendCommand=function(n,e){this.onSendCommand(n,e)}}function routesConfig(n,e){e.otherwise("/installations"),n.state("withHeader",{abstract:!0,template:'
'}).state("withoutHeader",{abstract:!0,template:"
"})}routesConfig.$inject=["$stateProvider","$urlRouterProvider"],angular.module("auth",["ngConstants","ui.bootstrap","ui.router","permission","permission.ui","shared","colorpicker.module"]).run(["PermPermissionStore","UserService",function(n,e){var t=function(n){return angular.isDefined(n.toParams)?n.toParams.installationId:n.installationId},o=function(n,o){var a=t(o);return e.getPermissionByInstallationId(a).indexOf(n)>=0},a=function(){return!e.isCustomer()},i=function(){return!0},l=function(){return e.isAdmin()},r=function(){return e.isGlobalAdmin()},s=function(n,t){return e.enabledModuleByInstallation(t).indexOf(n)>=0},d=function(n,e){return s(n,t(e))},c=function(n,o){var a=t(o);return e.getPermissionByInstallationId(a).indexOf(n)>=0&&s("INTRUSIONE-INCENDIO",a)},u=function(n,o){var a=t(o);return e.getPermissionByInstallationId(a).indexOf(n)>=0&&s("SCHEDULER",a)},p=function(n,o){var a=t(o);return e.getPermissionByInstallationId(a).indexOf(n)>=0&&s("ACCESS-CONTROL",a)};n.definePermission("SCHEDULER",d),n.definePermission("MENU-UTENTI",i),n.definePermission("MENU-INSTALLATORI",r),n.definePermission("BUTTON-INSTALLAZIONI-AGGIUNGI",a),n.definePermission("BUTTON-CLIENTI-AGGIUNGI",a),n.definePermission("BUTTON-CLIENTI-MODIFICA",a),n.definePermission("BUTTON-CLIENTI-ELIMINA",a),n.definePermission("UTENTI-AGGIUNGI",l),n.definePermission("BUTTON-UTENTI-ELIMINA",l),n.definePermission("BUTTON-UTENTI-EDIT",l),n.definePermission("BUTTON-INSTALLAZIONI-VISUALIZZA_IMPIANTI",c),n.definePermission("BUTTON-INSTALLAZIONI-APRIVISTE",c),n.definePermission("BUTTON-INSTALLAZIONI-APRIMAPPE",c),n.definePermission("BUTTON-INSTALLAZIONI-DASHBOARD",c),n.definePermission("BUTTON-INSTALLAZIONI-MODIFICAINSTALLAZIONE",a),n.definePermission("BUTTON-INSTALLAZIONI-ELIMINA",o),n.definePermission("BUTTON-INSTALLAZIONI-UPLOADMAPPE",o),n.definePermission("BUTTON-IMPIANTI-AGGIUNGI",o),n.definePermission("BUTTON-IMPIANTI-MODIFICA",o),n.definePermission("BUTTON-IMPIANTI-MANUTENZIONE",c),n.definePermission("TEBE-SMALL-SETTING",c),n.definePermission("BUTTON-IMPIANTI-ELIMINA",o),n.definePermission("BUTTON-IMPIANTI-UPLOAD",o),n.definePermission("GROUP-MANAGEMENT",o),n.definePermission("MANUTENZIONEIMPIANTO-COMANDI",c),n.definePermission("VISTE-COMANDI",c),n.definePermission("MANAGE-CALENDAR",u),n.definePermission("SEE-PENDING-NOTIFICATION",u),n.definePermission("NOTIFICATION-HISTORY",u),n.definePermission("MANAGE-PLANT-NOTIFICATION-FILTER",u),n.definePermission("MANAGE-HISTORY-FILTER",c),n.definePermission("ACCESS-CONTROL",p)}]),angular.module("auth").component("addUserGroup",{templateUrl:"app/auth/groups/groupDetail/users/addUser/addUser.tpl.html",bindings:{resolve:"<",close:"&",dismiss:"&"},controller:["$log",function(n){var e=this;e.$onInit=function(){e.users=e.resolve.users},e.selectUser=function(n){e.close({$value:n})},e.dismiss=function(){e.dismiss()}}]}),angular.module("auth").component("groupListItem",{bindings:{group:"=",onUpdate:"&"},controller:function(){var n=this;n.selectGroup=function(e){n.onUpdate({group:e})},n.$onInit=function(){}},templateUrl:"app/auth/groups/groupList/groupListItem/groupListItem.tpl.html"}),angular.module("auth").component("groupUsers",{bindings:{group:"=",groupUsers:"=",installationId:"<"},controller:["$log","GroupUsers","$uibModal","toastr",function(n,e,t,o){var a=this;a.addUser=function(){e.query({installationId:a.installationId,groupId:a.group.id}).$promise.then(function(e){t.open({component:"addUserGroup",size:"lg",resolve:{users:function(){return e}}}).result.then(function(e){n.info("handle selected user",e),e.installationId=a.installationId,e.groupId=a.group.id;var t=angular.copy(e.username);e.$save().then(function(i){o.success("Utente correttamente aggiunto",""),n.info(e),e.username=t,a.groupUsers.push(e),a.group.userCount+=1,a.group.reloadGroups()}).catch(function(e){n.error(e);var t;e.data=e.data||{error:{}},t="ADMIN_USER"===e.data.error.errorMsg?"Impossibile Spostare utente admin dal gruppo admin":"Problema Imprevisto, riprova piu tardi",o.error(t,"")})})})},a.selectInitialPage=function(){t.open({component:"chooseInitialPage",size:"lg",resolve:{installationId:function(){return a.installationId}}}).result.then(function(e){a.group.$setInitialPageToAllUsers(e).then(function(){angular.forEach(a.groupUsers,function(n){n.initialpage=e})}).catch(function(e){n.error(e),o.error("problema imprevisto riprovare piu tardi")})})},a.showRemoveBtn=function(e){n.debug(e),n.debug(a.group);var t=!1;return n.debug(a.group.isadmin,e.isadmin,a.group.isinstaller,e.isinstaller),t=t||a.group.isadmin&&e.isadmin&&a.group.isinstaller===e.isinstaller,t=t||(a.group.isguest&&!e.isadmin)&a.group.isinstaller===e.isinstaller},a.removeUser=function(e,t){n.info(e),e.installationId=a.installationId,e.groupId=a.group.id,e.$delete().then(function(n){a.groupUsers.splice(t,1),a.group.userCount-=1,a.group.reloadGroups()}).catch(function(e){n.info(e)})}}],templateUrl:"app/auth/groups/groupDetail/users/users.tpl.html"}),angular.module("auth").component("groupSettings",{bindings:{group:"=",onUpdate:"&",rootMapSymbol:"=",installationId:"="},controller:["$log","HOME_PAGE_OPTIONS","MapService",function(n,e,t){var o=this;o.homePageOptions=e,o.saveGroup=function(){o.onUpdate()},o.$onInit=function(){o.changeInitialMap=!1},o.loadChildFn=function(n){return t.map.getChildrenOfTypeMaps(o.installationId,n)},o.initialMapChanged=function(n){o.group.groupSettings.initialMapNode=n,o.group.groupSettings.initialMapNode.r_nodeconfiguration=o.group.groupSettings.initialMapNode.r_symbolconfiguration,o.group.groupSettings.initialMapSymbol=n.r_idsymbol,o.changeInitialMap=!1}}],templateUrl:"app/auth/groups/groupDetail/settings/settings.tpl.html"}),angular.module("views",["shared","ui.grid","ui.grid.selection","ui.grid.resizeColumns","ui.grid.autoResize","plants","auth"]).config(["$stateProvider",function(n){n.state("views",{url:"/installation/:installationId/views/:viewId",parent:"withHeader",controller:"ViewsCtrl",templateUrl:"app/views/view/view.tpl.html",resolve:{installationId:["$stateParams",function(n){return n.installationId}],plants:["installationId","PlantService",function(n,e){return e.plantListByInstallationId(n).then(function(n){return n.result})}],viewId:["$stateParams",function(n){return n.viewId}],sock:["$stateParams","socketService",function(n,e){return e.connect(n)}]},data:{permissions:{only:["BUTTON-INSTALLAZIONI-APRIVISTE"],redirectTo:"installations"}}}).state("standAloneView",{url:"/installation/:installationId/view/:viewId?symbolId",parent:"withoutHeader",controller:"StandAloneViewCtrl",templateUrl:"app/views/standAloneView/standAloneView.tpl.html",resolve:{installationId:["$stateParams",function(n){return n.installationId}],plants:["installationId","PlantService",function(n,e){return e.plantListByInstallationId(n).then(function(n){return n.result})}],viewId:["$stateParams",function(n){return n.viewId}],sock:["$stateParams","socketService",function(n,e){return e.connect(n)}]}})}]),angular.module("views").directive("viewQuery",function(){return{restrict:"AEC",templateUrl:"app/views/directives/viewQuery/viewQuery.tpl.html",scope:{installationId:"=",selectedView:"=",plants:"="},controller:["$filter","$rootScope","$window","$uibModal","$log","$scope","BASE_PATH","$location","modalService","socketService","ViewPluginService","$http","$state","toastr","UserService",function(n,e,t,o,a,i,l,r,s,d,c,u,p,m,g){function h(n,e){return n=n.toLowerCase(),e=e.toLowerCase().split(/[,]/),e.reduce(function(e,t){return e||n.includes(t.trim().toLowerCase())},!1)}i.popup1={opened:!1},i.open1=function(){i.popup1.opened=!0},i.timespan=[{hours:2,description:"2 ore"},{hours:4,description:"4 ore"},{hours:6,description:"6 ore"}];var f=new Date;f.setHours(f.getHours()-1),i.filter={selectedTimeSpan:i.timespan[0].hours,dateTo:new Date(f.getFullYear(),f.getMonth(),f.getDate(),f.getHours()+i.timespan[0].hours,f.getMinutes(),f.getSeconds()),dateFrom:f},i.dateOptions={formatYear:"yyyy",maxDate:new Date,startingDay:1},i.updateFilter=function(n,e){i.filter.dateTo=new Date(n.getFullYear(),n.getMonth(),n.getDate(),n.getHours()+e,n.getMinutes(),n.getSeconds())},i.changeDateFrom=function(n){n&&i.updateFilter(n,i.filter.selectedTimeSpan)},i.changeTimespan=function(n){i.updateFilter(i.filter.dateTo,n)},i.getColorForView=function(n){var e;return angular.isUndefined(i.queryCounters)?"":(e=i.queryCounters[n.Id],angular.isDefined(e)?e>0?n.WebColorWithRows:n.WebColorWithNoRows:"")},i.getCharFromIconCode=function(n){return String.fromCharCode(n.WebIcon)},i.navigateToView=function(n){r.path("installation/"+i.installationId+"/view/"+n.Id)},i.isSelectedView=function(n){return n.Id===i.selectedView},i.onItemSelection=function(n,e){e.selectedItemsCommand="LOADING",i.getCommand(n,e),i.getMapSymbol(n,e)},i.cleanCommandList=function(n,e){e.selectedItemsCommand=[],e.mapUrl=null},i.getCommand=function(n,e){var t=e,o=n[e.commandColumnKey];o?c.getCommand(o,i.installationId).then(function(n){t.selectedItemsCommand=n},function(){t.selectedItemsCommand="ERROR"}):t.selectedItemsCommand=[]},i.getMapSymbol=function(n,e){var t=e,o=n[e.commandColumnKey];o?c.getMapSymbol(o,i.installationId).then(function(n){try{n.r_hierarchy=n.r_hierarchy.split("."),t.maSymbolParent=n.r_hierarchy[n.r_hierarchy.length-1],t.mapSymbol=n.r_symbol,t.mapUrl=p.href("standAloneMap",{installationId:i.installationId,mapId:t.maSymbolParent}),t.mapUrl&&(t.mapUrl=t.mapUrl+"?symbolId="+t.mapSymbol)}catch(n){t.mapUrl=void 0}}).catch(function(n){a.error(n),t.mapUrl=void 0}):t.mapUrl=void 0},i.goToMap=function(n,e){t.open(n,"_blank_"+e,"top=20")},i.sendCommand=function(n,e){var t=n.r_command.split("|")[0],o=n.r_plantid;if(angular.isDefined(o)&&t)return a.info("send command",e.r_protocol,o),c.sendCommand(e.r_protocol,o,t,i.installationId,{PLANT_DESCRIPTION:n.r_plantdescription});throw new Error("no plantid for item command")},i.populateViewData=function(){c.getInstallationViewsInfo(i.installationId).then(function(n){var e=0;i.installationInfo=n.installationInfo,i.views=n.views;for(var t=i.views.length-1;t>=0;t--)if(i.isSelectedView(i.views[t])){e=t;break}return i.installationInfo&&i.views&&(i.currentView=i.views[e],i.currentView.Queries&&i.currentView.Queries.length>0&&i.currentView.Queries.forEach(function(n,e){function t(n,e){return n=n.toLowerCase(),e=e.toLowerCase().split(/[,]/),e.reduce(function(e,t){return e||n.includes(t.trim().toLowerCase())},!1)}n.selectedItems=[],n.selectedItemsCommand=[],n.gridOptions={gemssQueryIndex:e,enableSelectionBatchEvent:!1,enableFiltering:!0,enableRowSelection:!0,enableSelectAll:!1,selectionRowHeaderWidth:35,rowHeight:35,showGridFooter:!0,columnDefs:[],selectedItems:n.selectedItems,multiSelect:!1,enableRowHeaderSelection:!0,enableColumnResize:!0,filterOptions:{filterText:"",useExternalFilter:!1},afterSelectionChange:function(n,e,t,o){a.log("selected data change")},showFilter:!0,data:[]},n.gridOptions.onRegisterApi=function(e){n.gridApi=e,e.selection.on.rowSelectionChanged(i,function(n){var e="row selected "+n.isSelected;a.log(e),n.isSelected?(i.onItemSelection(n.entity,i.currentView.Queries[this.grid.options.gemssQueryIndex]),i.currentView.Queries[this.grid.options.gemssQueryIndex].selectedItems[0]=n.entity):(i.cleanCommandList(n.entity,i.currentView.Queries[this.grid.options.gemssQueryIndex]),i.currentView.Queries[this.grid.options.gemssQueryIndex].selectedItems=[])}),e.selection.on.rowSelectionChangedBatch(i,function(n){var e="rows changed "+n.length;a.log(e)})};for(var o in n.Columns)!function(e){if(e.Command&&e.Command&&(n.commandColumnKey=e.MappingName),e.Width){var t={};e.MappingName=e.MappingName.toLowerCase(),(angular.isString(e.Key)||e.Key instanceof String)&&n.filterKeys.push(e.MappingName),t.sortingAlgorithm=function(n,e,t,o,a){var i=t.grid.api.core.sortHandleNulls(n,e);return null!==i?i:angular.isString(n)?n>e?1:n===e?0:-1:angular.isNumber(n)?n>e?1:n===e?0:-1:void 0},t.field=e.MappingName,e.format&&"DATETIME"===e.format&&(t.cellFilter="date:'dd/MM/yyyy H:mm:ss'"),e.HeaderText&&(t.displayName=e.HeaderText),0!==e.Width&&(t.width=e.Width),n.gridOptions.columnDefs.push(t)}}(n.Columns[o]);n.Data&&n.Data.Url&&c.getQueryData(i.installationId,n,g.getGroupIdByInstallationId(i.installationId),i.filter.dateTo,i.filter.dateFrom,i.filter.selectedPlant).then(function(e){var o=g.getGroupSettingsByInstallationId(i.installationId).history_exclude_filter;"./query/events"===n.Data.Url?(n.gridOptions.data=[],angular.forEach(e,function(e){o?t(e.r_description,o)||t(e.r_info,o)||n.gridOptions.data.push(e):n.gridOptions.data.push(e)})):n.gridOptions.data=e})})),u.get(l.API_URL+"company/"+i.installationInfo.customerId)}).then(function(n){i.subribedTopic=d.subscribe("Installation."+i.installationId),i.customerInfo=n.data})},i.managePlant=function(n){window.open(window.location.origin+window.location.pathname+"/#/plant/"+n.MAC,"_blank")},i.editPlant=function(n){o.open({animation:i.animationsEnabled,ariaLabelledBy:"modal-title",ariaDescribedBy:"modal-body",templateUrl:"app/plants/editPlant/editPlant.tpl.html",controller:"EditPlantModalCtrl",resolve:{plantToEdit:function(){return n},installationId:function(){return i.installationId}}}).result.then(function(n){a.info(n),i.getPlants()},function(n){a.info(n),a.info("Modal dismissed at: "+new Date)})};var b=function(n){for(var e=n.Values.length-1;e>=0;e--)n.Values[e].Key=n.Values[e].Key.toLowerCase()},v=e.$on("socket:view",function(e,t){try{var o,l,r,s,d,c,u,p=void 0,m={};if(a.debug("incoming message from ws service",t),!t.installationId||t.installationId!=i.installationId)return void a.error("Rejected message from ws service, no match with current installation",t);t.data.forEach(function(e){if(a.debug("update event : ",e),e.ViewId&&e.Type&&e.ViewId===i.currentView.Id){for(s=e.QueryId,c=i.currentView.Queries.length-1;c>=0;c--)if(i.currentView.Queries[c].Id==s){p=i.currentView.Queries[c];break}if(angular.isUndefined(p)||angular.isUndefined(p.gridOptions)||angular.isUndefined(p.gridOptions.data))return;d=p.gridOptions.data,b(e);var t,g={};switch(e.Type){case"ADD":try{if(!e.Values)throw a.error("update request with no data"),"update request with no data";for(u in e.Values)g[e.Values[u].Key]=e.Values[u].Value;for(c in p.Columns)if(p.Columns[c].Key){a.debug(p.Columns[c].Key,p.Columns[c]),m[p.Columns[c].MappingName]=e.RowKey.toLowerCase();break}if(o=n("filter")(d,m,!0),0!==(t=o.length))l=o[0],r=d.indexOf(l),d[r]=g;else{if(t>1)throw"multiple matching";d.push(g)}}catch(n){a.error(n)}break;case"UPDATE":try{if(!e.Values)throw a.error("update request with no data"),"update request with no data";for(u in e.Values)g[e.Values[u].Key]=e.Values[u].Value;for(c in p.Columns)if(p.Columns[c].Key){a.debug(p.Columns[c].Key,p.Columns[c]),m[p.Columns[c].MappingName]=e.RowKey.toLowerCase();break}if(o=n("filter")(d,m,!0),0!==(t=o.length))l=o[0],-1!==p.selectedItems.indexOf(l)&&p.gridApi.selection.clearSelectedRows(),r=d.indexOf(l),d[r]=g;else{if(t>1)throw"multiple matching";d.push(g)}}catch(n){a.error(n)}break;case"REMOVE":try{for(c in p.Columns)if(p.Columns[c].Key){a.debug(p.Columns[c].Key,p.Columns[c]),m[p.Columns[c].MappingName]=e.RowKey.toLowerCase();break}if(o=n("filter")(d,m,!0),0===o.length)throw a.error("no query item matching with request: ",d),"no query matching";l=o[0],-1!==p.selectedItems.indexOf(l)&&p.gridApi.selection.clearSelectedRows(),r=d.indexOf(l),d.splice(r,1)}catch(n){a.error(n)}}}})}catch(n){}i.$apply()}),y=e.$on("socket:refresh",function(){c.getInstallationViewsCounters(i.installationId).then(function(n){i.queryCounters={},angular.forEach(n,function(n){i.queryCounters[n.viewId]=n.count})}),c.getInstallationViewsInfo(i.installationId).then(function(n){var e=n.views.filter(function(n){return n.Id===i.selectedView})[0];e&&angular.forEach(e.Queries,function(n){var e=i.currentView.Queries.filter(function(e){return e.Id===n.Id})[0];e&&c.getQueryData(i.installationId,n,g.getGroupIdByInstallationId(i.installationId)).then(function(n){e.gridOptions.data=[];var t=g.getGroupSettingsByInstallationId(i.installationId).history_exclude_filter;"./query/events"===e.Data.Url?angular.forEach(n,function(n){t?h(n.r_description,t)||h(n.r_info,t)||e.gridOptions.data.push(n):e.gridOptions.data.push(n)}):e.gridOptions.data=n})})})});i.$on("$destroy",function(){v(),y(),d.unsubscribe(i.subscribedTopic)}),i.$watch("selectedView",function(){i.populateViewData()}),i.populateViewData()}]}}),angular.module("shared",["ui.router","permission","permission.ui","ngAnimate","toastr","auth","maps"]).constant("TIME_SLOT_KEY","time-slot").constant("PAGE_SIZE",20).filter("trustAsHtml",["$sce",function(n){return function(e){return n.trustAsHtml(e)}}]).constant("HOME_PAGE_OPTIONS",[{name:"Lista installazioni",stateName:"installations",needInstallationId:!0},{name:"Lista Gruppi",stateName:"groupList",needInstallationId:!0},{name:"Lista Clienti",stateName:"customers"},{name:"Lista Utenti",stateName:"companymanagement"},{name:"Lista Installatori",stateName:"managers"},{name:"Lista Impianti",stateName:"plants",needInstallationId:!0},{name:"Dashboard",stateName:"dashboard",needInstallationId:!0},{name:"Mappe",stateName:"maps",needInstallationId:!0,isMap:!0}]).filter("initialPageNameFromUrl",["HOME_PAGE_OPTIONS","$state",function(n,e){return function(t){t=t||"";var o,a={name:t};return angular.forEach(e.get(),function(n){var e=n.$$state();if(e&&e.url){(e.url.exec(t)||e.url.exec(t.replace("#!","")))&&(a=n)}}),o=n.filter(function(n){return n.stateName===a.name})[0],o?a.name=o.name:a.name}}]).run(["keepAlive","soundService","socketService",function(n,e,t){}]),angular.module("shared").controller("ConfirmModalInstanceCtrl",["$uibModalInstance","$scope","message",function(n,e,t){console.log("confirm modal popup"),e.modalOptions=t,e.ok=function(){n.close("delete")},e.cancel=function(){n.dismiss("cancel")}}]),angular.module("shared").component("materialCheckboxItem",{bindings:{item:"<",itemClass:"<",idField:"<",textField:"<",modelField:"<",onUpdate:"&"},require:{parent:"^materialCheckboxList"},controller:function(){var n=this;n.changed=function(){n.onUpdate(n.item)}},templateUrl:"app/shared/materialCheckBoxList/materialCheckboxItem/materialCheckboxItem.tpl.html"}),angular.module("scheduler",["shared","ui.router","permission","permission.ui","mwl.calendar","ngAnimate","ui.bootstrap","ngTouch","auth"]).config(["$stateProvider","$touchProvider","calendarConfig","PAGE_SIZE",function(n,e,t,o){e.ngClickOverrideEnabled(!0),t.templates.calendarDayView="app/scheduler/calendar/calendarDayView.tpl.html",t.allDateFormats.angular.date.hour="HH:mm",t.i18nStrings.weekNumber="Settimana {week}",moment.updateLocale("it",{week:{dow:1}}),n.state("calendarManagement",{url:"/installations/:installationId/calendar",parent:"withHeader",component:"calendarManagement",resolve:{installationId:["$transition$",function(n){return n.params().installationId}],currentDate:function(){return moment()},groups:["Group","installationId",function(n,e){return n.query({installationId:e}).$promise}],initMonthEvents:["currentDate","installationId","Events",function(n,e,t){return t.getEventsForMonth(e,n.year(),n.month()+1)}]},data:{permissions:{only:["MANAGE-CALENDAR"],redirectTo:"installations"}}}).state("pendingNotification",{url:"/installations/:installationId/pendingNotification",parent:"withHeader",component:"pendingNotificationList",resolve:{installationId:["$transition$",function(n){return n.params().installationId}],pendingNotifications:["installationId","PendingNotification",function(n,e){return e.query({installationId:n}).$promise}]},data:{permissions:{only:["SEE-PENDING-NOTIFICATION"],redirectTo:"installations"}}}).state("historyNotification",{url:"/installations/:installationId/historyNotification",parent:"withHeader",component:"historyNotificationList",resolve:{installationId:["$transition$",function(n){return n.params().installationId}],notifications:["installationId","HistoryNotification",function(n,e){return e.query({installationId:n,offset:0,limit:o}).$promise}]},data:{permissions:{only:["NOTIFICATION-HISTORY"],redirectTo:"installations"}}})}]),angular.module("scheduler").component("takeOver",{bindings:{installationId:"=",resolve:"<",close:"&",dismiss:"&"},templateUrl:"app/scheduler/pendingNotification/takeOver/takeOver.html",controller:function(){var n=this;n.$onInit=function(){n.notification=n.resolve.notification},n.takeOver=function(){n.close({$value:n.notes})}}}),angular.module("mwl.calendar").controller("MwlDraggableResizableCtrl",["$element","$scope","$window","$parse","$attrs","$timeout","interact",function(n,e,t,o,a,i,l){function r(n,e){return n.css("-ms-transform",e).css("-webkit-transform",e).css("transform",e)}function s(n,e){var t={};return t.edge=n,"start"===n?(t.x=e.data("x"),t.y=e.data("y")):"end"===n&&(t.x=parseFloat(e.css("width").replace("px",""))-m.width,t.y=parseFloat(e.css("height").replace("px",""))-m.height),t}if(l){var d,c;a.snapGrid&&(c=o(a.snapGrid)(e),d={targets:[l.createSnapGrid(c)]});var u=o(a.autoScroll)(e);angular.isUndefined(u)&&(u=!0);var p,m={},g={};l(n[0]).draggable({autoScroll:u,snap:d,restrict:{elementRect:{top:.25,left:.25,bottom:.75,right:.75}}}).resizable({edges:o(a.resizeEdges)(e),snap:d,margin:10}).on("dragstart",function(n){angular.element(n.target).addClass("dragging-active"),n.target.dropData=o(a.dropData)(e),n.target.style.pointerEvents="none",a.onDragStart&&(o(a.onDragStart)(e),e.$apply())}).on("dragmove",function(n){var i=angular.element(n.target),l=(parseFloat(i.attr("data-x"))||0)+(n.dx||0),s=(parseFloat(i.attr("data-y"))||0)+(n.dy||0);switch(o(a.axis)(e)){case"x":s=0;break;case"y":l=0}"static"===t.getComputedStyle(i[0]).position&&i.css("position","relative"),r(i,"translate("+l+"px, "+s+"px)").css("z-index",50).attr("data-x",l).attr("data-y",s),a.onDrag&&(o(a.onDrag)(e,{x:l,y:s}),e.$apply())}).on("dragend",function(n){var t=angular.element(n.target),l=t.attr("data-x"),s=t.attr("data-y");n.target.style.pointerEvents="auto",a.onDragEnd&&(o(a.onDragEnd)(e,{x:l,y:s}),e.$apply()),i(function(){r(t,"").css("z-index","auto").removeAttr("data-x").removeAttr("data-y").removeClass("dragging-active")})}).on("resizemove",function(n){if(n.rect.width>0&&n.rect.height>0){var t=angular.element(n.target),i=parseFloat(t.data("x")||0),l=parseFloat(t.data("y")||0);t.css({width:n.rect.width+"px",height:n.rect.height+"px"}),i+=n.deltaRect.left,l+=n.deltaRect.top,t.css("transform","translate("+i+"px,"+l+"px)"),t.data("x",i),t.data("y",l),0===n.deltaRect.left&&0===n.deltaRect.top||(p="start"),a.onResize&&(o(a.onResize)(e,s(p,t)),e.$apply())}}).on("resizestart",function(n){p="end";var e=angular.element(n.target);m.height=e[0].offsetHeight,m.width=e[0].offsetWidth,g.height=e.css("height"),g.width=e.css("width")}).on("resizeend",function(n){var t=angular.element(n.target),l=s(p,t);i(function(){t.data("x",null).data("y",null).css({transform:"",width:g.width,height:g.height})}),a.onResizeEnd&&(o(a.onResizeEnd)(e,l),e.$apply())}),e.$watch(a.mwlDraggableResizable,function(e){l(n[0]).resizable({enabled:e}).draggable({enabled:e})}),e.$on("$destroy",function(){l(n[0]).unset()})}}]).directive("mwlDraggableResizable",function(){return{restrict:"A",controller:"MwlDraggableResizableCtrl"}}),angular.module("scheduler").controller("copyPopUpCtrl",["$uibModalInstance","event",function(n,e){var t=this;t.event=e;var o=new Date;t.options={copyOn:"week",day:new Date(o.getFullYear(),o.getMonth(),o.getDate()+1)},t.open=function(){t.popupOpened=!0},t.dateOptions={formatYear:"yyyy",minDate:new Date,startingDay:1},t.ok=function(){n.close(t.options)},t.cancel=function(){n.dismiss()}}]),angular.module("maps",["ngConstants","angularFileUpload","ui.router","permission","permission.ui","ui.bootstrap","shared","auth","chart.js"]).config(["$stateProvider",function(n){n.state("maps",{url:"/installation/:installationId/maps",parent:"withHeader",controller:"MapsCtrl",templateUrl:"app/maps/map/map.tpl.html",resolve:{installationId:["$stateParams",function(n){return n.installationId}],mapId:function(){},sock:["$stateParams","socketService",function(n,e){return e.connect(n)}],showNavigator:["installationId","UserService",function(n,e){return e.showMapNavigator(n)}]},data:{permissions:{only:["BUTTON-INSTALLAZIONI-APRIMAPPE"],redirectTo:"installations"}}}).state("maps.map",{url:"/:mapId",controller:"MapsCtrl",templateUrl:"app/maps/map/map.tpl.html",resolve:{mapId:["$stateParams",function(n){return n.mapId}]}}).state("standAloneMap",{url:"/installations/:installationId/map/:mapId?symbolId",parent:"withoutHeader",controller:"standAloneMapCtrl",templateUrl:"app/maps/standAloneMap/standAloneMap.tpl.html",resolve:{installationId:["$stateParams",function(n){return n.installationId}],mapId:["$stateParams",function(n){return n.mapId}],sock:["$stateParams","socketService",function(n,e){return e.connect(n)}],symbolId:["$stateParams",function(n){return n.symbolId}]},data:{permissions:{only:["BUTTON-INSTALLAZIONI-APRIMAPPE"],redirectTo:"installations"}}})}]),angular.module("maps").directive("standAloneMaps",function(){return{restrict:"AEC",templateUrl:"app/maps/directives/standAloneMap/standAloneMaps.tpl.html",scope:{installationId:"=",mapId:"=",symbolHiglith:"="},controller:["$q","MapService","$filter","$rootScope","$log","$scope","$location","modalService","socketService","ViewPluginService","DynamicColorService","BASE_PATH",function(n,e,t,o,a,i,l,r,s,d,c,u){function p(n,e){return n.map(function(n){var t=n;return t.name=n.r_symbolconfiguration.description,t.parent=e,t.children=[],i.treeNodesMap[n.r_idsymbol]=t,t})}function m(t){a.log("navigation event received",t);var o=i.treeNodesMap[t.nodeId];if(angular.isDefined(o))i.showSelected(o),i.$apply();else{var l=t.hierarchy;if(l){var r=l.split("."),s=[];angular.forEach(r,function(n,e){var t=i.treeNodesMap[n];angular.isUndefined(t)&&s.push(r[e-1])});var d=n.when("");s.reduce(function(n,t){return n.then(function(){return e.map.getNodeSymbols(i.installationId,t)}).then(function(n){i.treeNodesMap[t].children=p(n.children,i.treeNodesMap[t])})},d).then(function(){var n=i.treeNodesMap[t.nodeId];i.showSelected(n)})}else alert("no node data")}}i.breadcrumbsPath=[],i.treeNodesMap={},i.expandedNodes=[],i.startMapId=i.mapId,i.calculateColor=c.getColorForMap,i.expandNodeEvent=function(n,t){a.info(n,t),!0===t&&0===n.children.length&&(n.children=[{name:"loading"}],e.map.getChildren(i.installationId,n.r_idsymbol).then(function(e){n.children=p(e,n)}))},i.expandNode=function(n){var e=i.expandedNodes.map(function(e,t){if(e.r_idsymbol==n.r_idsymbol)return t});if(0!==e.length)for(var t=0;t0?n.WebColorWithRows:n.WebColorWithNoRows:""},i.getCharFromIconCode=function(n){return String.fromCharCode(n.WebIcon)},i.navigateToView=function(n){s.go("views",{installationId:i.installationId,viewId:n.Id})},i.isSelectedView=function(n){return n.Id==i.selectedView},i.onItemSelection=function(n,e){e.selectedItemsCommand="LOADING",i.getCommand(n,e),i.getMapSymbol(n,e)},i.cleanCommandList=function(n,e){e.selectedItemsCommand=[],e.mapUrl=null},i.getCommand=function(n,e){var t=e,o=n[e.commandColumnKey];o?p.getCommand(o,i.installationId).then(function(n){t.selectedItemsCommand=n},function(){t.selectedItemsCommand="ERROR"}):t.selectedItemsCommand=[]},i.getMapSymbol=function(n,e){var t=e,o=n[e.commandColumnKey];o?p.getMapSymbol(o,i.installationId).then(function(n){try{n.r_hierarchy=n.r_hierarchy.split("."),t.maSymbolParent=n.r_hierarchy[n.r_hierarchy.length-1],t.mapSymbol=n.r_symbol,t.mapUrl=s.href("standAloneMap",{installationId:i.installationId,mapId:t.maSymbolParent}),t.mapUrl&&(t.mapUrl=t.mapUrl+"?symbolId="+t.mapSymbol)}catch(n){t.mapUrl=void 0}}).catch(function(n){a.error(n),t.mapUrl=void 0}):t.mapUrl=void 0},i.goToMap=function(n,e){t.open(n,"_blank_"+e,"top=20")},i.sendCommand=function(n,e){var t=n.r_command.split("|")[0],o=n.r_plantid;if(angular.isDefined(o)&&t)return a.info("send command",e.r_protocol,o),p.sendCommand(e.r_protocol,o,t,i.installationId,{PLANT_DESCRIPTION:n.r_plantdescription});throw new Error("no plantid for item command")},i.populateViewData=function(){p.getInstallationViewsCounters(i.installationId).then(function(n){i.queryCounters={},angular.forEach(n,function(n){i.queryCounters[n.viewId]=n.count})}),p.getInstallationViewsInfo(i.installationId).then(function(n){var e=0;i.installationInfo=n.installationInfo,i.views=n.views;for(var t=i.views.length-1;t>=0;t--)if(i.isSelectedView(i.views[t])){e=t;break}return i.installationInfo&&i.views&&(i.currentView=i.views[e],i.currentView.Queries&&i.currentView.Queries.length>0&&i.currentView.Queries.forEach(function(n,e){n.selectedItems=[],n.selectedItemsCommand=[];var t=function(n){i.currentView.Queries[n.grid.options.gemssQueryIndex].gridApi=n,n.selection.on.rowSelectionChanged(i,function(n){var e="row selected "+n.isSelected;a.debug(e),n.isSelected?(i.onItemSelection(n.entity,i.currentView.Queries[this.grid.options.gemssQueryIndex]),i.currentView.Queries[this.grid.options.gemssQueryIndex].selectedItems[0]=n.entity):(i.cleanCommandList(n.entity,i.currentView.Queries[this.grid.options.gemssQueryIndex]),i.currentView.Queries[this.grid.options.gemssQueryIndex].selectedItems=[])}),n.selection.on.rowSelectionChangedBatch(i,function(n){var e=n[0];e.isSelected?(i.onItemSelection(e.entity,i.currentView.Queries[this.grid.options.gemssQueryIndex]),i.currentView.Queries[this.grid.options.gemssQueryIndex].selectedItems[0]=e.entity):(i.cleanCommandList(e.entity,i.currentView.Queries[this.grid.options.gemssQueryIndex]),i.currentView.Queries[this.grid.options.gemssQueryIndex].selectedItems=[])}),n.core.on.filterChanged(i,function(){var n=this.grid;a.debug("filterChanged"),i.queries[n.options.gemssQueryIndex].filterTerm=n.columns[1].filters[0].term})};n.gridOptions={gemssQueryIndex:e,onRegisterApi:t,enableSelectionBatchEvent:!1,enableFiltering:!0,enableRowSelection:!0,enableSelectAll:!1,selectionRowHeaderWidth:35,rowHeight:35,showGridFooter:!0,columnDefs:[],selectedItems:n.selectedItems,multiSelect:!1,enableRowHeaderSelection:!0,enableColumnResize:!0,init:function(){a.debug("NG_GRID INITIALIZE")},filterOptions:{filterText:"",useExternalFilter:!1},afterSelectionChange:function(){a.log("selected data change")},showFilter:!0,data:[]},n.gridOptions.onRegisterApi=function(e){n.gridApi=e,e.selection.on.rowSelectionChanged(i,function(n){var e="row selected "+n.isSelected;a.log(e),n.isSelected?(i.onItemSelection(n.entity,i.currentView.Queries[this.grid.options.gemssQueryIndex]),i.currentView.Queries[this.grid.options.gemssQueryIndex].selectedItems[0]=n.entity):(i.cleanCommandList(n.entity,i.currentView.Queries[this.grid.options.gemssQueryIndex]),i.currentView.Queries[this.grid.options.gemssQueryIndex].selectedItems=[])}),e.selection.on.rowSelectionChangedBatch(i,function(n){var e="rows changed "+n.length;a.log(e)})};for(var o in n.Columns)!function(e){if(e.Command&&1==e.Command&&(n.commandColumnKey=e.MappingName),0!=e.Width){var t={};e.MappingName=e.MappingName.toLowerCase(),(angular.isString(e.Key)||e.Key instanceof String)&&n.filterKeys.push(e.MappingName),t.sortingAlgorithm=function(n,e,t){var o=t.grid.api.core.sortHandleNulls(n,e);return null!==o?o:angular.isString(n)?n>e?1:n===e?0:-1:angular.isNumber(n)?n>e?1:n===e?0:-1:void 0},t.field=e.MappingName,e.format&&"DATETIME"===e.format&&(t.cellFilter="date:'dd/MM/yyyy H:mm:ss'"),e.HeaderText&&(t.displayName=e.HeaderText),0!==e.Width&&(t.width=e.Width),n.gridOptions.columnDefs.push(t)}}(n.Columns[o]);n.Data&&n.Data.Url&&p.getQueryData(i.installationId,n,f.getGroupIdByInstallationId(i.installationId),i.filter.dateTo,i.filter.dateFrom,i.filter.selectedPlant).then(function(e){var t=f.getGroupSettingsByInstallationId(i.installationId).history_exclude_filter;"./query/events"===n.Data.Url?(n.gridOptions.data=[],angular.forEach(e,function(e){t?v(e.r_description,t)||v(e.r_info,t)||n.gridOptions.data.push(e):n.gridOptions.data.push(e)})):n.gridOptions.data=e})})),r.get(l.API_URL+"company/"+i.installationInfo.customerId)}).then(function(n){i.customerInfo=n.data,i.subribedTopic=u.subscribe("Installation."+i.installationId)})},i.managePlant=function(n){window.open(window.location.origin+window.location.pathname+"/#/plant/"+n.MAC,"_blank")};var I=e.$on("socket:refresh",function(){p.getInstallationViewsCounters(i.installationId).then(function(n){i.queryCounters={},angular.forEach(n,function(n){i.queryCounters[n.viewId]=n.count})}),p.getInstallationViewsInfo(i.installationId).then(function(n){var e=n.views.filter(function(n){return n.Id===i.selectedView})[0];e&&angular.forEach(e.Queries,function(n){var e=i.currentView.Queries.filter(function(e){return e.Id===n.Id})[0];e&&p.getQueryData(i.installationId,n,f.getGroupIdByInstallationId(i.installationId)).then(function(n){e.gridOptions.data=[];var t=f.getGroupSettingsByInstallationId(i.installationId).history_exclude_filter;"./query/events"===e.Data.Url?angular.forEach(n,function(n){t?v(n.r_description,t)||v(n.r_info,t)||e.gridOptions.data.push(n):e.gridOptions.data.push(n)}):e.gridOptions.data=n})})})});i.editPlant=function(n){o.open({animation:i.animationsEnabled,ariaLabelledBy:"modal-title",ariaDescribedBy:"modal-body",templateUrl:"app/plants/editPlant/editPlant.tpl.html",controller:"EditPlantModalCtrl",resolve:{plantToEdit:function(){return n},installationId:function(){return i.installationId}}}).result.then(function(n){a.info(n),i.getPlants()},function(n){a.info(n),a.info("Modal dismissed at: "+new Date)})};var w=function(n){for(var e=n.Values.length-1;e>=0;e--)n.Values[e].Key=n.Values[e].Key.toLowerCase()},S=e.$on("socket:view",function(e,t){var o;try{var l,r,s,d,c,u=void 0,p={};if(a.debug("incoming message from ws service",t),!t.installationId||t.installationId!=i.installationId)return void a.error("Rejected message from ws service, no match with current installation",t);t.data.forEach(function(e){if(a.debug("update event : ",e),e.ViewId||e.Type){var t=n("filter")(i.views,{Id:e.ViewId},!0)[0];if(t){var m=n("filter")(t.Queries,{Id:e.QueryId},!0)[0];if(m&&m.Counter)switch(e.Type){case"ADD":i.queryCounters[e.ViewId]=i.queryCounters[e.ViewId]+1;break;case"REMOVE":i.queryCounters[e.ViewId]=i.queryCounters[e.ViewId]-1}}if(e.ViewId===i.currentView.Id){for(d=e.QueryId,f=i.currentView.Queries.length-1;f>=0;f--)if(i.currentView.Queries[f].Id==d){u=i.currentView.Queries[f];break}if(angular.isUndefined(u)||angular.isUndefined(u.gridOptions)||angular.isUndefined(u.gridOptions.data))return;c=u.gridOptions.data,w(e);var g,h={};switch(e.Type){case"ADD":try{if(!e.Values)throw a.error("update request with no data"),"update request with no data";for(o in e.Values)h[e.Values[o].Key]=e.Values[o].Value;for(f in u.Columns)if(u.Columns[f].Key){a.debug(u.Columns[f].Key,u.Columns[f]),p[u.Columns[f].MappingName]=e.RowKey.toLowerCase();break}if(l=n("filter")(c,p,!0),0!==(g=l.length))r=l[0],s=c.indexOf(r),c[s]=h;else{if(g>1)throw"multiple matching";c.push(h)}}catch(n){a.error(n)}break;case"UPDATE":try{if(!e.Values)throw a.error("update request with no data"),"update request with no data";for(o in e.Values)h[e.Values[o].Key]=e.Values[o].Value;for(f in u.Columns)if(u.Columns[f].Key){a.debug(u.Columns[f].Key,u.Columns[f]),p[u.Columns[f].MappingName]=e.RowKey.toLowerCase();break}if(l=n("filter")(c,p,!0),0!==(g=l.length))r=l[0],-1!==u.selectedItems.indexOf(r)&&u.gridApi.selection.clearSelectedRows(),s=c.indexOf(r),c[s]=h;else{if(g>1)throw"multiple matching";c.push(h)}}catch(n){a.error(n)}break;case"REMOVE":try{for(var f in u.Columns)if(u.Columns[f].Key){a.debug(u.Columns[f].Key,u.Columns[f]),p[u.Columns[f].MappingName]=e.RowKey.toLowerCase();break}if(l=n("filter")(c,p,!0),0===l.length)throw a.error("no query item matching with request: ",c),"no query matching";r=l[0],-1!==u.selectedItems.indexOf(r)&&u.gridApi.selection.clearSelectedRows(),s=c.indexOf(r),c.splice(s,1)}catch(n){a.error(n)}}}}})}catch(n){}i.$apply()});i.$on("$destroy",function(){a.log("Unregistering listener"),u.unsubscribe(i.subribedTopic),I(),S()}),i.populateViewData()}]),angular.module("views").controller("StandAloneViewCtrl",["$scope","installationId","viewId","plants",function(n,e,t,o){n.installationId=e,n.selectedView=t,n.plants=o}]),angular.module("views").service("ViewPluginService",["BASE_PATH","UserService","$q","$interval","$http","$log",function(n,e,t,o,a,i){var l=function(e){return a.get(n.API_URL+"installation/"+e+"/views/counters").then(function(n){return n.data})},r=function(e,t,o,i,l,r){var s=t.Data.Url.split(".")[1];return"/query/events"===s&&(s+="/"+o+"?from="+l.toISOString()+"&to="+i.toISOString(),r&&(s+="&plant="+r)),a.get(n.API_URL+"installation/"+e+s).then(function(n){return n.data})},s=function(e,o){if(e&&angular.isString(e)&&e.length)return a.post(n.API_URL+"installation/"+o+"/query/command",{description:e}).then(function(n){return n.data});var i=t.defer();return i.resolve([]),i.promise},d=function(e,t){return a.post(n.API_URL+"installation/"+t+"/query/Notelist",{description:e}).then(function(n){return n.data})},c=function(e,t){return a.post(n.API_URL+"installation/"+t+"/query/propertylist",{description:e}).then(function(n){return n.data})},u=function(e,t,o){return a.post(n.API_URL+"installation/"+t+"/query/chartData",{description:e,after:o}).then(function(n){return n.data})},p=function(e,t){return a.post(n.API_URL+"installation/"+t+"/query/mapSymbol",{description:e}).then(function(n){return n.data})},m=function(t,o,l,r,s){if(!t&&!o)throw new Error("invalid command");var d={PLANT_ID:o,MSG:t,ROLE:l,INSTALLATION_ID:r,SOURCE:e.getUserUsername()};return angular.forEach(s,function(n,e){d[n]=e}),i.info(d),a.post(n.API_URL+"cmdview",d).then(function(n){return n.data})},g=function(n,e){return e?new Promise(function(t){t({installationId:n,installationInfo:{startMapId:e},views:{}})}):h(n)},h=function(e){return a.get(n.API_URL+"installation/"+e).then(function(n){return{installationId:e,installationInfo:n.data[0],views:n.data[0].viewsInfo.Views}})};return{getStartingMapsInfo:g,getInstallationViewsCounters:l,getQueryData:r,getInstallationViewsInfo:h,sendCommand:m,getCommand:s,getPropertyList:c,getNoteList:d,getMapSymbol:p,getChartData:u,sendDefaultCommand:function(e,t,o){return a.post(n.API_URL+"installation/"+t+"/query/defaultCommand",{command:e,plantId:o}).then(function(n){return n.data})}}}]),angular.module("users",["ngConstants","angularFileUpload","ui.router","permission","permission.ui","ui.bootstrap","shared","auth"]).config(["$stateProvider",function(n){n.state("companymanagement",{url:"/companymanagement",parent:"withHeader",component:"users",resolve:{currentCompany:["UserService",function(n){return n.getUserCompanyDescription()}],employees:["UserService","Company",function(n,e){return e.getEmployee(n.getUserManagerCompanyId())}]},data:{permissions:{only:["MENU-UTENTI"],redirectTo:"installations"}}})}]),angular.module("users").component("users",{bindings:{currentCompany:"=",employees:"="},controller:["UserService","$uibModal","Company","blockUI","$log",function(n,e,t,o,a){var i=this;i.deleteEmployee=function(a){var l={closeButtonText:"Annulla",actionButtonText:"Sì",headerText:"Eliminare ?",bodyText:"Sicuro di volere eliminare questo utente?"};e.open({ariaLabelledBy:"modal-title",ariaDescribedBy:"modal-body",templateUrl:"app/shared/popup/confirmModal/confirmModal.tpl.html",controller:"ConfirmModalInstanceCtrl",resolve:{message:function(){return l}}}).result.then(function(){o.start(),n.deleteUser(a.userId).then(function(){t.getEmployee(n.getUserManagerCompanyId()).then(function(n){i.employees=n,o.stop()})}).catch(function(n){toastr.error(n),o.stop()})})},i.getEmployees=function(){t.getEmployee(n.getUserManagerCompanyId())},i.editUser=function(n){e.open({ariaLabelledBy:"modal-title",ariaDescribedBy:"modal-body",templateUrl:"app/users/editUser/editUser.html",controller:"EditCompanyUserCtrl",resolve:{userToEdit:function(){return n}}}).result.then(function(n){a.info(n),i.getEmployees()},function(n){a.info(n),a.info("Modal dismissed at: "+new Date)})}}],templateUrl:"app/users/users/uses.tpl.html"}),angular.module("users").controller("EditCompanyUserCtrl",["modalService","$http","BASE_PATH","$uibModalInstance","userToEdit","UserService","$scope",function(n,e,t,o,a,i,l){l.isNew=!0,l.user={},l.isLoading=!1,l.ok=function(){l.isLoading=!0;var n={user:l.user,companyId:i.getUserManagerCompanyId()};e.post(t.API_URL+"assignusertocompany",n).then(function(n){l.mailOk=!0,l.isLoading=!1},function(n){l.isLoading=!1,l.errorMessage=n})},l.cancel=function(){o.dismiss("cancel")}}]),angular.module("shared").factory("fileReader",["$q","$log",function(n,e){var t=function(n,e,t){return function(){t.$apply(function(){e.resolve(n.result)})}},o=function(n,e,t){return function(){t.$apply(function(){e.reject(n.result)})}},a=function(n,e){return function(n){e.$broadcast("fileProgress",{total:n.total,loaded:n.loaded})}},i=function(n,e){var i=new FileReader;return i.onload=t(i,n,e),i.onerror=o(i,n,e),i.onprogress=a(0,e),i};return{readAsDataUrl:function(e,t){var o=n.defer();return i(o,t).readAsDataURL(e),o.promise}}}]),angular.module("shared").service("soundService",["$rootScope","toastr","$window",function(n,e,t){var o,a="sound",i="soundKey",l="soundForever",r=t.AudioContext||t.webkitAudioContext,s=new r,d=function(){e.error("Clicca qui per tacitazione","Allarme sonoro",{timeOut:0,extendedTimeOut:0,toastClass:"toast no-opacity",onHidden:function(n,e){p()}})},c=function(n,e){if(lscache.setBucket(a),-1===n){lscache.get(l,!0)||(lscache.set(l,!0),lscache.set(i,n),d())}else n=n||2,lscache.set(i,n);e=e||"images/alert.mp3",null!=o&&(o.stop(),o.unload(),o=null),o=new Howl({src:[e],preload:!0,autoplay:!0,onend:u}),"running"===s.state?o.play():"suspended"===s.state&&s.resume().then(function(){t.addEventListener("focus",function(){o.play()},!1)})},u=function(){lscache.setBucket(a);var n=lscache.get(i);lscache.get(l)?c(n):n&&(n=Number(n))&&!isNaN(n)&&(n-=1,n>0?c(n):p())},p=function(){o&&o.unload(),lscache.setBucket(a),lscache.remove(i),lscache.remove(l)};n.$on("socket:sound",function(n,e){var t=e.data;c(t.Number)}),function(){lscache.setBucket(a),lscache.remove(l);var n=lscache.get(i);void 0!==n&&null!==n&&c(n)}()}]),angular.module("shared").service("socketService",["BASE_PATH","$q","$rootScope","$log","UserService","$timeout","toastr","$window",function(n,e,t,o,a,i,l,r){function s(n){t.$emit("socket:sound",{installationId:"no-installation-id",data:angular.fromJson(n.MSG||{Number:1})})}var d,c,u=!0,p=function(){var n=e.defer();if(angular.isDefined(d))return n.resolve(d),n.promise;var t=new SockJS(g+"?sess="+encodeURIComponent(a.getUserToken()));return t.onopen=function(){o.info("RT Socket Open. "),i(b,8e3),n.resolve(t)},t.onmessage=f,t.onerror=function(n){o.error(n)},t.onclose=function(n){n=n||{},n.code="E"+(n.code||"001"),o.error("RT Socket Closed. ",n),c&&i.cancel(c),r.location.reload(!0)},n.promise},m={connect:p,subscribe:function(n){return m.send({subscribe:n}),n},unsubscribe:function(n){m.send({unsubscribe:n})},send:function(n){if(!angular.isString(n))try{n=angular.toJson(n)}catch(e){o.debug(n+" is not a json")}m.connect().then(function(e){e.send(n)})}},g=n.SOCK_PATH.includes("http")?n.SOCK_PATH:n.API_URL+n.SOCK_PATH,h=function(n){var e=a.getGroupSettingsByInstallationId(n.InstallationId),t=n.level||n.notification_level||"warning";e&&e.enable_pop_up_notification&&(l[t](n.body||"",n.subject||"Attenzione",{timeOut:0,extendedTimeOut:0,closeIcon:!1,allowHtml:!0,closeButton:!0,tapToDismiss:!1,toastClass:"toast no-opacity",closeHtml:''}),n.if_popup_sound&&e.sound_on_pop_up_notification&&s({MSG:{Number:1}}))},f=function(n){if(n.data.includes("pong_"))u=!1;else{o.info("Incoming Message",n.data);var e=angular.fromJson(n.data);if(angular.isUndefined(e.MSG))return void(angular.isDefined(e.subscribedTopic)?o.info("subscribed to ",e):o.error("unrecognized event from ws"));var a=e.MSG;angular.isString(a)&&(a=angular.fromJson(a));switch(a.TYPE){case"COM90":e.MSG=angular.fromJson(a.MSG),t.$emit("socket:com90",e);break;case"VIEWS":t.$emit("socket:view",{installationId:e.INSTALLATION_ID,data:angular.fromJson(a.MSG)});break;case"SMOWKE":t.$emit("socket:map",{installationId:"no-installation-id",data:angular.fromJson(a.MSG)});break;case"SOUND":s(angular.fromJson(a));break;case"NOTIFICATION":h(a);break;case"REFRESH":var i=a.MSG;i.length&&(i=angular.fromJson(a.MSG)),t.$emit("socket:refresh",{installationId:e.INSTALLATION_ID,data:i});break;default:o.error("not recognized message from ws")}}},b=function(){m.send("ping_"),v()},v=function(){angular.isDefined(c)&&i.cancel(c),c=i(function(){u?(o.error("timeout on keep alive"),d&&m.connect().then(function(n){n.onclose()})):(u=!0,b())},4e3)};return d=p(),m}]),angular.module("shared").service("modalService",["$uibModal",function(n){var e={backdrop:!0,keyboard:!0,modalFade:!0,templateUrl:"app/shared/popup/confirmModal/confirmModal.tpl.html"},t={closeButtonText:"Close",actionButtonText:"OK",headerText:"Proceed?",bodyText:"Perform this action?"};this.showModal=function(n,e){return n||(n={}),n.backdrop="static",this.show(n,e)},this.show=function(o,a){var i={},l={};return angular.extend(i,e,o),angular.extend(l,t,a),i.controller||(i.controller=function(n,e){n.modalOptions=l,n.modalOptions.ok=function(n){e.close(n)},n.modalOptions.close=function(n){e.dismiss("cancel")}}),n.open(i).result}}]),angular.module("shared").service("LocalizationStringService",["$window",function(n){var e;return e=n.localizationStrings,{localizedStrings:e,localizedString:function(n){return e&&e[n]?e[n]:n}}}]),angular.module("shared").service("keepAlive",["$timeout","$http","BASE_PATH","$log",function(n,e,t,o){var a=function(){e.get(t.API_URL+"keepAlive").catch(o.error),n(a,6e4)};return a(),{}}]),angular.module("shared").service("DynamicColorService",function(){function n(n){var e="";return angular.isUndefined(n.counter)||null===n.counter?e:(e=n.counter>0?n.r_symbolconfiguration.WebColorWithRows:n.r_symbolconfiguration.WebColorNoRows,e.length&&(e="#"+e),e)}function e(n,e){var t=n.okColor;try{e=e.split("|")[0]}catch(n){e=void 0}if(angular.isUndefined(e))return n.okColor;switch(e){case"NOTIFICATION":t=n.notificationColor;break;case"WARNING":t=n.warningColor;break;case"PREALLARM":t=n.preallarmColor;break;case"ALLARM":t=n.allarmColor;break;case"PRIORITY":t=n.priorityColor;break;case"EMERGENCY":t=n.emergencyColor}return angular.isString(t)&&t.length&&(t="rgb("+t+")"),t}return{getColorForItem:function(t){return angular.isUndefined(t.r_symbolconfiguration.$type)?n(t):e(t.r_symbolconfiguration,t.r_state)},getColorForMap:e}}),angular.module("shared").service("CommandService",["BASE_PATH","$rootScope","$http","socketService","UserService","TIME_SLOT_KEY",function(n,e,t,o,a,i){function l(n,e,t){return t=t||"0",n+="",n.length>=e?n:new Array(e-n.length+1).join(t)+n}function r(n,e){var t=l(n.plantNumber,4)+n.cmdString;if(e.cmdArgs>0&&(t=l(n.plantNumber,4)+n.cmdString+l(n.argument,e.cmdArgs)),e.cmdString===i){ var o,a=l(e.time.getHours(),2),r=l(e.time.getMinutes(),2);switch(e.operation){case"BTS":o="0";break;case"ETS":o="1";break;case"DBTS":o="2";break;case"DETS":o="3";break;default:o="0"}t=l(n.plantNumber,4)+"/7"+l(e.timeSlot,2)+o+a+r}return t}var s=function(e,o,a){return t.get(n.API_URL+"plant/"+o+"/events/"+a).then(function(n){return n.data})},d=function(e,o,i,l,s){var d={PLANT_ID:e,MSG:r(o,i)};d.INSTALLATION_ID=l,d.SOURCE=a.getUserUsername();for(var c in s)d[c]=s[c];return t.post(n.API_URL+"cmd",d)},c=function(n,e){"185"===n.evntType?!0:"248"===n.evntType&&!1};return{getAvailableCommands:function(e,o){return t.get(n.API_URL+"/installation/"+e+"/plant/"+o+"/commandlist").then(function(n){return{availableCommands:n.data.map(function(n){return{cmdArgs:n.r_length,cmdString:n.r_protocol,description:n.r_description}})}})},getEvents:s,sendCommand:d,decodePlantStateMessage:c}}]),angular.module("shared").service("Company",["$resource","BASE_PATH","$http",function(n,e,t){var o=n(e.API_URL+"company/:companyId",{companyId:"@companyId"});return o.getEmployee=function(n){return t.get(e.API_URL+"company/"+n+"/employee").then(function(n){return n.data})},o}]),angular.module("shared").component("materialCheckboxList",{bindings:{level:"<",items:"=",idField:"<",textField:"<",modelField:"<",onUpdate:"&"},controller:["$log",function(n){var e=this;e.handler=function(n){e.onUpdate({item:n})},e.$onInit=function(){e.itemClass="label-"+e.level}}],templateUrl:"app/shared/materialCheckBoxList/materialCheckboxList.tpl.html"}),angular.module("shared").component("headerComponent",{templateUrl:"app/shared/header/headerComponent.tpl.html",controller:["$rootScope","userInfo","$log","$uibModal","$window",function(n,e,t,o,a){var i=this;i.showUserInfo=function(){o.open({animation:!0,ariaLabelledBy:"modal-title",ariaDescribedBy:"modal-body",templateUrl:"app/auth/userInfoDetail/userInfoPopup.html",controller:"UserInfoInstanceCtrl",resolve:{user:function(){return i.userInfo.userInfo}}})},i.logout=function(){delete localStorage.ba_t,a.location.href=e.logoutUrl},i.goToChangePwd=function(){a.location.href=e.changePwdUrl},i.$onInit=function(){i.userInfo=e}}]}),angular.module("shared").filter("mediaPath",["BASE_PATH",function(n){return function(e){return angular.isUndefined(e)||null===e?n.MEDIA_PATH+"image/":e}}]),angular.module("shared").filter("localizedString",["LocalizationStringService",function(n){return function(e){if(!n.localizedStrings)return e;var t=n.localizedStrings[e];return t||e}}]),angular.module("shared").filter("colorLighter",function(){return function(n,e){e=e||.5;var t=parseInt(n.slice(1),16),o=e<0?0:255,a=e<0?-1*e:e,i=t>>16,l=t>>8&255,r=255&t;return"#"+(16777216+65536*(Math.round((o-i)*a)+i)+256*(Math.round((o-l)*a)+l)+(Math.round((o-r)*a)+r)).toString(16).slice(1)}}),angular.module("shared").directive("ngFileSelect",function(){return{link:function(n,e){e.bind("change",function(e){n.file=(e.srcElement||e.target).files[0],n.getFile()})}}}),angular.module("shared").directive("ngFileSelect",function(){return{link:function(n,e){e.bind("change",function(e){n.file=(e.srcElement||e.target).files[0],n.getFile()})}}}),angular.module("shared").controller("askValueModalCtrl",["options","$uibModalInstance","$scope",function(n,e,t){t.options=n,t.data={},t.cancel=e.dismiss,t.ok=function(){e.close(t.data)}}]),angular.module("shared").component("treeSelection",{bindings:{installationId:"=",nodeSymbol:"<",onUpdate:"&",getChild:"&",idField:"<",displayField:"<",displayFieldWrapper:"<"},controller:["$log",function(n){var e=this;e.getDisplayName=function(n){var t=n;return e.displayFieldWrapper&&n[e.displayFieldWrapper]&&(t=n[e.displayFieldWrapper]),t[e.displayField]},e.selectNode=function(n){e.onUpdate({node:n})},e.$onInit=function(){e.nodeSymbol.collapsed=!0},e.passDownGetChild=function(n){return e.getChild({nodeId:n})},e.expandNodeChild=function(n){e.getChild({nodeId:n[e.idField]}).then(function(e){n.children=e,n.collapsed=!1})}}],templateUrl:"app/shared/TreeSelection/treeSelection.tpl.html"}),angular.module("scheduler").service("Events",["$http","BASE_PATH",function(n,e){var t={};return t.forceDataType=function(n){if(n.startsAt)try{n.startsAt=new Date(n.startsAt)}catch(n){}if(n.endsAt)try{n.endsAt=new Date(n.endsAt)}catch(n){}return n},t.saveEvents=function(o,a,i,l,r){return a=a.map(function(n){return{startsAt:n.startsAt,endsAt:n.endsAt,groupId:n.groupId,title:n.name}}),n.post(e.API_URL+"installation/"+o+"/schedulerConfig",{events:a,month:l,year:i,loadedMonths:r}).then(function(n){return n.data.map(t.forceDataType)})},t.getEventsForMonth=function(o,a,i){return n.get(e.API_URL+"installation/"+o+"/schedulerConfig/"+a+"/"+i).then(function(n){return n.data.map(t.forceDataType)})},t}]),angular.module("scheduler").service("PendingNotification",["$resource","$log","BASE_PATH",function(n,e,t){return n(t.API_URL+"installation/:installationId/pendingNotification/:id/:action",{installationId:"@installationId",id:"@id",action:"@action"},{takenOver:{method:"POST",params:{action:"takenOver"}}})}]),angular.module("scheduler").service("HistoryNotification",["$resource","BASE_PATH",function(n,e){return n(e.API_URL+"installation/:installationId/notificationHistory/:id",{installationId:"@installationId",id:"@id"})}]),angular.module("scheduler").component("pendingNotificationList",{templateUrl:"app/scheduler/pendingNotification/pendingNotificationList.tpl.html",bindings:{installationId:"=",pendingNotifications:"="},controller:["$uibModal","$log","PendingNotification","toastr",function(n,e,t,o){var a=this;a.refreshNotification=function(){return t.query({installationId:a.installationId}).$promise.then(function(n){return a.pendingNotifications=n,a.pendingNotifications})},a.$onInit=function(){},a.takeOver=function(t){e.debug(t),n.open({component:"takeOver",size:"lg",resolve:{notification:function(){return t},installationId:function(){return a.installationId}}}).result.then(function(n){e.info(n),t.notes=n,t.installationId=a.installationId,t.$save().then(function(){o.success("Notifica Correttamente presa in carico",""),a.refreshNotification()}).catch(function(n){e.error(n),o.error("Problema Imprevisto, riprova piu tardi","")})},function(n){e.info(n),e.info("Modal dismissed at: "+new Date)})}}]}),angular.module("scheduler").component("historyNotificationList",{templateUrl:"app/scheduler/historyNotification/historyNotification.tpl.html",bindings:{installationId:"=",notifications:"="},controller:["$uibModal","$log","HistoryNotification","toastr","PAGE_SIZE",function(n,e,t,o,a){var i=this;i.refreshNotification=function(){return t.query({installationId:i.installationId,limit:i.notifications.length,offset:0}).$promise.then(function(n){return i.notifications=n,i.notifications})},i.$onInit=function(){i.pageParams={installationId:i.installationId,limit:a,offset:0}},i.next=function(){return i.pageParams.offset+=a,t.query(i.pageParams).$promise.then(function(n){return angular.forEach(n,function(n){i.notifications.push(n)}),i.notifications})}}]}),angular.module("scheduler").component("calendarManagement",{bindings:{installationId:"=",groups:"=",currentDate:"=",initMonthEvents:"="},templateUrl:"app/scheduler/calendar/calendar.tpl.html",controller:["$log","$scope","Events","toastr","$uibModal",function(n,e,t,o,a){var i=function(n,e){if(n!==e){c.cellIsOpen=!1;var o=r(n);c.months.indexOf(o)<0&&(c.months.push(o),t.getEventsForMonth(c.installationId,n.getFullYear(),n.getMonth()+1).then(function(n){n.forEach(function(n){c.addEvent(n)})}))}},l=function(n,e){return n=moment(n),e=moment(e),n.diff(e,"days")>=0},r=function(n){n=moment(n)||moment();var e=n.month()+1;return e<10&&(e="0"+e),e+"_"+n.year()},s={label:"",cssClass:"edit-action color-gray",onClick:function(n){a.open({animation:e.animationsEnabled,ariaLabelledBy:"modal-title",ariaDescribedBy:"modal-body",templateUrl:"app/scheduler/calendar/copyPopup/copyPupUp.tpl.html",controller:"copyPopUpCtrl",controllerAs:"vm",resolve:{event:function(){return n.calendarEvent}}}).result.then(function(e){var t=angular.copy(n.calendarEvent);if("week"===e.copyOn)t.startsAt.setDate(t.startsAt.getDate()+7),t.endsAt.setDate(t.endsAt.getDate()+7),c.addEvent(t);else{var o=(new Date).getMonth(),a=(new Date).getFullYear();"month"===e.copyOn?(o=t.startsAt.getMonth()+1,t.startsAt.setMonth(o),t.endsAt.setMonth(o)):(o=e.day.getMonth(),a=e.day.getFullYear(),t.startsAt.setMonth(o),t.endsAt.setMonth(o),t.startsAt.setFullYear(a),t.endsAt.setFullYear(a),t.startsAt.setDate(e.day.getDate()),t.endsAt.setDate(e.day.getDate())),c.addEvent(t)}})}},d={label:"",cssClass:"remove-action color-gray",onClick:function(n){var e=c.events.indexOf(n.calendarEvent);c.events.splice(e,1)}},c=this;c.calendarView="day",c.viewDate=moment().startOf("month").toDate(),c.addEvent=function(n){n.actions=[],n.title=n.title||n.name,l(n.startsAt,c.currentDate)?(n.draggable=!0,n.resizable=!0,n.actions.push(s),n.actions.push(d)):(n.draggable=!1,n.resizable=!1);var e=c.groups.filter(function(e){return e.id===n.groupId})[0];e&&(n.color=e.color),n.endsAt&&(n.endsAt=new Date(n.endsAt.getTime()-1)),-1===c.months.indexOf(r(n.startsAt))&&c.months.push(r(n.startsAt)),c.events.push(n)},c.$onInit=function(){n.info(c),c.months=[],c.events=[],c.months.push(r(c.currentDate)),c.initMonthEvents.forEach(function(n){c.addEvent(n)}),c.calendarView="month",c.viewDate=moment(c.currentDate).startOf("month").toDate(),c.cellIsOpen=!1,e.$watch("$ctrl.viewDate",i)},c.save=function(){var e=c.events.map(function(n){var e={startsAt:n.startsAt,endsAt:n.endsAt,groupId:n.groupId,title:n.name};return e.endsAt=new Date(n.endsAt.getTime()+1),e});t.saveEvents(c.installationId,e,c.viewDate.getFullYear(),c.viewDate.getMonth()+1,c.months).then(function(n){c.months=[],c.events=[],c.months.push(r(c.viewDate)),n.forEach(function(n){c.addEvent(n)}),o.success("Salvataggio completato")}).catch(function(e){n.error(e),o.error("Problema imprevisto riprovare piu tardi")})},c.eventDropped=function(e,t,a){n.info(e,t);var i=["month","week"].includes(c.calendarView);if(l(t,c.currentDate)){if(c.groups.indexOf(e)>-1&&angular.isUndefined(e.calendarEventId)){"week"===c.calendarView&&1!==t.getDay()&&(t=new Date(t.getFullYear(),t.getMonth(),t.getDate()+1,t.getHours(),t.getMinutes(),t.getSeconds()));var r=angular.copy(e,{});r.startsAt=i?new Date(t.getFullYear(),t.getMonth(),t.getDate(),0,0,0,0):t,a=a||moment(t).add(30,"minutes").toDate(),r.endsAt=i?new Date(a.getFullYear(),a.getMonth(),a.getDate()+1,0,0,0,0):a,r.groupId=r.id,delete r.id,r.endsAt&&(r.endsAt=new Date(18e5*Math.round(r.endsAt.getTime()/18e5))),c.addEvent(r)}else e.startsAt=t,a&&(a=i?new Date(a.getFullYear(),a.getMonth(),a.getDate()+1,0,0,0,0):new Date(18e5*Math.round(a.getTime()/18e5)),a=new Date(a.getTime()-1),e.endsAt=a);n.warn(c.events),c.viewDate=t,c.cellIsOpen=!0}else o.warning("Impossibile posizionare nel passato")}}]}),angular.module("plants",["shared","customer","ui.router","permission","permission.ui","auth"]).config(["$stateProvider",function(n){n.state("plants",{url:"/plantsmanagement/:installationId",parent:"withHeader",controller:"PlantsManagementCtrl",templateUrl:"app/plants/plants/plantsManagement.tpl.html",resolve:{installationId:["$stateParams",function(n){return n.installationId}],sock:["$stateParams","socketService",function(n,e){return e.connect(n)}]},data:{permissions:{only:["BUTTON-INSTALLAZIONI-VISUALIZZA_IMPIANTI"],redirectTo:"installations"}}}).state("plant",{url:"/plantsmanagement/:installationId/plant/:plantId",parent:"withHeader",controller:"PlantConsoleCtrl",templateUrl:"app/plants/plantConsole/plantConsole.tpl.html",resolve:{plantId:["$stateParams",function(n){return n.plantId}],installationId:["$stateParams",function(n){return n.installationId}],sock:["$stateParams","socketService",function(n,e){return e.connect(n)}]},data:{permissions:{only:["BUTTON-IMPIANTI-MANUTENZIONE"],redirectTo:"installations"}}})}]),angular.module("plants").service("PlantService",["BASE_PATH","$http",function(n,e){return{plantListByInstallationId:function(t){return e.get(n.API_URL+"installation/"+t+"/plants").then(function(n){return n.data})},plantDetail:function(t){return e.get(n.API_URL+"plant/mac/"+t)}}}]),angular.module("plants").controller("PlantsManagementCtrl",["$uibModal","$log","$scope","modalService","installationId","socketService","$rootScope","$state","PermPermissionMap","PermAuthorization","PlantService","Installation","Company","BASE_PATH","UserService",function(n,e,t,o,a,i,l,r,s,d,c,u,p,m,g){t.installationId=a,t.managePlantPermissionMap=new s({only:"BUTTON-IMPIANTI-MANUTENZIONE"});var h=i.subscribe("Installation."+t.installationId);t.TEBE_SMALL_URL=m.TEBE_SMALL_URL;var f=l.$on("socket:com90",function(n,o){if(e.debug("controller Received Feedback"),o.MSG&&o.MSG.evntType&&o.MSG.idPlant){var a=o.MSG.idPlant;t.plantList.find(function(n){return n.MAC.toLowerCase()===a.toLowerCase()}).state=o.MSG.state}t.$apply()});t.getPlants=function(){c.plantListByInstallationId(t.installationId).then(function(n){t.plantList=n.result,t.token=n.tebesmallToken})},t.getInstallationInfo=function(){u.get({idInstallation:t.installationId}).$promise.then(function(n){return t.installationInfo=n[0],p.get({companyId:t.installationInfo.customerId}).$promise}).then(function(n){t.customerInfo=n.data})},t.managePlant=function(n,e){e&&e.stopPropagation(),d.authorizeByPermissionMap(t.managePlantPermissionMap).then(function(){r.go("plant",{plantId:n.MAC,installationId:t.installationId})}).catch(function(){})},t.getPlants(),t.getInstallationInfo(),t.viewCustomer=function(o){n.open({animation:t.animationsEnabled,ariaLabelledBy:"modal-title",ariaDescribedBy:"modal-body",templateUrl:"app/customer/viewCustomer/viewCustomer.tpl.html",controller:"ViewCustomerModalCtrl",resolve:{customerToView:function(){return o},type:function(){return"customer"}}}).result.then(function(n){e.info(n),t.getCustomers()},function(n){e.info(n),e.info("Modal dismissed at: "+new Date)})},t.plantUploaderOpen=function(o,a){a&&a.stopPropagation(),n.open({animation:t.animationsEnabled,ariaLabelledBy:"modal-title",ariaDescribedBy:"modal-body",templateUrl:"app/plants/plantUploaderOpen/plantUploaderOpen.tpl.html",controller:"PlantConfigUploadCtrl",resolve:{installationId:function(){return t.installationId}}}).result.then(function(n){e.info(n),t.getInstallations()},function(n){e.info(n),e.info("Modal dismissed at: "+new Date)})},t.editPlant=function(o,a){var i=n.open({animation:t.animationsEnabled,ariaLabelledBy:"modal-title",ariaDescribedBy:"modal-body",templateUrl:"app/plants/editPlant/editPlant.tpl.html",controller:"EditPlantModalCtrl",resolve:{plantToEdit:function(){return o},installationId:function(){return t.installationId}}});a&&a.stopPropagation(),i.result.then(function(n){e.info(n),t.getPlants()},function(n){e.info(n),e.info("Modal dismissed at: "+new Date)})},t.$on("$destroy",function(){i.unsubscribe(h),f()})}]),angular.module("plants").controller("PlantConfigUploadCtrl",["$log","BASE_PATH","FileUploader","$uibModalInstance","$scope","installationId",function(n,e,t,o,a,i){void 0===i&&(o.dismiss("cancel"),n.error("error in map uploader instance - no installationid")),a.ok=function(){o.dismiss("cancel")},a.cancel=function(){o.dismiss("cancel")};var l=a.uploader=new t({queueLimit:1,url:e.API_URL+"installation/"+i+"/plantconfig",headers:{"x-access-token":localStorage.ba_t}});l.filters.push({name:"syncFilter",fn:function(n,e){return this.queue.length<10}}),l.filters.push({name:"asyncFilter",fn:function(n,e,t){setTimeout(t.resolve,1e3)}}),l.onWhenAddingFileFailed=function(n,e,t){console.info("onWhenAddingFileFailed",n,e,t)},l.onAfterAddingFile=function(n){console.info("onAfterAddingFile",n)},l.onAfterAddingAll=function(n){console.info("onAfterAddingAll",n)},l.onBeforeUploadItem=function(n){console.info("onBeforeUploadItem",n)},l.onProgressItem=function(n,e){console.info("onProgressItem",n,e)},l.onProgressAll=function(n){console.info("onProgressAll",n)},l.onSuccessItem=function(n,e,t,o){console.info("onSuccessItem",n,e,t,o)},l.onErrorItem=function(n,e,t,o){console.info("onErrorItem",n,e,t,o)},l.onCancelItem=function(n,e,t,o){console.info("onCancelItem",n,e,t,o)},l.onCompleteItem=function(n,e,t,o){console.info("onCompleteItem",n,e,t,o)},l.onCompleteAll=function(){console.info("onCompleteAll")}}]),angular.module("plants").controller("PlantConsoleCtrl",["sock","CommandService","$uibModal","$document","$log","$scope","socketService","$rootScope","plantId","installationId","PlantService","Company","$timeout","UserService",function(n,e,t,o,a,i,l,r,s,d,c,u,p,m){"use strict";function g(n,e){return!(!n||!e)&&(n=n.toLowerCase(),e.reduce(function(e,t){return e||n.includes(t.trim().toLowerCase())},!1))}function h(n){"185"===n.evntType?i.plantInfo.isConnected=!0:"248"===n.evntType&&(i.plantInfo.isConnected=!1)}i.plantId=s,i.msg={},i.installationId=d,i.eventList=[],i.followEvent=!1,i.selectPlant=function(n){i.selectedPlant=n,i.msg.plantId=n.plantId};var f=m.getGroupSettingsByInstallationId(i.installationId).history_exclude_filter;f&&(f=f.toLowerCase().split(/[,]/).map(function(n){return n.trim()})),i.goDown=function(){var n="messagesBox",e=o[0].getElementById(n);$("#"+n).animate({scrollTop:e.scrollHeight-e.clientHeight},500)},i.followChanged=function(){i.followEvent&&i.goDown()},c.plantDetail(i.plantId).then(function(n){return i.plantInfo=n.data,i.selectPlant(i.plantInfo),u.get({companyId:i.plantInfo.customerId}).$promise}).then(function(n){return i.customerInfo=n.data,i.getEvents(),e.getAvailableCommands(i.plantInfo.installationId,i.plantInfo.plantId)}).then(function(n){i.cmds=n}),i.parseMessage=function(n,e){if(n.PLANT_ID.toUpperCase()===i.selectedPlant.MAC.toUpperCase()){var t=n.MSG;if(angular.isString(t))try{t=angular.fromJson(t)}catch(n){a.error(n)}}e&&(t.plant=t.Plant,t.progressive=t.Progressive,t.dateTime=t.Datetime,t.eventDesc=t.Message,t.eventInfo=t.Info),t.timings=i.calculateTimingsFromMsg(n),t.history=e,h(t),m.eventCodeShouldBeHidden(t.evntType,i.installationId)||f&&(!f||g(t.eventDesc||"",f)||g(t.eventInfo||"",f))||i.eventList.push(t)},i.getEvents=function(){i.eventList=[],e.getEvents(i.plantInfo.installationId,i.plantId,m.getGroupIdByInstallationId(i.plantInfo.installationId)).then(function(n){angular.forEach(n,function(n){try{i.parseMessage(n.value,!0)}catch(n){a.error(n)}}),i.subscribedTopic=l.subscribe("Installation."+i.plantInfo.installationId+".Plant."+i.plantId),p(function(){i.followChanged()})})},i.animationsEnabled=!0,i.open=function(n){t.open({animation:i.animationsEnabled,ariaLabelledBy:"modal-title",ariaDescribedBy:"modal-body",templateUrl:"app/plants/commandPopup/commandPopup.tpl.html",controller:"CommandPopupCtrl",size:n,resolve:{plantAddress:function(){return i.selectedPlant.MAC},plant:function(){return i.selectedPlant},sendMsgFn:function(){return i.sendMsg},command:function(){return i.cmds.selectedCommand}}}).result.then(function(n){},function(){a.info("Modal dismissed at: "+new Date)})},i.commandChanged=function(){var n=i.cmds.selectedCommand.cmdString;i.open(),i.msg.cmdString=n},i.search1="",i.calculateTimingsFromMsg=function(n){var e={total_time:null,history:n.TIMESTAMPHISTORY},t=moment(n.TIMESTAMPHISTORY[0].TIMESTAMP+"+0000",["YYYYMMDD HH:mm:ss.SSSZ","x"]);t.utcOffset(2);var o=moment(n.TIMESTAMPHISTORY[n.TIMESTAMPHISTORY.length-1].TIMESTAMP,["YYYYMMDD HH:mm:ss.SSS","x"]);return e.total_time=o-t,e},i.selectCallback=function(n){i.search1=n.item.id,i.selectedPlant=n.item,i.validatePlant=!0,i.$apply()};var b=r.$on("socket:com90",function(n,e){try{i.parseMessage(e)}catch(n){a.error(n)}i.$apply(),p(function(){i.followChanged()})});i.sendMsg=function(n,t,o){return e.sendCommand(n,t,o,i.plantInfo.installationId,{PLANT_DESCRIPTION:i.plantInfo.description})},i.$on("$destroy",function(){b(),l.unsubscribe(i.subscribedTopic)})}]),angular.module("plants").controller("EditPlantModalCtrl",["$q","$uibModal","$log","modalService","$http","BASE_PATH","$uibModalInstance","plantToEdit","installationId","$scope",function(n,e,t,o,a,i,l,r,s,d){r?(d.plantMaster=r,d.plant=angular.copy(d.plantMaster)):(d.isNew=!0,d.plant={isNew:!0,typeId:2}),d.installationId=s;var c=a.get(i.API_URL+"installation/"+s+"/partitions"),u=a.get(i.API_URL+"plant/types");n.all([c,u]).then(function(n){d.partitions=n[0].data,d.types=n[1].data,t.info(d.partitions),angular.isUndefined(d.plant.partitionId)&&(d.partitions.length?d.plant.partitionId=d.partitions[0].idpartition:(t.error("partition not defined"),d.errorMsg="Partizione Predefinita non esistente.")),t.info(d.plant)}),d.typeChanged=function(n){d.plant.typeId=n},d.partitionChanged=function(n){d.plant.partitionId=d.selectedPartId},d.deletePlant=function(){var n={closeButtonText:"Annulla",actionButtonText:"Sì",headerText:"Eliminare ?",bodyText:"Sicuro di volere eliminare questa centrale?"};e.open({animation:d.animationsEnabled,ariaLabelledBy:"modal-title",ariaDescribedBy:"modal-body",templateUrl:"app/shared/popup/confirmModal/confirmModal.tpl.html",controller:"ConfirmModalInstanceCtrl",resolve:{message:function(){return n}}}).result.then(function(){a.delete(i.API_URL+"plant/"+d.plant.MAC).then(function(n){l.close(d.plant)},function(n){d.errorMessage=n.data.error})},function(n){})},d.ok=function(){t.info("saving",d.plant),d.isNew?a.post(i.API_URL+"plant",d.plant).then(function(){l.close(d.plant)},function(n){d.errorMessage=n.data.error}):a.post(i.API_URL+"plant/"+d.plant.MAC,d.plant).then(function(){l.close(d.plant)},function(n){d.errorMessage=n.data.error})},d.cancel=function(){l.dismiss("cancel")},d.animationsEnabled=!0}]),angular.module("plants").controller("CommandPopupCtrl",["$uibModalInstance","command","plantAddress","plant","sendMsgFn","$scope",function(n,e,t,o,a,i){if(i.command=e,i.command.isTimeSlot="time-slot"===e.cmdString,i.slots=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31],i.command.isTimeSlot){i.command.timeSlot=i.slots[0];var l=new Date;l.setHours(0,0,0,0),i.command.time=l}i.resetTime=function(){var n=new Date;n.setHours(0,0,0,0),i.command.time=n},i.plantAddress=t,i.plant=o,i.msg={cmdString:i.command.cmdString,plantNumber:""+function(n,e,t){return t=t||"0",n+="",n.length>=e?n:new Array(e-n.length+1).join(t)+n}(parseInt(o.plantId,10),4)},i.selected={item:i.command[0]},i.ok=function(){i.sendingMsg=!0,i.errorMsg=null,a(t,i.msg,i.command).then(function(){n.close(i.msg)},function(n){i.sendingMsg=!1,i.errorMsg=n.data})},i.cancel=function(){n.dismiss("cancel")}}]),angular.module("maps").controller("standAloneMapCtrl",["$scope","socketService","installationId","mapId","symbolId",function(n,e,t,o,a){n.installationId=t,n.mapId=o,n.symbolId=a}]),angular.module("maps").service("MapService",["BASE_PATH","UserService","$q","$interval","$http",function(n,e,t,o,a){var i=function(e,t){return a.get(n.API_URL+"installation/"+e+"/maps/tree/"+t).then(function(n){return n.data})},l=function(n){return angular.isDefined(n.r_symbolconfiguration.backGroundFileId)},r=function(n){return-1!==n.r_symbolconfiguration.$type.indexOf("Antintrusion")||-1!==n.r_symbolconfiguration.$type.indexOf("Library.NodeSymbol")},s=function(e,t){return a.get(n.API_URL+"installation/"+e+"/maps/node/"+t).then(function(n){return n.data[0]})};return{map:{getNodeSymbols:function(n,e){var t={name:"",children:[],parent:null,r_command:null,r_idplant:null,r_idsymbol:e,r_state:"ERROR",r_symbolconfiguration:void 0};return s(n,e).then(function(o){return t.r_symbolconfiguration=o.r_nodeconfiguration,t.r_state=o.r_state,t.name=t.r_symbolconfiguration.description,i(n,e)}).then(function(n){return t.children=n.filter(function(n){return!0===n.r_symbolconfiguration.visible}),t})},getChildren:i,getChildrenOfTypeMaps:function(n,e){return i(n,e).then(function(n){return n.filter(function(n){return l(n)})})},getNodeInfo:s},getTreeVisibility:r}}]),angular.module("maps").controller("MapPropertyPopupCtrl",["symbol","properties","$uibModalInstance","$scope",function(n,e,t,o){o.symbol=n,o.properties=e,o.ok=function(){t.dismiss()}}]),angular.module("maps").controller("MapUploaderInstanceCtrl",["$log","BASE_PATH","FileUploader","$uibModalInstance","$scope","installation",function(n,e,t,o,a,i){var l=i.installationId;angular.isUndefined(l)&&(o.dismiss("cancel"),n.error("error in map uploader instance - no installationid")),a.ok=function(){o.close()},a.cancel=function(){o.dismiss("cancel")};var r=a.uploader=new t({queueLimit:1,url:e.API_URL+"installation/"+l+"/mapconfig",headers:{"x-access-token":localStorage.ba_t}});r.filters.push({name:"syncFilter",fn:function(n,e){return console.log("syncFilter"),this.queue.length<10}}),r.filters.push({name:"asyncFilter",fn:function(n,e,t){console.log("asyncFilter"),setTimeout(t.resolve,1e3)}}),r.onWhenAddingFileFailed=function(n,e,t){console.info("onWhenAddingFileFailed",n,e,t)},r.onAfterAddingFile=function(n){console.info("onAfterAddingFile",n)},r.onAfterAddingAll=function(n){console.info("onAfterAddingAll",n)},r.onBeforeUploadItem=function(n){console.info("onBeforeUploadItem",n)},r.onProgressItem=function(n,e){console.info("onProgressItem",n,e)},r.onProgressAll=function(n){console.info("onProgressAll",n)},r.onSuccessItem=function(n,e,t,o){console.info("onSuccessItem",n,e,t,o)},r.onErrorItem=function(n,e,t,o){console.info("onErrorItem",n,e,t,o)},r.onCancelItem=function(n,e,t,o){console.info("onCancelItem",n,e,t,o)},r.onCompleteItem=function(n,e,t,o){console.info("onCompleteItem",n,e,t,o)},r.onCompleteAll=function(){console.info("onCompleteAll")}}]),angular.module("maps").controller("MapsCtrl",["$q","MapService","$rootScope","$log","$scope","socketService","ViewPluginService","DynamicColorService","UserService","installationId","mapId","showNavigator",function(n,e,t,o,a,i,l,r,s,d,c,u){function p(n,e){return n.map(function(n){var t=n;return t.name=n.r_symbolconfiguration.description,t.parent=e,t.children=[],a.treeNodesMap[n.r_idsymbol]=t,t})}a.breadcrumbsPath=[],a.treeNodesMap={},a.expandedNodes=[],a.showNavigator=u,a.getTreeNodeVisibility=function(n){return e.getTreeVisibility(n)},a.calculateColor=r.getColorForMap,a.expandNodeEvent=function(n,t){o.info(n,t),!0===t&&0===n.children.length&&(n.children=[{name:"loading"}],e.map.getChildren(a.installationId,n.r_idsymbol).then(function(e){n.children=p(e,n)}))},a.expandNode=function(n){var e=[];if(a.expandedNodes.forEach(function(t,o){t.r_idsymbol===n.r_idsymbol&&e.push(o)}),0!==e.length)for(var t=0;t-1&&(t["font-weight"]="bold"),l.indexOf("Italic")>-1&&(t["font-style"]="italic"),e&&(t.color=e,t.fill=e),t},GEMSS.Symbol.prototype.getImage=function(){return this.imageBasePathURI+this.okFileId},GEMSS.Symbol.prototype.getImage=function(){var n=this.okFileId;if(void 0!==this.status&&null!==this.status){var e=this.status.split("|")[0],t=this.status.split("|")[1];switch(e){case"NOTIFICATION":n=this.notificationFileId;break;case"WARNING":n=this.warningFileId;break;case"PREALLARM":n=this.preallarmFileId;break;case"ALLARM":n=this.allarmFileId;break;case"PRIORITY":n=this.priorityFileId;break;case"EMERGENCY":n=this.emergencyFileId}switch(t){case"PERSISTENCE":this.blink=!0;break;default:this.blink=!1}}return n&&(n=this.imageBasePathURI+n),n},GEMSS.Symbol.prototype.isPopup=function(){return void 0!==this.popUpStyle&&!0===this.popUpStyle},GEMSS.Symbol.prototype.setVisibility=function(n){!0===n?(this.symbolGroup.attr("display",""),this.symbolGroup.hide=n):!1===n&&(this.symbolGroup.attr("display","none"),this.symbolGroup.hide=n)},GEMSS.Symbol.prototype.onClickEvent=function(){this.isPopup()?this.mapControl.openPopupMap(this.guidLink,parseInt(this.width,10),parseInt(this.height,10),this):this.mapControl.navigateMap(this)},GEMSS.Symbol.prototype.setClickEvent=function(){var n=this;void 0!==this.guidLink&&null!=this.guidLink?(this.symbolGroup.attr("cursor","pointer"),this.symbolGroup.click(function(){n.onClickEvent()})):void 0!==this.coordinate&&(this.symbolGroup.click(function(){}),this.setContextMenu())},GEMSS.Symbol.prototype.setHoverEvent=function(){if(void 0!==(this.label||this.description)){var n=Snap.parse(""+(this.label||this.description)+"");this.symbolGroup.append(n)}},GEMSS.Symbol.prototype.setCommandPopupHandler=function(){var n=this;$([this.symbolGroup.node]).click(function(){n.mapControl.getCommand(n.command,function(e){n.mapControl.openCommandPopup(n,e).result.then(function(e){"GEMSS_NOTE_LIST"===e.r_protocol||"GEMSS_PROPERTY_LIST"===e.r_protocol||"CHART"===e.r_protocol?"GEMSS_PROPERTY_LIST"===e.r_protocol?n.mapControl.sendPropertyListCommand(n.gemssNodeInstance,n.command):"CHART"===e.r_protocol?n.mapControl.openChartModal(n.gemssNodeInstance):n.mapControl.sendNoteListCommand(n.gemssNodeInstance,n.command):n.mapControl.sendCommand(n.gemssNodeInstance,e)},function(){})})})},GEMSS.Symbol.prototype.setContextMenu=function(){var n=this;this.menuVisible&&(this.symbolGroup.attr("cursor","pointer"),this.symbolGroup.click(function(){}),checkMobile()?n.defaultCommand?$([n.symbolGroup.node]).click(function(){n.mapControl.sendDefaultCommand(n)}):n.setCommandPopupHandler():(this.defaultCommand&&$([n.symbolGroup.node]).click(function(){n.mapControl.sendDefaultCommand(n)}),$([n.symbolGroup.node]).contextMenu({menu:"menuRect",onShow:function(){var e=$("#menuRect");n.select(),e.empty();var t='
  • Caricamento Comandi
  • ';e.append(t);try{n.mapControl.getCommand(n.command,function(o){e.empty();for(var a in o)t='
  • '+o[a].r_description+"
  • ",e.append(t);t='
  • Proprietà
  • ',e.append(t),n.graph&&(t='
  • Storico
  • ',e.append(t)),n instanceof ModBusSymbol||(t='
  • Note Operative
  • ',e.append(t)),e.find("A").mouseover(function(){e.find("LI.hover").removeClass("hover"),$(this).parent().addClass("hover")}).mouseout(function(){e.find("LI.hover").removeClass("hover")}),e.find("A").unbind("click"),e.find("LI:not(.disabled) A").click(function(e){e.preventDefault(),e.stopPropagation();var t=$(this).attr("checked");switch($(this).attr("type")){case"radio":$(this).parent().parent().find(".checked").removeClass("checked").end().find('a[checked="checked"]').removeAttr("checked");break;case"checkbox":$(this).attr("checked")||t?($(this).removeAttr("checked"),$(this).parent().removeClass("checked")):($(this).attr("checked","checked"),$(this).parent().addClass("checked"));break;default:$(document).unbind("click").unbind("keypress")}$(".contextMenu").hide();var a=$(this).attr("commandIndex");"GEMSS_NOTE_LIST"===a||"GEMSS_PROPERTY_LIST"===a||"CHART"===a?("GEMSS_PROPERTY_LIST"===a&&n.mapControl.sendPropertyListCommand(n.gemssNodeInstance,n.command),"GEMSS_NOTE_LIST"===a&&n.mapControl.sendNoteListCommand(n.gemssNodeInstance,n.command),"CHART"===a&&n.mapControl.openChartModal(n.gemssNodeInstance)):o[a].r_protocol.toLowerCase().indexOf("x")>=0?n.mapControl.askForValue({title:"Inserire valore per comando "+o[a].r_description,label:"valore"}).result.then(function(e){o[a]=angular.copy(o[a],{},!0),o[a].r_protocol=o[a].r_protocol.replace("x",e.value.toString()),n.mapControl.sendCommand(n.gemssNodeInstance,o[a])}):n.mapControl.sendCommand(n.gemssNodeInstance,o[a]),n.deSelect()})})}catch(n){t='
  • Errore
  • ',e.empty(),e.append(t)}},onSelect:function(){},fadeOut:function(){n.highLighted=!1,n.draw()}})))},GEMSS.Symbol.prototype.drawHighLightRect=function(){this.highLightRectangleElement=this.wrapperGroup.rect(this.originalRectangle.X,this.originalRectangle.Y,this.originalRectangle.Width,this.originalRectangle.Height),this.highLightRectangleElement.attr({stroke:"blue","stroke-width":"0",fill:"none"})},GEMSS.Symbol.prototype.drawInit=function(){this.wrapperGroup||(this.wrapperGroup=this.symbolGroup.g());var n=this.getImage();n&&(this.symbolIconElement=this.wrapperGroup.image(n,this.originalRectangle.X,this.originalRectangle.Y,this.originalRectangle.Width,this.originalRectangle.Height)),this.drawHighLightRect(),this.drawHighLighted(),this.drawLabel(this.originalRectangle),this.setClickEvent(),this.setHoverEvent()},GEMSS.Symbol.prototype.drawUpdate=function(){this.symbolIconElement&&this.getImage()&&this.symbolIconElement.attr({href:this.getImage()}),this.drawHighLighted()},GEMSS.Symbol.prototype.drawBlink=function(){this.symbolIconElement&&(!0===this.blink?this.symbolIconElement.addClass("svg-blink"):(this.symbolIconElement.removeClass("svg-blink"),this.symbolIconElement.attr({opacity:1})))},GEMSS.Symbol.prototype.drawText=function(n,e,t,o,a,i,l){o=o||"",o.toString(),a=a||{},i=i||0,l=l||0;var r=n.text(e+i,t+l,o);return r.attr(a),r},GEMSS.Symbol.prototype.applyRotation=function(n){if(n=n||this.wrapperGroup,this.rotationAngle){var e=n.getBBox();n.animate({transform:"r"+this.rotationAngle+","+e.cx+","+e.cy},0)}},GEMSS.Symbol.prototype.draw=function(){this.symbolIconElement||this.drawn?this.drawUpdate():this.drawInit(),this.drawBlink(),this.applyRotation()},GEMSS.Symbol.prototype.select=function(){this.mapControl.onSelectSymbol(this),this.highLighted=!0,this.draw()},GEMSS.Symbol.prototype.deSelect=function(){this.mapControl.deSelectSymbol(this),this.highLighted=!1,this.draw()},GEMSS.Symbol.prototype.notifySelectionOnMap=function(){this.deSelect()},GEMSS.Symbol.prototype.drawHighLighted=function(){this.highLighted?this.highLightRectangleElement.attr({stroke:"blue","stroke-width":"3",fill:"none"}):this.highLightRectangleElement.attr({stroke:"blue","stroke-width":"0",fill:"none"})},GEMSS.Symbol.prototype.drawLabel=function(n){if(void 0!==this.label){var e=this,t=this.buildTextOptions(this.labelFont,this.labelForeColor);t["text-anchor"]="middle";var o=0,a=parseInt(n.Y,10)+parseInt(n.Height,10)+10;switch(this.labelPosition){case"Inside":a=parseInt(n.Y,10)+parseInt(n.Height,10)/2,e.labelAlwaysVisible=!0;break;case"Below":default:a=parseInt(n.Y,10)+parseInt(n.Height,10)+10,o=Number(t["font-size"].replace("pt",""))}var i=parseInt(n.X,10)+parseInt(n.Width,10)/2;this.labelElement=this.drawText(this.wrapperGroup,i,a,this.label,t,0,o),this.isLabelAlwaysVisible()||this.labelElement.attr("display","none"),this.labelElement.hide=!0}},GEMSS.Symbol.prototype.isLabelAlwaysVisible=function(){return this.labelAlwaysVisible},GEMSS.Symbol.prototype.toggleLabel=function(){if(this.isLabelAlwaysVisible())return void this.labelElement.attr("display","");this.labelElement&&!0!==this.labelElement.hide?(this.labelElement.attr("display","none"),this.labelElement.hide=!0):void 0!==this.labelElement&&(this.labelElement.attr("display",""),this.labelElement.hide=!1)},GEMSS.Symbol.prototype.hydrate=function(n){for(var e in n)this[e]=n[e]},IconSymbol.prototype=new GEMSS.Symbol,IconSymbol.prototype.constructor=IconSymbol,LabelSymbol.prototype=new IconSymbol,LabelSymbol.prototype.constructor=LabelSymbol,LabelSymbol.prototype.uber=IconSymbol.prototype,LabelSymbol.prototype.toggleLabel=function(){},LabelSymbol.prototype.draw=function(){this.wrapperGroup||(this.wrapperGroup=this.symbolGroup.g()),this.nestedSvg=this.wrapperGroup.svg(this.originalRectangle.X,this.originalRectangle.Y,this.originalRectangle.Width,this.originalRectangle.Height);var n=this.getImage();n&&(this.symbolIconElement=this.nestedSvg.image(n,this.originalRectangle.X,this.originalRectangle.Y,this.originalRectangle.Width,this.originalRectangle.Height)),this.nestedSvg.rect(0,0,this.originalRectangle.Width,this.originalRectangle.Height).attr({"fill-opacity":0});var e=this.buildTextOptions(this.labelFont,this.labelForeColor);e.dy=".3em";var t=this.computeValueTextPosition(this.wrapperGroup,this.label,e,this.alignment,!0);this.text=this.nestedSvg.text(t.x,"50%",this.label),this.text.attr(e),this.applyRotation()},LinkSymbol.prototype=new IconSymbol,LinkSymbol.prototype.isSymbol=!0,LinkSymbol.prototype.constructor=LinkSymbol,LinkSymbol.prototype.uber=IconSymbol.prototype,LinkSymbol.prototype.getImage=function(){var n=this.okFileId;if(void 0!==this.status){var e=this.status.split("|")[0],t=this.status.split("|")[1];switch(e){case"NOTIFICATION":n=this.notificationFileId;break;case"WARNING":n=this.warningFileId;break;case"PREALLARM":n=this.preallarmFileId;break;case"ALLARM":n=this.allarmFileId;break;case"PRIORITY":n=this.priorityFileId;break;case"EMERGENCY":n=this.emergencyFileId}switch(t){case"PERSISTENCE":this.blink=!0;break;default:this.blink=!1}}return n&&(n=this.imageBasePathURI+n),n},LinkSymbol.prototype.draw=function(){if(this.uber.draw.call(this,this.LinkSymbolElement),this.wrapperGroup||(this.wrapperGroup=this.symbolGroup.g()),!this.LinkSymbolElement){var n=parseInt(this.originalRectangle.Y,10)+parseInt(this.originalRectangle.Height,10)/2,e=parseInt(this.originalRectangle.X,10)+parseInt(this.originalRectangle.Width,10)/2;this.LinkSymbolElement=this.wrapperGroup.text(e,n,this.label).attr({"text-anchor":"middle"})}},LinkSymbol.prototype.onClickEvent=function(){this.mapControl.navigateToGuid(this)},LinkSymbol.prototype.setClickEvent=function(){var n=this;this.symbolGroup.attr("cursor","pointer"),this.symbolGroup.click(function(){n.onClickEvent()})},MultiSelectionVisibleSymbol.prototype=new IconSymbol,MultiSelectionVisibleSymbol.prototype.constructor=MultiSelectionVisibleSymbol,MultiSelectionVisibleSymbol.prototype.uber=IconSymbol.prototype,MultiSelectionVisibleSymbol.prototype.getImage=function(){return this.imageBasePathURI+this.iconFileId},MultiSelectionVisibleSymbol.prototype.draw=function(){this.uber.draw.call(this,this.MultiSelectionVisibleSymbolElement)},MultiSelectionVisibleSymbol.prototype.onClickEvent=function(){this.mapControl.setNodesVisibility(this.symbolsVisible.$values,this.symbolsNotVisible.$values)},MultiSelectionVisibleSymbol.prototype.setClickEvent=function(){var n=this;this.symbolGroup.attr("cursor","pointer"),this.symbolGroup.click(function(){n.onClickEvent()})},LayerSymbol.prototype=new IconSymbol,LayerSymbol.prototype.constructor=LayerSymbol,LayerSymbol.prototype.uber=IconSymbol.prototype,LayerSymbol.prototype.getImage=function(){return null},LayerSymbol.prototype.draw=function(){var n=this;this.nestedSvg=this.paper.svg(this.originalRectangle.X,this.originalRectangle.Y,this.originalRectangle.Width,this.originalRectangle.Height),this.nestedSvg.attr({preserveAspectRatio:"none"}),this.backGroundGroup=this.nestedSvg.g(),this.nestedSvg.attr({viewBox:"0 0 1600 1000"}),this.mapControl.getNodeData(this.guidLink,this).then(function(e){n.nestedBackGroundImage=n.backGroundGroup.image(n.imageBasePathURI+e.r_symbolconfiguration.backGroundFileId)}),this.uber.draw.call(this,this.LayerSymbolElement),this.wrapperGroup||(this.wrapperGroup=this.symbolGroup.g());var e=parseInt(this.originalRectangle.Y,10)+parseInt(this.originalRectangle.Height,10)/2,t=parseInt(this.originalRectangle.X,10)+parseInt(this.originalRectangle.Width,10)/2;this.LayerSymbolElement=this.wrapperGroup.text(t,e,this.label).attr({"text-anchor":"middle"})},LayerSymbol.prototype.setClickEvent=function(){},AntintrusionSymbol.prototype=new IconSymbol,AntintrusionSymbol.prototype.constructor=AntintrusionSymbol,AntintrusionSymbol.prototype.uber=IconSymbol.prototype,AntintrusionSymbol.prototype.getImage=function(){var n=this.imageBasePathURI+this._InOrderFileId;if(void 0===this.status)return this.imageBasePathURI+this._InOrderFileId;var e=this.status.split("|")[0],t=this.status.split("|")[1];switch(e){case"ALLARME":n="WARNING"===t?this.imageBasePathURI+this._WarningFileId:this.imageBasePathURI+this._EmergencyFileId;break;case"MANOMISSIONE":n=this.imageBasePathURI+this._ManomissionFileId;break;case"GUASTO":n=this.imageBasePathURI+this._FailureFileId;break;case"WARNING":n=this.imageBasePathURI+this._WarningFileId;break;case"FUORISERVIZIO":"SI"===t&&(n=this.imageBasePathURI+this._OutOfOrderFileId)}switch(t){case"INCORSO":case"INCORSONONMEMORIZZATO":this.blink=!0;break;case"MEMORIZZATO":this.blink=!1}return n},AntintrusionSymbol.prototype.draw=function(){this.uber.draw.call(this)},AntintrusionSymbol.prototype.setClickEvent=function(){this.setContextMenu()},ModBusSymbol.prototype=new AntintrusionSymbol,ModBusSymbol.prototype.constructor=ModBusSymbol,ModBusSymbol.prototype.uber=IconSymbol.prototype,ModBusSymbol.prototype.draw=function(){this.uber.draw.call(this)},ModBusSymbol.prototype.getImage=function(){return this.imageShapeId?this.imageBasePathURI+this.imageShapeId:null},ModBusSymbol.prototype.drawBorder=function(){var n,e;switch(this.borderStyle){case"None":break;case"FixedSingle":n="#d3d3d3",e=1;break;default:n="grey",e=1}n&&(this.borderRect=this.wrapperGroup.rect(this.originalRectangle.X+this.internalBorderGutter,this.originalRectangle.Y+this.internalBorderGutter,this.originalRectangle.Width-this.internalBorderGutter,this.originalRectangle.Height-this.internalBorderGutter),this.borderRect.attr({stroke:n,"stroke-width":e,fill:"none"}))},MODBUSSymbolValueStatic.prototype=new ModBusSymbol,MODBUSSymbolValueStatic.prototype.constructor=MODBUSSymbolValue,MODBUSSymbolValueStatic.prototype.drawInit=function(){this.drawn=!0,this.wrapperGroup||(this.wrapperGroup=this.symbolGroup.g());var n,e,t=this.getImage(),o=void 0===this.status?"":this.status;o=null===o?"":o,o=o+" "+this.unit;var a=this.buildTextOptions(this.font);this.showValue?(n=this.computeValueTextPosition(this.wrapperGroup,o,a),this.textValue=this.drawText(this.wrapperGroup,n.x,n.y,o,a,this.textXGutter,this.textYGutter),e=this.textValue.getBBox()):e={height:0},t&&this.drawImg(t,e),this.drawHighLightRect(),this.drawBorder(),this.drawHighLighted(),this.drawLabel(this.originalRectangle),this.setClickEvent(),this.setHoverEvent()},MODBUSSymbolValueStatic.prototype.drawImg=function(n,e){this.symbolIconElement=this.wrapperGroup.image(n,this.originalRectangle.X,this.originalRectangle.Y,this.originalRectangle.Width,this.originalRectangle.Height-e.height)},MODBUSSymbolValueStatic.prototype.drawUpdate=function(){var n=this.getImage(),e=void 0===this.status?"":this.status;e=null===e?"":e,e=e+" "+this.unit;var t=this.buildTextOptions(this.font);if(this.showValue&&this.textValue){var o=this.computeValueTextPosition(this.wrapperGroup,e,t),a=this.textValue;this.textValue=this.drawText(this.wrapperGroup,o.x,o.y,e,t,this.textXGutter,4),setTimeout(function(){a.remove()})}n&&this.symbolIconElement&&this.symbolIconElement.attr({href:this.getImage()}),this.drawHighLighted()},MODBUSSymbolValueStatic.prototype.getImage=function(){return this.staticImageId?this.imageBasePathURI+this.staticImageId:null},MODBUSSymbolValue.prototype=new MODBUSSymbolValueStatic,MODBUSSymbolValue.prototype.constructor=MODBUSSymbolValue,MODBUSSymbolValue.prototype.preDrawUpdate=MODBUSSymbolValueStatic.prototype.drawUpdate,MODBUSSymbolValue.prototype.drawUpdate=function(){if(this.preDrawUpdate(),this.imgBg){var n=$.extend(!0,{},this.originalRectangle),e=this.textValue?this.textValue.getBBox():{height:0};n.Height=n.Height-e.height,n.Height=n.Height-this.drawOption.marginTop-this.drawOption.marginBottom,n.Y=n.Y+this.drawOption.marginTop;var t=Number(this.status);this.status>this.max&&(t=this.max);var o=(Math.abs(this.min)+t)/(Math.abs(this.min)+this.max);o=o<=1?o:1;var a=Math.floor(n.Height*(1-o));n.Height-=a,n.Y+=a,this.bgLayerPosition=n,console.log(this.bgLayerPosition),this.bgLayerPosition.Height=this.bgLayerPosition.Height>1?this.bgLayerPosition.Height:1,this.imgBg.attr({height:n.Height}),this.bgMatrix=this.bgMatrix||new Snap.Matrix,this.bgMatrix.translate(0,n.Y-this.bgLayerPosition.Y),this.imgBg.transform(this.bgMatrix),this.bgLayerPosition=n}},MODBUSSymbolValue.prototype.drawImg=function(n,e){var t;this.symbolIconElement&&(t={img:this.symbolIconElement,bg:this.imgBg});var o=$.extend(!0,{},this.originalRectangle);o.Height=o.Height-e.height,o.Height=o.Height-this.drawOption.marginTop-this.drawOption.marginBottom,o.Y=o.Y+this.drawOption.marginTop;var a=Number(this.status);this.status>this.max&&(a=this.max);var i=(Math.abs(this.min)+a)/(Math.abs(this.min)+this.max);i=i<=1?i:1;var l=Math.floor(o.Height*(1-i));o.Height-=l,o.Y+=l,this.bgLayerPosition=o,this.bgLayerPosition.Height=this.bgLayerPosition.Height>1?this.bgLayerPosition.Height:1,this.imgBg=this.wrapperGroup.rect(this.bgLayerPosition.X+1,this.bgLayerPosition.Y,this.bgLayerPosition.Width-2,this.bgLayerPosition.Height),this.imgBg.attr({fill:this.foreColor||"black"}),this.symbolIconElement=this.wrapperGroup.image(n,this.originalRectangle.X,this.originalRectangle.Y,this.originalRectangle.Width,this.originalRectangle.Height-e.height),t&&setTimeout(function(){t.img.remove(),t.bg.remove()},1)},MODBUSSymbolValue.prototype.getImage=function(){return this.imageShapeId?this.imageBasePathURI+this.imageShapeId:null},MODBUSSymbolONOFF.prototype=new ModBusSymbol,MODBUSSymbolONOFF.prototype.constructor=MODBUSSymbolONOFF,MODBUSSymbolONOFF.prototype.getImage=function(){var n="true"===this.status||"1"===this.status,e=n?this.statusONImageId:this.statusOFFImageId;return e?this.imageBasePathURI+e:null},angular.module("maps").directive("gemssmap",["MapService","$log","BASE_PATH","$uibModal","$rootScope","ViewPluginService","$state","$window","UserService","DRAW_OPTIONS",function(n,e,t,o,a,i,l,r,s,d){return{templateUrl:"app/maps/directives/gemss-map.tpl.html",restrict:"AE",scope:{symbolHiglith:"=",node:"=",installationid:"="},link:function(c,u){function p(){c.panZoom&&(c.panZoom.resize(),c.panZoom.fit(),c.panZoom.center())}function m(n,e,t,o){var a=l.href("standAloneMap",{installationId:c.installationid,mapId:o.symbolId}),i=[];t&&t>0&&i.push("width="+t),e&&e>0&&i.push("height="+e),i.push("top=20"),r.open(a,"_blank",i.join(","))}function g(n,e){return o.open({animation:!0,ariaLabelledBy:"modal-title",ariaDescribedBy:"modal-body",templateUrl:"app/maps/commandPopup/commandPopup.tpl.html",controller:"MapCommandPopupCtrl",resolve:{symbol:function(){return n},commands:function(){return e}}})}function h(n,t){i.getNoteList(t,c.installationid).then(function(t){var a=o.open({animation:!0,ariaLabelledBy:"modal-title",ariaDescribedBy:"modal-body",templateUrl:"app/maps/NoteMapPopup/NoteMapPopup.tpl.html",controller:"MapNotePopupCtrl",resolve:{symbol:function(){return n},properties:function(){return t}}});return a.result.then(function(n){},function(){e.info("Modal dismissed at: "+new Date)}),a},function(n){e.error(n)})}function f(n,t){i.getPropertyList(t,c.installationid).then(function(t){var a=o.open({animation:!0,ariaLabelledBy:"modal-title",ariaDescribedBy:"modal-body",templateUrl:"app/maps/propertyMapPopup/propertyMapPopup.tpl.html",controller:"MapPropertyPopupCtrl",resolve:{symbol:function(){return n},properties:function(){return t}}});return a.result.then(function(n){},function(){e.info("Modal dismissed at: "+new Date)}),a},function(){})}function b(n){return o.open({animation:!0,ariaLabelledBy:"modal-title",ariaDescribedBy:"modal-body",templateUrl:"app/maps/chartModal/chartModal.tpl.html",controller:"ChartModalCtrl",size:"lg",resolve:{symbol:function(){return n},installationId:function(){return c.installationid}}})}var v,y={haltEventListeners:["touchstart","touchend","touchmove","touchleave","touchcancel"],init:function(n){var e=n.instance,t=1,o=0,a=0;this.hammer=Hammer(n.svgElement,{inputClass:Hammer.SUPPORT_POINTER_EVENTS?Hammer.PointerEventInput:Hammer.TouchInput}),this.hammer.get("pinch").set({enable:!0}),this.hammer.on("doubletap",function(){e.zoomIn()}),this.hammer.on("panstart panmove",function(n){"panstart"===n.type&&(o=0,a=0),e.panBy({x:n.deltaX-o,y:n.deltaY-a}),o=n.deltaX,a=n.deltaY}),this.hammer.on("pinchstart pinchmove",function(n){"pinchstart"===n.type&&(t=e.getZoom(),e.zoom(t*n.scale)),e.zoom(t*n.scale)}),n.svgElement.addEventListener("touchmove",function(n){n.preventDefault()})},destroy:function(){this.hammer.destroy()}};v={zoomEnabled:!0,controlIconsEnabled:!1,fit:!0,center:!0};var I=function(n,e){var t=this.getSizes(),o=-(t.viewBox.x+t.viewBox.width)*t.realZoom+10,a=t.width-10-t.viewBox.x*t.realZoom,i=-(t.viewBox.y+t.viewBox.height)*t.realZoom+10,l=t.height-10-t.viewBox.y*t.realZoom,r={};return r.x=Math.max(o,Math.min(a,e.x)),r.y=Math.max(i,Math.min(l,e.y)),r},w=function(n,e){return-1!==n.indexOf(e)},S=function(n,e,o){n.map(function(n){var a,i=Object.create(n.r_symbolconfiguration);switch(!0){case w(n.r_symbolconfiguration.$type,"Antintrusion"):a=new AntintrusionSymbol(e,o);break;case w(n.r_symbolconfiguration.$type,"Label"):a=new LabelSymbol(e,o);break;case w(n.r_symbolconfiguration.$type,"Link"):a=new LinkSymbol(e,o);break;case w(n.r_symbolconfiguration.$type,".LayerSymbol"):a=new LayerSymbol(e,o);break;case w(n.r_symbolconfiguration.$type,"MultiSelectionVisibleSymbol"):a=new MultiSelectionVisibleSymbol(e,o);break;case w(n.r_symbolconfiguration.$type,"MODBUSSMOWKE"):a=function(e,t,o){var a;switch(!0){case w(e,"MODBUSSymbolONOFF"):return new MODBUSSymbolONOFF(t,o);case w(e,"MODBUSSymbolValueStatic"):return new MODBUSSymbolValueStatic(t,o);case w(e,"MODBUSSymbolValue"):return new MODBUSSymbolValue(t,o);default:a=new ModBusSymbol(t,o),a.guidLink=n.r_idsymbol}return a}(n.r_symbolconfiguration.$type,e,o);break;default:a=new GEMSS.Symbol(e,o),a.guidLink=n.r_idsymbol}i.gemssNodeInstance=n,i.image={Data:t.MEDIA_PATH+"image/"},i.imageBasePathURI=t.MEDIA_PATH+"gemss/installation/"+c.installationid+"/icon/",i.symbolId=n.r_idsymbol,i.status=n.r_state,i.command=n.r_command,i.isLayer=!0,i.layer=o,i.description=n.r_symbolconfiguration.description,i.labelPosition=n.r_symbolconfiguration.labelPosition,i.foreColor=n.r_symbolconfiguration.ForeColor,i.alignment=n.r_symbolconfiguration.alignment,i.labelAlwaysVisible=n.r_symbolconfiguration.labelAlwaysVisibile,i.drawOption=n.r_symbolconfiguration.drawOption?n.r_symbolconfiguration.drawOption:d,i.drawOption=i.drawOption?i.drawOption:{marginTop:0,marginBottom:0},i.drawOption.marginTop=i.drawOption.marginTop||0,i.drawOption.marginBottom=i.drawOption.marginBottom||0,i.highLighted=i.symbolId===c.symbolHiglith,a.hydrate(i),e.addSymbol(a)})},C=function(e,t){return n.map.getNodeSymbols(c.installationid,e).then(function(n){return S(n.children,$,t),n})},A=u.find("svg")[0],M=function(n,o){e.info("reloadMap"),$.cleanMap(),c.panZoom&&(c.panZoom.destroy(),delete c.panZoom);var a=t.MEDIA_PATH+"gemss/installation/"+c.installationid+"/map/"+o,i=c.node.children;$.setBackGroundURI(a,function(){angular.isUndefined(i)||0===i.length?c.noChildrenWarning=!0:(c.noChildrenWarning=!1,S(i,$)),c.panZoom||(checkMobile()?v.customEventsHandler=y:(s.mapCanBeZoomed(c.installationid)||(v.zoomEnabled=!1,v.dblClickZoomEnabled=!1),s.mapCanBePanned(c.installationid)||(v.panEnabled=!1)),c.panZoom=svgPanZoom(A,v),c.panZoom.setBeforePan(I),window.onresize=p.bind())})},x=function(n,t,o,i){e.info("onNavigateMapEvent",o),a.$emit("map:navigate",{nodeId:n,nodeMapInstance:o,hierarchy:i})};c.getCommand=function(n,t){i.getCommand(n,c.installationid).then(function(n){t(n)},function(n){e.error(n)})},c.sendCommand=function(n,t){var o=t.r_worker,a=n.r_idplant;if(angular.isDefined(a)){e.info("send command",t.r_protocol,a);var l={PLANT_DESCRIPTION:t.r_plantdescription};return i.sendCommand(t.r_protocol,a,o,c.installationid,l)}throw new Error("no plantid for item command")},c.sendDefaultCommand=function(n){i.sendDefaultCommand(n.command,c.installationid,n.gemssNodeInstance.r_idplant)};var $=new MapControl(A,void 0,{onNavigateEvent:x,onGetCommand:c.getCommand,onSendCommand:c.sendCommand,onPopupOpen:m, onCommandPopupOpen:g,sendPropertyListCommand:f,sendNoteListCommand:h,getNodeData:C,openChartModal:b,sendDefaultCommand:c.sendDefaultCommand,$uibModal:o});c.toggleLabel=function(){$.toggleLabel()},c.$watch("node",function(){e.debug("node changed in gemss map directive"),angular.isUndefined(c.node)||(c.node.r_idsymbol?M(c.node.r_idsymbol,c.node.r_symbolconfiguration.backGroundFileId,c.installationid):M(c.node.guidLink,c.node.backGroundFileId,c.installationid))});var k=a.$on("map:resize",function(){p()}),E=a.$on("socket:map",function(n,t){e.info("received map event");for(var o=t.data||[],a=0;a0&&alert("Rimuovere il file precaricato e riprovare."),console.info("onWhenAddingFileFailed",n,e,t)},p.onAfterAddingFile=function(n){console.info("onAfterAddingFile",n)},p.onAfterAddingAll=function(n){console.info("onAfterAddingAll",n)},p.onBeforeUploadItem=function(n){console.info("onBeforeUploadItem",n)},p.onProgressItem=function(n,e){console.info("onProgressItem",n,e)},p.onProgressAll=function(n){console.info("onProgressAll",n)},p.onSuccessItem=function(n,e,t,o){console.info("onSuccessItem",n,e,t,o)},p.onErrorItem=function(n,e,t,o){console.info("onErrorItem",n,e,t,o)},p.onCancelItem=function(n,e,t,o){console.info("onCancelItem",n,e,t,o)},p.onCompleteItem=function(n,e,t,o){console.info("onCompleteItem",n,e,t,o),200===t&&(d.customer.customParameters.logo=e.logoId)},p.onCompleteAll=function(){console.info("onCompleteAll")},d.type=r,d.manager=new c({customParameters:{invitation:"notSent"}}),d.getFile=function(){d.progress=0,t.readAsDataUrl(d.file,d).then(function(n){d.imageSrc=n,angular.isUndefined(d.customer.customParameters)&&(d.customer.customParameters={}),d.customer.customParameters.logo=n})},d.$on("fileProgress",function(n,e){d.progress=e.loaded/e.total}),d.ok=function(){u.start(),d.manager.$save().then(function(n){l.close(n),u.stop()},function(n){d.errorMessage={errorObj:n.data.error,type:"ServerError"},u.stop()})},d.cancel=function(){l.dismiss("cancel")}}]),angular.module("managers").controller("ManagerManagementCtrl",["fileReader","$window","$uibModal","$log","$scope","BASE_PATH","$http",function(n,e,t,o,a,i,l){a.getManagers=function(){l.get(i.API_URL+"manager").then(function(n){a.customers=n.data})},a.getManagers(),a.newManager=function(){t.open({animation:a.animationsEnabled,ariaLabelledBy:"modal-title",ariaDescribedBy:"modal-body",templateUrl:"app/manager/newManager/newManager.tpl.html",controller:"NewManagerModalCtrl",resolve:{type:function(){return"manager"}}}).result.then(function(n){o.info(n),a.getManagers()},function(n){o.info(n),o.info("Modal dismissed at: "+new Date)})},a.editCustomer=function(n){t.open({animation:a.animationsEnabled,ariaLabelledBy:"modal-title",ariaDescribedBy:"modal-body",templateUrl:"app/customer/editCustomer/editCustomer.html",controller:"EditCustomerModalCtrl",resolve:{customerToEdit:function(){return n},type:function(){return"manager"}}}).result.then(function(n){o.info(n),a.getManagers()},function(n){o.info(n),o.info("Modal dismissed at: "+new Date)})}}]),angular.module("installations").constant("MAPS_UPLOAD","mapsupload").constant("CUSTOMER","customer").constant("INSTALLATION","/installation").service("Installation",["$resource","$http","BASE_PATH","MAPS_UPLOAD","INSTALLATION","CUSTOMER",function(n,e,t,o,a,i){var l=n(t.API_URL+"installation/:idInstallation",{idInstallation:"@id"},{get:{isArray:!0},delete:{transformResponse:angular.noop,method:"DELETE"}});return l.updateImages=function(n,a){return e.post(t.API_URL+o,{INSTALLATIONID:n,FOLDER:a})},l.getInstallationsByCompanyId=function(n){return e.get(t.API_URL+i+"/"+n+a).then(function(n){return n.data.map(function(n){return new l(n)})})},l.getCompanyCustomerByCompanyId=function(n){return e.get(t.API_URL+"/company/"+n+"/"+i)},l}]),angular.module("installations").controller("InstallationListCtrl",["fileReader","$uibModal","$log","BASE_PATH","$location","modalService","UserService","$rootScope","Installation",function(n,e,t,o,a,i,l,r,s){var d=this;d.updateImages=function(n,e){s.updateImages(n.installationId,e)},d.getInstallations=function(){s.getInstallationsByCompanyId(l.getUserManagerCompanyId()).then(function(n){d.plantList=n})},d.editInstallation=function(n){e.open({animation:d.animationsEnabled,ariaLabelledBy:"modal-title",ariaDescribedBy:"modal-body",templateUrl:"app/installations/editInstallation/editInstallation.tpl.html",controller:"EditInstallationCtrl",resolve:{installationToEdit:function(){return n}}}).result.then(function(){d.getInstallations()})},d.$onInit=function(){d.currentCompany=l.getUserCompanyDescription(),d.getInstallations()}}]).component("installationList",{templateUrl:"app/installations/installationList/installationList.tpl.html",controller:"InstallationListCtrl"}),angular.module("installations").controller("EditInstallationCtrl",["$uibModal","$log","modalService","$http","BASE_PATH","$uibModalInstance","installationToEdit","$scope","UserService","Installation",function(n,e,t,o,a,i,l,r,s,d){r.deleteInstallation=function(){var e={closeButtonText:"Annulla",actionButtonText:"Sì",headerText:"Eliminare ?",bodyText:"Sicuro di volere eliminare questa installazione?"};n.open({animation:r.animationsEnabled,ariaLabelledBy:"modal-title",ariaDescribedBy:"modal-body",templateUrl:"app/shared/popup/confirmModal/confirmModal.tpl.html",controller:"ConfirmModalInstanceCtrl",resolve:{message:function(){return e}}}).result.then(function(){l.id=l.installationId,l.$delete().then(function(){i.close(r.plant)},function(n){r.errorMessage=n.data.error})})},r.control={},l?r.installation=angular.copy(l):(r.isNew=!0,r.installation={customerId:null,isNew:!0,position:{}}),r.getCompanyCustomers=function(){d.getCompanyCustomerByCompanyId(s.getUserManagerCompanyId()).then(function(n){r.customers=n.data,r.isLoading=!1})},r.getCompanyCustomers(),r.customerChanged=function(){r.installation.customerId=r.selectedCustomerId},r.openNewCustomerPopup=function(){n.open({animation:r.animationsEnabled,ariaLabelledBy:"modal-title",ariaDescribedBy:"modal-body",templateUrl:"app/customer/editCustomer/editCustomer.html",controller:"EditCustomerModalCtrl",resolve:{type:function(){return"customer"},customerToEdit:function(){return null}}}).result.then(function(n){e.info(n),r.getCompanyCustomers()},function(n){e.info(n),e.info("Modal dismissed at: "+new Date)})},r.ok=function(){r.installation.managerId=s.getUserManagerCompanyId(),r.installation.installationId?o.post(a.API_URL+"installation/"+r.installation.installationId,r.installation).then(function(n){i.close(n)},function(n){r.errorMessage=n}):o.post(a.API_URL+"installation",r.installation).then(function(n){s.getUserInfo().then(function(){i.close(n)})},function(n){r.errorMessage=n})},r.cancel=function(){i.dismiss("cancel")}}]),angular.module("dashboard",["views","maps","ui.router","permission","permission.ui","auth","ngFitText"]).config(["$stateProvider",function(n){n.state("dashboard",{url:"/dashboard/:installationId",parent:"withHeader",controller:"dashboardInstallationCtrl",templateUrl:"app/dashboard/dashboard/dashboard.tpl.html",resolve:{installationId:["$stateParams",function(n){return n.installationId}],sock:["$stateParams","socketService",function(n,e){return e.connect(n)}]},data:{permissions:{only:["BUTTON-INSTALLAZIONI-DASHBOARD"],redirectTo:"installations"}}})}]),angular.module("dashboard").service("DashboardService",["BASE_PATH","$http","$q","ViewPluginService",function(n,e,t,o){var a=function(t){return e.get(n.API_URL+"/installation/"+t+"/dashboardSymbols")};return{getSymbolsWithCounterForMaps:function(n){var e=t.defer();return t.all({symbols:a(n),counters:o.getInstallationViewsCounters(n)}).then(function(n){var t=n.symbols.data.filter(function(n){return angular.isUndefined(n.r_symbolconfiguration.$type)||null===n.r_symbolconfiguration.$type}).reduce(function(n,e){var t=e.r_symbolconfiguration.Queries.filter(function(n){return n.Counter})[0];return t&&(e.CounterQueryId=t.Id),n[e.r_symbolconfiguration.Id]=e,n},{});angular.forEach(n.counters,function(n){t[n.viewId]&&(t[n.viewId].counter=n.count)}),e.resolve(n.symbols.data)}).catch(function(n){e.reject(n)}),e.promise}}}]),angular.module("dashboard").controller("dashboardInstallationCtrl",["$state","DashboardService","DynamicColorService","$log","$scope","installationId","socketService","$rootScope","$window","UserService",function(n,e,t,o,a,i,l,r,s,d){a.getColorForItem=t.getColorForItem;var c=function(e){var t;t=angular.isUndefined(e.r_symbolconfiguration.$type)?n.href("standAloneView",{installationId:a.installationId,viewId:e.r_symbolconfiguration.Id}):n.href("standAloneMap",{installationId:a.installationId,mapId:e.r_idsymbol}),t?s.open(t,"_blank","top=20"):o.error("no page found")},u=function(n){angular.isUndefined(n.r_symbolconfiguration.$type)?(a.selectedMap=void 0,a.selectedView=n.r_symbolconfiguration.Id):(a.selectedView=void 0,a.selectedMap=n.r_idsymbol)},p=function(){e.getSymbolsWithCounterForMaps(a.installationId).then(function(n){angular.forEach(n,function(n){angular.isUndefined(n.r_symbolconfiguration.$type)||null===n.r_symbolconfiguration.$type?a.views[n.r_symbolconfiguration.Id].counter=n.counter:a.maps[n.r_idsymbol].r_state=n.r_state})}).catch(function(n){o.error(n)})};a.openDetail=function(n){a.sameWindow?u(n):c(n),p()};var m=function(n,e){o.debug("incoming message from ws service",e),a.$apply(function(){try{if(!e.installationId||e.installationId!=a.installationId)return void o.error("Rejected message from ws service, no match with current installation",e);e.data.forEach(function(n){if(n.ViewId&&n.Type&&a.views[n.ViewId]&&a.views[n.ViewId].CounterQueryId===n.QueryId&&angular.isDefined(a.views[n.ViewId].counter))switch(n.Type){case"ADD":a.views[n.ViewId].counter=a.views[n.ViewId].counter+1;break;case"REMOVE":a.views[n.ViewId].counter=a.views[n.ViewId].counter-1;break;default:o.debug("no event")}})}catch(n){o.error(n)}})},g=r.$on("socket:view",m),h=r.$on("socket:refresh",p),f=r.$on("socket:map",function(n,e){a.$apply(function(){for(var n=e.data,t=0;t=992&&(a.numberOfButtons=a.groupSettings.MD||10),t<992&&(a.numberOfButtons=a.groupSettings.XS||10),console.log(a),a.buttonWidth=Math.floor((s.innerWidth-30)/a.numberOfButtons)+"px"},window.onresize=function(){a.setButtonWidth(i)},function(){a.installationId=i,a.selectedView=void 0,a.groupSettings=d.getGroupSettingsByInstallationId(i),a.sameWindow=a.groupSettings.singleWindow||!1,a.setButtonWidth(i),e.getSymbolsWithCounterForMaps(a.installationId).then(function(n){a.symbols=n,a.views=a.symbols.filter(function(n){return angular.isUndefined(n.r_symbolconfiguration.$type)||null===n.r_symbolconfiguration.$type}).reduce(function(n,e){return n[e.r_symbolconfiguration.Id]=e,n},{}),a.maps=a.symbols.filter(function(n){return angular.isDefined(n.r_symbolconfiguration.$type)&&"SMOWKE.Library.NodeSymbol, SMOWKE.Library"===n.r_symbolconfiguration.$type}).reduce(function(n,e){return n[e.r_idsymbol]=e,n},{}),a.subribedTopic=l.subscribe("Installation."+a.installationId)}).catch(function(n){o.error(n)})}(),a.$on("$destroy",function(){g(),f(),h(),l.unsubscribe(a.subribedTopic)})}]),angular.module("customer",["ngConstants","angularFileUpload","ui.router","permission","permission.ui","ui.bootstrap","shared","auth","ngResource"]).config(["$stateProvider",function(n){n.state("customers",{url:"/customers",parent:"withHeader",controller:"CustomersCtrl",templateUrl:"app/customer/customers/customers.tpl.html",data:{permissions:{only:["BUTTON-CLIENTI-AGGIUNGI","BUTTON-CLIENTI-MODIFICA","BUTTON-CLIENTI-ELIMINA"],redirectTo:"installations"}}})}]),angular.module("customer").controller("ViewCustomerModalCtrl",["$uibModalInstance","customerToView","$scope",function(n,e,t){t.customer=e,t.ok=function(){n.dismiss("cancel")}}]),angular.module("customer").service("CustomerService",["BASE_PATH","$resource",function(n,e){return e(n.API_URL+"customer/:idCustomer",{idCustomer:"@id"})}]),angular.module("customer").controller("NewCustomerModalCtrl",["FileUploader","$uibModal","fileReader","modalService","$http","BASE_PATH","$uibModalInstance","type","UserService","$scope","CustomerService",function(n,e,t,o,a,i,l,r,s,d,c){d.imageBasePath=i.MEDIA_PATH;var u=d.uploader=new n({queueLimit:1,url:i.API_URL+"uploadlogo",headers:{"x-access-token":localStorage.ba_t}});u.filters.push({name:"imageFilter",fn:function(n){return-1!=="|jpg|png|jpeg|bmp|gif|".indexOf("|"+n.type.slice(n.type.lastIndexOf("/")+1)+"|")}}),u.onWhenAddingFileFailed=function(n,e,t){d.uploader.queue.length>0&&alert("Rimuovere il file precaricato e riprovare."),console.info("onWhenAddingFileFailed",n,e,t)},u.onAfterAddingFile=function(n){console.info("onAfterAddingFile",n)},u.onAfterAddingAll=function(n){console.info("onAfterAddingAll",n)},u.onBeforeUploadItem=function(n){console.info("onBeforeUploadItem",n)},u.onProgressItem=function(n,e){console.info("onProgressItem",n,e)},u.onProgressAll=function(n){console.info("onProgressAll",n)},u.onSuccessItem=function(n,e,t,o){console.info("onSuccessItem",n,e,t,o)},u.onErrorItem=function(n,e,t,o){console.info("onErrorItem",n,e,t,o)},u.onCancelItem=function(n,e,t,o){console.info("onCancelItem",n,e,t,o)},u.onCompleteItem=function(n,e,t,o){console.info("onCompleteItem",n,e,t,o),200===t&&(d.customer.customParameters.logo=e.logoId)},u.onCompleteAll=function(){console.info("onCompleteAll")},d.type=r,d.customer=new c({managerId:s.getUserManagerCompanyId(),customParameters:{invitation:"notSent"}}),d.getFile=function(){d.progress=0,t.readAsDataUrl(d.file,d).then(function(n){d.imageSrc=n,angular.isUndefined(d.customer.customParameters)&&(d.customer.customParameters={}),d.customer.customParameters.logo=n})},d.$on("fileProgress",function(n,e){d.progress=e.loaded/e.total}),d.ok=function(){d.customer.$save().then(function(n){l.close(n)},function(n){d.errorMessage={errorObj:n.data.error,type:"ServerError"}})},d.cancel=function(){l.dismiss("cancel")}}]),angular.module("customer").controller("EditCustomerModalCtrl",["FileUploader","$uibModal","fileReader","modalService","$http","BASE_PATH","$uibModalInstance","customerToEdit","type","UserService","$scope",function(n,e,t,o,a,i,l,r,s,d,c){c.imageBasePath=i.MEDIA_PATH;var u=c.uploader=new n({queueLimit:1,url:i.API_URL+"uploadlogo",headers:{"x-access-token":localStorage.ba_t}});if(u.filters.push({name:"imageFilter",fn:function(n,e){return-1!=="|jpg|png|jpeg|bmp|gif|".indexOf("|"+n.type.slice(n.type.lastIndexOf("/")+1)+"|")}}),u.onWhenAddingFileFailed=function(n,e,t){c.uploader.queue.length>0&&alert("Rimuovere il file precaricato e riprovare."),console.info("onWhenAddingFileFailed",n,e,t)},u.onAfterAddingFile=function(n){console.info("onAfterAddingFile",n)},u.onAfterAddingAll=function(n){console.info("onAfterAddingAll",n)},u.onBeforeUploadItem=function(n){console.info("onBeforeUploadItem",n)},u.onProgressItem=function(n,e){console.info("onProgressItem",n,e)},u.onProgressAll=function(n){console.info("onProgressAll",n)},u.onSuccessItem=function(n,e,t,o){console.info("onSuccessItem",n,e,t,o)},u.onErrorItem=function(n,e,t,o){console.info("onErrorItem",n,e,t,o)},u.onCancelItem=function(n,e,t,o){console.info("onCancelItem",n,e,t,o)},u.onCompleteItem=function(n,e,t,o){console.info("onCompleteItem",n,e,t,o),200===t&&(c.customer.customParameters.logo=e.logoId)},u.onCompleteAll=function(){console.info("onCompleteAll")},c.type=s,r){c.customerMaster=r,c.customer=angular.copy(c.customerMaster);try{c.customer.companyType?c.confirmDeleteMsg="Sicuro di volere eliminare questo installatore?":c.confirmDeleteMsg="Sicuro di volere eliminare questo cliente?",c.customer||(c.customer={}),c.customer.customParameters||(c.customer.customParameters={}),c.imageSrc=c.customer.customParameters.logo}catch(n){}}else c.isNew=!0,c.customer={customParameters:{invitation:"notSent"}};c.isLoading=!0,c.deleteCustomer=function(){var n={closeButtonText:"Annulla",actionButtonText:"Sì",headerText:"Eliminare ?",bodyText:"Sicuro di volere eliminare questo cliente?"};e.open({animation:c.animationsEnabled,ariaLabelledBy:"modal-title",ariaDescribedBy:"modal-body",templateUrl:"app/shared/popup/confirmModal/confirmModal.tpl.html",controller:"ConfirmModalInstanceCtrl",resolve:{message:function(){return n}}}).result.then(function(){a.delete(i.API_URL+"company/"+c.customer.customerId).then(function(){l.close(c.plant)},function(n){c.errorMessage=n.data.error})})},c.getFile=function(){c.progress=0,t.readAsDataUrl(c.file,c).then(function(n){c.imageSrc=n,void 0==c.customer.customParameters&&(c.customer.customParameters={}),c.customer.customParameters.logo=n})},c.$on("fileProgress",function(n,e){c.progress=e.loaded/e.total}),c.ok=function(){switch(c.type){case"manager":if(c.isNew){var n=new FormData;n.append("file",c.imageSrc),n.append("customer",JSON.stringify(c.customer)),a.post(i.API_URL+"manager",c.customer).then(function(n){l.close(n)},function(n){c.errorMessage={errorObj:n.data.error,type:"ServerError"}})}else a.post(i.API_URL+"manager/"+c.customer.customerId,c.customer).then(function(n){l.close(n)},function(n){c.errorMessage={errorObj:n.data.error,type:"ServerError"}});break;case"customer":c.isNew?(c.customer.managerId=d.getUserManagerCompanyId(),a.post(i.API_URL+"customer",c.customer).then(function(n){l.close(n)},function(n){c.errorMessage={errorObj:n.data.error,type:"ServerError"}})):a.post(i.API_URL+"customer/"+c.customer.customerId,c.customer).then(function(n){l.close(n)},function(n){c.errorMessage={errorObj:n.data.error,type:"ServerError"}})}},c.cancel=function(){l.dismiss("cancel")},c.inviteAdmin=function(n,e){c.customer.customerId&&a.post(i.API_URL+"assignnewusertocompany",{userName:n,companyId:c.customer.customerId,role:"Admin",isadmin:e}).then(function(e){c.InviteOk=n,c.InviteErrorMessage=!1},function(n){c.InviteErrorMessage="Errore in invito amministratore "+n})}}]),angular.module("customer").controller("CustomersCtrl",["$uibModal","$log","$scope","BASE_PATH","$http","$location","modalService","UserService",function(n,e,t,o,a,i,l,r){t.currentCompany=r.getUserCompanyDescription(),t.getCustomers=function(){a.get(o.API_URL+"company/"+r.getUserManagerCompanyId()+"/customer").then(function(n){t.customers=n.data})},t.getCustomers(),t.viewInstallations=function(n){i.path("installations"),i.search("company",n.customerId)},t.openInstallation=function(n){i.path("plantsmanagement/"+n.installationId)},t.deleteCustomer=function(n){return a.delete(o.API_URL+"company/"+n)},t.editCustomer=function(o){n.open({animation:t.animationsEnabled,ariaLabelledBy:"modal-title",ariaDescribedBy:"modal-body",templateUrl:"app/customer/editCustomer/editCustomer.html",controller:"EditCustomerModalCtrl",resolve:{customerToEdit:function(){return o},type:function(){return"customer"},deleteCustomerFn:function(){return t.deleteCustomer}}}).result.then(function(n){e.info(n),t.getCustomers()},function(n){e.info(n),e.info("Modal dismissed at: "+new Date)})},t.newCustomer=function(){n.open({animation:t.animationsEnabled,ariaLabelledBy:"modal-title",ariaDescribedBy:"modal-body",templateUrl:"app/customer/newCustomer/newCustomer.tpl.html",controller:"NewCustomerModalCtrl",resolve:{type:function(){return"customer"}}}).result.then(function(n){e.info(n),t.getCustomers()},function(n){e.info(n),e.info("Modal dismissed at: "+new Date)})}}]),angular.module("auth").controller("UserInfoInstanceCtrl",["$uibModalInstance","user","$scope",function(n,e,t){t.user=e,t.ok=function(){n.dismiss("cancel")},t.cancel=function(){n.dismiss("cancel")}}]),angular.module("auth").component("chooseInitialPage",{bindings:{resolve:"<",close:"&",dismiss:"&"},templateUrl:"app/auth/chooseInitialPage/chooseInitialPage.tpl.html",controller:["HOME_PAGE_OPTIONS","$log","$state",function(n,e,t){var o=this;o.selectInitialPage=function(){var n={};o.choosenPage.needInstallationId&&(n.installationId=o.resolve.installationId),o.close({$value:t.href(o.choosenPage.stateName,n)})},o.$onInit=function(){o.installationId=o.resolve.installationId,o.possibleInitialPages=n},o.close=function(){o.dismiss()}}]}),angular.module("auth").constant("USER_INFO_PATH","userinfo").service("UserService",["$http","BASE_PATH","USER_INFO_PATH","userInfo","$log",function(n,e,t,o,a){var i={};return i.getUserInfo=function(){return n.get(e.API_URL+t).then(function(n){return a.info(n),o.permissions=n.data.userInfo.permissions,o.groupSettings=n.data.userInfo.groupSettings||{},o.moduleByInstallation=n.data.userInfo.moduleByInstallation||{},Object.keys(n.data.permissions||o.permissions).forEach(function(n){o.permissions[n]=o.permissions[n]||[]}),i.getHistoryFilter(),o.userInfo})},i.getHistoryFilter=function(){n.get(e.API_URL+"user/eventToHide").then(function(n){o.eventToHide=n.data||{}})},i.eventCodeShouldBeHidden=function(n,e){return(o.eventToHide[e]||[]).indexOf(n)>=0},i.mapCanBeZoomed=function(n){var e=i.getGroupSettingsByInstallationId(n).zoom_map_enabled;return!(!angular.isUndefined(e)&&!e)||e},i.mapCanBePanned=function(n){var e=i.getGroupSettingsByInstallationId(n).pan_map_enabled;return!(!angular.isUndefined(e)&&!e)||e},i.showMapNavigator=function(n){var e=i.getGroupSettingsByInstallationId(n).show_map_navigator;return!(!angular.isUndefined(e)&&!e)||e},i.getGroupIdByInstallationId=function(n){return i.getGroupSettingsByInstallationId(n).groupId},i.getGroupSettingsByInstallationId=function(n){return o.groupSettings[n]||{}},i.getUserManagerCompanyId=function(){return o.userInfo.company},i.getUserCompanyDescription=function(){return o.userInfo.companyname},i.getUserUsername=function(){return o.userInfo.username},i.getUserToken=function(){return localStorage.ba_t},i.getPermissionByInstallationId=function(n){return o.permissions[n]||[]},i.enabledModuleByInstallation=function(n){return o.moduleByInstallation[n]||[]},i.isAdmin=function(){return o.userInfo.useradmin},i.isCustomer=function(){return o.userInfo.is_customer},i.isGlobalAdmin=function(){return!0===o.userInfo.isadmin},i.getLoggedUserId=function(){return o.userInfo.iduser},i.deleteUser=function(t){return n.delete(e.API_URL+"employee/"+t+"/"+i.getLoggedUserId())},i.getInitialMapByInstallationId=function(n){return o.groupSettings[n].initialMapSymbol},i.updateUser=function(t){n.post(e.API_URL+"/user/"+t.userId,t)},function(){o.permissions=o.userInfo.permissions||{},o.groupSettings=o.userInfo.groupSettings||{},o.moduleByInstallation=o.userInfo.moduleByInstallation||{},Object.keys(o.permissions).forEach(function(n){o.permissions[n]=o.permissions[n]||[]}),o.eventToHide={},i.getHistoryFilter()}(),i}]),angular.module("app",["ui.router","ngHttpStatus","ngConstants","installations","ui.bootstrap","shared","managers","users","plants","maps","dashboard","ngResource","blockUI","scheduler","tmh.dynamicLocale"]),function(){function n(n,e){e||(e=r.location.href),n=n.replace(/[\[\]]/g,"\\$&");var t=new RegExp("[?&]"+n+"(=([^&#]*)|&|#|$)"),o=t.exec(e);return o?o[2]?decodeURIComponent(o[2].replace(/\+/g," ")):"":null}function e(){var e=n("token");if(l.info(" ",e),e){l.info("Found token in url. Setting into ");var t=new RegExp("[?&]token(=([^&#]*)|&|#|$)");localStorage.setItem("ba_t",e);var o=r.location.href.replace(t.exec(r.location.href)[0],"");l.info("Redirect browser to %s",o),location.href=o}l.debug("Make Security Call For Current User");var a={headers:{"x-access-token":localStorage.ba_t}},d=c+"/api/userinfo";return i.get(d,a).then(function(n){l.debug("Security Check for token OK, inserting into angular costant"),s.constant("userInfo",n.data),s.constant("LOGOUT_URL",n.logoutUrl);try{r.loading_screen.finish()}catch(n){l.debug("window.loading_screen not available. Passing out.")}})}function t(){angular.bootstrap(document,["app"]),o.finish()}var o=pleaseWait({logo:"/images/logo-saet.png",backgroundColor:"#EBE5Df",loadingHtml:'
    Benvenuto in BMS Cloud Management
    '}),a=angular.injector(["ng"]),i=a.get("$http"),l=a.get("$log"),r=a.get("$window"),s=angular.module("app");a=angular.injector(["ngHttpStatus"]);var d=a.get("HttpCodes");a=angular.injector(["ngConstants"]);var c=(a.get("BASE_PATH")||{}).BACKEND_BASE_URL;angular.element(document).ready(function(){e().then(t,function(n){n.status===d.FORBIDDEN?(l.debug("Error in security validation for current user. message : %s - Token %s ",n.data.message,n.config.headers["x-access-token"]),console.error(n.data.loginUrl+"?continue="+encodeURIComponent(r.location.href)),r.location.href=n.data.loginUrl+"?continue="+encodeURIComponent(r.location.href)):(l.debug("Error in security validation. Code: %s",n.status),r.location.href=n.data.loginUrl+"?continue="+encodeURIComponent(r.location.href))})})}(),angular.module("app").config(["$httpProvider","$urlRouterProvider","$resourceProvider","blockUIConfig","tmhDynamicLocaleProvider",function(n,e,t,o,a){a.localeLocationPattern("bower_components/angular-i18n/angular-locale_{{locale}}.js"),a.defaultLocale("it"),o.message="Attendere prego",o.autoBlock=!1,e.otherwise("/installations");var i=angular.injector(["ngHttpStatus"]),l=i.get("HttpCodes");n.interceptors.push(["$q","$window",function(n,e){return{request:function(n){return n.headers["x-access-token"]=localStorage.ba_t,n.headers.Accept="application/json;",n},response:function(n){return n.status===l.FOUND&&(e.location.href=rejection.data.loginUrl+"?continue="+encodeURIComponent(e.location.href)),n},responseError:function(t){return t.status===l.FORBIDDEN?t.data&&(e.location.href=t.data.loginUrl+"?continue="+encodeURIComponent(e.location.href)):t.status===l.FOUND&&(e.location.href=t.data.loginUrl+"?continue="+encodeURIComponent(e.location.href)),n.reject(t)}}}])}]),String.prototype.includes||(String.prototype.includes=function(n,e){"use strict";return"number"!=typeof e&&(e=0),!(e+n.length>this.length)&&-1!==this.indexOf(n,e)}),angular.module("app").run(["$templateCache",function(n){n.put("app/auth/chooseInitialPage/chooseInitialPage.tpl.html",'\n\n\n'), n.put("app/auth/userInfoDetail/userInfoPopup.html",'\n \n \n \n'),n.put("app/customer/customers/customers.tpl.html",'\n\t\n\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\n\t\n\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\n
    Lista Clienti di {{currentCompany}}\n \n\n\t\t\n\n\t
    #LogoAziendaInvitoUtentiInstallazioniImpianti
    {{$index+1}}
    {{c.customerName}}{{c.accreditingState}}{{c.employeesCount}}{{c.installationsCount}}{{c.plantsCount}}
    \n'),n.put("app/customer/editCustomer/editCustomer.html",'\n\n\n\n'),n.put("app/customer/newCustomer/newCustomer.tpl.html",'\n\n\n'),n.put("app/customer/viewCustomer/viewCustomer.tpl.html",'\n\n\n\n\n'),n.put("app/dashboard/dashboard/dashboard.tpl.html",'
    \n
    \n \n
    \n
    \n
    \n
    \n \n \n
    \n'),n.put("app/installations/editInstallation/editInstallation.tpl.html",'\n\n\n'),n.put("app/installations/installationList/installationList.tpl.html",'
    \n\n
    \n Installazioni di {{$ctrl.currentCompany}}\n \n
    \n
    \n
    #
    \n
    Cliente
    \n
    Descrizione
    \n \n
    \n
    \n \n
    \n'),n.put("app/manager/managers/managers.tpl.html",'\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    Lista Installatori HI CLOUD\n \n \n
    #AziendaInstallazioniImpiantiUtenti
    {{$index+1}}\n
    \n
    {{c.customerName}}{{c.installationsCount}}{{c.plantsCount}}{{c.employeesCount}}\n \n
    \n\n'), n.put("app/manager/newManager/newManager.tpl.html",'\n\n\n'),n.put("app/maps/NoteMapPopup/NoteMapPopup.tpl.html",'\n\n\n\n'),n.put("app/maps/chartModal/chartModal.tpl.html",'\n \n \n\n'),n.put("app/maps/commandPopup/commandPopup.tpl.html",'\n \n \n\n'),n.put("app/maps/directives/gemss-map.tpl.html",'
    \n Attenzione! Non sono presenti simboli per questa mappa.\n
    \n\n
    \n \n \n
    \n'),n.put("app/maps/map/map.tpl.html",'\n\n\x3c!-- CONTEXT MENU RIGHT CLICK --\x3e\n\n\n\x3c!-- as an attribute --\x3e\n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n\n\n\n\x3c!-- Nested node template --\x3e\n