annotate templates/classic/html/help_controls.js @ 3135:64970263194c maint-0.7

merge from HEAD
author Richard Jones <richard@users.sourceforge.net>
date Sat, 12 Feb 2005 01:08:53 +0000
parents 72399c7c9bcc
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1663
09f0a54829eb Fixed spelling of "supersede";
Jean Jordaan <neaj@users.sourceforge.net>
parents: 1608
diff changeset
1 // initial values for either Nosy, Superseder, Topic and Waiting On,
09f0a54829eb Fixed spelling of "supersede";
Jean Jordaan <neaj@users.sourceforge.net>
parents: 1608
diff changeset
2 // depending on which has called
1608
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
3
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
4 original_field = window.opener.document.itemSynopsis[field].value;
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
5
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
6 function trim(value) {
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
7 var temp = value;
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
8 var obj = /^(\s*)([\W\w]*)(\b\s*$)/;
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
9 if (obj.test(temp)) { temp = temp.replace(obj, '$2'); }
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
10 var obj = / /g;
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
11 while (temp.match(obj)) { temp = temp.replace(obj, " "); }
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
12 return temp;
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
13 }
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
14
1899
d6c039c5b52b fixed javascript for help window for only one checkbox case
Richard Jones <richard@users.sourceforge.net>
parents: 1764
diff changeset
15 function determineList() {
3044
72399c7c9bcc merge from HEAD
Richard Jones <richard@users.sourceforge.net>
parents: 2272
diff changeset
16 // generate a comma-separated list of the checked items
72399c7c9bcc merge from HEAD
Richard Jones <richard@users.sourceforge.net>
parents: 2272
diff changeset
17 var list = new String('');
72399c7c9bcc merge from HEAD
Richard Jones <richard@users.sourceforge.net>
parents: 2272
diff changeset
18
72399c7c9bcc merge from HEAD
Richard Jones <richard@users.sourceforge.net>
parents: 2272
diff changeset
19 // either a checkbox object or an array of checkboxes
72399c7c9bcc merge from HEAD
Richard Jones <richard@users.sourceforge.net>
parents: 2272
diff changeset
20 var check = document.frm_help.check;
72399c7c9bcc merge from HEAD
Richard Jones <richard@users.sourceforge.net>
parents: 2272
diff changeset
21
72399c7c9bcc merge from HEAD
Richard Jones <richard@users.sourceforge.net>
parents: 2272
diff changeset
22 if ((check.length == undefined) && (check.checked != undefined)) {
72399c7c9bcc merge from HEAD
Richard Jones <richard@users.sourceforge.net>
parents: 2272
diff changeset
23 // only one checkbox on page
72399c7c9bcc merge from HEAD
Richard Jones <richard@users.sourceforge.net>
parents: 2272
diff changeset
24 if (check.checked) {
72399c7c9bcc merge from HEAD
Richard Jones <richard@users.sourceforge.net>
parents: 2272
diff changeset
25 list = check.value;
72399c7c9bcc merge from HEAD
Richard Jones <richard@users.sourceforge.net>
parents: 2272
diff changeset
26 }
72399c7c9bcc merge from HEAD
Richard Jones <richard@users.sourceforge.net>
parents: 2272
diff changeset
27 } else {
72399c7c9bcc merge from HEAD
Richard Jones <richard@users.sourceforge.net>
parents: 2272
diff changeset
28 // array of checkboxes
72399c7c9bcc merge from HEAD
Richard Jones <richard@users.sourceforge.net>
parents: 2272
diff changeset
29 for (box=0; box < check.length; box++) {
72399c7c9bcc merge from HEAD
Richard Jones <richard@users.sourceforge.net>
parents: 2272
diff changeset
30 if (check[box].checked) {
72399c7c9bcc merge from HEAD
Richard Jones <richard@users.sourceforge.net>
parents: 2272
diff changeset
31 if (list.length == 0) {
72399c7c9bcc merge from HEAD
Richard Jones <richard@users.sourceforge.net>
parents: 2272
diff changeset
32 separator = '';
72399c7c9bcc merge from HEAD
Richard Jones <richard@users.sourceforge.net>
parents: 2272
diff changeset
33 }
72399c7c9bcc merge from HEAD
Richard Jones <richard@users.sourceforge.net>
parents: 2272
diff changeset
34 else {
72399c7c9bcc merge from HEAD
Richard Jones <richard@users.sourceforge.net>
parents: 2272
diff changeset
35 separator = ',';
72399c7c9bcc merge from HEAD
Richard Jones <richard@users.sourceforge.net>
parents: 2272
diff changeset
36 }
72399c7c9bcc merge from HEAD
Richard Jones <richard@users.sourceforge.net>
parents: 2272
diff changeset
37 // we used to use an Array and push / join, but IE5.0 sux
72399c7c9bcc merge from HEAD
Richard Jones <richard@users.sourceforge.net>
parents: 2272
diff changeset
38 list = list + separator + check[box].value;
72399c7c9bcc merge from HEAD
Richard Jones <richard@users.sourceforge.net>
parents: 2272
diff changeset
39 }
72399c7c9bcc merge from HEAD
Richard Jones <richard@users.sourceforge.net>
parents: 2272
diff changeset
40 }
72399c7c9bcc merge from HEAD
Richard Jones <richard@users.sourceforge.net>
parents: 2272
diff changeset
41 }
72399c7c9bcc merge from HEAD
Richard Jones <richard@users.sourceforge.net>
parents: 2272
diff changeset
42 return list;
1899
d6c039c5b52b fixed javascript for help window for only one checkbox case
Richard Jones <richard@users.sourceforge.net>
parents: 1764
diff changeset
43 }
d6c039c5b52b fixed javascript for help window for only one checkbox case
Richard Jones <richard@users.sourceforge.net>
parents: 1764
diff changeset
44
1608
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
45 function updateList() {
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
46 // write back to opener window
1764
cd50fbc275a1 Fix JavaScript error when help was asked while no keyword was defined.
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents: 1663
diff changeset
47 if (document.frm_help.check==undefined) { return; }
1899
d6c039c5b52b fixed javascript for help window for only one checkbox case
Richard Jones <richard@users.sourceforge.net>
parents: 1764
diff changeset
48 window.opener.document.itemSynopsis[field].value = determineList();
1608
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
49 }
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
50
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
51 function updatePreview() {
1899
d6c039c5b52b fixed javascript for help window for only one checkbox case
Richard Jones <richard@users.sourceforge.net>
parents: 1764
diff changeset
52 // update the preview box
1764
cd50fbc275a1 Fix JavaScript error when help was asked while no keyword was defined.
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents: 1663
diff changeset
53 if (document.frm_help.check==undefined) { return; }
1899
d6c039c5b52b fixed javascript for help window for only one checkbox case
Richard Jones <richard@users.sourceforge.net>
parents: 1764
diff changeset
54 writePreview(determineList());
1608
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
55 }
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
56
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
57 function clearList() {
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
58 // uncheck all checkboxes
1764
cd50fbc275a1 Fix JavaScript error when help was asked while no keyword was defined.
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents: 1663
diff changeset
59 if (document.frm_help.check==undefined) { return; }
1608
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
60 for (box=0; box < document.frm_help.check.length; box++) {
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
61 document.frm_help.check[box].checked = false;
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
62 }
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
63 }
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
64
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
65 function reviseList(vals) {
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
66 // update the checkboxes based on the preview field
1764
cd50fbc275a1 Fix JavaScript error when help was asked while no keyword was defined.
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents: 1663
diff changeset
67 if (document.frm_help.check==undefined) { return; }
1608
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
68 var to_check;
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
69 var list = vals.split(",");
1899
d6c039c5b52b fixed javascript for help window for only one checkbox case
Richard Jones <richard@users.sourceforge.net>
parents: 1764
diff changeset
70 if (document.frm_help.check.length==undefined) {
d6c039c5b52b fixed javascript for help window for only one checkbox case
Richard Jones <richard@users.sourceforge.net>
parents: 1764
diff changeset
71 check = document.frm_help.check;
d6c039c5b52b fixed javascript for help window for only one checkbox case
Richard Jones <richard@users.sourceforge.net>
parents: 1764
diff changeset
72 to_check = false;
d6c039c5b52b fixed javascript for help window for only one checkbox case
Richard Jones <richard@users.sourceforge.net>
parents: 1764
diff changeset
73 for (val in list) {
d6c039c5b52b fixed javascript for help window for only one checkbox case
Richard Jones <richard@users.sourceforge.net>
parents: 1764
diff changeset
74 if (check.value==trim(list[val])) {
d6c039c5b52b fixed javascript for help window for only one checkbox case
Richard Jones <richard@users.sourceforge.net>
parents: 1764
diff changeset
75 to_check = true;
d6c039c5b52b fixed javascript for help window for only one checkbox case
Richard Jones <richard@users.sourceforge.net>
parents: 1764
diff changeset
76 break;
d6c039c5b52b fixed javascript for help window for only one checkbox case
Richard Jones <richard@users.sourceforge.net>
parents: 1764
diff changeset
77 }
d6c039c5b52b fixed javascript for help window for only one checkbox case
Richard Jones <richard@users.sourceforge.net>
parents: 1764
diff changeset
78 }
d6c039c5b52b fixed javascript for help window for only one checkbox case
Richard Jones <richard@users.sourceforge.net>
parents: 1764
diff changeset
79 check.checked = to_check;
d6c039c5b52b fixed javascript for help window for only one checkbox case
Richard Jones <richard@users.sourceforge.net>
parents: 1764
diff changeset
80 } else {
d6c039c5b52b fixed javascript for help window for only one checkbox case
Richard Jones <richard@users.sourceforge.net>
parents: 1764
diff changeset
81 for (box=0; box < document.frm_help.check.length; box++) {
1608
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
82 check = document.frm_help.check[box];
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
83 to_check = false;
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
84 for (val in list) {
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
85 if (check.value==trim(list[val])) {
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
86 to_check = true;
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
87 break;
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
88 }
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
89 }
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
90 check.checked = to_check;
1899
d6c039c5b52b fixed javascript for help window for only one checkbox case
Richard Jones <richard@users.sourceforge.net>
parents: 1764
diff changeset
91 }
1608
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
92 }
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
93 }
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
94
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
95 function resetList() {
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
96 // reset preview and check boxes to initial values
1764
cd50fbc275a1 Fix JavaScript error when help was asked while no keyword was defined.
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents: 1663
diff changeset
97 if (document.frm_help.check==undefined) { return; }
1899
d6c039c5b52b fixed javascript for help window for only one checkbox case
Richard Jones <richard@users.sourceforge.net>
parents: 1764
diff changeset
98 writePreview(original_field);
d6c039c5b52b fixed javascript for help window for only one checkbox case
Richard Jones <richard@users.sourceforge.net>
parents: 1764
diff changeset
99 reviseList(original_field);
1608
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
100 }
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
101
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
102 function writePreview(val) {
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
103 // writes a value to the text_preview
1663
09f0a54829eb Fixed spelling of "supersede";
Jean Jordaan <neaj@users.sourceforge.net>
parents: 1608
diff changeset
104 document.frm_help.text_preview.value = val;
1608
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
105 }
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
106
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
107 function focusField(name) {
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
108 for(i=0; i < document.forms.length; ++i) {
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
109 var obj = document.forms[i].elements[name];
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
110 if (obj && obj.focus) {obj.focus();}
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
111 }
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
112 }
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
113
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
114 function selectField(name) {
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
115 for(i=0; i < document.forms.length; ++i) {
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
116 var obj = document.forms[i].elements[name];
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
117 if (obj && obj.focus){obj.focus();}
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
118 if (obj && obj.select){obj.select();}
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
119 }
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
120 }
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
121

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