root = this
window.addEvent 'domready', ->
root.accountDialog = new MooDialog {destroyOnHide: false}
root.accountDialog.setContent $ 'account_box'
new TinyTab $$('#toptabs li a'), $$('#tabs-body > span')
$$('ul.nav').each (nav) ->
new MooDropMenu nav, {
onOpen: (el) -> el.fade 'in'
onClose: (el) -> el.fade 'out'
onInitialize: (el) -> el.fade('hide').set 'tween', {duration:500}
}
new SettingsUI()
class SettingsUI
constructor: ->
@menu = $$ "#general-menu li"
@menu.append $$ "#plugin-menu li"
@name = $ "tabsback"
@general = $ "general_form_content"
@plugin = $ "plugin_form_content"
el.addEvent 'click', @menuClick.bind(this) for el in @menu
$("general|submit").addEvent "click", @configSubmit.bind(this)
$("plugin|submit").addEvent "click", @configSubmit.bind(this)
$("account_add").addEvent "click", (e) ->
root.accountDialog.open()
e.stop()
$("account_reset").addEvent "click", (e) ->
root.accountDialog.close()
$("account_add_button").addEvent "click", @addAccount.bind(this)
$("account_submit").addEvent "click", @submitAccounts.bind(this)
menuClick: (e) ->
[category, section] = e.target.get("id").split("|")
name = e.target.get "text"
target = if category is "general" then @general else @plugin
target.dissolve()
new Request({
"method" : "get"
"url" : "/json/load_config/#{category}/#{section}"
'onSuccess': (data) =>
target.set "html", data
target.reveal()
this.name.set "text", name
}).send()
configSubmit: (e) ->
category = e.target.get("id").split("|")[0]
form = $("#{category}_form")
form.set "send", {
'method': "post"
'url': "/json/save_config/#{category}"
"onSuccess" : ->
root.notify.alert '{{ _("Settings saved.")}}', {
'className': 'success'
}
'onFailure': ->
root.notify.alert '{{ _("Error occured.")}}', {
'className': 'error'
}
}
form.send()
e.stop()
addAccount: (e) ->
form = $ "add_account_form"
form.set "send", {
'method': "post"
"onSuccess" : -> window.location.reload()
'onFailure': ->
root.notify.alert '{{_("Error occured.")}}', {
'className': 'error'
}
}
form.send()
e.stop()
submitAccounts: (e) ->
form = $ "account_form"
form.set "send", {
'method': "post",
"onSuccess" : -> window.location.reload()
'onFailure': ->
root.notify.alert('{{ _("Error occured.") }}', {
'className': 'error'
})
}
form.send()
e.stop()