From 5771cddc97acf00f17c34fa7ed87df07d6457bf0 Mon Sep 17 00:00:00 2001 From: Pierre Spring Date: Thu, 23 Sep 2010 18:27:00 +0200 Subject: jQueryfied toggle function. --- lib/scripts/media.js | 89 +++++++++++++++++++++++++++++----------------------- 1 file changed, 50 insertions(+), 39 deletions(-) (limited to 'lib/scripts/media.js') diff --git a/lib/scripts/media.js b/lib/scripts/media.js index 95b1ab69e..809169363 100644 --- a/lib/scripts/media.js +++ b/lib/scripts/media.js @@ -2,7 +2,55 @@ * JavaScript functionalitiy for the media management popup * * @author Andreas Gohr + * @author Pierre Spring */ +(function ($) { + /** + * Open or close a subtree using AJAX + * + * @author Andreas Gohr + */ + toggle = function (event) { + var clicky, listitem, sublist, link, ul; + + var clicky = $(this); + var listitem = clicky.parent(); + + // if already open, close by removing the sublist + var sublist = listitem.find('ul').first(); + if(sublist.size()){ + sublist.remove(); // TODO: really? we could just hide it, right? + clicky.attr('src', DOKU_BASE + 'lib/images/plus.gif'); + event.preventDefault(); // TODO: really here? + return; + } + + // get the enclosed link (is always the first one) + link = listitem.find('a').first(); + + //prepare the new ul + ul = $('
    '); + + //fixme add classname here + + $.post( + DOKU_BASE + 'lib/exe/ajax.php', + link.attr('search').substr(1) + '&call=medians', + function (data) { + ul.html(data) + listitem.append(ul); + }, + 'html' + ); + + clicky.attr('src', DOKU_BASE + 'lib/images/minus.gif'); + }; + + $(function () { + $('#media__tree').delegate('img', 'click', toggle); + }); +}(jQuery)); + var media_manager = { keepopen: false, hide: false, @@ -29,7 +77,7 @@ var media_manager = { // attach action to make the +/- clickable var clicky = elem.getElementsByTagName('img')[0]; clicky.style.cursor = 'pointer'; - addEvent(clicky,'click',function(event){ return media_manager.toggle(event,this); }); + //addEvent(clicky,'click',function(event){ return media_manager.toggle(event,this); }); // attach action load folder list via AJAX var link = elem.getElementsByTagName('a')[0]; @@ -585,43 +633,6 @@ var media_manager = { return false; }, - - /** - * Open or close a subtree using AJAX - * - * @author Andreas Gohr - */ - toggle: function(event,clicky){ - var listitem = clicky.parentNode; - - // if already open, close by removing the sublist - var sublists = listitem.getElementsByTagName('ul'); - if(sublists.length){ - listitem.removeChild(sublists[0]); - clicky.src = DOKU_BASE+'lib/images/plus.gif'; - return false; - } - - // get the enclosed link (is always the first one) - var link = listitem.getElementsByTagName('a')[0]; - - // prepare an AJAX call to fetch the subtree - var ajax = new sack(DOKU_BASE + 'lib/exe/ajax.php'); - ajax.AjaxFailedAlert = ''; - ajax.encodeURIString = false; - if(ajax.failed) return true; - - //prepare the new ul - var ul = document.createElement('ul'); - //fixme add classname here - listitem.appendChild(ul); - ajax.elementObj = ul; - ajax.afterCompletion = function(){ media_manager.treeattach(ul); }; - ajax.runAJAX(link.search.substr(1)+'&call=medians'); - clicky.src = DOKU_BASE+'lib/images/minus.gif'; - return false; - }, - /** * Prefills the wikiname. * @@ -769,7 +780,7 @@ var media_manager = { }; addInitEvent(function(){ - media_manager.treeattach($('media__tree')); + //media_manager.treeattach($('media__tree')); media_manager.selectorattach($('media__content')); media_manager.confirmattach($('media__content')); media_manager.attachoptions($('media__opts')); -- cgit v1.2.3 From bebc031cee5b38e55f394ca1bb72721f77ac5e52 Mon Sep 17 00:00:00 2001 From: Pierre Spring Date: Thu, 23 Sep 2010 18:28:03 +0200 Subject: added JSLint declaration --- lib/scripts/media.js | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'lib/scripts/media.js') diff --git a/lib/scripts/media.js b/lib/scripts/media.js index 809169363..6a5107fcc 100644 --- a/lib/scripts/media.js +++ b/lib/scripts/media.js @@ -1,3 +1,7 @@ +/*jslint white: true, onevar: true, undef: true, nomen: true, eqeqeq: true, plusplus: true, bitwise: true, regexp: false, strict: true, newcap: true, immed: true */ +/*global jQuery, window, DOKU_BASE*/ +"use strict"; + /** * JavaScript functionalitiy for the media management popup * -- cgit v1.2.3 From a9cfe01a284c48b245a40ff3d02ebd2183fcba66 Mon Sep 17 00:00:00 2001 From: Pierre Spring Date: Fri, 24 Sep 2010 01:14:16 +0200 Subject: started jQueryfying media manager --- lib/scripts/media.js | 495 +++++++++++++++++++++++++-------------------------- 1 file changed, 240 insertions(+), 255 deletions(-) (limited to 'lib/scripts/media.js') diff --git a/lib/scripts/media.js b/lib/scripts/media.js index 6a5107fcc..9338ae078 100644 --- a/lib/scripts/media.js +++ b/lib/scripts/media.js @@ -2,6 +2,10 @@ /*global jQuery, window, DOKU_BASE*/ "use strict"; +// 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 + /** * JavaScript functionalitiy for the media management popup * @@ -9,34 +13,56 @@ * @author Pierre Spring */ (function ($) { + var toggle, list, cleanup_content; + + /** + * Prefills the wikiname. + * + * @author Andreas Gohr + */ + suggest = function(){ + var file, name, text; + + file = $(this); + name = $('#upload__name'); + if(!file.size() || !name.size()) return; + + text = file.val(); + text = text.substr(text.lastIndexOf('/')+1); + text = text.substr(text.lastIndexOf('\\')+1); + name.val(text); + }; + /** * Open or close a subtree using AJAX * * @author Andreas Gohr + * @author Pierre Spring */ toggle = function (event) { var clicky, listitem, sublist, link, ul; - + + event.preventDefault(); // TODO: really here? + var clicky = $(this); var listitem = clicky.parent(); // if already open, close by removing the sublist - var sublist = listitem.find('ul').first(); + sublist = listitem.find('ul').first(); if(sublist.size()){ sublist.remove(); // TODO: really? we could just hide it, right? clicky.attr('src', DOKU_BASE + 'lib/images/plus.gif'); - event.preventDefault(); // TODO: really here? return; } // get the enclosed link (is always the first one) link = listitem.find('a').first(); - + //prepare the new ul ul = $('
      '); //fixme add classname here - + $.post( DOKU_BASE + 'lib/exe/ajax.php', link.attr('search').substr(1) + '&call=medians', @@ -46,77 +72,230 @@ }, 'html' ); - + clicky.attr('src', DOKU_BASE + 'lib/images/minus.gif'); }; - - $(function () { - $('#media__tree').delegate('img', 'click', toggle); - }); -}(jQuery)); - -var media_manager = { - keepopen: false, - hide: false, - align: false, - popup: false, - id: false, - display: false, - link: false, - size: false, - ext: false, /** - * Attach event handlers to all "folders" below the given element + * list the content of a namespace using AJAX * * @author Andreas Gohr + * @author Pierre Spring */ - treeattach: function(obj){ - if(!obj) return; + list = function (event) { + var link, content; + link = $(this); - var items = obj.getElementsByTagName('li'); - for(var i=0; i'); - // attach action load folder list via AJAX - var link = elem.getElementsByTagName('a')[0]; - link.style.cursor = 'pointer'; - addEvent(link,'click',function(event){ return media_manager.list(event,this); }); - } - }, + // fetch the subtree + $.post( + DOKU_BASE + 'lib/exe/ajax.php', + link.attr('search').substr(1)+'&call=medialist', + function (data) { + content.html(data); + cleanup_content(content); - /** - * Attach the image selector action to all links below the given element - * also add the action to autofill the "upload as" field - * - * @author Andreas Gohr - */ - selectorattach: function(obj){ - if(!obj) return; - var items = getElementsByClass('select',obj,'a'); - for(var i=0; i - */ - list: function(event,link){ - // prepare an AJAX call to fetch the subtree - var ajax = new sack(DOKU_BASE + 'lib/exe/ajax.php'); - ajax.AjaxFailedAlert = ''; - ajax.encodeURIString = false; - if(ajax.failed) return true; - - cleanMsgArea(); - - var content = $('media__content'); - content.innerHTML = '...'; - - ajax.elementObj = content; - ajax.afterCompletion = function(){ - media_manager.selectorattach(content); - media_manager.confirmattach(content); - media_manager.updatehide(); - media_manager.initFlashUpload(); - }; - ajax.runAJAX(link.search.substr(1)+'&call=medialist'); - return false; - }, - - /** - * Prefills the wikiname. - * - * @author Andreas Gohr - */ - suggest: function(){ - var file = $('upload__file'); - var name = $('upload__name'); - if(!file || !name) return; - - var text = file.value; - text = text.substr(text.lastIndexOf('/')+1); - text = text.substr(text.lastIndexOf('\\')+1); - name.value = text; - }, - - initFlashUpload: function(){ if(!hasFlash(8)) return; var oform = $('dw__upload'); @@ -785,7 +771,6 @@ var media_manager = { addInitEvent(function(){ //media_manager.treeattach($('media__tree')); - media_manager.selectorattach($('media__content')); media_manager.confirmattach($('media__content')); media_manager.attachoptions($('media__opts')); media_manager.initpopup(); -- cgit v1.2.3 From 9a5b2366bbd98dc1293220801ff2ea2b9b723eea Mon Sep 17 00:00:00 2001 From: Pierre Spring Date: Fri, 1 Oct 2010 01:23:50 +0200 Subject: Worked on jQuery port of the media manager --- lib/scripts/media.js | 721 ++++++++++++++++++++++++--------------------------- 1 file changed, 343 insertions(+), 378 deletions(-) (limited to 'lib/scripts/media.js') diff --git a/lib/scripts/media.js b/lib/scripts/media.js index 9338ae078..f30c2cc7b 100644 --- a/lib/scripts/media.js +++ b/lib/scripts/media.js @@ -5,6 +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 /** * JavaScript functionalitiy for the media management popup @@ -13,7 +14,222 @@ * @author Pierre Spring */ (function ($) { - var toggle, list, cleanup_content; + var toggle, list, prepare_content, insert, confirmattach, attachoptions, initpopup; + + /** + * build the popup window + * + * @author Dominik Eckelmann + */ + initpopup = function() { + var popup; + + popup = document.createElement('div'); + popup.setAttribute('id','media__popup'); + + var root = document.getElementById('media__manager'); + if (root == null) return; + root.appendChild(popup); + + var headline = document.createElement('h1'); + headline.innerHTML = LANG.mediatitle; + var headlineimg = document.createElement('img'); + headlineimg.src = DOKU_BASE + 'lib/images/close.png'; + headlineimg.id = 'media__closeimg'; + $(headlineimg).click(function () {$(popup).hide()}); + headline.insertBefore(headlineimg, headline.firstChild); + popup.appendChild(headline); + drag.attach(popup,headline); // Pierre: TODO + + // link + + var linkp = document.createElement('p'); + + linkp.id = "media__linkstyle"; + if (media_manager.display == "2") { + linkp.style.display = "none"; + } + + var linkl = document.createElement('label'); + linkl.innerHTML = LANG.mediatarget; + linkp.appendChild(linkl); + + var linkbtns = ['lnk', 'direct', 'nolnk', 'displaylnk']; + for (var i = 0 ; i < linkbtns.length ; ++i) { + var linkbtn = document.createElement('button'); + linkbtn.className = 'button'; + linkbtn.value = i + 1; + 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); }); + + var linkimg = document.createElement('img'); + linkimg.src = DOKU_BASE + 'lib/images/media_link_' + linkbtns[i] + '.png'; + + linkbtn.appendChild(linkimg); + linkp.appendChild(linkbtn); + } + + popup.appendChild(linkp); + + // align + + var alignp = document.createElement('p'); + var alignl = document.createElement('label'); + + alignp.appendChild(alignl); + alignp.id = 'media__align'; + if (media_manager.display == "2") { + alignp.style.display = "none"; + } + alignl.innerHTML = LANG['mediaalign']; + + var alignbtns = ['noalign', 'left', 'center', 'right']; + for (var n = 0 ; n < alignbtns.length ; ++n) { + var alignbtn = document.createElement('button'); + var alignimg = document.createElement('img'); + alignimg.src = DOKU_BASE + 'lib/images/media_align_' + alignbtns[n] + '.png'; + + alignbtn.id = "media__alignbtn" + n; + alignbtn.value = n; + alignbtn.title = LANG['media' + alignbtns[n]]; + alignbtn.className = 'button'; + alignbtn.appendChild(alignimg); + alignbtn.style.borderStyle = 'outset'; + $(alignbtn).click(function (event) { return media_manager.setalign(event,this); }); + + alignp.appendChild(alignbtn); + } + + popup.appendChild(alignp); + + // size + + var sizep = document.createElement('p'); + var sizel = document.createElement('label'); + + sizep.id = 'media__size'; + if (media_manager.display == "2") { + sizep.style.display = "none"; + } + sizep.appendChild(sizel); + sizel.innerHTML = LANG['mediasize']; + + var sizebtns = ['small', 'medium', 'large', 'original']; + for (var size = 0 ; size < sizebtns.length ; ++size) { + var sizebtn = document.createElement('button'); + var sizeimg = document.createElement('img'); + + sizep.appendChild(sizebtn); + sizeimg.src = DOKU_BASE + 'lib/images/media_size_' + sizebtns[size] + '.png'; + + sizebtn.className = 'button'; + sizebtn.appendChild(sizeimg); + sizebtn.value = size + 1; + 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); }); + } + + popup.appendChild(sizep); + + // send and close button + + var btnp = document.createElement('p'); + popup.appendChild(btnp); + btnp.setAttribute('class','btnlbl'); + + var cls = document.createElement('input'); + cls.type = 'button'; + cls.setAttribute('class','button'); + cls.value = LANG['mediaclose']; + btnp.appendChild(cls); + + $(cls).click(function () {$(popup).hide();}); + + var btn = document.createElement('input'); + btn.type = 'button'; + btn.id = 'media__sendbtn'; + btn.setAttribute('class','button'); + btn.value = LANG['mediainsert']; + btnp.appendChild(btn); + }; + + /** + * Insert the clicked image into the opener's textarea + * + * @author Andreas Gohr + * @author Dominik Eckelmann + * @author Pierre Spring + */ + insert = function (id) { + var opts, optsstart, alignleft, alignright; + + // set syntax options + $('#media__popup').hide(); + + opts = ''; + optsstart = ''; + alignleft = ''; + alignright = ''; + + if (media_manager.ext == 'img' || media_manager.ext == 'swf') { + + if (media_manager.link == '4') { + opts = '?linkonly'; + } else { + + if (media_manager.link == "3" && media_manager.ext == 'img') { + opts = '?nolink'; + optsstart = true; + } else if (media_manager.link == "2" && media_manager.ext == 'img') { + opts = '?direct'; + optsstart = true; + } + + var s = parseInt(media_manager.size); + + if (s && s >= 1) { + opts += (optsstart)?'&':'?'; + if (s=="1") { + opts += '100'; + if (media_manager.ext == 'swf') { + opts += 'x62'; + } + } else if (s=="2") { + opts += '200'; + if (media_manager.ext == 'swf') { + opts += 'x123'; + } + } else if (s=="3"){ + opts += '300'; + if (media_manager.ext == 'swf') { + opts += 'x185'; + } + } + } + if (media_manager.align == '1') { + alignleft = ''; + alignright = ' '; + } + if (media_manager.align == '2') { + alignleft = ' '; + alignright = ' '; + } + if (media_manager.align == '3') { + alignleft = ' '; + alignright = ''; + } + } + } + opener.insertTags('wiki__text','{{'+alignleft+id+opts+alignright+'|','}}',''); + + if(!media_manager.keepopen) window.close(); + opener.focus(); + return false; + }; /** * Prefills the wikiname. @@ -98,37 +314,31 @@ link.attr('search').substr(1)+'&call=medialist', function (data) { content.html(data); - cleanup_content(content); - - - content = content[0]; - media_manager.confirmattach(content); + prepare_content(content); media_manager.updatehide(); - media_manager.initFlashUpload(); }, 'html' ); }; - cleanup_content = function (content) { + prepare_content = function (content) { // hide syntax example content.find('div.example:visible').hide(); + initFlashUpload(); }; /** * shows the popup for a image link */ select = function(event){ - var link, id; + var link, id, dot, ext; event.preventDefault(); link = $(this); id = link.attr('name').substr(2); - media_manager.id = id; ///////////////////////////////////////////// - if(!opener){ // if we don't run in popup display example // the id's are a bit wired and $('#ex_wiki_dokuwiki-128.png') will not be found @@ -138,50 +348,39 @@ return; } - // pierre: continue here link = link[0]; media_manager.ext = false; - var dot = id.lastIndexOf("."); - if (dot != -1) { - var ext = id.substr(dot,id.length); + dot = id.lastIndexOf("."); - if (ext != '.jpg' && ext != '.jpeg' && ext != '.png' && ext != '.gif' && ext != '.swf') { - media_manager.insert(null); - return false; - } - } else { - media_manager.insert(null); - return false; + if (-1 === dot) { + insert(id); + return; } - media_manager.popup.style.display = 'inline'; - media_manager.popup.style.left = event.pageX + 'px'; - media_manager.popup.style.top = event.pageY + 'px'; + ext = id.substr(dot); - // set all buttons to outset - media_manager.outSet('media__linkbtn1'); - media_manager.outSet('media__linkbtn2'); - media_manager.outSet('media__linkbtn3'); - media_manager.outSet('media__linkbtn4'); + if (ext != '.jpg' && ext != '.jpeg' && ext != '.png' && ext != '.gif' && ext != '.swf') { + insert(id); + return; + } - media_manager.outSet('media__alignbtn0'); - media_manager.outSet('media__alignbtn1'); - media_manager.outSet('media__alignbtn2'); - media_manager.outSet('media__alignbtn3'); + // remove old callback from the insert button and set the new one. + $('#media__sendbtn').unbind().click(function () {insert(id)}); - media_manager.outSet('media__sizebtn1'); - media_manager.outSet('media__sizebtn2'); - media_manager.outSet('media__sizebtn3'); - media_manager.outSet('media__sizebtn4'); + $('#media__popup').show() + .css('left', event.pageX + 'px') + .css('top', event.pageY + 'px'); + + $('#media__popup button.button').each(function (index, element) { media_manager.outSet(element) } ); if (ext == '.swf') { media_manager.ext = 'swf'; // disable display buttons for detail and linked image - $('media__linkbtn1').style.display = 'none'; - $('media__linkbtn2').style.display = 'none'; + $('#media__linkbtn1').hide(); + $('#media__linkbtn2').hide(); // set the link button to default if (media_manager.link != false) { @@ -210,15 +409,15 @@ } // disable button for original size - $('media__sizebtn4').style.display = 'none'; + $('#media__sizebtn4').hide(); } else { media_manager.ext = 'img'; // ensure that the display buttons are there - $('media__linkbtn1').style.display = 'inline'; - $('media__linkbtn2').style.display = 'inline'; - $('media__sizebtn4').style.display = 'inline'; + $('#media__linkbtn1').show(); + $('#media__linkbtn2').show(); + $('#media__sizebtn4').show(); // set the link button to default if (DokuCookie.getValue('link')) { @@ -235,11 +434,11 @@ if (media_manager.link == '4') { media_manager.align = false; media_manager.size = false; - $('media__align').style.display = 'none'; - $('media__size').style.display = 'none'; + $('#media__align').hide(); + $('#media__size').hide(); } else { - $('media__align').style.display = 'block'; - $('media__size').style.display = 'block'; + $('#media__align').show(); + $('#media__size').show(); // set the align button to default if (media_manager.align != false) { @@ -265,71 +464,32 @@ } media_manager.inSet('media__sizebtn'+media_manager.size); - $('media__sendbtn').focus(); + $('#media__sendbtn').focus(); } - return false; + return; }; - - $(function () { - var content = $('#media__content'); - cleanup_content(content); - - // 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) - - $('#media__tree').delegate('img', 'click', toggle) - .delegate('a', 'click', list); - }); -}(jQuery)); - -var media_manager = { - keepopen: false, - hide: false, - align: false, - popup: false, - id: false, - display: false, - link: false, - size: false, - ext: false, - /** - * Attach deletion confirmation dialog to the delete buttons. + * Deletion confirmation dialog to the delete buttons. * - * Michael Klier + * @author Michael Klier + * @author Pierre Spring */ - confirmattach: function(obj){ - if(!obj) return; - - items = getElementsByClass('btn_media_delete',obj,'a'); - for(var i=0; i + * @author Pierre Spring */ - attachoptions: function(obj){ + attachoptions = function(){ + obj = $('#media__opts')[0] if(!obj) return; // keep open @@ -342,8 +502,13 @@ var media_manager = { kobox.defaultChecked = true; //IE wants this media_manager.keepopen = true; } - addEvent(kobox,'click',function(event){ return media_manager.togglekeepopen(event,this); }); - + + $(kobox).click( + function () { + toggleOption(this, 'keepopen'); + } + ); + var kolbl = document.createElement('label'); kolbl.htmlFor = 'media__keepopen'; kolbl.innerHTML = LANG['keepopen']; @@ -364,7 +529,12 @@ var media_manager = { hdbox.defaultChecked = true; //IE wants this media_manager.hide = true; } - addEvent(hdbox,'click',function(event){ return media_manager.togglehide(event,this); }); + $(hdbox).click( + function () { + toggleOption(this, 'hide'); + media_manager.updatehide(); + } + ); var hdlbl = document.createElement('label'); hdlbl.htmlFor = 'media__hide'; @@ -379,35 +549,73 @@ var media_manager = { }, /** - * Toggles the keep open state + * Generalized toggler * - * @author Andreas Gohr - */ - togglekeepopen: function(event,cb){ - if(cb.checked){ - DokuCookie.setValue('keepopen',1); - media_manager.keepopen = true; - }else{ - DokuCookie.setValue('keepopen',''); - media_manager.keepopen = false; + * @author Pierre Spring + */ + toggleOption = function (checkbox, variable) { + if (checkbox.checked) { + DokuCookie.setValue(variable, 1); + media_manager[variable] = true; + } else { + DokuCookie.setValue(variable, ''); + media_manager[variable] = false; } - }, + } - /** - * Toggles the hide details state - * - * @author Andreas Gohr - */ - togglehide: function(event,cb){ - if(cb.checked){ - DokuCookie.setValue('hide',1); - media_manager.hide = true; - }else{ - DokuCookie.setValue('hide',''); - media_manager.hide = false; - } - media_manager.updatehide(); - }, + initFlashUpload = function () { + var oform, oflash, title; + if(!hasFlash(8)) return; + + oform = $('#dw__upload'); + oflash = $('#dw__flashupload'); + + if(!oform.size() || !oflash.size()) return; + + title = LANG['mu_btn']; + + $('').attr('src', DOKU_BASE+'lib/images/multiupload.png') + .attr('title', title) + .attr('alt', title) + .css('cursor', 'pointer') + .click( + function () { + oform.hide(); + oflash.show(); + } + ) + .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 @@ -428,243 +636,6 @@ var media_manager = { } }, - /** - * build the popup window - * - * @author Dominik Eckelmann - */ - initpopup: function() { - - media_manager.popup = document.createElement('div'); - media_manager.popup.setAttribute('id','media__popup'); - - var root = document.getElementById('media__manager'); - if (root == null) return; - root.appendChild(media_manager.popup); - - var headline = document.createElement('h1'); - headline.innerHTML = LANG.mediatitle; - var headlineimg = document.createElement('img'); - headlineimg.src = DOKU_BASE + 'lib/images/close.png'; - headlineimg.id = 'media__closeimg'; - addEvent(headlineimg,'click',function(event){ return media_manager.closePopup(event,this); }); - headline.insertBefore(headlineimg, headline.firstChild); - media_manager.popup.appendChild(headline); - drag.attach(media_manager.popup,headline); - - // link - - var linkp = document.createElement('p'); - - linkp.id = "media__linkstyle"; - if (media_manager.display == "2") { - linkp.style.display = "none"; - } - - var linkl = document.createElement('label'); - linkl.innerHTML = LANG.mediatarget; - linkp.appendChild(linkl); - - var linkbtns = ['lnk', 'direct', 'nolnk', 'displaylnk']; - for (var i = 0 ; i < linkbtns.length ; ++i) { - var linkbtn = document.createElement('button'); - linkbtn.className = 'button'; - linkbtn.value = i + 1; - linkbtn.id = "media__linkbtn" + (i + 1); - linkbtn.title = LANG['media' + linkbtns[i]]; - linkbtn.style.borderStyle = 'outset'; - addEvent(linkbtn,'click',function(event){ return media_manager.setlink(event,this); }); - - var linkimg = document.createElement('img'); - linkimg.src = DOKU_BASE + 'lib/images/media_link_' + linkbtns[i] + '.png'; - - linkbtn.appendChild(linkimg); - linkp.appendChild(linkbtn); - } - - media_manager.popup.appendChild(linkp); - - // align - - var alignp = document.createElement('p'); - var alignl = document.createElement('label'); - - alignp.appendChild(alignl); - alignp.id = 'media__align'; - if (media_manager.display == "2") { - alignp.style.display = "none"; - } - alignl.innerHTML = LANG['mediaalign']; - - var alignbtns = ['noalign', 'left', 'center', 'right']; - for (var n = 0 ; n < alignbtns.length ; ++n) { - var alignbtn = document.createElement('button'); - var alignimg = document.createElement('img'); - alignimg.src = DOKU_BASE + 'lib/images/media_align_' + alignbtns[n] + '.png'; - - alignbtn.id = "media__alignbtn" + n; - alignbtn.value = n; - alignbtn.title = LANG['media' + alignbtns[n]]; - alignbtn.className = 'button'; - alignbtn.appendChild(alignimg); - alignbtn.style.borderStyle = 'outset'; - addEvent(alignbtn,'click',function(event){ return media_manager.setalign(event,this); }); - - alignp.appendChild(alignbtn); - } - - media_manager.popup.appendChild(alignp); - - // size - - var sizep = document.createElement('p'); - var sizel = document.createElement('label'); - - sizep.id = 'media__size'; - if (media_manager.display == "2") { - sizep.style.display = "none"; - } - sizep.appendChild(sizel); - sizel.innerHTML = LANG['mediasize']; - - var sizebtns = ['small', 'medium', 'large', 'original']; - for (var size = 0 ; size < sizebtns.length ; ++size) { - var sizebtn = document.createElement('button'); - var sizeimg = document.createElement('img'); - - sizep.appendChild(sizebtn); - sizeimg.src = DOKU_BASE + 'lib/images/media_size_' + sizebtns[size] + '.png'; - - sizebtn.className = 'button'; - sizebtn.appendChild(sizeimg); - sizebtn.value = size + 1; - sizebtn.id = 'media__sizebtn' + (size + 1); - sizebtn.title = LANG['media' + sizebtns[size]]; - sizebtn.style.borderStyle = 'outset'; - addEvent(sizebtn,'click',function(event){ return media_manager.setsize(event,this); }); - } - - media_manager.popup.appendChild(sizep); - - // send and close button - - var btnp = document.createElement('p'); - media_manager.popup.appendChild(btnp); - btnp.setAttribute('class','btnlbl'); - - var cls = document.createElement('input'); - cls.type = 'button'; - cls.setAttribute('class','button'); - cls.value = LANG['mediaclose']; - btnp.appendChild(cls); - addEvent(cls,'click',function(event){ return media_manager.closePopup(event,this); }); - - var btn = document.createElement('input'); - btn.type = 'button'; - btn.id = 'media__sendbtn'; - btn.setAttribute('class','button'); - btn.value = LANG['mediainsert']; - btnp.appendChild(btn); - addEvent(btn,'click',function(event){ return media_manager.insert(event); }); - }, - - /** - * Insert the clicked image into the opener's textarea - * - * @author Andreas Gohr - * @author Dominik Eckelmann - */ - insert: function(event){ - var id = media_manager.id; - // set syntax options - $('media__popup').style.display = 'none'; - - var opts = ''; - var optsstart = ''; - var alignleft = ''; - var alignright = ''; - - if (media_manager.ext == 'img' || media_manager.ext == 'swf') { - - if (media_manager.link == '4') { - opts = '?linkonly'; - } else { - - if (media_manager.link == "3" && media_manager.ext == 'img') { - opts = '?nolink'; - optsstart = true; - } else if (media_manager.link == "2" && media_manager.ext == 'img') { - opts = '?direct'; - optsstart = true; - } - - var s = parseInt(media_manager.size); - - if (s && s >= 1) { - opts += (optsstart)?'&':'?'; - if (s=="1") { - opts += '100'; - if (media_manager.ext == 'swf') { - opts += 'x62'; - } - } else if (s=="2") { - opts += '200'; - if (media_manager.ext == 'swf') { - opts += 'x123'; - } - } else if (s=="3"){ - opts += '300'; - if (media_manager.ext == 'swf') { - opts += 'x185'; - } - } - } - if (media_manager.align == '1') { - alignleft = ''; - alignright = ' '; - } - if (media_manager.align == '2') { - alignleft = ' '; - alignright = ' '; - } - if (media_manager.align == '3') { - alignleft = ' '; - alignright = ''; - } - } - } - opener.insertTags('wiki__text','{{'+alignleft+id+opts+alignright+'|','}}',''); - - if(!media_manager.keepopen) window.close(); - opener.focus(); - return false; - }, - - initFlashUpload: function(){ - if(!hasFlash(8)) return; - var oform = $('dw__upload'); - var oflash = $('dw__flashupload'); - if(!oform || !oflash) return; - - var clicky = document.createElement('img'); - clicky.src = DOKU_BASE+'lib/images/multiupload.png'; - clicky.title = LANG['mu_btn']; - clicky.alt = LANG['mu_btn']; - clicky.style.cursor = 'pointer'; - clicky.onclick = function(){ - oform.style.display = 'none'; - oflash.style.display = ''; - }; - oform.appendChild(clicky); - }, - - /** - * closes the link type popup - */ - closePopup: function(event) { - $('media__popup').style.display = 'none'; - }, - /** * set the align * @@ -735,11 +706,13 @@ var media_manager = { /** * sets the border to outset */ - outSet: function(id) { - var ele = document.getElementById(id); - if (ele == null) return; - ele.style.borderStyle = "outset"; + outSet: function(element) { + if ('string' === typeof element) { + element = '#' + element; + } + jQuery(element).css('border-style', 'outset'); }, + /** * sets the border to inset */ @@ -767,12 +740,4 @@ var media_manager = { media_manager.width = false; } } -}; - -addInitEvent(function(){ - //media_manager.treeattach($('media__tree')); - media_manager.confirmattach($('media__content')); - media_manager.attachoptions($('media__opts')); - media_manager.initpopup(); - media_manager.initFlashUpload(); -}); +}; \ No newline at end of file -- cgit v1.2.3 From e85b879945c938df3c8deeee91623bacb697fe86 Mon Sep 17 00:00:00 2001 From: Pierre Spring Date: Thu, 23 Sep 2010 18:27:00 +0200 Subject: jQueryfied toggle function. --- lib/scripts/media.js | 89 +++++++++++++++++++++++++++++----------------------- 1 file changed, 50 insertions(+), 39 deletions(-) (limited to 'lib/scripts/media.js') diff --git a/lib/scripts/media.js b/lib/scripts/media.js index c8ddfa40a..859da9e22 100644 --- a/lib/scripts/media.js +++ b/lib/scripts/media.js @@ -2,7 +2,55 @@ * JavaScript functionality for the media management popup * * @author Andreas Gohr + * @author Pierre Spring */ +(function ($) { + /** + * Open or close a subtree using AJAX + * + * @author Andreas Gohr + */ + toggle = function (event) { + var clicky, listitem, sublist, link, ul; + + var clicky = $(this); + var listitem = clicky.parent(); + + // if already open, close by removing the sublist + var sublist = listitem.find('ul').first(); + if(sublist.size()){ + sublist.remove(); // TODO: really? we could just hide it, right? + clicky.attr('src', DOKU_BASE + 'lib/images/plus.gif'); + event.preventDefault(); // TODO: really here? + return; + } + + // get the enclosed link (is always the first one) + link = listitem.find('a').first(); + + //prepare the new ul + ul = $('
        '); + + //fixme add classname here + + $.post( + DOKU_BASE + 'lib/exe/ajax.php', + link.attr('search').substr(1) + '&call=medians', + function (data) { + ul.html(data) + listitem.append(ul); + }, + 'html' + ); + + clicky.attr('src', DOKU_BASE + 'lib/images/minus.gif'); + }; + + $(function () { + $('#media__tree').delegate('img', 'click', toggle); + }); +}(jQuery)); + var media_manager = { keepopen: false, hide: false, @@ -29,7 +77,7 @@ var media_manager = { // attach action to make the +/- clickable var clicky = elem.getElementsByTagName('img')[0]; clicky.style.cursor = 'pointer'; - addEvent(clicky,'click',function(event){ return media_manager.toggle(event,this); }); + //addEvent(clicky,'click',function(event){ return media_manager.toggle(event,this); }); // attach action load folder list via AJAX var link = elem.getElementsByTagName('a')[0]; @@ -578,43 +626,6 @@ var media_manager = { return false; }, - - /** - * Open or close a subtree using AJAX - * - * @author Andreas Gohr - */ - toggle: function(event,clicky){ - var listitem = clicky.parentNode; - - // if already open, close by removing the sublist - var sublists = listitem.getElementsByTagName('ul'); - if(sublists.length){ - listitem.removeChild(sublists[0]); - clicky.src = DOKU_BASE+'lib/images/plus.gif'; - return false; - } - - // get the enclosed link (is always the first one) - var link = listitem.getElementsByTagName('a')[0]; - - // prepare an AJAX call to fetch the subtree - var ajax = new sack(DOKU_BASE + 'lib/exe/ajax.php'); - ajax.AjaxFailedAlert = ''; - ajax.encodeURIString = false; - if(ajax.failed) return true; - - //prepare the new ul - var ul = document.createElement('ul'); - //fixme add classname here - listitem.appendChild(ul); - ajax.elementObj = ul; - ajax.afterCompletion = function(){ media_manager.treeattach(ul); }; - ajax.runAJAX(link.search.substr(1)+'&call=medians'); - clicky.src = DOKU_BASE+'lib/images/minus.gif'; - return false; - }, - /** * Prefills the wikiname. * @@ -762,7 +773,7 @@ var media_manager = { }; addInitEvent(function(){ - media_manager.treeattach($('media__tree')); + //media_manager.treeattach($('media__tree')); media_manager.selectorattach($('media__content')); media_manager.confirmattach($('media__content')); media_manager.attachoptions($('media__opts')); -- cgit v1.2.3 From 775edc6a65681251990ff396aabd978936c862b4 Mon Sep 17 00:00:00 2001 From: Pierre Spring Date: Thu, 23 Sep 2010 18:28:03 +0200 Subject: added JSLint declaration --- lib/scripts/media.js | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'lib/scripts/media.js') diff --git a/lib/scripts/media.js b/lib/scripts/media.js index 859da9e22..961db2452 100644 --- a/lib/scripts/media.js +++ b/lib/scripts/media.js @@ -1,3 +1,7 @@ +/*jslint white: true, onevar: true, undef: true, nomen: true, eqeqeq: true, plusplus: true, bitwise: true, regexp: false, strict: true, newcap: true, immed: true */ +/*global jQuery, window, DOKU_BASE*/ +"use strict"; + /** * JavaScript functionality for the media management popup * -- cgit v1.2.3 From 1c93aafa92944650d43744e4428a79bc185b8cd0 Mon Sep 17 00:00:00 2001 From: Pierre Spring Date: Fri, 24 Sep 2010 01:14:16 +0200 Subject: started jQueryfying media manager --- lib/scripts/media.js | 495 +++++++++++++++++++++++++-------------------------- 1 file changed, 240 insertions(+), 255 deletions(-) (limited to 'lib/scripts/media.js') diff --git a/lib/scripts/media.js b/lib/scripts/media.js index 961db2452..fa8437162 100644 --- a/lib/scripts/media.js +++ b/lib/scripts/media.js @@ -2,6 +2,10 @@ /*global jQuery, window, DOKU_BASE*/ "use strict"; +// 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 + /** * JavaScript functionality for the media management popup * @@ -9,34 +13,56 @@ * @author Pierre Spring */ (function ($) { + var toggle, list, cleanup_content; + + /** + * Prefills the wikiname. + * + * @author Andreas Gohr + */ + suggest = function(){ + var file, name, text; + + file = $(this); + name = $('#upload__name'); + if(!file.size() || !name.size()) return; + + text = file.val(); + text = text.substr(text.lastIndexOf('/')+1); + text = text.substr(text.lastIndexOf('\\')+1); + name.val(text); + }; + /** * Open or close a subtree using AJAX * * @author Andreas Gohr + * @author Pierre Spring */ toggle = function (event) { var clicky, listitem, sublist, link, ul; - + + event.preventDefault(); // TODO: really here? + var clicky = $(this); var listitem = clicky.parent(); // if already open, close by removing the sublist - var sublist = listitem.find('ul').first(); + sublist = listitem.find('ul').first(); if(sublist.size()){ sublist.remove(); // TODO: really? we could just hide it, right? clicky.attr('src', DOKU_BASE + 'lib/images/plus.gif'); - event.preventDefault(); // TODO: really here? return; } // get the enclosed link (is always the first one) link = listitem.find('a').first(); - + //prepare the new ul ul = $('
          '); //fixme add classname here - + $.post( DOKU_BASE + 'lib/exe/ajax.php', link.attr('search').substr(1) + '&call=medians', @@ -46,77 +72,230 @@ }, 'html' ); - + clicky.attr('src', DOKU_BASE + 'lib/images/minus.gif'); }; - - $(function () { - $('#media__tree').delegate('img', 'click', toggle); - }); -}(jQuery)); - -var media_manager = { - keepopen: false, - hide: false, - align: false, - popup: false, - id: false, - display: false, - link: false, - size: false, - ext: false, /** - * Attach event handlers to all "folders" below the given element + * list the content of a namespace using AJAX * * @author Andreas Gohr + * @author Pierre Spring */ - treeattach: function(obj){ - if(!obj) return; + list = function (event) { + var link, content; + link = $(this); - var items = obj.getElementsByTagName('li'); - for(var i=0; i'); - // attach action load folder list via AJAX - var link = elem.getElementsByTagName('a')[0]; - link.style.cursor = 'pointer'; - addEvent(link,'click',function(event){ return media_manager.list(event,this); }); - } - }, + // fetch the subtree + $.post( + DOKU_BASE + 'lib/exe/ajax.php', + link.attr('search').substr(1)+'&call=medialist', + function (data) { + content.html(data); + cleanup_content(content); - /** - * Attach the image selector action to all links below the given element - * also add the action to autofill the "upload as" field - * - * @author Andreas Gohr - */ - selectorattach: function(obj){ - if(!obj) return; - var items = getElementsByClass('select',obj,'a'); - for(var i=0; i - */ - list: function(event,link){ - // prepare an AJAX call to fetch the subtree - var ajax = new sack(DOKU_BASE + 'lib/exe/ajax.php'); - ajax.AjaxFailedAlert = ''; - ajax.encodeURIString = false; - if(ajax.failed) return true; - - cleanMsgArea(); - - var content = $('media__content'); - content.innerHTML = '...'; - - ajax.elementObj = content; - ajax.afterCompletion = function(){ - media_manager.selectorattach(content); - media_manager.confirmattach(content); - media_manager.updatehide(); - media_manager.initFlashUpload(); - }; - ajax.runAJAX(link.search.substr(1)+'&call=medialist'); - return false; - }, - - /** - * Prefills the wikiname. - * - * @author Andreas Gohr - */ - suggest: function(){ - var file = $('upload__file'); - var name = $('upload__name'); - if(!file || !name) return; - - var text = file.value; - text = text.substr(text.lastIndexOf('/')+1); - text = text.substr(text.lastIndexOf('\\')+1); - name.value = text; - }, - - initFlashUpload: function(){ if(!hasFlash(8)) return; var oform = $('dw__upload'); @@ -778,7 +764,6 @@ var media_manager = { addInitEvent(function(){ //media_manager.treeattach($('media__tree')); - media_manager.selectorattach($('media__content')); media_manager.confirmattach($('media__content')); media_manager.attachoptions($('media__opts')); media_manager.initpopup(); -- cgit v1.2.3 From 10290c15207831fdf7863286ee6e11519e7bd873 Mon Sep 17 00:00:00 2001 From: Pierre Spring Date: Fri, 1 Oct 2010 01:23:50 +0200 Subject: Worked on jQuery port of the media manager --- lib/scripts/media.js | 707 ++++++++++++++++++++++++--------------------------- 1 file changed, 336 insertions(+), 371 deletions(-) (limited to 'lib/scripts/media.js') diff --git a/lib/scripts/media.js b/lib/scripts/media.js index fa8437162..ee387e42f 100644 --- a/lib/scripts/media.js +++ b/lib/scripts/media.js @@ -1,10 +1,11 @@ -/*jslint white: true, onevar: true, undef: true, nomen: true, eqeqeq: true, plusplus: true, bitwise: true, regexp: false, strict: true, newcap: true, immed: true */ + lib/scripts/media.js/*jslint white: true, onevar: true, undef: true, nomen: true, eqeqeq: true, plusplus: true, bitwise: true, regexp: false, strict: true, newcap: true, immed: true */ /*global jQuery, window, DOKU_BASE*/ "use strict"; // 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 /** * JavaScript functionality for the media management popup @@ -13,7 +14,215 @@ * @author Pierre Spring */ (function ($) { - var toggle, list, cleanup_content; + var toggle, list, prepare_content, insert, confirmattach, attachoptions, initpopup; + + /** + * build the popup window + * + * @author Dominik Eckelmann + */ + initpopup = function() { + var popup; + + popup = document.createElement('div'); + popup.setAttribute('id','media__popup'); + + var root = document.getElementById('media__manager'); + if (root == null) return; + root.appendChild(popup); + + var headline = document.createElement('h1'); + headline.innerHTML = LANG.mediatitle; + var headlineimg = document.createElement('img'); + headlineimg.src = DOKU_BASE + 'lib/images/close.png'; + headlineimg.id = 'media__closeimg'; + $(headlineimg).click(function () {$(popup).hide()}); + headline.insertBefore(headlineimg, headline.firstChild); + popup.appendChild(headline); + drag.attach(popup,headline); // Pierre: TODO + + // link + + var linkp = document.createElement('p'); + + linkp.id = "media__linkstyle"; + if (media_manager.display == "2") { + linkp.style.display = "none"; + } + + var linkl = document.createElement('label'); + linkl.innerHTML = LANG.mediatarget; + linkp.appendChild(linkl); + + var linkbtns = ['lnk', 'direct', 'nolnk', 'displaylnk']; + for (var i = 0 ; i < linkbtns.length ; ++i) { + var linkbtn = document.createElement('button'); + linkbtn.className = 'button'; + linkbtn.value = i + 1; + 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); }); + + var linkimg = document.createElement('img'); + linkimg.src = DOKU_BASE + 'lib/images/media_link_' + linkbtns[i] + '.png'; + + linkbtn.appendChild(linkimg); + linkp.appendChild(linkbtn); + } + + popup.appendChild(linkp); + + // align + + var alignp = document.createElement('p'); + var alignl = document.createElement('label'); + + alignp.appendChild(alignl); + alignp.id = 'media__align'; + if (media_manager.display == "2") { + alignp.style.display = "none"; + } + alignl.innerHTML = LANG['mediaalign']; + + var alignbtns = ['noalign', 'left', 'center', 'right']; + for (var n = 0 ; n < alignbtns.length ; ++n) { + var alignbtn = document.createElement('button'); + var alignimg = document.createElement('img'); + alignimg.src = DOKU_BASE + 'lib/images/media_align_' + alignbtns[n] + '.png'; + + alignbtn.id = "media__alignbtn" + n; + alignbtn.value = n; + alignbtn.title = LANG['media' + alignbtns[n]]; + alignbtn.className = 'button'; + alignbtn.appendChild(alignimg); + alignbtn.style.borderStyle = 'outset'; + $(alignbtn).click(function (event) { return media_manager.setalign(event,this); }); + + alignp.appendChild(alignbtn); + } + + popup.appendChild(alignp); + + // size + + var sizep = document.createElement('p'); + var sizel = document.createElement('label'); + + sizep.id = 'media__size'; + if (media_manager.display == "2") { + sizep.style.display = "none"; + } + sizep.appendChild(sizel); + sizel.innerHTML = LANG['mediasize']; + + var sizebtns = ['small', 'medium', 'large', 'original']; + for (var size = 0 ; size < sizebtns.length ; ++size) { + var sizebtn = document.createElement('button'); + var sizeimg = document.createElement('img'); + + sizep.appendChild(sizebtn); + sizeimg.src = DOKU_BASE + 'lib/images/media_size_' + sizebtns[size] + '.png'; + + sizebtn.className = 'button'; + sizebtn.appendChild(sizeimg); + sizebtn.value = size + 1; + 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); }); + } + + popup.appendChild(sizep); + + // send and close button + + var btnp = document.createElement('p'); + popup.appendChild(btnp); + btnp.setAttribute('class','btnlbl'); + + + var btn = document.createElement('input'); + btn.type = 'button'; + btn.id = 'media__sendbtn'; + btn.setAttribute('class','button'); + btn.value = LANG['mediainsert']; + btnp.appendChild(btn); + }; + + /** + * Insert the clicked image into the opener's textarea + * + * @author Andreas Gohr + * @author Dominik Eckelmann + * @author Pierre Spring + */ + insert = function (id) { + var opts, optsstart, alignleft, alignright; + + // set syntax options + $('#media__popup').hide(); + + opts = ''; + optsstart = ''; + alignleft = ''; + alignright = ''; + + if (media_manager.ext == 'img' || media_manager.ext == 'swf') { + + if (media_manager.link == '4') { + opts = '?linkonly'; + } else { + + if (media_manager.link == "3" && media_manager.ext == 'img') { + opts = '?nolink'; + optsstart = true; + } else if (media_manager.link == "2" && media_manager.ext == 'img') { + opts = '?direct'; + optsstart = true; + } + + var s = parseInt(media_manager.size); + + if (s && s >= 1) { + opts += (optsstart)?'&':'?'; + if (s=="1") { + opts += '100'; + if (media_manager.ext == 'swf') { + opts += 'x62'; + } + } else if (s=="2") { + opts += '200'; + if (media_manager.ext == 'swf') { + opts += 'x123'; + } + } else if (s=="3"){ + opts += '300'; + if (media_manager.ext == 'swf') { + opts += 'x185'; + } + } + } + if (media_manager.align == '1') { + alignleft = ''; + alignright = ' '; + } + if (media_manager.align == '2') { + alignleft = ' '; + alignright = ' '; + } + if (media_manager.align == '3') { + alignleft = ' '; + alignright = ''; + } + } + } + opener.insertTags('wiki__text','{{'+alignleft+id+opts+alignright+'|','}}',''); + + if(!media_manager.keepopen) window.close(); + opener.focus(); + return false; + }; /** * Prefills the wikiname. @@ -98,37 +307,31 @@ link.attr('search').substr(1)+'&call=medialist', function (data) { content.html(data); - cleanup_content(content); - - - content = content[0]; - media_manager.confirmattach(content); + prepare_content(content); media_manager.updatehide(); - media_manager.initFlashUpload(); }, 'html' ); }; - cleanup_content = function (content) { + prepare_content = function (content) { // hide syntax example content.find('div.example:visible').hide(); + initFlashUpload(); }; /** * shows the popup for a image link */ select = function(event){ - var link, id; + var link, id, dot, ext; event.preventDefault(); link = $(this); id = link.attr('name').substr(2); - media_manager.id = id; ///////////////////////////////////////////// - if(!opener){ // if we don't run in popup display example // the id's are a bit wired and $('#ex_wiki_dokuwiki-128.png') will not be found @@ -138,50 +341,39 @@ return; } - // pierre: continue here link = link[0]; media_manager.ext = false; - var dot = id.lastIndexOf("."); - if (dot != -1) { - var ext = id.substr(dot,id.length); + dot = id.lastIndexOf("."); - if (ext != '.jpg' && ext != '.jpeg' && ext != '.png' && ext != '.gif' && ext != '.swf') { - media_manager.insert(null); - return false; - } - } else { - media_manager.insert(null); - return false; + if (-1 === dot) { + insert(id); + return; } - media_manager.popup.style.display = 'inline'; - media_manager.popup.style.left = event.pageX + 'px'; - media_manager.popup.style.top = event.pageY + 'px'; + ext = id.substr(dot); - // set all buttons to outset - media_manager.outSet('media__linkbtn1'); - media_manager.outSet('media__linkbtn2'); - media_manager.outSet('media__linkbtn3'); - media_manager.outSet('media__linkbtn4'); + if (ext != '.jpg' && ext != '.jpeg' && ext != '.png' && ext != '.gif' && ext != '.swf') { + insert(id); + return; + } - media_manager.outSet('media__alignbtn0'); - media_manager.outSet('media__alignbtn1'); - media_manager.outSet('media__alignbtn2'); - media_manager.outSet('media__alignbtn3'); + // remove old callback from the insert button and set the new one. + $('#media__sendbtn').unbind().click(function () {insert(id)}); - media_manager.outSet('media__sizebtn1'); - media_manager.outSet('media__sizebtn2'); - media_manager.outSet('media__sizebtn3'); - media_manager.outSet('media__sizebtn4'); + $('#media__popup').show() + .css('left', event.pageX + 'px') + .css('top', event.pageY + 'px'); + + $('#media__popup button.button').each(function (index, element) { media_manager.outSet(element) } ); if (ext == '.swf') { media_manager.ext = 'swf'; // disable display buttons for detail and linked image - $('media__linkbtn1').style.display = 'none'; - $('media__linkbtn2').style.display = 'none'; + $('#media__linkbtn1').hide(); + $('#media__linkbtn2').hide(); // set the link button to default if (media_manager.link != false) { @@ -210,15 +402,15 @@ } // disable button for original size - $('media__sizebtn4').style.display = 'none'; + $('#media__sizebtn4').hide(); } else { media_manager.ext = 'img'; // ensure that the display buttons are there - $('media__linkbtn1').style.display = 'inline'; - $('media__linkbtn2').style.display = 'inline'; - $('media__sizebtn4').style.display = 'inline'; + $('#media__linkbtn1').show(); + $('#media__linkbtn2').show(); + $('#media__sizebtn4').show(); // set the link button to default if (DokuCookie.getValue('link')) { @@ -235,11 +427,11 @@ if (media_manager.link == '4') { media_manager.align = false; media_manager.size = false; - $('media__align').style.display = 'none'; - $('media__size').style.display = 'none'; + $('#media__align').hide(); + $('#media__size').hide(); } else { - $('media__align').style.display = 'block'; - $('media__size').style.display = 'block'; + $('#media__align').show(); + $('#media__size').show(); // set the align button to default if (media_manager.align != false) { @@ -265,71 +457,32 @@ } media_manager.inSet('media__sizebtn'+media_manager.size); - $('media__sendbtn').focus(); + $('#media__sendbtn').focus(); } - return false; + return; }; - - $(function () { - var content = $('#media__content'); - cleanup_content(content); - - // 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) - - $('#media__tree').delegate('img', 'click', toggle) - .delegate('a', 'click', list); - }); -}(jQuery)); - -var media_manager = { - keepopen: false, - hide: false, - align: false, - popup: false, - id: false, - display: false, - link: false, - size: false, - ext: false, - /** - * Attach deletion confirmation dialog to the delete buttons. + * Deletion confirmation dialog to the delete buttons. * - * Michael Klier + * @author Michael Klier + * @author Pierre Spring */ - confirmattach: function(obj){ - if(!obj) return; - - items = getElementsByClass('btn_media_delete',obj,'a'); - for(var i=0; i + * @author Pierre Spring */ - attachoptions: function(obj){ + attachoptions = function(){ + obj = $('#media__opts')[0] if(!obj) return; // keep open @@ -342,8 +495,13 @@ var media_manager = { kobox.defaultChecked = true; //IE wants this media_manager.keepopen = true; } - addEvent(kobox,'click',function(event){ return media_manager.togglekeepopen(event,this); }); - + + $(kobox).click( + function () { + toggleOption(this, 'keepopen'); + } + ); + var kolbl = document.createElement('label'); kolbl.htmlFor = 'media__keepopen'; kolbl.innerHTML = LANG['keepopen']; @@ -364,7 +522,12 @@ var media_manager = { hdbox.defaultChecked = true; //IE wants this media_manager.hide = true; } - addEvent(hdbox,'click',function(event){ return media_manager.togglehide(event,this); }); + $(hdbox).click( + function () { + toggleOption(this, 'hide'); + media_manager.updatehide(); + } + ); var hdlbl = document.createElement('label'); hdlbl.htmlFor = 'media__hide'; @@ -379,35 +542,73 @@ var media_manager = { }, /** - * Toggles the keep open state + * Generalized toggler * - * @author Andreas Gohr - */ - togglekeepopen: function(event,cb){ - if(cb.checked){ - DokuCookie.setValue('keepopen',1); - media_manager.keepopen = true; - }else{ - DokuCookie.setValue('keepopen',''); - media_manager.keepopen = false; + * @author Pierre Spring + */ + toggleOption = function (checkbox, variable) { + if (checkbox.checked) { + DokuCookie.setValue(variable, 1); + media_manager[variable] = true; + } else { + DokuCookie.setValue(variable, ''); + media_manager[variable] = false; } - }, + } - /** - * Toggles the hide details state - * - * @author Andreas Gohr - */ - togglehide: function(event,cb){ - if(cb.checked){ - DokuCookie.setValue('hide',1); - media_manager.hide = true; - }else{ - DokuCookie.setValue('hide',''); - media_manager.hide = false; - } - media_manager.updatehide(); - }, + initFlashUpload = function () { + var oform, oflash, title; + if(!hasFlash(8)) return; + + oform = $('#dw__upload'); + oflash = $('#dw__flashupload'); + + if(!oform.size() || !oflash.size()) return; + + title = LANG['mu_btn']; + + $('').attr('src', DOKU_BASE+'lib/images/multiupload.png') + .attr('title', title) + .attr('alt', title) + .css('cursor', 'pointer') + .click( + function () { + oform.hide(); + oflash.show(); + } + ) + .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 @@ -428,236 +629,6 @@ var media_manager = { } }, - /** - * build the popup window - * - * @author Dominik Eckelmann - */ - initpopup: function() { - - media_manager.popup = document.createElement('div'); - media_manager.popup.setAttribute('id','media__popup'); - - var root = document.getElementById('media__manager'); - if (root == null) return; - root.appendChild(media_manager.popup); - - var headline = document.createElement('h1'); - headline.innerHTML = LANG.mediatitle; - var headlineimg = document.createElement('img'); - headlineimg.src = DOKU_BASE + 'lib/images/close.png'; - headlineimg.id = 'media__closeimg'; - addEvent(headlineimg,'click',function(event){ return media_manager.closePopup(event,this); }); - headline.insertBefore(headlineimg, headline.firstChild); - media_manager.popup.appendChild(headline); - drag.attach(media_manager.popup,headline); - - // link - - var linkp = document.createElement('p'); - - linkp.id = "media__linkstyle"; - if (media_manager.display == "2") { - linkp.style.display = "none"; - } - - var linkl = document.createElement('label'); - linkl.innerHTML = LANG.mediatarget; - linkp.appendChild(linkl); - - var linkbtns = ['lnk', 'direct', 'nolnk', 'displaylnk']; - for (var i = 0 ; i < linkbtns.length ; ++i) { - var linkbtn = document.createElement('button'); - linkbtn.className = 'button'; - linkbtn.value = i + 1; - linkbtn.id = "media__linkbtn" + (i + 1); - linkbtn.title = LANG['media' + linkbtns[i]]; - linkbtn.style.borderStyle = 'outset'; - addEvent(linkbtn,'click',function(event){ return media_manager.setlink(event,this); }); - - var linkimg = document.createElement('img'); - linkimg.src = DOKU_BASE + 'lib/images/media_link_' + linkbtns[i] + '.png'; - - linkbtn.appendChild(linkimg); - linkp.appendChild(linkbtn); - } - - media_manager.popup.appendChild(linkp); - - // align - - var alignp = document.createElement('p'); - var alignl = document.createElement('label'); - - alignp.appendChild(alignl); - alignp.id = 'media__align'; - if (media_manager.display == "2") { - alignp.style.display = "none"; - } - alignl.innerHTML = LANG['mediaalign']; - - var alignbtns = ['noalign', 'left', 'center', 'right']; - for (var n = 0 ; n < alignbtns.length ; ++n) { - var alignbtn = document.createElement('button'); - var alignimg = document.createElement('img'); - alignimg.src = DOKU_BASE + 'lib/images/media_align_' + alignbtns[n] + '.png'; - - alignbtn.id = "media__alignbtn" + n; - alignbtn.value = n; - alignbtn.title = LANG['media' + alignbtns[n]]; - alignbtn.className = 'button'; - alignbtn.appendChild(alignimg); - alignbtn.style.borderStyle = 'outset'; - addEvent(alignbtn,'click',function(event){ return media_manager.setalign(event,this); }); - - alignp.appendChild(alignbtn); - } - - media_manager.popup.appendChild(alignp); - - // size - - var sizep = document.createElement('p'); - var sizel = document.createElement('label'); - - sizep.id = 'media__size'; - if (media_manager.display == "2") { - sizep.style.display = "none"; - } - sizep.appendChild(sizel); - sizel.innerHTML = LANG['mediasize']; - - var sizebtns = ['small', 'medium', 'large', 'original']; - for (var size = 0 ; size < sizebtns.length ; ++size) { - var sizebtn = document.createElement('button'); - var sizeimg = document.createElement('img'); - - sizep.appendChild(sizebtn); - sizeimg.src = DOKU_BASE + 'lib/images/media_size_' + sizebtns[size] + '.png'; - - sizebtn.className = 'button'; - sizebtn.appendChild(sizeimg); - sizebtn.value = size + 1; - sizebtn.id = 'media__sizebtn' + (size + 1); - sizebtn.title = LANG['media' + sizebtns[size]]; - sizebtn.style.borderStyle = 'outset'; - addEvent(sizebtn,'click',function(event){ return media_manager.setsize(event,this); }); - } - - media_manager.popup.appendChild(sizep); - - // send and close button - - var btnp = document.createElement('p'); - media_manager.popup.appendChild(btnp); - btnp.setAttribute('class','btnlbl'); - - var btn = document.createElement('input'); - btn.type = 'button'; - btn.id = 'media__sendbtn'; - btn.setAttribute('class','button'); - btn.value = LANG['mediainsert']; - btnp.appendChild(btn); - addEvent(btn,'click',function(event){ return media_manager.insert(event); }); - }, - - /** - * Insert the clicked image into the opener's textarea - * - * @author Andreas Gohr - * @author Dominik Eckelmann - */ - insert: function(event){ - var id = media_manager.id; - // set syntax options - $('media__popup').style.display = 'none'; - - var opts = ''; - var optsstart = ''; - var alignleft = ''; - var alignright = ''; - - if (media_manager.ext == 'img' || media_manager.ext == 'swf') { - - if (media_manager.link == '4') { - opts = '?linkonly'; - } else { - - if (media_manager.link == "3" && media_manager.ext == 'img') { - opts = '?nolink'; - optsstart = true; - } else if (media_manager.link == "2" && media_manager.ext == 'img') { - opts = '?direct'; - optsstart = true; - } - - var s = parseInt(media_manager.size); - - if (s && s >= 1) { - opts += (optsstart)?'&':'?'; - if (s=="1") { - opts += '100'; - if (media_manager.ext == 'swf') { - opts += 'x62'; - } - } else if (s=="2") { - opts += '200'; - if (media_manager.ext == 'swf') { - opts += 'x123'; - } - } else if (s=="3"){ - opts += '300'; - if (media_manager.ext == 'swf') { - opts += 'x185'; - } - } - } - if (media_manager.align == '1') { - alignleft = ''; - alignright = ' '; - } - if (media_manager.align == '2') { - alignleft = ' '; - alignright = ' '; - } - if (media_manager.align == '3') { - alignleft = ' '; - alignright = ''; - } - } - } - opener.insertTags('wiki__text','{{'+alignleft+id+opts+alignright+'|','}}',''); - - if(!media_manager.keepopen) window.close(); - opener.focus(); - return false; - }, - - initFlashUpload: function(){ - if(!hasFlash(8)) return; - var oform = $('dw__upload'); - var oflash = $('dw__flashupload'); - if(!oform || !oflash) return; - - var clicky = document.createElement('img'); - clicky.src = DOKU_BASE+'lib/images/multiupload.png'; - clicky.title = LANG['mu_btn']; - clicky.alt = LANG['mu_btn']; - clicky.style.cursor = 'pointer'; - clicky.onclick = function(){ - oform.style.display = 'none'; - oflash.style.display = ''; - }; - oform.appendChild(clicky); - }, - - /** - * closes the link type popup - */ - closePopup: function(event) { - $('media__popup').style.display = 'none'; - }, - /** * set the align * @@ -728,11 +699,13 @@ var media_manager = { /** * sets the border to outset */ - outSet: function(id) { - var ele = document.getElementById(id); - if (ele == null) return; - ele.style.borderStyle = "outset"; + outSet: function(element) { + if ('string' === typeof element) { + element = '#' + element; + } + jQuery(element).css('border-style', 'outset'); }, + /** * sets the border to inset */ @@ -761,11 +734,3 @@ var media_manager = { } } }; - -addInitEvent(function(){ - //media_manager.treeattach($('media__tree')); - media_manager.confirmattach($('media__content')); - media_manager.attachoptions($('media__opts')); - media_manager.initpopup(); - media_manager.initFlashUpload(); -}); -- cgit v1.2.3 From 67a0ce7861f65736f36a8dd392c70c9c2d235977 Mon Sep 17 00:00:00 2001 From: Pierre Spring Date: Sun, 10 Oct 2010 18:10:56 +0200 Subject: media.js is jQueryfied. --- lib/scripts/media.js | 234 ++++++++++++++++++++++++--------------------------- 1 file changed, 109 insertions(+), 125 deletions(-) (limited to 'lib/scripts/media.js') 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 */ (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 */ - updatehide: function(){ - var obj = $('media__content'); - if(!obj) return; - var details = getElementsByClass('detail',obj,'div'); - for(var i=0; i */ - 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 */ - 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 - */ - 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 */ - 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 -- cgit v1.2.3 From c4bb7947fcb2d4a5e5f8a15d9e3bbec333e44e13 Mon Sep 17 00:00:00 2001 From: Pierre Spring Date: Sun, 10 Oct 2010 23:42:56 +0200 Subject: Got rid of drag.js and added jQuery UI instead. --- lib/scripts/media.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'lib/scripts/media.js') diff --git a/lib/scripts/media.js b/lib/scripts/media.js index a2d287fd3..ea8f56af2 100644 --- a/lib/scripts/media.js +++ b/lib/scripts/media.js @@ -50,10 +50,9 @@ $(headlineimg).click(function () {$(popup).hide()}); headline.insertBefore(headlineimg, headline.firstChild); popup.appendChild(headline); - drag.attach(popup,headline); // Pierre: TODO + $(popup).draggable({handle: headline}); // link - var linkp = document.createElement('p'); linkp.id = "media__linkstyle"; -- cgit v1.2.3 From 33cd76353b54e426551f59200435fe1687f5b1c1 Mon Sep 17 00:00:00 2001 From: Michal Rezler Date: Wed, 23 Mar 2011 10:53:23 +0100 Subject: Added pointers cursors on a.select --- lib/scripts/media.js | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'lib/scripts/media.js') diff --git a/lib/scripts/media.js b/lib/scripts/media.js index c00a71e5f..5dac054b1 100644 --- a/lib/scripts/media.js +++ b/lib/scripts/media.js @@ -716,6 +716,13 @@ attachoptions(); initpopup(); + + // pointers cursors on a.select + var items = $("a.select"); + for(var i=0; i Date: Thu, 24 Mar 2011 18:51:08 +0100 Subject: cursors: a.select = pointer, linkwiz__header = cross --- lib/scripts/media.js | 7 ------- 1 file changed, 7 deletions(-) (limited to 'lib/scripts/media.js') diff --git a/lib/scripts/media.js b/lib/scripts/media.js index 5dac054b1..c00a71e5f 100644 --- a/lib/scripts/media.js +++ b/lib/scripts/media.js @@ -716,13 +716,6 @@ attachoptions(); initpopup(); - - // pointers cursors on a.select - var items = $("a.select"); - for(var i=0; i Date: Sat, 26 Mar 2011 15:42:22 +0100 Subject: cookie.js is jQueryfied, added jQuery-cookie-plugin --- lib/scripts/media.js | 58 ++++++++++++++++++++++++++-------------------------- 1 file changed, 29 insertions(+), 29 deletions(-) (limited to 'lib/scripts/media.js') diff --git a/lib/scripts/media.js b/lib/scripts/media.js index c00a71e5f..a9b8b49da 100644 --- a/lib/scripts/media.js +++ b/lib/scripts/media.js @@ -389,25 +389,25 @@ if ( media_manager.link == '2' || media_manager.link == '1') { inSet('media__linkbtn3'); media_manager.link = '3'; - DokuCookie.setValue('link','3'); + setDokuCookie('link','3'); } else { inSet('media__linkbtn'+media_manager.link); } - } else if (DokuCookie.getValue('link')) { - if ( DokuCookie.getValue('link') == '2' || DokuCookie.getValue('link') == '1') { + } else if (getDokuCookie('link')) { + if ( getDokuCookie('link') == '2' || getDokuCookie('link') == '1') { // this options are not availible inSet('media__linkbtn3'); media_manager.link = '3'; - DokuCookie.setValue('link','3'); + setDokuCookie('link','3'); } else { - inSet('media__linkbtn'+DokuCookie.getValue('link')); - media_manager.link = DokuCookie.getValue('link'); + inSet('media__linkbtn'+getDokuCookie('link')); + media_manager.link = getDokuCookie('link'); } } else { // default case media_manager.link = '3'; inSet('media__linkbtn3'); - DokuCookie.setValue('link','3'); + setDokuCookie('link','3'); } // disable button for original size @@ -422,13 +422,13 @@ $('#media__sizebtn4').show(); // set the link button to default - if (DokuCookie.getValue('link')) { - media_manager.link = DokuCookie.getValue('link'); + if (getDokuCookie('link')) { + media_manager.link = getDokuCookie('link'); } if (media_manager.link == false) { // default case media_manager.link = '1'; - DokuCookie.setValue('link','1'); + setDokuCookie('link','1'); } inSet('media__linkbtn'+media_manager.link); } @@ -445,24 +445,24 @@ // set the align button to default if (media_manager.align != false) { inSet('media__alignbtn'+media_manager.align); - } else if (DokuCookie.getValue('align')) { - inSet('media__alignbtn'+DokuCookie.getValue('align')); - media_manager.align = DokuCookie.getValue('align'); + } else if (getDokuCookie('align')) { + inSet('media__alignbtn'+getDokuCookie('align')); + media_manager.align = getDokuCookie('align'); } else { // default case media_manager.align = '0'; inSet('media__alignbtn0'); - DokuCookie.setValue('align','0'); + setDokuCookie('align','0'); } // set the size button to default - if (DokuCookie.getValue('size')) { - media_manager.size = DokuCookie.getValue('size'); + if (getDokuCookie('size')) { + media_manager.size = getDokuCookie('size'); } if (media_manager.size == false || (media_manager.size === '4' && ext === '.swf')) { // default case media_manager.size = '2'; - DokuCookie.setValue('size','2'); + setDokuCookie('size','2'); } inSet('media__sizebtn'+media_manager.size); @@ -499,7 +499,7 @@ var kobox = document.createElement('input'); kobox.type = 'checkbox'; kobox.id = 'media__keepopen'; - if(DokuCookie.getValue('keepopen')){ + if(getDokuCookie('keepopen')){ kobox.checked = true; kobox.defaultChecked = true; //IE wants this media_manager.keepopen = true; @@ -526,7 +526,7 @@ var hdbox = document.createElement('input'); hdbox.type = 'checkbox'; hdbox.id = 'media__hide'; - if(DokuCookie.getValue('hide')){ + if(getDokuCookie('hide')){ hdbox.checked = true; hdbox.defaultChecked = true; //IE wants this media_manager.hide = true; @@ -557,10 +557,10 @@ */ toggleOption = function (checkbox, variable) { if (checkbox.checked) { - DokuCookie.setValue(variable, 1); + setDokuCookie(variable, 1); media_manager[variable] = true; } else { - DokuCookie.setValue(variable, ''); + setDokuCookie(variable, ''); media_manager[variable] = false; } }; @@ -621,14 +621,14 @@ var id = cb.id.substring(cb.id.length -1); if(id){ - DokuCookie.setValue('align',id); + setDokuCookie('align',id); media_manager.align = id; for (var i = 1; i<=4; i++) { outSet("media__alignbtn" + i); } inSet("media__alignbtn"+id); }else{ - DokuCookie.setValue('align',''); + setDokuCookie('align',''); media_manager.align = false; } }; @@ -641,7 +641,7 @@ setlink = function(event,cb){ var id = cb.id.substring(cb.id.length -1); if(id){ - DokuCookie.setValue('link',id); + setDokuCookie('link',id); for (var i = 1; i<=4; i++) { outSet("media__linkbtn"+i); } @@ -654,11 +654,11 @@ align.show(); if (media_manager.link == '4') { media_manager.align = '1'; - DokuCookie.setValue('align', '1'); + setDokuCookie('align', '1'); inSet('media__alignbtn1'); media_manager.size = '2'; - DokuCookie.setValue('size', '2'); + setDokuCookie('size', '2'); inSet('media__sizebtn2'); } @@ -668,7 +668,7 @@ } media_manager.link = id; }else{ - DokuCookie.setValue('link',''); + setDokuCookie('link',''); media_manager.link = false; } }; @@ -681,14 +681,14 @@ setsize = function(event,cb){ var id = cb.id.substring(cb.id.length -1); if (id) { - DokuCookie.setValue('size',id); + setDokuCookie('size',id); media_manager.size = id; for (var i = 1 ; i <=4 ; ++i) { outSet("media__sizebtn" + i); } inSet("media__sizebtn"+id); } else { - DokuCookie.setValue('size',''); + setDokuCookie('size',''); media_manager.width = false; } }; -- cgit v1.2.3 From 11bf24d856a6a4cb606bc6fe10ebcbd844f4127f Mon Sep 17 00:00:00 2001 From: Michal Rezler Date: Sun, 27 Mar 2011 13:57:35 +0200 Subject: helpers.js was removed - it basically contained functions they are implemented in jQuery library --- lib/scripts/media.js | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) (limited to 'lib/scripts/media.js') diff --git a/lib/scripts/media.js b/lib/scripts/media.js index a9b8b49da..f407aa2f7 100644 --- a/lib/scripts/media.js +++ b/lib/scripts/media.js @@ -11,7 +11,7 @@ * @author Pierre Spring */ (function ($) { - var toggle, list, prepare_content, insert, confirmattach, attachoptions, initpopup, updatehide, setalign, setsize, inSet, outSet, media_manager; + var toggle, list, prepare_content, insert, confirmattach, attachoptions, initpopup, updatehide, setalign, setsize, inSet, outSet, media_manager, hasFlash; var media_manager = { keepopen: false, @@ -156,6 +156,26 @@ btn.value = LANG['mediainsert']; btnp.appendChild(btn); }; + + // moved from helpers.js temporarily here + /** + * Very simplistic Flash plugin check, probably works for Flash 8 and higher only + * + */ + hasFlash = function(version){ + var ver = 0; + try{ + if(navigator.plugins != null && navigator.plugins.length > 0){ + ver = navigator.plugins["Shockwave Flash"].description.split(' ')[2].split('.')[0]; + }else{ + var axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash"); + ver = axo.GetVariable("$version").split(' ')[1].split(',')[0]; + } + }catch(e){ } + + if(ver >= version) return true; + return false; + }; /** * Insert the clicked image into the opener's textarea -- cgit v1.2.3 From 2ed49e2ac1bc9ed8a9d514d3ea9515e455768152 Mon Sep 17 00:00:00 2001 From: Michal Rezler Date: Mon, 28 Mar 2011 23:09:13 +0200 Subject: JS API is corrected to the original state --- lib/scripts/media.js | 58 ++++++++++++++++++++++++++-------------------------- 1 file changed, 29 insertions(+), 29 deletions(-) (limited to 'lib/scripts/media.js') diff --git a/lib/scripts/media.js b/lib/scripts/media.js index f407aa2f7..7529523ad 100644 --- a/lib/scripts/media.js +++ b/lib/scripts/media.js @@ -409,25 +409,25 @@ if ( media_manager.link == '2' || media_manager.link == '1') { inSet('media__linkbtn3'); media_manager.link = '3'; - setDokuCookie('link','3'); + DokuCookie.setValue('link','3'); } else { inSet('media__linkbtn'+media_manager.link); } - } else if (getDokuCookie('link')) { - if ( getDokuCookie('link') == '2' || getDokuCookie('link') == '1') { + } else if (DokuCookie.getValue('link')) { + if ( DokuCookie.getValue('link') == '2' || DokuCookie.getValue('link') == '1') { // this options are not availible inSet('media__linkbtn3'); media_manager.link = '3'; - setDokuCookie('link','3'); + DokuCookie.setValue('link','3'); } else { - inSet('media__linkbtn'+getDokuCookie('link')); - media_manager.link = getDokuCookie('link'); + inSet('media__linkbtn'+DokuCookie.getValue('link')); + media_manager.link = DokuCookie.getValue('link'); } } else { // default case media_manager.link = '3'; inSet('media__linkbtn3'); - setDokuCookie('link','3'); + DokuCookie.setValue('link','3'); } // disable button for original size @@ -442,13 +442,13 @@ $('#media__sizebtn4').show(); // set the link button to default - if (getDokuCookie('link')) { - media_manager.link = getDokuCookie('link'); + if (DokuCookie.getValue('link')) { + media_manager.link = DokuCookie.getValue('link'); } if (media_manager.link == false) { // default case media_manager.link = '1'; - setDokuCookie('link','1'); + DokuCookie.setValue('link','1'); } inSet('media__linkbtn'+media_manager.link); } @@ -465,24 +465,24 @@ // set the align button to default if (media_manager.align != false) { inSet('media__alignbtn'+media_manager.align); - } else if (getDokuCookie('align')) { - inSet('media__alignbtn'+getDokuCookie('align')); - media_manager.align = getDokuCookie('align'); + } else if (DokuCookie.getValue('align')) { + inSet('media__alignbtn'+DokuCookie.getValue('align')); + media_manager.align = DokuCookie.getValue('align'); } else { // default case media_manager.align = '0'; inSet('media__alignbtn0'); - setDokuCookie('align','0'); + DokuCookie.setValue('align','0'); } // set the size button to default - if (getDokuCookie('size')) { - media_manager.size = getDokuCookie('size'); + if (DokuCookie.getValue('size')) { + media_manager.size = DokuCookie.getValue('size'); } if (media_manager.size == false || (media_manager.size === '4' && ext === '.swf')) { // default case media_manager.size = '2'; - setDokuCookie('size','2'); + DokuCookie.setValue('size','2'); } inSet('media__sizebtn'+media_manager.size); @@ -519,7 +519,7 @@ var kobox = document.createElement('input'); kobox.type = 'checkbox'; kobox.id = 'media__keepopen'; - if(getDokuCookie('keepopen')){ + if(DokuCookie.getValue('keepopen')){ kobox.checked = true; kobox.defaultChecked = true; //IE wants this media_manager.keepopen = true; @@ -546,7 +546,7 @@ var hdbox = document.createElement('input'); hdbox.type = 'checkbox'; hdbox.id = 'media__hide'; - if(getDokuCookie('hide')){ + if(DokuCookie.getValue('hide')){ hdbox.checked = true; hdbox.defaultChecked = true; //IE wants this media_manager.hide = true; @@ -577,10 +577,10 @@ */ toggleOption = function (checkbox, variable) { if (checkbox.checked) { - setDokuCookie(variable, 1); + DokuCookie.setValue(variable, 1); media_manager[variable] = true; } else { - setDokuCookie(variable, ''); + DokuCookie.setValue(variable, ''); media_manager[variable] = false; } }; @@ -641,14 +641,14 @@ var id = cb.id.substring(cb.id.length -1); if(id){ - setDokuCookie('align',id); + DokuCookie.setValue('align',id); media_manager.align = id; for (var i = 1; i<=4; i++) { outSet("media__alignbtn" + i); } inSet("media__alignbtn"+id); }else{ - setDokuCookie('align',''); + DokuCookie.setValue('align',''); media_manager.align = false; } }; @@ -661,7 +661,7 @@ setlink = function(event,cb){ var id = cb.id.substring(cb.id.length -1); if(id){ - setDokuCookie('link',id); + DokuCookie.setValue('link',id); for (var i = 1; i<=4; i++) { outSet("media__linkbtn"+i); } @@ -674,11 +674,11 @@ align.show(); if (media_manager.link == '4') { media_manager.align = '1'; - setDokuCookie('align', '1'); + DokuCookie.setValue('align', '1'); inSet('media__alignbtn1'); media_manager.size = '2'; - setDokuCookie('size', '2'); + DokuCookie.setValue('size', '2'); inSet('media__sizebtn2'); } @@ -688,7 +688,7 @@ } media_manager.link = id; }else{ - setDokuCookie('link',''); + DokuCookie.setValue('link',''); media_manager.link = false; } }; @@ -701,14 +701,14 @@ setsize = function(event,cb){ var id = cb.id.substring(cb.id.length -1); if (id) { - setDokuCookie('size',id); + DokuCookie.setValue('size',id); media_manager.size = id; for (var i = 1 ; i <=4 ; ++i) { outSet("media__sizebtn" + i); } inSet("media__sizebtn"+id); } else { - setDokuCookie('size',''); + DokuCookie.setValue('size',''); media_manager.width = false; } }; -- cgit v1.2.3 From 17e2e2545f2fd3607a14238ecee25eb7a605ce84 Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Fri, 10 Jun 2011 20:26:04 +0200 Subject: Moved behavioural functions into it's own object and file JavaScript functions adding behaviours based on IDs or class names where moved to their own object into behaviour.js and where jQueryized. --- lib/scripts/media.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'lib/scripts/media.js') diff --git a/lib/scripts/media.js b/lib/scripts/media.js index cf4a839d9..bcdba2a48 100644 --- a/lib/scripts/media.js +++ b/lib/scripts/media.js @@ -326,7 +326,8 @@ event.preventDefault(); - cleanMsgArea(); + jQuery.remove('div.success, div.info, div.error, div.notify'); + content = $('#media__content'); content.html('...'); -- cgit v1.2.3 From 87acb57f9cebe62178de1bde59cd54af45b8ad61 Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Mon, 27 Jun 2011 18:07:23 +0200 Subject: fixed two errors in media.js, still needs refactoring --- lib/scripts/media.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'lib/scripts/media.js') diff --git a/lib/scripts/media.js b/lib/scripts/media.js index bcdba2a48..ebbee5a78 100644 --- a/lib/scripts/media.js +++ b/lib/scripts/media.js @@ -303,7 +303,7 @@ $.post( DOKU_BASE + 'lib/exe/ajax.php', - link.attr('search').substr(1) + '&call=medians', + link[0].search.substr(1) + '&call=medians', function (data) { ul.html(data); listitem.append(ul); @@ -326,7 +326,7 @@ event.preventDefault(); - jQuery.remove('div.success, div.info, div.error, div.notify'); + jQuery('div.success, div.info, div.error, div.notify').remove(); content = $('#media__content'); content.html('...'); @@ -334,7 +334,7 @@ // fetch the subtree $.post( DOKU_BASE + 'lib/exe/ajax.php', - link.attr('search').substr(1)+'&call=medialist', + link[0].search.substr(1)+'&call=medialist', function (data) { content.html(data); prepare_content(content); -- cgit v1.2.3 From 23846a98488bec2aaade6d983b4c0b0db13af80c Mon Sep 17 00:00:00 2001 From: Kate Arzamastseva Date: Sun, 3 Jul 2011 19:00:54 +0300 Subject: ajax mediamanager --- lib/scripts/media.js | 90 +++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 89 insertions(+), 1 deletion(-) (limited to 'lib/scripts/media.js') diff --git a/lib/scripts/media.js b/lib/scripts/media.js index ebbee5a78..e03d1cf7b 100644 --- a/lib/scripts/media.js +++ b/lib/scripts/media.js @@ -328,7 +328,17 @@ jQuery('div.success, div.info, div.error, div.notify').remove(); - content = $('#media__content'); + if (document.getElementById('media__content')) { + content = $('#media__content'); + } else { + content = $('#mediamanager__files'); + if (link.hasClass('idx_dir')) { + change_tab($('.files'), '#mediamanager__tabs_files'); + $('#mediamanager__layout_detail').empty(); + } else { + change_tab(link, '#mediamanager__tabs_files'); + } + } content.html('...'); // fetch the subtree @@ -345,6 +355,77 @@ }; + /** + * Changes selected tab + * + * @author Kate Arzamastseva + */ + change_tab = function (tab, tab_menu_id) { + $(tab_menu_id + ' a').each(function (i) { + $(this).removeClass('selected'); + }); + tab.addClass('selected'); + }; + + /** + * Changes view of media files list + * + * @author Kate Arzamastseva + */ + list_view = function (event) { + var link, content; + link = $(this); + + event.preventDefault(); + + content = $('#mediamanager__file_list'); + if (link.hasClass('mediamanager-link-thumbnails')) { + content.removeClass('mediamanager-list'); + content.addClass('mediamanager-thumbs'); + } else if (link.hasClass('mediamanager-link-list')) { + content.removeClass('mediamanager-thumbs'); + content.addClass('mediamanager-list'); + } + }; + + /** + * Lists the content of the right column (image details) using AJAX + * + * @author Kate Arzamastseva + */ + details = function (event) { + var link, content, call, full; + link = $(this); + + event.preventDefault(); + + jQuery('div.success, div.info, div.error, div.notify').remove(); + + full=''; + if (document.getElementById('mediamanager__details')) { + content = $('#mediamanager__details'); + } else { + content = $('#mediamanager__layout_detail'); + full = '&full=true'; + } + + if (link.hasClass('name')) { + change_tab($('.view'), '#mediamanager__tabs_details'); + } else { + change_tab(link, '#mediamanager__tabs_details'); + } + content.html('...'); + + $.post( + DOKU_BASE + 'lib/exe/ajax.php', + link[0].search.substr(1)+'&call=mediadetails'+full, + function (data) { + content.html(data); + }, + 'html' + ); + }; + prepare_content = function (content) { // hide syntax example content.find('div.example:visible').hide(); @@ -748,5 +829,12 @@ $('#media__tree').delegate('img', 'click', toggle) .delegate('a', 'click', list); + + $('#mediamanager__tabs_files').delegate('a', 'click', list); + + $('#mediamanager__files').delegate('#mediamanager__tabs_list a', 'click', list_view) + .delegate('#mediamanager__file_list a', 'click', details); + + $('#mediamanager__layout_detail').delegate('#mediamanager__tabs_details a', 'click', details); }); }(jQuery)); -- cgit v1.2.3 From ed69a2ae06c0707fdd5634e18d569c25f0cda6d5 Mon Sep 17 00:00:00 2001 From: Kate Arzamastseva Date: Sun, 3 Jul 2011 23:56:26 +0300 Subject: ajax mediamanager fix --- lib/scripts/media.js | 68 ++++++++++++++++++++++++++-------------------------- 1 file changed, 34 insertions(+), 34 deletions(-) (limited to 'lib/scripts/media.js') diff --git a/lib/scripts/media.js b/lib/scripts/media.js index e03d1cf7b..a7574b804 100644 --- a/lib/scripts/media.js +++ b/lib/scripts/media.js @@ -11,7 +11,7 @@ * @author Pierre Spring */ (function ($) { - var toggle, list, prepare_content, insert, confirmattach, attachoptions, initpopup, updatehide, setalign, setsize, inSet, outSet, media_manager, hasFlash; + var toggle, list, prepare_content, insert, confirmattach, attachoptions, initpopup, updatehide, setalign, setsize, inSet, outSet, media_manager, hasFlash, form_params, list_view, details; var media_manager = { keepopen: false, @@ -321,7 +321,7 @@ * @author Pierre Spring */ list = function (event) { - var link, content; + var link, content, params; link = $(this); event.preventDefault(); @@ -329,22 +329,33 @@ jQuery('div.success, div.info, div.error, div.notify').remove(); if (document.getElementById('media__content')) { + //popup content = $('#media__content'); + } else { - content = $('#mediamanager__files'); + //fullscreen media manager + content = $('#mediamanager__layout_list'); + if (link.hasClass('idx_dir')) { - change_tab($('.files'), '#mediamanager__tabs_files'); + //changing namespace $('#mediamanager__layout_detail').empty(); - } else { - change_tab(link, '#mediamanager__tabs_files'); } } - content.html('...'); + + params = ''; + + if (link[0].search) { + params = link[0].search.substr(1)+'&call=medialist'; + } else if (link[0].action) { + params = form_params(link)+'&call=medialist'; + } + + $('.scroll-container', content).html('...'); // fetch the subtree $.post( DOKU_BASE + 'lib/exe/ajax.php', - link[0].search.substr(1)+'&call=medialist', + params, function (data) { content.html(data); prepare_content(content); @@ -356,15 +367,16 @@ }; /** - * Changes selected tab + * Returns form parameters * * @author Kate Arzamastseva */ - change_tab = function (tab, tab_menu_id) { - $(tab_menu_id + ' a').each(function (i) { - $(this).removeClass('selected'); - }); - tab.addClass('selected'); + form_params = function (form) { + var elements = form.serialize(); + var action = ''; + var i = form[0].action.indexOf('?'); + if (i >= 0) action = form[0].action.substr(i+1); + return elements+'&'+action; }; /** @@ -394,31 +406,19 @@ * @author Kate Arzamastseva */ details = function (event) { - var link, content, call, full; + var link, content; link = $(this); event.preventDefault(); jQuery('div.success, div.info, div.error, div.notify').remove(); - full=''; - if (document.getElementById('mediamanager__details')) { - content = $('#mediamanager__details'); - } else { - content = $('#mediamanager__layout_detail'); - full = '&full=true'; - } - - if (link.hasClass('name')) { - change_tab($('.view'), '#mediamanager__tabs_details'); - } else { - change_tab(link, '#mediamanager__tabs_details'); - } - content.html('...'); + content = $('#mediamanager__layout_detail'); + $('.scroll-container', content).html('...'); $.post( DOKU_BASE + 'lib/exe/ajax.php', - link[0].search.substr(1)+'&call=mediadetails'+full, + link[0].search.substr(1)+'&call=mediadetails', function (data) { content.html(data); }, @@ -830,11 +830,11 @@ $('#media__tree').delegate('img', 'click', toggle) .delegate('a', 'click', list); - $('#mediamanager__tabs_files').delegate('a', 'click', list); - - $('#mediamanager__files').delegate('#mediamanager__tabs_list a', 'click', list_view) + $('#mediamanager__layout_list').delegate('#mediamanager__tabs_files a', 'click', list) + .delegate('#mediamanager__tabs_list a', 'click', list_view) .delegate('#mediamanager__file_list a', 'click', details); - $('#mediamanager__layout_detail').delegate('#mediamanager__tabs_details a', 'click', details); + $('#mediamanager__layout_detail').delegate('#mediamanager__tabs_details a', 'click', details) + .delegate('#mediamanager__btn_update', 'submit', list); }); }(jQuery)); -- cgit v1.2.3 From 7d7ab775ac0252d50835987b276a95b790cd1434 Mon Sep 17 00:00:00 2001 From: Kate Arzamastseva Date: Mon, 4 Jul 2011 22:35:44 +0300 Subject: mediamanager ajax forms --- lib/scripts/media.js | 55 ++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 38 insertions(+), 17 deletions(-) (limited to 'lib/scripts/media.js') diff --git a/lib/scripts/media.js b/lib/scripts/media.js index a7574b804..245519cbc 100644 --- a/lib/scripts/media.js +++ b/lib/scripts/media.js @@ -11,7 +11,7 @@ * @author Pierre Spring */ (function ($) { - var toggle, list, prepare_content, insert, confirmattach, attachoptions, initpopup, updatehide, setalign, setsize, inSet, outSet, media_manager, hasFlash, form_params, list_view, details; + var toggle, list, prepare_content, insert, confirmattach, attachoptions, initpopup, updatehide, setalign, setsize, inSet, outSet, media_manager, hasFlash, form_params, list_view, details, update_content; var media_manager = { keepopen: false, @@ -331,6 +331,7 @@ if (document.getElementById('media__content')) { //popup content = $('#media__content'); + content.html('...'); } else { //fullscreen media manager @@ -340,6 +341,8 @@ //changing namespace $('#mediamanager__layout_detail').empty(); } + + $('.scroll-container', content).html('...'); } params = ''; @@ -350,19 +353,8 @@ params = form_params(link)+'&call=medialist'; } - $('.scroll-container', content).html('...'); - // fetch the subtree - $.post( - DOKU_BASE + 'lib/exe/ajax.php', - params, - function (data) { - content.html(data); - prepare_content(content); - updatehide(); - }, - 'html' - ); + update_content(content, params); }; @@ -406,7 +398,7 @@ * @author Kate Arzamastseva */ details = function (event) { - var link, content; + var link, content, params, update_list; link = $(this); event.preventDefault(); @@ -416,9 +408,32 @@ content = $('#mediamanager__layout_detail'); $('.scroll-container', content).html('...'); + params = ''; + + if (link[0].search) { + params = link[0].search.substr(1)+'&call=mediadetails'; + } else { + params = form_params(link)+'&call=mediadetails'; + } + + update_content(content, params); + + update_list = (link[0].id == 'mediamanager__btn_delete' || link[0].id == 'mediamanager__btn_restore'); + if (update_list) { + var link1, content1, params1; + link1 = $('a.files'); + params1 = link1[0].search.substr(1)+'&call=medialist'; + content1 = $('#mediamanager__layout_list'); + $('.scroll-container', content1).html('...'); + + update_content(content1, params1); + } + }; + + update_content = function (content, params) { $.post( DOKU_BASE + 'lib/exe/ajax.php', - link[0].search.substr(1)+'&call=mediadetails', + params, function (data) { content.html(data); }, @@ -832,9 +847,15 @@ $('#mediamanager__layout_list').delegate('#mediamanager__tabs_files a', 'click', list) .delegate('#mediamanager__tabs_list a', 'click', list_view) - .delegate('#mediamanager__file_list a', 'click', details); + .delegate('#mediamanager__file_list a', 'click', details) + .delegate('#dw__mediasearch', 'submit', list); $('#mediamanager__layout_detail').delegate('#mediamanager__tabs_details a', 'click', details) - .delegate('#mediamanager__btn_update', 'submit', list); + .delegate('#mediamanager__btn_update', 'submit', list) + .delegate('#page__revisions', 'submit', details) + .delegate('#page__revisions a', 'click', details) + .delegate('#mediamanager__save_meta', 'submit', details) + .delegate('#mediamanager__btn_delete', 'submit', details) + .delegate('#mediamanager__btn_restore', 'submit', details); }); }(jQuery)); -- cgit v1.2.3 From 6183fb05112cd318d9a6885d9405cff9917ee82f Mon Sep 17 00:00:00 2001 From: Kate Arzamastseva Date: Fri, 8 Jul 2011 13:54:15 +0300 Subject: mediamanager fix --- lib/scripts/media.js | 3 +++ 1 file changed, 3 insertions(+) (limited to 'lib/scripts/media.js') diff --git a/lib/scripts/media.js b/lib/scripts/media.js index 245519cbc..4eb1e7b63 100644 --- a/lib/scripts/media.js +++ b/lib/scripts/media.js @@ -405,6 +405,9 @@ jQuery('div.success, div.info, div.error, div.notify').remove(); + if (link[0].id == 'mediamanager__btn_delete' && !confirm(LANG['del_confirm'])) return false; + if (link[0].id == 'mediamanager__btn_restore' && !confirm(LANG['restore_confirm'])) return false; + content = $('#mediamanager__layout_detail'); $('.scroll-container', content).html('...'); -- cgit v1.2.3 From f6f771ca288974ca7d259cf35f0d416fef44ef6e Mon Sep 17 00:00:00 2001 From: Kate Arzamastseva Date: Sat, 9 Jul 2011 21:04:18 +0300 Subject: media.js fix --- lib/scripts/media.js | 102 +++++++++++++++++++++++++-------------------------- 1 file changed, 51 insertions(+), 51 deletions(-) (limited to 'lib/scripts/media.js') diff --git a/lib/scripts/media.js b/lib/scripts/media.js index 4eb1e7b63..8c68fa569 100644 --- a/lib/scripts/media.js +++ b/lib/scripts/media.js @@ -321,8 +321,8 @@ * @author Pierre Spring */ list = function (event) { - var link, content, params; - link = $(this); + var $link, $content, params; + $link = jQuery(this); event.preventDefault(); @@ -330,31 +330,31 @@ if (document.getElementById('media__content')) { //popup - content = $('#media__content'); - content.html('...'); + $content = jQuery('#media__content'); + $content.html('...'); } else { //fullscreen media manager - content = $('#mediamanager__layout_list'); + $content = jQuery('#mediamanager__layout_list'); - if (link.hasClass('idx_dir')) { + if ($link.hasClass('idx_dir')) { //changing namespace - $('#mediamanager__layout_detail').empty(); + jQuery('#mediamanager__layout_detail').empty(); } - $('.scroll-container', content).html('...'); + jQuery('.scroll-container', $content).html('...'); } params = ''; - if (link[0].search) { - params = link[0].search.substr(1)+'&call=medialist'; - } else if (link[0].action) { - params = form_params(link)+'&call=medialist'; + if ($link[0].search) { + params = $link[0].search.substr(1)+'&call=medialist'; + } else if ($link[0].action) { + params = form_params($link)+'&call=medialist'; } // fetch the subtree - update_content(content, params); + update_content($content, params); }; @@ -363,11 +363,11 @@ * * @author Kate Arzamastseva */ - form_params = function (form) { - var elements = form.serialize(); + form_params = function ($form) { + var elements = $form.serialize(); var action = ''; - var i = form[0].action.indexOf('?'); - if (i >= 0) action = form[0].action.substr(i+1); + var i = $form[0].action.indexOf('?'); + if (i >= 0) action = $form[0].action.substr(i+1); return elements+'&'+action; }; @@ -377,18 +377,18 @@ * @author Kate Arzamastseva */ list_view = function (event) { - var link, content; - link = $(this); + var $link, $content; + $link = jQuery(this); event.preventDefault(); - content = $('#mediamanager__file_list'); - if (link.hasClass('mediamanager-link-thumbnails')) { - content.removeClass('mediamanager-list'); - content.addClass('mediamanager-thumbs'); - } else if (link.hasClass('mediamanager-link-list')) { - content.removeClass('mediamanager-thumbs'); - content.addClass('mediamanager-list'); + $content = jQuery('#mediamanager__file_list'); + if ($link.hasClass('mediamanager-link-thumbnails')) { + $content.removeClass('mediamanager-list'); + $content.addClass('mediamanager-thumbs'); + } else if ($link.hasClass('mediamanager-link-list')) { + $content.removeClass('mediamanager-thumbs'); + $content.addClass('mediamanager-list'); } }; @@ -398,43 +398,43 @@ * @author Kate Arzamastseva */ details = function (event) { - var link, content, params, update_list; - link = $(this); + var $link, $content, params, update_list; + $link = jQuery(this); event.preventDefault(); jQuery('div.success, div.info, div.error, div.notify').remove(); - if (link[0].id == 'mediamanager__btn_delete' && !confirm(LANG['del_confirm'])) return false; - if (link[0].id == 'mediamanager__btn_restore' && !confirm(LANG['restore_confirm'])) return false; + if ($link[0].id == 'mediamanager__btn_delete' && !confirm(LANG['del_confirm'])) return false; + if ($link[0].id == 'mediamanager__btn_restore' && !confirm(LANG['restore_confirm'])) return false; - content = $('#mediamanager__layout_detail'); - $('.scroll-container', content).html('...'); + $content = $('#mediamanager__layout_detail'); + jQuery('.scroll-container', $content).html('...'); params = ''; - if (link[0].search) { - params = link[0].search.substr(1)+'&call=mediadetails'; + if ($link[0].search) { + params = $link[0].search.substr(1)+'&call=mediadetails'; } else { - params = form_params(link)+'&call=mediadetails'; + params = form_params($link)+'&call=mediadetails'; } - update_content(content, params); + update_content($content, params); - update_list = (link[0].id == 'mediamanager__btn_delete' || link[0].id == 'mediamanager__btn_restore'); + update_list = ($link[0].id == 'mediamanager__btn_delete' || $link[0].id == 'mediamanager__btn_restore'); if (update_list) { - var link1, content1, params1; - link1 = $('a.files'); - params1 = link1[0].search.substr(1)+'&call=medialist'; - content1 = $('#mediamanager__layout_list'); - $('.scroll-container', content1).html('...'); + var $link1, $content1, params1; + $link1 = jQuery('a.files'); + params1 = $link1[0].search.substr(1)+'&call=medialist'; + $content1 = jQuery('#mediamanager__layout_list'); + jQuery('.scroll-container', $content1).html('...'); - update_content(content1, params1); + update_content($content1, params1); } }; - update_content = function (content, params) { - $.post( + update_content = function ($content, params) { + jQuery.post( DOKU_BASE + 'lib/exe/ajax.php', params, function (data) { @@ -831,29 +831,29 @@ }; $(function () { - var content = $('#media__content'); - prepare_content(content); + var $content = jQuery('#media__content'); + prepare_content($content); attachoptions(); initpopup(); // add the action to autofill the "upload as" field - content.delegate('#upload__file', 'change', suggest) + $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) + jQuery('#media__tree').delegate('img', 'click', toggle) .delegate('a', 'click', list); - $('#mediamanager__layout_list').delegate('#mediamanager__tabs_files a', 'click', list) + jQuery('#mediamanager__layout_list').delegate('#mediamanager__tabs_files a', 'click', list) .delegate('#mediamanager__tabs_list a', 'click', list_view) .delegate('#mediamanager__file_list a', 'click', details) .delegate('#dw__mediasearch', 'submit', list); - $('#mediamanager__layout_detail').delegate('#mediamanager__tabs_details a', 'click', details) + jQuery('#mediamanager__layout_detail').delegate('#mediamanager__tabs_details a', 'click', details) .delegate('#mediamanager__btn_update', 'submit', list) .delegate('#page__revisions', 'submit', details) .delegate('#page__revisions a', 'click', details) -- cgit v1.2.3 From de11c42f80968ac41dc4164829845c1e5dae25c2 Mon Sep 17 00:00:00 2001 From: Kate Arzamastseva Date: Sat, 9 Jul 2011 23:21:50 +0300 Subject: media-manager fixes --- lib/scripts/media.js | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'lib/scripts/media.js') diff --git a/lib/scripts/media.js b/lib/scripts/media.js index 8c68fa569..f261bd2d5 100644 --- a/lib/scripts/media.js +++ b/lib/scripts/media.js @@ -340,6 +340,10 @@ if ($link.hasClass('idx_dir')) { //changing namespace jQuery('#mediamanager__layout_detail').empty(); + jQuery('#media__tree .selected').each(function(){ + $(this).removeClass('selected'); + }); + $link.addClass('selected'); } jQuery('.scroll-container', $content).html('...'); -- cgit v1.2.3 From d10c9a7424d1ef0aace2fd34e1008196d111a88c Mon Sep 17 00:00:00 2001 From: Adrian Lang Date: Thu, 7 Jul 2011 16:08:05 +0200 Subject: Rewrite mediamanager JavaScript Make it faster, prettier, less wrong, add UI effects, use jQuery UI Dialog, Abstract tree view stuff away into jQuery.dw_tree --- lib/scripts/media.js | 941 +++++++++++++++++++-------------------------------- 1 file changed, 357 insertions(+), 584 deletions(-) (limited to 'lib/scripts/media.js') diff --git a/lib/scripts/media.js b/lib/scripts/media.js index ebbee5a78..f7e78c747 100644 --- a/lib/scripts/media.js +++ b/lib/scripts/media.js @@ -1,8 +1,5 @@ -/*jslint white: true, onevar: true, undef: true, nomen: true, eqeqeq: true, plusplus: true, bitwise: true, regexp: false, strict: true, newcap: true, immed: true */ -/*global jQuery, window, DOKU_BASE*/ -"use strict"; - -// * refactor once the jQuery port is over ;) +/*jslint white: true, onevar: true, undef: true, nomen: true, eqeqeq: true, plusplus: true, bitwise: true, regexp: false, strict: true, newcap: true, immed: true, sloppy: true, browser: true */ +/*global jQuery, DOKU_BASE, LANG, bind, DokuCookie, opener, confirm*/ /** * JavaScript functionality for the media management popup @@ -10,172 +7,127 @@ * @author Andreas Gohr * @author Pierre Spring */ -(function ($) { - var toggle, list, prepare_content, insert, confirmattach, attachoptions, initpopup, updatehide, setalign, setsize, inSet, outSet, media_manager, hasFlash; - - var media_manager = { - keepopen: false, - hide: false, - align: false, - popup: false, - display: false, - link: false, - size: false, - ext: false, - }; - - - - - /** - * build the popup window - * - * @author Dominik Eckelmann - */ - initpopup = function() { - var popup; - - popup = document.createElement('div'); - popup.setAttribute('id','media__popup'); - popup.style.display = "none"; - - var root = document.getElementById('media__manager'); - if (root === null) return; - root.appendChild(popup); - - var headline = document.createElement('h1'); - headline.innerHTML = LANG.mediatitle; - var headlineimg = document.createElement('img'); - headlineimg.src = DOKU_BASE + 'lib/images/close.png'; - headlineimg.id = 'media__closeimg'; - $(headlineimg).click(function () {$(popup).hide()}); - headline.insertBefore(headlineimg, headline.firstChild); - popup.appendChild(headline); - $(popup).draggable({handle: headline}); - - // link - var linkp = document.createElement('p'); - - linkp.id = "media__linkstyle"; - if (media_manager.display == "2") { - linkp.style.display = "none"; - } - - var linkl = document.createElement('label'); - linkl.innerHTML = LANG.mediatarget; - linkp.appendChild(linkl); - - var linkbtns = ['lnk', 'direct', 'nolnk', 'displaylnk']; - for (var i = 0 ; i < linkbtns.length ; ++i) { - var linkbtn = document.createElement('button'); - linkbtn.className = 'button'; - linkbtn.id = "media__linkbtn" + (i+1); - linkbtn.title = LANG['media' + linkbtns[i]]; - linkbtn.style.borderStyle = 'outset'; - $(linkbtn).click(function (event) { return setlink(event,this); }); - - var linkimg = document.createElement('img'); - linkimg.src = DOKU_BASE + 'lib/images/media_link_' + linkbtns[i] + '.png'; - linkbtn.appendChild(linkimg); - linkp.appendChild(linkbtn); - } - - popup.appendChild(linkp); - - // align +var dw_mediamanager = { + keepopen: false, + hide: false, + popup: false, + display: false, + ext: false, + $popup: null, - var alignp = document.createElement('p'); - var alignl = document.createElement('label'); + // Image insertion opts + align: false, + link: false, + size: false, + forbidden_opts: {}, - alignp.appendChild(alignl); - alignp.id = 'media__align'; - if (media_manager.display == "2") { - alignp.style.display = "none"; - } - alignl.innerHTML = LANG['mediaalign']; - - var alignbtns = ['noalign', 'left', 'center', 'right']; - for (var n = 0 ; n < alignbtns.length ; ++n) { - var alignbtn = document.createElement('button'); - var alignimg = document.createElement('img'); - alignimg.src = DOKU_BASE + 'lib/images/media_align_' + alignbtns[n] + '.png'; - - alignbtn.id = "media__alignbtn" + (n+1); - alignbtn.title = LANG['media' + alignbtns[n]]; - alignbtn.className = 'button'; - alignbtn.appendChild(alignimg); - alignbtn.style.borderStyle = 'outset'; - $(alignbtn).click(function (event) { return setalign(event,this); }); - - alignp.appendChild(alignbtn); - } + init: function () { + var $content, $tree; + $content = jQuery('#media__content'); + $tree = jQuery('#media__tree'); - popup.appendChild(alignp); + dw_mediamanager.prepare_content($content); - // size + dw_mediamanager.attachoptions(); + dw_mediamanager.initpopup(); - var sizep = document.createElement('p'); - var sizel = document.createElement('label'); - - sizep.id = 'media__size'; - if (media_manager.display == "2") { - sizep.style.display = "none"; - } - sizep.appendChild(sizel); - sizel.innerHTML = LANG['mediasize']; - - var sizebtns = ['small', 'medium', 'large', 'original']; - for (var size = 0 ; size < sizebtns.length ; ++size) { - var sizebtn = document.createElement('button'); - var sizeimg = document.createElement('img'); - - sizep.appendChild(sizebtn); - sizeimg.src = DOKU_BASE + 'lib/images/media_size_' + sizebtns[size] + '.png'; - - sizebtn.className = 'button'; - sizebtn.appendChild(sizeimg); - sizebtn.id = 'media__sizebtn' + (size + 1); - sizebtn.title = LANG['media' + sizebtns[size]]; - sizebtn.style.borderStyle = 'outset'; - $(sizebtn).click(function (event) { return setsize(event,this); }); - } - - popup.appendChild(sizep); - - // send and close button - - var btnp = document.createElement('p'); - popup.appendChild(btnp); - btnp.setAttribute('class','btnlbl'); - - var btn = document.createElement('input'); - btn.type = 'button'; - btn.id = 'media__sendbtn'; - btn.setAttribute('class','button'); - btn.value = LANG['mediainsert']; - btnp.appendChild(btn); - }; + // add the action to autofill the "upload as" field + $content.delegate('#upload__file', 'change', dw_mediamanager.suggest) + // Attach the image selector action to all links + .delegate('a.select', 'click', dw_mediamanager.select) + // Attach deletion confirmation dialog to the delete buttons + .delegate('#media__content a.btn_media_delete', 'click', + dw_mediamanager.confirmattach); + + $tree.dw_tree({toggle_selector: 'img', + load_data: function (show_sublist, $clicky) { + // get the enclosed link (is always the first one) + var $link = $clicky.siblings('a').first(); + + jQuery.post( + DOKU_BASE + 'lib/exe/ajax.php', + $link[0].search.substr(1) + '&call=medians', + show_sublist, + 'html' + ); + + $clicky.attr('src', DOKU_BASE + 'lib/images/minus.gif'); + }, + + close: function ($clicky) { + $clicky.attr('src', + DOKU_BASE + 'lib/images/plus.gif'); + }}); + $tree.delegate('a', 'click', dw_mediamanager.list); + }, - // moved from helpers.js temporarily here /** - * Very simplistic Flash plugin check, probably works for Flash 8 and higher only + * build the popup window * + * @author Dominik Eckelmann */ - hasFlash = function(version){ - var ver = 0; - try{ - if(navigator.plugins != null && navigator.plugins.length > 0){ - ver = navigator.plugins["Shockwave Flash"].description.split(' ')[2].split('.')[0]; - }else{ - var axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash"); - ver = axo.GetVariable("$version").split(' ')[1].split(',')[0]; + initpopup: function () { + var opts, $insp, $insbtn; + + dw_mediamanager.$popup = jQuery(document.createElement('div')) + .attr('id', 'media__popup_content') + .dialog({autoOpen: false, width: 280, modal: true, + draggable: true, title: LANG.mediatitle, + resizable: false}); + + opts = [{id: 'link', label: LANG.mediatarget, + btns: ['lnk', 'direct', 'nolnk', 'displaylnk']}, + {id: 'align', label: LANG.mediaalign, + btns: ['noalign', 'left', 'center', 'right']}, + {id: 'size', label: LANG.mediasize, + btns: ['small', 'medium', 'large', 'original']} + ]; + + jQuery.each(opts, function (_, opt) { + var $p, $l; + $p = jQuery(document.createElement('p')) + .attr('id', 'media__' + opt.id); + + if (dw_mediamanager.display === "2") { + $p.hide(); } - }catch(e){ } - if(ver >= version) return true; - return false; - }; + $l = jQuery(document.createElement('label')) + .text(opt.label); + $p.append($l); + + jQuery.each(opt.btns, function (i, text) { + var $btn, $img; + $btn = jQuery(document.createElement('button')) + .addClass('button') + .attr('id', "media__" + opt.id + "btn" + (i + 1)) + .attr('title', LANG['media' + text]) + .click(bind(dw_mediamanager.setOpt, opt.id)); + + $img = jQuery(document.createElement('img')) + .attr('src', DOKU_BASE + 'lib/images/media_' + + opt.id + '_' + text + '.png'); + + $btn.append($img); + $p.append($btn); + }); + + dw_mediamanager.$popup.append($p); + }); + + // insert button + $insp = jQuery(document.createElement('p')) + .addClass('btnlbl'); + dw_mediamanager.$popup.append($insp); + + $insbtn = jQuery(document.createElement('input')) + .attr('id', 'media__sendbtn') + .attr('type', 'button') + .addClass('button') + .val(LANG.mediainsert); + $insp.append($insbtn); + }, /** * Insert the clicked image into the opener's textarea @@ -184,135 +136,81 @@ * @author Dominik Eckelmann * @author Pierre Spring */ - insert = function (id) { - var opts, optsstart, alignleft, alignright; + insert: function () { + var opts, alignleft, alignright, edid, s; // set syntax options - $('#media__popup').hide(); + dw_mediamanager.$popup.dialog('close'); opts = ''; - optsstart = ''; alignleft = ''; alignright = ''; - if (media_manager.ext == 'img' || media_manager.ext == 'swf') { + if ({img: 1, swf: 1}[dw_mediamanager.ext] === 1) { - if (media_manager.link == '4') { + if (dw_mediamanager.link === '4') { opts = '?linkonly'; } else { - if (media_manager.link == "3" && media_manager.ext == 'img') { + if (dw_mediamanager.link === "3" && dw_mediamanager.ext === 'img') { opts = '?nolink'; - optsstart = true; - } else if (media_manager.link == "2" && media_manager.ext == 'img') { + } else if (dw_mediamanager.link === "2" && dw_mediamanager.ext === 'img') { opts = '?direct'; - optsstart = true; } - var s = parseInt(media_manager.size, 10); + s = parseInt(dw_mediamanager.size, 10); - if (s && s >= 1) { - opts += (optsstart)?'&':'?'; - if (s=="1") { - opts += '100'; - if (media_manager.ext == 'swf') { + if (s && s >= 1 && s < 4) { + opts += (opts.length)?'&':'?'; + opts += dw_mediamanager.size + '00'; + if (dw_mediamanager.ext === 'swf') { + switch (s) { + case 1: opts += 'x62'; - } - } else if (s=="2") { - opts += '200'; - if (media_manager.ext == 'swf') { + break; + case 2: opts += 'x123'; - } - } else if (s=="3"){ - opts += '300'; - if (media_manager.ext == 'swf') { + break; + case 3: opts += 'x185'; + break; } } } - if (media_manager.align == '2') { - alignleft = ''; - alignright = ' '; - } - if (media_manager.align == '3') { - alignleft = ' '; - alignright = ' '; - } - if (media_manager.align == '4') { - alignleft = ' '; - alignright = ''; - } + alignleft = dw_mediamanager.align === '2' ? '' : ' '; + alignright = dw_mediamanager.align === '4' ? '' : ' '; } } - var edid = String.prototype.match.call(document.location, /&edid=([^&]+)/); - edid = edid ? edid[1] : 'wiki__text'; - opener.insertTags(edid,'{{'+alignleft+id+opts+alignright+'|','}}',''); + edid = String.prototype.match.call(document.location, /&edid=([^&]+)/); + opener.insertTags(edid ? edid[1] : 'wiki__text', + '{{'+alignleft+id+opts+alignright+'|','}}',''); - if(!media_manager.keepopen) window.close(); + if(!dw_mediamanager.keepopen) { + window.close(); + } opener.focus(); return false; - }; + }, /** * Prefills the wikiname. * * @author Andreas Gohr */ - suggest = function(){ - var file, name, text; + suggest: function(){ + var $file, $name, text; - file = $(this); - name = $('#upload__name'); - if(!file.size() || !name.size()) return; - - text = file.val(); - text = text.substr(text.lastIndexOf('/')+1); - text = text.substr(text.lastIndexOf('\\')+1); - name.val(text); - }; - - /** - * Open or close a subtree using AJAX - * - * @author Andreas Gohr - * @author Pierre Spring - */ - toggle = function (event) { - var clicky, listitem, sublist, link, ul; - - event.preventDefault(); // TODO: really here? - - var clicky = $(this); - var listitem = clicky.parent(); - - // if already open, close by removing the sublist - sublist = listitem.find('ul').first(); - if(sublist.size()){ - sublist.remove(); // TODO: really? we could just hide it, right? - clicky.attr('src', DOKU_BASE + 'lib/images/plus.gif'); + $file = jQuery(this); + $name = jQuery('#upload__name'); + if(!$file.length || !$name.length) { return; } - // get the enclosed link (is always the first one) - link = listitem.find('a').first(); - - //prepare the new ul - ul = $('
            '); - - //fixme add classname here - - $.post( - DOKU_BASE + 'lib/exe/ajax.php', - link[0].search.substr(1) + '&call=medians', - function (data) { - ul.html(data); - listitem.append(ul); - }, - 'html' - ); - - clicky.attr('src', DOKU_BASE + 'lib/images/minus.gif'); - }; + text = $file.val(); + text = text.substr(text.lastIndexOf('/')+1); + text = text.substr(text.lastIndexOf('\\')+1); + $name.val(text); + }, /** * list the content of a namespace using AJAX @@ -320,178 +218,96 @@ * @author Andreas Gohr * @author Pierre Spring */ - list = function (event) { - var link, content; - link = $(this); + list: function (event) { + var $link, $content; event.preventDefault(); jQuery('div.success, div.info, div.error, div.notify').remove(); - content = $('#media__content'); - content.html('...'); + $link = jQuery(this); + $content = jQuery('#media__content'); + $content.html('...'); // fetch the subtree - $.post( + jQuery.post( DOKU_BASE + 'lib/exe/ajax.php', - link[0].search.substr(1)+'&call=medialist', + $link[0].search.substr(1)+'&call=medialist', function (data) { - content.html(data); - prepare_content(content); - updatehide(); + $content.html(data); + dw_mediamanager.prepare_content($content); + dw_mediamanager.updatehide(); }, 'html' ); + }, - }; - - prepare_content = function (content) { + prepare_content: function ($content) { // hide syntax example - content.find('div.example:visible').hide(); - initFlashUpload(); - }; + $content.find('div.example:visible').hide(); + dw_mediamanager.initFlashUpload(); + }, /** - * shows the popup for a image link - */ - select = function(event){ - var link, id, dot, ext; - - event.preventDefault(); - - link = $(this); - id = link.attr('name').substr(2); - - if(!opener){ - // if we don't run in popup display example - // the id's are a bit wired and $('#ex_wiki_dokuwiki-128.png') will not be found - // by Sizzle (the CSS Selector Engine used by jQuery), - // hence the document.getElementById() call - $(document.getElementById('ex_'+id.replace(/:/g,'_').replace(/^_/,''))).toggle(); - return; - } - - link = link[0]; - - media_manager.ext = false; - dot = id.lastIndexOf("."); - - if (-1 === dot) { - insert(id); - return; - } - - ext = id.substr(dot); - - if (ext != '.jpg' && ext != '.jpeg' && ext != '.png' && ext != '.gif' && ext != '.swf') { - insert(id); - return; - } - - // remove old callback from the insert button and set the new one. - $('#media__sendbtn').unbind().click(function () {insert(id)}); - - $('#media__popup').show() - .css('left', event.pageX + 'px') - .css('top', event.pageY + 'px'); + * shows the popup for a image link + */ + select: function(event){ + var $link, id, dot, ext; - $('#media__popup button.button').each(function (index, element) { outSet(element) } ); + event.preventDefault(); + $link = jQuery(this); + id = $link.attr('name').substr(2); - if (ext == '.swf') { - media_manager.ext = 'swf'; + if(!opener){ + // if we don't run in popup display example + // the id's are a bit wierd and jQuery('#ex_wiki_dokuwiki-128.png') + // will not be found by Sizzle (the CSS Selector Engine + // used by jQuery), hence the document.getElementById() call + jQuery(document.getElementById('ex_'+id.replace(/:/g,'_').replace(/^_/,''))).dw_toggle(); + return; + } - // disable display buttons for detail and linked image - $('#media__linkbtn1').hide(); - $('#media__linkbtn2').hide(); + dw_mediamanager.ext = false; + dot = id.lastIndexOf("."); - // set the link button to default - if (media_manager.link != false) { - if ( media_manager.link == '2' || media_manager.link == '1') { - inSet('media__linkbtn3'); - media_manager.link = '3'; - DokuCookie.setValue('link','3'); - } else { - 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 - inSet('media__linkbtn3'); - media_manager.link = '3'; - DokuCookie.setValue('link','3'); - } else { - inSet('media__linkbtn'+DokuCookie.getValue('link')); - media_manager.link = DokuCookie.getValue('link'); - } - } else { - // default case - media_manager.link = '3'; - inSet('media__linkbtn3'); - DokuCookie.setValue('link','3'); - } + if (-1 === dot) { + dw_mediamanager.insert(id); + return; + } - // disable button for original size - $('#media__sizebtn4').hide(); + ext = id.substr(dot); - } else { - media_manager.ext = 'img'; + if ({'.jpg':1, '.jpeg':1, '.png':1, '.gif':1, '.swf':1}[ext] !== 1) { + dw_mediamanager.insert(id); + return; + } - // ensure that the display buttons are there - $('#media__linkbtn1').show(); - $('#media__linkbtn2').show(); - $('#media__sizebtn4').show(); + // remove old callback from the insert button and set the new one. + jQuery('#media__sendbtn').unbind().click(bind(dw_mediamanager.insert, id)); - // set the link button to default - if (DokuCookie.getValue('link')) { - media_manager.link = DokuCookie.getValue('link'); - } - if (media_manager.link == false) { - // default case - media_manager.link = '1'; - DokuCookie.setValue('link','1'); - } - inSet('media__linkbtn'+media_manager.link); - } + dw_mediamanager.unforbid('ext'); + if (ext === '.swf') { + dw_mediamanager.ext = 'swf'; + dw_mediamanager.forbid('ext', {link: ['1', '2'], + size: ['4']}); + } else { + dw_mediamanager.ext = 'img'; + } - if (media_manager.link == '4') { - media_manager.align = false; - media_manager.size = false; - $('#media__align').hide(); - $('#media__size').hide(); - } else { - $('#media__align').show(); - $('#media__size').show(); - - // set the align button to default - if (media_manager.align != false) { - inSet('media__alignbtn'+media_manager.align); - } else if (DokuCookie.getValue('align')) { - inSet('media__alignbtn'+DokuCookie.getValue('align')); - media_manager.align = DokuCookie.getValue('align'); - } else { - // default case - media_manager.align = '0'; - inSet('media__alignbtn0'); - DokuCookie.setValue('align','0'); - } + // Set to defaults + dw_mediamanager.setOpt('link'); + dw_mediamanager.setOpt('align'); + dw_mediamanager.setOpt('size'); - // set the size button to default - if (DokuCookie.getValue('size')) { - media_manager.size = DokuCookie.getValue('size'); - } - if (media_manager.size == false || (media_manager.size === '4' && ext === '.swf')) { - // default case - media_manager.size = '2'; - DokuCookie.setValue('size','2'); - } - inSet('media__sizebtn'+media_manager.size); + // toggle buttons for detail and linked image, original size + jQuery('#media__linkbtn1, #media__linkbtn2, #media__sizebtn4') + .toggle(dw_mediamanager.ext === 'img'); - $('#media__sendbtn').focus(); - } + dw_mediamanager.$popup.dialog('open'); - return; - }; + jQuery('#media__sendbtn').focus(); + }, /** * Deletion confirmation dialog to the delete buttons. @@ -499,11 +315,11 @@ * @author Michael Klier * @author Pierre Spring */ - confirmattach = function(e){ - if(!confirm(LANG['del_confirm'] + "\n" + jQuery(this).attr('title'))) { + confirmattach: function(e){ + if(!confirm(LANG.del_confirm + "\n" + jQuery(this).attr('title'))) { e.preventDefault(); } - }; + }, /** * Creates checkboxes for additional options @@ -511,104 +327,89 @@ * @author Andreas Gohr * @author Pierre Spring */ - attachoptions = function(){ - obj = $('#media__opts')[0]; - if(!obj) return; - - // keep open - if(opener){ - var kobox = document.createElement('input'); - kobox.type = 'checkbox'; - kobox.id = 'media__keepopen'; - if(DokuCookie.getValue('keepopen')){ - kobox.checked = true; - kobox.defaultChecked = true; //IE wants this - media_manager.keepopen = true; - } + attachoptions: function(){ + var $obj, opts; - $(kobox).click( - function () { - toggleOption(this, 'keepopen'); - } - ); - - 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); + $obj = jQuery('#media__opts'); + if($obj.length === 0) { + return; } - // hide details - var hdbox = document.createElement('input'); - hdbox.type = 'checkbox'; - hdbox.id = 'media__hide'; - if(DokuCookie.getValue('hide')){ - hdbox.checked = true; - hdbox.defaultChecked = true; //IE wants this - media_manager.hide = true; + opts = []; + // keep open + if(opener){ + opts.push(['keepopen', 'keepopen']); } - $(hdbox).click( - function () { - toggleOption(this, 'hide'); - updatehide(); - } - ); + opts.push(['hide', 'hidedetails']); + + jQuery.each(opts, + function(_, opt) { + var $box, $lbl; + $box = jQuery(document.createElement('input')) + .attr('type', 'checkbox') + .attr('id', 'media__' + opt[0]) + .click(bind(dw_mediamanager.toggleOption, + opt[0])); + + if(DokuCookie.getValue(opt[0])){ + $box.prop('checked', true); + dw_mediamanager[opt[0]] = true; + } - var hdlbl = document.createElement('label'); - hdlbl.htmlFor = 'media__hide'; - hdlbl.innerHTML = LANG['hidedetails']; + $lbl = jQuery(document.createElement('label')) + .attr('for', 'media__' + opt[0]) + .text(LANG[opt[1]]); - var hdbr = document.createElement('br'); + $obj.append($box, $lbl, document.createElement('br')); + }); - obj.appendChild(hdbox); - obj.appendChild(hdlbl); - obj.appendChild(hdbr); - updatehide(); - }; + dw_mediamanager.updatehide(); + }, /** * Generalized toggler * * @author Pierre Spring */ - toggleOption = function (checkbox, variable) { - if (checkbox.checked) { + toggleOption: function (variable) { + if (jQuery(this).prop('checked')) { DokuCookie.setValue(variable, 1); - media_manager[variable] = true; + dw_mediamanager[variable] = true; } else { DokuCookie.setValue(variable, ''); - media_manager[variable] = false; + dw_mediamanager[variable] = false; } - }; - - initFlashUpload = function () { - var oform, oflash, title; - if(!hasFlash(8)) return; + if (variable === 'hide') { + dw_mediamanager.updatehide(); + } + }, - oform = $('#dw__upload'); - oflash = $('#dw__flashupload'); + initFlashUpload: function () { + var $oform, $oflash; + if(!hasFlash(8)) { + return; + } - if(!oform.size() || !oflash.size()) return; + $oform = jQuery('#dw__upload'); + $oflash = jQuery('#dw__flashupload'); - title = LANG['mu_btn']; + if(!$oform.length || !$oflash.length) { + return; + } - $('').attr('src', DOKU_BASE+'lib/images/multiupload.png') - .attr('title', title) - .attr('alt', title) + jQuery(document.createElement('img')) + .attr('src', DOKU_BASE+'lib/images/multiupload.png') + .attr('title', LANG.mu_btn) + .attr('alt', LANG.mu_btn) .css('cursor', 'pointer') .click( function () { - oform.hide(); - oflash.show(); + $oform.hide(); + $oflash.show(); } ) - .appendTo(oform); - }; + .appendTo($oform); + }, /** * Sets the visibility of the image details accordingly to the @@ -616,137 +417,109 @@ * * @author Andreas Gohr */ - 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 = ''; - } - } - - ); - }; + updatehide: function(){ + jQuery('#media__content div.detail').dw_toggle(!dw_mediamanager.hide); + }, /** - * set the align + * set media insertion option * * @author Dominik Eckelmann */ - setalign = function(event,cb){ - - var id = cb.id.substring(cb.id.length -1); - if(id){ - DokuCookie.setValue('align',id); - media_manager.align = id; - for (var i = 1; i<=4; i++) { - outSet("media__alignbtn" + i); - } - inSet("media__alignbtn"+id); - }else{ - DokuCookie.setValue('align',''); - media_manager.align = false; + setOpt: function(opt, e){ + var val, i; + if (typeof e !== 'undefined') { + val = this.id.substring(this.id.length - 1); + } else { + val = dw_mediamanager.getOpt(opt); } - }; - /** - * set the link type - * - * @author Dominik Eckelmann - */ - setlink = function(event,cb){ - var id = cb.id.substring(cb.id.length -1); - if(id){ - DokuCookie.setValue('link',id); - for (var i = 1; i<=4; i++) { - outSet("media__linkbtn"+i); - } - inSet("media__linkbtn"+id); - - var size = $("#media__size"); - var align = $("#media__align"); - if (id != '4') { - size.show(); - align.show(); - if (media_manager.link == '4') { - media_manager.align = '1'; - DokuCookie.setValue('align', '1'); - inSet('media__alignbtn1'); - - media_manager.size = '2'; - DokuCookie.setValue('size', '2'); - inSet('media__sizebtn2'); - } - - } else { - size.hide(); - align.hide(); - } - media_manager.link = id; - }else{ - DokuCookie.setValue('link',''); - media_manager.link = false; + if (val === false) { + DokuCookie.setValue(opt,''); + dw_mediamanager[opt] = false; + return; } - }; - /** - * set the image size - * - * @author Dominik Eckelmann - */ - setsize = function(event,cb){ - var id = cb.id.substring(cb.id.length -1); - if (id) { - DokuCookie.setValue('size',id); - media_manager.size = id; - for (var i = 1 ; i <=4 ; ++i) { - outSet("media__sizebtn" + i); + if (opt === 'link') { + if (val !== '4' && dw_mediamanager.link === '4') { + dw_mediamanager.unforbid('linkonly'); + dw_mediamanager.setOpt('align'); + dw_mediamanager.setOpt('size'); + } else if (val === '4') { + dw_mediamanager.forbid('linkonly', {align: false, size: false}); } - inSet("media__sizebtn"+id); - } else { - DokuCookie.setValue('size',''); - media_manager.width = false; + + jQuery("#media__size, #media__align").dw_toggle(val !== '4'); } - }; - /** - * sets the border to inset - */ - inSet = function(id) { - var ele = $('#' + id).css('border-style', 'inset'); - }; + DokuCookie.setValue(opt, val); + dw_mediamanager[opt] = val; - /** - * sets the border to outset - */ - outSet = function(element) { - if ('string' === typeof element) { - element = '#' + element; + for (i = 1; i <= 4; i++) { + jQuery("#media__" + opt + "btn" + i).removeClass('selected'); + } + jQuery('#media__' + opt + 'btn' + val).addClass('selected'); + }, + + unforbid: function (group) { + delete dw_mediamanager.forbidden_opts[group]; + }, + + forbid: function (group, forbids) { + dw_mediamanager.forbidden_opts[group] = forbids; + }, + + allowedOpt: function (opt, val) { + var ret = true; + jQuery.each(dw_mediamanager.forbidden_opts, + function (_, forbids) { + ret = forbids[opt] !== false && + jQuery.inArray(val, forbids[opt]) === -1; + return ret; + }); + return ret; + }, + + getOpt: function (opt) { + var allowed = bind(dw_mediamanager.allowedOpt, opt); + + // Current value + if (dw_mediamanager[opt] !== false && allowed(dw_mediamanager[opt]) { + return dw_mediamanager[opt]; } - $(element).css('border-style', 'outset'); - }; - $(function () { - var content = $('#media__content'); - prepare_content(content); + // From cookie + if (DokuCookie.getValue(opt) && allowed(DokuCookie.getValue(opt))) { + return DokuCookie.getValue(opt); + } - attachoptions(); - initpopup(); + // size default + if (opt === 'size' && allowed('2')) { + return '2'; + } - // 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); + // Whatever is allowed, and be it false + return jQuery.grep(['1', '2', '3', '4'], allowed)[0] || false; + } +}; + +// moved from helpers.js temporarily here +/** + * Very simplistic Flash plugin check, probably works for Flash 8 and higher only + * + */ +function hasFlash(version){ + var ver = 0, axo; + try{ + if(navigator.plugins !== null && navigator.plugins.length > 0){ + ver = navigator.plugins["Shockwave Flash"].description.split(' ')[2].split('.')[0]; + }else{ + axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash"); + ver = axo.GetVariable("$version").split(' ')[1].split(',')[0]; + } + }catch(e){ } + return ver >= version; +} - $('#media__tree').delegate('img', 'click', toggle) - .delegate('a', 'click', list); - }); -}(jQuery)); +jQuery(dw_mediamanager.init); -- cgit v1.2.3 From e1dc10a4aab705171d34c7bde642ed77032c95c7 Mon Sep 17 00:00:00 2001 From: Kate Arzamastseva Date: Sun, 10 Jul 2011 15:36:01 +0300 Subject: media.js fixes --- lib/scripts/media.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'lib/scripts/media.js') diff --git a/lib/scripts/media.js b/lib/scripts/media.js index 3f263f42a..36c06a3aa 100644 --- a/lib/scripts/media.js +++ b/lib/scripts/media.js @@ -253,7 +253,7 @@ var dw_mediamanager = { //changing namespace jQuery('#mediamanager__layout_detail').empty(); jQuery('#media__tree .selected').each(function(){ - $(this).removeClass('selected'); + jQuery(this).removeClass('selected'); }); $link.addClass('selected'); } @@ -272,7 +272,7 @@ var dw_mediamanager = { // fetch the subtree dw_mediamanager.update_content($content, params); - }; + }, /** * Returns form parameters @@ -324,7 +324,7 @@ var dw_mediamanager = { if ($link[0].id == 'mediamanager__btn_delete' && !confirm(LANG['del_confirm'])) return false; if ($link[0].id == 'mediamanager__btn_restore' && !confirm(LANG['restore_confirm'])) return false; - $content = $('#mediamanager__layout_detail'); + $content = jQuery('#mediamanager__layout_detail'); jQuery('.scroll-container', $content).html('...'); params = ''; @@ -354,7 +354,7 @@ var dw_mediamanager = { DOKU_BASE + 'lib/exe/ajax.php', params, function (data) { - content.html(data); + $content.html(data); dw_mediamanager.prepare_content($content); dw_mediamanager.updatehide(); }, @@ -604,7 +604,7 @@ var dw_mediamanager = { var allowed = bind(dw_mediamanager.allowedOpt, opt); // Current value - if (dw_mediamanager[opt] !== false && allowed(dw_mediamanager[opt]) { + if (dw_mediamanager[opt] !== false && allowed(dw_mediamanager[opt])) { return dw_mediamanager[opt]; } -- cgit v1.2.3 From 4928b6eb7137cb1e8727ca7a7fc99db614b0df88 Mon Sep 17 00:00:00 2001 From: Kate Arzamastseva Date: Sun, 10 Jul 2011 16:38:04 +0300 Subject: mediamanager resizable --- lib/scripts/media.js | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) (limited to 'lib/scripts/media.js') diff --git a/lib/scripts/media.js b/lib/scripts/media.js index 36c06a3aa..af5346cbe 100644 --- a/lib/scripts/media.js +++ b/lib/scripts/media.js @@ -354,14 +354,43 @@ var dw_mediamanager = { DOKU_BASE + 'lib/exe/ajax.php', params, function (data) { + jQuery('.ui-resizable').each(function(){ + jQuery(this).resizable('destroy'); + }); + $content.html(data); dw_mediamanager.prepare_content($content); dw_mediamanager.updatehide(); + dw_mediamanager.update_resizable(0); }, 'html' ); }, + update_resizable: function (count_width) { + jQuery(".layout").resizable({ handles: 'e' }); + jQuery(".layout").bind("resize", function(event, ui) { + var w = 0; + jQuery(".layout").each(function() { + w += jQuery(this).width(); + }); + jQuery('#id-mediamanager-layout').width(w+30); + }); + + var w = 0; + jQuery(".layout").each(function() { + if (count_width) jQuery(this).width(jQuery(this).width()); + w += jQuery(this).width(); + }); + jQuery('#id-mediamanager-layout').width(w+30); + + var windowHeight = jQuery(window).height(); + var height = windowHeight - 300; + jQuery('.scroll-container').each(function (i) { + jQuery(this).height(height); + }); + }, + prepare_content: function ($content) { // hide syntax example $content.find('div.example:visible').hide(); @@ -642,4 +671,8 @@ function hasFlash(version){ return ver >= version; } +jQuery(document).ready(function() { + dw_mediamanager.update_resizable(1); +}); + jQuery(dw_mediamanager.init); -- cgit v1.2.3 From 94dc9486bc718e9f79950a096023dfa13fa9d1ff Mon Sep 17 00:00:00 2001 From: Chris Date: Sun, 10 Jul 2011 23:46:45 -0700 Subject: Fix If-Statement --- lib/scripts/media.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lib/scripts/media.js') diff --git a/lib/scripts/media.js b/lib/scripts/media.js index f7e78c747..695fbd807 100644 --- a/lib/scripts/media.js +++ b/lib/scripts/media.js @@ -484,7 +484,7 @@ var dw_mediamanager = { var allowed = bind(dw_mediamanager.allowedOpt, opt); // Current value - if (dw_mediamanager[opt] !== false && allowed(dw_mediamanager[opt]) { + if (dw_mediamanager[opt] !== false && allowed(dw_mediamanager[opt])) { return dw_mediamanager[opt]; } -- cgit v1.2.3 From a1dee2b998bc3dc8436bb076435d405ec412e054 Mon Sep 17 00:00:00 2001 From: Adrian Lang Date: Mon, 11 Jul 2011 22:17:27 +0200 Subject: Fix some bugs and glitches in (mediamanager) tree * Fix selector in subtree loading callback * Remove HTML inconsistencies between AJAX and plain PHP lists * Unify icon and CSS class switching in dw_tree and dw_mediamanager --- lib/scripts/media.js | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) (limited to 'lib/scripts/media.js') diff --git a/lib/scripts/media.js b/lib/scripts/media.js index 695fbd807..b9dacfa29 100644 --- a/lib/scripts/media.js +++ b/lib/scripts/media.js @@ -43,7 +43,7 @@ var dw_mediamanager = { $tree.dw_tree({toggle_selector: 'img', load_data: function (show_sublist, $clicky) { // get the enclosed link (is always the first one) - var $link = $clicky.siblings('a').first(); + var $link = $clicky.parent().find('div.li a.idx_dir'); jQuery.post( DOKU_BASE + 'lib/exe/ajax.php', @@ -51,13 +51,12 @@ var dw_mediamanager = { show_sublist, 'html' ); - - $clicky.attr('src', DOKU_BASE + 'lib/images/minus.gif'); }, - close: function ($clicky) { + toggle_display: function ($clicky, opening) { $clicky.attr('src', - DOKU_BASE + 'lib/images/plus.gif'); + DOKU_BASE + 'lib/images/' + + (opening ? 'minus' : 'plus') + '.gif'); }}); $tree.delegate('a', 'click', dw_mediamanager.list); }, -- cgit v1.2.3 From dd9ba38e965cfc3c06fbb80fed65556dbfbfda1c Mon Sep 17 00:00:00 2001 From: Kate Arzamastseva Date: Thu, 14 Jul 2011 11:36:48 +0300 Subject: mediamanager tabs, upload form fix --- lib/scripts/media.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'lib/scripts/media.js') diff --git a/lib/scripts/media.js b/lib/scripts/media.js index af5346cbe..de3d03dfe 100644 --- a/lib/scripts/media.js +++ b/lib/scripts/media.js @@ -64,7 +64,8 @@ var dw_mediamanager = { jQuery('#mediamanager__layout_list').delegate('#mediamanager__tabs_files a', 'click', dw_mediamanager.list) .delegate('#mediamanager__tabs_list a', 'click', dw_mediamanager.list_view) .delegate('#mediamanager__file_list a', 'click', dw_mediamanager.details) - .delegate('#dw__mediasearch', 'submit', dw_mediamanager.list); + .delegate('#dw__mediasearch', 'submit', dw_mediamanager.list) + .delegate('#upload__file', 'change', dw_mediamanager.suggest); jQuery('#mediamanager__layout_detail').delegate('#mediamanager__tabs_details a', 'click', dw_mediamanager.details) .delegate('#mediamanager__btn_update', 'submit', dw_mediamanager.list) @@ -216,6 +217,9 @@ var dw_mediamanager = { $file = jQuery(this); $name = jQuery('#upload__name'); + + if ($name.val() != '') return; + if(!$file.length || !$name.length) { return; } -- cgit v1.2.3 From 23786fd7ff0ff9c41ba627bc43ba6a45d3b779cc Mon Sep 17 00:00:00 2001 From: Kate Arzamastseva Date: Thu, 14 Jul 2011 23:37:38 +0300 Subject: mediamanager icons --- lib/scripts/media.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'lib/scripts/media.js') diff --git a/lib/scripts/media.js b/lib/scripts/media.js index de3d03dfe..62cc1e7bb 100644 --- a/lib/scripts/media.js +++ b/lib/scripts/media.js @@ -329,7 +329,11 @@ var dw_mediamanager = { if ($link[0].id == 'mediamanager__btn_restore' && !confirm(LANG['restore_confirm'])) return false; $content = jQuery('#mediamanager__layout_detail'); - jQuery('.scroll-container', $content).html('...'); + if (jQuery('.scroll-container', $content).length) { + jQuery('.scroll-container', $content).html('...'); + } else { + jQuery($content).html('...'); + } params = ''; -- cgit v1.2.3 From e136d6cc09a2c32050ecc37d7b0deebd0979c15d Mon Sep 17 00:00:00 2001 From: Kate Arzamastseva Date: Sat, 16 Jul 2011 23:48:48 +0300 Subject: mediamanager image diff --- lib/scripts/media.js | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'lib/scripts/media.js') diff --git a/lib/scripts/media.js b/lib/scripts/media.js index 777eb4825..8500166dc 100644 --- a/lib/scripts/media.js +++ b/lib/scripts/media.js @@ -369,6 +369,9 @@ var dw_mediamanager = { dw_mediamanager.prepare_content($content); dw_mediamanager.updatehide(); dw_mediamanager.update_resizable(0); + dw_mediamanager.opacity_slider(); + dw_mediamanager.portions_slider(); + }, 'html' ); @@ -398,6 +401,30 @@ var dw_mediamanager = { }); }, + opacity_slider: function () { + var $slider = jQuery( "#mediamanager__opacity_slider" ); + $slider.slider(); + $slider.slider("option", "min", 0); + $slider.slider("option", "max", 0.999); + $slider.slider("option", "step", 0.001); + $slider.slider("option", "value", 0.5); + $slider.bind("slide", function(event, ui) { + jQuery('#mediamanager__diff_opacity_image2').css({ opacity: $slider.slider("option", "value")}); + }); + }, + + portions_slider: function () { + var $slider = jQuery( "#mediamanager__portions_slider" ); + $slider.slider(); + $slider.slider("option", "min", 0); + $slider.slider("option", "max", 100); + $slider.slider("option", "step", 1); + $slider.slider("option", "value", 50); + $slider.bind("slide", function(event, ui) { + jQuery('#mediamanager__diff_portions_image2').css({ width: $slider.slider("option", "value")+'%'}); + }); + }, + prepare_content: function ($content) { // hide syntax example $content.find('div.example:visible').hide(); @@ -680,6 +707,8 @@ function hasFlash(version){ jQuery(document).ready(function() { dw_mediamanager.update_resizable(1); + dw_mediamanager.opacity_slider(); + dw_mediamanager.portions_slider(); }); jQuery(dw_mediamanager.init); -- cgit v1.2.3 From fa8e5c7713944541c907aea2b81c6a44382a15f0 Mon Sep 17 00:00:00 2001 From: Kate Arzamastseva Date: Sun, 17 Jul 2011 18:42:43 +0300 Subject: mediamanager html, css reworking --- lib/scripts/media.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'lib/scripts/media.js') diff --git a/lib/scripts/media.js b/lib/scripts/media.js index 8500166dc..c5e6afc9b 100644 --- a/lib/scripts/media.js +++ b/lib/scripts/media.js @@ -302,10 +302,12 @@ var dw_mediamanager = { event.preventDefault(); $content = jQuery('#mediamanager__file_list'); - if ($link.hasClass('mediamanager-link-thumbnails')) { + + if ($link[0].id == 'mediamanager__link_thumbs') { $content.removeClass('mediamanager-list'); $content.addClass('mediamanager-thumbs'); - } else if ($link.hasClass('mediamanager-link-list')) { + + } else if ($link[0].id == 'mediamanager__link_list') { $content.removeClass('mediamanager-thumbs'); $content.addClass('mediamanager-list'); } -- cgit v1.2.3 From 80291f9e4256d8bd01f0b0a0589aab2ea402ab64 Mon Sep 17 00:00:00 2001 From: Kate Arzamastseva Date: Mon, 18 Jul 2011 16:51:47 +0300 Subject: mediamanager resize --- lib/scripts/media.js | 40 ++++++++++++++++++++++++++-------------- 1 file changed, 26 insertions(+), 14 deletions(-) (limited to 'lib/scripts/media.js') diff --git a/lib/scripts/media.js b/lib/scripts/media.js index c5e6afc9b..00a4821d0 100644 --- a/lib/scripts/media.js +++ b/lib/scripts/media.js @@ -380,27 +380,38 @@ var dw_mediamanager = { }, update_resizable: function (count_width) { - jQuery(".layout").resizable({ handles: 'e' }); - jQuery(".layout").bind("resize", function(event, ui) { - var w = 0; - jQuery(".layout").each(function() { - w += jQuery(this).width(); - }); - jQuery('#id-mediamanager-layout').width(w+30); - }); + $resizable = jQuery("#mediamanager__layout .layout-resizable"); + + $resizable.resizable({ handles: 'e' , + resize: function(event, ui){ + var w = 0; + $resizable.each(function() { + w += jQuery(this).width(); + }); + wSum = w + parseFloat(jQuery('#mediamanager__layout_detail').css("min-width")); - var w = 0; - jQuery(".layout").each(function() { - if (count_width) jQuery(this).width(jQuery(this).width()); - w += jQuery(this).width(); + // max width of resizable column + var maxWidth = 0.95 * jQuery('#mediamanager__layout').width() - wSum + jQuery(this).width() - 30; + $resizable.resizable( "option", "maxWidth", maxWidth ); + + // percentage width of the first two columns + var wLeft = ( 100*(w+30) / jQuery('#mediamanager__layout').width() ); + + // width of the third column + var wRight = 95-wLeft; + wRight += "%"; + jQuery('#mediamanager__layout_detail').width(wRight); + } }); - jQuery('#id-mediamanager-layout').width(w+30); var windowHeight = jQuery(window).height(); var height = windowHeight - 300; - jQuery('.scroll-container').each(function (i) { + jQuery('#mediamanager__layout .scroll-container').each(function (i) { jQuery(this).height(height); }); + $resizable.each(function() { + jQuery(this).height(height+100); + }); }, opacity_slider: function () { @@ -711,6 +722,7 @@ jQuery(document).ready(function() { dw_mediamanager.update_resizable(1); dw_mediamanager.opacity_slider(); dw_mediamanager.portions_slider(); + jQuery(window).resize(dw_mediamanager.update_resizable); }); jQuery(dw_mediamanager.init); -- cgit v1.2.3 From 67c8cda19c0bf26a746d5c5cf9c82ee7ae5f23ca Mon Sep 17 00:00:00 2001 From: Kate Arzamastseva Date: Tue, 19 Jul 2011 18:36:15 +0300 Subject: mediamanager revisions form --- lib/scripts/media.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lib/scripts/media.js') diff --git a/lib/scripts/media.js b/lib/scripts/media.js index 00a4821d0..a6f6c25d4 100644 --- a/lib/scripts/media.js +++ b/lib/scripts/media.js @@ -373,7 +373,7 @@ var dw_mediamanager = { dw_mediamanager.update_resizable(0); dw_mediamanager.opacity_slider(); dw_mediamanager.portions_slider(); - + addInitEvent(revisionsForm); }, 'html' ); -- cgit v1.2.3 From abc306f45f2ace038967bf7c51abd6ea53f56170 Mon Sep 17 00:00:00 2001 From: Kate Arzamastseva Date: Mon, 25 Jul 2011 16:23:24 +0300 Subject: mediamanager sort button --- lib/scripts/media.js | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) (limited to 'lib/scripts/media.js') diff --git a/lib/scripts/media.js b/lib/scripts/media.js index a6f6c25d4..44928417f 100644 --- a/lib/scripts/media.js +++ b/lib/scripts/media.js @@ -60,18 +60,33 @@ var dw_mediamanager = { }}); $tree.delegate('a', 'click', dw_mediamanager.list); + jQuery('#mediamanager__form_sort').find('input[type=submit]').hide(); + + // changing opened tab in the file list panel jQuery('#mediamanager__layout_list').delegate('#mediamanager__tabs_files a', 'click', dw_mediamanager.list) + // changing type of the file list view .delegate('#mediamanager__tabs_list a', 'click', dw_mediamanager.list_view) + // loading file details .delegate('#mediamanager__file_list a', 'click', dw_mediamanager.details) + // search form .delegate('#dw__mediasearch', 'submit', dw_mediamanager.list) - .delegate('#upload__file', 'change', dw_mediamanager.suggest); + // "upload as" field autofill + .delegate('#upload__file', 'change', dw_mediamanager.suggest) + // sort type selection + .delegate('#mediamanager__form_sort select', 'change', dw_mediamanager.list); + // changing opened tab in the file details panel jQuery('#mediamanager__layout_detail').delegate('#mediamanager__tabs_details a', 'click', dw_mediamanager.details) + // "update new version" button .delegate('#mediamanager__btn_update', 'submit', dw_mediamanager.list) + // revisions form .delegate('#page__revisions', 'submit', dw_mediamanager.details) .delegate('#page__revisions a', 'click', dw_mediamanager.details) + // meta edit form .delegate('#mediamanager__save_meta', 'submit', dw_mediamanager.details) + // delete button .delegate('#mediamanager__btn_delete', 'submit', dw_mediamanager.details) + // "restore this version" button .delegate('#mediamanager__btn_restore', 'submit', dw_mediamanager.details); }, @@ -270,6 +285,8 @@ var dw_mediamanager = { params = $link[0].search.substr(1)+'&call=medialist'; } else if ($link[0].action) { params = dw_mediamanager.form_params($link)+'&call=medialist'; + } else if ($link.parents('form')) { + params = dw_mediamanager.form_params($link.parents('form'))+'&call=medialist'; } // fetch the subtree -- cgit v1.2.3 From 4ee1558545059fa73700709a9ef4c0ab22ce8f92 Mon Sep 17 00:00:00 2001 From: Kate Arzamastseva Date: Tue, 26 Jul 2011 11:55:38 +0300 Subject: image diffs fixes --- lib/scripts/media.js | 72 ++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 67 insertions(+), 5 deletions(-) (limited to 'lib/scripts/media.js') diff --git a/lib/scripts/media.js b/lib/scripts/media.js index 44928417f..42035a595 100644 --- a/lib/scripts/media.js +++ b/lib/scripts/media.js @@ -61,6 +61,7 @@ var dw_mediamanager = { $tree.delegate('a', 'click', dw_mediamanager.list); jQuery('#mediamanager__form_sort').find('input[type=submit]').hide(); + dw_mediamanager.image_diff(); // changing opened tab in the file list panel jQuery('#mediamanager__layout_list').delegate('#mediamanager__tabs_files a', 'click', dw_mediamanager.list) @@ -357,8 +358,10 @@ var dw_mediamanager = { if ($link[0].search) { params = $link[0].search.substr(1)+'&call=mediadetails'; - } else { + } else if ($link[0].action) { params = dw_mediamanager.form_params($link)+'&call=mediadetails'; + } else if ($link.parents('form')) { + params = dw_mediamanager.form_params($link.parents('form'))+'&call=mediadetails'; } dw_mediamanager.update_content($content, params); @@ -385,17 +388,24 @@ var dw_mediamanager = { }); $content.html(data); + dw_mediamanager.prepare_content($content); dw_mediamanager.updatehide(); + dw_mediamanager.update_resizable(0); - dw_mediamanager.opacity_slider(); - dw_mediamanager.portions_slider(); addInitEvent(revisionsForm); + jQuery('#mediamanager__form_sort').find('input[type=submit]').hide(); + dw_mediamanager.image_diff(); }, 'html' ); }, + /** + * Updates mediamanager layout + * + * @author Kate Arzamastseva + */ update_resizable: function (count_width) { $resizable = jQuery("#mediamanager__layout .layout-resizable"); @@ -431,6 +441,55 @@ var dw_mediamanager = { }); }, + /** + * Prints 'select' for image difference representation type + * + * @author Kate Arzamastseva + */ + image_diff: function () { + if (jQuery('#mediamanager__difftype').length) return; + + $form = jQuery('#mediamanager__form_diffview'); + $label = jQuery(document.createElement('label')); + $label.append(''+LANG.media_diff+''); + $select = jQuery(document.createElement('select')) + .attr('id', 'mediamanager__difftype') + .attr('name', 'difftype') + .change(dw_mediamanager.change_diff_type); + $select.append(new Option(LANG.media_diff_both, "both")); + $select.append(new Option(LANG.media_diff_opacity, "opacity")); + $select.append(new Option(LANG.media_diff_portions, "portions")); + $label.append($select); + $form.append($label); + }, + + /** + * Handles selection of image difference representation type + * + * @author Kate Arzamastseva + */ + change_diff_type: function () { + $select = jQuery('#mediamanager__difftype'); + $content = jQuery('#mediamanager__diff'); + + params = dw_mediamanager.form_params($select.parents('form'))+'&call=mediadiff'; + jQuery.post( + DOKU_BASE + 'lib/exe/ajax.php', + params, + function (data) { + $content.html(data); + dw_mediamanager.opacity_slider(); + dw_mediamanager.portions_slider(); + }, + 'html' + ); + }, + + /** + * Sets options for opacity diff slider + * + * @author Kate Arzamastseva + */ opacity_slider: function () { var $slider = jQuery( "#mediamanager__opacity_slider" ); $slider.slider(); @@ -443,6 +502,11 @@ var dw_mediamanager = { }); }, + /** + * Sets options for red line diff slider + * + * @author Kate Arzamastseva + */ portions_slider: function () { var $slider = jQuery( "#mediamanager__portions_slider" ); $slider.slider(); @@ -737,8 +801,6 @@ function hasFlash(version){ jQuery(document).ready(function() { dw_mediamanager.update_resizable(1); - dw_mediamanager.opacity_slider(); - dw_mediamanager.portions_slider(); jQuery(window).resize(dw_mediamanager.update_resizable); }); -- cgit v1.2.3 From 676706d3b056c9ad075c09b3bed23a4c2b248f52 Mon Sep 17 00:00:00 2001 From: Kate Arzamastseva Date: Tue, 26 Jul 2011 11:59:39 +0300 Subject: mediamanager files view state persisted --- lib/scripts/media.js | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) (limited to 'lib/scripts/media.js') diff --git a/lib/scripts/media.js b/lib/scripts/media.js index 42035a595..ebd9da2f8 100644 --- a/lib/scripts/media.js +++ b/lib/scripts/media.js @@ -22,6 +22,9 @@ var dw_mediamanager = { size: false, forbidden_opts: {}, + // File list view type + view: false, + init: function () { var $content, $tree; $content = jQuery('#media__content'); @@ -60,6 +63,7 @@ var dw_mediamanager = { }}); $tree.delegate('a', 'click', dw_mediamanager.list); + dw_mediamanager.set_filelist_view(dw_mediamanager.view, false); jQuery('#mediamanager__form_sort').find('input[type=submit]').hide(); dw_mediamanager.image_diff(); @@ -322,12 +326,28 @@ var dw_mediamanager = { $content = jQuery('#mediamanager__file_list'); if ($link[0].id == 'mediamanager__link_thumbs') { + dw_mediamanager.set_filelist_view('thumbs', true); + + } else if ($link[0].id == 'mediamanager__link_list') { + dw_mediamanager.set_filelist_view('list', true); + } + }, + + set_filelist_view: function (type, cookies) { + var $content = jQuery('#mediamanager__file_list'); + if (!type) type = DokuCookie.getValue('view'); + + if (type == 'thumbs') { $content.removeClass('mediamanager-list'); $content.addClass('mediamanager-thumbs'); + if (cookies) DokuCookie.setValue('view', 'thumbs'); + dw_mediamanager.view = 'thumbs'; - } else if ($link[0].id == 'mediamanager__link_list') { + } else if (type == 'list') { $content.removeClass('mediamanager-thumbs'); $content.addClass('mediamanager-list'); + if (cookies) DokuCookie.setValue('view', 'list'); + dw_mediamanager.view = 'list'; } }, @@ -395,6 +415,7 @@ var dw_mediamanager = { dw_mediamanager.update_resizable(0); addInitEvent(revisionsForm); jQuery('#mediamanager__form_sort').find('input[type=submit]').hide(); + dw_mediamanager.set_filelist_view(dw_mediamanager.view, false); dw_mediamanager.image_diff(); }, 'html' -- cgit v1.2.3 From d971ea8b02ccca4dd879a5db966670e0f3b4f102 Mon Sep 17 00:00:00 2001 From: Kate Arzamastseva Date: Sat, 30 Jul 2011 20:50:49 +0300 Subject: issue #39 sort by date desc, saved in cookie --- lib/scripts/media.js | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'lib/scripts/media.js') diff --git a/lib/scripts/media.js b/lib/scripts/media.js index ebd9da2f8..ff87299cf 100644 --- a/lib/scripts/media.js +++ b/lib/scripts/media.js @@ -292,6 +292,10 @@ var dw_mediamanager = { params = dw_mediamanager.form_params($link)+'&call=medialist'; } else if ($link.parents('form')) { params = dw_mediamanager.form_params($link.parents('form'))+'&call=medialist'; + + if ($link.parents('form')[0].id == 'mediamanager__form_sort') { + DokuCookie.setValue('sort', $link[0].value); + } } // fetch the subtree @@ -305,6 +309,7 @@ var dw_mediamanager = { * @author Kate Arzamastseva */ form_params: function ($form) { + if (!$form.length) return; var elements = $form.serialize(); var action = ''; var i = $form[0].action.indexOf('?'); @@ -471,6 +476,8 @@ var dw_mediamanager = { if (jQuery('#mediamanager__difftype').length) return; $form = jQuery('#mediamanager__form_diffview'); + if (!$form.length) return; + $label = jQuery(document.createElement('label')); $label.append(''+LANG.media_diff+''); $select = jQuery(document.createElement('select')) -- cgit v1.2.3 From 9bd9c4373f31bb381fd80564decd8671d942fdc8 Mon Sep 17 00:00:00 2001 From: Kate Arzamastseva Date: Sun, 31 Jul 2011 22:47:47 +0300 Subject: issue #32 calculation of the panels width is redone when browser window is resized --- lib/scripts/media.js | 59 ++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 55 insertions(+), 4 deletions(-) (limited to 'lib/scripts/media.js') diff --git a/lib/scripts/media.js b/lib/scripts/media.js index ff87299cf..17006e289 100644 --- a/lib/scripts/media.js +++ b/lib/scripts/media.js @@ -25,6 +25,8 @@ var dw_mediamanager = { // File list view type view: false, + layout_width: 0, + init: function () { var $content, $tree; $content = jQuery('#media__content'); @@ -417,7 +419,7 @@ var dw_mediamanager = { dw_mediamanager.prepare_content($content); dw_mediamanager.updatehide(); - dw_mediamanager.update_resizable(0); + dw_mediamanager.update_resizable(); addInitEvent(revisionsForm); jQuery('#mediamanager__form_sort').find('input[type=submit]').hide(); dw_mediamanager.set_filelist_view(dw_mediamanager.view, false); @@ -427,12 +429,53 @@ var dw_mediamanager = { ); }, + window_resize: function () { + if (jQuery('#mediamanager__layout').width() == dw_mediamanager.layout_width) { + return; + } + + dw_mediamanager.layout_width = jQuery('#mediamanager__layout').width(); + + $r = jQuery("#mediamanager__layout .layout-resizable, #mediamanager__layout .layout"); + + var w = 0, wSum = 0, mCount = 0, mArray = []; + $r.each(function() { + w = jQuery(this).width(); + if (w == parseFloat(jQuery(this).css("min-width"))) { + wSum += w; + } else { + mArray[mCount] = jQuery(this); + mCount++; + } + }); + + if (mCount > 0) { + var width = (0.95 * jQuery('#mediamanager__layout').width() - wSum - 30); + wSum = 0; + for(var i = 0; i < mArray.length; i++) { + wSum += mArray[i].width(); + } + for(var i = 0; i < mArray.length; i++) { + w = mArray[i].width(); + w = 100*w / wSum; + mArray[i].width(width*w/100); + } + } + + $r.each(function() { + w = jQuery(this).width(); + w = (100 * w / jQuery('#mediamanager__layout').width()); + w += "%"; + jQuery(this).width(w); + }); + }, + /** * Updates mediamanager layout * * @author Kate Arzamastseva */ - update_resizable: function (count_width) { + update_resizable: function () { $resizable = jQuery("#mediamanager__layout .layout-resizable"); $resizable.resizable({ handles: 'e' , @@ -454,6 +497,13 @@ var dw_mediamanager = { var wRight = 95-wLeft; wRight += "%"; jQuery('#mediamanager__layout_detail').width(wRight); + + $resizable.each(function() { + w = jQuery(this).width(); + w = (100 * w / jQuery('#mediamanager__layout').width()); + w += "%"; + jQuery(this).width(w); + }); } }); @@ -828,8 +878,9 @@ function hasFlash(version){ } jQuery(document).ready(function() { - dw_mediamanager.update_resizable(1); - jQuery(window).resize(dw_mediamanager.update_resizable); + dw_mediamanager.update_resizable(); + dw_mediamanager.layout_width = jQuery("#mediamanager__layout").width(); + jQuery(window).resize(dw_mediamanager.window_resize); }); jQuery(dw_mediamanager.init); -- cgit v1.2.3 From 11cfbdbd017ee1dedbcebd99a694421c1b815f65 Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Mon, 1 Aug 2011 00:01:21 +0200 Subject: fixed media insertion FS#2298 --- lib/scripts/media.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lib/scripts/media.js') diff --git a/lib/scripts/media.js b/lib/scripts/media.js index b9dacfa29..1402ad4bf 100644 --- a/lib/scripts/media.js +++ b/lib/scripts/media.js @@ -135,7 +135,7 @@ var dw_mediamanager = { * @author Dominik Eckelmann * @author Pierre Spring */ - insert: function () { + insert: function (id) { var opts, alignleft, alignright, edid, s; // set syntax options -- cgit v1.2.3 From 69143ff27bdf2a979818367613e604f8ee4aef88 Mon Sep 17 00:00:00 2001 From: Kate Arzamastseva Date: Mon, 1 Aug 2011 01:21:21 +0300 Subject: issue #40 image resized in all diff views --- lib/scripts/media.js | 46 +++++++++++++++++++++++++++++++++++++--------- 1 file changed, 37 insertions(+), 9 deletions(-) (limited to 'lib/scripts/media.js') diff --git a/lib/scripts/media.js b/lib/scripts/media.js index 17006e289..e8c492f5f 100644 --- a/lib/scripts/media.js +++ b/lib/scripts/media.js @@ -436,6 +436,10 @@ var dw_mediamanager = { dw_mediamanager.layout_width = jQuery('#mediamanager__layout').width(); + // rebuild sliders if exists + dw_mediamanager.opacity_slider(); + dw_mediamanager.portions_slider(); + $r = jQuery("#mediamanager__layout .layout-resizable, #mediamanager__layout .layout"); var w = 0, wSum = 0, mCount = 0, mArray = []; @@ -586,15 +590,39 @@ var dw_mediamanager = { * @author Kate Arzamastseva */ portions_slider: function () { - var $slider = jQuery( "#mediamanager__portions_slider" ); - $slider.slider(); - $slider.slider("option", "min", 0); - $slider.slider("option", "max", 100); - $slider.slider("option", "step", 1); - $slider.slider("option", "value", 50); - $slider.bind("slide", function(event, ui) { - jQuery('#mediamanager__diff_portions_image2').css({ width: $slider.slider("option", "value")+'%'}); - }); + var $image2 = jQuery('#mediamanager__diff_portions_image2 img'); + if ($image2) { + $image2 = jQuery($image2[0]); + + $image2.parent().css({ + width: '100%' + }); + + $image2.css({ + width: '100%', + height: 'auto' + }); + + $image2.css({ + width: $image2.width() + 'px', + height: $image2.height() + 'px' + }); + + var $div = jQuery("#mediamanager__diff_layout"); + if ($image2.width() < $div.width()) { + $div.width($image2.width()); + } + + var $slider = jQuery("#mediamanager__portions_slider"); + $slider.slider(); + $slider.slider("option", "min", 0); + $slider.slider("option", "max", 100); + $slider.slider("option", "step", 1); + $slider.slider("option", "value", 50); + $slider.bind("slide", function(event, ui) { + jQuery('#mediamanager__diff_portions_image2').css({ width: $slider.slider("option", "value")+'%'}); + }); + } }, prepare_content: function ($content) { -- cgit v1.2.3 From a1a02ef6d327f2de7ffc7db57a7907465761b407 Mon Sep 17 00:00:00 2001 From: Kate Arzamastseva Date: Wed, 3 Aug 2011 19:10:16 +0300 Subject: issue #43 diff slider --- lib/scripts/media.js | 49 +++++++++++++++++++++---------------------------- 1 file changed, 21 insertions(+), 28 deletions(-) (limited to 'lib/scripts/media.js') diff --git a/lib/scripts/media.js b/lib/scripts/media.js index e8c492f5f..f0c4c679c 100644 --- a/lib/scripts/media.js +++ b/lib/scripts/media.js @@ -560,8 +560,8 @@ var dw_mediamanager = { params, function (data) { $content.html(data); - dw_mediamanager.opacity_slider(); dw_mediamanager.portions_slider(); + dw_mediamanager.opacity_slider(); }, 'html' ); @@ -574,6 +574,7 @@ var dw_mediamanager = { */ opacity_slider: function () { var $slider = jQuery( "#mediamanager__opacity_slider" ); + if (!$slider.length) return; $slider.slider(); $slider.slider("option", "min", 0); $slider.slider("option", "max", 0.999); @@ -590,39 +591,31 @@ var dw_mediamanager = { * @author Kate Arzamastseva */ portions_slider: function () { + var $image1 = jQuery('#mediamanager__diff_portions_image1 img'); var $image2 = jQuery('#mediamanager__diff_portions_image2 img'); - if ($image2) { - $image2 = jQuery($image2[0]); + if (!$image1.length || !$image2.length) return; - $image2.parent().css({ - width: '100%' - }); + var $div = jQuery("#mediamanager__diff_layout"); + if (!$div.length) return; - $image2.css({ - width: '100%', - height: 'auto' - }); + if ($image1.width() < $div.width()) { + $div.width($image1.width()); + } - $image2.css({ - width: $image2.width() + 'px', - height: $image2.height() + 'px' - }); + $image2.parent().width('50%'); + $image2.width($image1.width()); - var $div = jQuery("#mediamanager__diff_layout"); - if ($image2.width() < $div.width()) { - $div.width($image2.width()); - } + var $slider = jQuery("#mediamanager__portions_slider"); + if (!$slider.length) return; + $slider.slider(); + $slider.slider("option", "min", 0); + $slider.slider("option", "max", 100); + $slider.slider("option", "step", 1); + $slider.slider("option", "value", 50); + $slider.bind("slide", function(event, ui) { + jQuery('#mediamanager__diff_portions_image2').css({ width: $slider.slider("option", "value")+'%'}); + }); - var $slider = jQuery("#mediamanager__portions_slider"); - $slider.slider(); - $slider.slider("option", "min", 0); - $slider.slider("option", "max", 100); - $slider.slider("option", "step", 1); - $slider.slider("option", "value", 50); - $slider.bind("slide", function(event, ui) { - jQuery('#mediamanager__diff_portions_image2').css({ width: $slider.slider("option", "value")+'%'}); - }); - } }, prepare_content: function ($content) { -- cgit v1.2.3 From 09063cc66339d6e5daa12af4896a2457c03cfaf3 Mon Sep 17 00:00:00 2001 From: Kate Arzamastseva Date: Thu, 4 Aug 2011 20:32:16 +0300 Subject: issue #44 multi file uploader --- lib/scripts/media.js | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) (limited to 'lib/scripts/media.js') diff --git a/lib/scripts/media.js b/lib/scripts/media.js index f0c4c679c..6c5c2611e 100644 --- a/lib/scripts/media.js +++ b/lib/scripts/media.js @@ -68,6 +68,8 @@ var dw_mediamanager = { dw_mediamanager.set_filelist_view(dw_mediamanager.view, false); jQuery('#mediamanager__form_sort').find('input[type=submit]').hide(); dw_mediamanager.image_diff(); + dw_mediamanager.init_ajax_uploader(); + createUploader(); // changing opened tab in the file list panel jQuery('#mediamanager__layout_list').delegate('#mediamanager__tabs_files a', 'click', dw_mediamanager.list) @@ -424,6 +426,8 @@ var dw_mediamanager = { jQuery('#mediamanager__form_sort').find('input[type=submit]').hide(); dw_mediamanager.set_filelist_view(dw_mediamanager.view, false); dw_mediamanager.image_diff(); + dw_mediamanager.init_ajax_uploader(); + createUploader(); }, 'html' ); @@ -615,7 +619,25 @@ var dw_mediamanager = { $slider.bind("slide", function(event, ui) { jQuery('#mediamanager__diff_portions_image2').css({ width: $slider.slider("option", "value")+'%'}); }); + }, + + init_ajax_uploader: function () { + var $form = jQuery('#dw__upload'); + if(!$form.length) return; + jQuery(document.createElement('img')) + .attr('src', DOKU_BASE+'lib/images/multiupload.png') + .attr('title', LANG.mu_btn) + .attr('alt', LANG.mu_btn) + .css('cursor', 'pointer') + .click( + function () { + //$form.html('
            '); + $form.hide(); + jQuery('#mediamanager__uploader').show(); + } + ) + .appendTo($form); }, prepare_content: function ($content) { @@ -898,6 +920,29 @@ function hasFlash(version){ return ver >= version; } +function getUrlVars(str) { + var vars = [], hash; + var hashes = str.split('&'); + for(var i = 0; i < hashes.length; i++) { + hash = hashes[i].split('='); + vars[hash[0]] = hash[1]; + } + return vars; +} + +function createUploader(){ + if (!jQuery('#dw__upload').length || !jQuery('#mediamanager__uploader').length) return; + + var params = dw_mediamanager.form_params(jQuery('#dw__upload'))+'&call=mediaupload'; + params = getUrlVars(params); + + var uploader = new qq.FileUploader({ + element: document.getElementById('mediamanager__uploader'), + action: DOKU_BASE + 'lib/exe/ajax.php', + params: params + }); +} + jQuery(document).ready(function() { dw_mediamanager.update_resizable(); dw_mediamanager.layout_width = jQuery("#mediamanager__layout").width(); -- cgit v1.2.3 From b4b31bac3276c93277a8b70368aee135b7fdde09 Mon Sep 17 00:00:00 2001 From: Kate Arzamastseva Date: Sat, 6 Aug 2011 16:21:06 +0300 Subject: issue #43 images align --- lib/scripts/media.js | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) (limited to 'lib/scripts/media.js') diff --git a/lib/scripts/media.js b/lib/scripts/media.js index 6c5c2611e..26eb43fc3 100644 --- a/lib/scripts/media.js +++ b/lib/scripts/media.js @@ -439,11 +439,6 @@ var dw_mediamanager = { } dw_mediamanager.layout_width = jQuery('#mediamanager__layout').width(); - - // rebuild sliders if exists - dw_mediamanager.opacity_slider(); - dw_mediamanager.portions_slider(); - $r = jQuery("#mediamanager__layout .layout-resizable, #mediamanager__layout .layout"); var w = 0, wSum = 0, mCount = 0, mArray = []; @@ -476,6 +471,9 @@ var dw_mediamanager = { w += "%"; jQuery(this).width(w); }); + + dw_mediamanager.opacity_slider(); + dw_mediamanager.portions_slider(); }, /** @@ -512,6 +510,9 @@ var dw_mediamanager = { w += "%"; jQuery(this).width(w); }); + + dw_mediamanager.opacity_slider(); + dw_mediamanager.portions_slider(); } }); @@ -579,6 +580,11 @@ var dw_mediamanager = { opacity_slider: function () { var $slider = jQuery( "#mediamanager__opacity_slider" ); if (!$slider.length) return; + + var $image = jQuery('#mediamanager__diff_opacity_image1 img'); + if (!$image.length) return; + $slider.width($image.width()-20); + $slider.slider(); $slider.slider("option", "min", 0); $slider.slider("option", "max", 0.999); @@ -602,18 +608,26 @@ var dw_mediamanager = { var $div = jQuery("#mediamanager__diff_layout"); if (!$div.length) return; + $div.width('100%'); + $image2.parent().width('97%'); + $image1.width('100%'); + $image2.width('100%'); + if ($image1.width() < $div.width()) { $div.width($image1.width()); } $image2.parent().width('50%'); $image2.width($image1.width()); + $image1.width($image1.width()); var $slider = jQuery("#mediamanager__portions_slider"); if (!$slider.length) return; + $slider.width($image1.width()-20); + $slider.slider(); $slider.slider("option", "min", 0); - $slider.slider("option", "max", 100); + $slider.slider("option", "max", 97); $slider.slider("option", "step", 1); $slider.slider("option", "value", 50); $slider.bind("slide", function(event, ui) { -- cgit v1.2.3 From 8d7448594cb00e995bed9b6e6db6e7f9280da24d Mon Sep 17 00:00:00 2001 From: Kate Arzamastseva Date: Sun, 7 Aug 2011 13:54:36 +0300 Subject: issue #44 fileuploader specific changes made in inheriting class --- lib/scripts/media.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lib/scripts/media.js') diff --git a/lib/scripts/media.js b/lib/scripts/media.js index 26eb43fc3..5ba3b38be 100644 --- a/lib/scripts/media.js +++ b/lib/scripts/media.js @@ -950,7 +950,7 @@ function createUploader(){ var params = dw_mediamanager.form_params(jQuery('#dw__upload'))+'&call=mediaupload'; params = getUrlVars(params); - var uploader = new qq.FileUploader({ + var uploader = new qq.FileUploaderExtended({ element: document.getElementById('mediamanager__uploader'), action: DOKU_BASE + 'lib/exe/ajax.php', params: params -- cgit v1.2.3 From 92c93223d0fce2c5de1f4d3d134be56d1d9f3bc0 Mon Sep 17 00:00:00 2001 From: Kate Arzamastseva Date: Sun, 7 Aug 2011 15:12:12 +0300 Subject: issue #44 new fileuploader completely replaces the old one --- lib/scripts/media.js | 59 +++++++++++++++++----------------------------------- 1 file changed, 19 insertions(+), 40 deletions(-) (limited to 'lib/scripts/media.js') diff --git a/lib/scripts/media.js b/lib/scripts/media.js index 5ba3b38be..b4f1c0322 100644 --- a/lib/scripts/media.js +++ b/lib/scripts/media.js @@ -69,7 +69,6 @@ var dw_mediamanager = { jQuery('#mediamanager__form_sort').find('input[type=submit]').hide(); dw_mediamanager.image_diff(); dw_mediamanager.init_ajax_uploader(); - createUploader(); // changing opened tab in the file list panel jQuery('#mediamanager__layout_list').delegate('#mediamanager__tabs_files a', 'click', dw_mediamanager.list) @@ -427,7 +426,6 @@ var dw_mediamanager = { dw_mediamanager.set_filelist_view(dw_mediamanager.view, false); dw_mediamanager.image_diff(); dw_mediamanager.init_ajax_uploader(); - createUploader(); }, 'html' ); @@ -635,23 +633,27 @@ var dw_mediamanager = { }); }, + params_toarray: function (str) { + var vars = [], hash; + var hashes = str.split('&'); + for(var i = 0; i < hashes.length; i++) { + hash = hashes[i].split('='); + vars[hash[0]] = hash[1]; + } + return vars; + }, + init_ajax_uploader: function () { - var $form = jQuery('#dw__upload'); - if(!$form.length) return; + if (!jQuery('#mediamanager__uploader').length) return; - jQuery(document.createElement('img')) - .attr('src', DOKU_BASE+'lib/images/multiupload.png') - .attr('title', LANG.mu_btn) - .attr('alt', LANG.mu_btn) - .css('cursor', 'pointer') - .click( - function () { - //$form.html('
            '); - $form.hide(); - jQuery('#mediamanager__uploader').show(); - } - ) - .appendTo($form); + var params = dw_mediamanager.form_params(jQuery('#dw__upload'))+'&call=mediaupload'; + params = dw_mediamanager.params_toarray(params); + + var uploader = new qq.FileUploaderExtended({ + element: document.getElementById('mediamanager__uploader'), + action: DOKU_BASE + 'lib/exe/ajax.php', + params: params + }); }, prepare_content: function ($content) { @@ -934,29 +936,6 @@ function hasFlash(version){ return ver >= version; } -function getUrlVars(str) { - var vars = [], hash; - var hashes = str.split('&'); - for(var i = 0; i < hashes.length; i++) { - hash = hashes[i].split('='); - vars[hash[0]] = hash[1]; - } - return vars; -} - -function createUploader(){ - if (!jQuery('#dw__upload').length || !jQuery('#mediamanager__uploader').length) return; - - var params = dw_mediamanager.form_params(jQuery('#dw__upload'))+'&call=mediaupload'; - params = getUrlVars(params); - - var uploader = new qq.FileUploaderExtended({ - element: document.getElementById('mediamanager__uploader'), - action: DOKU_BASE + 'lib/exe/ajax.php', - params: params - }); -} - jQuery(document).ready(function() { dw_mediamanager.update_resizable(); dw_mediamanager.layout_width = jQuery("#mediamanager__layout").width(); -- cgit v1.2.3 From f517998ad64483b6394211a971db2d3a660518c6 Mon Sep 17 00:00:00 2001 From: Kate Arzamastseva Date: Sun, 7 Aug 2011 22:14:10 +0300 Subject: issue #45 browser testing --- lib/scripts/media.js | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'lib/scripts/media.js') diff --git a/lib/scripts/media.js b/lib/scripts/media.js index b4f1c0322..4fc4155b2 100644 --- a/lib/scripts/media.js +++ b/lib/scripts/media.js @@ -546,6 +546,12 @@ var dw_mediamanager = { $select.append(new Option(LANG.media_diff_portions, "portions")); $label.append($select); $form.append($label); + + // for IE + var select = document.getElementById('mediamanager__difftype'); + select.options[0].text = LANG.media_diff_both; + select.options[1].text = LANG.media_diff_opacity; + select.options[2].text = LANG.media_diff_portions; }, /** -- cgit v1.2.3 From 873cd06e1bda38e0decce16d6ec7d3bdaece612e Mon Sep 17 00:00:00 2001 From: Kate Arzamastseva Date: Mon, 15 Aug 2011 14:22:19 +0300 Subject: issue #50 styling the new uploader --- lib/scripts/media.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'lib/scripts/media.js') diff --git a/lib/scripts/media.js b/lib/scripts/media.js index 4fc4155b2..c1ff1f451 100644 --- a/lib/scripts/media.js +++ b/lib/scripts/media.js @@ -81,7 +81,9 @@ var dw_mediamanager = { // "upload as" field autofill .delegate('#upload__file', 'change', dw_mediamanager.suggest) // sort type selection - .delegate('#mediamanager__form_sort select', 'change', dw_mediamanager.list); + .delegate('#mediamanager__form_sort select', 'change', dw_mediamanager.list) + // uploaded images + .delegate('.qq-upload-file a', 'click', dw_mediamanager.details); // changing opened tab in the file details panel jQuery('#mediamanager__layout_detail').delegate('#mediamanager__tabs_details a', 'click', dw_mediamanager.details) @@ -651,6 +653,7 @@ var dw_mediamanager = { init_ajax_uploader: function () { if (!jQuery('#mediamanager__uploader').length) return; + if (jQuery('.qq-upload-list').length) return; var params = dw_mediamanager.form_params(jQuery('#dw__upload'))+'&call=mediaupload'; params = dw_mediamanager.params_toarray(params); -- cgit v1.2.3 From 7e6b49bbbfd05509233484c1cddc2352e9246b94 Mon Sep 17 00:00:00 2001 From: Kate Arzamastseva Date: Mon, 15 Aug 2011 19:30:48 +0300 Subject: media revisions form less/more recent buttons fix --- lib/scripts/media.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'lib/scripts/media.js') diff --git a/lib/scripts/media.js b/lib/scripts/media.js index c1ff1f451..d5fdf1fdb 100644 --- a/lib/scripts/media.js +++ b/lib/scripts/media.js @@ -97,7 +97,9 @@ var dw_mediamanager = { // delete button .delegate('#mediamanager__btn_delete', 'submit', dw_mediamanager.details) // "restore this version" button - .delegate('#mediamanager__btn_restore', 'submit', dw_mediamanager.details); + .delegate('#mediamanager__btn_restore', 'submit', dw_mediamanager.details) + // less/more recent buttons in media revisions form + .delegate('.btn_newer, .btn_older', 'submit', dw_mediamanager.details); }, -- cgit v1.2.3 From 96a7ba82ad21ad7bd7cd5f677d85042da7733605 Mon Sep 17 00:00:00 2001 From: Kate Arzamastseva Date: Fri, 19 Aug 2011 18:48:19 +0300 Subject: issue #56 ajax deleting images --- lib/scripts/media.js | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) (limited to 'lib/scripts/media.js') diff --git a/lib/scripts/media.js b/lib/scripts/media.js index d5fdf1fdb..36dadf232 100644 --- a/lib/scripts/media.js +++ b/lib/scripts/media.js @@ -396,21 +396,11 @@ var dw_mediamanager = { params = dw_mediamanager.form_params($link.parents('form'))+'&call=mediadetails'; } - dw_mediamanager.update_content($content, params); - update_list = ($link[0].id == 'mediamanager__btn_delete' || $link[0].id == 'mediamanager__btn_restore'); - if (update_list) { - var $link1, $content1, params1; - $link1 = jQuery('a.files'); - params1 = $link1[0].search.substr(1)+'&call=medialist'; - $content1 = jQuery('#mediamanager__layout_list'); - jQuery('.scroll-container', $content1).html('...'); - - dw_mediamanager.update_content($content1, params1); - } + dw_mediamanager.update_content($content, params, update_list); }, - update_content: function ($content, params) { + update_content: function ($content, params, update_list) { jQuery.post( DOKU_BASE + 'lib/exe/ajax.php', params, @@ -430,6 +420,16 @@ var dw_mediamanager = { dw_mediamanager.set_filelist_view(dw_mediamanager.view, false); dw_mediamanager.image_diff(); dw_mediamanager.init_ajax_uploader(); + + if (update_list) { + var $link1, $content1, params1; + $link1 = jQuery('a.files'); + params1 = $link1[0].search.substr(1)+'&call=medialist'; + $content1 = jQuery('#mediamanager__layout_list'); + jQuery('.scroll-container', $content1).html('...'); + + dw_mediamanager.update_content($content1, params1); + } }, 'html' ); -- cgit v1.2.3 From c472bad9de398442c30ec1410d07284f0db8b821 Mon Sep 17 00:00:00 2001 From: Kate Arzamastseva Date: Fri, 19 Aug 2011 20:56:43 +0300 Subject: issue #44 new uploader in the media popup --- lib/scripts/media.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'lib/scripts/media.js') diff --git a/lib/scripts/media.js b/lib/scripts/media.js index 36dadf232..997321a65 100644 --- a/lib/scripts/media.js +++ b/lib/scripts/media.js @@ -43,7 +43,8 @@ var dw_mediamanager = { .delegate('a.select', 'click', dw_mediamanager.select) // Attach deletion confirmation dialog to the delete buttons .delegate('#media__content a.btn_media_delete', 'click', - dw_mediamanager.confirmattach); + dw_mediamanager.confirmattach) + .delegate('#mediamanager__done_form', 'submit', dw_mediamanager.list); $tree.dw_tree({toggle_selector: 'img', load_data: function (show_sublist, $clicky) { @@ -670,7 +671,6 @@ var dw_mediamanager = { prepare_content: function ($content) { // hide syntax example $content.find('div.example:visible').hide(); - dw_mediamanager.initFlashUpload(); }, /** -- cgit v1.2.3 From 9de3b5710719658ef75740c0bd930423cc7c209c Mon Sep 17 00:00:00 2001 From: Kate Arzamastseva Date: Sun, 21 Aug 2011 02:16:39 +0300 Subject: issue #44 uploader fixes, #45 browser testing --- lib/scripts/media.js | 37 ++++++++++++++++++++----------------- 1 file changed, 20 insertions(+), 17 deletions(-) (limited to 'lib/scripts/media.js') diff --git a/lib/scripts/media.js b/lib/scripts/media.js index 997321a65..f345c3786 100644 --- a/lib/scripts/media.js +++ b/lib/scripts/media.js @@ -274,8 +274,6 @@ var dw_mediamanager = { if (document.getElementById('media__content')) { //popup $content = jQuery('#media__content'); - $content.html('...'); - } else { //fullscreen media manager $content = jQuery('#mediamanager__layout_list'); @@ -288,8 +286,6 @@ var dw_mediamanager = { }); $link.addClass('selected'); } - - jQuery('.scroll-container', $content).html('...'); } params = ''; @@ -309,6 +305,14 @@ var dw_mediamanager = { // fetch the subtree dw_mediamanager.update_content($content, params); + if (document.getElementById('media__content')) { + //popup + $content = jQuery('#media__content'); + $content.html('...'); + } else { + //fullscreen media manager + jQuery('.scroll-container', $content).html('...'); + } }, /** @@ -381,12 +385,6 @@ var dw_mediamanager = { if ($link[0].id == 'mediamanager__btn_restore' && !confirm(LANG['restore_confirm'])) return false; $content = jQuery('#mediamanager__layout_detail'); - if (jQuery('.scroll-container', $content).length) { - jQuery('.scroll-container', $content).html('...'); - } else { - jQuery($content).html('...'); - } - params = ''; if ($link[0].search) { @@ -399,6 +397,12 @@ var dw_mediamanager = { update_list = ($link[0].id == 'mediamanager__btn_delete' || $link[0].id == 'mediamanager__btn_restore'); dw_mediamanager.update_content($content, params, update_list); + + if (jQuery('.scroll-container', $content).length) { + jQuery('.scroll-container', $content).html('...'); + } else { + jQuery($content).html('...'); + } }, update_content: function ($content, params, update_list) { @@ -427,9 +431,8 @@ var dw_mediamanager = { $link1 = jQuery('a.files'); params1 = $link1[0].search.substr(1)+'&call=medialist'; $content1 = jQuery('#mediamanager__layout_list'); - jQuery('.scroll-container', $content1).html('...'); - dw_mediamanager.update_content($content1, params1); + jQuery('.scroll-container', $content1).html('...'); } }, 'html' @@ -552,11 +555,11 @@ var dw_mediamanager = { $label.append($select); $form.append($label); - // for IE - var select = document.getElementById('mediamanager__difftype'); - select.options[0].text = LANG.media_diff_both; - select.options[1].text = LANG.media_diff_opacity; - select.options[2].text = LANG.media_diff_portions; + // for IE + var select = document.getElementById('mediamanager__difftype'); + select.options[0].text = LANG.media_diff_both; + select.options[1].text = LANG.media_diff_opacity; + select.options[2].text = LANG.media_diff_portions; }, /** -- cgit v1.2.3 From 87deddfa454164964c2fb71481cf480b3d2d92df Mon Sep 17 00:00:00 2001 From: Kate Arzamastseva Date: Sat, 27 Aug 2011 00:59:47 +0300 Subject: issue #54 listview switch/sorting on search --- lib/scripts/media.js | 2 ++ 1 file changed, 2 insertions(+) (limited to 'lib/scripts/media.js') diff --git a/lib/scripts/media.js b/lib/scripts/media.js index 7103727c5..e48c9c1b0 100644 --- a/lib/scripts/media.js +++ b/lib/scripts/media.js @@ -299,6 +299,8 @@ var dw_mediamanager = { if ($link.parents('form')[0].id == 'mediamanager__form_sort') { DokuCookie.setValue('sort', $link[0].value); + params += '&q=' + jQuery('#mediamanager__sort_textfield').val(); + params += '&mediado=searchlist'; } } -- cgit v1.2.3 From 69b29ddf0b274b494a4ded27e96cf57c8370876b Mon Sep 17 00:00:00 2001 From: Kate Arzamastseva Date: Fri, 2 Sep 2011 20:31:05 +0300 Subject: mediamanager window resize fix --- lib/scripts/media.js | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'lib/scripts/media.js') diff --git a/lib/scripts/media.js b/lib/scripts/media.js index e48c9c1b0..f4064efd5 100644 --- a/lib/scripts/media.js +++ b/lib/scripts/media.js @@ -26,6 +26,7 @@ var dw_mediamanager = { view: false, layout_width: 0, + layout_height: 0, init: function () { var $content, $tree; @@ -480,6 +481,18 @@ var dw_mediamanager = { jQuery(this).width(w); }); + var windowHeight = jQuery(window).height(); + var height = windowHeight - 300; + if (layout_height < height) { + layout_height = height; + jQuery('#mediamanager__layout .scroll-container').each(function (i) { + jQuery(this).height(height); + }); + $resizable.each(function() { + jQuery(this).height(height+100); + }); + } + dw_mediamanager.opacity_slider(); dw_mediamanager.portions_slider(); }, @@ -526,6 +539,7 @@ var dw_mediamanager = { var windowHeight = jQuery(window).height(); var height = windowHeight - 300; + layout_height = height; jQuery('#mediamanager__layout .scroll-container').each(function (i) { jQuery(this).height(height); }); -- cgit v1.2.3 From 5e7a292691951a0fa0a18f06c8b9bcfb509a032d Mon Sep 17 00:00:00 2001 From: Adrian Lang Date: Fri, 9 Sep 2011 22:26:16 +0200 Subject: Various JavaScript improvements, JSLint, jQuery --- lib/scripts/media.js | 3 --- 1 file changed, 3 deletions(-) (limited to 'lib/scripts/media.js') diff --git a/lib/scripts/media.js b/lib/scripts/media.js index f4064efd5..e3a000e99 100644 --- a/lib/scripts/media.js +++ b/lib/scripts/media.js @@ -1,6 +1,3 @@ -/*jslint white: true, onevar: true, undef: true, nomen: true, eqeqeq: true, plusplus: true, bitwise: true, regexp: false, strict: true, newcap: true, immed: true, sloppy: true, browser: true */ -/*global jQuery, DOKU_BASE, LANG, bind, DokuCookie, opener, confirm*/ - /** * JavaScript functionality for the media management popup * -- cgit v1.2.3 From e27ba3dbc85c38d85a613338eea842f1fe9d56a0 Mon Sep 17 00:00:00 2001 From: Anika Henke Date: Fri, 16 Sep 2011 20:58:39 +0100 Subject: improved media options css (and removed lots of dead css code) --- lib/scripts/media.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'lib/scripts/media.js') diff --git a/lib/scripts/media.js b/lib/scripts/media.js index e3a000e99..798d42a30 100644 --- a/lib/scripts/media.js +++ b/lib/scripts/media.js @@ -157,8 +157,7 @@ var dw_mediamanager = { }); // insert button - $insp = jQuery(document.createElement('p')) - .addClass('btnlbl'); + $insp = jQuery(document.createElement('p')); dw_mediamanager.$popup.append($insp); $insbtn = jQuery(document.createElement('input')) -- cgit v1.2.3 From eaac63bb6c71253d7c2d4817c7ffc40cf4f13aeb Mon Sep 17 00:00:00 2001 From: Adrian Lang Date: Sun, 18 Sep 2011 20:31:08 +0200 Subject: Fix mediamanager JS (diffs not yet working) --- lib/scripts/media.js | 179 +++++++++++++++++++++++++-------------------------- 1 file changed, 86 insertions(+), 93 deletions(-) (limited to 'lib/scripts/media.js') diff --git a/lib/scripts/media.js b/lib/scripts/media.js index 798d42a30..54309640c 100644 --- a/lib/scripts/media.js +++ b/lib/scripts/media.js @@ -65,27 +65,26 @@ var dw_mediamanager = { $tree.delegate('a', 'click', dw_mediamanager.list); dw_mediamanager.set_filelist_view(dw_mediamanager.view, false); - jQuery('#mediamanager__form_sort').find('input[type=submit]').hide(); + + dw_mediamanager.init_options(); + dw_mediamanager.image_diff(); dw_mediamanager.init_ajax_uploader(); + console.log(jQuery('#mediamanager__page div.filelist').find('div.panelContent a')); // changing opened tab in the file list panel - jQuery('#mediamanager__layout_list').delegate('#mediamanager__tabs_files a', 'click', dw_mediamanager.list) - // changing type of the file list view - .delegate('#mediamanager__tabs_list a', 'click', dw_mediamanager.list_view) + jQuery('#mediamanager__page div.filelist').delegate('ul.tabs a', 'click', dw_mediamanager.list) // loading file details - .delegate('#mediamanager__file_list a', 'click', dw_mediamanager.details) + .delegate('div.panelContent a', 'click', dw_mediamanager.details) // search form .delegate('#dw__mediasearch', 'submit', dw_mediamanager.list) // "upload as" field autofill .delegate('#upload__file', 'change', dw_mediamanager.suggest) - // sort type selection - .delegate('#mediamanager__form_sort select', 'change', dw_mediamanager.list) // uploaded images .delegate('.qq-upload-file a', 'click', dw_mediamanager.details); // changing opened tab in the file details panel - jQuery('#mediamanager__layout_detail').delegate('#mediamanager__tabs_details a', 'click', dw_mediamanager.details) + jQuery('#mediamanager__page div.file').delegate('#mediamanager__tabs_details a', 'click', dw_mediamanager.details) // "update new version" button .delegate('#mediamanager__btn_update', 'submit', dw_mediamanager.list) // revisions form @@ -102,6 +101,37 @@ var dw_mediamanager = { }, + init_options: function () { + var $options = jQuery('div.filelist div.panelHeader form.options'), + $listType, $sortBy; + if ($options.length === 0) { + return; + } + + $listType = $options.find('li.listType'); + $sortBy = $options.find('li.sortBy'); + + // Remove the submit button + $options.find('input[type=submit]').parent().hide(); + + // Prepare HTML for jQuery UI buttonset + $listType.add($sortBy).find('label').each(function () { + var $this = jQuery(this); + $this.children('input').appendTo($this.parent()); + $this.find('span span').addClass('a11y'); + }); + + // Init buttonset + $listType.add($sortBy).buttonset(); + + // Change handlers + $listType.children('input').change(function (event) { + event.preventDefault(); + dw_mediamanager.set_filelist_view(this.value, true); + }); + $sortBy.children('input').change(dw_mediamanager.list); + }, + /** * build the popup window * @@ -273,14 +303,12 @@ var dw_mediamanager = { $content = jQuery('#media__content'); } else { //fullscreen media manager - $content = jQuery('#mediamanager__layout_list'); + $content = jQuery('div.filelist'); if ($link.hasClass('idx_dir')) { //changing namespace - jQuery('#mediamanager__layout_detail').empty(); - jQuery('#media__tree .selected').each(function(){ - jQuery(this).removeClass('selected'); - }); + jQuery('div.file').empty(); + jQuery('div.namespaces .selected').removeClass('selected'); $link.addClass('selected'); } } @@ -294,9 +322,9 @@ var dw_mediamanager = { } else if ($link.parents('form')) { params = dw_mediamanager.form_params($link.parents('form'))+'&call=medialist'; - if ($link.parents('form')[0].id == 'mediamanager__form_sort') { - DokuCookie.setValue('sort', $link[0].value); - params += '&q=' + jQuery('#mediamanager__sort_textfield').val(); + if ($link.parents('form').hasClass('options')) { + DokuCookie.setValue('sort', $link.val()); + params += '&q=' + $link.val(); params += '&mediado=searchlist'; } } @@ -310,7 +338,7 @@ var dw_mediamanager = { $content.html('...'); } else { //fullscreen media manager - jQuery('.scroll-container', $content).html('...'); + jQuery('div.panelContent', $content).html('...'); } }, @@ -328,43 +356,17 @@ var dw_mediamanager = { return elements+'&'+action; }, - /** - * Changes view of media files list - * - * @author Kate Arzamastseva - */ - list_view: function (event) { - var $link, $content; - $link = jQuery(this); - - event.preventDefault(); - - $content = jQuery('#mediamanager__file_list'); - - if ($link[0].id == 'mediamanager__link_thumbs') { - dw_mediamanager.set_filelist_view('thumbs', true); - - } else if ($link[0].id == 'mediamanager__link_list') { - dw_mediamanager.set_filelist_view('list', true); - } - }, - set_filelist_view: function (type, cookies) { - var $content = jQuery('#mediamanager__file_list'); - if (!type) type = DokuCookie.getValue('view'); + type = type || DokuCookie.getValue('view'); - if (type == 'thumbs') { - $content.removeClass('mediamanager-list'); - $content.addClass('mediamanager-thumbs'); - if (cookies) DokuCookie.setValue('view', 'thumbs'); - dw_mediamanager.view = 'thumbs'; + jQuery('div.filelist div.panelContent ul') + .toggleClass('rows', type === 'rows') + .toggleClass('thumbs', type === 'thumbs'); - } else if (type == 'list') { - $content.removeClass('mediamanager-thumbs'); - $content.addClass('mediamanager-list'); - if (cookies) DokuCookie.setValue('view', 'list'); - dw_mediamanager.view = 'list'; + if (cookies) { + DokuCookie.setValue('view', type); } + dw_mediamanager.view = type; }, /** @@ -375,7 +377,6 @@ var dw_mediamanager = { details: function (event) { var $link, $content, params, update_list; $link = jQuery(this); - event.preventDefault(); jQuery('div.success, div.info, div.error, div.notify').remove(); @@ -383,7 +384,7 @@ var dw_mediamanager = { if ($link[0].id == 'mediamanager__btn_delete' && !confirm(LANG['del_confirm'])) return false; if ($link[0].id == 'mediamanager__btn_restore' && !confirm(LANG['restore_confirm'])) return false; - $content = jQuery('#mediamanager__layout_detail'); + $content = jQuery('div.file'); params = ''; if ($link[0].search) { @@ -397,8 +398,8 @@ var dw_mediamanager = { update_list = ($link[0].id == 'mediamanager__btn_delete' || $link[0].id == 'mediamanager__btn_restore'); dw_mediamanager.update_content($content, params, update_list); - if (jQuery('.scroll-container', $content).length) { - jQuery('.scroll-container', $content).html('...'); + if (jQuery('div.panelContent', $content).length) { + jQuery('div.panelContent', $content).html('...'); } else { jQuery($content).html('...'); } @@ -420,18 +421,18 @@ var dw_mediamanager = { dw_mediamanager.update_resizable(); dw_behaviour.revisionBoxHandler(); - jQuery('#mediamanager__form_sort').find('input[type=submit]').hide(); dw_mediamanager.set_filelist_view(dw_mediamanager.view, false); dw_mediamanager.image_diff(); dw_mediamanager.init_ajax_uploader(); + dw_mediamanager.init_options(); if (update_list) { var $link1, $content1, params1; $link1 = jQuery('a.files'); params1 = $link1[0].search.substr(1)+'&call=medialist'; - $content1 = jQuery('#mediamanager__layout_list'); + $content1 = jQuery('div.filelist'); dw_mediamanager.update_content($content1, params1); - jQuery('.scroll-container', $content1).html('...'); + jQuery('div.panelContent', $content1).html('...'); } }, 'html' @@ -439,12 +440,12 @@ var dw_mediamanager = { }, window_resize: function () { - if (jQuery('#mediamanager__layout').width() == dw_mediamanager.layout_width) { + if (jQuery('#mediamanager__page').width() == dw_mediamanager.layout_width) { return; } - dw_mediamanager.layout_width = jQuery('#mediamanager__layout').width(); - $r = jQuery("#mediamanager__layout .layout-resizable, #mediamanager__layout .layout"); + dw_mediamanager.layout_width = jQuery('#mediamanager__page').width(); + $r = jQuery("#mediamanager__page div.panel"); var w = 0, wSum = 0, mCount = 0, mArray = []; $r.each(function() { @@ -458,7 +459,7 @@ var dw_mediamanager = { }); if (mCount > 0) { - var width = (0.95 * jQuery('#mediamanager__layout').width() - wSum - 30); + var width = (0.95 * jQuery('#mediamanager__page').width() - wSum - 30); wSum = 0; for(var i = 0; i < mArray.length; i++) { wSum += mArray[i].width(); @@ -472,7 +473,7 @@ var dw_mediamanager = { $r.each(function() { w = jQuery(this).width(); - w = (100 * w / jQuery('#mediamanager__layout').width()); + w = (100 * w / jQuery('#mediamanager__page').width()); w += "%"; jQuery(this).width(w); }); @@ -481,12 +482,8 @@ var dw_mediamanager = { var height = windowHeight - 300; if (layout_height < height) { layout_height = height; - jQuery('#mediamanager__layout .scroll-container').each(function (i) { - jQuery(this).height(height); - }); - $resizable.each(function() { - jQuery(this).height(height+100); - }); + jQuery('#mediamanager__page div.panelContent').height(height); + $resizable.height(height+100); } dw_mediamanager.opacity_slider(); @@ -499,7 +496,7 @@ var dw_mediamanager = { * @author Kate Arzamastseva */ update_resizable: function () { - $resizable = jQuery("#mediamanager__layout .layout-resizable"); + $resizable = jQuery("#mediamanager__page .layout-resizable"); $resizable.resizable({ handles: 'e' , resize: function(event, ui){ @@ -507,23 +504,23 @@ var dw_mediamanager = { $resizable.each(function() { w += jQuery(this).width(); }); - wSum = w + parseFloat(jQuery('#mediamanager__layout_detail').css("min-width")); + wSum = w + parseFloat(jQuery('#mediamanager__page div.file').css("min-width")); // max width of resizable column - var maxWidth = 0.95 * jQuery('#mediamanager__layout').width() - wSum + jQuery(this).width() - 30; + var maxWidth = 0.95 * jQuery('#mediamanager__page').width() - wSum + jQuery(this).width() - 30; $resizable.resizable( "option", "maxWidth", maxWidth ); // percentage width of the first two columns - var wLeft = ( 100*(w+30) / jQuery('#mediamanager__layout').width() ); + var wLeft = ( 100*(w+30) / jQuery('#mediamanager__page').width() ); // width of the third column var wRight = 95-wLeft; wRight += "%"; - jQuery('#mediamanager__layout_detail').width(wRight); + jQuery('#mediamanager__page div.file').width(wRight); $resizable.each(function() { w = jQuery(this).width(); - w = (100 * w / jQuery('#mediamanager__layout').width()); + w = (100 * w / jQuery('#mediamanager__page').width()); w += "%"; jQuery(this).width(w); }); @@ -536,12 +533,8 @@ var dw_mediamanager = { var windowHeight = jQuery(window).height(); var height = windowHeight - 300; layout_height = height; - jQuery('#mediamanager__layout .scroll-container').each(function (i) { - jQuery(this).height(height); - }); - $resizable.each(function() { - jQuery(this).height(height+100); - }); + jQuery('#mediamanager__page .panelContent').height(height); + $resizable.height(height+100); }, /** @@ -567,11 +560,11 @@ var dw_mediamanager = { $label.append($select); $form.append($label); - // for IE - var select = document.getElementById('mediamanager__difftype'); - select.options[0].text = LANG.media_diff_both; - select.options[1].text = LANG.media_diff_opacity; - select.options[2].text = LANG.media_diff_portions; + // for IE + var select = document.getElementById('mediamanager__difftype'); + select.options[0].text = LANG.media_diff_both; + select.options[1].text = LANG.media_diff_opacity; + select.options[2].text = LANG.media_diff_portions; }, /** @@ -602,10 +595,10 @@ var dw_mediamanager = { * @author Kate Arzamastseva */ opacity_slider: function () { - var $slider = jQuery( "#mediamanager__opacity_slider" ); + var $slider = jQuery( "#mediamanager__diff div.diff_slider" ); if (!$slider.length) return; - var $image = jQuery('#mediamanager__diff_opacity_image1 img'); + var $image = jQuery('#mediamanager__diff div.diff_opacity div.image1 img'); if (!$image.length) return; $slider.width($image.width()-20); @@ -615,7 +608,7 @@ var dw_mediamanager = { $slider.slider("option", "step", 0.001); $slider.slider("option", "value", 0.5); $slider.bind("slide", function(event, ui) { - jQuery('#mediamanager__diff_opacity_image2').css({ opacity: $slider.slider("option", "value")}); + jQuery('#mediamanager__diff div.diff_opacity div.image2 img').css({ opacity: $slider.slider("option", "value")}); }); }, @@ -625,8 +618,8 @@ var dw_mediamanager = { * @author Kate Arzamastseva */ portions_slider: function () { - var $image1 = jQuery('#mediamanager__diff_portions_image1 img'); - var $image2 = jQuery('#mediamanager__diff_portions_image2 img'); + var $image1 = jQuery('#mediamanager__diff div.diff_portions div.image1 img'); + var $image2 = jQuery('#mediamanager__diff div.diff_portions div.image2 img'); if (!$image1.length || !$image2.length) return; var $div = jQuery("#mediamanager__diff_layout"); @@ -645,7 +638,7 @@ var dw_mediamanager = { $image2.width($image1.width()); $image1.width($image1.width()); - var $slider = jQuery("#mediamanager__portions_slider"); + var $slider = jQuery("#mediamanager__diff div.diff_slider"); if (!$slider.length) return; $slider.width($image1.width()-20); @@ -655,7 +648,7 @@ var dw_mediamanager = { $slider.slider("option", "step", 1); $slider.slider("option", "value", 50); $slider.bind("slide", function(event, ui) { - jQuery('#mediamanager__diff_portions_image2').css({ width: $slider.slider("option", "value")+'%'}); + jQuery('#mediamanager__diff div.diff_portions div.image2').css({ width: $slider.slider("option", "value")+'%'}); }); }, @@ -964,7 +957,7 @@ function hasFlash(version){ jQuery(document).ready(function() { dw_mediamanager.update_resizable(); - dw_mediamanager.layout_width = jQuery("#mediamanager__layout").width(); + dw_mediamanager.layout_width = jQuery("#mediamanager__page").width(); jQuery(window).resize(dw_mediamanager.window_resize); }); -- cgit v1.2.3 From ca19d8eda91766ccb74c075e1baebdec19c0be95 Mon Sep 17 00:00:00 2001 From: Adrian Lang Date: Mon, 19 Sep 2011 21:02:33 +0200 Subject: Fix resizing and file panel AJAX-based tabs --- lib/scripts/media.js | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) (limited to 'lib/scripts/media.js') diff --git a/lib/scripts/media.js b/lib/scripts/media.js index 54309640c..5e254fe84 100644 --- a/lib/scripts/media.js +++ b/lib/scripts/media.js @@ -84,7 +84,7 @@ var dw_mediamanager = { .delegate('.qq-upload-file a', 'click', dw_mediamanager.details); // changing opened tab in the file details panel - jQuery('#mediamanager__page div.file').delegate('#mediamanager__tabs_details a', 'click', dw_mediamanager.details) + jQuery('#mediamanager__page div.file').delegate('ul.tabs a', 'click', dw_mediamanager.details) // "update new version" button .delegate('#mediamanager__btn_update', 'submit', dw_mediamanager.list) // revisions form @@ -410,9 +410,7 @@ var dw_mediamanager = { DOKU_BASE + 'lib/exe/ajax.php', params, function (data) { - jQuery('.ui-resizable').each(function(){ - jQuery(this).resizable('destroy'); - }); + dw_mediamanager.$resizables().resizable('destroy'); $content.html(data); @@ -483,32 +481,36 @@ var dw_mediamanager = { if (layout_height < height) { layout_height = height; jQuery('#mediamanager__page div.panelContent').height(height); - $resizable.height(height+100); + dw_mediamanager.$resizables().height(height+100); } dw_mediamanager.opacity_slider(); dw_mediamanager.portions_slider(); }, + $resizables: function () { + return jQuery('#mediamanager__page').find('div.namespaces, div.filelist'); + }, + /** * Updates mediamanager layout * * @author Kate Arzamastseva */ update_resizable: function () { - $resizable = jQuery("#mediamanager__page .layout-resizable"); + $resizables = dw_mediamanager.$resizables(); - $resizable.resizable({ handles: 'e' , + $resizables.resizable({ handles: 'e' , resize: function(event, ui){ var w = 0; - $resizable.each(function() { + $resizables.each(function() { w += jQuery(this).width(); }); wSum = w + parseFloat(jQuery('#mediamanager__page div.file').css("min-width")); // max width of resizable column var maxWidth = 0.95 * jQuery('#mediamanager__page').width() - wSum + jQuery(this).width() - 30; - $resizable.resizable( "option", "maxWidth", maxWidth ); + $resizables.resizable( "option", "maxWidth", maxWidth ); // percentage width of the first two columns var wLeft = ( 100*(w+30) / jQuery('#mediamanager__page').width() ); @@ -518,7 +520,7 @@ var dw_mediamanager = { wRight += "%"; jQuery('#mediamanager__page div.file').width(wRight); - $resizable.each(function() { + $resizables.each(function() { w = jQuery(this).width(); w = (100 * w / jQuery('#mediamanager__page').width()); w += "%"; @@ -534,7 +536,7 @@ var dw_mediamanager = { var height = windowHeight - 300; layout_height = height; jQuery('#mediamanager__page .panelContent').height(height); - $resizable.height(height+100); + $resizables.height(height+100); }, /** -- cgit v1.2.3 From f0aec085b4f30f98db19b1e59400356013f14c4e Mon Sep 17 00:00:00 2001 From: Adrian Lang Date: Tue, 13 Sep 2011 12:02:09 +0200 Subject: Only resize to fullscreen if screen is big enough --- lib/scripts/media.js | 41 +++++++++++++++++++++++++++-------------- 1 file changed, 27 insertions(+), 14 deletions(-) (limited to 'lib/scripts/media.js') diff --git a/lib/scripts/media.js b/lib/scripts/media.js index 5e254fe84..8200de730 100644 --- a/lib/scripts/media.js +++ b/lib/scripts/media.js @@ -23,7 +23,9 @@ var dw_mediamanager = { view: false, layout_width: 0, - layout_height: 0, + + // The minimum height of the full-screen mediamanager in px + minHeights: {thumbs: 200, rows: 100}, init: function () { var $content, $tree; @@ -71,7 +73,6 @@ var dw_mediamanager = { dw_mediamanager.image_diff(); dw_mediamanager.init_ajax_uploader(); - console.log(jQuery('#mediamanager__page div.filelist').find('div.panelContent a')); // changing opened tab in the file list panel jQuery('#mediamanager__page div.filelist').delegate('ul.tabs a', 'click', dw_mediamanager.list) // loading file details @@ -367,6 +368,8 @@ var dw_mediamanager = { DokuCookie.setValue('view', type); } dw_mediamanager.view = type; + + dw_mediamanager.resize(); }, /** @@ -476,13 +479,7 @@ var dw_mediamanager = { jQuery(this).width(w); }); - var windowHeight = jQuery(window).height(); - var height = windowHeight - 300; - if (layout_height < height) { - layout_height = height; - jQuery('#mediamanager__page div.panelContent').height(height); - dw_mediamanager.$resizables().height(height+100); - } + dw_mediamanager.resize(); dw_mediamanager.opacity_slider(); dw_mediamanager.portions_slider(); @@ -532,11 +529,27 @@ var dw_mediamanager = { } }); - var windowHeight = jQuery(window).height(); - var height = windowHeight - 300; - layout_height = height; - jQuery('#mediamanager__page .panelContent').height(height); - $resizables.height(height+100); + dw_mediamanager.resize(); + }, + + resize: function () { + var $contents = jQuery('#mediamanager__page div.panelContent'), + height = jQuery(window).height() - jQuery(document).height() + + Math.max.apply(null, jQuery.map($contents, function (v) { + return jQuery(v).height(); + })); + + // If the screen is too small, don’t try to resize + if (height < dw_mediamanager.minHeights[dw_mediamanager.view]) { + $contents.add(dw_mediamanager.$resizables()).height('auto'); + } else { + $contents.height(height); + dw_mediamanager.$resizables().each(function () { + var $this = jQuery(this); + $this.height(height + $this.find('div.panelContent').offset().top - + $this.offset().top); + }); + } }, /** -- cgit v1.2.3 From 554a8c9ffe7dc256ff10fdb49a144ca7dc510989 Mon Sep 17 00:00:00 2001 From: Adrian Lang Date: Sat, 24 Sep 2011 16:34:32 +0200 Subject: More mediamanager reworking --- lib/scripts/media.js | 164 +++++++++++++++++++++++++++------------------------ 1 file changed, 87 insertions(+), 77 deletions(-) (limited to 'lib/scripts/media.js') diff --git a/lib/scripts/media.js b/lib/scripts/media.js index 8200de730..b3768b9db 100644 --- a/lib/scripts/media.js +++ b/lib/scripts/media.js @@ -19,8 +19,8 @@ var dw_mediamanager = { size: false, forbidden_opts: {}, - // File list view type - view: false, + // File list options + view_opts: {list: false, sort: false}, layout_width: 0, @@ -66,7 +66,8 @@ var dw_mediamanager = { }}); $tree.delegate('a', 'click', dw_mediamanager.list); - dw_mediamanager.set_filelist_view(dw_mediamanager.view, false); + // Init view property + dw_mediamanager.set_fileview_list(); dw_mediamanager.init_options(); @@ -100,37 +101,43 @@ var dw_mediamanager = { // less/more recent buttons in media revisions form .delegate('.btn_newer, .btn_older', 'submit', dw_mediamanager.details); + dw_mediamanager.update_resizable(); + dw_mediamanager.layout_width = jQuery("#mediamanager__page").width(); + jQuery(window).resize(dw_mediamanager.window_resize); }, init_options: function () { var $options = jQuery('div.filelist div.panelHeader form.options'), - $listType, $sortBy; + $listType, $sortBy, $both; if ($options.length === 0) { return; } $listType = $options.find('li.listType'); $sortBy = $options.find('li.sortBy'); + $both = $listType.add($sortBy); // Remove the submit button $options.find('input[type=submit]').parent().hide(); // Prepare HTML for jQuery UI buttonset - $listType.add($sortBy).find('label').each(function () { + $both.find('label').each(function () { var $this = jQuery(this); $this.children('input').appendTo($this.parent()); $this.find('span span').addClass('a11y'); }); // Init buttonset - $listType.add($sortBy).buttonset(); + $both.buttonset(); // Change handlers $listType.children('input').change(function (event) { - event.preventDefault(); - dw_mediamanager.set_filelist_view(this.value, true); + dw_mediamanager.set_fileview_list(); + }); + $sortBy.children('input').change(function (event) { + dw_mediamanager.set_fileview_sort(); + dw_mediamanager.list.call(this, event); }); - $sortBy.children('input').change(dw_mediamanager.list); }, /** @@ -293,16 +300,19 @@ var dw_mediamanager = { */ list: function (event) { var $link, $content, params; - $link = jQuery(this); - event.preventDefault(); + if (event) { + event.preventDefault(); + } jQuery('div.success, div.info, div.error, div.notify').remove(); - if (document.getElementById('media__content')) { - //popup - $content = jQuery('#media__content'); - } else { + $link = jQuery(this); + + //popup + $content = jQuery('#media__content'); + + if ($content.length === 0) { //fullscreen media manager $content = jQuery('div.filelist'); @@ -314,33 +324,18 @@ var dw_mediamanager = { } } - params = ''; + params = 'call=medialist&'; if ($link[0].search) { - params = $link[0].search.substr(1)+'&call=medialist'; - } else if ($link[0].action) { - params = dw_mediamanager.form_params($link)+'&call=medialist'; - } else if ($link.parents('form')) { - params = dw_mediamanager.form_params($link.parents('form'))+'&call=medialist'; - - if ($link.parents('form').hasClass('options')) { - DokuCookie.setValue('sort', $link.val()); - params += '&q=' + $link.val(); - params += '&mediado=searchlist'; - } + params += $link[0].search.substr(1); + } else if ($link.is('form')) { + params += dw_mediamanager.form_params($link); + } else if ($link.closest('form').length > 0) { + params += dw_mediamanager.form_params($link.closest('form')); } // fetch the subtree dw_mediamanager.update_content($content, params); - - if (document.getElementById('media__content')) { - //popup - $content = jQuery('#media__content'); - $content.html('...'); - } else { - //fullscreen media manager - jQuery('div.panelContent', $content).html('...'); - } }, /** @@ -350,26 +345,42 @@ var dw_mediamanager = { */ form_params: function ($form) { if (!$form.length) return; - var elements = $form.serialize(); var action = ''; var i = $form[0].action.indexOf('?'); if (i >= 0) action = $form[0].action.substr(i+1); - return elements+'&'+action; + return action+'&'+$form.serialize(); }, - set_filelist_view: function (type, cookies) { - type = type || DokuCookie.getValue('view'); + set_fileview_list: function (new_type) { + dw_mediamanager.set_fileview_opt(['list', 'listType', function (new_type) { + jQuery('div.filelist div.panelContent ul') + .toggleClass('rows', new_type === 'rows') + .toggleClass('thumbs', new_type === 'thumbs'); + }], new_type); - jQuery('div.filelist div.panelContent ul') - .toggleClass('rows', type === 'rows') - .toggleClass('thumbs', type === 'thumbs'); + // FIXME: Move to onchange handler (opt[2])? + dw_mediamanager.resize(); + }, - if (cookies) { - DokuCookie.setValue('view', type); + set_fileview_sort: function (new_sort) { + dw_mediamanager.set_fileview_opt(['sort', 'sortBy', function (new_sort) { + // FIXME + }], new_sort); + }, + + set_fileview_opt: function (opt, new_val) { + if (typeof new_val === 'undefined') { + new_val = jQuery('form.options li.' + opt[1] + ' input') + .filter(':checked').val(); } - dw_mediamanager.view = type; - dw_mediamanager.resize(); + if (new_val !== dw_mediamanager.view_opts[opt[0]]) { + opt[2](new_val); + + DokuCookie.setValue(opt[0], new_val); + + dw_mediamanager.view_opts[opt[0]] = new_val; + } }, /** @@ -384,31 +395,33 @@ var dw_mediamanager = { jQuery('div.success, div.info, div.error, div.notify').remove(); - if ($link[0].id == 'mediamanager__btn_delete' && !confirm(LANG['del_confirm'])) return false; - if ($link[0].id == 'mediamanager__btn_restore' && !confirm(LANG['restore_confirm'])) return false; + if ($link[0].id == 'mediamanager__btn_delete' && !confirm(LANG.del_confirm)) { + return false; + } + if ($link[0].id == 'mediamanager__btn_restore' && !confirm(LANG.restore_confirm)) { + return false; + } $content = jQuery('div.file'); - params = ''; + params = 'call=mediadetails&'; if ($link[0].search) { - params = $link[0].search.substr(1)+'&call=mediadetails'; - } else if ($link[0].action) { - params = dw_mediamanager.form_params($link)+'&call=mediadetails'; - } else if ($link.parents('form')) { - params = dw_mediamanager.form_params($link.parents('form'))+'&call=mediadetails'; + params += $link[0].search.substr(1); + } else if ($link.is('form')) { + params += dw_mediamanager.form_params($link); + } else if ($link.closest('form').length > 0) { + params += dw_mediamanager.form_params($link.closest('form')); } - update_list = ($link[0].id == 'mediamanager__btn_delete' || $link[0].id == 'mediamanager__btn_restore'); - dw_mediamanager.update_content($content, params, update_list); + update_list = ($link[0].id == 'mediamanager__btn_delete' || + $link[0].id == 'mediamanager__btn_restore'); - if (jQuery('div.panelContent', $content).length) { - jQuery('div.panelContent', $content).html('...'); - } else { - jQuery($content).html('...'); - } + dw_mediamanager.update_content($content, params, update_list); }, update_content: function ($content, params, update_list) { + var $container; + jQuery.post( DOKU_BASE + 'lib/exe/ajax.php', params, @@ -422,22 +435,25 @@ var dw_mediamanager = { dw_mediamanager.update_resizable(); dw_behaviour.revisionBoxHandler(); - dw_mediamanager.set_filelist_view(dw_mediamanager.view, false); + + // Make sure that the list view style stays the same + dw_mediamanager.set_fileview_list(dw_mediamanager.view_opts.list); + dw_mediamanager.image_diff(); dw_mediamanager.init_ajax_uploader(); dw_mediamanager.init_options(); if (update_list) { - var $link1, $content1, params1; - $link1 = jQuery('a.files'); - params1 = $link1[0].search.substr(1)+'&call=medialist'; - $content1 = jQuery('div.filelist'); - dw_mediamanager.update_content($content1, params1); - jQuery('div.panelContent', $content1).html('...'); + dw_mediamanager.list.call(jQuery('a.files')[0]); } }, 'html' ); + $container = $content.find('div.panelContent'); + if ($container.length === 0) { + $container = $content; + } + $container.html('...'); }, window_resize: function () { @@ -540,7 +556,7 @@ var dw_mediamanager = { })); // If the screen is too small, don’t try to resize - if (height < dw_mediamanager.minHeights[dw_mediamanager.view]) { + if (height < dw_mediamanager.minHeights[dw_mediamanager.view_opts.list]) { $contents.add(dw_mediamanager.$resizables()).height('auto'); } else { $contents.height(height); @@ -591,7 +607,7 @@ var dw_mediamanager = { $select = jQuery('#mediamanager__difftype'); $content = jQuery('#mediamanager__diff'); - params = dw_mediamanager.form_params($select.parents('form'))+'&call=mediadiff'; + params = dw_mediamanager.form_params($select.closest('form'))+'&call=mediadiff'; jQuery.post( DOKU_BASE + 'lib/exe/ajax.php', params, @@ -970,10 +986,4 @@ function hasFlash(version){ return ver >= version; } -jQuery(document).ready(function() { - dw_mediamanager.update_resizable(); - dw_mediamanager.layout_width = jQuery("#mediamanager__page").width(); - jQuery(window).resize(dw_mediamanager.window_resize); -}); - jQuery(dw_mediamanager.init); -- cgit v1.2.3 From 7e3fa88e8ff41d364b6ce5c500c22d685716974b Mon Sep 17 00:00:00 2001 From: Adrian Lang Date: Sat, 24 Sep 2011 16:42:55 +0200 Subject: Fix swipe diff JS --- lib/scripts/media.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lib/scripts/media.js') diff --git a/lib/scripts/media.js b/lib/scripts/media.js index b3768b9db..8e4cb64a0 100644 --- a/lib/scripts/media.js +++ b/lib/scripts/media.js @@ -653,7 +653,7 @@ var dw_mediamanager = { var $image2 = jQuery('#mediamanager__diff div.diff_portions div.image2 img'); if (!$image1.length || !$image2.length) return; - var $div = jQuery("#mediamanager__diff_layout"); + var $div = jQuery("#mediamanager__diff"); if (!$div.length) return; $div.width('100%'); -- cgit v1.2.3 From 9a71fb5c963f2943a45bc4d0c77a84dd788e17b3 Mon Sep 17 00:00:00 2001 From: Anika Henke Date: Sun, 25 Sep 2011 11:47:53 +0100 Subject: media manager: fixed and improved diff views --- lib/scripts/media.js | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'lib/scripts/media.js') diff --git a/lib/scripts/media.js b/lib/scripts/media.js index 8e4cb64a0..76274c868 100644 --- a/lib/scripts/media.js +++ b/lib/scripts/media.js @@ -580,7 +580,7 @@ var dw_mediamanager = { if (!$form.length) return; $label = jQuery(document.createElement('label')); - $label.append(''+LANG.media_diff+''); + $label.append(''+LANG.media_diff+' '); $select = jQuery(document.createElement('select')) .attr('id', 'mediamanager__difftype') .attr('name', 'difftype') @@ -626,10 +626,10 @@ var dw_mediamanager = { * @author Kate Arzamastseva */ opacity_slider: function () { - var $slider = jQuery( "#mediamanager__diff div.diff_slider" ); + var $slider = jQuery( "#mediamanager__diff div.slider" ); if (!$slider.length) return; - var $image = jQuery('#mediamanager__diff div.diff_opacity div.image1 img'); + var $image = jQuery('#mediamanager__diff div.imageDiff.opacity div.image1 img'); if (!$image.length) return; $slider.width($image.width()-20); @@ -639,7 +639,7 @@ var dw_mediamanager = { $slider.slider("option", "step", 0.001); $slider.slider("option", "value", 0.5); $slider.bind("slide", function(event, ui) { - jQuery('#mediamanager__diff div.diff_opacity div.image2 img').css({ opacity: $slider.slider("option", "value")}); + jQuery('#mediamanager__diff div.imageDiff.opacity div.image2 img').css({ opacity: $slider.slider("option", "value")}); }); }, @@ -649,8 +649,8 @@ var dw_mediamanager = { * @author Kate Arzamastseva */ portions_slider: function () { - var $image1 = jQuery('#mediamanager__diff div.diff_portions div.image1 img'); - var $image2 = jQuery('#mediamanager__diff div.diff_portions div.image2 img'); + var $image1 = jQuery('#mediamanager__diff div.imageDiff.portions div.image1 img'); + var $image2 = jQuery('#mediamanager__diff div.imageDiff.portions div.image2 img'); if (!$image1.length || !$image2.length) return; var $div = jQuery("#mediamanager__diff"); @@ -669,7 +669,7 @@ var dw_mediamanager = { $image2.width($image1.width()); $image1.width($image1.width()); - var $slider = jQuery("#mediamanager__diff div.diff_slider"); + var $slider = jQuery("#mediamanager__diff div.slider"); if (!$slider.length) return; $slider.width($image1.width()-20); @@ -679,7 +679,7 @@ var dw_mediamanager = { $slider.slider("option", "step", 1); $slider.slider("option", "value", 50); $slider.bind("slide", function(event, ui) { - jQuery('#mediamanager__diff div.diff_portions div.image2').css({ width: $slider.slider("option", "value")+'%'}); + jQuery('#mediamanager__diff div.imageDiff.portions div.image2').css({ width: $slider.slider("option", "value")+'%'}); }); }, -- cgit v1.2.3 From 6f0b0dd1609f2a253b48f1b9347168dd2d5a61d7 Mon Sep 17 00:00:00 2001 From: Anika Henke Date: Sat, 15 Oct 2011 10:35:25 +0100 Subject: removed remnants of old flash uploader (FS#2335) --- lib/scripts/media.js | 27 --------------------------- 1 file changed, 27 deletions(-) (limited to 'lib/scripts/media.js') diff --git a/lib/scripts/media.js b/lib/scripts/media.js index 76274c868..2d7c8feb2 100644 --- a/lib/scripts/media.js +++ b/lib/scripts/media.js @@ -848,33 +848,6 @@ var dw_mediamanager = { } }, - initFlashUpload: function () { - var $oform, $oflash; - if(!hasFlash(8)) { - return; - } - - $oform = jQuery('#dw__upload'); - $oflash = jQuery('#dw__flashupload'); - - if(!$oform.length || !$oflash.length) { - return; - } - - jQuery(document.createElement('img')) - .attr('src', DOKU_BASE+'lib/images/multiupload.png') - .attr('title', LANG.mu_btn) - .attr('alt', LANG.mu_btn) - .css('cursor', 'pointer') - .click( - function () { - $oform.hide(); - $oflash.show(); - } - ) - .appendTo($oform); - }, - /** * Sets the visibility of the image details accordingly to the * chosen hide state -- cgit v1.2.3 From ee7ed651b17756c390ab007be9ba96886e2b146d Mon Sep 17 00:00:00 2001 From: Anika Henke Date: Sat, 15 Oct 2011 17:46:19 +0100 Subject: media manager: removed obsolete and broken hiding of parts of the option labels --- lib/scripts/media.js | 1 - 1 file changed, 1 deletion(-) (limited to 'lib/scripts/media.js') diff --git a/lib/scripts/media.js b/lib/scripts/media.js index 2d7c8feb2..aa369657d 100644 --- a/lib/scripts/media.js +++ b/lib/scripts/media.js @@ -124,7 +124,6 @@ var dw_mediamanager = { $both.find('label').each(function () { var $this = jQuery(this); $this.children('input').appendTo($this.parent()); - $this.find('span span').addClass('a11y'); }); // Init buttonset -- cgit v1.2.3 From e409148d11080ca05d6c93b8fb2f33f96ce74b25 Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Sun, 23 Oct 2011 06:25:34 +0200 Subject: Fix upload to deeper namespaces with new AJAX uploader Now params_toarray() correctly decodes parameters on parsing query strings --- lib/scripts/media.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'lib/scripts/media.js') diff --git a/lib/scripts/media.js b/lib/scripts/media.js index aa369657d..f76fd4065 100644 --- a/lib/scripts/media.js +++ b/lib/scripts/media.js @@ -682,12 +682,17 @@ var dw_mediamanager = { }); }, + /** + * Parse a URI query string to an associative array + * + * @author Kate Arzamastseva + */ params_toarray: function (str) { var vars = [], hash; var hashes = str.split('&'); for(var i = 0; i < hashes.length; i++) { hash = hashes[i].split('='); - vars[hash[0]] = hash[1]; + vars[decodeURIComponent(hash[0])] = decodeURIComponent(hash[1]); } return vars; }, -- cgit v1.2.3 From 745094183678a7902aea706c4219dc3a4a4facbe Mon Sep 17 00:00:00 2001 From: Adrian Lang Date: Sat, 29 Oct 2011 11:17:16 +0200 Subject: Let mediamanager screen expand on window resize (FS#2351) --- lib/scripts/media.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lib/scripts/media.js') diff --git a/lib/scripts/media.js b/lib/scripts/media.js index f76fd4065..23a1fe5d8 100644 --- a/lib/scripts/media.js +++ b/lib/scripts/media.js @@ -549,7 +549,7 @@ var dw_mediamanager = { resize: function () { var $contents = jQuery('#mediamanager__page div.panelContent'), - height = jQuery(window).height() - jQuery(document).height() + + height = jQuery(window).height() - jQuery(document.body).height() + Math.max.apply(null, jQuery.map($contents, function (v) { return jQuery(v).height(); })); -- cgit v1.2.3 From 4ad1b4ca9301f5a3c8421d51956166683d1057e1 Mon Sep 17 00:00:00 2001 From: Hakan Sandell Date: Sat, 29 Oct 2011 22:22:35 +0200 Subject: Full screen media manager, file list is now updated on delete (FS#2346) --- lib/scripts/media.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'lib/scripts/media.js') diff --git a/lib/scripts/media.js b/lib/scripts/media.js index 23a1fe5d8..4eefe8d57 100644 --- a/lib/scripts/media.js +++ b/lib/scripts/media.js @@ -427,6 +427,10 @@ var dw_mediamanager = { function (data) { dw_mediamanager.$resizables().resizable('destroy'); + if (update_list) { + dw_mediamanager.list.call(jQuery('a.selected')[0]); + } + $content.html(data); dw_mediamanager.prepare_content($content); @@ -442,9 +446,6 @@ var dw_mediamanager = { dw_mediamanager.init_ajax_uploader(); dw_mediamanager.init_options(); - if (update_list) { - dw_mediamanager.list.call(jQuery('a.files')[0]); - } }, 'html' ); -- cgit v1.2.3 From ed993c3be49e5048c5a8582d94415a1e74e9ec00 Mon Sep 17 00:00:00 2001 From: Hakan Sandell Date: Sun, 30 Oct 2011 12:40:19 +0100 Subject: Better solution for updating files list in media manager on delete --- lib/scripts/media.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lib/scripts/media.js') diff --git a/lib/scripts/media.js b/lib/scripts/media.js index 4eefe8d57..48bfdbbe8 100644 --- a/lib/scripts/media.js +++ b/lib/scripts/media.js @@ -428,7 +428,7 @@ var dw_mediamanager = { dw_mediamanager.$resizables().resizable('destroy'); if (update_list) { - dw_mediamanager.list.call(jQuery('a.selected')[0]); + dw_mediamanager.list.call(jQuery('input[value="Apply"]')[0]); } $content.html(data); -- cgit v1.2.3 From 48c5eff7672d7e6fcfc3f64194e03253d8e2fd0f Mon Sep 17 00:00:00 2001 From: Anika Henke Date: Thu, 3 Nov 2011 19:22:34 +0000 Subject: fix widths of panels in fullscreen mediamanager to be 100% when resizing (FS#2351) -- please test in different screen sizes, etc --- lib/scripts/media.js | 68 +++++++++++++--------------------------------------- 1 file changed, 16 insertions(+), 52 deletions(-) (limited to 'lib/scripts/media.js') diff --git a/lib/scripts/media.js b/lib/scripts/media.js index 48bfdbbe8..253720324 100644 --- a/lib/scripts/media.js +++ b/lib/scripts/media.js @@ -457,44 +457,6 @@ var dw_mediamanager = { }, window_resize: function () { - if (jQuery('#mediamanager__page').width() == dw_mediamanager.layout_width) { - return; - } - - dw_mediamanager.layout_width = jQuery('#mediamanager__page').width(); - $r = jQuery("#mediamanager__page div.panel"); - - var w = 0, wSum = 0, mCount = 0, mArray = []; - $r.each(function() { - w = jQuery(this).width(); - if (w == parseFloat(jQuery(this).css("min-width"))) { - wSum += w; - } else { - mArray[mCount] = jQuery(this); - mCount++; - } - }); - - if (mCount > 0) { - var width = (0.95 * jQuery('#mediamanager__page').width() - wSum - 30); - wSum = 0; - for(var i = 0; i < mArray.length; i++) { - wSum += mArray[i].width(); - } - for(var i = 0; i < mArray.length; i++) { - w = mArray[i].width(); - w = 100*w / wSum; - mArray[i].width(width*w/100); - } - } - - $r.each(function() { - w = jQuery(this).width(); - w = (100 * w / jQuery('#mediamanager__page').width()); - w += "%"; - jQuery(this).width(w); - }); - dw_mediamanager.resize(); dw_mediamanager.opacity_slider(); @@ -513,29 +475,31 @@ var dw_mediamanager = { update_resizable: function () { $resizables = dw_mediamanager.$resizables(); - $resizables.resizable({ handles: 'e' , + $resizables.resizable({ + handles: 'e', resize: function(event, ui){ - var w = 0; + var widthFull = jQuery('#mediamanager__page').width(); + var widthResizables = 0; $resizables.each(function() { - w += jQuery(this).width(); + widthResizables += jQuery(this).width(); }); - wSum = w + parseFloat(jQuery('#mediamanager__page div.file').css("min-width")); + var $filePanel = jQuery('#mediamanager__page div.panel.file'); - // max width of resizable column - var maxWidth = 0.95 * jQuery('#mediamanager__page').width() - wSum + jQuery(this).width() - 30; + // set max width of resizable column + var widthOtherResizable = widthResizables - jQuery(this).width(); + var minWidthNonResizable = parseFloat($filePanel.css("min-width")); + var maxWidth = widthFull - (widthOtherResizable + minWidthNonResizable); $resizables.resizable( "option", "maxWidth", maxWidth ); - // percentage width of the first two columns - var wLeft = ( 100*(w+30) / jQuery('#mediamanager__page').width() ); - - // width of the third column - var wRight = 95-wLeft; - wRight += "%"; - jQuery('#mediamanager__page div.file').width(wRight); + // width of file panel in % = 100% - width of resizables in % + // this calculates with 99.99 and not 100 to overcome rounding errors + var relWidthNonResizable = 99.99 - (100 * widthResizables / widthFull); + // set width of file panel + $filePanel.width(relWidthNonResizable+'%'); $resizables.each(function() { w = jQuery(this).width(); - w = (100 * w / jQuery('#mediamanager__page').width()); + w = (99.99 * w / widthFull); w += "%"; jQuery(this).width(w); }); -- cgit v1.2.3 From 84b1efdd1c75618a7bd713e8d3b0c9eba6bff2d0 Mon Sep 17 00:00:00 2001 From: Anika Henke Date: Sun, 6 Nov 2011 15:25:38 +0000 Subject: fixed resizing mediamanager panels in Chrome using browser sniffing (FS#2351) - any better solution welcome --- lib/scripts/media.js | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) (limited to 'lib/scripts/media.js') diff --git a/lib/scripts/media.js b/lib/scripts/media.js index 253720324..b1a175c26 100644 --- a/lib/scripts/media.js +++ b/lib/scripts/media.js @@ -497,12 +497,15 @@ var dw_mediamanager = { // set width of file panel $filePanel.width(relWidthNonResizable+'%'); - $resizables.each(function() { - w = jQuery(this).width(); - w = (99.99 * w / widthFull); - w += "%"; - jQuery(this).width(w); - }); + // FIXME: please fix without browser sniffing + if (jQuery.browser != 'webkit') { + $resizables.each(function() { + w = jQuery(this).width(); + w = (99.99 * w / widthFull); + w += "%"; + jQuery(this).width(w); + }); + } dw_mediamanager.opacity_slider(); dw_mediamanager.portions_slider(); -- cgit v1.2.3 From 410bfddd85883e6582b3b0ccaa41738b84037169 Mon Sep 17 00:00:00 2001 From: Anika Henke Date: Sun, 6 Nov 2011 15:31:37 +0000 Subject: improved $.browser usage in media panel fix --- lib/scripts/media.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lib/scripts/media.js') diff --git a/lib/scripts/media.js b/lib/scripts/media.js index b1a175c26..7f5514f56 100644 --- a/lib/scripts/media.js +++ b/lib/scripts/media.js @@ -498,7 +498,7 @@ var dw_mediamanager = { $filePanel.width(relWidthNonResizable+'%'); // FIXME: please fix without browser sniffing - if (jQuery.browser != 'webkit') { + if (!jQuery.browser.webkit) { $resizables.each(function() { w = jQuery(this).width(); w = (99.99 * w / widthFull); -- cgit v1.2.3