Ability to download a filters set as a plain text file.

see #139
This commit is contained in:
Antoine Nguyen
2011-05-19 11:06:16 +02:00
parent a15d879109
commit 1d068ef404
5 changed files with 34 additions and 2 deletions
@@ -27,7 +27,7 @@ function check_prereqs(evt, msg) {
if (!curscript) {
return false;
}
if (!confirm(msg)) {
if ($defined(msg) && !confirm(msg)) {
return false;
}
return true;
@@ -88,11 +88,20 @@ function activatescript(evt) {
send_command("{% url extensions.sievefilters.views.activate_filters_set %}");
}
function downloadscript(evt) {
if (!curscript) {
evt.stop();
return;
}
this.set("href", this.get("href") + "?name=" + curscript);
}
$(document).addEvent("domready", function() {
$$("a[name=loadscript]").addEvent("click", loadscript);
$$("a[name=savescript]").addEvent("click", savescript);
$$("a[name=deletescript]").addEvent("click", deletescript);
$$("a[name=activatescript]").addEvent("click", activatescript);
$$("a[name=downloadscript]").addEvent("click", downloadscript);
});
</script>
{% endblock %}
@@ -29,7 +29,11 @@ def sfilters_menu(user):
{"name" : "deletescript",
"img" : static_url("pics/remove.png"),
"label" : _("Remove filters set"),
"url" : reverse(views.delete_filters_set),}
"url" : reverse(views.delete_filters_set),},
{"name" : "downloadscript",
"img" : static_url("pics/download.png"),
"label" : _("Download"),
"url" : reverse(views.download_filters_set)}
]
return render_to_string('common/menulist.html',
+1
View File
@@ -7,4 +7,5 @@ urlpatterns = patterns('modoboa.extensions.sievefilters.views',
(r'^newfs/$', 'new_filters_set'),
(r'^deletefs/$', 'delete_filters_set'),
(r'^activatefs/$', 'activate_filters_set'),
(r'^downloadfs/$', 'download_filters_set'),
)
+18
View File
@@ -101,3 +101,21 @@ def activate_filters_set(request):
except SieveClientError, e:
return ajax_response(request, "ko", respmsg=str(e))
return ajax_response(request, respmsg=_("Filters set activated"))
@login_required
def download_filters_set(request):
if not request.GET.has_key("name") or \
request.GET["name"] == "":
return
sc = SieveClient(user=request.user.username,
password=request.session["password"])
try:
script = sc.getscript(request.GET["name"])
except SieveClientError, e:
return ajax_response(request, "ko", respmsg=str(e))
resp = HttpResponse(script)
resp["Content-Type"] = "text/plain"
resp["Content-Length"] = len(script)
resp["Content-Disposition"] = "attachment; filename=%s.txt" % request.GET["name"]
return resp
Binary file not shown.

After

Width:  |  Height:  |  Size: 663 B