diff --git a/userprefs/forms.py b/userprefs/forms.py index cca0128a3..4bdd5ccd1 100644 --- a/userprefs/forms.py +++ b/userprefs/forms.py @@ -37,6 +37,7 @@ class ChangePasswordForm(forms.Form): class ForwardForm(forms.Form): dest = forms.CharField(label=_("Destination(s)"), widget=forms.Textarea) + keepcopies = forms.BooleanField(label=_("Keep local copies"), required=False) def parse_dest(self): self.dests = [] diff --git a/userprefs/templatetags/uprefs_extras.py b/userprefs/templatetags/uprefs_extras.py index cc79d34c0..3f3f0acf4 100644 --- a/userprefs/templatetags/uprefs_extras.py +++ b/userprefs/templatetags/uprefs_extras.py @@ -38,7 +38,7 @@ def options_menu(user): "img" : static_url("pics/alias.png"), "label" : _("Forward"), "class" : "boxed", - "rel" : "{handler:'iframe',size:{x:360,y:320},closeBtn:true}" + "rel" : "{handler:'iframe',size:{x:360,y:350},closeBtn:true}" }] entries[0]["menu"] += events.raiseQueryEvent("UserMenuDisplay", diff --git a/userprefs/views.py b/userprefs/views.py index cfe3a55cc..807acc44a 100644 --- a/userprefs/views.py +++ b/userprefs/views.py @@ -65,15 +65,25 @@ def setforward(request, tplname="userprefs/setforward.html"): al.address = mb.address al.domain = mb.domain al.enabled = mb.user.is_active + intdests = [] + if form.cleaned_data["keepcopies"]: + intdests += [mb] form.parse_dest() - al.save([], form.dests) + al.save(intdests, form.dests) return ajax_response(request, respmsg=_("Forward updated")) except BadDestination, e: error = str(e) - return ajax_response(request, status="ko", template=tplname, form=form, error=error) + return ajax_response(request, status="ko", template=tplname, + form=form, error=error) form = ForwardForm() if al is not None: form.fields["dest"].initial = al.extmboxes + try: + selfmb = al.mboxes.get(pk=mb.id) + except Mailbox.DoesNotExist: + pass + else: + form.fields["keepcopies"].initial = True return _render(request, tplname, { "form" : form })