Skip to content
Snippets Groups Projects
Commit ed5218f1 authored by Andreas Gohr's avatar Andreas Gohr
Browse files

finished jQuery port of ACL manager

parent 782d0c09
No related branches found
No related tags found
No related merge requests found
......@@ -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,"&lt;");
str = str.replace(/>/g,"&gt;");
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);
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment