Javascript code refactoring.

see #196
This commit is contained in:
Antoine Nguyen
2012-02-02 13:51:42 +01:00
parent 907e329ebf
commit 8dfbb6224b
9 changed files with 45 additions and 157 deletions
+4 -3
View File
@@ -574,7 +574,7 @@ def edit_domain_admin(request, da_id, tplname="admin/adminform.html"):
@login_required
@permission_required("auth.view_permissions")
def domain_admin_promotion(request):
def domain_admin_promotion(request, tplname="admin/domain_admin_promotion.html"):
if request.method == "POST":
form = DomainAdminPromotionForm(request.POST)
if form.is_valid():
@@ -590,9 +590,10 @@ def domain_admin_promotion(request):
messages.info(request, _("Domain admin added"), fail_silently=True)
return ajax_response(request, url=reverse(admin.views.permissions))
return ajax_response(request, status="ko", template=tplname, form=form)
form = DomainAdminPromotionForm()
return ajax_response(request, template="admin/domain_admin_promotion.html",
form=form)
return ajax_response(request, template=tplname, form=form)
@login_required
@permission_required("auth.view_permissions")
@@ -16,8 +16,9 @@
<script type="text/javascript">
window.addEvent("domready", function() {
var cal = new Calendar({id_untildate: "Y-m-d"}, {tweak: {x: -100, y:-100}});
var form = new Form();
register_error_callback("armform", function() {
form.register_error_callback("armform", function() {
new Calendar({id_untildate: "Y-m-d"}, {
tweak: {x: -100, y:-100}
});
@@ -42,6 +42,8 @@ function initform() {
}
$(document).addEvent("domready", function() {
var form = new Form();
new Request.JSON({
url: "{% url modoboa.extensions.sievefilters.views.get_templates 'condition' %}",
onSuccess: function(response) {
@@ -55,8 +57,8 @@ $(document).addEvent("domready", function() {
initform();
}
}).get();
register_error_callback("filterform", initform);
register_extra_data_callback("filterform", function() {
form.register_error_callback("filterform", initform);
form.register_extra_data_callback("filterform", function() {
return "conds=" + dc.fields_cnt + "&actions=" + da.fields_cnt;
});
});
@@ -5,23 +5,25 @@
<script src="{{ MEDIA_URL }}js/form.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).addEvent("domready", function() {
register_success_callback("newfiltersset", function(response) {
var name = response.url;
var option = new Element("option", {value: name, html: name});
var curfset = $(parent.document).getElementById("curfset");
var form = new Form();
option.inject(curfset);
curfset.set("value", name);
if ($("id_active").checked) {
curfset.getElements("option").each(function(item) {
if (item.get("value") == name) {
item.set("html", name + " (" + gettext("active") + ")");
} else {
item.set("html", item.get("value"));
form.register_success_callback("newfiltersset", function(response) {
var name = response.url;
var option = new Element("option", {value: name, html: name});
var curfset = $(parent.document).getElementById("curfset");
option.inject(curfset);
curfset.set("value", name);
if ($("id_active").checked) {
curfset.getElements("option").each(function(item) {
if (item.get("value") == name) {
item.set("html", name + " (" + gettext("active") + ")");
} else {
item.set("html", item.get("value"));
}
});
}
});
}
});
});
});
</script>
@@ -29,7 +31,8 @@ $(document).addEvent("domready", function() {
{% block content %}
<div class="title"><h1>{{ title }}</h1></div>
{% if error %}<div id="error" class="error">{{ error }}</div>{% endif %}
<form action="" method="POST" id="{{ fname }}" name="{{ fname }}">
<form action="{% url modoboa.extensions.sievefilters.views.new_filters_set %}"
method="POST" id="{{ fname }}" name="{{ fname }}">
{% include "common/genericform.html" %}
<div id="submit_container">
<input type="submit" name="submit" value='{{ submit_label }}'/>
+2 -2
View File
@@ -28,9 +28,9 @@ def index(request, tplname="sievefilters/index.html"):
return _render_error(request, user_context={"error" : e})
if active_script is None:
active_script = ""
default_script = scripts[0] if len(scripts) else ""
default_script = "%s/" % scripts[0] if len(scripts) else ""
else:
default_script = active_script
default_script = "%s/" % active_script
return _render(request, tplname, {
"active_script" : active_script,
"default_script" : default_script,
@@ -6,6 +6,8 @@
<script src="{{ MEDIA_URL }}webmail/js/webmail.js" type="text/javascript"></script>
<script type="text/javascript">
window.addEvent("domready", function() {
var form = new Form();
init_folders_browsing();
$$("a[name=loadfolder]").addEvent("click", function(evt) {
@@ -16,7 +18,7 @@
this.getParent().addClass("selected");
});
register_extra_data_callback("{{ fname }}", function() {
form.register_extra_data_callback("{{ fname }}", function() {
var result = "";
$$("li[class*=selected]").each(function(item) {
var atag = item.getFirst("a");
@@ -30,7 +32,8 @@
{% block content %}
<div class="title"><h1>{{ title }}</h1></div>
<div id="error" class="error">{{ error }}</div>
<form action="" method="POST" id="{{ fname }}" name="{{ fname }}">
<form action="{% url modoboa.extensions.webmail.views.newfolder %}"
method="POST" id="{{ fname }}" name="{{ fname }}">
<input type="hidden" name="oldname" value="{{ oldname }}" />
{% include "common/genericform.html" %}
<div class="row">
+3 -130
View File
@@ -41,7 +41,7 @@ var Form = new Class({
},
register_callback: function(category, name, callback) {
if (this.callbacks[category][name] == undefined) {
if (this.callbacks[category] == undefined) {
return false;
}
this.callbacks[category][name] = callback;
@@ -82,8 +82,8 @@ var Form = new Class({
if (response.norefresh != undefined && response.norefresh == true) {
$$("div[class=error]").set("html", response.respmsg);
} else {
var target = (this.options.target)
? $(this.options.target) : $(document.body);
var target = (this.options.resptarget)
? $(this.options.resptarget) : $(document.body);
target.set("html", response.content);
this.init_help_messages();
@@ -124,130 +124,3 @@ var Form = new Class({
}).send();
}
});
var error_callbacks = {
permform: function() {
if ($defined($("id_domain"))) {
$("id_domain").options[0].setProperty("selected", "selected");
domadminform_init();
}
}
};
var success_callbacks = {
};
var extra_data_callbacks = {
};
function register_callback(hash, name, callback) {
if ($defined(hash[name])) {
return false;
}
hash[name] = callback;
return true;
}
function register_error_callback(name, callback) {
return register_callback(error_callbacks, name, callback);
}
function register_success_callback(name, callback) {
return register_callback(success_callbacks, name, callback);
}
function register_extra_data_callback(name, callback) {
return register_callback(extra_data_callbacks, name, callback);
}
function ajax_submit(event) {
var form = event.target;
var myid = form.get("id");
var data = form.toQueryString();
event.stop();
if ($defined(extra_data_callbacks[myid])) {
if (data != "") {
data += "&";
}
data += extra_data_callbacks[myid]();
}
new Request.JSON({
url: form.get("action"),
method: form.get("method"),
data: data,
onSuccess: function(response) {
if (response.status == "ko") {
if (response.norefresh != undefined && response.norefresh == true) {
$$("div[class=error]").set("html", response.respmsg);
} else {
var target = (resptarget != undefined)
? $(resptarget) : $(document.body);
target.set("html", response.content);
/*$(document.body).addEvent("submit", ajax_submit);*/
if ($defined(error_callbacks[myid])) {
error_callbacks[myid]();
}
}
return;
}
if ($defined(response.respmsg)) {
if ($defined(parent.current_anchor)) {
parent.current_anchor.loading_message = response.respmsg;
parent.current_anchor.loading_color = "green";
} else {
parent.infobox.info(response.respmsg);
parent.infobox.hide(1);
}
}
if ($defined(response.ajaxnav)) {
if ($defined(response.url)) {
parent.current_anchor.baseurl(response.url, 1);
}
parent.current_anchor.update(1);
} else if ($defined(response.url)) {
parent.location.href = response.url;
}
if ($defined(success_callbacks[myid])) {
success_callbacks[myid](response);
}
parent.SqueezeBox.close();
},
onFailure: function(xhr) {
parent.document.getElement('iframe').setStyles({width: 800, height: 600});
$(document.body).set("html", xhr.responseText);
}
}).send();
}
function initform() {
$(document.body)
.removeEvents("submit")
.addEvent("submit", ajax_submit);
$$("input[type!=submit]", "select").addEvents({
focus: function(evt) {
var helpdiv = $(evt.target.name + "_helptext");
if (helpdiv) {
var coords = evt.target.getCoordinates();
helpdiv.setPosition({x: 10, y: coords['top'] + coords['height'] + 5});
helpdiv.setStyle("display", "block");
}
},
blur: function(evt) {
var helpdiv = $(evt.target.name + "_helptext");
if (helpdiv) {
helpdiv.setStyle("display", "none");
}
}
});
}
/*window.addEvent("domready", function() {
initform();
});*/
+1 -1
View File
@@ -8,7 +8,7 @@
<script type="text/javascript" src="{{ MEDIA_URL }}js/Autocompleter.Request.js"></script>
<script type="text/javascript">
window.addEvent("domready", function() {
var form = new Form({target: "formcontainer"});
var form = new Form({resptarget: "formcontainer"});
$("createfrom").addEvent("change", function(evt) {
var url = "";
+5
View File
@@ -1,6 +1,11 @@
{% extends "layout_simple.html" %}
{% block html_head %}
<script src="{{ MEDIA_URL }}js/form.js" type="text/javascript"></script>
<script type="text/javascript">
window.addEvent("domready", function() {
var form = new Form();
});
</script>
{% endblock %}
{% block content %}
{% load i18n %}