From ed5218f1f645be768bb36518b24885923f980b90 Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Thu, 9 Jun 2011 10:37:19 +0200 Subject: [PATCH] finished jQuery port of ACL manager --- lib/plugins/acl/script.js | 58 ++++++++++++--------------------------- 1 file changed, 18 insertions(+), 40 deletions(-) diff --git a/lib/plugins/acl/script.js b/lib/plugins/acl/script.js index eccec501e..5b6c9ce1b 100644 --- a/lib/plugins/acl/script.js +++ b/lib/plugins/acl/script.js @@ -6,24 +6,19 @@ acl = { /** * Initialize the object and attach the event handlers - * - * @todo move to jQuery */ init: function(){ - this.ctl = $('acl_manager'); - if(!this.ctl) return; - - var sel = $('acl__user').getElementsByTagName('select')[0]; + if(!jQuery('#acl_manager').length) return; //FIXME only one underscore!! - addEvent(sel,'change',acl.userselhandler); - addEvent($('acl__tree'),'click',acl.treehandler); - addEvent($('acl__user').getElementsByTagName('input')[1],'click',acl.loadinfo); + jQuery('#acl__user select').change(acl.userselhandler); + jQuery('#acl__tree').click(acl.treehandler); + jQuery('#acl__user input[type=submit]').click(acl.loadinfo); }, /** * Handle user dropdown * - * Hides or shows the user/group entry box depending on wht was selected in the + * Hides or shows the user/group entry box depending on what was selected in the * dropdown element */ userselhandler: function(e){ @@ -72,21 +67,6 @@ acl = { return attributes; }, - /** - * htmlspecialchars equivalent - * - * @todo put in gloabl scripts lib? - */ - hsc: function(str) { - str = str.replace(/&/g,"&"); - str = str.replace(/\"/g,"""); - str = str.replace(/\'/g,"'"); - str = str.replace(/</g,"<"); - str = str.replace(/>/g,">"); - return str; - }, - - /** * Open or close a subtree using AJAX * @@ -130,31 +110,29 @@ acl = { * Handles all clicks in the tree, dispatching the right action based on the * clicked element * - * @todo move to jQuery + * @param Event e The event object that caused the execution */ treehandler: function(e){ if(e.target.src){ // is it an image? acl.treetoggle(e.target); } else if(e.target.href){ // is it a link? // remove highlighting - var obj = getElementsByClass('cur',$('acl__tree'),'a'); - for(var i=0; i<obj.length; i++){ - obj[i].className = obj[i].className.replace(/ cur/,''); - } + jQuery('#acl__tree a.cur').removeClass('cur'); + + var link = jQuery(e.target); // add new highlighting - e.target.className += ' cur'; + link.addClass('cur'); // set new page to detail form - var frm = $('acl__detail').getElementsByTagName('form')[0]; - if(e.target.className.search(/wikilink1/) > -1){ - frm.elements['ns'].value = ''; - frm.elements['id'].value = acl.hsc(acl.parseatt(e.target.search)['id']); - }else if(e.target.className.search(/idx_dir/) > -1){ - frm.elements['ns'].value = acl.hsc(acl.parseatt(e.target.search)['ns']); - frm.elements['id'].value = ''; + var frm = jQuery('#acl__detail form')[0]; + if(link.hasClass('wikilink1')){ + jQuery('#acl__detail form input[name=ns]').val(''); + jQuery('#acl__detail form input[name=id]').val(acl.parseatt(link[0].search)['id']); + }else if(link.hasClass('idx_dir')){ + jQuery('#acl__detail form input[name=ns]').val(acl.parseatt(link[0].search)['ns']); + jQuery('#acl__detail form input[name=id]').val(''); } - acl.loadinfo(); } @@ -165,4 +143,4 @@ acl = { }; -addInitEvent(acl.init); +jQuery(acl.init); -- GitLab