summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorPierre Spring <pierre.spring@caillou.ch>2010-10-10 18:10:56 +0200
committerPierre Spring <pierre.spring@caillou.ch>2010-10-10 18:10:56 +0200
commit67a0ce7861f65736f36a8dd392c70c9c2d235977 (patch)
treef7fa5a9673160f216b2c4551c58e1534ab4fe90e /lib
parentc949039ddb6e824ea0449569499c8810165ee8c3 (diff)
downloadrpg-67a0ce7861f65736f36a8dd392c70c9c2d235977.tar.gz
rpg-67a0ce7861f65736f36a8dd392c70c9c2d235977.tar.bz2
media.js is jQueryfied.
Diffstat (limited to 'lib')
-rw-r--r--lib/scripts/media.js234
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