| 57 | | |
|---|
| 58 | | |
|---|
| 59 | | |
|---|
| 60 | | function setupAccessForm(chkBoxObj,formObj) { |
|---|
| 61 | | switch (chkBoxObj.value) { |
|---|
| 62 | | case "A": // All |
|---|
| 63 | | if (chkBoxObj.checked) { |
|---|
| 64 | | for (i = 0; i < formObj.howItem.length; i++) { |
|---|
| 65 | | if (formObj.howItem[i].value != "A") { |
|---|
| 66 | | formObj.howItem[i].checked = false; |
|---|
| 67 | | formObj.howItem[i].disabled = true; |
|---|
| 68 | | // now iterate over corresponding radio buttons for each howItem |
|---|
| 69 | | for (j = 0; j < formObj[formObj.howItem[i].value].length; j++) { |
|---|
| 70 | | formObj[formObj.howItem[i].value][j].disabled = true; |
|---|
| 71 | | } |
|---|
| 72 | | } |
|---|
| | 81 | /* Define how values, first par is the how, |
|---|
| | 82 | second the contained hows |
|---|
| | 83 | third the display name */ |
|---|
| | 84 | function howVals(h, cont, dv) { |
|---|
| | 85 | var how; |
|---|
| | 86 | var contains; |
|---|
| | 87 | var dispVal; |
|---|
| | 88 | |
|---|
| | 89 | this.how = h; |
|---|
| | 90 | this.contains = cont; |
|---|
| | 91 | this.dispVal = dv; |
|---|
| | 92 | |
|---|
| | 93 | /* return true if ch is contained in this access */ |
|---|
| | 94 | this.doesContain = function(ch) { |
|---|
| | 95 | return this.contains.match(ch) != null; |
|---|
| | 96 | } |
|---|
| | 97 | } |
|---|
| | 98 | |
|---|
| | 99 | var hows = new function() { |
|---|
| | 100 | var hv = new Array(); |
|---|
| | 101 | |
|---|
| | 102 | hv.push(new howVals("A", "RrPFWapcbStysuN", howAllVal)); |
|---|
| | 103 | |
|---|
| | 104 | hv.push(new howVals("R", "rPF", howReadVal)); |
|---|
| | 105 | hv.push(new howVals("r", "", howReadAclVal)); |
|---|
| | 106 | hv.push(new howVals("P", "", howReadCurPrivSetVal)); |
|---|
| | 107 | hv.push(new howVals("F", "", howReadFreebusyVal)); |
|---|
| | 108 | |
|---|
| | 109 | hv.push(new howVals("W", "apcbStysuN", howWriteVal)); |
|---|
| | 110 | hv.push(new howVals("a", "", howWriteAclVal)); |
|---|
| | 111 | hv.push(new howVals("p", "", howWritePropertiesVal)); |
|---|
| | 112 | hv.push(new howVals("c", "", howWriteContentVal)); |
|---|
| | 113 | |
|---|
| | 114 | hv.push(new howVals("b", "Stys", howBindVal)); |
|---|
| | 115 | hv.push(new howVals("S", "tys", howScheduleVal)); |
|---|
| | 116 | hv.push(new howVals("t", "", howScheduleRequestVal)); |
|---|
| | 117 | hv.push(new howVals("y", "", howScheduleReplyVal)); |
|---|
| | 118 | hv.push(new howVals("s", "", howScheduleFreebusyVal)); |
|---|
| | 119 | |
|---|
| | 120 | hv.push(new howVals("u", "", howUnbindVal)); |
|---|
| | 121 | |
|---|
| | 122 | hv.push(new howVals("U", "", howUnlockVal)); |
|---|
| | 123 | |
|---|
| | 124 | hv.push(new howVals("N", "rPFapcbStysu", howNoneVal)); |
|---|
| | 125 | |
|---|
| | 126 | this. getHows = function(ch) { |
|---|
| | 127 | for (var i = 0; i < hv.length; i++) { |
|---|
| | 128 | if (hv[i].how == ch) { |
|---|
| | 129 | return hv[i]; |
|---|
| | 130 | } |
|---|
| | 131 | } |
|---|
| | 132 | |
|---|
| | 133 | return null; |
|---|
| | 134 | } |
|---|
| | 135 | } |
|---|
| | 136 | |
|---|
| | 137 | function setupAccessForm(chkBoxObj, formObj) { |
|---|
| | 138 | var hvs; // howVals |
|---|
| | 139 | |
|---|
| | 140 | /* If we checked/unchecked a value that contains other values we need |
|---|
| | 141 | to uncheck and disable the contained boxes. */ |
|---|
| | 142 | |
|---|
| | 143 | hvs = hows.getHows(chkBoxObj.value); |
|---|
| | 144 | |
|---|
| | 145 | if (hvs.contains == "") { |
|---|
| | 146 | // Doesn't contain anything |
|---|
| | 147 | return; |
|---|
| | 148 | } |
|---|
| | 149 | |
|---|
| | 150 | for (i = 0; i < formObj.howItem.length; i++) { |
|---|
| | 151 | if (hvs.doesContain(formObj.howItem[i].value)) { |
|---|
| | 152 | if (chkBoxObj.checked == true) { |
|---|
| | 153 | formObj.howItem[i].checked = false; |
|---|
| | 154 | formObj.howItem[i].disabled = true; |
|---|
| | 155 | // now iterate over corresponding radio buttons for each howItem |
|---|
| | 156 | for (j = 0; j < formObj[formObj.howItem[i].value].length; j++) { |
|---|
| | 157 | formObj[formObj.howItem[i].value][j].disabled = true; |
|---|
| 75 | | for (i = 0; i < formObj.howItem.length; i++) { |
|---|
| 76 | | formObj.howItem[i].disabled = false; |
|---|
| 77 | | } |
|---|
| 78 | | } |
|---|
| 79 | | break; |
|---|
| 80 | | case "R": // Read |
|---|
| 81 | | if (chkBoxObj.checked) { |
|---|
| 82 | | for (i = 0; i < formObj.howItem.length; i++) { |
|---|
| 83 | | if (formObj.howItem[i].value == "r" || |
|---|
| 84 | | formObj.howItem[i].value == "P" || |
|---|
| 85 | | formObj.howItem[i].value == "F") { |
|---|
| 86 | | formObj.howItem[i].checked = false; |
|---|
| 87 | | formObj.howItem[i].disabled = true; |
|---|
| 88 | | // now iterate over corresponding radio buttons for each howItem |
|---|
| 89 | | for (j = 0; j < formObj[formObj.howItem[i].value].length; j++) { |
|---|
| 90 | | formObj[formObj.howItem[i].value][j].disabled = true; |
|---|
| 91 | | } |
|---|
| 92 | | } |
|---|
| 93 | | } |
|---|
| 94 | | } else { |
|---|
| 95 | | for (i = 0; i < formObj.howItem.length; i++) { |
|---|
| 96 | | if (formObj.howItem[i].value == "r" || |
|---|
| 97 | | formObj.howItem[i].value == "P" || |
|---|
| 98 | | formObj.howItem[i].value == "F") { |
|---|
| 99 | | formObj.howItem[i].disabled = false; |
|---|
| 100 | | } |
|---|
| 101 | | } |
|---|
| 102 | | } |
|---|
| 103 | | break; |
|---|
| 104 | | case "W": // Write |
|---|
| 105 | | if (chkBoxObj.checked == true) { |
|---|
| 106 | | for (i = 0; i < formObj.howItem.length; i++) { |
|---|
| 107 | | if (formObj.howItem[i].value == "a" || |
|---|
| 108 | | formObj.howItem[i].value == "p" || |
|---|
| 109 | | formObj.howItem[i].value == "c" || |
|---|
| 110 | | formObj.howItem[i].value == "b" || |
|---|
| 111 | | formObj.howItem[i].value == "S" || |
|---|
| 112 | | formObj.howItem[i].value == "t" || |
|---|
| 113 | | formObj.howItem[i].value == "y" || |
|---|
| 114 | | formObj.howItem[i].value == "s" || |
|---|
| 115 | | formObj.howItem[i].value == "u") { |
|---|
| 116 | | formObj.howItem[i].checked = false; |
|---|
| 117 | | formObj.howItem[i].disabled = true; |
|---|
| 118 | | // now iterate over corresponding radio buttons for each howItem |
|---|
| 119 | | for (j = 0; j < formObj[formObj.howItem[i].value].length; j++) { |
|---|
| 120 | | formObj[formObj.howItem[i].value][j].disabled = true; |
|---|
| 121 | | } |
|---|
| 122 | | } |
|---|
| 123 | | } |
|---|
| 124 | | } else { |
|---|
| 125 | | for (i = 0; i < formObj.howItem.length; i++) { |
|---|
| 126 | | if (formObj.howItem[i].value == "a" || |
|---|
| 127 | | formObj.howItem[i].value == "p" || |
|---|
| 128 | | formObj.howItem[i].value == "c" || |
|---|
| 129 | | formObj.howItem[i].value == "b" || |
|---|
| 130 | | formObj.howItem[i].value == "S" || |
|---|
| 131 | | formObj.howItem[i].value == "t" || |
|---|
| 132 | | formObj.howItem[i].value == "y" || |
|---|
| 133 | | formObj.howItem[i].value == "s" || |
|---|
| 134 | | formObj.howItem[i].value == "u") { |
|---|
| 135 | | formObj.howItem[i].disabled = false; |
|---|
| 136 | | } |
|---|
| 137 | | } |
|---|
| 138 | | } |
|---|
| 139 | | break; |
|---|
| 140 | | case "b": // Bind (create) |
|---|
| 141 | | if (chkBoxObj.checked == true) { |
|---|
| 142 | | for (i = 0; i < formObj.howItem.length; i++) { |
|---|
| 143 | | if (formObj.howItem[i].value == "S" || |
|---|
| 144 | | formObj.howItem[i].value == "t" || |
|---|
| 145 | | formObj.howItem[i].value == "y" || |
|---|
| 146 | | formObj.howItem[i].value == "s") { |
|---|
| 147 | | formObj.howItem[i].checked = false; |
|---|
| 148 | | formObj.howItem[i].disabled = true; |
|---|
| 149 | | // now iterate over corresponding radio buttons for each howItem |
|---|
| 150 | | for (j = 0; j < formObj[formObj.howItem[i].value].length; j++) { |
|---|
| 151 | | formObj[formObj.howItem[i].value][j].disabled = true; |
|---|
| 152 | | } |
|---|
| 153 | | } |
|---|
| 154 | | } |
|---|
| 155 | | } else { |
|---|
| 156 | | for (i = 0; i < formObj.howItem.length; i++) { |
|---|
| 157 | | if (formObj.howItem[i].value == "S" || |
|---|
| 158 | | formObj.howItem[i].value == "t" || |
|---|
| 159 | | formObj.howItem[i].value == "y" || |
|---|
| 160 | | formObj.howItem[i].value == "s") { |
|---|
| 161 | | formObj.howItem[i].disabled = false; |
|---|
| 162 | | } |
|---|
| 163 | | } |
|---|
| 164 | | } |
|---|
| 165 | | break; |
|---|
| 166 | | case "S": // Schedule |
|---|
| 167 | | if (chkBoxObj.checked == true) { |
|---|
| 168 | | for (i = 0; i < formObj.howItem.length; i++) { |
|---|
| 169 | | if (formObj.howItem[i].value == "t" || |
|---|
| 170 | | formObj.howItem[i].value == "y" || |
|---|
| 171 | | formObj.howItem[i].value == "s") { |
|---|
| 172 | | formObj.howItem[i].checked = false; |
|---|
| 173 | | formObj.howItem[i].disabled = true; |
|---|
| 174 | | // now iterate over corresponding radio buttons for each howItem |
|---|
| 175 | | for (j = 0; j < formObj[formObj.howItem[i].value].length; j++) { |
|---|
| 176 | | formObj[formObj.howItem[i].value][j].disabled = true; |
|---|
| 177 | | } |
|---|
| 178 | | } |
|---|
| 179 | | } |
|---|
| 180 | | } else { |
|---|
| 181 | | for (i = 0; i < formObj.howItem.length; i++) { |
|---|
| 182 | | if (formObj.howItem[i].value == "t" || |
|---|
| 183 | | formObj.howItem[i].value == "y" || |
|---|
| 184 | | formObj.howItem[i].value == "s") { |
|---|
| 185 | | formObj.howItem[i].disabled = false; |
|---|
| 186 | | } |
|---|
| 187 | | } |
|---|
| 188 | | } |
|---|
| 189 | | break; |
|---|
| 190 | | case "N": // None |
|---|
| 191 | | if (chkBoxObj.checked == true) { |
|---|
| 192 | | for (i = 0; i < formObj.howItem.length; i++) { |
|---|
| 193 | | if (formObj.howItem[i].value != "N") { |
|---|
| 194 | | formObj.howItem[i].checked = false; |
|---|
| 195 | | formObj.howItem[i].disabled = true; |
|---|
| 196 | | // now iterate over corresponding radio buttons for each howItem |
|---|
| 197 | | for (j = 0; j < formObj[formObj.howItem[i].value].length; j++) { |
|---|
| 198 | | formObj[formObj.howItem[i].value][j].disabled = true; |
|---|
| 199 | | } |
|---|
| 200 | | } |
|---|
| 201 | | } |
|---|
| 202 | | } else { |
|---|
| 203 | | for (i = 0; i < formObj.howItem.length; i++) { |
|---|
| 204 | | formObj.howItem[i].disabled = false; |
|---|
| 205 | | } |
|---|
| 206 | | } |
|---|
| 207 | | break; |
|---|
| 208 | | } |
|---|
| 209 | | } |
|---|
| | 160 | formObj.howItem[i].disabled = false; |
|---|
| | 161 | } |
|---|
| | 162 | } |
|---|
| | 163 | } |
|---|
| | 164 | } |
|---|
| | 165 | |
|---|
| 425 | | |
|---|
| 426 | | // format the how string for on-screen display |
|---|
| 427 | | this.formatHow = function(how) { |
|---|
| 428 | | var formattedHow = ""; |
|---|
| 429 | | |
|---|
| 430 | | for (i = 0; i < how.length; i++) { |
|---|
| 431 | | switch (how[i]) { |
|---|
| 432 | | case "-": |
|---|
| 433 | | formattedHow += "not-"; |
|---|
| 434 | | break; |
|---|
| 435 | | case "A": |
|---|
| 436 | | formattedHow += "all "; |
|---|
| 437 | | break; |
|---|
| 438 | | case "R": |
|---|
| 439 | | formattedHow += "read "; |
|---|
| 440 | | break; |
|---|
| 441 | | case "r": |
|---|
| 442 | | formattedHow += "read-acl "; |
|---|
| 443 | | break; |
|---|
| 444 | | case "P": |
|---|
| 445 | | formattedHow += "read-privSet "; |
|---|
| 446 | | break; |
|---|
| 447 | | case "F": |
|---|
| 448 | | formattedHow += "read-freebusy "; |
|---|
| 449 | | break; |
|---|
| 450 | | case "W": |
|---|
| 451 | | formattedHow += "write "; |
|---|
| 452 | | break; |
|---|
| 453 | | case "a": |
|---|
| 454 | | formattedHow += "write-acl "; |
|---|
| 455 | | break; |
|---|
| 456 | | case "p": |
|---|
| 457 | | formattedHow += "write-properties "; |
|---|
| 458 | | break; |
|---|
| 459 | | case "c": |
|---|
| 460 | | formattedHow += "write-content "; |
|---|
| 461 | | break; |
|---|
| 462 | | case "b": |
|---|
| 463 | | formattedHow += "create "; |
|---|
| 464 | | break; |
|---|
| 465 | | case "S": |
|---|
| 466 | | formattedHow += "schedule "; |
|---|
| 467 | | break; |
|---|
| 468 | | case "t": |
|---|
| 469 | | formattedHow += "schedule-request "; |
|---|
| 470 | | break; |
|---|
| 471 | | case "y": |
|---|
| 472 | | formattedHow += "schedule-reply "; |
|---|
| 473 | | break; |
|---|
| 474 | | case "s": |
|---|
| 475 | | formattedHow += "schedule-freebusy "; |
|---|
| 476 | | break; |
|---|
| 477 | | case "u": |
|---|
| 478 | | formattedHow += "delete "; |
|---|
| 479 | | break; |
|---|
| 480 | | case "U": |
|---|
| 481 | | formattedHow += "unlock "; |
|---|
| 482 | | break; |
|---|
| 483 | | case "N": |
|---|
| 484 | | formattedHow += "none "; |
|---|
| 485 | | break; |
|---|
| 486 | | } |
|---|
| 487 | | } |
|---|
| 488 | | return formattedHow; |
|---|
| 489 | | } |
|---|
| 490 | | |
|---|
| 491 | | /* 'A', // privAll |
|---|
| 492 | | |
|---|
| 493 | | 'R', // privRead |
|---|
| 494 | | 'r', // privReadAcl |
|---|
| 495 | | 'P', // privReadCurrentUserPrivilegeSet |
|---|
| 496 | | 'F', // privReadFreeBusy |
|---|
| 497 | | |
|---|
| 498 | | 'W', // privWrite |
|---|
| 499 | | 'a', // privWriteAcl |
|---|
| 500 | | 'p', // privWriteProperties |
|---|
| 501 | | 'c', // privWriteContent |
|---|
| 502 | | 'b', // privBind |
|---|
| 503 | | |
|---|
| 504 | | 'S', // privSchedule |
|---|
| 505 | | 't', // privScheduleRequest |
|---|
| 506 | | 'y', // privScheduleReply |
|---|
| 507 | | 's', // privScheduleFreeBusy |
|---|
| 508 | | |
|---|
| 509 | | 'u', // privUnbind |
|---|
| 510 | | // unbind and bind usually correspond to create and destroy |
|---|
| 511 | | |
|---|
| 512 | | 'U', // privUnlock |
|---|
| 513 | | // not implemented |
|---|
| 514 | | |
|---|
| 515 | | 'N', // privNone |
|---|
| 516 | | */ |
|---|
| | 399 | |
|---|