/** * Specialized drawer for mmbase-resources. * Like LinkLibraryDrawer, but with upload-functionality. * $Id: $ */ function ResourceLibraryDrawer(tool, xsluri, libsuri, searchuri, baseelement) { /* a specific LibraryDrawer for links */ this.drawertitle = "Insert Link"; this.drawertype = "link"; this.showupload = ''; if (tool) { this.init(tool, xsluri, libsuri, searchuri, baseelement); } this.save = function() { this.editor.resumeEditing(); /* create a link in the iframe according to collected data from the drawer */ var selxpath = '//resource[@selected]'; var selnode = this.xmldata.selectSingleNode(selxpath); if (!selnode) { var uploadbutton = this.xmldata.selectSingleNode("/libraries/*[@selected]/uploadbutton"); if (uploadbutton) { this.uploadResource(); } return; } var uri = selnode.selectSingleNode('uri/text()').nodeValue; uri = uri.strip(); // needs kupuhelpers.js var title = ''; title = selnode.selectSingleNode('title/text()').nodeValue; title = title.strip(); // XXX requiring the user to know what link type to enter is a // little too much I think. (philiKON) var type = null; var elm = getFromSelector('link_name'); var name = elm ? elm.value : ''; var target = null; if (getFromSelector('link_target') && getFromSelector('link_target').value != '') target = getFromSelector('link_target').value; this.tool.createLink(uri, type, name, target, title); this.drawertool.closeDrawer(); }; // upload, on submit/insert press this.uploadResource = function() { var form = document.getElementById('kupu_upload_form'); if (!form || form.node_prop_image.value == '') { alert("" + form + " " + form.node_prop_image.value); return; } if (form.node_prop_title.value == "") { alert("Please enter a title for the image you are uploading"); return; }; form.submit(); }; // called for example when no permission to upload for some reason this.cancelUpload = function(msg) { var s = this.xmldata.selectSingleNode('/libraries/*[@selected]'); s.removeAttribute("selected"); this.updateDisplay(); if (msg != '') { alert(msg); }; }; // called by onLoad within document sent by server this.finishUpload = function(url, mimetype) { this.editor.resumeEditing(); var form = document.getElementById('kupu_upload_form'); var title = "[" + mimetype + ":" + form.node_prop_title.value + "]"; this.tool.createLink(url, null, null, null, title); this.shared.newimages = 1; this.drawertool.closeDrawer(); }; }; ResourceLibraryDrawer.prototype = new LibraryDrawer; ResourceLibraryDrawer.prototype.shared = {}; // Shared data