Fossil SCM
Added JS code to generate/display the current capabilities string based on selected checkboxes (feature request from Joe M.).
Commit
d02d620c4df6b9013d4f19b0d639b6b05a1fb68d
Parent
a6e8e7004d4e530…
1 file changed
+49
-27
+49
-27
| --- src/setup.c | ||
| +++ src/setup.c | ||
| @@ -307,11 +307,11 @@ | ||
| 307 | 307 | int uid, i; |
| 308 | 308 | int higherUser = 0; /* True if user being edited is SETUP and the */ |
| 309 | 309 | /* user doing the editing is ADMIN. Disallow editing */ |
| 310 | 310 | char *inherit[128]; |
| 311 | 311 | int a[128]; |
| 312 | - char *oa[128]; | |
| 312 | + const char *oa[128]; | |
| 313 | 313 | |
| 314 | 314 | /* Must have ADMIN privileges to access this page |
| 315 | 315 | */ |
| 316 | 316 | login_check_credentials(); |
| 317 | 317 | if( !g.perm.Admin ){ login_needed(); return; } |
| @@ -489,10 +489,29 @@ | ||
| 489 | 489 | if( login_is_special(zLogin) ){ |
| 490 | 490 | @ <input type="hidden" name="login" value="%s(zLogin)"> |
| 491 | 491 | @ <input type="hidden" name="info" value=""> |
| 492 | 492 | @ <input type="hidden" name="pw" value="*"> |
| 493 | 493 | } |
| 494 | + @ <script type='text/javascript'> | |
| 495 | + @ function fossilUpdatePermissionsList(){ | |
| 496 | + @ /* updates #currentPermissionsString with current permissions string based on checkboxes */ | |
| 497 | + @ var inputs = document.getElementsByTagName('input'), i, x = 0, e, checkboxes = [], permsIds = []; | |
| 498 | + @ if(inputs && inputs.length){ | |
| 499 | + @ for( i = 0; i < inputs.length; ++i ){ | |
| 500 | + @ e = inputs[i]; | |
| 501 | + @ if(e.name && e.type && ('checkbox' === e.type.toLowerCase()) && 2===e.name.length && 'a'===e.name[0]){ | |
| 502 | + @ // looks like a permissions checkbox | |
| 503 | + @ if(e.checked){ | |
| 504 | + @ permsIds[x] = e.name[1]; | |
| 505 | + @ checkboxes[x++] = e; | |
| 506 | + @ } | |
| 507 | + @ } | |
| 508 | + @ } | |
| 509 | + @ } | |
| 510 | + @ permsIds.sort(); | |
| 511 | + @ document.getElementById('currentPermissionsString').innerHTML = permsIds.join(''); | |
| 512 | + @ }</script> | |
| 494 | 513 | @ <table> |
| 495 | 514 | @ <tr> |
| 496 | 515 | @ <td class="usetupEditLabel">User ID:</td> |
| 497 | 516 | if( uid ){ |
| 498 | 517 | @ <td>%d(uid) <input type="hidden" name="id" value="%d(uid)" /></td> |
| @@ -516,64 +535,66 @@ | ||
| 516 | 535 | @ <td class="usetupEditLabel">Capabilities:</td> |
| 517 | 536 | @ <td> |
| 518 | 537 | #define B(x) inherit[x] |
| 519 | 538 | @ <table border=0><tr><td valign="top"> |
| 520 | 539 | if( g.perm.Setup ){ |
| 521 | - @ <label><input type="checkbox" name="as"%s(oa['s']) /> | |
| 540 | + @ <label><input type="checkbox" name="as"%s(oa['s']) onchange="fossilUpdatePermissionsList()"/> | |
| 522 | 541 | @ Setup%s(B('s'))</label><br /> |
| 523 | 542 | } |
| 524 | - @ <label><input type="checkbox" name="aa"%s(oa['a']) /> | |
| 543 | + @ <label><input type="checkbox" name="aa"%s(oa['a']) onchange="fossilUpdatePermissionsList()" /> | |
| 525 | 544 | @ Admin%s(B('a'))</label><br /> |
| 526 | - @ <label><input type="checkbox" name="ad"%s(oa['d']) /> | |
| 545 | + @ <label><input type="checkbox" name="ad"%s(oa['d']) onchange="fossilUpdatePermissionsList()" /> | |
| 527 | 546 | @ Delete%s(B('d'))</label><br /> |
| 528 | - @ <label><input type="checkbox" name="ae"%s(oa['e']) /> | |
| 547 | + @ <label><input type="checkbox" name="ae"%s(oa['e']) onchange="fossilUpdatePermissionsList()" /> | |
| 529 | 548 | @ Email%s(B('e'))</label><br /> |
| 530 | - @ <label><input type="checkbox" name="ap"%s(oa['p']) /> | |
| 549 | + @ <label><input type="checkbox" name="ap"%s(oa['p']) onchange="fossilUpdatePermissionsList()" /> | |
| 531 | 550 | @ Password%s(B('p'))</label><br /> |
| 532 | - @ <label><input type="checkbox" name="ai"%s(oa['i']) /> | |
| 551 | + @ <label><input type="checkbox" name="ai"%s(oa['i']) onchange="fossilUpdatePermissionsList()" /> | |
| 533 | 552 | @ Check-In%s(B('i'))</label><br /> |
| 534 | - @ <label><input type="checkbox" name="ao"%s(oa['o']) /> | |
| 553 | + @ <label><input type="checkbox" name="ao"%s(oa['o']) onchange="fossilUpdatePermissionsList()" /> | |
| 535 | 554 | @ Check-Out%s(B('o'))</label><br /> |
| 536 | - @ <label><input type="checkbox" name="ah"%s(oa['h']) /> | |
| 555 | + @ <label><input type="checkbox" name="ah"%s(oa['h']) onchange="fossilUpdatePermissionsList()" /> | |
| 537 | 556 | @ Hyperlinks%s(B('h'))</label><br /> |
| 538 | - @ <label><input type="checkbox" name="ab"%s(oa['b']) /> | |
| 557 | + @ <label><input type="checkbox" name="ab"%s(oa['b']) onchange="fossilUpdatePermissionsList()" /> | |
| 539 | 558 | @ Attachments%s(B('b'))</label><br /> |
| 540 | 559 | @ </td><td><td width="40"></td><td valign="top"> |
| 541 | - @ <label><input type="checkbox" name="au"%s(oa['u']) /> | |
| 560 | + @ <label><input type="checkbox" name="au"%s(oa['u']) onchange="fossilUpdatePermissionsList()" /> | |
| 542 | 561 | @ Reader%s(B('u'))</label><br /> |
| 543 | - @ <label><input type="checkbox" name="av"%s(oa['v']) /> | |
| 562 | + @ <label><input type="checkbox" name="av"%s(oa['v']) onchange="fossilUpdatePermissionsList()" /> | |
| 544 | 563 | @ Developer%s(B('v'))</label><br /> |
| 545 | - @ <label><input type="checkbox" name="ag"%s(oa['g']) /> | |
| 564 | + @ <label><input type="checkbox" name="ag"%s(oa['g']) onchange="fossilUpdatePermissionsList()" /> | |
| 546 | 565 | @ Clone%s(B('g'))</label><br /> |
| 547 | - @ <label><input type="checkbox" name="aj"%s(oa['j']) /> | |
| 566 | + @ <label><input type="checkbox" name="aj"%s(oa['j']) onchange="fossilUpdatePermissionsList()" /> | |
| 548 | 567 | @ Read Wiki%s(B('j'))</label><br /> |
| 549 | - @ <label><input type="checkbox" name="af"%s(oa['f']) /> | |
| 568 | + @ <label><input type="checkbox" name="af"%s(oa['f']) onchange="fossilUpdatePermissionsList()" /> | |
| 550 | 569 | @ New Wiki%s(B('f'))</label><br /> |
| 551 | - @ <label><input type="checkbox" name="am"%s(oa['m']) /> | |
| 570 | + @ <label><input type="checkbox" name="am"%s(oa['m']) onchange="fossilUpdatePermissionsList()" /> | |
| 552 | 571 | @ Append Wiki%s(B('m'))</label><br /> |
| 553 | - @ <label><input type="checkbox" name="ak"%s(oa['k']) /> | |
| 572 | + @ <label><input type="checkbox" name="ak"%s(oa['k']) onchange="fossilUpdatePermissionsList()" /> | |
| 554 | 573 | @ Write Wiki%s(B('k'))</label><br /> |
| 555 | - @ <label><input type="checkbox" name="al"%s(oa['l']) /> | |
| 574 | + @ <label><input type="checkbox" name="al"%s(oa['l']) onchange="fossilUpdatePermissionsList()" /> | |
| 556 | 575 | @ Moderate Wiki%s(B('l'))</label><br /> |
| 557 | 576 | @ </td><td><td width="40"></td><td valign="top"> |
| 558 | - @ <label><input type="checkbox" name="ar"%s(oa['r']) /> | |
| 577 | + @ <label><input type="checkbox" name="ar"%s(oa['r']) onchange="fossilUpdatePermissionsList()" /> | |
| 559 | 578 | @ Read Ticket%s(B('r'))</label><br /> |
| 560 | - @ <label><input type="checkbox" name="an"%s(oa['n']) /> | |
| 579 | + @ <label><input type="checkbox" name="an"%s(oa['n']) onchange="fossilUpdatePermissionsList()" /> | |
| 561 | 580 | @ New Tickets%s(B('n'))</label><br /> |
| 562 | - @ <label><input type="checkbox" name="ac"%s(oa['c']) /> | |
| 581 | + @ <label><input type="checkbox" name="ac"%s(oa['c']) onchange="fossilUpdatePermissionsList()" /> | |
| 563 | 582 | @ Append To Ticket%s(B('c'))</label><br /> |
| 564 | - @ <label><input type="checkbox" name="aw"%s(oa['w']) /> | |
| 583 | + @ <label><input type="checkbox" name="aw"%s(oa['w']) onchange="fossilUpdatePermissionsList()" /> | |
| 565 | 584 | @ Write Tickets%s(B('w'))</label><br /> |
| 566 | - @ <label><input type="checkbox" name="aq"%s(oa['q']) /> | |
| 585 | + @ <label><input type="checkbox" name="aq"%s(oa['q']) onchange="fossilUpdatePermissionsList()" /> | |
| 567 | 586 | @ Moderate Tickets%s(B('q'))</label><br /> |
| 568 | - @ <label><input type="checkbox" name="at"%s(oa['t']) /> | |
| 587 | + @ <label><input type="checkbox" name="at"%s(oa['t']) onchange="fossilUpdatePermissionsList()" /> | |
| 569 | 588 | @ Ticket Report%s(B('t'))</label><br /> |
| 570 | - @ <label><input type="checkbox" name="ax"%s(oa['x']) /> | |
| 589 | + @ <label><input type="checkbox" name="ax"%s(oa['x']) onchange="fossilUpdatePermissionsList()" /> | |
| 571 | 590 | @ Private%s(B('x'))</label><br /> |
| 572 | - @ <label><input type="checkbox" name="az"%s(oa['z']) /> | |
| 591 | + @ <label><input type="checkbox" name="az"%s(oa['z']) onchange="fossilUpdatePermissionsList()" /> | |
| 573 | 592 | @ Download Zip%s(B('z'))</label> |
| 574 | - @ </td></tr></table> | |
| 593 | + @ </td></tr> | |
| 594 | + @ <tr><td colspan='7'>Selected capabilities: <span id="currentPermissionsString">(missing JS?)</span></td></tr> | |
| 595 | + @ </table> | |
| 575 | 596 | @ </td> |
| 576 | 597 | @ </tr> |
| 577 | 598 | if( !login_is_special(zLogin) ){ |
| 578 | 599 | @ <tr> |
| 579 | 600 | @ <td align="right">Password:</td> |
| @@ -604,10 +625,11 @@ | ||
| 604 | 625 | @ </tr> |
| 605 | 626 | } |
| 606 | 627 | @ </table> |
| 607 | 628 | @ </div></form> |
| 608 | 629 | @ </div> |
| 630 | + @ <script type='text/javascript'>fossilUpdatePermissionsList();</script> | |
| 609 | 631 | @ <h2>Privileges And Capabilities:</h2> |
| 610 | 632 | @ <ul> |
| 611 | 633 | if( higherUser ){ |
| 612 | 634 | @ <li><p class="missingPriv"> |
| 613 | 635 | @ User %h(zLogin) has Setup privileges and you only have Admin privileges |
| 614 | 636 |
| --- src/setup.c | |
| +++ src/setup.c | |
| @@ -307,11 +307,11 @@ | |
| 307 | int uid, i; |
| 308 | int higherUser = 0; /* True if user being edited is SETUP and the */ |
| 309 | /* user doing the editing is ADMIN. Disallow editing */ |
| 310 | char *inherit[128]; |
| 311 | int a[128]; |
| 312 | char *oa[128]; |
| 313 | |
| 314 | /* Must have ADMIN privileges to access this page |
| 315 | */ |
| 316 | login_check_credentials(); |
| 317 | if( !g.perm.Admin ){ login_needed(); return; } |
| @@ -489,10 +489,29 @@ | |
| 489 | if( login_is_special(zLogin) ){ |
| 490 | @ <input type="hidden" name="login" value="%s(zLogin)"> |
| 491 | @ <input type="hidden" name="info" value=""> |
| 492 | @ <input type="hidden" name="pw" value="*"> |
| 493 | } |
| 494 | @ <table> |
| 495 | @ <tr> |
| 496 | @ <td class="usetupEditLabel">User ID:</td> |
| 497 | if( uid ){ |
| 498 | @ <td>%d(uid) <input type="hidden" name="id" value="%d(uid)" /></td> |
| @@ -516,64 +535,66 @@ | |
| 516 | @ <td class="usetupEditLabel">Capabilities:</td> |
| 517 | @ <td> |
| 518 | #define B(x) inherit[x] |
| 519 | @ <table border=0><tr><td valign="top"> |
| 520 | if( g.perm.Setup ){ |
| 521 | @ <label><input type="checkbox" name="as"%s(oa['s']) /> |
| 522 | @ Setup%s(B('s'))</label><br /> |
| 523 | } |
| 524 | @ <label><input type="checkbox" name="aa"%s(oa['a']) /> |
| 525 | @ Admin%s(B('a'))</label><br /> |
| 526 | @ <label><input type="checkbox" name="ad"%s(oa['d']) /> |
| 527 | @ Delete%s(B('d'))</label><br /> |
| 528 | @ <label><input type="checkbox" name="ae"%s(oa['e']) /> |
| 529 | @ Email%s(B('e'))</label><br /> |
| 530 | @ <label><input type="checkbox" name="ap"%s(oa['p']) /> |
| 531 | @ Password%s(B('p'))</label><br /> |
| 532 | @ <label><input type="checkbox" name="ai"%s(oa['i']) /> |
| 533 | @ Check-In%s(B('i'))</label><br /> |
| 534 | @ <label><input type="checkbox" name="ao"%s(oa['o']) /> |
| 535 | @ Check-Out%s(B('o'))</label><br /> |
| 536 | @ <label><input type="checkbox" name="ah"%s(oa['h']) /> |
| 537 | @ Hyperlinks%s(B('h'))</label><br /> |
| 538 | @ <label><input type="checkbox" name="ab"%s(oa['b']) /> |
| 539 | @ Attachments%s(B('b'))</label><br /> |
| 540 | @ </td><td><td width="40"></td><td valign="top"> |
| 541 | @ <label><input type="checkbox" name="au"%s(oa['u']) /> |
| 542 | @ Reader%s(B('u'))</label><br /> |
| 543 | @ <label><input type="checkbox" name="av"%s(oa['v']) /> |
| 544 | @ Developer%s(B('v'))</label><br /> |
| 545 | @ <label><input type="checkbox" name="ag"%s(oa['g']) /> |
| 546 | @ Clone%s(B('g'))</label><br /> |
| 547 | @ <label><input type="checkbox" name="aj"%s(oa['j']) /> |
| 548 | @ Read Wiki%s(B('j'))</label><br /> |
| 549 | @ <label><input type="checkbox" name="af"%s(oa['f']) /> |
| 550 | @ New Wiki%s(B('f'))</label><br /> |
| 551 | @ <label><input type="checkbox" name="am"%s(oa['m']) /> |
| 552 | @ Append Wiki%s(B('m'))</label><br /> |
| 553 | @ <label><input type="checkbox" name="ak"%s(oa['k']) /> |
| 554 | @ Write Wiki%s(B('k'))</label><br /> |
| 555 | @ <label><input type="checkbox" name="al"%s(oa['l']) /> |
| 556 | @ Moderate Wiki%s(B('l'))</label><br /> |
| 557 | @ </td><td><td width="40"></td><td valign="top"> |
| 558 | @ <label><input type="checkbox" name="ar"%s(oa['r']) /> |
| 559 | @ Read Ticket%s(B('r'))</label><br /> |
| 560 | @ <label><input type="checkbox" name="an"%s(oa['n']) /> |
| 561 | @ New Tickets%s(B('n'))</label><br /> |
| 562 | @ <label><input type="checkbox" name="ac"%s(oa['c']) /> |
| 563 | @ Append To Ticket%s(B('c'))</label><br /> |
| 564 | @ <label><input type="checkbox" name="aw"%s(oa['w']) /> |
| 565 | @ Write Tickets%s(B('w'))</label><br /> |
| 566 | @ <label><input type="checkbox" name="aq"%s(oa['q']) /> |
| 567 | @ Moderate Tickets%s(B('q'))</label><br /> |
| 568 | @ <label><input type="checkbox" name="at"%s(oa['t']) /> |
| 569 | @ Ticket Report%s(B('t'))</label><br /> |
| 570 | @ <label><input type="checkbox" name="ax"%s(oa['x']) /> |
| 571 | @ Private%s(B('x'))</label><br /> |
| 572 | @ <label><input type="checkbox" name="az"%s(oa['z']) /> |
| 573 | @ Download Zip%s(B('z'))</label> |
| 574 | @ </td></tr></table> |
| 575 | @ </td> |
| 576 | @ </tr> |
| 577 | if( !login_is_special(zLogin) ){ |
| 578 | @ <tr> |
| 579 | @ <td align="right">Password:</td> |
| @@ -604,10 +625,11 @@ | |
| 604 | @ </tr> |
| 605 | } |
| 606 | @ </table> |
| 607 | @ </div></form> |
| 608 | @ </div> |
| 609 | @ <h2>Privileges And Capabilities:</h2> |
| 610 | @ <ul> |
| 611 | if( higherUser ){ |
| 612 | @ <li><p class="missingPriv"> |
| 613 | @ User %h(zLogin) has Setup privileges and you only have Admin privileges |
| 614 |
| --- src/setup.c | |
| +++ src/setup.c | |
| @@ -307,11 +307,11 @@ | |
| 307 | int uid, i; |
| 308 | int higherUser = 0; /* True if user being edited is SETUP and the */ |
| 309 | /* user doing the editing is ADMIN. Disallow editing */ |
| 310 | char *inherit[128]; |
| 311 | int a[128]; |
| 312 | const char *oa[128]; |
| 313 | |
| 314 | /* Must have ADMIN privileges to access this page |
| 315 | */ |
| 316 | login_check_credentials(); |
| 317 | if( !g.perm.Admin ){ login_needed(); return; } |
| @@ -489,10 +489,29 @@ | |
| 489 | if( login_is_special(zLogin) ){ |
| 490 | @ <input type="hidden" name="login" value="%s(zLogin)"> |
| 491 | @ <input type="hidden" name="info" value=""> |
| 492 | @ <input type="hidden" name="pw" value="*"> |
| 493 | } |
| 494 | @ <script type='text/javascript'> |
| 495 | @ function fossilUpdatePermissionsList(){ |
| 496 | @ /* updates #currentPermissionsString with current permissions string based on checkboxes */ |
| 497 | @ var inputs = document.getElementsByTagName('input'), i, x = 0, e, checkboxes = [], permsIds = []; |
| 498 | @ if(inputs && inputs.length){ |
| 499 | @ for( i = 0; i < inputs.length; ++i ){ |
| 500 | @ e = inputs[i]; |
| 501 | @ if(e.name && e.type && ('checkbox' === e.type.toLowerCase()) && 2===e.name.length && 'a'===e.name[0]){ |
| 502 | @ // looks like a permissions checkbox |
| 503 | @ if(e.checked){ |
| 504 | @ permsIds[x] = e.name[1]; |
| 505 | @ checkboxes[x++] = e; |
| 506 | @ } |
| 507 | @ } |
| 508 | @ } |
| 509 | @ } |
| 510 | @ permsIds.sort(); |
| 511 | @ document.getElementById('currentPermissionsString').innerHTML = permsIds.join(''); |
| 512 | @ }</script> |
| 513 | @ <table> |
| 514 | @ <tr> |
| 515 | @ <td class="usetupEditLabel">User ID:</td> |
| 516 | if( uid ){ |
| 517 | @ <td>%d(uid) <input type="hidden" name="id" value="%d(uid)" /></td> |
| @@ -516,64 +535,66 @@ | |
| 535 | @ <td class="usetupEditLabel">Capabilities:</td> |
| 536 | @ <td> |
| 537 | #define B(x) inherit[x] |
| 538 | @ <table border=0><tr><td valign="top"> |
| 539 | if( g.perm.Setup ){ |
| 540 | @ <label><input type="checkbox" name="as"%s(oa['s']) onchange="fossilUpdatePermissionsList()"/> |
| 541 | @ Setup%s(B('s'))</label><br /> |
| 542 | } |
| 543 | @ <label><input type="checkbox" name="aa"%s(oa['a']) onchange="fossilUpdatePermissionsList()" /> |
| 544 | @ Admin%s(B('a'))</label><br /> |
| 545 | @ <label><input type="checkbox" name="ad"%s(oa['d']) onchange="fossilUpdatePermissionsList()" /> |
| 546 | @ Delete%s(B('d'))</label><br /> |
| 547 | @ <label><input type="checkbox" name="ae"%s(oa['e']) onchange="fossilUpdatePermissionsList()" /> |
| 548 | @ Email%s(B('e'))</label><br /> |
| 549 | @ <label><input type="checkbox" name="ap"%s(oa['p']) onchange="fossilUpdatePermissionsList()" /> |
| 550 | @ Password%s(B('p'))</label><br /> |
| 551 | @ <label><input type="checkbox" name="ai"%s(oa['i']) onchange="fossilUpdatePermissionsList()" /> |
| 552 | @ Check-In%s(B('i'))</label><br /> |
| 553 | @ <label><input type="checkbox" name="ao"%s(oa['o']) onchange="fossilUpdatePermissionsList()" /> |
| 554 | @ Check-Out%s(B('o'))</label><br /> |
| 555 | @ <label><input type="checkbox" name="ah"%s(oa['h']) onchange="fossilUpdatePermissionsList()" /> |
| 556 | @ Hyperlinks%s(B('h'))</label><br /> |
| 557 | @ <label><input type="checkbox" name="ab"%s(oa['b']) onchange="fossilUpdatePermissionsList()" /> |
| 558 | @ Attachments%s(B('b'))</label><br /> |
| 559 | @ </td><td><td width="40"></td><td valign="top"> |
| 560 | @ <label><input type="checkbox" name="au"%s(oa['u']) onchange="fossilUpdatePermissionsList()" /> |
| 561 | @ Reader%s(B('u'))</label><br /> |
| 562 | @ <label><input type="checkbox" name="av"%s(oa['v']) onchange="fossilUpdatePermissionsList()" /> |
| 563 | @ Developer%s(B('v'))</label><br /> |
| 564 | @ <label><input type="checkbox" name="ag"%s(oa['g']) onchange="fossilUpdatePermissionsList()" /> |
| 565 | @ Clone%s(B('g'))</label><br /> |
| 566 | @ <label><input type="checkbox" name="aj"%s(oa['j']) onchange="fossilUpdatePermissionsList()" /> |
| 567 | @ Read Wiki%s(B('j'))</label><br /> |
| 568 | @ <label><input type="checkbox" name="af"%s(oa['f']) onchange="fossilUpdatePermissionsList()" /> |
| 569 | @ New Wiki%s(B('f'))</label><br /> |
| 570 | @ <label><input type="checkbox" name="am"%s(oa['m']) onchange="fossilUpdatePermissionsList()" /> |
| 571 | @ Append Wiki%s(B('m'))</label><br /> |
| 572 | @ <label><input type="checkbox" name="ak"%s(oa['k']) onchange="fossilUpdatePermissionsList()" /> |
| 573 | @ Write Wiki%s(B('k'))</label><br /> |
| 574 | @ <label><input type="checkbox" name="al"%s(oa['l']) onchange="fossilUpdatePermissionsList()" /> |
| 575 | @ Moderate Wiki%s(B('l'))</label><br /> |
| 576 | @ </td><td><td width="40"></td><td valign="top"> |
| 577 | @ <label><input type="checkbox" name="ar"%s(oa['r']) onchange="fossilUpdatePermissionsList()" /> |
| 578 | @ Read Ticket%s(B('r'))</label><br /> |
| 579 | @ <label><input type="checkbox" name="an"%s(oa['n']) onchange="fossilUpdatePermissionsList()" /> |
| 580 | @ New Tickets%s(B('n'))</label><br /> |
| 581 | @ <label><input type="checkbox" name="ac"%s(oa['c']) onchange="fossilUpdatePermissionsList()" /> |
| 582 | @ Append To Ticket%s(B('c'))</label><br /> |
| 583 | @ <label><input type="checkbox" name="aw"%s(oa['w']) onchange="fossilUpdatePermissionsList()" /> |
| 584 | @ Write Tickets%s(B('w'))</label><br /> |
| 585 | @ <label><input type="checkbox" name="aq"%s(oa['q']) onchange="fossilUpdatePermissionsList()" /> |
| 586 | @ Moderate Tickets%s(B('q'))</label><br /> |
| 587 | @ <label><input type="checkbox" name="at"%s(oa['t']) onchange="fossilUpdatePermissionsList()" /> |
| 588 | @ Ticket Report%s(B('t'))</label><br /> |
| 589 | @ <label><input type="checkbox" name="ax"%s(oa['x']) onchange="fossilUpdatePermissionsList()" /> |
| 590 | @ Private%s(B('x'))</label><br /> |
| 591 | @ <label><input type="checkbox" name="az"%s(oa['z']) onchange="fossilUpdatePermissionsList()" /> |
| 592 | @ Download Zip%s(B('z'))</label> |
| 593 | @ </td></tr> |
| 594 | @ <tr><td colspan='7'>Selected capabilities: <span id="currentPermissionsString">(missing JS?)</span></td></tr> |
| 595 | @ </table> |
| 596 | @ </td> |
| 597 | @ </tr> |
| 598 | if( !login_is_special(zLogin) ){ |
| 599 | @ <tr> |
| 600 | @ <td align="right">Password:</td> |
| @@ -604,10 +625,11 @@ | |
| 625 | @ </tr> |
| 626 | } |
| 627 | @ </table> |
| 628 | @ </div></form> |
| 629 | @ </div> |
| 630 | @ <script type='text/javascript'>fossilUpdatePermissionsList();</script> |
| 631 | @ <h2>Privileges And Capabilities:</h2> |
| 632 | @ <ul> |
| 633 | if( higherUser ){ |
| 634 | @ <li><p class="missingPriv"> |
| 635 | @ User %h(zLogin) has Setup privileges and you only have Admin privileges |
| 636 |