Mercurial > public > src > moin > extensions
annotate data/plugin/macro/FormHeader.py @ 629:23bf696cf294 default tip
add a sendmail action, which can be use to submit POST data by E-Mail
author | Thomas Waldmann <tw AT waldmann-edv DOT de> |
---|---|
date | Mon, 25 Mar 2013 23:40:03 +0100 |
parents | 819c4121f9a0 |
children |
rev | line source |
---|---|
628
819c4121f9a0
FormCreate/FormSubmit: change to LF-only line endings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
620
diff
changeset
|
1 # -*- coding: iso-8859-1 -*- |
819c4121f9a0
FormCreate/FormSubmit: change to LF-only line endings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
620
diff
changeset
|
2 """ |
819c4121f9a0
FormCreate/FormSubmit: change to LF-only line endings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
620
diff
changeset
|
3 MoinMoin - FormHeader Macro |
819c4121f9a0
FormCreate/FormSubmit: change to LF-only line endings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
620
diff
changeset
|
4 |
819c4121f9a0
FormCreate/FormSubmit: change to LF-only line endings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
620
diff
changeset
|
5 Generates form header with some additional parameters. |
819c4121f9a0
FormCreate/FormSubmit: change to LF-only line endings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
620
diff
changeset
|
6 |
819c4121f9a0
FormCreate/FormSubmit: change to LF-only line endings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
620
diff
changeset
|
7 @copyright: 2008 by Peter Bodi <petrdll@centrum.sk> |
819c4121f9a0
FormCreate/FormSubmit: change to LF-only line endings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
620
diff
changeset
|
8 @license: GNU GPL, see COPYING for details. |
819c4121f9a0
FormCreate/FormSubmit: change to LF-only line endings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
620
diff
changeset
|
9 """ |
819c4121f9a0
FormCreate/FormSubmit: change to LF-only line endings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
620
diff
changeset
|
10 |
819c4121f9a0
FormCreate/FormSubmit: change to LF-only line endings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
620
diff
changeset
|
11 from MoinMoin.Page import Page |
819c4121f9a0
FormCreate/FormSubmit: change to LF-only line endings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
620
diff
changeset
|
12 |
819c4121f9a0
FormCreate/FormSubmit: change to LF-only line endings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
620
diff
changeset
|
13 from FormBase import FormBase, FormValidationError |
819c4121f9a0
FormCreate/FormSubmit: change to LF-only line endings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
620
diff
changeset
|
14 |
819c4121f9a0
FormCreate/FormSubmit: change to LF-only line endings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
620
diff
changeset
|
15 |
819c4121f9a0
FormCreate/FormSubmit: change to LF-only line endings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
620
diff
changeset
|
16 class FormHeader(FormBase): |
819c4121f9a0
FormCreate/FormSubmit: change to LF-only line endings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
620
diff
changeset
|
17 |
819c4121f9a0
FormCreate/FormSubmit: change to LF-only line endings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
620
diff
changeset
|
18 def parse_args(self): |
819c4121f9a0
FormCreate/FormSubmit: change to LF-only line endings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
620
diff
changeset
|
19 FormBase.parse_args(self) |
819c4121f9a0
FormCreate/FormSubmit: change to LF-only line endings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
620
diff
changeset
|
20 |
819c4121f9a0
FormCreate/FormSubmit: change to LF-only line endings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
620
diff
changeset
|
21 self.action = "" |
819c4121f9a0
FormCreate/FormSubmit: change to LF-only line endings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
620
diff
changeset
|
22 self.actions = () |
819c4121f9a0
FormCreate/FormSubmit: change to LF-only line endings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
620
diff
changeset
|
23 |
819c4121f9a0
FormCreate/FormSubmit: change to LF-only line endings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
620
diff
changeset
|
24 length = len(self._main) |
819c4121f9a0
FormCreate/FormSubmit: change to LF-only line endings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
620
diff
changeset
|
25 |
819c4121f9a0
FormCreate/FormSubmit: change to LF-only line endings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
620
diff
changeset
|
26 if length > 1: |
819c4121f9a0
FormCreate/FormSubmit: change to LF-only line endings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
620
diff
changeset
|
27 self.action = "loadactions" |
819c4121f9a0
FormCreate/FormSubmit: change to LF-only line endings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
620
diff
changeset
|
28 self.actions = self._main |
819c4121f9a0
FormCreate/FormSubmit: change to LF-only line endings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
620
diff
changeset
|
29 elif length == 1: |
819c4121f9a0
FormCreate/FormSubmit: change to LF-only line endings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
620
diff
changeset
|
30 self.action = self._main[0] |
819c4121f9a0
FormCreate/FormSubmit: change to LF-only line endings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
620
diff
changeset
|
31 |
819c4121f9a0
FormCreate/FormSubmit: change to LF-only line endings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
620
diff
changeset
|
32 self.targetfile = self._attribs.get('targetfile', '') |
819c4121f9a0
FormCreate/FormSubmit: change to LF-only line endings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
620
diff
changeset
|
33 self.targetemail = self._attribs.get('targetemail', '') |
819c4121f9a0
FormCreate/FormSubmit: change to LF-only line endings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
620
diff
changeset
|
34 self.targetpage = self._attribs.get('targetpage', '') |
819c4121f9a0
FormCreate/FormSubmit: change to LF-only line endings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
620
diff
changeset
|
35 |
819c4121f9a0
FormCreate/FormSubmit: change to LF-only line endings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
620
diff
changeset
|
36 def validate(self): |
819c4121f9a0
FormCreate/FormSubmit: change to LF-only line endings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
620
diff
changeset
|
37 FormBase.validate(self) |
819c4121f9a0
FormCreate/FormSubmit: change to LF-only line endings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
620
diff
changeset
|
38 if not self.action: |
819c4121f9a0
FormCreate/FormSubmit: change to LF-only line endings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
620
diff
changeset
|
39 self.msg = self._("No action was specified in macro [%(macro)s]" % {'macro': self.module}) |
819c4121f9a0
FormCreate/FormSubmit: change to LF-only line endings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
620
diff
changeset
|
40 raise FormValidationError(self.msg) |
819c4121f9a0
FormCreate/FormSubmit: change to LF-only line endings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
620
diff
changeset
|
41 |
819c4121f9a0
FormCreate/FormSubmit: change to LF-only line endings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
620
diff
changeset
|
42 def build(self): |
819c4121f9a0
FormCreate/FormSubmit: change to LF-only line endings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
620
diff
changeset
|
43 self.output += "<form enctype=\"multipart/form-data\" action=\"\" method=\"post\">\n" |
819c4121f9a0
FormCreate/FormSubmit: change to LF-only line endings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
620
diff
changeset
|
44 self.output += self._build_input("hidden", "doit", {'value': "Do it"}) |
819c4121f9a0
FormCreate/FormSubmit: change to LF-only line endings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
620
diff
changeset
|
45 self.output += self._build_input("hidden", "action", {'value': self.action}) |
819c4121f9a0
FormCreate/FormSubmit: change to LF-only line endings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
620
diff
changeset
|
46 |
819c4121f9a0
FormCreate/FormSubmit: change to LF-only line endings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
620
diff
changeset
|
47 if self.actions: |
819c4121f9a0
FormCreate/FormSubmit: change to LF-only line endings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
620
diff
changeset
|
48 for action in self.actions: |
819c4121f9a0
FormCreate/FormSubmit: change to LF-only line endings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
620
diff
changeset
|
49 self.output += self._build_input("hidden", "actions[]", {'value': action}) |
819c4121f9a0
FormCreate/FormSubmit: change to LF-only line endings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
620
diff
changeset
|
50 |
819c4121f9a0
FormCreate/FormSubmit: change to LF-only line endings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
620
diff
changeset
|
51 if self.targetfile: |
819c4121f9a0
FormCreate/FormSubmit: change to LF-only line endings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
620
diff
changeset
|
52 self.output += self._build_input("hidden", "targetfile", {'value': self.targetfile}) |
819c4121f9a0
FormCreate/FormSubmit: change to LF-only line endings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
620
diff
changeset
|
53 |
819c4121f9a0
FormCreate/FormSubmit: change to LF-only line endings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
620
diff
changeset
|
54 if self.targetemail: |
819c4121f9a0
FormCreate/FormSubmit: change to LF-only line endings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
620
diff
changeset
|
55 self.output += self._build_input("hidden", "targetemail", {'value': self.targetemail}) |
819c4121f9a0
FormCreate/FormSubmit: change to LF-only line endings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
620
diff
changeset
|
56 |
819c4121f9a0
FormCreate/FormSubmit: change to LF-only line endings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
620
diff
changeset
|
57 if self.targetpage: |
819c4121f9a0
FormCreate/FormSubmit: change to LF-only line endings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
620
diff
changeset
|
58 page = Page(self.request, self.targetpage) |
819c4121f9a0
FormCreate/FormSubmit: change to LF-only line endings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
620
diff
changeset
|
59 if page.isStandardPage(False): |
819c4121f9a0
FormCreate/FormSubmit: change to LF-only line endings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
620
diff
changeset
|
60 self.output += self._build_input("hidden", "targetpage", {'value': self.targetpage}) |
819c4121f9a0
FormCreate/FormSubmit: change to LF-only line endings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
620
diff
changeset
|
61 else: |
819c4121f9a0
FormCreate/FormSubmit: change to LF-only line endings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
620
diff
changeset
|
62 self.output += self._("Targetpage [%(targetpage)s] does not exists" % {'targetpage': self.targetpage}) |
819c4121f9a0
FormCreate/FormSubmit: change to LF-only line endings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
620
diff
changeset
|
63 |
819c4121f9a0
FormCreate/FormSubmit: change to LF-only line endings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
620
diff
changeset
|
64 |
819c4121f9a0
FormCreate/FormSubmit: change to LF-only line endings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
620
diff
changeset
|
65 def execute(macro, args): |
819c4121f9a0
FormCreate/FormSubmit: change to LF-only line endings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
620
diff
changeset
|
66 return FormHeader(macro, args).render() |