lemonldap-ng/lemonldap-ng-manager/site/htdocs/static/js/diff.min.js
2017-03-15 21:04:04 +00:00

1 line
3.6 KiB
JavaScript

(function(){var a;a=angular.module("llngConfDiff",["ui.tree","ui.bootstrap","llApp","ngCookies"]);a.controller("DiffCtrl",["$scope","$http","$q","$translator","$location",function(l,j,h,c,f){var b,d,m,i,g,e,k;l.links=links;l.menulinks=menulinks;l.staticPrefix=staticPrefix;l.scriptname=scriptname;l.availableLanguages=availableLanguages;l.waiting=true;l.showM=false;l.cfg=[];l.data={};l.currentNode=null;l.translateTitle=function(n){return c.translateField(n,"title")};l.translateP=c.translateP;l.translate=c.translate;l.toggle=function(n){return n.toggle()};l.stoggle=function(n,o){l.currentNode=o;return n.toggle()};l.menuClick=function(n){if(n.popup){window.open(n.popup)}else{if(!n.action){n.action=n.title}switch(typeof n.action){case"function":n.action(l.currentNode,l);break;case"string":l[n.action]();break;default:console.log(typeof n.action)}}return l.showM=false};l.getLanguage=function(n){l.lang=n;l.init();return l.showM=false};d=function(o,q){var p;p=h.defer();if((l.cfg[o]==null)||l.cfg[o]!==q){j.get(""+confPrefix+q).then(function(n){var r;if(n&&n.data){l.cfg[o]=n.data;r=new Date(n.data.cfgDate*1000);l.cfg[o].date=r.toLocaleString();console.log("Metadatas of cfg "+q+" loaded");return p.resolve("OK")}else{return p.reject(n)}},function(n){console.log(n);return p.reject("NOK")})}else{p.resolve()}return p.promise};m=function(){var n;l.message=null;l.currentNode=null;n=h.defer();return j.get(scriptname+"diff/"+l.cfg[0].cfgNum+"/"+l.cfg[1].cfgNum).then(function(o){var p;p=[];p=g(o.data[0],o.data[1]);l.data=b(p);l.message="";return l.waiting=false},function(o){return l.message=(l.translate("error"))+" : "+o.statusLine})};g=function(s,r,t){var o,q,p,n;if(t==null){t=true}q=[];for(o in s){n=s[o];if(t){p={title:l.translate(o),id:o}}else{p={title:o}}if(!o.match(/^cfg(?:Num|Log|Author(?:IP)?|Date)$/)){if((n!=null)&&typeof n==="object"){if(n.constructor==="array"){p.oldvalue=n;p.newvalue=r[o]}else{if(typeof r[o]==="object"){p.nodes=g(s[o],r[o],false)}else{p.oldnodes=k(n,"old")}}}else{p.oldvalue=n;p.newvalue=r[o]}q.push(p)}}for(o in r){n=r[o];if(!((o.match(/^cfg(?:Num|Log|Author(?:IP)?|Date)$/))||(s[o]!=null))){if(t){p={title:l.translate(o),id:o}}else{p={title:o}}if((n!=null)&&typeof n==="object"){if(n.constructor==="array"){p.newvalue=n}else{p.newnodes=k(n,"new")}}else{p.newvalue=n}q.push(p)}}return q};k=function(t,r){var o,q,p,n;q=[];for(o in t){n=t[o];p={title:o};if(typeof n==="object"){if(n.constructor==="array"){p[r+"value"]=n}else{p[r+"nodes"]=k(t[o],r)}}else{p[r+"value"]=n}q.push(p)}return q};e=[];b=function(x){var r,C,y,v,s,z,w,t,q,o,p,u,B,A;if(e==null){return x}A=[];for(v=0,z=x.length;v<z;v++){r=x[v];u=A;B=e[r.id]!=null?e[r.id].split("/"):"";for(s=0,w=B.length;s<w;s++){p=B[s];if(p.length>0){if(u.length){C=-1;for(y=q=0,t=u.length;q<t;y=++q){o=u[y];if(o.id===p){C=y}}if(C!==-1){u=u[C].nodes}else{u.push({id:p,title:l.translate(p),nodes:[]});u=u[u.length-1].nodes}}else{u.push({id:p,title:l.translate(p),nodes:[]});u=u[0].nodes}}}u.push(r)}return A};l.newDiff=function(){return f.path("/"+l.cfg[0].cfgNum+"/"+l.cfg[1].cfgNum)};i=function(p,o,q){var r;r=o.match(new RegExp("#/(latest|[0-9]+)(?:/(latest|[0-9]+))?$"));if(r===null){f.path("/latest")}else{l.waiting=true;h.all([c.init(l.lang),j.get(staticPrefix+"reverseTree.json").then(function(n){e=n.data;return console.log("Structure loaded")}),d(0,r[1]),r[2]!=null?d(1,r[2]):void 0]).then(function(){if(r[2]!=null){return m()}else{if(l.cfg[0].prev){l.cfg[1]=l.cfg[0];return d(0,l.cfg[1].prev).then(function(){return m()})}else{l.data=[];return l.waiting=false}}},function(){l.message=l.translate("error");return l.waiting=false})}return true};return l.$on("$locationChangeSuccess",i)}])}).call(this);