{"version":3,"sources":["webpack:///./source/app/workplace/combineWorkplace.tmpl.html","webpack:///./source/app/workplace/workplaceList.controller.js","webpack:///./source/app/workplace/workplaceSearch.tmpl.html","webpack:///./source/app/workplace/workplace.controller.js","webpack:///./source/app/users/usersList.controller.js","webpack:///./source/app/users/users.controller.js","webpack:///./source/app/stat/stat.controller.js","webpack:///./source/app/person/personList.controller.js","webpack:///./source/app/person/workplace.tmpl.html","webpack:///./source/app/person/hprSearch.tmpl.html","webpack:///./source/app/person/leaderSearch.tmpl.html","webpack:///./source/app/person/newSpes.tmpl.html","webpack:///./source/app/person/newHpr.tmpl.html","webpack:///./source/app/person/person.controller.js","webpack:///./source/app/network/networkList.controller.js","webpack:///./source/app/network/networkSearch.tmpl.html","webpack:///./source/app/network/network.controller.js","webpack:///./source/app/main/main.controller.js","webpack:///./source/app/login/resetPassword.controller.js","webpack:///./source/app/login/register.controller.js","webpack:///./source/app/list/list.controller.js","webpack:///./source/app/institution/combineInstitution.tmpl.html","webpack:///./source/app/institution/institutionList.controller.js","webpack:///./source/app/institution/institution.controller.js","webpack:///./source/app/group/groupList.controller.js","webpack:///./source/app/group/group.controller.js","webpack:///./source/app/codingSystem/codingSystemEdit.tmpl.html","webpack:///./source/app/codingSystem/codingSystem.controller.js","webpack:///./source/app/admin/admin.controller.js"],"names":["module","exports","workplaceListController","$scope","$http","$state","dataServiceOp","$mdDialog","$mdMedia","vm","this","currentState","current","name","states","get","workplaces","showFilter","tableLoading","itemsByPage","workplaceEdit","workplace","go","workplaceId","id","createNew","getWorkplaces","then","result","data","toggleLeft","combineSelected","ev","selected","displayedWorkplaces","filter","item","isSelected","show","controller","combineWorkplaceController","template","__webpack_require__","parent","angular","element","document","body","targetEvent","clickOutsideToClose","locals","input","selectedWorkplace","forEach","value","index","indexOf","splice","error","console","log","hasNoSelectedRows","length","$mdToast","listOrig","list","copy","showSimpleToast","text","simple","textContent","position","hideDelay","selectedRow","selectedIndex","hide","cancelDialog","cancel","ok","combineWorkplace","message","$inject","workplaceController","$stateParams","searchDone","toList","searchInstResults","searchI","removeInst","institution","searchInst","search","selectInst","hit","resetWorkplace","workplaceOrig","workplaceForm","$setUntouched","$setPristine","newMunicipality","searchPostalNumber","postalCode","postalName","getModel","getWorkplaceModel","showDeleteConfirm","confirm","title","ariaLabel","deleteWorkplace","saveWorkplace","creatOrUpdateWorkplace","getWorkplaceById","commingFromList","showSearch","type","workplaceSearchController","returnValue","$filter","dataService","heading","select","searchInstitution","searchResults","window","usersListController","auth","hasAccess","users","usersEdit","usersId","usersNew","getusers","getAllUsers","usersToggleActivation","row","enabled","updateUser","usersController","password","firstName","lastName","email","hasAdminRights","sendMail","resetusers","usersOrig","usersForm","deleteUser","saveusers","registerUser","getUserById","_","statController","currentChart","currentBarChart","doughnutText","barText","barSeries","barLabels","barData","barCharts","barOptions","barTable","barTableName","doughnutTableCol","header","source","doughnutLabels","doughnutData","doughnutCharts","doughnutTable","doughnutTableName","barTableCol","findProp","obj","prop","defval","split","i","doughnutOption","legend","display","animation","onComplete","setDisplay","optionsBar","scales","yAxes","gridLines","lineWidth","color","ticks","beginAtZero","mirror","suggestedMin","afterBuildTicks","xAxes","setDisplayBar","push","getChart0","personsGroupByForetak","labels","values","itm","antall","getChart1","personsGroupByHealthcareRole","getChart4","personsGroupBySpeciality","getChart2","personsGroupByInstitutionType","getChart3","personsGroupByNetworkGroup","getBarChart0","yearlyByYear","getBarChart1","yearlyByUnitYear","series","yeraly","groupBy","seriesValue","itm2","value2","func","showChart","selectedDoughnut","showBarChart","selectedBar","total","datasets","_meta","$apply","personListController","people","personEdit","person","personId","getPersons","getDeactivatedPersons","calculateAge","birthday","dateTime","Date","ageDifMs","now","getTime","ageDate","Math","abs","getUTCFullYear","personController","newPerson","newNetworkEngagement","active","comment","endDate","engagementPercentage","introCource","networkEngagementFunction","resourceNetwork","startDate","networkEngagementId","networkEngagement","functionId","function","possibleDuplicates","selectedItem","selectedFunctions","datesDifferent","dateCreated","dateModified","date1","downloadVcard","filepart","indata","filename","success","blob","Blob","contentType","navigator","msSaveBlob","saveBlob","webkitSaveBlob","mozSaveBlob","undefined","ex","trySaveBlob","URL","webkitURL","mozURL","msURL","link","createElement","urlCreator","url","createObjectURL","setAttribute","event","createEvent","initMouseEvent","dispatchEvent","tryDownloadLink","location","tryWindowsLocation","mails","phones","newPersonPostal","code","networks","functions","importPerson","dupIsShown","resetPerson","newPersonOrig","newPersonForm","getPersonModel","getNetworks","getFunctions","newFunc","removeMailAddress","$setDirty","addMailAddress","address","removeTel","addTel","number","addNetwork","removeNetwork","idx","deletePerson","savePerson","creatOrUpdatePerson","menuNewPerson","$pristine","menuToList","showHpr","inputHpr","newHprRole","newHprController","newHpr","healthCareRoles","hpr","showSpes","inputSpes","newSpesRole","newSpesController","newSpes","specialities","spes","showLeader","leaderSearchController","newLeader","manager","selectedNetworkChange","isDefined","getNetworkById","resourceNetworkRegion","reg","region","regionName","selectedNetworkFunctionChange","checkIfExist","given","sure","searchPerson","contentElement","showHprSearch","hprSearchController","fullscreen","inputPerson","selectedPerson","givenName","sureName","birthDate","hprInformation","authorizations","pro","hprRole","profession","codeText","codeValue","hprNumber","hprValidFrom","valid","from","hprValidTo","to","lastChanged","spesRole","specialityValidFrom","specialityValidTo","showWorkplace","searchWorkplaceController","inputWork","newWorkplace","getPersonById","searchName","searchHprName","searchNumber","searchHprNumber","selectHprPerson","isNumber","n","isNaN","parseFloat","isFinite","workOrig","results","importWorkplace","clear","selectedInstIndex","searchWorkplace","selectWorkplace","showDelete","hprRoleOrig","noDelete","okDelete","saveHpr","deleteNewHpr","resetNewHpr","SpesRoleOrig","deleteNewSpes","saveSpes","resetNewSpes","selectedLeader","searchLeader","searchLeaderResults","selectLeader","networkListController","networkEdit","network","networkId","networkController","searchL","searchUnitResults","searchU","searchUDone","removeLeader","resourceNetworkForm","removeUnit","regionSelectionChanged","unit","selectUnit","searchUnit","getNetworkModel","resourceNetworkOrig","resetNetwork","unitRegions","newRegion","resourceNetworkId","regionId","deleteNetwork","saveResourceNetwork","changeNetwork","createNewNetwork","e","networkSearchController","mainController","groups","getGroups","sortBy","resetPasswordController","jwtHelper","$timeout","token","loading","user","validToken","init","tp1","tp2","tp3","t","decodeToken","sub","isTokenExpired","err","counter","timer","gotoFrontPage","resetPass","updatePass","status","registerController","listController","showFilters","institutionTypes","listNetworks","listKommuner","listFunctions","listInstitutionTypes","listGroup","mainTableCol","sort","institutionType","trim","boolean","mainSelectedTableCol","saveMainTableColumn","emailOne","href","showCol","colName","v","getSelectedColText","isValid","date","selectedDate","setHours","getResourceNetworks","getGroupByName","ng","resourceNetworkGroup","chain","map","elm","unique","getInstitutionsTypes","getInstitutionTypes","getListAll","elm2","flatten","elm3","institutionListController","institutions","institutionEdit","institutionId","getInstitutions","displayedInstitutions","combineInstitustionController","combineInstitution","institutionController","getInstitutionModel","institutionOrig","getTypes","deleteInstitution","saveInstitution","creatOrUpdateInstitution","institutionForm","getInstitutionById","groupListController","groupEdit","g","networkGroupId","groupController","isUndefinedOrNull","val","isUndefined","resourceNetworkGroupOrig","getGroupModel","getGroupTypes","groupTypes","resetGroup","resourceNetworkGroupForm","groupSelectionChanged","rn","newGroup","groupId","deleteGroup","saveGroup","changeNetworkGroup","resourceNetworGroupOrig","createNewNetworkGroup","getNetworkGroups","getGroupsById","codingSystemController","columns","rows","codeMeta","newName","getRegions","getUnits","getRegionsShallow","result2","regions","selectRow","showModal","model","getCodeModel","inn","editCodingSystemController","response","u","attrname","findSelectedRegions","selectedRegions","regionsOrig","inputOrig","disabled","transformChip","chip","isObject","searchText","querySearch","query","lowercaseQuery","toLowerCase","regionCode","createFilterFor","regionChange","UnitId","deleteCode","deleteGroupType","resetCode","form","onChange","cbState","saveOrUpdate","creatOrUpdateCode","adminController"],"mappings":"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","file":"ngController.23f6f910914e1b472921.bundle.js","sourcesContent":["module.exports = \"\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n

Velg den som skal beholdes

\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Org. Nr.NavnTelefonAdresseInstitusjonPostnr.Sted
{{row.code}}{{row.name| titleCase}}{{row.phone}}{{row.address}}{{row.institution.name}}{{row.postalCode}}{{row.postalName}}
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Avbryt\\r\\n \\r\\n \\r\\n 0\\\" ng-click=\\\"ok()\\\">\\r\\n \\r\\n \\r\\n \\r\\n OK\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\";","// Copyright (c) 2016 HVIKT AS\r\n(function() {\r\n 'use strict';\r\n\r\n angular\r\n .module('app')\r\n .controller('workplaceListController', workplaceListController);\r\n\r\n workplaceListController.$inject = ['$scope', '$http', '$state', 'dataService', '$mdDialog','$mdMedia'];\r\n combineWorkplaceController.$inject = ['$scope', '$mdDialog', 'dataService', 'input', '$mdToast'];\r\n\r\n function workplaceListController($scope, $http, $state, dataServiceOp, $mdDialog, $mdMedia) {\r\n var vm = this;\r\n //http://iamisti.github.io/mdDataTable/\r\n vm.currentState = $state.current.name; \r\n vm.states = $state.get();\r\n vm.workplaces = [];\r\n vm.showFilter = $mdMedia('gt-sm'); \r\n vm.tableLoading = false;\r\n vm.itemsByPage = 20;\r\n vm.workplaceEdit = function (workplace) {\r\n $state.go('admin.workplace', { workplaceId: workplace.id });\r\n }\r\n\r\n vm.createNew = function () {\r\n $state.go('admin.workplace', { workplaceId: 0});\r\n }\r\n\r\n\r\n\r\n\r\n /**@function Function for retrieving data from the API*/\r\n vm.getWorkplaces = function () {\r\n vm.tableLoading = true;\r\n dataServiceOp.getWorkplaces()\r\n .then(function (result) {\r\n vm.workplaces = result.data;\r\n vm.tableLoading = false;\r\n }, function () {\r\n vm.tableLoading = false;\r\n });\r\n };\r\n vm.toggleLeft = function () {\r\n vm.showFilter = !vm.showFilter;\r\n }\r\n\r\n\r\n\r\n vm.combineSelected = function (ev) {\r\n var selected = vm.displayedWorkplaces.filter(function (item) {\r\n return item.isSelected === true;\r\n })\r\n\r\n $mdDialog.show({\r\n controller: combineWorkplaceController,\r\n template: require('./combineWorkplace.tmpl.html'),\r\n parent: angular.element(document.body),\r\n targetEvent: ev,\r\n clickOutsideToClose: true,\r\n locals: { input: selected }\r\n }).then(function (selectedWorkplace) {\r\n\r\n angular.forEach(selected, function (value) {\r\n if (value.id !== selectedWorkplace.id) {\r\n var index = vm.displayedWorkplaces.indexOf(value);\r\n vm.displayedWorkplaces.splice(index, 1);\r\n }\r\n });\r\n\r\n }, function (error) {\r\n console.log(error);\r\n //user cancel\r\n });\r\n\r\n //do something with selected\r\n };\r\n\r\n vm.hasNoSelectedRows = function() {\r\n return vm.displayedWorkplaces.filter(function(item) {\r\n return item.isSelected === true;\r\n }).length === 0;\r\n }\r\n\r\n\r\n\r\n vm.getWorkplaces();\r\n\r\n }\r\n function combineWorkplaceController($scope, $mdDialog, dataServiceOp, input, $mdToast) {\r\n\r\n if (input && input.length !== 0) {\r\n\r\n $scope.listOrig = input;\r\n } else {\r\n $scope.listOrig = [];\r\n }\r\n\r\n \r\n angular.forEach($scope.listOrig, function (item) {\r\n item.isSelected = false;\r\n });\r\n\r\n $scope.list = angular.copy($scope.listOrig);\r\n\r\n $scope.result = {};\r\n $scope.tableLoading = false;\r\n\r\n $scope.showSimpleToast = function (text) {\r\n $mdToast.show(\r\n $mdToast.simple()\r\n .textContent(text)\r\n .position('top right')\r\n .hideDelay(3000)\r\n );\r\n };\r\n\r\n\r\n $scope.selectedRow = function () {\r\n return $scope.list.filter(function (item) {\r\n return item.isSelected === true;\r\n });\r\n }\r\n\r\n\r\n\r\n $scope.selectedIndex = null;\r\n\r\n $scope.hide = function () {\r\n $mdDialog.hide();\r\n };\r\n\r\n $scope.cancelDialog = function () {\r\n $mdDialog.cancel();\r\n };\r\n\r\n $scope.ok = function () {\r\n var selected = $scope.list.filter(function (item) {\r\n return item.isSelected === true;\r\n });\r\n dataServiceOp.combineWorkplace($scope.listOrig, selected[0])\r\n .then(function (result) {\r\n if (result.data) {\r\n $mdDialog.hide(selected[0]);\r\n }\r\n }, function (error) {\r\n $scope.showSimpleToast('Problem med å lagre data i database.' + error.message);\r\n });\r\n };\r\n\r\n\r\n\r\n }\r\n\r\n \r\n\r\n})();","module.exports = \"\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n

{{heading}}

\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n {{searchResults.length}} Treff1\\\">, velg en:\\r\\n \\r\\n \\r\\n {{hit.InstitutionType.name | limitTo : 3}}\\r\\n \\r\\n
\\r\\n

{{hit.name}}

\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Avbryt\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Velg\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\";","// Copyright (c) 2016 HVIKT AS\r\n(function() {\r\n 'use strict';\r\n\r\n angular\r\n .module('app')\r\n .controller('workplaceController', workplaceController);\r\n\r\n workplaceController.$inject = ['$scope', '$http', '$state', 'dataService', '$stateParams', '$mdDialog','$mdToast'];\r\n workplaceSearchController.$inject = ['$scope', '$mdDialog', '$filter', 'input', 'dataService'];\r\n\r\n function workplaceController($scope, $http, $state, dataServiceOp, $stateParams, $mdDialog, $mdToast) {\r\n var vm = this;\r\n vm.currentState = $state.current.name; \r\n vm.states = $state.get();\r\n vm.searchDone = false;\r\n\r\n\r\n vm.toList = function () {\r\n $state.go('admin.workplaceList');\r\n }\r\n \r\n vm.searchInstResults = [];\r\n vm.searchI = \"\";\r\n vm.removeInst = function () {\r\n vm.workplace.institution = null;\r\n }\r\n\r\n vm.searchInst = function () {\r\n var search = vm.searchI;\r\n dataServiceOp.searchInst(search)\r\n .then(function (result) {\r\n vm.searchInstResults = result.data;\r\n vm.searchDone = true;\r\n }, function (error) {\r\n vm.showSimpleToast('Problem med å søke: ' + error.message);\r\n });\r\n }\r\n vm.showSimpleToast = function (text) {\r\n $mdToast.show(\r\n $mdToast.simple()\r\n .textContent(text)\r\n .position('top right')\r\n .hideDelay(3000)\r\n );\r\n };\r\n vm.selectInst = function (index, hit) {\r\n vm.workplace.institution = angular.copy(hit);\r\n vm.searchInstResults = [];\r\n vm.searchI = '';\r\n vm.searchDone = false;\r\n }\r\n\r\n vm.resetWorkplace = function () {\r\n vm.workplace = angular.copy(vm.workplaceOrig);\r\n vm.searchI = \"\";\r\n vm.workplaceForm.$setUntouched();\r\n vm.workplaceForm.$setPristine();\r\n }\r\n\r\n vm.newMunicipality = function() {\r\n dataServiceOp.searchPostalNumber(vm.workplace.postalCode).then(function(result) {\r\n vm.workplace.postalName = result.data.result;\r\n },\r\n function(error) {\r\n vm.showSimpleToast('Problem med å hente data fra database.' + error.message);\r\n });\r\n };\r\n vm.getModel = function () {\r\n dataServiceOp.getWorkplaceModel()\r\n .then(function (result) {\r\n vm.workplace = result.data;\r\n vm.workplaceOrig = angular.copy(vm.workplace);\r\n }, function (error) {\r\n vm.showSimpleToast('Problem med å hente data fra database.' + error.message);\r\n });\r\n };\r\n\r\n\r\n\r\n vm.showDeleteConfirm = function (ev) {\r\n // Appending dialog to document.body to cover sidenav in docs app\r\n var confirm = $mdDialog.confirm()\r\n .title('Slette arbeidsplass?')\r\n .textContent('Er du sikker på at du vil slette denne organisasjonen?')\r\n .ariaLabel('Slett')\r\n .targetEvent(ev)\r\n .ok('Ja, slett')\r\n .cancel('Avbryt');\r\n\r\n $mdDialog.show(confirm).then(function () {\r\n dataServiceOp.deleteWorkplace(vm.workplace.id)\r\n .then(function () {\r\n vm.toList();\r\n vm.showSimpleToast('Arbeidsplass fjernet.');\r\n },\r\n function (error) {\r\n vm.showSimpleToast('Problem med å slette arbeidsplass.' + error.message);\r\n });\r\n }, function () {\r\n // user cancel\r\n });\r\n };\r\n\r\n\r\n vm.saveWorkplace = function(workplace) {\r\n dataServiceOp.creatOrUpdateWorkplace(workplace)\r\n .then(function () {\r\n vm.showSimpleToast('Endring lagret ok.');\r\n vm.workplaceForm.$setUntouched();\r\n vm.workplaceForm.$setPristine();\r\n },\r\n function (error) {\r\n vm.showSimpleToast('Problem med å lagre data i database.' + error.message);\r\n });\r\n\r\n };\r\n\r\n\r\n if ($stateParams.workplaceId > 0) {\r\n dataServiceOp.getWorkplaceById($stateParams.workplaceId)\r\n .then(function (result) {\r\n vm.workplace = result.data;\r\n vm.workplaceOrig = angular.copy(vm.workplace);\r\n },\r\n function (error) {\r\n vm.showSimpleToast('Problem med å hente data i database.' + error.message);\r\n });\r\n vm.commingFromList = true;\r\n } else {\r\n vm.getModel();\r\n }\r\n\r\n\r\n vm.showSearch = function (ev, input, type) {\r\n\r\n $mdDialog.show({\r\n controller: workplaceSearchController,\r\n template: require('./workplaceSearch.tmpl.html'),\r\n parent: angular.element(document.body),\r\n targetEvent: ev,\r\n clickOutsideToClose: true,\r\n locals: { input: input, type: type }\r\n }).then(function (returnValue) {\r\n vm.workplace.institution = angular.copy(returnValue.selected);\r\n }, function () {\r\n // user cancel\r\n });\r\n }\r\n }\r\n\r\n function workplaceSearchController($scope, $mdDialog, $filter, input, dataService) {\r\n\r\n $scope.input = angular.copy(input);\r\n $scope.heading = \"Søk på Institusjon/ hovedorganisasjon\";\r\n $scope.returnValue = {};\r\n $scope.returnValue.input = $scope.input;\r\n $scope.returnValue.selected = [];\r\n \r\n $scope.select = function (index, selected) {\r\n $scope.returnValue.selected = selected;\r\n };\r\n $scope.cancel = function () {\r\n $mdDialog.cancel();\r\n };\r\n\r\n $scope.ok = function () {\r\n $mdDialog.hide($scope.returnValue);\r\n };\r\n\r\n\r\n $scope.searchInst = function (search) {\r\n dataService.searchInstitution(search)\r\n .then(function (result) {\r\n $scope.searchResults = result.data;\r\n }, function (error) {\r\n window.console && console.log(\"Problem med søk: \" +error.message);\r\n });\r\n $scope.searchDone = true;\r\n }\r\n $scope.searchInst($scope.input);\r\n\r\n }\r\n \r\n\r\n})();","// Copyright (c) 2016 HVIKT AS\r\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('app')\r\n .controller('usersListController', usersListController);\r\n\r\n usersListController.$inject = ['$scope','auth' , '$http', '$state', 'dataService'];\r\n\r\n function usersListController($scope, auth,$http,$state,dataServiceOp) {\r\n var vm = this;\r\n // Lagrer om bruker har tilgang\r\n vm.hasAccess = auth;\r\n \r\n vm.users = [];\r\n vm.tableLoading = false;\r\n vm.itemsByPage = 20;\r\n vm.usersEdit = function (users) {\r\n $state.go('admin.users', { usersId: users.id });\r\n }\r\n\r\n vm.usersNew = function () {\r\n $state.go('admin.users', { usersId: 0});\r\n }\r\n\r\n\r\n\r\n\r\n /**@function Function for retrieving data from the API*/\r\n vm.getusers = function () {\r\n vm.tableLoading = true;\r\n dataServiceOp.getAllUsers()\r\n .then(function (result) {\r\n vm.users = result.data;\r\n vm.tableLoading = false;\r\n }, function () {\r\n vm.tableLoading = false;\r\n });\r\n };\r\n \r\n vm.usersToggleActivation = function (row){\r\n row.enabled = !row.enabled;\r\n dataServiceOp.updateUser(row) \r\n .then(function (result) {\r\n\r\n });\r\n }\r\n \r\n vm.getusers();\r\n\r\n }\r\n\r\n \r\n \r\n})();","// Copyright (c) 2016 HVIKT AS\r\n(function() {\r\n 'use strict';\r\n\r\n angular\r\n .module('app')\r\n .controller('usersController', usersController);\r\n\r\n usersController.$inject = ['$scope', '$http', '$state', 'dataService', '$stateParams', '$mdDialog','$mdToast'];\r\n \r\n function usersController($scope, $http, $state, dataServiceOp, $stateParams, $mdDialog, $mdToast) {\r\n var vm = this;\r\n vm.currentState = $state.current.name; \r\n vm.states = $state.get();\r\n vm.searchDone = false;\r\n vm.password = null;\r\n vm.users = { id: 0, firstName: \"\", lastName: \"\", email: \"\", password: \"\", enabled: true, hasAdminRights: false , sendMail: true};\r\n vm.toList = function () {\r\n $state.go('admin.usersList');\r\n }\r\n \r\n vm.searchInstResults = [];\r\n vm.searchI = \"\";\r\n \r\n vm.showSimpleToast = function (text) {\r\n $mdToast.show(\r\n $mdToast.simple()\r\n .textContent(text)\r\n .position('top right')\r\n .hideDelay(3000)\r\n );\r\n };\r\n\r\n vm.resetusers = function() {\r\n vm.users = angular.copy(vm.usersOrig);\r\n vm.searchI = \"\";\r\n vm.usersForm.$setUntouched();\r\n vm.usersForm.$setPristine();\r\n };\r\n\r\n \r\n vm.getModel = function () {\r\n vm.users = { id: 0, firstName: \"\", lastName: \"\", email: \"\", password: \"\", enabled: true, hasAdminRights: false, sendMail: true};\r\n vm.usersOrig = angular.copy(vm.users);\r\n };\r\n\r\n\r\n\r\n vm.showDeleteConfirm = function (ev) {\r\n // Appending dialog to document.body to cover sidenav in docs app\r\n var confirm = $mdDialog.confirm()\r\n .title('Slette bruker?')\r\n .textContent('Er du sikker på at du vil slette denne brukeren?')\r\n .ariaLabel('Slett')\r\n .targetEvent(ev)\r\n .ok('Ja, slett')\r\n .cancel('Avbryt');\r\n\r\n $mdDialog.show(confirm).then(function () {\r\n dataServiceOp.deleteUser(vm.users.id)\r\n .then(function () {\r\n vm.toList();\r\n vm.showSimpleToast('Bruker fjernet.');\r\n },\r\n function (error) {\r\n vm.showSimpleToast('Problem med å slette bruker.' + error.message);\r\n });\r\n }, function () {\r\n // user cancel\r\n });\r\n };\r\n\r\n\r\n vm.saveusers = function(users) {\r\n\r\n if(users.id && users.id >0){\r\n users.password = vm.password;\r\n dataServiceOp.updateUser(users)\r\n .then(function () {\r\n vm.showSimpleToast('Endring lagret ok.');\r\n vm.usersForm.$setUntouched();\r\n vm.usersForm.$setPristine();\r\n },\r\n function (error) {\r\n vm.showSimpleToast('Problem med å lagre data i database.' + error.message);\r\n });\r\n\r\n }else{\r\n\r\n dataServiceOp.registerUser(users)\r\n .then(function () {\r\n vm.showSimpleToast('Endring lagret ok.');\r\n vm.usersForm.$setUntouched();\r\n vm.usersForm.$setPristine();\r\n },\r\n function (error) {\r\n vm.showSimpleToast('Problem med å lagre data i database.' + error.message);\r\n });\r\n\r\n\r\n }\r\n\r\n };\r\n\r\n\r\n if ($stateParams.usersId > 0) {\r\n dataServiceOp.getUserById($stateParams.usersId)\r\n .then(function (result) {\r\n vm.users = result.data;\r\n vm.usersOrig = angular.copy(vm.users);\r\n },\r\n function (error) {\r\n vm.showSimpleToast('Problem med å hente data i database.' + error.message);\r\n });\r\n vm.commingFromList = true;\r\n } else {\r\n vm.getModel();\r\n }\r\n\r\n\r\n \r\n }\r\n\r\n \r\n\r\n})();","// Copyright (c) 2016 HVIKT AS\r\n(function() {\r\n 'use strict';\r\n\r\n angular\r\n .module('app')\r\n .controller('statController', statController);\r\n\r\n statController.$inject = ['$scope', '$http', '$state','dataService'];\r\n\r\n function statController($scope, $http, $state, dataServiceOp) {\r\n var vm = this;\r\n vm.currentState = $state.current.name;\r\n vm.currentChart = 0;\r\n vm.currentBarChart = 0;\r\n vm.doughnutText = \"\";\r\n\r\n vm.barText = \"\";\r\n vm.barSeries = [];\r\n vm.barLabels = [];\r\n vm.barData = [];\r\n vm.barCharts = [];\r\n vm.barOptions = [];\r\n vm.barTable = [];\r\n vm.barTableName = \"\";\r\n vm.doughnutTableCol = [\r\n [{ header: 'Foretak', source: 'value', type: 'string' },\r\n { header: '', source: 'value2', type: 'string' },\r\n { header: 'Antall', source: 'antall', type: 'int' }],\r\n [{ header: 'Helsetjenesterolle', source: 'value', type: 'string' },\r\n { header: '', source: 'value2', type: 'string' },\r\n { header: 'Antall', source: 'antall', type: 'int' }],\r\n \r\n [{ header: 'Institusjonstype', source: 'value', type: 'string' },\r\n { header: '', source: 'value2', type: 'string' },\r\n { header: 'Antall', source: 'antall', type: 'int' }],\r\n [{ header: 'Nettverksgruppe', source: 'value', type: 'string' },\r\n { header: '', source: 'value2', type: 'string' },\r\n { header: 'Antall', source: 'antall', type: 'int' }],\r\n [{ header: 'Videreutdanning', source: 'value', type: 'string' },\r\n { header: '', source: 'value2', type: 'string' },\r\n { header: 'Antall', source: 'antall', type: 'int' }],\r\n ];\r\n\r\n\r\n vm.doughnutLabels = [];\r\n vm.doughnutData = [];\r\n vm.doughnutCharts = [];\r\n vm.doughnutTable = [];\r\n vm.doughnutTableName = \"\";\r\n vm.barTableCol = [\r\n [{ header: 'År', source: 'value', type: 'string' },\r\n { header: '', source: 'value2', type: 'string' },\r\n { header: 'Antall', source: 'antall', type: 'int' }],\r\n [{ header: 'År', source: 'value', type: 'string' },\r\n { header: 'Foretak', source: 'value2', type: 'string' },\r\n { header: 'Antall', source: 'antall', type: 'int' }]\r\n ];\r\n\r\n vm.findProp = function (obj, prop, defval) {\r\n if (typeof defval === 'undefined') {\r\n defval = null;\r\n }\r\n prop = prop.split('.');\r\n for (var i = 0; i < prop.length; i++) {\r\n if (obj[prop[i]] === null) {\r\n return defval;\r\n }\r\n obj = obj[prop[i]];\r\n }\r\n return obj;\r\n }\r\n\r\n vm.doughnutOption = {\r\n legend: {\r\n display: true,\r\n position: 'right'},\r\n title: {\r\n display: true, text: vm.doughnutText\r\n },\r\n animation: {\r\n onComplete: function () {\r\n vm.setDisplay(this);\r\n }\r\n }\r\n \r\n };\r\n\r\n vm.optionsBar = {\r\n legend: {\r\n display: true,\r\n position: 'right'\r\n },\r\n scales: {\r\n yAxes: [{\r\n id: 'y-axis-0',\r\n gridLines: {\r\n display: true,\r\n lineWidth: 1,\r\n color: \"rgba(0,0,0,0.30)\"\r\n },\r\n ticks: {\r\n beginAtZero: true,\r\n mirror: false,\r\n suggestedMin: 0\r\n },\r\n afterBuildTicks: function () {\r\n //nothing\r\n }\r\n }],\r\n xAxes: [{\r\n id: 'x-axis-0',\r\n gridLines: {\r\n display: false\r\n },\r\n ticks: {\r\n beginAtZero: true\r\n }\r\n }]\r\n },\r\n animation: {\r\n onComplete: function () {\r\n vm.setDisplayBar(this);\r\n }\r\n }\r\n };\r\n vm.barOptions.push({\r\n scales: {\r\n yAxes: [{\r\n id: 'y-axis-0',\r\n gridLines: {\r\n display: true,\r\n lineWidth: 1,\r\n color: \"rgba(0,0,0,0.30)\"\r\n },\r\n ticks: {\r\n beginAtZero: true,\r\n mirror: false,\r\n suggestedMin: 0\r\n },\r\n afterBuildTicks: function () {\r\n //nothing\r\n }\r\n }],\r\n xAxes: [{\r\n id: 'x-axis-0',\r\n gridLines: {\r\n display: false\r\n },\r\n ticks: {\r\n beginAtZero: true\r\n }\r\n }]\r\n },\r\n animation: {\r\n onComplete: function () {\r\n vm.setDisplayBar(this);\r\n }\r\n }});\r\n vm.barOptions.push(vm.optionsBar);\r\n\r\n\r\n vm.getChart0 = function () {\r\n dataServiceOp.personsGroupByForetak()\r\n .then(function (result) {\r\n var labels = [];\r\n var values = [];\r\n vm.doughnutTableName = \"RessursPerForetak\";\r\n vm.doughnutTable = result.data;\r\n angular.forEach(result.data,\r\n function (itm) {\r\n if (itm.value === \"\") {\r\n itm.value = \"Ingen verdi\";\r\n }\r\n labels.push(itm.value);\r\n values.push(itm.antall);\r\n });\r\n\r\n vm.doughnutLabels[0] = labels;\r\n vm.doughnutData[0] = values;\r\n });\r\n };\r\n vm.getChart1 = function () {\r\n dataServiceOp.personsGroupByHealthcareRole()\r\n .then(function (result) {\r\n vm.doughnutTableName = \"RessursPerHelsetjenesterolle\";\r\n var labels = [];\r\n var values = [];\r\n vm.doughnutTable = result.data;\r\n angular.forEach(result.data,\r\n function (itm) {\r\n if (itm.value === \"\") {\r\n itm.value = \"Ingen verdi\";\r\n }\r\n labels.push(itm.value);\r\n values.push(itm.antall);\r\n });\r\n\r\n vm.doughnutLabels[1] = labels;\r\n vm.doughnutData[1] = values;\r\n });\r\n };\r\n vm.getChart4 = function () {\r\n dataServiceOp.personsGroupBySpeciality()\r\n .then(function (result) {\r\n vm.doughnutTableName = \"RessursPerVidereutdanning\";\r\n var labels = [];\r\n var values = [];\r\n vm.doughnutTable = result.data;\r\n angular.forEach(result.data,\r\n function (itm) {\r\n if (itm.value === \"\") {\r\n itm.value = \"Ingen verdi\";\r\n }\r\n labels.push(itm.value);\r\n values.push(itm.antall);\r\n });\r\n\r\n vm.doughnutLabels[4] = labels;\r\n vm.doughnutData[4] = values;\r\n });\r\n };\r\n vm.getChart2 = function () {\r\n dataServiceOp.personsGroupByInstitutionType()\r\n .then(function (result) {\r\n vm.doughnutTableName = \"RessursPerInstitusjonstype\";\r\n var labels = [];\r\n var values = [];\r\n vm.doughnutTable = result.data;\r\n angular.forEach(result.data,\r\n function (itm) {\r\n if (itm.value === \"\") {\r\n itm.value = \"Ingen verdi\";\r\n }\r\n labels.push(itm.value);\r\n values.push(itm.antall);\r\n });\r\n\r\n vm.doughnutLabels[2] = labels;\r\n vm.doughnutData[2] = values;\r\n });\r\n }; \r\n vm.getChart3 = function () {\r\n dataServiceOp.personsGroupByNetworkGroup()\r\n .then(function (result) {\r\n vm.doughnutTableName = \"RessursPerNettverksgruppe\";\r\n var labels = [];\r\n var values = [];\r\n vm.doughnutTable = result.data;\r\n angular.forEach(result.data,\r\n function (itm) {\r\n if (itm.value === \"\") {\r\n itm.value = \"Ingen verdi\";\r\n }\r\n labels.push(itm.value);\r\n values.push(itm.antall);\r\n });\r\n\r\n vm.doughnutLabels[3] = labels;\r\n vm.doughnutData[3] = values;\r\n });\r\n };\r\n\r\n vm.getBarChart0 = function () {\r\n dataServiceOp.yearlyByYear()\r\n .then(function (result) {\r\n var labels = [];\r\n var values = [];\r\n vm.barTable = result.data;\r\n vm.barTableName = \"AArlig\";\r\n angular.forEach(result.data,\r\n function (itm) {\r\n if (itm.value === \"\") {\r\n itm.value = \"Ingen verdi\";\r\n }\r\n labels.push(itm.value);\r\n values.push(itm.antall);\r\n });\r\n\r\n vm.barLabels[0] = labels;\r\n vm.barData[0] = values;\r\n });\r\n };\r\n vm.getBarChart1 = function () {\r\n dataServiceOp.yearlyByUnitYear()\r\n .then(function (result) {\r\n var labels = [];\r\n var values = [];\r\n var series = [];\r\n vm.barTable = result.data;\r\n vm.barTableName = \"AArligPerForetak\";\r\n var yeraly = _.groupBy(result.data, 'value2');\r\n \r\n angular.forEach(yeraly,\r\n function (itm) {\r\n var seriesValue = [];\r\n angular.forEach(itm,\r\n function (itm2) {\r\n if (series.indexOf(itm2.value2) < 0) {\r\n series.push(itm2.value2);\r\n }\r\n\r\n if (labels.indexOf(itm2.value) <0) {\r\n labels.push(itm2.value);\r\n }\r\n seriesValue.push(itm2.antall);\r\n \r\n });\r\n values.push(seriesValue);\r\n });\r\n \r\n vm.barSeries[1] = series;\r\n vm.barLabels[1] = labels;\r\n vm.barData[1] = values;\r\n });\r\n };\r\n\r\n\r\n vm.barCharts = [{ id: 0, name: \"Årlig\", func: vm.getBarChart0 },\r\n { id: 1, name: \"Årlig per foretak\", func: vm.getBarChart1 }];\r\n\r\n\r\n \r\n vm.doughnutCharts = [{ id: 0, name: \"Foretak\", func: vm.getChart0 },\r\n { id: 1, name: \"Helsetjenesterolle\", func: vm.getChart1 },\r\n { id: 4, name: \"Videreutdanning\", func: vm.getChart4 },\r\n { id: 2, name: \"Institusjonstype\", func: vm.getChart2 },\r\n { id: 3, name: \"Nettverksgruppe\", func: vm.getChart3 }];\r\n\r\n\r\n\r\n vm.showChart = function() {\r\n vm.selectedDoughnut.func();\r\n vm.currentChart = vm.selectedDoughnut.id;\r\n\r\n\r\n };\r\n\r\n vm.showBarChart = function () {\r\n vm.selectedBar.func();\r\n vm.currentBarChart = vm.selectedBar.id;\r\n };\r\n\r\n vm.setDisplay = function (input) {\r\n var total = input.data.datasets[0]._meta[input.id].total;\r\n $scope.$apply(function () {\r\n vm.doughnutText = \"Totalt \" + total;\r\n });\r\n };\r\n vm.setDisplayBar = function () {\r\n \r\n $scope.$apply(function () {\r\n vm.barText = \"\";\r\n });\r\n };\r\n vm.selectedDoughnut = vm.doughnutCharts[0];\r\n vm.selectedBar = vm.barCharts[0];\r\n vm.showChart();\r\n vm.showBarChart();\r\n }\r\n})();","// Copyright (c) 2016 HVIKT AS\r\n(function() {\r\n 'use strict';\r\n\r\n angular\r\n .module('app')\r\n .controller('personListController', personListController);\r\n\r\n personListController.$inject = ['$scope', '$http', '$state', 'dataService','$mdMedia'];\r\n\r\n function personListController($scope, $http, $state, dataServiceOp, $mdMedia) {\r\n var vm = this;\r\n //http://iamisti.github.io/mdDataTable/\r\n vm.currentState = $state.current.name; \r\n vm.states = $state.get();\r\n vm.people = [];\r\n vm.showFilter = $mdMedia('gt-sm'); \r\n vm.itemsByPage = 20;\r\n vm.tableLoading = false;\r\n\r\n vm.personEdit = function (person) {\r\n $state.go('admin.person', { personId: person.id });\r\n }\r\n\r\n vm.createNew = function () {\r\n $state.go('admin.person', { personId: 0 });\r\n }\r\n /**@function Function for retrieving data from the API*/\r\n vm.getPersons = function () {\r\n vm.people = [];\r\n vm.tableLoading = true;\r\n dataServiceOp.getPersons()\r\n .then(function (result) {\r\n vm.people = result.data;\r\n vm.tableLoading = false;\r\n }, function () {\r\n vm.tableLoading = false;\r\n });\r\n };\r\n\r\n vm.getDeactivatedPersons = function () {\r\n vm.people = [];\r\n vm.tableLoading = true;\r\n dataServiceOp.getDeactivatedPersons()\r\n .then(function (result) {\r\n vm.people = result.data;\r\n vm.tableLoading = false;\r\n }, function () {\r\n vm.tableLoading = false;\r\n });\r\n };\r\n\r\n vm.toggleLeft = function () {\r\n vm.showFilter = !vm.showFilter;\r\n }\r\n vm.calculateAge = function (birthday) { // birthday is a date\r\n var dateTime = new Date(birthday);\r\n var ageDifMs = Date.now() - dateTime.getTime();\r\n var ageDate = new Date(ageDifMs); // miliseconds from epoch\r\n return Math.abs(ageDate.getUTCFullYear() - 1970);\r\n }\r\n \r\n\r\n }\r\n\r\n \r\n\r\n})();","module.exports = \"\\r\\n
\\r\\n \\r\\n
\\r\\n

Søk opp, endre eller legg til arbeidsplass

\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n

Arbeidsplass

\\r\\n

\\r\\n Søk opp eller opprett ny arbeidsplass\\r\\n

\\r\\n

{{workplace.name}}

\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Søk\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Ny\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n Ingen treff\\r\\n
\\r\\n
0\\\" flex-offset=\\\"5\\\" flex=\\\"90\\\">\\r\\n \\r\\n \\r\\n {{searchResults.length}} Treff1\\\">, velg en:\\r\\n \\r\\n \\r\\n {{hit.name | limitTo : 2}}\\r\\n \\r\\n
\\r\\n

{{hit.name}}

\\r\\n

Orgnr: {{hit.code}}

\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
Dette feltet kreves.
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Søk\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Fjern\\r\\n \\r\\n
\\r\\n
0 && !workplace.institution\\\">\\r\\n \\r\\n \\r\\n {{searchInstResults.length}} Treff1\\\">, velg en:\\r\\n \\r\\n \\r\\n {{hit.name | limitTo : 2}}\\r\\n \\r\\n
\\r\\n

\\r\\n {{hit.name}} \\r\\n

\\r\\n

Orgnr: {{hit.code}}

\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n Fjern\\r\\n \\r\\n \\r\\n \\r\\n Ok\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Reset\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Lagre\\r\\n \\r\\n \\r\\n
\\r\\n
\";","module.exports = \"\\r\\n
\\r\\n \\r\\n
\\r\\n

Søk i Statens autorisasjonskontor for helsepersonell

\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n

Søk på helsepersonellnummer eller navn

\\r\\n

\\r\\n Helsepersonellregisteret inneholder helsepersonells autorisasjoner og spesialiteter\\r\\n

\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Søk\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Søk\\r\\n \\r\\n
\\r\\n
\\r\\n
0\\\">\\r\\n \\r\\n \\r\\n {{searchResults.length}} Treff1\\\">, velg en:\\r\\n \\r\\n \\r\\n {{calculateAge(hit.birthDate)}}\\r\\n \\r\\n
\\r\\n

{{hit.lastName}}, {{hit.firstName}}

\\r\\n

Hprnr: {{hit.hprInformation.hprNo}}

\\r\\n
\\r\\n

{{h.profession.codeText}} ({{h.valid.to|date : longDate}})

\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n Avbryt\\r\\n \\r\\n \\r\\n Ok\\r\\n \\r\\n \\r\\n
\\r\\n
\";","module.exports = \"\\r\\n
\\r\\n \\r\\n
\\r\\n

Søk i Statens autorisasjonskontor for helsepersonell

\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n

\\r\\n Søk på fornavn, etternavn eller fullt navn.\\r\\n

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Søk\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Fjern\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n {{searchLeaderResults.length}} Treff\\r\\n \\r\\n \\r\\n
\\r\\n
0\\\">\\r\\n \\r\\n \\r\\n {{searchLeaderResults.length}} Treff1\\\">, velg en:\\r\\n \\r\\n \\r\\n {{hit.sureName | limitTo : 2}}\\r\\n \\r\\n
\\r\\n

{{hit.sureName}},{{hit.givenName}}

\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n Avbryt\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\";","module.exports = \"\\r\\n
\\r\\n \\r\\n
\\r\\n

Videreutdanning

\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n

Er du sikker på at du vil slette denne rollen?

\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n

\\r\\n Informasjon om videreutdanninger kan også importeres fra SAFH\\r\\n

\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n AktivIkke aktiv\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Kan benyttes for å overstyre Videreutdanning
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
Dette feltet kreves.
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Avbryt\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Slett\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Slett\\r\\n \\r\\n \\r\\n \\r\\n Ok\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Reset\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Lagre\\r\\n \\r\\n \\r\\n
\\r\\n
\";","module.exports = \"\\r\\n
\\r\\n \\r\\n
\\r\\n

Helsepersonellrolle

\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n

Er du sikker på at du vil slette denne rollen?

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n

\\r\\n Informasjon om helsepersonellroller kan også importeres fra SAFH\\r\\n

\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n AktivIkke aktiv\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Kan benyttes for å overstyre helsepersonelltype
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
Dette feltet kreves.
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Avbryt\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Slett\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Slett\\r\\n \\r\\n \\r\\n \\r\\n Ok\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Reset\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Lagre\\r\\n \\r\\n \\r\\n
\\r\\n
\";","// Copyright (c) 2016 HVIKT AS\r\n(function() {\r\n 'use strict';\r\n\r\n angular\r\n .module('app')\r\n .controller('personController', personController);\r\n\r\n personController.$inject = ['$scope', '$http', '$state', 'dataService', '$mdDialog', '$stateParams', '$mdToast'];\r\n hprSearchController.$inject = ['$scope', '$mdDialog', 'dataService', '$mdToast','inputPerson'];\r\n newHprController.$inject = ['$scope', '$mdDialog', 'inputHpr', '$mdToast'];\r\n newSpesController.$inject = ['$scope', '$mdDialog', 'inputSpes', '$mdToast', 'dataService'];\r\n searchWorkplaceController.$inject = ['$scope', '$mdDialog', 'dataService', 'inputWork', '$mdToast'];\r\n leaderSearchController.$inject = ['$scope', '$http', '$state', 'dataService', '$mdDialog', '$mdToast'];\r\n\r\n function personController($scope, $http, $state, dataServiceOp, $mdDialog, $stateParams, $mdToast) {\r\n var vm = this;\r\n //https://material.angularjs.org/latest/\r\n vm.currentState = $state.current.name; \r\n vm.states = $state.get();\r\n vm.newPerson = {};\r\n vm.newNetworkEngagement = {\r\n active: true,\r\n comment: null,\r\n endDate: null,\r\n engagementPercentage: 0,\r\n id: 0,\r\n introCource: false,\r\n networkEngagementFunction: [],\r\n resourceNetwork: {},\r\n startDate: null\r\n }\r\n \r\n vm.networkEngagementFunction = {id:0,networkEngagementId:0,networkEngagement:null,functionId:0,function:null};\r\n vm.possibleDuplicates = [];\r\n vm.selectedItem = [];\r\n vm.selectedFunctions = [];\r\n\r\n vm.datesDifferent = function (dateCreated, dateModified) {\r\n var date1 = new Date(dateCreated);\r\n var date2 = new Date(dateModified);\r\n var diff = date2.getTime() - date1.getTime();\r\n\r\n return diff> 1;\r\n }\r\n\r\n vm.toList = function() {\r\n $state.go('admin.personList');\r\n }\r\n\r\n function trySaveBlob(data, filename) {\r\n try {\r\n // Try using msSaveBlob if supported\r\n var blob = new Blob([data], { type: contentType });\r\n if (navigator.msSaveBlob) {\r\n navigator.msSaveBlob(blob, filename);\r\n }\r\n else {\r\n // Try using other saveBlob implementations, if available\r\n var saveBlob = navigator.webkitSaveBlob || navigator.mozSaveBlob || navigator.saveBlob;\r\n if (saveBlob === undefined) {\r\n throw \"Not supported\";\r\n }\r\n saveBlob(blob, filename);\r\n }\r\n return true;\r\n } catch (ex) {\r\n console.log(\"saveBlob method failed with the following exception:\");\r\n console.log(ex);\r\n return false;\r\n }\r\n\r\n }\r\n\r\n function tryDownloadLink(data, filename) {\r\n var contentType = 'text/vcard;charset=utf-8';\r\n\r\n // Try to use a download link\r\n var link = document.createElement('a');\r\n var urlCreator = window.URL || window.webkitURL || window.mozURL || window.msURL;\r\n if ('download' in link && urlCreator) {\r\n // Try to simulate a click\r\n try {\r\n // Prepare a blob URL\r\n var blob = new Blob([data], { type: contentType });\r\n var url = urlCreator.createObjectURL(blob);\r\n link.setAttribute('href', url);\r\n\r\n // Set the download attribute (Supported in Chrome 14+ / Firefox 20+)\r\n link.setAttribute(\"download\", filename);\r\n\r\n // Simulate clicking the download link\r\n var event = document.createEvent('MouseEvents');\r\n event.initMouseEvent('click', true, true, window, 1, 0, 0, 0, 0, false, false, false, false, 0, null);\r\n link.dispatchEvent(event);\r\n console.log(\"Download link method with simulated click succeeded\");\r\n return true;\r\n\r\n } catch (ex) {\r\n console.log(\"Download link method with simulated click failed with the following exception:\");\r\n console.log(ex);\r\n return false;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n function tryWindowsLocation(data) {\r\n var urlCreator = window.URL || window.webkitURL || window.mozURL || window.msURL;\r\n var octetStreamMime = \"application/octet-stream\"; \r\n if (urlCreator) {\r\n\r\n try {\r\n // Prepare a blob URL\r\n // Use application/octet-stream when using window.location to force download\r\n console.log(\"Trying download link method with window.location ...\");\r\n var blob = new Blob([data], { type: octetStreamMime });\r\n var url = urlCreator.createObjectURL(blob);\r\n window.location = url;\r\n console.log(\"Download link method with window.location succeeded\");\r\n return true;\r\n } catch (ex) {\r\n console.log(\"Download link method with window.location failed with the following exception:\");\r\n console.log(ex);\r\n return false;\r\n }\r\n }\r\n return false;\r\n }\r\n vm.downloadVcard = function (filepart,indata) {\r\n var filename = filepart+'_Contact.vcf';\r\n var data = indata;\r\n\r\n var success = trySaveBlob(data, filename);\r\n\r\n if (!success) {\r\n // Get the blob url creator\r\n var urlCreator = window.URL || window.webkitURL || window.mozURL || window.msURL;\r\n if (urlCreator) {\r\n success = tryDownloadLink(data, filename);\r\n }\r\n }\r\n\r\n if (!success) {\r\n // Fallback to window.location method\r\n success = tryWindowsLocation(data);\r\n }\r\n if (!success) {\r\n // Fallback to window.open method\r\n console.log(\"No methods worked for saving the arraybuffer, using last resort window.open. Not Implemented\");\r\n //window.open(httpPath, '_blank', '');\r\n }\r\n };\r\n\r\n vm.newPerson.mails = [];\r\n\r\n \r\n vm.newPerson.phones = [];\r\n vm.newPersonPostal = {id:\"\",code:\"\",name:\"\"};\r\n\r\n vm.networks = [];\r\n vm.functions = [];\r\n vm.importPerson = {};\r\n vm.dupIsShown = false;\r\n vm.showSimpleToast = function (text) {\r\n $mdToast.show(\r\n $mdToast.simple()\r\n .textContent(text)\r\n .position('top right')\r\n .hideDelay(3000)\r\n );\r\n };\r\n vm.resetPerson = function () {\r\n vm.newPerson = angular.copy(vm.newPersonOrig);\r\n vm.newPersonForm.$setUntouched();\r\n vm.newPersonForm.$setPristine();\r\n }\r\n\r\n /**@function Function for retrieving data from the API*/\r\n vm.getModel = function() {\r\n dataServiceOp.getPersonModel()\r\n .then(function(result) {\r\n vm.newPerson = result.data;\r\n vm.newPersonOrig = angular.copy(vm.newPerson);\r\n }, function (error) {\r\n vm.showSimpleToast('Problem med å hente data i database.' + error.message);\r\n });\r\n };\r\n\r\n /**@function Function for retrieving data from the API*/\r\n vm.getNetworks = function () {\r\n dataServiceOp.getNetworks()\r\n .then(function (result) {\r\n vm.networks = result.data;\r\n }, function (error) {\r\n vm.showSimpleToast('Problem med å hente data i database.' + error.message);\r\n });\r\n };\r\n /**@function Function for retrieving data from the API*/\r\n vm.getFunctions = function () {\r\n dataServiceOp.getFunctions()\r\n .then(function (result) {\r\n angular.forEach(result.data,\r\n function (func) {\r\n var newFunc = angular.copy(vm.networkEngagementFunction);\r\n newFunc.functionId = func.id;\r\n newFunc.function = func;\r\n vm.functions.push(newFunc);\r\n });\r\n\r\n\r\n\r\n // vm.functions = result.data;\r\n\r\n\r\n\r\n\r\n }, function (error) {\r\n vm.showSimpleToast('Problem med å hente data i database.' + error.message);\r\n });\r\n };\r\n vm.removeMailAddress = function (index) {\r\n if (vm.newPerson.mails.length > 0) {\r\n vm.newPerson.mails.splice(index, 1);\r\n vm.newPersonForm.$setDirty();\r\n }\r\n }\r\n vm.addMailAddress = function () {\r\n vm.newPerson.mails.push({ type: \"\", address: \"\" });\r\n vm.newPersonForm.$setDirty();\r\n vm.newPersonForm.$setDirty();\r\n }\r\n\r\n vm.removeTel = function (index) {\r\n if (vm.newPerson.phones.length > 0) {\r\n vm.newPerson.phones.splice(index, 1);\r\n vm.newPersonForm.$setDirty();\r\n }\r\n }\r\n vm.addTel = function () {\r\n vm.newPerson.phones.push({ type: \"\", number: \"\" });\r\n vm.newPersonForm.$setDirty();\r\n }\r\n\r\n vm.addNetwork = function () {\r\n vm.newPerson.networkEngagement.push(vm.newNetworkEngagement);\r\n vm.selectedIndex = vm.newPerson.networkEngagement.length;\r\n vm.newPersonForm.$setDirty();\r\n }\r\n\r\n vm.removeNetwork = function(ev,idx) {\r\n // Appending dialog to document.body to cover sidenav in docs app\r\n var confirm = $mdDialog.confirm()\r\n .title('Slette nettverkstilhørighet?')\r\n .textContent('Er du sikker på at du vil fjerne denne knytningen?')\r\n .ariaLabel('Slett')\r\n .targetEvent(ev)\r\n .ok('Ja, fjern')\r\n .cancel('Avbryt');\r\n $mdDialog.show(confirm).then(function () {\r\n vm.newPerson.networkEngagement.splice(idx, 1);\r\n vm.newPersonForm.$setDirty();\r\n }, function () {\r\n // user cancel\r\n });\r\n }\r\n\r\n vm.showDeleteConfirm = function (ev) {\r\n // Appending dialog to document.body to cover sidenav in docs app\r\n var confirm = $mdDialog.confirm()\r\n .title('Slette person?')\r\n .textContent('Er du sikker på at du vil slette denne personen?')\r\n .ariaLabel('Slett')\r\n .targetEvent(ev)\r\n .ok('Ja, slett')\r\n .cancel('Avbryt');\r\n\r\n $mdDialog.show(confirm).then(function () {\r\n dataServiceOp.deletePerson(vm.newPerson.id)\r\n .then(function () {\r\n\r\n vm.toList();\r\n vm.showSimpleToast('Person slettet fra database.');\r\n },\r\n function (error) {\r\n vm.showSimpleToast('Problem med å hente data i database.' + error.message);\r\n });\r\n }, function () {\r\n // user cancel\r\n });\r\n };\r\n\r\n vm.savePerson = function(person) {\r\n\r\n\r\n dataServiceOp.creatOrUpdatePerson(person)\r\n .then(function (returnValue) {\r\n vm.newPerson = returnValue.data;\r\n vm.newPersonForm.$setPristine();\r\n vm.showSimpleToast('Lagring fullført.');\r\n },\r\n function (error) {\r\n vm.showSimpleToast('Problem med å lagre person til database.' + error.data);\r\n });\r\n\r\n };\r\n\r\n\r\n vm.menuNewPerson = function(ev) {\r\n\r\n if (vm.newPersonForm && !vm.newPersonForm.$pristine) {\r\n var confirm = $mdDialog.confirm()\r\n .title('Ulagret data')\r\n .textContent('Ulagret data vil bli mistet. Ønsker du likevel å fortsette')\r\n .ariaLabel('ulagret data varsel')\r\n .targetEvent(ev)\r\n .ok('Ja')\r\n .cancel('Avbryt');\r\n\r\n $mdDialog.show(confirm).then(function() {\r\n $state.go('admin.person', { personId: 0 });\r\n });\r\n } else {\r\n $state.go('admin.person', { personId: 0 });\r\n }\r\n }\r\n\r\n\r\n vm.menuToList = function (ev) {\r\n\r\n if (vm.newPersonForm && !vm.newPersonForm.$pristine) {\r\n var confirm = $mdDialog.confirm()\r\n .title('Ulagret data')\r\n .textContent('Ulagret data vil bli mistet. Ønsker du likevel å fortsette')\r\n .ariaLabel('ulagret data varsel')\r\n .targetEvent(ev)\r\n .ok('Ja')\r\n .cancel('Avbryt');\r\n\r\n $mdDialog.show(confirm).then(function () {\r\n vm.toList();\r\n });\r\n } else {\r\n vm.toList();\r\n }\r\n }\r\n\r\n vm.showHpr = function (ev,inputHpr,index) {\r\n vm.newHprRole = {};\r\n $mdDialog.show({\r\n controller: newHprController,\r\n template: require('./newHpr.tmpl.html'),\r\n parent: angular.element(document.body),\r\n targetEvent: ev,\r\n clickOutsideToClose: true,\r\n locals: { inputHpr: inputHpr }\r\n }).then(function (newHpr) {\r\n if (newHpr.type === \"POST\") {\r\n vm.newPerson.healthCareRoles.push(newHpr.hpr);\r\n vm.newPersonForm.$setDirty();\r\n } else if (newHpr.type === \"PUT\") {\r\n vm.newPerson.healthCareRoles[index] = newHpr.hpr;\r\n vm.newPersonForm.$setDirty();\r\n } else if (newHpr.type === \"delete\") {\r\n vm.newPerson.healthCareRoles.splice(index, 1);\r\n vm.newPersonForm.$setDirty();\r\n } else {\r\n vm.showSimpleToast('Ingen endring utført.');\r\n }\r\n }, function () {\r\n // user cancel\r\n }); \r\n }\r\n\r\n vm.showSpes = function (ev, inputSpes, index) {\r\n vm.newSpesRole = {};\r\n $mdDialog.show({\r\n controller: newSpesController,\r\n template: require('./newSpes.tmpl.html'),\r\n parent: angular.element(document.body),\r\n targetEvent: ev,\r\n clickOutsideToClose: true,\r\n locals: { inputSpes: inputSpes }\r\n }).then(function (newSpes) {\r\n if (newSpes.type === \"POST\") {\r\n vm.newPerson.specialities.push(newSpes.spes);\r\n vm.newPersonForm.$setDirty();\r\n } else if (newSpes.type === \"PUT\") {\r\n vm.newPerson.specialities[index] = newSpes.spes;\r\n vm.newPersonForm.$setDirty();\r\n } else if (newSpes.type === \"delete\") {\r\n vm.newPerson.specialities.splice(index, 1);\r\n vm.newPersonForm.$setDirty();\r\n } else {\r\n vm.showSimpleToast('Ingen endring utført.');\r\n }\r\n }, function () {\r\n //user cancel\r\n });\r\n }\r\n\r\n vm.showLeader = function (ev) {\r\n $mdDialog.show({\r\n controller: leaderSearchController,\r\n template: require('./leaderSearch.tmpl.html'),\r\n parent: angular.element(document.body),\r\n targetEvent: ev,\r\n clickOutsideToClose: true\r\n }).then(function (newLeader) {\r\n vm.newPerson.manager = newLeader;\r\n vm.newPersonForm.$setDirty();\r\n }, function () {\r\n //user cancel\r\n });\r\n \r\n }\r\n\r\n vm.selectedNetworkChange = function (idx,item) {\r\n\r\n if (angular.isDefined(item)) {\r\n \r\n dataServiceOp.getNetworkById(item.id)\r\n .then(function (result) {\r\n vm.newPerson.networkEngagement[idx].resourceNetwork = result.data;\r\n var hit = false;\r\n angular.forEach(result.data.resourceNetworkRegion,\r\n function (reg) {\r\n if (angular.isDefined(reg.region) &&\r\n angular.isDefined(vm.newPerson.networkEngagement[idx].region) &&\r\n angular.isDefined(vm.newPerson.networkEngagement[idx].region.regionName)) {\r\n if (\r\n reg.region.regionName === vm.newPerson.networkEngagement[idx].region.regionName) {\r\n hit = true;\r\n }\r\n }\r\n\r\n });\r\n if (!hit) {\r\n vm.newPerson.networkEngagement[idx].region = null;\r\n }\r\n },\r\n function (error) {\r\n vm.showSimpleToast('Problem med å hente data i database.' + error.data);\r\n });\r\n }\r\n }\r\n\r\n vm.selectedNetworkFunctionChange = function (idx) {\r\n \r\n if (vm.newPerson.networkEngagement[idx].networkEngagementFunction === null) {\r\n vm.newPerson.networkEngagement[idx].networkEngagementFunction = [];\r\n }\r\n\r\n vm.newPerson.networkEngagement[idx].networkEngagementFunction = vm.selectedFunctions[idx];\r\n \r\n }\r\n\r\n\r\n vm.personEdit = function (id) {\r\n $state.go('admin.person', { personId: id });\r\n }\r\n vm.checkIfExist = function (id, given, sure, ev) {\r\n if (!vm.dupIsShown && id === 0 && (given && given.length > 2) && (sure && sure.length > 2)) {\r\n dataServiceOp.searchPerson(given +\" \"+ sure)\r\n .then(function (result) {\r\n vm.possibleDuplicates = result.data;\r\n\r\n if (vm.possibleDuplicates.length > 0) {\r\n $mdDialog.show({\r\n contentElement: '#dupDialog',\r\n parent: angular.element(document.body),\r\n targetEvent: ev,\r\n clickOutsideToClose: true\r\n });\r\n }\r\n\r\n }, function (error) {\r\n vm.showSimpleToast('Problem med søk: '+error.message);\r\n });\r\n vm.dupIsShown = true;\r\n }\r\n }\r\n\r\n\r\n vm.showHprSearch = function(newPerson, ev) {\r\n $mdDialog.show({\r\n controller: hprSearchController,\r\n template: require('./hprSearch.tmpl.html'),\r\n parent: angular.element(document.body),\r\n targetEvent: ev,\r\n clickOutsideToClose: true,\r\n fullscreen: true,\r\n locals: { inputPerson: vm.newPerson } // Only for -xs, -sm breakpoints.\r\n })\r\n .then(function (selectedPerson) {\r\n\r\n if (selectedPerson !== null && angular.isDefined(selectedPerson)) {\r\n vm.importPerson = selectedPerson;\r\n\r\n //mapping to models\r\n vm.newPerson.givenName = selectedPerson.firstName;\r\n vm.newPerson.sureName = selectedPerson.lastName;\r\n vm.newPerson.birthDate = selectedPerson.birthDate;\r\n\r\n angular.forEach(selectedPerson.hprInformation.authorizations,\r\n function(pro) {\r\n var hprRole = {\r\n id: 0,\r\n active: pro.profession.active,\r\n title: \"\",\r\n codeText: pro.profession.codeText,\r\n codeValue: pro.profession.codeValue,\r\n hprNumber: selectedPerson.hprInformation.hprNumber,\r\n hprValidFrom: new Date(pro.valid.from),\r\n hprValidTo: new Date(pro.valid.to),\r\n lastChanged: new Date(selectedPerson.lastChanged)\r\n }\r\n vm.newPerson.healthCareRoles.push(hprRole);\r\n angular.forEach(pro.specialities,\r\n function(spes) {\r\n var spesRole = {\r\n id: 0,\r\n active: spes.type.active,\r\n title: \"\",\r\n codeText: spes.type.codeText,\r\n codeValue: spes.type.codeValue,\r\n specialityValidFrom: spes.valid.from,\r\n specialityValidTo: spes.valid.to,\r\n lastChanged: new Date(selectedPerson.lastChanged)\r\n };\r\n vm.newPerson.specialities.push(spesRole);\r\n });\r\n });\r\n vm.newPersonForm.$setDirty();\r\n }\r\n }, function () {\r\n // $scope.status = 'You cancelled the dialog.';\r\n }); \r\n }\r\n\r\n\r\n vm.showWorkplace = function (ev) {\r\n $mdDialog.show({\r\n controller: searchWorkplaceController,\r\n template: require('./workplace.tmpl.html'),\r\n parent: angular.element(document.body),\r\n targetEvent: ev,\r\n clickOutsideToClose: true,\r\n fullscreen: true,\r\n locals: { inputWork: vm.newPerson.workplace }\r\n })\r\n .then(function (newWorkplace) {\r\n if (newWorkplace && newWorkplace.name !== null && vm.newPerson.workplace !== newWorkplace) {\r\n vm.newPerson.workplace = newWorkplace;\r\n vm.newPersonForm.$setDirty();\r\n } else if (newWorkplace && newWorkplace.name === null) {\r\n vm.newPerson.workplace = vm.newPersonOrig.workplace;\r\n } else {\r\n vm.showSimpleToast('Ingen endring utført.');\r\n }\r\n }, function () {\r\n // $scope.status = 'You cancelled the dialog.';\r\n });\r\n }\r\n\r\n\r\n if ($stateParams.personId > 0) {\r\n dataServiceOp.getPersonById($stateParams.personId)\r\n .then(function(result) {\r\n vm.newPerson = result.data;\r\n vm.newPersonOrig = angular.copy(vm.newPerson);\r\n\r\n if (vm.newPerson.networkEngagement) {\r\n for (var i = 0; i < vm.newPerson.networkEngagement.length; i++) {\r\n vm.selectedItem[i] = vm.newPerson.networkEngagement[i].resourceNetwork;\r\n vm.selectedFunctions[i] = vm.newPerson.networkEngagement[i].networkEngagementFunction;\r\n }\r\n }\r\n \r\n \r\n },\r\n function (error) {\r\n vm.showSimpleToast('Problem med å hente data i database.' + error.message);\r\n });\r\n vm.commingFromList = true;\r\n } else {\r\n vm.getModel();\r\n }\r\n vm.getNetworks();\r\n vm.getFunctions();\r\n // vm.newPerson.phones = [{ type: \"hjem\", number: \"51625632\" }, { type: \"mobil\", number: \"91588283\" }];\r\n // vm.newPerson.mails = [{ type: \"Arbeid\", address: \"artb@ihelse.net\" }, { type: \"Privat\", address: \"arntts@gmail.com\" }];\r\n }\r\n\r\n\r\n function hprSearchController($scope, $mdDialog, dataServiceOp, $mdToast, inputPerson) {\r\n $scope.search = \"\";\r\n $scope.searchResults = [];\r\n $scope.selectedPerson = {};\r\n $scope.selectedIndex = null;\r\n $scope.hide = function () {\r\n $mdDialog.hide();\r\n };\r\n\r\n \r\n\r\n $scope.showSimpleToast = function (text) {\r\n $mdToast.show(\r\n $mdToast.simple()\r\n .textContent(text)\r\n .position('top right')\r\n .hideDelay(3000)\r\n );\r\n };\r\n $scope.cancel = function () {\r\n $mdDialog.cancel();\r\n };\r\n\r\n $scope.ok = function (importPerson) {\r\n $mdDialog.hide(importPerson);\r\n };\r\n\r\n $scope.searchName = function (search) {\r\n /**@function Function for retrieving data from the API*/\r\n\r\n dataServiceOp.searchHprName(search)\r\n .then(function (result) {\r\n $scope.searchResults = result.data;\r\n }, function (error) {\r\n $scope.showSimpleToast('Problem med å hente data i database.' + error.message);\r\n });\r\n\r\n\r\n }\r\n $scope.searchNumber = function (search) {\r\n /**@function Function for retrieving data from the API*/\r\n\r\n dataServiceOp.searchHprNumber(search)\r\n .then(function (result) {\r\n $scope.searchResults = result.data;\r\n }, function (error) {\r\n $scope.showSimpleToast('Problem med å hente data i database.' + error.message);\r\n });\r\n }\r\n $scope.selectHprPerson = function (index, hit) {\r\n if ($scope.selectedIndex === null) {\r\n $scope.selectedIndex = index;\r\n }\r\n else if ($scope.selectedIndex === index) {\r\n $scope.selectedIndex = null;\r\n }\r\n else {\r\n $scope.selectedIndex = index;\r\n }\r\n $scope.selectedPerson = hit;\r\n }\r\n $scope.isNumber = function (n) {\r\n return !isNaN(parseFloat(n)) && isFinite(n);\r\n }\r\n $scope.calculateAge = function (birthday) { // birthday is a date\r\n var dateTime = new Date(birthday);\r\n var ageDifMs = Date.now() - dateTime.getTime();\r\n var ageDate = new Date(ageDifMs); // miliseconds from epoch\r\n return Math.abs(ageDate.getUTCFullYear() - 1970);\r\n }\r\n\r\n if (inputPerson && inputPerson.id !== 0) {\r\n\r\n $scope.search = inputPerson.givenName + ' ' + inputPerson.sureName;\r\n $scope.searchName($scope.search);\r\n }\r\n }\r\n\r\n\r\n function searchWorkplaceController($scope, $mdDialog, dataServiceOp, inputWork, $mdToast) {\r\n \r\n if (inputWork && inputWork.id !== 0) {\r\n $scope.workOrig = inputWork;\r\n $scope.type = \"change\";\r\n } else {\r\n $scope.workOrig = {};\r\n $scope.type = \"new\";\r\n }\r\n\r\n $scope.showSimpleToast = function (text) {\r\n $mdToast.show(\r\n $mdToast.simple()\r\n .textContent(text)\r\n .position('top right')\r\n .hideDelay(3000)\r\n );\r\n };\r\n $scope.results = true;\r\n $scope.workplace = angular.copy($scope.workOrig);\r\n\r\n //if (!$scope.workplace.municipality) {\r\n // $scope.workplace.municipality = { id: \"\", code: \"\", name: \"\" }; \r\n //}\r\n \r\n $scope.newWorkplace = false;\r\n $scope.search = \"\";\r\n $scope.searchI = \"\";\r\n $scope.searchResults = [];\r\n\r\n $scope.searchInstResults = [];\r\n \r\n $scope.selectedIndex = null;\r\n $scope.hide = function () {\r\n $mdDialog.hide();\r\n };\r\n\r\n $scope.cancelDialog = function () {\r\n $mdDialog.cancel();\r\n };\r\n\r\n $scope.ok = function (importWorkplace) {\r\n $mdDialog.hide(importWorkplace);\r\n };\r\n $scope.clear = function () {\r\n $scope.workplace = null;\r\n };\r\n\r\n $scope.removeInst = function () {\r\n $scope.workplace.institution = null;\r\n }\r\n\r\n $scope.searchInst = function (search) {\r\n dataServiceOp.searchInst(search)\r\n .then(function (result) {\r\n $scope.searchInstResults = result.data;\r\n }, function (error) {\r\n $scope.showSimpleToast('Problem med å hente data i database.' + error.message);\r\n });\r\n }\r\n\r\n $scope.selectInst = function (index, hit) {\r\n if ($scope.selectedInstIndex === null) {\r\n $scope.selectedInstIndex = index;\r\n }\r\n else if ($scope.selectedInstIndex === index) {\r\n $scope.selectedInstIndex = null;\r\n }\r\n else {\r\n $scope.selectedInstIndex = index;\r\n }\r\n $scope.workplace.institution = hit;\r\n \r\n }\r\n\r\n $scope.newMunicipality = function () {\r\n dataServiceOp.searchPostalNumber(vm.workplace.postalCode).then(function (result) {\r\n vm.workplace.postalName = result.data.result;\r\n }, function (error) {\r\n vm.showSimpleToast('Problem med å hente data fra database.' + error.message);\r\n });\r\n }\r\n\r\n $scope.searchWorkplace = function(search) {\r\n /**@function Function for retrieving data from the API*/\r\n\r\n dataServiceOp.searchWorkplace(search)\r\n .then(function(result) {\r\n $scope.searchResults = result.data;\r\n if ($scope.searchResults.length === 0) {\r\n $scope.results = false;\r\n } else {\r\n $scope.results = true;\r\n }\r\n },\r\n function(error) {\r\n $scope.showSimpleToast('Problem med å hente data i database.' + error.message);\r\n });\r\n\r\n }\r\n $scope.resetWorkplace = function () {\r\n $scope.workplace = angular.copy($scope.workOrig);\r\n $scope.workplaceForm.$setPristine();\r\n }\r\n\r\n $scope.selectWorkplace = function (index, hit) {\r\n if ($scope.selectedIndex === null) {\r\n $scope.selectedIndex = index;\r\n }\r\n else if ($scope.selectedIndex === index) {\r\n $scope.selectedIndex = null;\r\n }\r\n else {\r\n $scope.selectedIndex = index;\r\n }\r\n $scope.workplace = hit;\r\n $scope.workOrig = angular.copy($scope.workplace);\r\n $scope.workplaceForm.$setPristine();\r\n }\r\n $scope.saveWorkplace = function () {\r\n\r\n console.log($scope.workplace);\r\n dataServiceOp.creatOrUpdateWorkplace($scope.workplace)\r\n .then(function (result) {\r\n $scope.workplace = result.data;\r\n $scope.workOrig = angular.copy($scope.workplace);\r\n $scope.workplaceForm.$setPristine();\r\n }, function (error) {\r\n $scope.showSimpleToast('Problem med å lagre data i database.' + error.message);\r\n });\r\n \r\n \r\n }\r\n }\r\n\r\n\r\n function newHprController($scope, $mdDialog, inputHpr, $mdToast ) {\r\n\r\n $scope.showDelete = false;\r\n if (inputHpr !== 0) {\r\n $scope.hprRoleOrig = inputHpr;\r\n $scope.type = \"change\";\r\n } else {\r\n $scope.hprRoleOrig = {\r\n id: 0,\r\n active: true,\r\n title: \"\",\r\n codeText: \"\",\r\n codeValue: \"\",\r\n hprValidFrom: null,\r\n hprValidTo: null,\r\n lastChanged: null\r\n };\r\n \r\n $scope.type = \"new\";\r\n }\r\n $scope.showSimpleToast = function (text) {\r\n $mdToast.show(\r\n $mdToast.simple()\r\n .textContent(text)\r\n .position('top right')\r\n .hideDelay(3000)\r\n );\r\n };\r\n\r\n $scope.noDelete = function() {\r\n $scope.showDelete = false;\r\n }\r\n $scope.okDelete = function (newHpr) {\r\n $mdDialog.hide({ type: \"delete\", hpr: newHpr });\r\n }\r\n $scope.showDeleteConfirm = function () {\r\n\r\n $scope.showDelete = true;\r\n \r\n };\r\n\r\n $scope.saveHpr = function (newHprRole) {\r\n\r\n if (newHprRole.id !== 0) {\r\n $mdDialog.hide({ type: \"PUT\", hpr: newHprRole });\r\n } else {\r\n $mdDialog.hide({ type: \"POST\", hpr: newHprRole });\r\n }\r\n \r\n };\r\n $scope.deleteNewHpr = function (newHpr) {\r\n $mdDialog.hide({ type: \"delete\", hpr: newHpr });\r\n }\r\n\r\n $scope.newHprRole = angular.copy($scope.hprRoleOrig);\r\n\r\n $scope.resetNewHpr = function () {\r\n $scope.newHprRole = angular.copy($scope.hprRoleOrig);\r\n }\r\n\r\n $scope.hide = function () {\r\n $mdDialog.hide();\r\n };\r\n\r\n $scope.cancel = function () {\r\n $mdDialog.cancel();\r\n };\r\n\r\n $scope.ok = function (newHpr) {\r\n $mdDialog.hide({ type: $scope.type, hpr: newHpr });\r\n };\r\n \r\n }\r\n\r\n function newSpesController($scope, $mdDialog, inputSpes, $mdToast) {\r\n\r\n $scope.showDelete = false;\r\n if (inputSpes !== 0) {\r\n $scope.SpesRoleOrig = inputSpes;\r\n $scope.type = \"change\";\r\n } else {\r\n $scope.SpesRoleOrig = {\r\n id: 0,\r\n active: true,\r\n title: \"\",\r\n codeText: \"\",\r\n codeValue: \"\",\r\n specialityValidFrom: null,\r\n specialityValidTo: null,\r\n lastChanged: null\r\n };\r\n $scope.type = \"new\";\r\n }\r\n $scope.showSimpleToast = function (text) {\r\n $mdToast.show(\r\n $mdToast.simple()\r\n .textContent(text)\r\n .position('top right')\r\n .hideDelay(3000)\r\n );\r\n };\r\n\r\n $scope.noDelete = function () {\r\n $scope.showDelete = false;\r\n }\r\n $scope.okDelete = function (newSpes) {\r\n $mdDialog.hide({ type: \"delete\", spes: newSpes });\r\n }\r\n $scope.deleteNewSpes = function () {\r\n\r\n $scope.showDelete = true;\r\n\r\n };\r\n\r\n\r\n $scope.newSpesRole = angular.copy($scope.SpesRoleOrig);\r\n\r\n $scope.saveSpes = function (newSpesRole) {\r\n\r\n if (newSpesRole.id !== 0) {\r\n $mdDialog.hide({ type: \"PUT\", spes: newSpesRole });\r\n } else {\r\n $mdDialog.hide({ type: \"POST\", spes: newSpesRole });\r\n }\r\n\r\n };\r\n\r\n\r\n\r\n $scope.resetNewSpes = function () {\r\n $scope.newSpesRole = angular.copy($scope.SpesRoleOrig);\r\n }\r\n\r\n $scope.hide = function () {\r\n $mdDialog.hide();\r\n };\r\n\r\n $scope.cancel = function () {\r\n $mdDialog.cancel();\r\n };\r\n\r\n $scope.ok = function (newSpes) {\r\n $mdDialog.hide({ type: $scope.type, spes: newSpes });\r\n };\r\n\r\n }\r\n\r\n \r\n\r\n function leaderSearchController($scope, $http, $state, dataServiceOp, $mdDialog, $mdToast) {\r\n $scope.selectedLeader = {};\r\n\r\n $scope.searchLeader = function (search) {\r\n dataServiceOp.searchPerson(search)\r\n .then(function (result) {\r\n $scope.searchLeaderResults = result.data;\r\n }, function (error) {\r\n $scope.showSimpleToast(\"Problem ved søk på person: \" + error.message);\r\n });\r\n $scope.searchDone = true;\r\n }\r\n $scope.showSimpleToast = function (text) {\r\n $mdToast.show(\r\n $mdToast.simple()\r\n .textContent(text)\r\n .position('top right')\r\n .hideDelay(3000)\r\n );\r\n };\r\n $scope.selectLeader = function (index, hit) {\r\n \r\n $scope.selectedLeader = hit;\r\n $mdDialog.hide(hit);\r\n\r\n }\r\n\r\n $scope.cancel = function () {\r\n $mdDialog.cancel();\r\n };\r\n\r\n $scope.ok = function (newLeader) {\r\n $mdDialog.hide(newLeader);\r\n };\r\n\r\n\r\n\r\n }\r\n\r\n\r\n})();","// Copyright (c) 2016 HVIKT AS\r\n// henter nettverkslist\r\n(function() {\r\n 'use strict';\r\n\r\n angular\r\n .module('app')\r\n .controller('networkListController', networkListController);\r\n\r\n networkListController.$inject = ['$scope', '$http', '$state', 'dataService','$mdMedia'];\r\n\r\n function networkListController($scope, $http, $state, dataServiceOp, $mdMedia) {\r\n var vm = this;\r\n\r\n vm.currentState = $state.current.name; \r\n vm.states = $state.get();\r\n vm.networks = [];\r\n vm.showFilter = $mdMedia('gt-sm'); \r\n vm.tableLoading = false;\r\n vm.itemsByPage = 20;\r\n vm.networkEdit = function (network) {\r\n $state.go('admin.network', { networkId: network.id });\r\n }\r\n\r\n vm.createNew = function () {\r\n $state.go('admin.network', { networkId: 0});\r\n }\r\n\r\n\r\n /**@function Function for retrieving data from the API*/\r\n vm.getNetworks = function () {\r\n vm.tableLoading = true;\r\n dataServiceOp.getNetworks()\r\n .then(function (result) {\r\n vm.networks = result.data;\r\n vm.tableLoading = false;\r\n }, function () {\r\n vm.tableLoading = false;\r\n });\r\n };\r\n vm.toggleLeft = function () {\r\n vm.showFilter = !vm.showFilter;\r\n }\r\n \r\n vm.getNetworks();\r\n\r\n }\r\n\r\n \r\n\r\n})();","module.exports = \"\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n

{{heading}}

\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n {{searchResults.length}} Treff1\\\">, velg en:\\r\\n >\\r\\n \\r\\n {{hit.sureName | limitTo : 3}}\\r\\n {{hit.code | limitTo : 3}}\\r\\n \\r\\n
\\r\\n

{{hit.sureName}},{{hit.givenName}}

\\r\\n

{{hit.name}}

\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Avbryt\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Velg\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\";","// Copyright (c) 2016 HVIKT AS\r\n(function() {\r\n 'use strict';\r\n\r\n angular\r\n .module('app')\r\n .controller('networkController', networkController);\r\n\r\n networkController.$inject = ['$scope', '$http', '$state', 'dataService', '$stateParams', '$mdToast','$mdDialog'];\r\n networkSearchController.$inject = ['$scope', '$mdDialog', '$filter', 'input','type', 'dataService'];\r\n\r\n function networkController($scope, $http, $state, dataServiceOp, $stateParams, $mdToast, $mdDialog) {\r\n var vm = this;\r\n vm.currentState = $state.current.name; \r\n vm.states = $state.get();\r\n vm.resourceNetwork = {};\r\n vm.searchLeaderResults = [];\r\n vm.searchL = \"\";\r\n vm.searchDone = false;\r\n\r\n vm.searchUnitResults = [];\r\n vm.searchU = \"\";\r\n vm.searchUDone = false;\r\n\r\n vm.toList = function () {\r\n $state.go('admin.networkList');\r\n }\r\n\r\n vm.removeLeader = function () {\r\n vm.resourceNetwork.manager = null;\r\n vm.searchL = \"\";\r\n vm.resourceNetworkForm.$setDirty();\r\n }\r\n vm.removeUnit = function () {\r\n vm.regionSelectionChanged();\r\n vm.resourceNetwork.unit = null;\r\n vm.searchU = \"\";\r\n vm.resourceNetworkForm.$setDirty();\r\n }\r\n\r\n vm.selectUnit = function (index, hit) {\r\n\r\n vm.resourceNetwork.unit = angular.copy(hit);\r\n vm.searchUnitResults = [];\r\n vm.searchU = \"\";\r\n vm.regionSelectionChanged();\r\n vm.searchUDone = false;\r\n\r\n }\r\n\r\n vm.searchUnit = function (search) {\r\n dataServiceOp.searchUnit(search)\r\n .then(function (result) {\r\n vm.searchUnitResults = result.data;\r\n }, function (error) {\r\n vm.showSimpleToast(\"Problem med å søke: \" + error.message);\r\n });\r\n vm.searchUDone = true;\r\n }\r\n\r\n\r\n vm.getModel = function () {\r\n dataServiceOp.getNetworkModel()\r\n .then(function (result) {\r\n vm.resourceNetwork = result.data;\r\n vm.resourceNetworkOrig = angular.copy(vm.resourceNetwork);\r\n }, function (error) {\r\n vm.showSimpleToast(\"Problem med å hente data: \" + error.message);\r\n });\r\n };\r\n\r\n vm.searchLeader = function (search) {\r\n dataServiceOp.searchPerson(search)\r\n .then(function (result) {\r\n vm.searchLeaderResults = result.data;\r\n }, function (error) {\r\n vm.showSimpleToast(\"Problem med å søke: \" + error.message);\r\n });\r\n vm.searchDone = true;\r\n }\r\n vm.resetNetwork = function () {\r\n vm.resourceNetwork = angular.copy(vm.resourceNetworkOrig);\r\n vm.resourceNetworkForm.$setUntouched();\r\n vm.resourceNetworkForm.$setPristine();\r\n }\r\n vm.selectLeader = function (index, hit) {\r\n vm.resourceNetwork.manager = angular.copy(hit);\r\n vm.searchLeaderResults = [];\r\n vm.searchDone = false;\r\n vm.searchL = \"\";\r\n }\r\n\r\n vm.regionSelectionChanged = function () {\r\n vm.resourceNetwork.resourceNetworkRegion = [];\r\n \r\n angular.forEach(vm.resourceNetwork.unit.unitRegions,\r\n function (region) {\r\n if (region.region.selected === true) {\r\n var newRegion = {\r\n id: 0,\r\n resourceNetworkId: vm.resourceNetwork.id,\r\n regionId: region.region.id,\r\n region:region.region\r\n };\r\n\r\n vm.resourceNetwork.resourceNetworkRegion.push(newRegion);\r\n } \r\n });\r\n\r\n }\r\n\r\n vm.showDeleteConfirm = function (ev) {\r\n // Appending dialog to document.body to cover sidenav in docs app\r\n var confirm = $mdDialog.confirm()\r\n .title('Slette Ressursgruppe?')\r\n .textContent('Er du sikker på at du vil slette denne ressursgruppen?')\r\n .ariaLabel('Slett')\r\n .targetEvent(ev)\r\n .ok('Ja, slett')\r\n .cancel('Avbryt');\r\n\r\n $mdDialog.show(confirm).then(function () {\r\n dataServiceOp.deleteNetwork(vm.resourceNetwork)\r\n .then(function () {\r\n vm.toList();\r\n },\r\n function (error) {\r\n vm.showSimpleToast(\"Problem med å slette nettverk: \" + error.message);\r\n });\r\n }, function () {\r\n // user cancel\r\n });\r\n };\r\n\r\n\r\n vm.saveResourceNetwork = function () {\r\n\r\n if (vm.resourceNetwork.id > 0) {\r\n dataServiceOp.changeNetwork(vm.resourceNetwork)\r\n .then(function() {\r\n vm.showSimpleToast('Ressursgruppen er oppdatert.');\r\n\r\n vm.resourceNetworkOrig = angular.copy(vm.resourceNetwork);\r\n vm.resourceNetworkForm.$setUntouched();\r\n vm.resourceNetworkForm.$setPristine();\r\n },\r\n function (error) {\r\n vm.showSimpleToast(\"Problem med å oppdatere ressursgruppe: \" + error.message);\r\n });\r\n } else {\r\n dataServiceOp.createNewNetwork(vm.resourceNetwork)\r\n .then(function (result) {\r\n vm.showSimpleToast('Ny ressursgruppen er opprettet.');\r\n vm.resourceNetworkOrig = angular.copy(vm.resourceNetwork);\r\n vm.resourceNetworkForm.$setUntouched();\r\n vm.resourceNetworkForm.$setPristine();\r\n\r\n $state.go('admin.network', { networkId: result.data.id });\r\n },\r\n function (error) {\r\n vm.showSimpleToast(\"Problem med å opprette ressursgruppe: \" + error.message);\r\n });\r\n }\r\n }\r\n\r\n vm.showSimpleToast = function (text) {\r\n $mdToast.show(\r\n $mdToast.simple()\r\n .textContent(text)\r\n .position('top right')\r\n .hideDelay(3000)\r\n );\r\n };\r\n\r\n if ($stateParams.networkId > 0) {\r\n dataServiceOp.getNetworkById($stateParams.networkId)\r\n .then(function (result) {\r\n vm.resourceNetwork = result.data;\r\n\r\n angular.forEach(vm.resourceNetwork.unit.unitRegions,\r\n function (region) {\r\n if (vm.resourceNetwork.resourceNetworkRegion.filter(function (e) { return e.regionId === region.regionId; }).length > 0) {\r\n region.region.selected = true;\r\n }\r\n });\r\n vm.resourceNetworkOrig = angular.copy(vm.resourceNetwork);\r\n\r\n },\r\n function (error) {\r\n vm.showSimpleToast(\"Problem med å hente nettverksgruppe: \" + error.message);\r\n });\r\n vm.commingFromList = true;\r\n } else {\r\n vm.getModel();\r\n }\r\n\r\n\r\n vm.showSearch = function (ev, input,type) {\r\n\r\n $mdDialog.show({\r\n controller: networkSearchController,\r\n template: require('./networkSearch.tmpl.html'),\r\n parent: angular.element(document.body),\r\n targetEvent: ev,\r\n clickOutsideToClose: true,\r\n locals: { input: input,type:type }\r\n }).then(function (returnValue) {\r\n\r\n if (returnValue.type === 'unit') {\r\n vm.resourceNetwork.unit = returnValue.selected;\r\n } else if (returnValue.type === 'manager') {\r\n vm.resourceNetwork.manager = returnValue.selected;\r\n } else {\r\n vm.showSimpleToast(\"Ingen verdier funnet.\");\r\n }\r\n \r\n }, function () {\r\n // user cancel\r\n });\r\n }\r\n\r\n \r\n }\r\n\r\n\r\n function networkSearchController($scope, $mdDialog, $filter, input, type,dataService) {\r\n\r\n $scope.input = angular.copy(input);\r\n $scope.type = angular.copy(type);\r\n $scope.heading = \"Søk\";\r\n $scope.returnValue = {};\r\n $scope.returnValue.type = $scope.type;\r\n $scope.returnValue.input = $scope.input;\r\n $scope.returnValue.selected = [];\r\n \r\n\r\n $scope.select = function (index, selected) {\r\n $scope.returnValue.selected = selected;\r\n };\r\n $scope.cancel = function () {\r\n $mdDialog.cancel();\r\n };\r\n\r\n $scope.ok = function () {\r\n $mdDialog.hide($scope.returnValue);\r\n };\r\n\r\n $scope.searchLeader = function (search) {\r\n dataService.searchPerson(search)\r\n .then(function (result) {\r\n $scope.searchResults = result.data;\r\n }, function (error) {\r\n window.console && console.log(\"Får ikke søkt på person: \" + error.message);\r\n });\r\n $scope.searchDone = true;\r\n }\r\n\r\n $scope.searchUnit = function (search) {\r\n dataService.searchUnit(search)\r\n .then(function (result) {\r\n $scope.searchResults = result.data;\r\n }, function (error) {\r\n window.console && console.log(\"Får ikke søkt på foretak: \" + error.message);\r\n });\r\n $scope.searchDone = true;\r\n }\r\n if (angular.isDefined($scope.type) && $scope.input.length !== 0) {\r\n if ($scope.type === 'unit') {\r\n $scope.heading = \"Søk etter foretak\";\r\n $scope.searchUnit($scope.input);\r\n } else if ($scope.type === 'manager') {\r\n $scope.heading = \"Søk etter leder\";\r\n $scope.searchLeader($scope.input);\r\n } else {\r\n window.console && console.log(\"Ingen verdier funnet.\");\r\n }\r\n } \r\n\r\n }\r\n\r\n\r\n})();","\r\n// Copyright (c) 2016 HVIKT AS\r\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('app')\r\n .controller('mainController', mainController);\r\n\r\n mainController.$inject = ['$scope', '$http', '$state', 'dataService','$mdToast'];\r\n\r\n function mainController($scope, $http, $state, dataServiceOp, $mdToast) {\r\n var vm = this;\r\n\r\n\r\n vm.groups = [];\r\n\r\n /**@function Function for retrieving data from the API*/\r\n vm.getGroups = function () {\r\n dataServiceOp.getGroups()\r\n .then(function (result) {\r\n vm.groups = _.sortBy(result.data, 'groupName');\r\n }, function (error) {\r\n vm.showSimpleToast(\"Problem med å hente grupper: \" + error.message);\r\n });\r\n };\r\n\r\n // show toast message\r\n vm.showSimpleToast = function (text) {\r\n $mdToast.show(\r\n $mdToast.simple()\r\n .textContent(text)\r\n .position('top right')\r\n .hideDelay(3000)\r\n );\r\n };\r\n\r\n vm.getGroups();\r\n }\r\n})();","// Copyright (c) 2016 HVIKT AS\r\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('app')\r\n .controller('resetPasswordController', resetPasswordController);\r\n\r\n resetPasswordController.$inject = ['$scope','$stateParams','$state','dataService','jwtHelper','$timeout'];\r\n\r\n function resetPasswordController($scope, $stateParams,$state,dataServiceOp,jwtHelper,$timeout) {\r\n var vm = this;\r\n vm.token = \"\";\r\n vm.results = \"\";\r\n vm.loading = false;\r\n vm.user = {};\r\n vm.validToken = true;\r\n \r\n// in controller\r\n vm.init = function () {\r\n vm.token = $stateParams.tp1 + \".\" + $stateParams.tp2 + \".\" + $stateParams.tp3;\r\n try {\r\n var t = jwtHelper.decodeToken(vm.token);\r\n vm.user.email = t.sub;\r\n //Checks if token is expired\r\n if (jwtHelper.isTokenExpired(vm.token)) {\r\n vm.validToken = false;\r\n $state.go('main');\r\n } \r\n } catch (err) {\r\n vm.validToken = false;\r\n $state.go('main');\r\n }\r\n \r\n};\r\n\r\nvm.counter = 10;\r\nvm.timer = function(){$timeout(function() {\r\n if(vm.counter === 0){\r\n $state.go('main');\r\n }else{\r\n vm.counter--;\r\n vm.timer();\r\n } \r\n }, 1000);}\r\n\r\n\r\n vm.gotoFrontPage = function(){\r\n $state.go('main');\r\n }\r\n vm.resetPass = function(){\r\n vm.loading = true;\r\n\r\n dataServiceOp.updatePass(vm.user, vm.token)\r\n .then(function (result) {\r\n if (result.data === \"\" && result.status === 200) { \r\n vm.results = \"Nytt passord lagret. Du kan nå logge inn\";\r\n vm.timer();\r\n }else{\r\n vm.results = \"Fikk ikke resatt passord. Forsøk igjen senere.\"; \r\n } \r\n vm.loading = false;\r\n }, function () {\r\n vm.gotoFrontPage();\r\n }); \r\n }\r\n\r\n vm.init(); \r\n}\r\n})();","// Copyright (c) 2016 HVIKT AS\r\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('app')\r\n .controller('registerController', registerController);\r\n\r\n registerController.$inject = ['$scope'];\r\n\r\n function registerController($scope) {\r\n var vm = this;\r\n\r\n }\r\n})();","// Copyright (c) 2016 HVIKT AS\r\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('app')\r\n .controller('listController', listController);\r\n\r\n listController.$inject = ['dataService', '$stateParams', '$mdToast', '$mdMedia'];\r\n function listController(dataServiceOp, $stateParams, $mdToast, $mdMedia) {\r\n var vm = this;\r\n vm.people = [];\r\n vm.showFilter = $mdMedia('gt-sm');\r\n vm.showFilters = $mdMedia('gt-sm');\r\n vm.tableLoading = false;\r\n vm.itemsByPage = 30;\r\n vm.resourceNetwork = [];\r\n vm.functions = [];\r\n vm.institutionTypes = [];\r\n vm.listNetworks = [];\r\n vm.listKommuner = [];\r\n vm.listFunctions = [];\r\n vm.listInstitutionTypes = [];\r\n vm.listGroup = $stateParams.name;\r\n\r\n vm.mainTableCol = [\r\n {\r\n header: 'Nettverk', source: 'networkEngagement', type: 'string', sort: function (value) {\r\n if (value.networkEngagement.length > 0 && value.networkEngagement[0].resourceNetwork) {\r\n return value.networkEngagement[0].resourceNetwork.name;\r\n }\r\n } },\r\n {\r\n header: 'Ny', source: 'networkEngagement.introCource', type: 'bool', sort: function (value) {\r\n if (value.networkEngagement.length > 0 && value.networkEngagement[0].introCource) {\r\n return value.networkEngagement[0].introCource;\r\n }\r\n }\r\n },\r\n {\r\n header: 'Virksomhetstype', source: 'workplace.institution.institutionType.name', type: 'string', sort: function (value) {\r\n if (value.workplace &&\r\n value.workplace.institution &&\r\n value.workplace.institution.institutionType &&\r\n value.workplace.institution.institutionType.name) {\r\n return value.workplace.institution.institutionType.name;\r\n }\r\n }\r\n },\r\n {\r\n header: 'Kommune', source: 'networkEngagement.region', type: 'string', sort: function (value) {\r\n\r\n if (value.networkEngagement.length > 0 && value.networkEngagement[0].region) {\r\n console.log(value.networkEngagement[0].region.regionName);\r\n return value.networkEngagement[0].region.regionName.trim();\r\n }\r\n }\r\n },\r\n {\r\n header: 'Rolle', source: 'networkEngagement.networkEngagementFunction', type: 'string', sort: function (value) {\r\n if (value.networkEngagement.length > 0 &&\r\n value.networkEngagement[0].networkEngagementFunction.length > 0 &&\r\n value.networkEngagement[0].networkEngagementFunction[0].function) {\r\n return value.networkEngagement[0].networkEngagementFunction[0].function.name;\r\n }\r\n }\r\n },\r\n {\r\n header: 'Videreutdanning', source: 'specialities', type: 'string', sort: function (value) {\r\n if (value.specialities.length > 0 && value.specialities[0].codeText) {\r\n return value.specialities[0].codeText;\r\n }\r\n }\r\n },\r\n {\r\n header: 'Arbeidssted', source: 'workplace', type: 'string', sort: function (value) {\r\n if (value.workplace) {\r\n return value.workplace.name;\r\n }\r\n }\r\n },\r\n {\r\n header: 'Fornavn', source: 'givenName', type: 'string', sort: function (value) {\r\n return value.givenName;\r\n }\r\n },\r\n {\r\n header: 'Etternavn', source: 'sureName', type: 'string', sort: function (value) {\r\n return value.sureName;\r\n }\r\n },\r\n {\r\n header: 'Helserolle', source: 'healthCareRoles', type: 'string', sort: function (value) {\r\n if (value.healthCareRoles.length > 0 && value.healthCareRoles[0].title) {\r\n return value.healthCareRoles[0].title;\r\n }\r\n }\r\n },\r\n {\r\n header: 'Telefon', source: 'phones', type: 'number', sort: function (value) {\r\n if (value.phones.length > 0 && value.phones[0].number) {\r\n return value.phones[0].number;\r\n }\r\n }},\r\n {\r\n header: 'Epost', source: 'mails', type: 'string', sort: function (value) {\r\n if (value.mails.length > 0 && value.mails[0].address) {\r\n return value.mails[0].address;\r\n }\r\n } },\r\n {\r\n header: 'Leder', source: 'manager', type: 'string', sort: function (value) {\r\n return value.manager.sureName;\r\n }},\r\n {\r\n header: 'Epost Leder', source: 'manager.mails', type: 'string', sort: function (value) {\r\n if (value.manager !== null && value.manager.mails.length > 0 && value.manager.mails[0].address) {\r\n return value.manager.mails[0].address;\r\n }\r\n } }\r\n ];\r\n\r\n vm.boolean = [\r\n { value: 'false', name: 'Ja' },\r\n { value: 'true', name: 'Nei' }\r\n ];\r\n vm.mainSelectedTableCol = ['Nettverk', 'Kommune', 'Virksomhetstype', 'Fornavn', 'Etternavn', 'Telefon', 'Rolle', 'Videreutdanning', 'Epost', 'Arbeidssted', 'Leder', 'Epost Leder'];\r\n\r\n\r\n vm.saveMainTableColumn = function () {\r\n //todo save to local storage\r\n\r\n };\r\n\r\n vm.emailOne = function (item) {\r\n location.href = 'mailto:' + item;\r\n };\r\n\r\n vm.showCol = function (colName) {\r\n return (vm.mainSelectedTableCol.filter(function (v) {\r\n return v === colName;\r\n }))[0];\r\n };\r\n\r\n vm.showSimpleToast = function (text) {\r\n $mdToast.show(\r\n $mdToast.simple()\r\n .textContent(text)\r\n .position('top right')\r\n .hideDelay(3000)\r\n );\r\n };\r\n\r\n vm.findProp = function (obj, prop, defval) {\r\n if (typeof defval == 'undefined') {\r\n defval = null;\r\n }\r\n prop = prop.split('.');\r\n for (var i = 0; i < prop.length; i++) {\r\n if (obj[prop[i]] === null) {\r\n return defval;\r\n }\r\n obj = obj[prop[i]];\r\n }\r\n return obj;\r\n };\r\n\r\n\r\n vm.getSelectedColText = function () {\r\n if (vm.mainSelectedTableCol !== undefined) {\r\n if (vm.mainSelectedTableCol.length === 1) {\r\n return vm.mainSelectedTableCol[0].header;\r\n } else {\r\n return vm.mainSelectedTableCol.length + \" Kolonner valgt.\";\r\n }\r\n\r\n } else {\r\n return \"Velg kolonne\";\r\n }\r\n };\r\n\r\n\r\n vm.toggleLeft = function () {\r\n vm.showFilter = !vm.showFilter;\r\n };\r\n vm.calculateAge = function (birthday) { // birthday is a date\r\n var dateTime = new Date(birthday);\r\n var ageDifMs = Date.now() - dateTime.getTime();\r\n var ageDate = new Date(ageDifMs); // miliseconds from epoch\r\n return Math.abs(ageDate.getUTCFullYear() - 1970);\r\n };\r\n\r\n vm.isValid = function (date) {\r\n var selectedDate = new Date(date);\r\n var now = new Date();\r\n now.setHours(0, 0, 0, 0);\r\n return selectedDate > now;\r\n\r\n };\r\n\r\n\r\n\r\n\r\n\r\n vm.getResourceNetworks = function () {\r\n dataServiceOp.getGroupByName(vm.listGroup)\r\n .then(function (result) {\r\n var group = result.data;\r\n var ng = group[0].resourceNetworkGroup;\r\n\r\n vm.resourceNetwork = _.chain(ng).map(function (elm) {\r\n return elm.resourceNetwork;\r\n }).unique().value();\r\n\r\n\r\n vm.resourceNetwork = _.sortBy(vm.resourceNetwork, 'name');\r\n\r\n }, function (error) {\r\n vm.showSimpleToast(\"Problem med å hente gruppe: \" + error.message);\r\n });\r\n };\r\n\r\n\r\n vm.getFunctions = function () {\r\n dataServiceOp.getFunctions()\r\n .then(function (result) {\r\n vm.functions = _.sortBy(result.data, 'name');\r\n }, function (error) {\r\n vm.showSimpleToast(\"Problem med å hente funksjoner: \" + error.message);\r\n });\r\n };\r\n\r\n vm.getInstitutionsTypes = function () {\r\n dataServiceOp.getInstitutionTypes()\r\n .then(function (result) {\r\n vm.institutionTypes = _.sortBy(result.data, 'name');\r\n },\r\n function (error) {\r\n vm.showSimpleToast(\"Problem med å hente institusjonstyper: \" + error.message);\r\n });\r\n };\r\n\r\n vm.getListAll = function () {\r\n\r\n vm.tableLoading = true;\r\n\r\n\r\n dataServiceOp.getListAll(vm.listGroup)\r\n .then(function (result) {\r\n vm.people = result.data;\r\n\r\n vm.tableLoading = false;\r\n\r\n vm.listNetworks = _.chain(vm.people).map(function (elm) {\r\n return _.map(elm.networkEngagement,\r\n function (elm2) {\r\n return elm2.resourceNetwork.name;\r\n });\r\n }).flatten().unique().value();\r\n\r\n\r\n vm.listKommuner = _.chain(vm.people).map(function (elm) {\r\n return _.map(elm.networkEngagement,\r\n function (elm2) {\r\n return _.map(elm2.resourceNetwork.resourceNetworkRegion,\r\n function (elm3) {\r\n return elm3.region.regionName;\r\n });\r\n });\r\n }).flatten().unique().value();\r\n\r\n vm.listFunctions = _.chain(vm.people).map(function (elm) {\r\n return _.map(elm.networkEngagement,\r\n function (elm2) {\r\n return _.map(elm2.networkEngagementFunction,\r\n function (elm3) {\r\n return elm3.function.name;\r\n });\r\n });\r\n }).flatten().unique().value();\r\n\r\n\r\n vm.listInstitutionTypes = _.chain(vm.people).map(function (elm) {\r\n if (angular.isDefined(elm.workplace) &&\r\n elm.workplace !== null &&\r\n angular.isDefined(elm.workplace.institution) &&\r\n elm.workplace.institution !== null) {\r\n return elm.workplace.institution.institutionType.name;\r\n }\r\n }).flatten().unique().value();\r\n\r\n\r\n\r\n }, function () {\r\n vm.tableLoading = false;\r\n });\r\n };\r\n\r\n\r\n vm.getFunctions();\r\n vm.getResourceNetworks();\r\n vm.getInstitutionsTypes();\r\n vm.getListAll();\r\n\r\n\r\n }\r\n})();","module.exports = \"\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n

Velg den som skal beholdes

\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Org. Nr.NavnType
{{row.code}}{{row.name| titleCase}}{{row.institutionType.name}}
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Avbryt\\r\\n \\r\\n \\r\\n 0\\\" ng-click=\\\"ok()\\\">\\r\\n \\r\\n \\r\\n \\r\\n OK\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\";","// Copyright (c) 2016 HVIKT AS\r\n(function() {\r\n 'use strict';\r\n\r\n angular\r\n .module('app')\r\n .controller('institutionListController', institutionListController);\r\n\r\n institutionListController.$inject = ['$scope', '$http', '$state', 'dataService', '$mdDialog','$mdMedia'];\r\n\r\n combineInstitustionController.$inject = ['$scope', '$mdDialog', 'dataService', 'input', '$mdToast'];\r\n \r\n function institutionListController($scope, $http, $state, dataServiceOp, $mdDialog, $mdMedia) {\r\n var vm = this;\r\n //http://iamisti.github.io/mdDataTable/\r\n vm.currentState = $state.current.name; \r\n vm.states = $state.get();\r\n vm.institutions = [];\r\n vm.showFilter = $mdMedia('gt-sm'); \r\n vm.tableLoading = false;\r\n vm.itemsByPage = 20;\r\n vm.institutionEdit = function(institution) {\r\n $state.go('admin.institution', { institutionId: institution.id });\r\n };\r\n\r\n vm.createNew = function() {\r\n $state.go('admin.institution', { institutionId: 0 });\r\n };\r\n\r\n\r\n\r\n\r\n /**@function Function for retrieving data from the API*/\r\n vm.getInstitutions = function () {\r\n vm.tableLoading = true;\r\n dataServiceOp.getInstitutions()\r\n .then(function (result) {\r\n vm.institutions = result.data;\r\n vm.tableLoading = false;\r\n }, function () {\r\n vm.tableLoading = false;\r\n });\r\n };\r\n vm.toggleLeft = function() {\r\n vm.showFilter = !vm.showFilter;\r\n };\r\n\r\n\r\n vm.combineSelected = function (ev) {\r\n var selected = vm.displayedInstitutions.filter(function(item) {\r\n return item.isSelected === true;\r\n });\r\n\r\n $mdDialog.show({\r\n controller: combineInstitustionController,\r\n template: require('./combineInstitution.tmpl.html'),\r\n parent: angular.element(document.body),\r\n targetEvent: ev,\r\n clickOutsideToClose: true,\r\n locals: { input: selected }\r\n }).then(function (selectedWorkplace) {\r\n\r\n angular.forEach(selected, function (value) {\r\n if (value.id !== selectedWorkplace.id) {\r\n var index = vm.displayedInstitutions.indexOf(value);\r\n vm.displayedInstitutions.splice(index, 1);\r\n }\r\n });\r\n\r\n }, function (error) {\r\n console.log(error);\r\n //user cancel\r\n });\r\n\r\n //do something with selected\r\n };\r\n\r\n vm.hasNoSelectedRows = function() {\r\n return vm.displayedInstitutions.filter(function(item) {\r\n return item.isSelected === true;\r\n }).length ===\r\n 0;\r\n };\r\n\r\n vm.getInstitutions();\r\n\r\n }\r\n function combineInstitustionController($scope, $mdDialog, dataServiceOp, input, $mdToast) {\r\n\r\n if (input && input.length !== 0) {\r\n\r\n $scope.listOrig = input;\r\n } else {\r\n $scope.listOrig = [];\r\n }\r\n\r\n angular.forEach($scope.listOrig, function (item) {\r\n item.isSelected = false;\r\n });\r\n\r\n\r\n\r\n\r\n $scope.list = angular.copy($scope.listOrig);\r\n\r\n $scope.result = {};\r\n $scope.tableLoading = false;\r\n\r\n $scope.showSimpleToast = function (text) {\r\n $mdToast.show(\r\n $mdToast.simple()\r\n .textContent(text)\r\n .position('top right')\r\n .hideDelay(3000)\r\n );\r\n };\r\n\r\n\r\n $scope.selectedRow = function() {\r\n return $scope.list.filter(function(item) {\r\n return item.isSelected === true;\r\n });\r\n };\r\n\r\n\r\n\r\n $scope.selectedIndex = null;\r\n\r\n $scope.hide = function () {\r\n $mdDialog.hide();\r\n };\r\n\r\n $scope.cancelDialog = function () {\r\n $mdDialog.cancel();\r\n };\r\n\r\n $scope.ok = function () {\r\n var selected = $scope.list.filter(function (item) {\r\n return item.isSelected === true;\r\n });\r\n dataServiceOp.combineInstitution($scope.listOrig, selected[0])\r\n .then(function (result) {\r\n if (result.data) {\r\n $mdDialog.hide(selected[0]);\r\n }\r\n }, function (error) {\r\n $scope.showSimpleToast('Problem med å lagre data i database.' + error.message);\r\n });\r\n };\r\n\r\n\r\n\r\n }\r\n \r\n\r\n})();","// Copyright (c) 2016 HVIKT AS\r\n(function() {\r\n 'use strict';\r\n\r\n angular\r\n .module('app')\r\n .controller('institutionController', institutionController);\r\n\r\n institutionController.$inject = ['$scope', '$http', '$state', 'dataService', '$stateParams', '$mdDialog','$mdToast'];\r\n \r\n function institutionController($scope, $http, $state, dataServiceOp, $stateParams, $mdDialog, $mdToast) {\r\n var vm = this;\r\n vm.currentState = $state.current.name; \r\n vm.states = $state.get();\r\n vm.institutionTypes = [];\r\n\r\n vm.toList = function () {\r\n $state.go('admin.institutionList');\r\n }\r\n \r\n vm.showSimpleToast = function (text) {\r\n $mdToast.show(\r\n $mdToast.simple()\r\n .textContent(text)\r\n .position('top right')\r\n .hideDelay(3000)\r\n );\r\n };\r\n\r\n \r\n vm.getModel = function () {\r\n dataServiceOp.getInstitutionModel()\r\n .then(function (result) {\r\n vm.institution = result.data;\r\n vm.institutionOrig = angular.copy(vm.institution);\r\n }, function (error) {\r\n vm.showSimpleToast('Problem med å hente data fra database.' + error.message);\r\n });\r\n };\r\n\r\n vm.getTypes = function() {\r\n dataServiceOp.getInstitutionTypes()\r\n .then(function (result) {\r\n vm.institutionTypes = result.data;\r\n }, function (error) {\r\n vm.showSimpleToast('Problem med å hente data fra database.' + error.message);\r\n });\r\n }\r\n\r\n vm.showDeleteConfirm = function (ev) {\r\n // Appending dialog to document.body to cover sidenav in docs app\r\n var confirm = $mdDialog.confirm()\r\n .title('Slette arbeidsplass?')\r\n .textContent('Er du sikker på at du vil slette denne organisasjonen?')\r\n .ariaLabel('Slett')\r\n .targetEvent(ev)\r\n .ok('Ja, slett')\r\n .cancel('Avbryt');\r\n\r\n $mdDialog.show(confirm).then(function () {\r\n dataServiceOp.deleteInstitution(vm.institution.id)\r\n .then(function () {\r\n vm.toList();\r\n vm.showSimpleToast('Arbeidsplass fjernet.');\r\n },\r\n function (error) {\r\n vm.showSimpleToast('Problem med å slette arbeidsplass.' + error.message);\r\n });\r\n }, function () {\r\n // user cancel\r\n });\r\n };\r\n\r\n\r\n vm.saveInstitution = function(institution) {\r\n dataServiceOp.creatOrUpdateInstitution(institution)\r\n .then(function () {\r\n vm.showSimpleToast('Endring lagret ok.');\r\n vm.institutionForm.$setUntouched();\r\n vm.institutionForm.$setPristine();\r\n },\r\n function (error) {\r\n vm.showSimpleToast('Problem med å lagre data i database.' + error.message);\r\n });\r\n\r\n };\r\n\r\n vm.getTypes();\r\n if ($stateParams.institutionId > 0) {\r\n dataServiceOp.getInstitutionById($stateParams.institutionId)\r\n .then(function (result) {\r\n \r\n vm.institution = result.data;\r\n vm.institutionOrig = angular.copy(vm.institution);\r\n },\r\n function (error) {\r\n vm.showSimpleToast('Problem med å hente data i database.' + error.message);\r\n });\r\n vm.commingFromList = true;\r\n } else {\r\n vm.getModel();\r\n }\r\n\r\n\r\n }\r\n\r\n\r\n \r\n\r\n})();","// Copyright (c) 2016 HVIKT AS\r\n(function() {\r\n 'use strict';\r\n\r\n angular\r\n .module('app')\r\n .controller('groupListController', groupListController);\r\n\r\n groupListController.$inject = ['$scope', '$http', '$state', 'dataService','$mdMedia'];\r\n\r\n function groupListController($scope, $http, $state, dataServiceOp, $mdMedia) {\r\n var vm = this;\r\n //http://iamisti.github.io/mdDataTable/\r\n vm.currentState = $state.current.name; \r\n vm.states = $state.get();\r\n vm.groups = [];\r\n vm.showFilter = $mdMedia('gt-sm'); \r\n vm.tableLoading = false;\r\n vm.itemsByPage = 20;\r\n vm.groupEdit = function (g) {\r\n $state.go('admin.group', { networkGroupId: g.id });\r\n }\r\n\r\n vm.createNew = function () {\r\n $state.go('admin.group', { networkGroupId: 0});\r\n }\r\n\r\n\r\n /**@function Function for retrieving data from the API*/\r\n vm.getGroups = function () {\r\n vm.tableLoading = true;\r\n dataServiceOp.getGroups()\r\n .then(function (result) {\r\n vm.groups = result.data;\r\n vm.tableLoading = false;\r\n }, function () {\r\n vm.tableLoading = false;\r\n });\r\n };\r\n vm.toggleLeft = function () {\r\n vm.showFilter = !vm.showFilter;\r\n }\r\n \r\n vm.getGroups();\r\n\r\n }\r\n\r\n \r\n\r\n})();","// Copyright (c) 2016 HVIKT AS\r\n(function() {\r\n 'use strict';\r\n\r\n angular\r\n .module('app')\r\n .controller('groupController', groupController);\r\n\r\n groupController.$inject = ['$scope', '$http', '$state', 'dataService', '$stateParams', '$mdToast','$mdDialog'];\r\n \r\n\r\n function groupController($scope, $http, $state, dataServiceOp, $stateParams, $mdToast, $mdDialog) {\r\n var vm = this;\r\n vm.currentState = $state.current.name; \r\n vm.states = $state.get();\r\n vm.resourceNetworkGroup = {};\r\n vm.resourceNetworkGroupOrig = {};\r\n vm.resourceNetwork = [];\r\n vm.resourceNetworkOrig = [];\r\n vm.searchDone = false;\r\n \r\n vm.toList = function () {\r\n $state.go('admin.groupList');\r\n }\r\n \r\n vm.getModel = function () {\r\n dataServiceOp.getGroupModel()\r\n .then(function (result) {\r\n vm.resourceNetworkGroup = result.data;\r\n vm.resourceNetworkGroupOrig = angular.copy(vm.resourceNetworkGroup);\r\n }, function () {\r\n vm.showSimpleToast(\"Problem ved å hente data.\");\r\n });\r\n };\r\n\r\n\r\n vm.getGroupTypes = function () {\r\n dataServiceOp.getGroupTypes()\r\n .then(function (result) {\r\n vm.groupTypes = result.data;\r\n }, function () {\r\n vm.showSimpleToast(\"Problem ved å hente gruppetyper.\");\r\n });\r\n };\r\n\r\n\r\n vm.resetGroup = function () {\r\n vm.resourceNetwork = angular.copy(vm.resourceNetworkOrig);\r\n vm.resourceNetworkGroup = angular.copy(vm.resourceNetworkGroupOrig);\r\n\r\n vm.resourceNetworkGroupForm.$setUntouched();\r\n vm.resourceNetworkGroupForm.$setPristine();\r\n }\r\n\r\n\r\n\r\n vm.groupSelectionChanged = function () {\r\n vm.resourceNetworkGroup.resourceNetworkGroup = [];\r\n \r\n angular.forEach(vm.resourceNetwork,\r\n function (rn) {\r\n if (rn.selected === true) {\r\n var newGroup = {\r\n id: 0,\r\n groupId: vm.resourceNetworkGroup.id,\r\n resourceNetworkId: rn.id,\r\n resourceNetwork:rn\r\n };\r\n\r\n vm.resourceNetworkGroup.resourceNetworkGroup.push(newGroup);\r\n } \r\n });\r\n \r\n }\r\n\r\n vm.showDeleteConfirm = function (ev) {\r\n // Appending dialog to document.body to cover sidenav in docs app\r\n var confirm = $mdDialog.confirm()\r\n .title('Slette gruppe?')\r\n .textContent('Er du sikker på at du vil slette denne gruppen?')\r\n .ariaLabel('Slett')\r\n .targetEvent(ev)\r\n .ok('Ja, slett')\r\n .cancel('Avbryt');\r\n\r\n $mdDialog.show(confirm).then(function () {\r\n dataServiceOp.deleteGroup(vm.resourceNetworkGroup)\r\n .then(function () {\r\n vm.toList();\r\n },\r\n function (error) {\r\n vm.showSimpleToast(\"Problem ved å hente slette gruppe: \"+error.message );\r\n });\r\n }, function () {\r\n // user cancel\r\n });\r\n };\r\n\r\n\r\n vm.saveGroup = function () {\r\n\r\n if (vm.resourceNetworkGroup.id > 0) {\r\n dataServiceOp.changeNetworkGroup(vm.resourceNetworkGroup)\r\n .then(function() {\r\n vm.showSimpleToast('Gruppe er oppdatert.');\r\n\r\n vm.resourceNetworGroupOrig = angular.copy(vm.resourceNetworkGroup);\r\n vm.resourceNetworkGroupForm.$setUntouched();\r\n vm.resourceNetworkGroupForm.$setPristine();\r\n },\r\n function (error) {\r\n vm.showSimpleToast(\"Problem ved å oppdatere gruppe: \" + error.message);\r\n });\r\n } else {\r\n dataServiceOp.createNewNetworkGroup(vm.resourceNetworkGroup)\r\n .then(function (result) {\r\n vm.showSimpleToast('Ny gruppe er opprettet.');\r\n vm.resourceNetworGroupOrig = angular.copy(vm.resourceNetworkGroup);\r\n vm.resourceNetworkGroupForm.$setUntouched();\r\n vm.resourceNetworkGroupForm.$setPristine();\r\n\r\n $state.go('admin.group', { networkGroupId: result.data.id });\r\n },\r\n function (error) {\r\n vm.showSimpleToast('Fikk ikke opprettet gruppe: '+error.message);\r\n });\r\n }\r\n }\r\n\r\n vm.showSimpleToast = function (text) {\r\n $mdToast.show(\r\n $mdToast.simple()\r\n .textContent(text)\r\n .position('top right')\r\n .hideDelay(3000)\r\n );\r\n };\r\n\r\n\r\n vm.getNetworkGroups = function () {\r\n dataServiceOp.getNetworks()\r\n .then(function (result) {\r\n vm.resourceNetwork = result.data;\r\n \r\n angular.forEach(vm.resourceNetwork,\r\n function (rn) {\r\n if (!isUndefinedOrNull(vm.resourceNetworkGroup.resourceNetworkGroup) && vm.resourceNetworkGroup.resourceNetworkGroup.filter(function (e) {return e.resourceNetworkId === rn.id; }).length > 0) {\r\n rn.selected = true;\r\n }\r\n });\r\n vm.resourceNetworkOrig = angular.copy(vm.resourceNetwork);\r\n vm.resourceNetworkGroupOrig = angular.copy(vm.resourceNetworkGroup);\r\n \r\n },\r\n function (error) {\r\n vm.showSimpleToast(\"Problem ved å hente grupper: \" + error.message);\r\n });\r\n };\r\n vm.getGroupTypes();\r\n vm.getNetworkGroups();\r\n if ($stateParams.networkGroupId > 0) {\r\n dataServiceOp.getGroupsById($stateParams.networkGroupId)\r\n .then(function (result) {\r\n vm.resourceNetworkGroup = result.data;\r\n \r\n angular.forEach(vm.resourceNetwork,\r\n function (rn) {\r\n if (!isUndefinedOrNull(vm.resourceNetworkGroup.resourceNetworkGroup) && vm.resourceNetworkGroup.resourceNetworkGroup.filter(function (e) { return e.resourceNetworkId === rn.id; }).length > 0) {\r\n rn.selected = true;\r\n }\r\n });\r\n vm.resourceNetworkOrig = angular.copy(vm.resourceNetwork);\r\n vm.resourceNetworkGroupOrig = angular.copy(vm.resourceNetworkGroup);\r\n \r\n },\r\n function (error) {\r\n vm.showSimpleToast(\"Problem ved å hente gruppe: \" + error.message);\r\n });\r\n vm.commingFromList = true;\r\n } else {\r\n vm.getModel();\r\n }\r\n\r\n function isUndefinedOrNull(val) {\r\n return angular.isUndefined(val) || val === null;\r\n }\r\n }\r\n\r\n\r\n})();","module.exports = \"\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n

{{codeMeta.name}}

\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n {{ message }}\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n {{item.regionName}} ({{item.regionCode}})\\r\\n \\r\\n \\r\\n \\r\\n {{$chip.regionName}}\\r\\n ({{$chip.regionCode}})\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Avbryt\\r\\n \\r\\n 0\\\">\\r\\n \\r\\n \\r\\n \\r\\n Slett\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Reset\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Lagre\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Tilbake\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\";","// Copyright (c) 2016 HVIKT AS\r\n(function() {\r\n 'use strict';\r\n\r\n angular\r\n .module('app')\r\n .controller('codingSystemController', codingSystemController);\r\n\r\n codingSystemController.$inject = ['$scope', '$http', '$state', 'dataService', '$mdDialog', '$mdToast','$mdMedia'];\r\n editCodingSystemController.$inject = ['$scope', '$mdDialog', '$filter', 'input', '$mdToast'];\r\n function codingSystemController($scope, $http, $state, dataServiceOp, $mdDialog, $mdToast, $mdMedia) {\r\n var vm = this;\r\n vm.currentState = $state.current.name; \r\n vm.states = $state.get();\r\n vm.tableLoading = false;\r\n \r\n vm.showFilter = $mdMedia('gt-sm'); \r\n\r\n vm.itemsByPage = 20;\r\n\r\n\r\n vm.columns = [];\r\n vm.rows = [];\r\n vm.codeMeta = {};\r\n\r\n // show toast message in top right corner\r\n vm.showSimpleToast = function (text) {\r\n $mdToast.show(\r\n $mdToast.simple()\r\n .textContent(text)\r\n .position('top right')\r\n .hideDelay(3000)\r\n );\r\n };\r\n\r\n // get functions from api\r\n // set page to functions\r\n vm.getFunctions = function () {\r\n vm.tableLoading = true;\r\n vm.codeMeta.name = 'Funksjoner i ressursnettverk';\r\n vm.codeMeta.newName = 'nytt ressursnettverk';\r\n vm.codeMeta.controller = 'function';\r\n vm.columns = [\r\n { source: 'id', header: 'Id' }\r\n , { source: 'name', header: 'Navn' }\r\n , { source: 'description', header: 'Beskrivelse' }\r\n , { source: 'disabled', header: 'Status' }\r\n ];\r\n vm.rows = [];\r\n dataServiceOp.getFunctions()\r\n \r\n .then(function (result) {\r\n vm.rows = result.data;\r\n vm.tableLoading = false;\r\n }, function (error) {\r\n vm.tableLoading = false;\r\n vm.showSimpleToast('Problem med å hente nettverksfunksjoner fra database.' + error.message);\r\n });\r\n };\r\n\r\n\r\n // get regions from api\r\n // set page to regions\r\n vm.getRegions = function () {\r\n vm.tableLoading = true;\r\n vm.codeMeta.name = 'Kommuneregister';\r\n vm.codeMeta.newName = 'ny post- og kommunekode';\r\n vm.codeMeta.controller = 'region';\r\n vm.columns = [\r\n { source: 'id', header: 'Id' }\r\n , { source: 'regionCode', header: 'KommuneNr.' }\r\n , { source: 'regionName', header: 'Kommune' }\r\n , { source: 'disabled', header: 'Status' }\r\n ];\r\n vm.rows = [];\r\n\r\n\r\n\r\n dataServiceOp.getRegions()\r\n .then(function (result) {\r\n vm.tableLoading = false;\r\n vm.rows = result.data;\r\n }, function (error) {\r\n vm.tableLoading = false;\r\n vm.showSimpleToast('Problem med å hente kommuneregister fra database.' + error.message);\r\n });\r\n\r\n\r\n };\r\n\r\n\r\n // get institutiontypes from api\r\n // set page to institutiontypes\r\n vm.getInstitutionTypes = function () {\r\n vm.tableLoading = true;\r\n \r\n vm.codeMeta.name = 'Virksomhetstyper';\r\n vm.codeMeta.newName = 'ny virksomhetstype';\r\n vm.codeMeta.controller = 'institutionType';\r\n vm.columns = [\r\n { source: 'id', header: 'Id' }\r\n , { source: 'name', header: 'Type' }\r\n , { source: 'disabled', header: 'Status' }\r\n ];\r\n vm.rows = [];\r\n dataServiceOp.getInstitutionTypes()\r\n .then(function (result) {\r\n vm.rows = result.data;\r\n vm.tableLoading = false;\r\n \r\n }, function (error) {\r\n vm.tableLoading = false;\r\n vm.showSimpleToast('Problem med å hente virksomhetstyper fra database.' + error.message);\r\n });\r\n };\r\n\r\n // get grouptypes from api\r\n // set page to grouptypes\r\n vm.getGroupTypes = function () {\r\n vm.tableLoading = true;\r\n vm.codeMeta.name = 'Gruppetyper';\r\n vm.codeMeta.newName = 'ny gruppetype';\r\n vm.codeMeta.controller = 'groupType';\r\n vm.columns = [\r\n { source: 'id', header: 'Id' }\r\n , { source: 'typeName', header: 'Navn' }\r\n ];\r\n vm.rows = [];\r\n dataServiceOp.getGroupTypes()\r\n .then(function (result) {\r\n vm.rows = result.data;\r\n vm.tableLoading = false;\r\n }, function (error) {\r\n vm.tableLoading = false;\r\n vm.showSimpleToast('Problem med å hente gruppetyper fra database.' + error.message);\r\n });\r\n };\r\n\r\n // get units from api\r\n // set page to units\r\n vm.getUnits = function () {\r\n vm.tableLoading = true;\r\n vm.codeMeta.name = 'Foretak';\r\n vm.codeMeta.newName = 'nytt foretak';\r\n vm.codeMeta.controller = 'unit';\r\n vm.columns = [\r\n { source: 'id', header: 'Id' }\r\n , { source: 'code', header: 'Kortnavn' }\r\n , { source: 'name', header: 'Navn' }\r\n , { source: 'disabled', header: 'Status' }\r\n ];\r\n vm.rows = [];\r\n dataServiceOp.getUnits()\r\n .then(function (result) {\r\n vm.rows = result.data;\r\n vm.tableLoading = false;\r\n dataServiceOp.getRegionsShallow()\r\n .then(function (result2) {\r\n vm.regions = result2.data;\r\n }, function (error) {\r\n vm.showSimpleToast('Problem med å hente kommunene fra database.' + error.message);\r\n });\r\n }, function (error) {\r\n vm.tableLoading = false;\r\n vm.showSimpleToast('Problem med å hente foretak fra database.' + error.message);\r\n });\r\n };\r\n\r\n\r\n // show / hide filtermenu\r\n vm.toggleLeft = function() {\r\n vm.showFilter = !vm.showFilter;\r\n };\r\n\r\n vm.selectRow = function(ev, row) {\r\n vm.showModal(ev, row);\r\n };\r\n\r\n vm.createNew = function(ev) {\r\n vm.model = {};\r\n dataServiceOp.getCodeModel(vm.codeMeta.controller)\r\n .then(function(result) {\r\n vm.model = result.data;\r\n vm.showModal(ev, vm.model);\r\n\r\n },\r\n function(error) {\r\n vm.showSimpleToast('Problem med å opprette ny.' + error.message);\r\n });\r\n\r\n\r\n };\r\n\r\n // show edit-modal values depends on inputtype\r\n vm.showModal = function(ev, input) {\r\n var inn = { input: input, columns: vm.columns, codeMeta: vm.codeMeta, regions: vm.regions };\r\n $mdDialog.show({\r\n controller: editCodingSystemController,\r\n template: require('./codingSystemEdit.tmpl.html'),\r\n parent: angular.element(document.body),\r\n targetEvent: ev,\r\n clickOutsideToClose: true,\r\n locals: { input: inn }\r\n }).then(function(returnValue) {\r\n if (returnValue.response === \"changed\") {\r\n angular.forEach(vm.rows,\r\n function(u, i) {\r\n if (u.id === returnValue.code.id) {\r\n for (var attrname in returnValue.code) {\r\n vm.rows[i][attrname] = returnValue.code[attrname];\r\n }\r\n }\r\n });\r\n } else if (returnValue.response === \"created\") {\r\n vm.rows.push(returnValue.code);\r\n } else if (returnValue.response === \"delete\") {\r\n angular.forEach(vm.rows,\r\n function(u, i) {\r\n if (u.id === returnValue.code.id) {\r\n vm.rows.splice(i, 1);\r\n }\r\n });\r\n } else {\r\n vm.showSimpleToast(\"Ingen gyldige endringer oppdaget\");\r\n }\r\n },\r\n function(error) {\r\n console.log(error);\r\n vm.showSimpleToast('Problem med å vise vindu: ' + error.data);\r\n });\r\n };\r\n\r\n\r\n }\r\n\r\n \r\n function editCodingSystemController($scope, $mdDialog, $filter, input, $mdToast) {\r\n $scope.columns = angular.copy(input.columns);\r\n $scope.input = angular.copy(input.input);\r\n $scope.inputOrig = angular.copy($scope.input);\r\n $scope.selectedRegions = [];\r\n $scope.regions = angular.copy(input.regions);\r\n $scope.regionsOrig = angular.copy($scope.regions);\r\n $scope.status = !$scope.input.disabled; \r\n if ($scope.input.disabled) {\r\n $scope.message = 'Utgått';\r\n } else {\r\n $scope.message = 'Aktiv';\r\n }\r\n $scope.codeMeta = angular.copy(input.codeMeta);\r\n $scope.returnValue = {};\r\n $scope.returnValue.response = '';\r\n $scope.returnValue.code = {};\r\n $scope.transformChip = transformChip;\r\n $scope.selectedItem = null;\r\n $scope.searchText = null;\r\n $scope.querySearch = querySearch;\r\n\r\n findSelectedRegions();\r\n \r\n $scope.showSimpleToast = function (text) {\r\n $mdToast.show(\r\n $mdToast.simple()\r\n .textContent(text)\r\n .position('top right')\r\n .hideDelay(3000)\r\n );\r\n };\r\n \r\n\r\n\r\n function findSelectedRegions() {\r\n if (angular.isDefined($scope.codeMeta) && $scope.codeMeta.controller === 'unit') {\r\n $scope.selectedRegions = [];\r\n $scope.regions = angular.copy($scope.regionsOrig);\r\n angular.forEach($scope.input.unitRegions,\r\n function (region) {\r\n var reg = $filter('filter')($scope.regions, { 'id': region.regionId }, true);\r\n\r\n if (reg.length === 1) {\r\n \r\n $scope.selectedRegions.push(reg[0]);\r\n var index = $scope.regions.indexOf(reg[0]);\r\n $scope.regions.splice(index, 1);\r\n }\r\n });\r\n $scope.inputOrig = angular.copy($scope.input);\r\n }\r\n }\r\n /**\r\n * Return the proper object when the append is called.\r\n */\r\n function transformChip(chip) {\r\n // If it is an object, it's already a known chip\r\n if (angular.isObject(chip)) {\r\n return chip;\r\n }\r\n\r\n // Otherwise, create a new one\r\n return { name: chip, type: 'new' };\r\n }\r\n /**\r\n * Search for regions.\r\n */\r\n function querySearch(query) {\r\n var results = query ? $scope.regions.filter(createFilterFor(query)) : [];\r\n return results;\r\n }\r\n\r\n /**\r\n * Create filter function for a query string\r\n */\r\n function createFilterFor(query) {\r\n var lowercaseQuery = query.toLowerCase();\r\n \r\n return function filterFn(region) {\r\n return (region.regionName.toLowerCase().indexOf(lowercaseQuery) === 0) ||\r\n (region.regionCode.toLowerCase().indexOf(lowercaseQuery) === 0);\r\n };\r\n\r\n }\r\n\r\n if (angular.isDefined($scope.input.id) && $scope.input.id !== 0) {\r\n $scope.function = \"PUT\";\r\n } else {\r\n $scope.function = \"POST\";\r\n }\r\n\r\n\r\n $scope.regionChange = function() {\r\n $scope.input.unitRegions = [];\r\n angular.forEach($scope.selectedRegions,\r\n function(region) {\r\n var alreadyThere = $filter('filter')($scope.input.unitRegions, { 'regionId': region.id }, true);\r\n if (alreadyThere.length === 0) {\r\n var newRegion = {\r\n id: 0,\r\n UnitId: $scope.input.id,\r\n regionId: region.id,\r\n region: region\r\n };\r\n\r\n $scope.input.unitRegions.push(newRegion);\r\n }\r\n });\r\n };\r\n\r\n $scope.deleteCode = function() {\r\n\r\n dataServiceOp.deleteGroupType($scope.input)\r\n .then(function() {\r\n $scope.returnValue.response = 'delete';\r\n $scope.returnValue.code = angular.copy($scope.input);\r\n\r\n $scope.showSimpleToast('Sletting fullført');\r\n\r\n },\r\n function(error) {\r\n $scope.showSimpleToast('Problem med å slette: ' + error.data);\r\n });\r\n\r\n $mdDialog.hide($scope.returnValue);\r\n };\r\n\r\n $scope.resetCode = function(form) {\r\n $scope.input = angular.copy($scope.inputOrig);\r\n findSelectedRegions();\r\n form.$setPristine();\r\n };\r\n\r\n $scope.hide = function () {\r\n $mdDialog.hide($scope.returnValue);\r\n };\r\n\r\n $scope.cancel = function () {\r\n $mdDialog.cancel();\r\n };\r\n\r\n $scope.ok = function () {\r\n $mdDialog.hide($scope.returnValue);\r\n };\r\n $scope.onChange = function (cbState) {\r\n\r\n $scope.input.disabled = !cbState;\r\n if (cbState) {\r\n $scope.message = 'Aktiv';\r\n } else {\r\n $scope.message = 'Utgått';\r\n }\r\n \r\n };\r\n $scope.saveOrUpdate = function(form) {\r\n dataServiceOp.creatOrUpdateCode($scope.function, $scope.codeMeta.controller, $scope.input)\r\n .then(function(result) {\r\n if ($scope.input.id < 1) {\r\n $scope.returnValue.response = 'created';\r\n } else {\r\n $scope.returnValue.response = 'changed';\r\n }\r\n\r\n $scope.input = angular.copy(result.data);\r\n $scope.inputOrig = angular.copy($scope.input);\r\n $scope.regions = angular.copy($scope.regionsOrig);\r\n $scope.returnValue.code = angular.copy($scope.input);\r\n form.$setPristine();\r\n $scope.showSimpleToast('Endring lagret.');\r\n\r\n },\r\n function(error) {\r\n $scope.showSimpleToast('Problem med å lagre endring.' + error.message);\r\n });\r\n\r\n };\r\n\r\n }\r\n\r\n\r\n \r\n\r\n})();","// Copyright (c) 2016 HVIKT AS\r\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('app')\r\n .controller('adminController', adminController);\r\n\r\n adminController.$inject = ['$scope','auth'];\r\n\r\n function adminController($scope, auth) {\r\n var vm = this;\r\n // Lagrer om bruker har tilgang\r\n vm.hasAccess = auth;\r\n\r\n // for future stuff\r\n }\r\n})();"],"sourceRoot":""}