Welcome to MAPS 2.0
[clearscm.git] / maps / JavaScript / ListActions.js
1 ////////////////////////////////////////////////////////////////////////////////
2 //
3 // File:        $RCSFile$
4 // Revision:    $Revision: 1.1 $
5 // Description: This JavaScript performs some simple validations for the 
6 //              actions buttons on the list page.
7 // Author:      Andrew@DeFaria.com
8 // Created:     Fri Nov 29 14:17:21  2002
9 // Modified:    $Date: 2013/06/12 14:05:47 $
10 // Language:    JavaScript
11 //
12 // (c) Copyright 2000-2006, Andrew@DeFaria.com, all rights reserved.
13 //
14 ////////////////////////////////////////////////////////////////////////////////
15 function CheckOnly1Checked (form) {
16   var nbr_checked = 0;
17
18   // Loop through form and count the number of checked boxes
19   for (var i = 0; i < form.length; i++) {
20     var e = form.elements [i];
21     if (e.type == "checkbox" && e.checked) {
22       nbr_checked++;
23     } // if
24   } // for
25
26   if (nbr_checked == 1) {
27     return true;
28   } else if (nbr_checked > 1) {
29     alert ("You can only have one item marked for this action");
30     return false;
31   } else {
32     alert ("No lines were marked!");
33     return false;
34   } // if
35 } // CheckOnly1Checked
36
37 function CheckAtLeast1Checked (form) {
38   var nbr_checked = 0;
39
40   // Loop through form and count the number of checked boxes
41   for (var i = 0; i < form.length; i++) {
42     var e = form.elements [i];
43     if (e.type == "checkbox" && e.checked) {
44       nbr_checked++;
45     } // if
46   } // for
47
48   if (nbr_checked > 0) {
49     return true;
50   } else {
51     alert ("No lines were marked!");
52     return false;
53   } // if
54 } // CheckAtLeast1Checked
55
56 function NoneChecked (form) {
57   var nbr_checked = 0;
58
59   // Loop through form and count the number of checked boxes
60   for (var i = 0; i < form.length; i++) {
61     var e = form.elements [i];
62     if (e.type == "checkbox" && e.checked) {
63       nbr_checked++;
64     } // if
65   } // for
66
67   if (nbr_checked == 0) {
68     return true;
69   } else {
70     alert ("You must not have any checkboxes checked to perform this action");
71     return false;
72   } // if
73 } // NoneChecked
74
75 function AreYouSure (message) {
76   return window.confirm (message);
77 } // AreYouSure
78
79 function ClearAll (form) {
80   for (var i = 0; i < form.length; i++) {
81     var e = form.elements [i];
82     if (e.type == "checkbox" && e.checked) {
83       e.checked = false;
84     } // if
85   } // for
86
87   return false;
88 } // ClearAll
89
90 function CheckEntry (form) {
91   var current_entry     = "";
92   var current_entry_nbr = 0;
93
94   var digits   = /[^\d]+(\d+)/;
95   var parmname = /([^\d]+)\d+/;
96   var retention = /\d+\s(day|days|week|weeks|month|months|year|years)$/i;
97
98   for (var i = 0; i < form.length; i++) {
99     var e = form.elements [i];
100     if (e.type == "text") {
101       var name = e.name;
102       var parm = name.match(parmname);
103       var nbr  = name.match(digits);
104       if (current_entry_nbr == 0) {
105         current_entry_nbr = nbr[1];
106       } // if
107       if (nbr[1] == current_entry_nbr) {
108         if (parm[1] == "pattern" || parm[1] == "domain") {
109           current_entry = current_entry + e.value;
110         } // if
111         if (parm[1] == "retention") {
112           if (e.value != '' && e.value.match(retention) == null) {
113             alert("Retention must be specified in terms of days, weeks, months "
114                 + "or years for entry #" + current_entry_nbr + ". Not \"" + e.value + "\"");
115             return false;
116           } // if
117         } // if
118         if (parm[1] == "hit_count") {
119           if (e.value == 0 || e.value == '' || parseInt(e.value)) {
120             // Do nothing
121           } else {
122             alert("Hit Count must be numeric for entry #" + current_entry_nbr);
123             return false;
124           } // if
125         } // if
126       } else {
127         if (current_entry == "") {
128           alert ("You must specify a value for Username and/or Domain for entry #" + current_entry_nbr);
129           return false;
130         } // if
131         current_entry_nbr = nbr[1];
132         current_entry     = e.value;
133       } // if
134     } // if
135   } // for
136
137   if (current_entry == "") {
138     alert ("You must specify a value for Username and/or Domain for entry #" + current_entry_nbr);
139     return false;
140   } else {
141     return true;
142   } // if
143 } // CheckEntry
144
145 function ChangePage (page, type, lines) {
146   window.location = "/maps/php/list.php" + "?type=" + type + "&next=" + (page - 1) * lines;
147 } // ChangePage
148