diff options
Diffstat (limited to 'module/web/media/default/js/settings_ui.js')
-rw-r--r-- | module/web/media/default/js/settings_ui.js | 145 |
1 files changed, 145 insertions, 0 deletions
diff --git a/module/web/media/default/js/settings_ui.js b/module/web/media/default/js/settings_ui.js new file mode 100644 index 000000000..77b28c39c --- /dev/null +++ b/module/web/media/default/js/settings_ui.js @@ -0,0 +1,145 @@ +var account_dialog; + +function show_account_dialog() { + bg_show(); + $("account_box").setStyle('display', 'block'); + account_dialog.start('opacity', 1) +} + +function hide_account_dialog() { + bg_hide(); + account_dialog.start('opacity', 0).chain(function() { + $('account_box').setStyle('display', 'none'); + }); +} + + +var SettingsUI = new Class({ + initialize: function() { + this.menu = $$("#general-menu li"); + this.menu.append($$("#plugin-menu li")); + + this.name = $("tabsback"); + this.general = $("general_form_content"); + this.plugin = $("plugin_form_content"); + + this.menu.each(function(el) { + el.addEvent("click", this.menuClick.bind(this)); + }.bind(this)); + + + $("general|submit").addEvent("click", this.configSubmit.bind(this)); + $("plugin|submit").addEvent("click", this.configSubmit.bind(this)); + + $("account_add").addEvent("click", function(e) { + show_account_dialog(); + e.stop(); + }); + + $("account_reset").addEvent("click", function(e) { + hide_account_dialog(); + }); + + $("account_add_button").addEvent("click", this.addAccount.bind(this)); + $("account_submit").addEvent("click", this.submitAccounts.bind(this)); + + + }, + + menuClick: function(e) { + var string = e.target.get("id").split("|"); + var category = string[0]; + var section = string[1]; + var name = e.target.get("text"); + + if (category == "general") { + var target = this.general; + } else if (category == "plugin") { + var target = this.plugin; + } + + target.dissolve(); + + new Request({ + "method" : "get", + "url" : "/json/load_config/" + category + "/" + section, + "onSuccess": function(data) { + target.set("html", data); + target.reveal(); + this.name.set("text", name); + }.bind(this) + }).send(); + }, + + configSubmit: function(e) { + var string = e.target.get("id").split("|"); + var category = string[0]; + + var form = $(category + "_form"); + + + form.set("send", { + "method": "post", + "url": "/json/save_config/" + category, + "onSuccess" : function() { + notify.alert('Settings saved', { + 'className': 'success' + }); + + }, + "onFailure": function() { + notify.alert('Error occured', { + 'className': 'error' + }); + } + }); + + form.send(); + + e.stop(); + + }, + addAccount: function(e) { + + var form = $("add_account_form"); + form.set("send", { + "method": "post", + "onSuccess" : function() { + window.location.reload() + }, + "onFailure": function() { + notify.alert('Error occured', { + 'className': 'error' + }); + } + }); + + form.send(); + + + e.stop(); + }, + + submitAccounts: function(e) { + + var form = $("account_form"); + form.set("send", { + "method": "post", + "onSuccess" : function() { + window.location.reload() + }, + "onFailure": function() { + notify.alert('Error occured', { + 'className': 'error' + }); + } + }); + + form.send(); + + + e.stop(); + + e.stop(); + } + }); |