diff options
Diffstat (limited to 'pyload/webui/themes/Next/js/filemanager.js')
-rw-r--r-- | pyload/webui/themes/Next/js/filemanager.js | 254 |
1 files changed, 127 insertions, 127 deletions
diff --git a/pyload/webui/themes/Next/js/filemanager.js b/pyload/webui/themes/Next/js/filemanager.js index ed64ab69d..32c225e4a 100644 --- a/pyload/webui/themes/Next/js/filemanager.js +++ b/pyload/webui/themes/Next/js/filemanager.js @@ -12,12 +12,12 @@ document.addEvent("domready", function() { $('delete_reset').addEvent('click', function() { hide_confirm_box() }); - + /*$('filemanager_actions_list').getChildren("li").each(function(action) { var action_name = action.className; if(functions[action.className] != undefined) { - action.addEvent('click', functions[action.className]); + action.addEvent('click', functions[action.className]); } });*/ }); @@ -76,7 +76,7 @@ var FilemanagerUI = new Class({ this.url = url; this.type = type; this.directories = []; - this.files = []; + this.files = []; this.parseChildren(); }, @@ -86,8 +86,8 @@ var FilemanagerUI = new Class({ var name = ele.getElements("input.name")[0].get("value"); this.directories.push(new Item(this, path, name, ele)) }.bind(this)); - - $("directories-list").getChildren("li.file").each(function(ele) { + + $("directories-list").getChildren("li.file").each(function(ele) { var path = ele.getElements("input.path")[0].get("value"); var name = ele.getElements("input.name")[0].get("value"); this.files.push(new Item(this, path, name, ele)) @@ -98,17 +98,17 @@ var FilemanagerUI = new Class({ var Item = new Class({ initialize: function(ui, path, name, ele) { this.ui = ui; - this.path = path; - this.name = name; + this.path = path; + this.name = name; this.ele = ele; - this.directories = []; - this.files = []; - this.actions = new Array(); - this.actions["delete"] = this.del; - this.actions["rename"] = this.rename; - this.actions["mkdir"] = this.mkdir; + this.directories = []; + this.files = []; + this.actions = new Array(); + this.actions["delete"] = this.del; + this.actions["rename"] = this.rename; + this.actions["mkdir"] = this.mkdir; this.parseElement(); - + var pname = this.ele.getElements("span")[0]; this.buttons = new Fx.Tween(this.ele.getElements(".buttons")[0], {link: "cancel"}); this.buttons.set("opacity", 0); @@ -125,167 +125,167 @@ var Item = new Class({ parseElement: function() { this.ele.getChildren('span span.buttons img').each(function(img) { - img.addEvent('click', this.actions[img.className].bind(this)); - }, this); - - //click on the directory name must open the directory itself - this.ele.getElements('b')[0].addEvent('click', this.toggle.bind(this)); - - //iterate over child directories - var uls = this.ele.getElements('ul'); - if(uls.length > 0) - { - uls[0].getChildren("li.folder").each(function(fld) { - var path = fld.getElements("input.path")[0].get("value"); - var name = fld.getElements("input.name")[0].get("value"); - this.directories.push(new Item(this, path, name, fld)); - }.bind(this)); - uls[0].getChildren("li.file").each(function(fld) { - var path = fld.getElements("input.path")[0].get("value"); - var name = fld.getElements("input.name")[0].get("value"); - this.files.push(new Item(this, path, name, fld)); - }.bind(this)); - } + img.addEvent('click', this.actions[img.className].bind(this)); + }, this); + + //click on the directory name must open the directory itself + this.ele.getElements('b')[0].addEvent('click', this.toggle.bind(this)); + + //iterate over child directories + var uls = this.ele.getElements('ul'); + if(uls.length > 0) + { + uls[0].getChildren("li.folder").each(function(fld) { + var path = fld.getElements("input.path")[0].get("value"); + var name = fld.getElements("input.name")[0].get("value"); + this.directories.push(new Item(this, path, name, fld)); + }.bind(this)); + uls[0].getChildren("li.file").each(function(fld) { + var path = fld.getElements("input.path")[0].get("value"); + var name = fld.getElements("input.name")[0].get("value"); + this.files.push(new Item(this, path, name, fld)); + }.bind(this)); + } }, reorderElements: function() { //TODO sort the main ul again (to keep data ordered after renaming something) }, - + del: function(event) { $("confirm_form").removeEvents("submit"); $("confirm_form").addEvent("submit", this.deleteDirectory.bind(this)); - $$("#confirm_form p").set('html', '{{_(("Are you sure you want to delete the selected item?"))}}'); - + $$("#confirm_form p").set('html', '{{_(("Are you sure you want to delete the selected item?"))}}'); + show_confirm_box(); event.stop(); }, - + deleteDirectory: function(event) { hide_confirm_box(); - new Request.JSON({ + new Request.JSON({ method: 'POST', url: "/json/filemanager/delete", - data: {"path": this.path, "name": this.name}, + data: {"path": this.path, "name": this.name}, onSuccess: function(data) { - if(data.response == "success") - { - new Fx.Tween(this.ele).start('opacity', 0); - var ul = this.ele.parentNode; - this.ele.dispose(); - //if this was the only child, add a "empty folder" div - if(!ul.getChildren('li')[0]) - { - var div = new Element("div", { 'html': '{{ _("Folder is empty") }}' }); - div.replaces(ul); - } - - indicateSuccess(); - } else - { - //error from json code... - indicateFail(); - } + if(data.response == "success") + { + new Fx.Tween(this.ele).start('opacity', 0); + var ul = this.ele.parentNode; + this.ele.dispose(); + //if this was the only child, add a "empty folder" div + if(!ul.getChildren('li')[0]) + { + var div = new Element("div", { 'html': '{{ _("Folder is empty") }}' }); + div.replaces(ul); + } + + indicateSuccess(); + } else + { + //error from json code... + indicateFail(); + } }.bind(this), onFailure: indicateFail }).send(); - + event.stop(); }, - + rename: function(event) { $("rename_form").removeEvents("submit"); $("rename_form").addEvent("submit", this.renameDirectory.bind(this)); - $("path").set("value", this.path); + $("path").set("value", this.path); $("old_name").set("value", this.name); $("new_name").set("value", this.name); - + show_rename_box(); event.stop(); }, renameDirectory: function(event) { hide_rename_box(); - new Request.JSON({ + new Request.JSON({ method: 'POST', url: "/json/filemanager/rename", onSuccess: function(data) { - if(data.response == "success") - { - this.name = $("new_name").get("value"); - this.ele.getElements("b")[0].set('html', $("new_name").get("value")); - this.reorderElements(); - indicateSuccess(); - } else - { - //error from json code... - indicateFail(); - } + if(data.response == "success") + { + this.name = $("new_name").get("value"); + this.ele.getElements("b")[0].set('html', $("new_name").get("value")); + this.reorderElements(); + indicateSuccess(); + } else + { + //error from json code... + indicateFail(); + } }.bind(this), onFailure: indicateFail }).send($("rename_form").toQueryString()); - + event.stop(); }, - + mkdir: function(event) { new Request.JSON({ - method: 'POST', - url: "/json/filemanager/mkdir", - data: {"path": this.path + "/" + this.name, "name": '{{_("New folder")}}'}, - onSuccess: function(data) { - if(data.response == "success") - { - new Request.HTML({ - method: 'POST', - url: "/filemanager/get_dir", - data: {"path": data.path, "name": data.name}, - onSuccess: function(li) { - //add node as first child of ul - var ul = this.ele.getChildren('ul')[0]; - if(!ul) - { - //remove the "Folder Empty" div - this.ele.getChildren('div').dispose(); - - //create new ul to contain subfolder - ul = new Element("ul"); - ul.inject(this.ele, 'bottom'); - } - li[0].inject(ul, 'top'); - - //add directory as a subdirectory of the current item - this.directories.push(new Item(this.ui, data.path, data.name, ul.firstChild)); - }.bind(this), - onFailure: indicateFail - }).send(); - indicateSuccess(); - } else - { - //error from json code... - indicateFail(); - } - }.bind(this), - onFailure: indicateFail + method: 'POST', + url: "/json/filemanager/mkdir", + data: {"path": this.path + "/" + this.name, "name": '{{_("New folder")}}'}, + onSuccess: function(data) { + if(data.response == "success") + { + new Request.HTML({ + method: 'POST', + url: "/filemanager/get_dir", + data: {"path": data.path, "name": data.name}, + onSuccess: function(li) { + //add node as first child of ul + var ul = this.ele.getChildren('ul')[0]; + if(!ul) + { + //remove the "Folder Empty" div + this.ele.getChildren('div').dispose(); + + //create new ul to contain subfolder + ul = new Element("ul"); + ul.inject(this.ele, 'bottom'); + } + li[0].inject(ul, 'top'); + + //add directory as a subdirectory of the current item + this.directories.push(new Item(this.ui, data.path, data.name, ul.firstChild)); + }.bind(this), + onFailure: indicateFail + }).send(); + indicateSuccess(); + } else + { + //error from json code... + indicateFail(); + } + }.bind(this), + onFailure: indicateFail }).send(); - + event.stop(); }, - + toggle: function() { var child = this.ele.getElement('ul'); - if(child == null) - child = this.ele.getElement('div'); - - if(child != null) - { - if (child.getStyle('display') == "block") { - child.dissolve(); - } else { - child.reveal(); - } - } + if(child == null) + child = this.ele.getElement('div'); + + if(child != null) + { + if (child.getStyle('display') == "block") { + child.dissolve(); + } else { + child.reveal(); + } + } } }); |