diff options
author | Pierre Spring <pierre.spring@caillou.ch> | 2010-10-10 18:10:56 +0200 |
---|---|---|
committer | Pierre Spring <pierre.spring@caillou.ch> | 2010-10-10 18:10:56 +0200 |
commit | 67a0ce7861f65736f36a8dd392c70c9c2d235977 (patch) | |
tree | f7fa5a9673160f216b2c4551c58e1534ab4fe90e | |
parent | c949039ddb6e824ea0449569499c8810165ee8c3 (diff) | |
download | rpg-67a0ce7861f65736f36a8dd392c70c9c2d235977.tar.gz rpg-67a0ce7861f65736f36a8dd392c70c9c2d235977.tar.bz2 |
media.js is jQueryfied.
-rw-r--r-- | lib/scripts/media.js | 234 |
1 files changed, 109 insertions, 125 deletions
diff --git a/lib/scripts/media.js b/lib/scripts/media.js index 974b2864c..a2d287fd3 100644 --- a/lib/scripts/media.js +++ b/lib/scripts/media.js @@ -5,7 +5,7 @@ // TODO // * fix the css to have pointers on the +/- images in the tree when JS is enabled // * fix the css to have pointers on a.select when JS is enabled -// * remame all the variables starting with $ once the port is over +// * refactor once the jQuery port is over ;) /** * JavaScript functionality for the media management popup @@ -14,7 +14,18 @@ * @author Pierre Spring <pierre.spring@caillou.ch> */ (function ($) { - var toggle, list, prepare_content, insert, confirmattach, attachoptions, initpopup; + var toggle, list, prepare_content, insert, confirmattach, attachoptions, initpopup, updatehide, setalign, setsize, inSet, outSet, media_manager; + + var media_manager = { + keepopen: false, + hide: false, + align: false, + popup: false, + display: false, + link: false, + size: false, + ext: false, + }; /** * build the popup window @@ -62,7 +73,7 @@ linkbtn.id = "media__linkbtn" + (i + 1); linkbtn.title = LANG['media' + linkbtns[i]]; linkbtn.style.borderStyle = 'outset'; - $(linkbtn).click(function (event) { return media_manager.setlink(event,this); }); + $(linkbtn).click(function (event) { return setlink(event,this); }); var linkimg = document.createElement('img'); linkimg.src = DOKU_BASE + 'lib/images/media_link_' + linkbtns[i] + '.png'; @@ -97,7 +108,7 @@ alignbtn.className = 'button'; alignbtn.appendChild(alignimg); alignbtn.style.borderStyle = 'outset'; - $(alignbtn).click(function (event) { return media_manager.setalign(event,this); }); + $(alignbtn).click(function (event) { return setalign(event,this); }); alignp.appendChild(alignbtn); } @@ -130,7 +141,7 @@ sizebtn.id = 'media__sizebtn' + (size + 1); sizebtn.title = LANG['media' + sizebtns[size]]; sizebtn.style.borderStyle = 'outset'; - $(sizebtn).click(function (event) { return media_manager.setsize(event,this); }); + $(sizebtn).click(function (event) { return setsize(event,this); }); } popup.appendChild(sizep); @@ -307,7 +318,7 @@ function (data) { content.html(data); prepare_content(content); - media_manager.updatehide(); + updatehide(); }, 'html' ); @@ -364,7 +375,7 @@ .css('left', event.pageX + 'px') .css('top', event.pageY + 'px'); - $('#media__popup button.button').each(function (index, element) { media_manager.outSet(element) } ); + $('#media__popup button.button').each(function (index, element) { outSet(element) } ); if (ext == '.swf') { @@ -377,26 +388,26 @@ // set the link button to default if (media_manager.link != false) { if ( media_manager.link == '2' || media_manager.link == '1') { - media_manager.inSet('media__linkbtn3'); + inSet('media__linkbtn3'); media_manager.link = '3'; DokuCookie.setValue('link','3'); } else { - media_manager.inSet('media__linkbtn'+media_manager.link); + inSet('media__linkbtn'+media_manager.link); } } else if (DokuCookie.getValue('link')) { if ( DokuCookie.getValue('link') == '2' || DokuCookie.getValue('link') == '1') { // this options are not availible - media_manager.inSet('media__linkbtn3'); + inSet('media__linkbtn3'); media_manager.link = '3'; DokuCookie.setValue('link','3'); } else { - media_manager.inSet('media__linkbtn'+DokuCookie.getValue('link')); + inSet('media__linkbtn'+DokuCookie.getValue('link')); media_manager.link = DokuCookie.getValue('link'); } } else { // default case media_manager.link = '3'; - media_manager.inSet('media__linkbtn3'); + inSet('media__linkbtn3'); DokuCookie.setValue('link','3'); } @@ -420,7 +431,7 @@ media_manager.link = '1'; DokuCookie.setValue('link','1'); } - media_manager.inSet('media__linkbtn'+media_manager.link); + inSet('media__linkbtn'+media_manager.link); } if (media_manager.link == '4') { @@ -434,14 +445,14 @@ // set the align button to default if (media_manager.align != false) { - media_manager.inSet('media__alignbtn'+media_manager.align); + inSet('media__alignbtn'+media_manager.align); } else if (DokuCookie.getValue('align')) { - media_manager.inSet('media__alignbtn'+DokuCookie.getValue('align')); + inSet('media__alignbtn'+DokuCookie.getValue('align')); media_manager.align = DokuCookie.getValue('align'); } else { // default case media_manager.align = '0'; - media_manager.inSet('media__alignbtn0'); + inSet('media__alignbtn0'); DokuCookie.setValue('align','0'); } @@ -454,7 +465,7 @@ media_manager.size = '2'; DokuCookie.setValue('size','2'); } - media_manager.inSet('media__sizebtn'+media_manager.size); + inSet('media__sizebtn'+media_manager.size); $('#media__sendbtn').focus(); } @@ -524,7 +535,7 @@ $(hdbox).click( function () { toggleOption(this, 'hide'); - media_manager.updatehide(); + updatehide(); } ); @@ -537,7 +548,7 @@ obj.appendChild(hdbox); obj.appendChild(hdlbl); obj.appendChild(hdbr); - media_manager.updatehide(); + updatehide(); }, /** @@ -578,158 +589,131 @@ ) .appendTo(oform); }; - - $(function () { - var content = $('#media__content'); - prepare_content(content); - - attachoptions(); - initpopup(); - - // add the action to autofill the "upload as" field - content.delegate('#upload__file', 'change', suggest) - // Attach the image selector action to all links - .delegate('a.select', 'click', select) - // Attach deletion confirmation dialog to the delete buttons - .delegate('#media__content a.btn_media_delete', 'click', confirmattach); - - - $('#media__tree').delegate('img', 'click', toggle) - .delegate('a', 'click', list); - }); -}(jQuery)); - -var media_manager = { - keepopen: false, - hide: false, - align: false, - popup: false, - display: false, - link: false, - size: false, - ext: false, - + /** * Sets the visibility of the image details accordingly to the * chosen hide state * * @author Andreas Gohr <andi@splitbrain.org> */ - updatehide: function(){ - var obj = $('media__content'); - if(!obj) return; - var details = getElementsByClass('detail',obj,'div'); - for(var i=0; i<details.length; i++){ - if(media_manager.hide){ - details[i].style.display = 'none'; - }else{ - details[i].style.display = ''; - } + updatehide = function(){ + var content = $('#media__content'); + if(0 === content.size()) { + return; } - }, + content.find('div.detail').each( + function (index, element) { + if(media_manager.hide){ + element.style.display = 'none'; + }else{ + element.style.display = ''; + } + } + ); + }; + /** * set the align * * @author Dominik Eckelmann <eckelmann@cosmocode.de> */ - setalign: function(event,cb){ + setalign = function(event,cb){ if(cb.value){ DokuCookie.setValue('align',cb.value); media_manager.align = cb.value; - media_manager.outSet("media__alignbtn0"); - media_manager.outSet("media__alignbtn1"); - media_manager.outSet("media__alignbtn2"); - media_manager.outSet("media__alignbtn3"); - media_manager.inSet("media__alignbtn"+cb.value); + outSet("media__alignbtn0"); + outSet("media__alignbtn1"); + outSet("media__alignbtn2"); + outSet("media__alignbtn3"); + inSet("media__alignbtn"+cb.value); }else{ DokuCookie.setValue('align',''); media_manager.align = false; } - }, + }; + /** * set the link type * * @author Dominik Eckelmann <eckelmann@cosmocode.de> */ - setlink: function(event,cb){ + setlink = function(event,cb){ if(cb.value){ DokuCookie.setValue('link',cb.value); media_manager.link = cb.value; - media_manager.outSet("media__linkbtn1"); - media_manager.outSet("media__linkbtn2"); - media_manager.outSet("media__linkbtn3"); - media_manager.outSet("media__linkbtn4"); - media_manager.inSet("media__linkbtn"+cb.value); - var size = document.getElementById("media__size"); - var align = document.getElementById("media__align"); + outSet("media__linkbtn1"); + outSet("media__linkbtn2"); + outSet("media__linkbtn3"); + outSet("media__linkbtn4"); + inSet("media__linkbtn"+cb.value); + var size = $("#media__size"); + var align = $("#media__align"); if (cb.value != '4') { - size.style.display = "block"; - align.style.display = "block"; + size.show(); + align.show(); } else { - size.style.display = "none"; - align.style.display = "none"; + size.hide(); + align.hide(); } }else{ DokuCookie.setValue('link',''); media_manager.link = false; } - }, - - /** - * set the display type - * - * @author Dominik Eckelmann <eckelmann@cosmocode.de> - */ - setdisplay: function(event,cb){ - if(cb.value){ - DokuCookie.setValue('display',cb.value); - media_manager.display = cb.value; - media_manager.outSet("media__displaybtn1"); - media_manager.outSet("media__displaybtn2"); - media_manager.inSet("media__displaybtn"+cb.value); - - }else{ - DokuCookie.setValue('display',''); - media_manager.align = false; - } - }, - - /** - * sets the border to outset - */ - outSet: function(element) { - if ('string' === typeof element) { - element = '#' + element; - } - jQuery(element).css('border-style', 'outset'); - }, - - /** - * sets the border to inset - */ - inSet: function(id) { - var ele = document.getElementById(id); - if (ele == null) return; - ele.style.borderStyle = "inset"; - }, - + }; + /** * set the image size * * @author Dominik Eckelmann <eckelmann@cosmocode.de> */ - setsize: function(event,cb){ + setsize = function(event,cb){ if (cb.value) { DokuCookie.setValue('size',cb.value); media_manager.size = cb.value; for (var i = 1 ; i <= 4 ; ++i) { - media_manager.outSet("media__sizebtn" + i); + outSet("media__sizebtn" + i); } - media_manager.inSet("media__sizebtn"+cb.value); + inSet("media__sizebtn"+cb.value); } else { DokuCookie.setValue('size',''); media_manager.width = false; } - } -};
\ No newline at end of file + }; + + /** + * sets the border to inset + */ + inSet = function(id) { + var ele = $('#' + id).css('border-style', 'inset'); + }; + + /** + * sets the border to outset + */ + outSet = function(element) { + if ('string' === typeof element) { + element = '#' + element; + } + $(element).css('border-style', 'outset'); + }; + + $(function () { + var content = $('#media__content'); + prepare_content(content); + + attachoptions(); + initpopup(); + + // add the action to autofill the "upload as" field + content.delegate('#upload__file', 'change', suggest) + // Attach the image selector action to all links + .delegate('a.select', 'click', select) + // Attach deletion confirmation dialog to the delete buttons + .delegate('#media__content a.btn_media_delete', 'click', confirmattach); + + + $('#media__tree').delegate('img', 'click', toggle) + .delegate('a', 'click', list); + }); +}(jQuery));
\ No newline at end of file |