annotate templates/classic/html/help_controls.js @ 3703:b0b333957d91

active input elements highlighting (via CSS; not for buttons)
author Tobias Herp <tobias-herp@users.sourceforge.net>
date Sun, 17 Sep 2006 23:22:29 +0000
parents 3f3ca882deb2
children 18def94e5150
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
2761
10a49678ebf2 allow listing popup to be used in query forms (thanks Marcus Priesch)
Richard Jones <richard@users.sourceforge.net>
parents: 2361
diff changeset
3 original_field = form[field].value;
1608
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
4
2361
9cdc49488fe6 define the "undefined" var manually
Richard Jones <richard@users.sourceforge.net>
parents: 2273
diff changeset
5 // Some browsers (ok, IE) don't define the "undefined" variable.
9cdc49488fe6 define the "undefined" var manually
Richard Jones <richard@users.sourceforge.net>
parents: 2273
diff changeset
6 undefined = document.geez_IE_is_really_friggin_annoying;
1608
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
7
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
8 function trim(value) {
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
9 var temp = value;
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
10 var obj = /^(\s*)([\W\w]*)(\b\s*$)/;
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
11 if (obj.test(temp)) { temp = temp.replace(obj, '$2'); }
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
12 var obj = / /g;
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
13 while (temp.match(obj)) { temp = temp.replace(obj, " "); }
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
14 return temp;
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
15 }
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
16
1899
d6c039c5b52b fixed javascript for help window for only one checkbox case
Richard Jones <richard@users.sourceforge.net>
parents: 1764
diff changeset
17 function determineList() {
3043
3f3ca882deb2 fix "(list)" popup when list is one item long [SF#1064716]
Richard Jones <richard@users.sourceforge.net>
parents: 2761
diff changeset
18 // generate a comma-separated list of the checked items
3f3ca882deb2 fix "(list)" popup when list is one item long [SF#1064716]
Richard Jones <richard@users.sourceforge.net>
parents: 2761
diff changeset
19 var list = new String('');
3f3ca882deb2 fix "(list)" popup when list is one item long [SF#1064716]
Richard Jones <richard@users.sourceforge.net>
parents: 2761
diff changeset
20
3f3ca882deb2 fix "(list)" popup when list is one item long [SF#1064716]
Richard Jones <richard@users.sourceforge.net>
parents: 2761
diff changeset
21 // either a checkbox object or an array of checkboxes
3f3ca882deb2 fix "(list)" popup when list is one item long [SF#1064716]
Richard Jones <richard@users.sourceforge.net>
parents: 2761
diff changeset
22 var check = document.frm_help.check;
3f3ca882deb2 fix "(list)" popup when list is one item long [SF#1064716]
Richard Jones <richard@users.sourceforge.net>
parents: 2761
diff changeset
23
3f3ca882deb2 fix "(list)" popup when list is one item long [SF#1064716]
Richard Jones <richard@users.sourceforge.net>
parents: 2761
diff changeset
24 if ((check.length == undefined) && (check.checked != undefined)) {
3f3ca882deb2 fix "(list)" popup when list is one item long [SF#1064716]
Richard Jones <richard@users.sourceforge.net>
parents: 2761
diff changeset
25 // only one checkbox on page
3f3ca882deb2 fix "(list)" popup when list is one item long [SF#1064716]
Richard Jones <richard@users.sourceforge.net>
parents: 2761
diff changeset
26 if (check.checked) {
3f3ca882deb2 fix "(list)" popup when list is one item long [SF#1064716]
Richard Jones <richard@users.sourceforge.net>
parents: 2761
diff changeset
27 list = check.value;
3f3ca882deb2 fix "(list)" popup when list is one item long [SF#1064716]
Richard Jones <richard@users.sourceforge.net>
parents: 2761
diff changeset
28 }
3f3ca882deb2 fix "(list)" popup when list is one item long [SF#1064716]
Richard Jones <richard@users.sourceforge.net>
parents: 2761
diff changeset
29 } else {
3f3ca882deb2 fix "(list)" popup when list is one item long [SF#1064716]
Richard Jones <richard@users.sourceforge.net>
parents: 2761
diff changeset
30 // array of checkboxes
3f3ca882deb2 fix "(list)" popup when list is one item long [SF#1064716]
Richard Jones <richard@users.sourceforge.net>
parents: 2761
diff changeset
31 for (box=0; box < check.length; box++) {
3f3ca882deb2 fix "(list)" popup when list is one item long [SF#1064716]
Richard Jones <richard@users.sourceforge.net>
parents: 2761
diff changeset
32 if (check[box].checked) {
3f3ca882deb2 fix "(list)" popup when list is one item long [SF#1064716]
Richard Jones <richard@users.sourceforge.net>
parents: 2761
diff changeset
33 if (list.length == 0) {
3f3ca882deb2 fix "(list)" popup when list is one item long [SF#1064716]
Richard Jones <richard@users.sourceforge.net>
parents: 2761
diff changeset
34 separator = '';
3f3ca882deb2 fix "(list)" popup when list is one item long [SF#1064716]
Richard Jones <richard@users.sourceforge.net>
parents: 2761
diff changeset
35 }
3f3ca882deb2 fix "(list)" popup when list is one item long [SF#1064716]
Richard Jones <richard@users.sourceforge.net>
parents: 2761
diff changeset
36 else {
3f3ca882deb2 fix "(list)" popup when list is one item long [SF#1064716]
Richard Jones <richard@users.sourceforge.net>
parents: 2761
diff changeset
37 separator = ',';
3f3ca882deb2 fix "(list)" popup when list is one item long [SF#1064716]
Richard Jones <richard@users.sourceforge.net>
parents: 2761
diff changeset
38 }
3f3ca882deb2 fix "(list)" popup when list is one item long [SF#1064716]
Richard Jones <richard@users.sourceforge.net>
parents: 2761
diff changeset
39 // we used to use an Array and push / join, but IE5.0 sux
3f3ca882deb2 fix "(list)" popup when list is one item long [SF#1064716]
Richard Jones <richard@users.sourceforge.net>
parents: 2761
diff changeset
40 list = list + separator + check[box].value;
3f3ca882deb2 fix "(list)" popup when list is one item long [SF#1064716]
Richard Jones <richard@users.sourceforge.net>
parents: 2761
diff changeset
41 }
3f3ca882deb2 fix "(list)" popup when list is one item long [SF#1064716]
Richard Jones <richard@users.sourceforge.net>
parents: 2761
diff changeset
42 }
3f3ca882deb2 fix "(list)" popup when list is one item long [SF#1064716]
Richard Jones <richard@users.sourceforge.net>
parents: 2761
diff changeset
43 }
3f3ca882deb2 fix "(list)" popup when list is one item long [SF#1064716]
Richard Jones <richard@users.sourceforge.net>
parents: 2761
diff changeset
44 return list;
1899
d6c039c5b52b fixed javascript for help window for only one checkbox case
Richard Jones <richard@users.sourceforge.net>
parents: 1764
diff changeset
45 }
d6c039c5b52b fixed javascript for help window for only one checkbox case
Richard Jones <richard@users.sourceforge.net>
parents: 1764
diff changeset
46
1608
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
47 function updateList() {
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
48 // 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
49 if (document.frm_help.check==undefined) { return; }
2761
10a49678ebf2 allow listing popup to be used in query forms (thanks Marcus Priesch)
Richard Jones <richard@users.sourceforge.net>
parents: 2361
diff changeset
50 form[field].value = determineList();
1608
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
51 }
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
52
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
53 function updatePreview() {
1899
d6c039c5b52b fixed javascript for help window for only one checkbox case
Richard Jones <richard@users.sourceforge.net>
parents: 1764
diff changeset
54 // 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
55 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
56 writePreview(determineList());
1608
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
57 }
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
58
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
59 function clearList() {
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
60 // 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
61 if (document.frm_help.check==undefined) { return; }
1608
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
62 for (box=0; box < document.frm_help.check.length; box++) {
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
63 document.frm_help.check[box].checked = false;
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 }
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
66
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
67 function reviseList(vals) {
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
68 // 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
69 if (document.frm_help.check==undefined) { return; }
1608
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
70 var to_check;
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
71 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
72 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
73 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
74 to_check = false;
d6c039c5b52b fixed javascript for help window for only one checkbox case
Richard Jones <richard@users.sourceforge.net>
parents: 1764
diff changeset
75 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
76 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
77 to_check = true;
d6c039c5b52b fixed javascript for help window for only one checkbox case
Richard Jones <richard@users.sourceforge.net>
parents: 1764
diff changeset
78 break;
d6c039c5b52b fixed javascript for help window for only one checkbox case
Richard Jones <richard@users.sourceforge.net>
parents: 1764
diff changeset
79 }
d6c039c5b52b fixed javascript for help window for only one checkbox case
Richard Jones <richard@users.sourceforge.net>
parents: 1764
diff changeset
80 }
d6c039c5b52b fixed javascript for help window for only one checkbox case
Richard Jones <richard@users.sourceforge.net>
parents: 1764
diff changeset
81 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
82 } else {
d6c039c5b52b fixed javascript for help window for only one checkbox case
Richard Jones <richard@users.sourceforge.net>
parents: 1764
diff changeset
83 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
84 check = document.frm_help.check[box];
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
85 to_check = false;
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
86 for (val in list) {
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
87 if (check.value==trim(list[val])) {
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
88 to_check = true;
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
89 break;
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
90 }
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
91 }
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
92 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
93 }
1608
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 }
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
96
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
97 function resetList() {
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
98 // 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
99 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
100 writePreview(original_field);
d6c039c5b52b fixed javascript for help window for only one checkbox case
Richard Jones <richard@users.sourceforge.net>
parents: 1764
diff changeset
101 reviseList(original_field);
1608
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
102 }
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
103
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
104 function writePreview(val) {
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
105 // writes a value to the text_preview
1663
09f0a54829eb Fixed spelling of "supersede";
Jean Jordaan <neaj@users.sourceforge.net>
parents: 1608
diff changeset
106 document.frm_help.text_preview.value = val;
1608
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
107 }
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
108
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
109 function focusField(name) {
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
110 for(i=0; i < document.forms.length; ++i) {
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
111 var obj = document.forms[i].elements[name];
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
112 if (obj && obj.focus) {obj.focus();}
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 }
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
115
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
116 function selectField(name) {
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
117 for(i=0; i < document.forms.length; ++i) {
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
118 var obj = document.forms[i].elements[name];
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
119 if (obj && obj.focus){obj.focus();}
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
120 if (obj && obj.select){obj.select();}
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
121 }
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
122 }
49dd1bf17d66 new improved help controls
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
123

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