Mercurial > p > roundup > code
annotate templates/classic/html/user_utils.js @ 3882:46ef2a6fd79d
config option to limit nosy attachments based on size
reworking of patch [SF#772323] from Philipp Gortan
It tries to avoid reading the file contents just to
get the file size but that was too hard for metakit backends.
They don't inherit from blobfiles.FileStorage which makes
it more challenging. Really that backend should be reworked
to inherit from FileStorage.
I'm not sure I like the default being sys.maxint. Maybe have
0 == unlimited? But what if someone really wanted to set it to
0 to mean "don't attach anything"?
| author | Justus Pendleton <jpend@users.sourceforge.net> |
|---|---|
| date | Mon, 03 Sep 2007 17:14:09 +0000 |
| parents | 18def94e5150 |
| children | 3eb45e7f0d57 |
| rev | line source |
|---|---|
|
3704
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
1 // User Editing Utilities |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
2 |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
3 /** |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
4 * for new users: |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
5 * Depending on the input field which calls it, takes the value |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
6 * and dispatches it to certain other input fields: |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
7 * |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
8 * address |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
9 * +-> username |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
10 * | `-> realname |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
11 * `-> organisation |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
12 */ |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
13 function split_name(that) { |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
14 var raw = that.value |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
15 var val = trim(raw) |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
16 if (val == '') { |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
17 return |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
18 } |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
19 var username='' |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
20 var realname='' |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
21 var address='' |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
22 switch (that.name) { |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
23 case 'address': |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
24 address=val |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
25 break |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
26 case 'username': |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
27 username=val |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
28 break |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
29 case 'realname': |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
30 realname=val |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
31 break |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
32 default: |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
33 alert('Ooops - unknown name field '+that.name+'!') |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
34 return |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
35 } |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
36 var the_form = that.form; |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
37 |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
38 function field_empty(name) { |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
39 return the_form[name].value == '' |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
40 } |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
41 |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
42 // no break statements - on purpose! |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
43 switch (that.name) { |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
44 case 'address': |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
45 var split1 = address.split('@') |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
46 if (field_empty('username')) { |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
47 username = split1[0] |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
48 the_form.username.value = username |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
49 } |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
50 if (field_empty('organisation')) { |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
51 the_form.organisation.value = default_organisation(split1[1]) |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
52 } |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
53 case 'username': |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
54 if (field_empty('realname')) { |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
55 realname = Cap(username.split('.').join(' ')) |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
56 the_form.realname.value = realname |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
57 } |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
58 case 'realname': |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
59 if (field_empty('username')) { |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
60 username = Cap(realname.replace(' ', '.')) |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
61 the_form.username.value = username |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
62 } |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
63 if (the_form.firstname && the_form.lastname) { |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
64 var split2 = realname.split(' ') |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
65 var firstname='', lastname='' |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
66 firstname = split2[0] |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
67 lastname = split2.slice(1).join(' ') |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
68 if (field_empty('firstname')) { |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
69 the_form.firstname.value = firstname |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
70 } |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
71 if (field_empty('lastname')) { |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
72 the_form.lastname.value = lastname |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
73 } |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
74 } |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
75 } |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
76 } |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
77 |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
78 function SubCap(str) { |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
79 switch (str) { |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
80 case 'de': case 'do': case 'da': |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
81 case 'du': case 'von': |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
82 return str; |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
83 } |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
84 if (str.toLowerCase().slice(0,2) == 'mc') { |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
85 return 'Mc'+str.slice(2,3).toUpperCase()+str.slice(3).toLowerCase() |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
86 } |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
87 return str.slice(0,1).toUpperCase()+str.slice(1).toLowerCase() |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
88 } |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
89 |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
90 function Cap(str) { |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
91 var liz = str.split(' ') |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
92 for (var i=0; i<liz.length; i++) { |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
93 liz[i] = SubCap(liz[i]) |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
94 } |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
95 return liz.join(' ') |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
96 } |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
97 |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
98 /** |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
99 * Takes a domain name (behind the @ part of an email address) |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
100 * Customise this to handle the mail domains you're interested in |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
101 */ |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
102 function default_organisation(orga) { |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
103 switch (orga.toLowerCase()) { |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
104 case 'gmx': |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
105 case 'yahoo': |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
106 return '' |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
107 default: |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
108 return orga |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
109 } |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
110 } |
|
18def94e5150
macro th_label:
Tobias Herp <tobias-herp@users.sourceforge.net>
parents:
diff
changeset
|
111 |
