# HG changeset patch # User Thierry Florac # Date 1494926585 -7200 # Node ID ad5f7192d437d8b1828b897b0bb3d50a770efcad # Parent f8e004744ae949ceec03a2615a1788d496a9fc68 Switch to strict mode diff -r f8e004744ae9 -r ad5f7192d437 src/pyams_thesaurus/zmi/resources/js/pyams_thesaurus.js --- a/src/pyams_thesaurus/zmi/resources/js/pyams_thesaurus.js Tue May 16 11:22:11 2017 +0200 +++ b/src/pyams_thesaurus/zmi/resources/js/pyams_thesaurus.js Tue May 16 11:23:05 2017 +0200 @@ -1,6 +1,9 @@ -(function($) { +/* globals MyAMS */ +(function($, globals) { - PyAMS_thesaurus = { + 'use strict'; + + var PyAMS_thesaurus = { tree: { @@ -8,16 +11,23 @@ * Display term sub-nodes */ displaySubNodes: function(term, nodes, source) { - if (source === undefined) + if (source === undefined) { source = $('span.term:withtext("' + term + '")').siblings('i[data-ams-click-handler]'); + } var group = source.parents('span.label').siblings('ul.group'); var parent = group.closest('ul.group').closest('li'); group.empty(); for (var index in nodes) { + if (!nodes.hasOwnProperty(index)) { + continue; + } var node = nodes[index]; var li = $('
  • '); node.extracts.reverse(); for (var ext_index in node.extracts) { + if (!node.extracts.hasOwnProperty(ext_index)) { + continue; + } var extract = node.extracts[ext_index]; var div = $('
    ').addClass('pull-right margin-right-2') .appendTo(li); @@ -46,11 +56,12 @@ .addClass(node.css_class) .attr('data-ams-url', node.view) .attr('data-toggle', 'modal'); - if (node.expand) + if (node.expand) { $('').addClass('fa fa-lg fa-plus-circle') .attr('data-ams-click-handler', 'PyAMS_thesaurus.tree.expand') .attr('data-ams-stop-propagation', true) .appendTo(span); + } $('').addClass('term') .html(node.label) .appendTo(span); @@ -58,8 +69,9 @@ $('').addClass('hidden group') .appendTo(li); li.appendTo(group); - if (node.subnodes) + if (node.subnodes) { PyAMS_thesaurus.tree.displaySubNodes(node.label, node.subnodes); + } } group.removeClass('hidden'); source.removeClass('fa-gear') @@ -99,8 +111,9 @@ */ updateTerm: function(options) { var element = $('span.term:withtext("' + options.term + '")').siblings('i[data-ams-click-handler]'); - if (element.hasClass('fa-minus-circle')) + if (element.hasClass('fa-minus-circle')) { PyAMS_thesaurus.tree.collapse.call(element); + } PyAMS_thesaurus.tree.expand.call(element); }, @@ -116,7 +129,7 @@ .off('mouseover') .on('mouseover', function() { $(this).css('background-color', ''); - }) + }); }); }, @@ -130,11 +143,12 @@ return function() { var switcher = $('i.fa', $(this)); var extract = switcher.parents('tr:first').data('ams-element-name'); - if (switcher.hasClass('fa-eye-slash')) + if (switcher.hasClass('fa-eye-slash')) { PyAMS_thesaurus.tree.showExtract.call(this, extract, switcher); - else + } else { PyAMS_thesaurus.tree.hideExtract.call(this, extract, switcher); - } + } + }; }, /** @@ -170,8 +184,9 @@ $(document).on('click', 'i.extract-checker', function(e) { var checker = $(this); - if (checker.hasClass('disabled')) + if (checker.hasClass('disabled')) { return; + } var term = $('span.term', checker.closest('div').siblings('span')); MyAMS.ajax.post('switch-extract.json', {term: term.text(), extract: checker.data('ams-extract-name')}, function(data) { @@ -194,5 +209,6 @@ } }); }); + globals.PyAMS_thesaurus = PyAMS_thesaurus; -})(jQuery); +})(jQuery, this); diff -r f8e004744ae9 -r ad5f7192d437 src/pyams_thesaurus/zmi/resources/js/pyams_thesaurus.min.js --- a/src/pyams_thesaurus/zmi/resources/js/pyams_thesaurus.min.js Tue May 16 11:22:11 2017 +0200 +++ b/src/pyams_thesaurus/zmi/resources/js/pyams_thesaurus.min.js Tue May 16 11:23:05 2017 +0200 @@ -1,1 +1,1 @@ -(function(a){PyAMS_thesaurus={tree:{displaySubNodes:function(f,d,b){if(b===undefined){b=a('span.term:withtext("'+f+'")').siblings("i[data-ams-click-handler]")}var n=b.parents("span.label").siblings("ul.group");var m=n.closest("ul.group").closest("li");n.empty();for(var h in d){var e=d[h];var o=a("
  • ");e.extracts.reverse();for(var k in e.extracts){var g=e.extracts[k];var c=a("
    ").addClass("pull-right margin-right-2").appendTo(o);var p=a("").attr("data-ams-extract-name",g.name).addClass("fa fa-fw fa-square extract-checker").css("color","#"+g.color).appendTo(c);var j=a('>div i.extract-checker[data-ams-extract-name="'+g.name+'"]',m);if(j.hasClass("used")){if(g.used){p.addClass("used")}else{p.removeClass("fa-square").addClass("fa-square-o")}var i=a("i.switcher",'table.extracts tr[data-ams-element-name="'+g.name+'"]');if(!i.hasClass("fa-eye")){p.css("visibility","hidden")}}else{p.addClass("disabled").css("color","silver")}}var l=a("").addClass("label label-success").addClass(e.css_class).attr("data-ams-url",e.view).attr("data-toggle","modal");if(e.expand){a("").addClass("fa fa-lg fa-plus-circle").attr("data-ams-click-handler","PyAMS_thesaurus.tree.expand").attr("data-ams-stop-propagation",true).appendTo(l)}a("").addClass("term").html(e.label).appendTo(l);l.appendTo(o);a("").addClass("hidden group").appendTo(o);o.appendTo(n);if(e.subnodes){PyAMS_thesaurus.tree.displaySubNodes(e.label,e.subnodes)}}n.removeClass("hidden");b.removeClass("fa-gear").addClass("fa-minus-circle")},expand:function(){var d=a(this);if(d.hasClass("fa-plus-circle")){d.removeClass("fa-plus-circle").addClass("fa-gear");var b=d.siblings("span.term").text();var c=d.closest("div.tree").data("ams-tree-context");MyAMS.ajax.post(c+"/get-nodes.json",{term:b},function(e){PyAMS_thesaurus.tree.displaySubNodes(b,e.nodes,d)})}else{PyAMS_thesaurus.tree.collapse.call(this)}},collapse:function(){var b=a(this);b.parents("span.label").siblings("ul.group").addClass("hidden");b.removeClass("fa-minus-circle").addClass("fa-plus-circle")},updateTerm:function(b){var c=a('span.term:withtext("'+b.term+'")').siblings("i[data-ams-click-handler]");if(c.hasClass("fa-minus-circle")){PyAMS_thesaurus.tree.collapse.call(c)}PyAMS_thesaurus.tree.expand.call(c)},findTerm:function(b){MyAMS.ajax.post("get-parent-nodes.json",{term:b.term},function(d){PyAMS_thesaurus.tree.displaySubNodes(d.parent,d.nodes);var c=a('span.term:withtext("'+d.term+'")').parents("span.label");a("html,body").animate({scrollTop:c.offset().top-100},1000);c.css("background-color","darkgreen").off("mouseover").on("mouseover",function(){a(this).css("background-color","")})})},switchExtract:function(){return function(){var c=a("i.fa",a(this));var b=c.parents("tr:first").data("ams-element-name");if(c.hasClass("fa-eye-slash")){PyAMS_thesaurus.tree.showExtract.call(this,b,c)}else{PyAMS_thesaurus.tree.hideExtract.call(this,b,c)}}},showExtract:function(c,b){a('i.extract-checker[data-ams-extract-name="'+c+'"]').css("visibility","");b.removeClass("fa-eye-slash").removeClass("text-danger").addClass("fa-eye")},hideExtract:function(c,b){a('i.extract-checker[data-ams-extract-name="'+c+'"]').css("visibility","hidden");b.removeClass("fa-eye").addClass("fa-eye-slash").addClass("text-danger")}},search:function(){var b=a(this).val();PyAMS_thesaurus.tree.findTerm({term:b})}};a(document).on("click","i.extract-checker",function(d){var b=a(this);if(b.hasClass("disabled")){return}var c=a("span.term",b.closest("div").siblings("span"));MyAMS.ajax.post("switch-extract.json",{term:c.text(),extract:b.data("ams-extract-name")},function(e){if(e.status){MyAMS.ajax.handleJSON(e)}else{if(e.used){b.removeClass("fa-square-o").addClass("fa-square used");a('>li >div i.extract-checker[data-ams-extract-name="'+e.extract+'"]',b.closest("div").siblings("ul.group")).removeClass("fa-square disabled").addClass("fa-square-o").css("color","#"+e.color)}else{b.removeClass("fa-square used").addClass("fa-square-o");a('i.extract-checker[data-ams-extract-name="'+e.extract+'"]',b.closest("div").siblings("ul.group")).removeClass("fa-square-o").addClass("fa-square disabled").css("color","silver")}}})})})(jQuery); \ No newline at end of file +(function(c,a){var b={tree:{displaySubNodes:function(h,f,d){if(d===undefined){d=c('span.term:withtext("'+h+'")').siblings("i[data-ams-click-handler]")}var p=d.parents("span.label").siblings("ul.group");var o=p.closest("ul.group").closest("li");p.empty();for(var j in f){if(!f.hasOwnProperty(j)){continue}var g=f[j];var q=c("
  • ");g.extracts.reverse();for(var m in g.extracts){if(!g.extracts.hasOwnProperty(m)){continue}var i=g.extracts[m];var e=c("
    ").addClass("pull-right margin-right-2").appendTo(q);var r=c("").attr("data-ams-extract-name",i.name).addClass("fa fa-fw fa-square extract-checker").css("color","#"+i.color).appendTo(e);var l=c('>div i.extract-checker[data-ams-extract-name="'+i.name+'"]',o);if(l.hasClass("used")){if(i.used){r.addClass("used")}else{r.removeClass("fa-square").addClass("fa-square-o")}var k=c("i.switcher",'table.extracts tr[data-ams-element-name="'+i.name+'"]');if(!k.hasClass("fa-eye")){r.css("visibility","hidden")}}else{r.addClass("disabled").css("color","silver")}}var n=c("").addClass("label label-success").addClass(g.css_class).attr("data-ams-url",g.view).attr("data-toggle","modal");if(g.expand){c("").addClass("fa fa-lg fa-plus-circle").attr("data-ams-click-handler","PyAMS_thesaurus.tree.expand").attr("data-ams-stop-propagation",true).appendTo(n)}c("").addClass("term").html(g.label).appendTo(n);n.appendTo(q);c("").addClass("hidden group").appendTo(q);q.appendTo(p);if(g.subnodes){b.tree.displaySubNodes(g.label,g.subnodes)}}p.removeClass("hidden");d.removeClass("fa-gear").addClass("fa-minus-circle")},expand:function(){var f=c(this);if(f.hasClass("fa-plus-circle")){f.removeClass("fa-plus-circle").addClass("fa-gear");var d=f.siblings("span.term").text();var e=f.closest("div.tree").data("ams-tree-context");MyAMS.ajax.post(e+"/get-nodes.json",{term:d},function(g){b.tree.displaySubNodes(d,g.nodes,f)})}else{b.tree.collapse.call(this)}},collapse:function(){var d=c(this);d.parents("span.label").siblings("ul.group").addClass("hidden");d.removeClass("fa-minus-circle").addClass("fa-plus-circle")},updateTerm:function(d){var e=c('span.term:withtext("'+d.term+'")').siblings("i[data-ams-click-handler]");if(e.hasClass("fa-minus-circle")){b.tree.collapse.call(e)}b.tree.expand.call(e)},findTerm:function(d){MyAMS.ajax.post("get-parent-nodes.json",{term:d.term},function(f){b.tree.displaySubNodes(f.parent,f.nodes);var e=c('span.term:withtext("'+f.term+'")').parents("span.label");c("html,body").animate({scrollTop:e.offset().top-100},1000);e.css("background-color","darkgreen").off("mouseover").on("mouseover",function(){c(this).css("background-color","")})})},switchExtract:function(){return function(){var e=c("i.fa",c(this));var d=e.parents("tr:first").data("ams-element-name");if(e.hasClass("fa-eye-slash")){b.tree.showExtract.call(this,d,e)}else{b.tree.hideExtract.call(this,d,e)}}},showExtract:function(e,d){c('i.extract-checker[data-ams-extract-name="'+e+'"]').css("visibility","");d.removeClass("fa-eye-slash").removeClass("text-danger").addClass("fa-eye")},hideExtract:function(e,d){c('i.extract-checker[data-ams-extract-name="'+e+'"]').css("visibility","hidden");d.removeClass("fa-eye").addClass("fa-eye-slash").addClass("text-danger")}},search:function(){var d=c(this).val();b.tree.findTerm({term:d})}};c(document).on("click","i.extract-checker",function(g){var d=c(this);if(d.hasClass("disabled")){return}var f=c("span.term",d.closest("div").siblings("span"));MyAMS.ajax.post("switch-extract.json",{term:f.text(),extract:d.data("ams-extract-name")},function(e){if(e.status){MyAMS.ajax.handleJSON(e)}else{if(e.used){d.removeClass("fa-square-o").addClass("fa-square used");c('>li >div i.extract-checker[data-ams-extract-name="'+e.extract+'"]',d.closest("div").siblings("ul.group")).removeClass("fa-square disabled").addClass("fa-square-o").css("color","#"+e.color)}else{d.removeClass("fa-square used").addClass("fa-square-o");c('i.extract-checker[data-ams-extract-name="'+e.extract+'"]',d.closest("div").siblings("ul.group")).removeClass("fa-square-o").addClass("fa-square disabled").css("color","silver")}}})});a.PyAMS_thesaurus=b})(jQuery,this); \ No newline at end of file