diff options
Diffstat (limited to 'module/web/themes/default/js/sources/filemanager.js')
-rw-r--r-- | module/web/themes/default/js/sources/filemanager.js | 291 |
1 files changed, 0 insertions, 291 deletions
diff --git a/module/web/themes/default/js/sources/filemanager.js b/module/web/themes/default/js/sources/filemanager.js deleted file mode 100644 index be2f51e13..000000000 --- a/module/web/themes/default/js/sources/filemanager.js +++ /dev/null @@ -1,291 +0,0 @@ -var load, rename_box, confirm_box; - -document.addEvent("domready", function() { - load = new Fx.Tween($("load-indicator"), {link: "cancel"}); - load.set("opacity", 0); - - rename_box = new Fx.Tween($('rename_box')); - confirm_box = new Fx.Tween($('confirm_box')); - $('rename_reset').addEvent('click', function() { - hide_rename_box() - }); - $('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]); - } - });*/ -}); - -function indicateLoad() { - //$("load-indicator").reveal(); - load.start("opacity", 1) -} - -function indicateFinish() { - load.start("opacity", 0) -} - -function indicateSuccess() { - indicateFinish(); - notify.alert('{{_("Success")}}.', { - 'className': 'success' - }); -} - -function indicateFail() { - indicateFinish(); - notify.alert('{{_("Failed")}}.', { - 'className': 'error' - }); -} - -function show_rename_box() { - bg_show(); - $("rename_box").setStyle('display', 'block'); - rename_box.start('opacity', 1) -} - -function hide_rename_box() { - bg_hide(); - rename_box.start('opacity', 0).chain(function() { - $('rename_box').setStyle('display', 'none'); - }); -} - -function show_confirm_box() { - bg_show(); - $("confirm_box").setStyle('display', 'block'); - confirm_box.start('opacity', 1) -} - -function hide_confirm_box() { - bg_hide(); - confirm_box.start('opacity', 0).chain(function() { - $('confirm_box').setStyle('display', 'none'); - }); -} - -var FilemanagerUI = new Class({ - initialize: function(url, type) { - this.url = url; - this.type = type; - this.directories = []; - this.files = []; - this.parseChildren(); - }, - - parseChildren: function() { - $("directories-list").getChildren("li.folder").each(function(ele) { - var path = ele.getElements("input.path")[0].get("value"); - 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) { - 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)) - }.bind(this)); - } -}); - -var Item = new Class({ - initialize: function(ui, path, name, ele) { - this.ui = ui; - 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.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); - - pname.addEvent("mouseenter", function(e) { - this.buttons.start("opacity", 1) - }.bind(this)); - - pname.addEvent("mouseleave", function(e) { - this.buttons.start("opacity", 0) - }.bind(this)); - - }, - - 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)); - } - }, - - 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?"))}}'); - - show_confirm_box(); - event.stop(); - }, - - deleteDirectory: function(event) { - hide_confirm_box(); - new Request.JSON({ - method: 'POST', - url: "/json/filemanager/delete", - 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(); - } - }.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); - $("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({ - 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(); - } - }.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 - }).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(); - } - } - } -}); |