Mercurial > p > roundup > code
annotate templates/classic/html/user_utils.js @ 3896:fca0365521fc
ignore client shutdown exceptions when sending responses
patch from Ulrik Miaelsson
If the user clicks the stop button, or click another link before
the previous has finished loading, or something similar an IOError
exception will be raised which results in the admin being sent an
email.
This can understandably be pretty annoying if your users are
doing that on a regular basis. So we'll trap that exception
and ignore it.
| author | Justus Pendleton <jpend@users.sourceforge.net> |
|---|---|
| date | Tue, 11 Sep 2007 21:30:14 +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 |
