freifunkmanager/public/app/nodes/nodesGroup.js

43 lines
1.1 KiB
JavaScript
Raw Normal View History

2016-07-06 22:52:31 +02:00
'use strict';
angular.module('ffhb')
.controller('NodesGroupCtrl',function(NgTableParams,$scope,store){
$scope.tableParams = new NgTableParams({
2016-07-12 18:29:02 +02:00
sorting: { 'nodeinfo.hostname': 'asc' },
2016-07-06 22:52:31 +02:00
group: 'nodeinfo.owner.contact',
total: 0,
2016-07-12 18:29:02 +02:00
count: 100
2016-07-06 22:52:31 +02:00
}, {
2016-07-13 11:43:27 +02:00
dataset: [{}]
2016-07-06 22:52:31 +02:00
});
2016-07-09 10:15:03 +02:00
var originalData = {};
$scope.cancel = function(row, rowForm) {
console.log('cancel',row,rowForm);
row.isEditing = false;
2016-07-12 08:44:38 +02:00
rowForm.$setPristine();
originalData[row.nodeid] = angular.copy(row);
2016-07-09 10:15:03 +02:00
};
$scope.save = function(row, rowForm) {
console.log('save',row,rowForm);
row.isEditing = false;
2016-07-12 08:44:38 +02:00
rowForm.$setPristine();
row = angular.copy(originalData[row.nodeid]);
2016-07-09 10:15:03 +02:00
store.saveNode(row.nodeid);
};
2016-07-06 22:52:31 +02:00
function render(prom){
prom.then(function(data){
2016-07-09 02:58:47 +02:00
var result = Object.keys(data.merged).map(function(nodeid){
2016-07-06 22:52:31 +02:00
data.merged[nodeid].nodeid = nodeid;
return data.merged[nodeid];
});
2016-07-09 10:15:03 +02:00
originalData = result;
$scope.tableParams.settings({dataset: angular.copy(result),total: data.nodesCount});
2016-07-06 22:52:31 +02:00
});
}
render(store.getData);
$scope.$on('store', function(ev, prom) {
render(prom);
});
});