root/cherokee/trunk/admin/ModuleErrorRedir.py

Revision 2367, 1.8 kB (checked in by taher, 3 weeks ago)

--

Line 
1 import validations
2
3 from Form import *
4 from Table import *
5 from Module import *
6 from consts import *
7
8 DATA_VALIDATION = [
9     ("new_error_url", validations.is_url_or_path)
10 ]
11
12
13 class ModuleErrorRedir (Module, FormHelper):
14     PROPERTIES = [x[0] for x in ERROR_CODES]
15
16     def __init__ (self, cfg, prefix, submit_url):
17         FormHelper.__init__ (self, 'error_redir', cfg)
18         Module.__init__ (self, 'error_redir', cfg, prefix, submit_url)
19
20     def _op_render (self):
21         txt = ''
22
23         # Render error list
24         errors = self._cfg[self._prefix]
25         if errors and errors.has_child():
26             txt += '<h3>Configured error codes</h3>'
27             table = Table(3,1)
28             table += ('Error Code', 'URL', '')
29             for error in errors:
30                 js = "post_del_key('/ajax/update', '%s!%s');" % (self._prefix, error)
31                 link_del = self.InstanceImage ("bin.png", "Delete", border="0", onClick=js)
32                 table += (error, self._cfg.get_val('%s!%s'%(self._prefix,error)), link_del)
33             txt += str(table)
34
35         # New error
36         txt += '<h3>Add error codes</h3>'
37         table = Table(3,1)
38         table += ('Error', 'URL', '')
39
40         options = EntryOptions ('new_error_code', ERROR_CODES, noautosubmit=True)
41         entry = self.InstanceEntry('new_error_url', 'text', size=30)
42         table += (options, entry, SUBMIT_ADD)
43
44         txt += str(table)
45         return txt
46
47     def _op_apply_changes (self, uri, post):
48         self.ValidateChange_SingleKey ('new_error_url', post, DATA_VALIDATION)
49         if self.has_errors():
50             return
51
52         new_error = post.pop('new_error_code')
53         new_url   = post.pop('new_error_url')
54
55         if new_error and new_url:
56             self._cfg['%s!%s'%(self._prefix, new_error)] = new_url
Note: See TracBrowser for help on using the browser.