summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--inc/lang/en/lang.php3
-rw-r--r--lib/scripts/media.js101
2 files changed, 86 insertions, 18 deletions
diff --git a/inc/lang/en/lang.php b/inc/lang/en/lang.php
index 84fde9c28..49f9676ae 100644
--- a/inc/lang/en/lang.php
+++ b/inc/lang/en/lang.php
@@ -103,7 +103,8 @@ $lang['mediainuse'] = 'The file "%s" hasn\'t been deleted - it is still in use.
$lang['namespaces'] = 'Namespaces';
$lang['mediafiles'] = 'Available files in';
-$lang['js']['keepopen'] = 'Keep window open on selection';
+$lang['js']['keepopen'] = 'Keep window open on selection';
+$lang['js']['hidedetails'] = 'Hide Details';
$lang['mediausage'] = 'Use the following syntax to reference this file:';
$lang['reference'] = 'References for';
diff --git a/lib/scripts/media.js b/lib/scripts/media.js
index 95ab11d0b..c4ec6eb21 100644
--- a/lib/scripts/media.js
+++ b/lib/scripts/media.js
@@ -5,6 +5,7 @@
*/
media = {
keepopen: false,
+ hide: false,
/**
* Attach event handlers to all "folders" below the given element
@@ -59,27 +60,53 @@ media = {
},
/**
- * Creates a checkbox for keeping the popup on selection
+ * Creates checkboxes for additional options
*
* @author Andreas Gohr <andi@splitbrain.org>
*/
- attachkeepopen: function(obj){
+ attachoptions: function(obj){
if(!obj) return;
- var cbox = document.createElement('input');
- cbox.type = 'checkbox';
- cbox.id = 'media__keepopen';
- if(DokuCookie.getValue('keepopen')){
- cbox.checked = true;
+ // keep open
+ if(opener){
+ var kobox = document.createElement('input');
+ kobox.type = 'checkbox';
+ kobox.id = 'media__keepopen';
+ if(DokuCookie.getValue('keepopen')){
+ kobox.checked = true;
+ }
+ addEvent(kobox,'change',function(event){ return media.togglekeepopen(event,this); });
+
+ var kolbl = document.createElement('label');
+ kolbl.htmlFor = 'media__keepopen';
+ kolbl.innerHTML = LANG['keepopen'];
+
+ var kobr = document.createElement('br');
+
+ obj.appendChild(kobox);
+ obj.appendChild(kolbl);
+ obj.appendChild(kobr);
}
- addEvent(cbox,'change',function(event){ return media.togglekeepopen(event,this); });
- var clbl = document.createElement('label');
- clbl.htmlFor = 'media__keepopen';
- clbl.innerHTML = LANG['keepopen'];
+ // hide details
+ var hdbox = document.createElement('input');
+ hdbox.type = 'checkbox';
+ hdbox.id = 'media__hide';
+ if(DokuCookie.getValue('hide')){
+ hdbox.checked = true;
+ }
+ addEvent(hdbox,'change',function(event){ return media.togglehide(event,this); });
+
+ var hdlbl = document.createElement('label');
+ hdlbl.htmlFor = 'media__hide';
+ hdlbl.innerHTML = LANG['hidedetails'];
+
+ var hdbr = document.createElement('br');
- obj.appendChild(cbox);
- obj.appendChild(clbl);
+ obj.appendChild(hdbox);
+ obj.appendChild(hdlbl);
+ obj.appendChild(hdbr);
+ media.updatehide();
},
/**
@@ -98,6 +125,41 @@ media = {
},
/**
+ * Toggles the hide details state
+ *
+ * @author Andreas Gohr <andi@splitbrain.org>
+ */
+ togglehide: function(event,cb){
+ if(cb.checked){
+ DokuCookie.setValue('hide',1);
+ media.hide = true;
+ }else{
+ DokuCookie.setValue('hide','');
+ media.hide = false;
+ }
+ media.updatehide();
+ },
+
+ /**
+ * 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.hide){
+ details[i].style.display = 'none';
+ }else{
+ details[i].style.display = '';
+ }
+ }
+ },
+
+ /**
* Insert the clicked image into the opener's textarea
*
* @author Andreas Gohr <andi@splitbrain.org>
@@ -139,7 +201,10 @@ media = {
content.innerHTML = '<img src="'+DOKU_BASE+'lib/images/loading.gif" alt="..." class="load" />';
ajax.elementObj = content;
- ajax.afterCompletion = function(){ media.selectorattach(content); };
+ ajax.afterCompletion = function(){
+ media.selectorattach(content);
+ media.updatehide();
+ };
ajax.runAJAX(link.search.substr(1)+'&call=medialist');
return false;
},
@@ -199,6 +264,8 @@ media = {
}
-addInitEvent(function(){media.treeattach($('media__tree'));});
-addInitEvent(function(){media.selectorattach($('media__content'));});
-addInitEvent(function(){media.attachkeepopen($('media__opts'));});
+addInitEvent(function(){
+ media.treeattach($('media__tree'));
+ media.selectorattach($('media__content'));
+ media.attachoptions($('media__opts'));
+});