diff --git a/public/app/app.js b/public/app/app.js index d345e78..7e85345 100644 --- a/public/app/app.js +++ b/public/app/app.js @@ -21,6 +21,7 @@ angular.module('ffhb', [ amMoment.changeLocale('de'); $rootScope.globals = $cookieStore.get('globals') || {}; if ($rootScope.globals.currentUser) { + $rootScope.passphrase = '*****'; $http.defaults.headers.common['Authorization'] = 'Basic ' + $rootScope.globals.currentUser.authdata; // jshint ignore:line } }); diff --git a/public/app/changes.jade b/public/app/changes.jade index 8b94a96..0bccd27 100644 --- a/public/app/changes.jade +++ b/public/app/changes.jade @@ -3,6 +3,7 @@ table.table.table-striped.table-condensed( ng-table="tableParams") tr(ng-repeat='row in $data',demo-tracked-table-row="row") td(data-title="'Nodeid'", sortable="'row.nodeid'", filter="{'nodeid': 'text'}") {{row.nodeid}} + td(data-title="'Group'", sortable="'row.owner'", filter="{'owner': 'text'}") {{row.owner}} td(data-title="'Hostname'", sortable="'row.hostname'", filter="{'hostname': 'text'}") {{row.hostname}} td.split.text-right(data-title="'Freq'") span 2.4 Ghz diff --git a/public/app/main.js b/public/app/main.js index 2f3e820..088c8d8 100644 --- a/public/app/main.js +++ b/public/app/main.js @@ -1,11 +1,13 @@ 'use strict'; angular.module('ffhb') - .controller('MainCtrl',function($scope,$interval,store,$state,AuthenticationService){ + .controller('MainCtrl',function($rootScope,$scope,$interval,store,$state,AuthenticationService){ $scope.isOpen = false; $scope.$state = $state; $scope.refresh = store.refresh; - $scope.passphrase = ''; + if($rootScope.passphrase === undefined){ + $rootScope.passphrase = ''; + } var timediff = new Date(1970,1,1); function render(prom){ @@ -28,6 +30,9 @@ angular.module('ffhb') $scope.passphraseUpdate = function(){ - AuthenticationService.SetCredentials('client',$scope.passphrase); + if($rootScope.passphrase !== undefined && $rootScope.passphrase !== '' && $rootScope.passphrase !== '*****'){ + console.log("set new basicauth"); + AuthenticationService.SetCredentials('client',$rootScope.passphrase); + } }; }); diff --git a/public/app/node.js b/public/app/node.js index 8220f94..3112a0c 100644 --- a/public/app/node.js +++ b/public/app/node.js @@ -29,6 +29,10 @@ angular.module('ffhb') function render(prom){ prom.then(function(data){ $scope.node = data.merged[$stateParams.nodeid]; + if($scope.node !== undefined && $scope.node.nodeinfo !== undefined){ + $scope.markers.node.lat = $scope.node.nodeinfo.location.latitude; + $scope.markers.node.lng = $scope.node.nodeinfo.location.longitude; + } }); } render(store.getData); @@ -37,22 +41,27 @@ angular.module('ffhb') }); $scope.$on('leafletDirectiveMarker.dragend', function(event, args){ - if($scope.node !== undefined && $scope.node.nodeinfo !== undefined && $scope.node.nodeinfo.location !== undefined){ - $scope.node.nodeinfo.location.latitude = args.model.lat; - $scope.node.nodeinfo.location.latitude = args.model.lng; + if($scope.node !== undefined && $scope.node.nodeinfo !== undefined){ + $scope.node.nodeinfo.location = { + 'latitude': args.model.lat, + 'longitude': args.model.lng + }; store.saveNode($stateParams.nodeid); } }); var setToGps = function(position){ var pos = [position.coords.latitude,position.coords.longitude]; - console.log('gps',pos); - if($scope.node !== undefined && $scope.node.nodeinfo !== undefined && $scope.node.nodeinfo.location !== undefined){ - $scope.node.nodeinfo.location.latitude = position.coords.latitude; - $scope.node.nodeinfo.location.longitude = position.coords.longitude; + if($scope.node !== undefined && $scope.node.nodeinfo !== undefined){ + $scope.node.nodeinfo.location = { + 'latitude': position.coords.latitude, + 'longitude': position.coords.longitude + }; leafletData.getMap().then(function(map) { map.setView(pos); }); store.saveNode($stateParams.nodeid); + $scope.markers.node.lat = position.coords.latitude; + $scope.markers.node.lng = position.coords.longitude; } }; $scope.gps = function() { diff --git a/public/app/nodes/nodesSort.jade b/public/app/nodes/nodesSort.jade index 565b198..8754705 100644 --- a/public/app/nodes/nodesSort.jade +++ b/public/app/nodes/nodesSort.jade @@ -28,7 +28,7 @@ table.table.table-striped.table-condensed( ng-table="tableParams") span(ng-switch-default) {{row.nodeinfo.wireless.txpower24}} div.controls(ng-switch-when="true",ng-class="rowForm.txpower24.$invalid ? 'has-error' : ''") input.editable-input.form-control.input-sm(type="text" name="txpower24",ng-model='row.nodeinfo.wireless.txpower24',required) - span(ng-switch-default) {{row.nodeinfo.wireless.channel5}} + span(ng-switch-default) {{row.nodeinfo.wireless.txpower5}} div.controls(ng-switch-when="true",ng-class="rowForm.txpower5.$invalid ? 'has-error' : ''") input.editable-input.form-control.input-sm(type="text" name="txpower5",ng-model='row.nodeinfo.wireless.txpower5',required) td(data-title="'Options'") diff --git a/public/components/store.js b/public/components/store.js index 267680a..08cefe3 100644 --- a/public/components/store.js +++ b/public/components/store.js @@ -52,7 +52,7 @@ angular.module('ffhb') } angular.copy(nodes, myservice._data.merged); Object.keys(aliases).map(function(key){ - var node = myservice._data.nodes[key], + var node = myservice._data.merged[key], alias = aliases[key]; node.nodeinfo.hostname = alias.hostname; if(!node.nodeinfo.owner){ @@ -108,13 +108,32 @@ angular.module('ffhb') myservice.saveNode = function(nodeid){ var result = $q.defer(); if(myservice._data.merged && myservice._data.merged[nodeid]){ - var node = myservice._data.merged[nodeid]; - $http.post(config.api+'/aliases/alias/'+nodeid,{ - 'hostname':node.nodeinfo.hostname, - 'owner':node.owner.contact - }).then(function(){ + var node = myservice._data.merged[nodeid], + obj = { + 'hostname':node.nodeinfo.hostname, + 'owner':node.nodeinfo.owner.contact||'', + 'location': {}, + 'wireless': {} + }; + if(node.nodeinfo.location){ + obj.location = { + 'latitude': node.nodeinfo.location.latitude||0, + 'longitude': node.nodeinfo.location.longitude||0 + }; + } + if(node.nodeinfo.wireless){ + obj.wireless = { + 'channel24': node.nodeinfo.wireless.channel24||0, + 'channel5': node.nodeinfo.wireless.channel5||0, + 'txpower24': node.nodeinfo.wireless.txpower24||0, + 'txpower5': node.nodeinfo.wireless.txpower5||0 + }; + } + $http.post(config.api+'/aliases/alias/'+nodeid,obj).then(function(){ result.resolve(true); myservice.refresh(true); + },function(){ + $rootScope.passphrase = ''; }); }else{ result.resolve(false);