Author: eallen
Date: 2010-07-08 08:30:48 -0400 (Thu, 08 Jul 2010)
New Revision: 4087
Modified:
mgmt/newdata/cumin/resources/app.js
Log:
Fix problem with checkboxes on SelectionTables. You couldn't uncheck boxes that were
checked when the page was loaded.
Modified: mgmt/newdata/cumin/resources/app.js
===================================================================
--- mgmt/newdata/cumin/resources/app.js 2010-07-07 21:34:03 UTC (rev 4086)
+++ mgmt/newdata/cumin/resources/app.js 2010-07-08 12:30:48 UTC (rev 4087)
@@ -47,14 +47,19 @@
if ((vals.length == 1) && (vals[0] == ""))
vals.empty();
var valIndex = vals.indexOf(val);
+ var negValIndex = vals.indexOf("-"+val);
if (check.checked) {
+ // the checkbox was just checked
+ if (negValIndex > -1)
+ vals.erase("-"+val);
+ else if (valIndex == -1)
+ vals.push(val);
+ } else {
if (valIndex > -1)
- vals[valIndex] = val;
- else
- vals.push(val);
+ vals.erase(val);
+ else if (negValIndex == -1)
+ vals.push("-"+val);
}
- else
- vals = vals.erase(val);
if (vals.length == 0)
delete hash[name];
else
@@ -70,15 +75,21 @@
var checks = document.forms[0].elements[key];
if (checks) {
var vals = $A(hash[key].split('|'));
+ if ((vals.length == 1) && (vals[0] == ""))
+ vals.empty();
if (typeof checks.length == "undefined") {
if (vals.contains(checks.value)) {
checks.checked = true;
}
+ if (vals.contains("-"+checks.value))
+ checks.checked = false;
} else {
for (var i=0; i < checks.length; i++) {
if (vals.contains(checks[i].value)) {
checks[i].checked = true;
}
+ if (vals.contains("-"+checks[i].value))
+ checks[i].checked = false;
}
}
}
Show replies by date