annotate templates/classic/html/user_utils.js @ 3854:f4e8dc583256

Restored subject parser regexp to the string it was before the... ...implementation of customization of it, i.e., the version from CVS revision 1.184 of mailgw.py. This makes 'testFollowupTitleMatchMultiRe' work again.
author Erik Forsberg <forsberg@users.sourceforge.net>
date Sat, 12 May 2007 16:14:54 +0000
parents 18def94e5150
children 3eb45e7f0d57
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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

Roundup Issue Tracker: http://roundup-tracker.org/