diff --git a/lemonldap-ng-manager/MANIFEST b/lemonldap-ng-manager/MANIFEST index 588be6e88..1b6273e40 100644 --- a/lemonldap-ng-manager/MANIFEST +++ b/lemonldap-ng-manager/MANIFEST @@ -29,6 +29,7 @@ README REST-API.md scripts/lmConfigEditor scripts/testConfBackend.pl +site/coffee/diff.coffee site/coffee/llApp.coffee site/coffee/manager.coffee site/coffee/notifications.coffee @@ -120,6 +121,8 @@ site/static/forms/virtualHostContainer.html site/static/forms/white.html site/static/js/conftree.js site/static/js/conftree.min.js +site/static/js/diff.js +site/static/js/diff.min.js site/static/js/filterFunctions.js site/static/js/filterFunctions.min.js site/static/js/llApp.js @@ -143,6 +146,7 @@ site/static/logos/llng-icon-32.png site/static/logos/llng-logo-32.png site/static/logos/pastel.png site/static/struct.json +site/templates/diff.tpl site/templates/footer.tpl site/templates/header.tpl site/templates/manager.tpl diff --git a/lemonldap-ng-manager/site/coffee/diff.coffee b/lemonldap-ng-manager/site/coffee/diff.coffee index a3a438897..3b3706117 100644 --- a/lemonldap-ng-manager/site/coffee/diff.coffee +++ b/lemonldap-ng-manager/site/coffee/diff.coffee @@ -14,6 +14,7 @@ llapp.controller 'DiffCtrl', [ '$scope', '$http', '$q', '$translator', '$locatio $scope.waiting = true $scope.showM = false $scope.cfg = [] + $scope.data = {} # Import translations functions $scope.translateTitle = (node) -> @@ -70,11 +71,18 @@ llapp.controller 'DiffCtrl', [ '$scope', '$http', '$q', '$translator', '$locatio $scope.message = null d = $q.defer() $http.get("#{scriptname}diff/#{$scope.cfg[0].cfgNum}/#{$scope.cfg[1].cfgNum}").then (response) -> - $scope.data = response.data + $scope.data = [] + readDiff($scope.data,response.data[0],response.data[1]) $scope.waiting = false , (response) -> $scope.message = "#{$scope.translate('error')} : #{response.statusLine}" + readDiff (scope,c1,c2) -> + for k,v of c1 + unless k.match /^cfg/ + console.log k,typeof v + $scope.data[k] = v + pathEvent = (event, next, current) -> n = next.match(new RegExp('#/(latest|[0-9]+)(?:/(latest|[0-9]+))?$')) if n == null diff --git a/lemonldap-ng-manager/site/static/js/diff.js b/lemonldap-ng-manager/site/static/js/diff.js index 0a63890da..e0e898d92 100644 --- a/lemonldap-ng-manager/site/static/js/diff.js +++ b/lemonldap-ng-manager/site/static/js/diff.js @@ -20,6 +20,7 @@ diff.html script $scope.waiting = true; $scope.showM = false; $scope.cfg = []; + $scope.data = {}; $scope.translateTitle = function(node) { return $translator.translateField(node, 'title'); }; @@ -75,12 +76,27 @@ diff.html script $scope.message = null; d = $q.defer(); return $http.get(scriptname + "diff/" + $scope.cfg[0].cfgNum + "/" + $scope.cfg[1].cfgNum).then(function(response) { - $scope.data = response.data; + $scope.data = []; + readDiff($scope.data, response.data[0], response.data[1]); return $scope.waiting = false; }, function(response) { return $scope.message = ($scope.translate('error')) + " : " + response.statusLine; }); }; + readDiff(function(scope, c1, c2) { + var k, results, v; + results = []; + for (k in c1) { + v = c1[k]; + if (!k.match(/^cfg/)) { + console.log(k, typeof v); + results.push($scope.data[k] = v); + } else { + results.push(void 0); + } + } + return results; + }); pathEvent = function(event, next, current) { var n; n = next.match(new RegExp('#/(latest|[0-9]+)(?:/(latest|[0-9]+))?$')); diff --git a/lemonldap-ng-manager/site/static/js/diff.min.js b/lemonldap-ng-manager/site/static/js/diff.min.js index ff3cb811e..dd6c6a69c 100644 --- a/lemonldap-ng-manager/site/static/js/diff.min.js +++ b/lemonldap-ng-manager/site/static/js/diff.min.js @@ -1 +1 @@ -(function(){var a;a=angular.module("llngConfDiff",["ui.tree","ui.bootstrap","llApp","ngCookies"]);a.controller("DiffCtrl",["$scope","$http","$q","$translator","$location",function(e,i,d,c,h){var b,g,f;e.links=links;e.menulinks=menulinks;e.staticPrefix=staticPrefix;e.scriptname=scriptname;e.availableLanguages=availableLanguages;e.waiting=true;e.showM=false;e.cfg=[];e.translateTitle=function(j){return c.translateField(j,"title")};e.translateP=c.translateP;e.translate=c.translate;e.menuClick=function(j){if(j.popup){window.open(j.popup)}else{if(!j.action){j.action=j.title}switch(typeof j.action){case"function":j.action(e.currentNode,e);break;case"string":e[j.action]();break;default:console.log(typeof j.action)}}return e.showM=false};e.getLanguage=function(j){e.lang=j;e.init();return e.showM=false};b=function(j,l){var k;k=d.defer();if((e.cfg[j]==null)||e.cfg[j]!==l){i.get(""+confPrefix+l).then(function(m){var n;e.cfg[j]=m.data;n=new Date(m.data.cfgDate*1000);e.cfg[j].date=n.toLocaleString();console.log("Metadatas of cfg "+l+" loaded");return k.resolve("OK")},function(m){console.log(m);return k.reject("NOK")})}else{k.resolve()}return k.promise};g=function(){var j;e.message=null;j=d.defer();return i.get(scriptname+"diff/"+e.cfg[0].cfgNum+"/"+e.cfg[1].cfgNum).then(function(k){e.data=k.data;return e.waiting=false},function(k){return e.message=(e.translate("error"))+" : "+k.statusLine})};f=function(k,j,l){var m;m=j.match(new RegExp("#/(latest|[0-9]+)(?:/(latest|[0-9]+))?$"));if(m===null){h.path("/latest")}else{e.waiting=true;d.all([c.init(e.lang),b(0,m[1]),m[2]!=null?b(1,m[2]):void 0]).then(function(){if(m[2]!=null){return g()}else{if(e.cfg[0].prev){e.cfg[1]=e.cfg[0];return b(0,e.cfg[0].prev).then(function(){return g()})}else{e.message=e.translate("noDatas");return e.waiting=false}}})}return true};return e.$on("$locationChangeSuccess",f)}])}).call(this); \ No newline at end of file +(function(){var a;a=angular.module("llngConfDiff",["ui.tree","ui.bootstrap","llApp","ngCookies"]);a.controller("DiffCtrl",["$scope","$http","$q","$translator","$location",function(e,i,d,c,h){var b,g,f;e.links=links;e.menulinks=menulinks;e.staticPrefix=staticPrefix;e.scriptname=scriptname;e.availableLanguages=availableLanguages;e.waiting=true;e.showM=false;e.cfg=[];e.data={};e.translateTitle=function(j){return c.translateField(j,"title")};e.translateP=c.translateP;e.translate=c.translate;e.menuClick=function(j){if(j.popup){window.open(j.popup)}else{if(!j.action){j.action=j.title}switch(typeof j.action){case"function":j.action(e.currentNode,e);break;case"string":e[j.action]();break;default:console.log(typeof j.action)}}return e.showM=false};e.getLanguage=function(j){e.lang=j;e.init();return e.showM=false};b=function(j,l){var k;k=d.defer();if((e.cfg[j]==null)||e.cfg[j]!==l){i.get(""+confPrefix+l).then(function(m){var n;e.cfg[j]=m.data;n=new Date(m.data.cfgDate*1000);e.cfg[j].date=n.toLocaleString();console.log("Metadatas of cfg "+l+" loaded");return k.resolve("OK")},function(m){console.log(m);return k.reject("NOK")})}else{k.resolve()}return k.promise};g=function(){var j;e.message=null;j=d.defer();return i.get(scriptname+"diff/"+e.cfg[0].cfgNum+"/"+e.cfg[1].cfgNum).then(function(k){e.data=[];readDiff(e.data,k.data[0],k.data[1]);return e.waiting=false},function(k){return e.message=(e.translate("error"))+" : "+k.statusLine})};readDiff(function(p,o,n){var l,m,j;m=[];for(l in o){j=o[l];if(!l.match(/^cfg/)){console.log(l,typeof j);m.push(e.data[l]=j)}else{m.push(void 0)}}return m});f=function(k,j,l){var m;m=j.match(new RegExp("#/(latest|[0-9]+)(?:/(latest|[0-9]+))?$"));if(m===null){h.path("/latest")}else{e.waiting=true;d.all([c.init(e.lang),b(0,m[1]),m[2]!=null?b(1,m[2]):void 0]).then(function(){if(m[2]!=null){return g()}else{if(e.cfg[0].prev){e.cfg[1]=e.cfg[0];return b(0,e.cfg[0].prev).then(function(){return g()})}else{e.message=e.translate("noDatas");return e.waiting=false}}})}return true};return e.$on("$locationChangeSuccess",f)}])}).call(this); \ No newline at end of file