annotate templates/classic/html/user_utils.js @ 3875:64a12bd91fc0

allow searching for issues with empty topics [SF#610787] points out that the classic template doesn't allow a way to search for issues that don't have a topic. Priority, status, and assigned do, so I've remedied the oversight by adding a new option to Topic. This closes [SF#610787].
author Justus Pendleton <jpend@users.sourceforge.net>
date Fri, 31 Aug 2007 17:51:59 +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/