Fossil SCM

Make all webpages more mobile-friendly. There are still many tweaks possible, but it seems to basically work now.

drh 2018-08-20 18:05 trunk merge
Commit 9131af26f11b53feed3d93659bf11889d3d798ed2b39b8a796918fae29a85561
--- skins/default/css.txt
+++ skins/default/css.txt
@@ -1,8 +1,7 @@
11
body {
22
margin: 0 auto;
3
- min-width: 800px;
43
padding: 0px 20px;
54
background-color: white;
65
font-family: sans-serif;
76
font-size:14pt;
87
-moz-text-size-adjust: none;
@@ -83,10 +82,12 @@
8382
clear:both;
8483
padding:10px;
8584
background:#eaeaea linear-gradient(#fafafa, #eaeaea) repeat-x;
8685
border:1px solid #eaeaea;
8786
border-radius:5px;
87
+ overflow: auto;
88
+ white-space: nowrap;
8889
}
8990
9091
.mainmenu a {
9192
padding: 10px 20px;
9293
text-decoration:none;
@@ -200,5 +201,11 @@
200201
white-space: nowrap;
201202
}
202203
span.submenuctrl, span.submenuctrl input, select.submenuctrl {
203204
color: #777;
204205
}
206
+span.submenuctrl {
207
+ white-space: nowrap;
208
+}
209
+div.submenu label {
210
+ white-space: nowrap;
211
+}
205212
--- skins/default/css.txt
+++ skins/default/css.txt
@@ -1,8 +1,7 @@
1 body {
2 margin: 0 auto;
3 min-width: 800px;
4 padding: 0px 20px;
5 background-color: white;
6 font-family: sans-serif;
7 font-size:14pt;
8 -moz-text-size-adjust: none;
@@ -83,10 +82,12 @@
83 clear:both;
84 padding:10px;
85 background:#eaeaea linear-gradient(#fafafa, #eaeaea) repeat-x;
86 border:1px solid #eaeaea;
87 border-radius:5px;
 
 
88 }
89
90 .mainmenu a {
91 padding: 10px 20px;
92 text-decoration:none;
@@ -200,5 +201,11 @@
200 white-space: nowrap;
201 }
202 span.submenuctrl, span.submenuctrl input, select.submenuctrl {
203 color: #777;
204 }
 
 
 
 
 
 
205
--- skins/default/css.txt
+++ skins/default/css.txt
@@ -1,8 +1,7 @@
1 body {
2 margin: 0 auto;
 
3 padding: 0px 20px;
4 background-color: white;
5 font-family: sans-serif;
6 font-size:14pt;
7 -moz-text-size-adjust: none;
@@ -83,10 +82,12 @@
82 clear:both;
83 padding:10px;
84 background:#eaeaea linear-gradient(#fafafa, #eaeaea) repeat-x;
85 border:1px solid #eaeaea;
86 border-radius:5px;
87 overflow: auto;
88 white-space: nowrap;
89 }
90
91 .mainmenu a {
92 padding: 10px 20px;
93 text-decoration:none;
@@ -200,5 +201,11 @@
201 white-space: nowrap;
202 }
203 span.submenuctrl, span.submenuctrl input, select.submenuctrl {
204 color: #777;
205 }
206 span.submenuctrl {
207 white-space: nowrap;
208 }
209 div.submenu label {
210 white-space: nowrap;
211 }
212
--- skins/plain_gray/details.txt
+++ skins/plain_gray/details.txt
@@ -1,4 +1,4 @@
11
timeline-arrowheads: 1
2
-timeline-circle-nodes: 0
2
+timeline-circle-nodes: 1
33
timeline-color-graph-lines: 0
44
white-foreground: 0
55
--- skins/plain_gray/details.txt
+++ skins/plain_gray/details.txt
@@ -1,4 +1,4 @@
1 timeline-arrowheads: 1
2 timeline-circle-nodes: 0
3 timeline-color-graph-lines: 0
4 white-foreground: 0
5
--- skins/plain_gray/details.txt
+++ skins/plain_gray/details.txt
@@ -1,4 +1,4 @@
1 timeline-arrowheads: 1
2 timeline-circle-nodes: 1
3 timeline-color-graph-lines: 0
4 white-foreground: 0
5
+3 -13
--- src/browse.c
+++ src/browse.c
@@ -121,11 +121,10 @@
121121
*/
122122
void page_dir(void){
123123
char *zD = fossil_strdup(P("name"));
124124
int nD = zD ? strlen(zD)+1 : 0;
125125
int mxLen;
126
- int nCol, nRow;
127126
int cnt, i;
128127
char *zPrefix;
129128
Stmt q;
130129
const char *zCI = P("ci");
131130
int rid = 0;
@@ -271,24 +270,15 @@
271270
** directory.
272271
*/
273272
mxLen = db_int(12, "SELECT max(length(x)) FROM localfiles /*scan*/");
274273
cnt = db_int(0, "SELECT count(*) FROM localfiles /*scan*/");
275274
if( mxLen<12 ) mxLen = 12;
276
- nCol = 100/mxLen;
277
- if( nCol<1 ) nCol = 1;
278
- if( nCol>5 ) nCol = 5;
279
- nRow = (cnt+nCol-1)/nCol;
280275
db_prepare(&q, "SELECT x, u FROM localfiles ORDER BY x /*scan*/");
281
- @ <table class="browser"><tr><td class="browser"><ul class="browser">
282
- i = 0;
276
+ @ <div class="columns" style="column-width: %d(mxLen)ex;">
277
+ @ <ul class="browser">
283278
while( db_step(&q)==SQLITE_ROW ){
284279
const char *zFN;
285
- if( i==nRow ){
286
- @ </ul></td><td class="browser"><ul class="browser">
287
- i = 0;
288
- }
289
- i++;
290280
zFN = db_column_text(&q, 0);
291281
if( zFN[0]=='/' ){
292282
zFN++;
293283
@ <li class="dir">%z(href("%s%T",zSubdirLink,zFN))%h(zFN)</a></li>
294284
}else{
@@ -302,11 +292,11 @@
302292
@ <li class="%z(fileext_class(zFN))">%z(zLink)%h(zFN)</a></li>
303293
}
304294
}
305295
db_finalize(&q);
306296
manifest_destroy(pM);
307
- @ </ul></td></tr></table>
297
+ @ </ul></div>
308298
309299
/* If the directory contains a readme file, then display its content below
310300
** the list of files
311301
*/
312302
db_prepare(&q,
313303
--- src/browse.c
+++ src/browse.c
@@ -121,11 +121,10 @@
121 */
122 void page_dir(void){
123 char *zD = fossil_strdup(P("name"));
124 int nD = zD ? strlen(zD)+1 : 0;
125 int mxLen;
126 int nCol, nRow;
127 int cnt, i;
128 char *zPrefix;
129 Stmt q;
130 const char *zCI = P("ci");
131 int rid = 0;
@@ -271,24 +270,15 @@
271 ** directory.
272 */
273 mxLen = db_int(12, "SELECT max(length(x)) FROM localfiles /*scan*/");
274 cnt = db_int(0, "SELECT count(*) FROM localfiles /*scan*/");
275 if( mxLen<12 ) mxLen = 12;
276 nCol = 100/mxLen;
277 if( nCol<1 ) nCol = 1;
278 if( nCol>5 ) nCol = 5;
279 nRow = (cnt+nCol-1)/nCol;
280 db_prepare(&q, "SELECT x, u FROM localfiles ORDER BY x /*scan*/");
281 @ <table class="browser"><tr><td class="browser"><ul class="browser">
282 i = 0;
283 while( db_step(&q)==SQLITE_ROW ){
284 const char *zFN;
285 if( i==nRow ){
286 @ </ul></td><td class="browser"><ul class="browser">
287 i = 0;
288 }
289 i++;
290 zFN = db_column_text(&q, 0);
291 if( zFN[0]=='/' ){
292 zFN++;
293 @ <li class="dir">%z(href("%s%T",zSubdirLink,zFN))%h(zFN)</a></li>
294 }else{
@@ -302,11 +292,11 @@
302 @ <li class="%z(fileext_class(zFN))">%z(zLink)%h(zFN)</a></li>
303 }
304 }
305 db_finalize(&q);
306 manifest_destroy(pM);
307 @ </ul></td></tr></table>
308
309 /* If the directory contains a readme file, then display its content below
310 ** the list of files
311 */
312 db_prepare(&q,
313
--- src/browse.c
+++ src/browse.c
@@ -121,11 +121,10 @@
121 */
122 void page_dir(void){
123 char *zD = fossil_strdup(P("name"));
124 int nD = zD ? strlen(zD)+1 : 0;
125 int mxLen;
 
126 int cnt, i;
127 char *zPrefix;
128 Stmt q;
129 const char *zCI = P("ci");
130 int rid = 0;
@@ -271,24 +270,15 @@
270 ** directory.
271 */
272 mxLen = db_int(12, "SELECT max(length(x)) FROM localfiles /*scan*/");
273 cnt = db_int(0, "SELECT count(*) FROM localfiles /*scan*/");
274 if( mxLen<12 ) mxLen = 12;
 
 
 
 
275 db_prepare(&q, "SELECT x, u FROM localfiles ORDER BY x /*scan*/");
276 @ <div class="columns" style="column-width: %d(mxLen)ex;">
277 @ <ul class="browser">
278 while( db_step(&q)==SQLITE_ROW ){
279 const char *zFN;
 
 
 
 
 
280 zFN = db_column_text(&q, 0);
281 if( zFN[0]=='/' ){
282 zFN++;
283 @ <li class="dir">%z(href("%s%T",zSubdirLink,zFN))%h(zFN)</a></li>
284 }else{
@@ -302,11 +292,11 @@
292 @ <li class="%z(fileext_class(zFN))">%z(zLink)%h(zFN)</a></li>
293 }
294 }
295 db_finalize(&q);
296 manifest_destroy(pM);
297 @ </ul></div>
298
299 /* If the directory contains a readme file, then display its content below
300 ** the list of files
301 */
302 db_prepare(&q,
303
--- src/default_css.txt
+++ src/default_css.txt
@@ -184,17 +184,20 @@
184184
font-weight: bold;
185185
}
186186
span.wikiTagCancelled {
187187
text-decoration: line-through;
188188
}
189
-table.browser {
190
- width: 100%;
191
- border: 0;
189
+div.columns {
190
+ padding: 0 2em 0 2em;
191
+ max-width: 1000px;
192192
}
193
-td.browser {
194
- width: 24%;
195
- vertical-align: top;
193
+div.columns ul {
194
+ margin: 0;
195
+ padding: 0;
196
+}
197
+div.columns ul li:first-child {
198
+ margin-top:0px;
196199
}
197200
.filetree {
198201
margin: 1em 0;
199202
line-height: 1.5;
200203
}
@@ -349,11 +352,10 @@
349352
}
350353
td.usetupListCon {
351354
text-align: left
352355
}
353356
div.ueditCapBox {
354
- float: left;
355357
margin-right: 20px;
356358
margin-bottom: 20px;
357359
}
358360
td.usetupEditLabel {
359361
text-align: right;
@@ -717,5 +719,8 @@
717719
background-color: #bfb;
718720
}
719721
.capsumWrite {
720722
background-color: #ffb;
721723
}
724
+label {
725
+ white-space: nowrap;
726
+}
722727
--- src/default_css.txt
+++ src/default_css.txt
@@ -184,17 +184,20 @@
184 font-weight: bold;
185 }
186 span.wikiTagCancelled {
187 text-decoration: line-through;
188 }
189 table.browser {
190 width: 100%;
191 border: 0;
192 }
193 td.browser {
194 width: 24%;
195 vertical-align: top;
 
 
 
196 }
197 .filetree {
198 margin: 1em 0;
199 line-height: 1.5;
200 }
@@ -349,11 +352,10 @@
349 }
350 td.usetupListCon {
351 text-align: left
352 }
353 div.ueditCapBox {
354 float: left;
355 margin-right: 20px;
356 margin-bottom: 20px;
357 }
358 td.usetupEditLabel {
359 text-align: right;
@@ -717,5 +719,8 @@
717 background-color: #bfb;
718 }
719 .capsumWrite {
720 background-color: #ffb;
721 }
 
 
 
722
--- src/default_css.txt
+++ src/default_css.txt
@@ -184,17 +184,20 @@
184 font-weight: bold;
185 }
186 span.wikiTagCancelled {
187 text-decoration: line-through;
188 }
189 div.columns {
190 padding: 0 2em 0 2em;
191 max-width: 1000px;
192 }
193 div.columns ul {
194 margin: 0;
195 padding: 0;
196 }
197 div.columns ul li:first-child {
198 margin-top:0px;
199 }
200 .filetree {
201 margin: 1em 0;
202 line-height: 1.5;
203 }
@@ -349,11 +352,10 @@
352 }
353 td.usetupListCon {
354 text-align: left
355 }
356 div.ueditCapBox {
 
357 margin-right: 20px;
358 margin-bottom: 20px;
359 }
360 td.usetupEditLabel {
361 text-align: right;
@@ -717,5 +719,8 @@
719 background-color: #bfb;
720 }
721 .capsumWrite {
722 background-color: #ffb;
723 }
724 label {
725 white-space: nowrap;
726 }
727
+76 -79
--- src/setupuser.c
+++ src/setupuser.c
@@ -459,11 +459,11 @@
459459
@ <input type="hidden" name="login" value="%s(zLogin)">
460460
@ <input type="hidden" name="info" value="">
461461
@ <input type="hidden" name="pw" value="*">
462462
}
463463
@ <input type="hidden" name="referer" value="%h(cgi_referer("setup_ulist"))">
464
- @ <table>
464
+ @ <table width="100%%">
465465
@ <tr>
466466
@ <td class="usetupEditLabel">User ID:</td>
467467
if( uid ){
468468
@ <td>%d(uid) <input type="hidden" name="id" value="%d(uid)" /></td>
469469
}else{
@@ -482,89 +482,85 @@
482482
@ <td><textarea name="info" cols="40" rows="2">%h(zInfo)</textarea></td>
483483
}
484484
@ </tr>
485485
@ <tr>
486486
@ <td class="usetupEditLabel">Capabilities:</td>
487
- @ <td>
488
-#define B(x) inherit[x]
489
- @ <table border=0><tr><td valign="top">
490
- if( g.perm.Setup ){
491
- @ <label><input type="checkbox" name="as"%s(oa['s']) />
492
- @ Setup%s(B('s'))</label><br />
493
- }
494
- @ <label><input type="checkbox" name="aa"%s(oa['a']) />
495
- @ Admin%s(B('a'))</label><br />
496
- @ <label><input type="checkbox" name="au"%s(oa['u']) />
497
- @ Reader%s(B('u'))</label><br>
498
- @ <label><input type="checkbox" name="av"%s(oa['v']) />
499
- @ Developer%s(B('v'))</label><br />
500
- @ <label><input type="checkbox" name="ad"%s(oa['d']) />
501
- @ Delete%s(B('d'))</label><br />
502
- @ <label><input type="checkbox" name="ae"%s(oa['e']) />
503
- @ View-PII%s(B('e'))</label><br />
504
- @ <label><input type="checkbox" name="ap"%s(oa['p']) />
505
- @ Password%s(B('p'))</label><br />
506
- @ <label><input type="checkbox" name="ai"%s(oa['i']) />
507
- @ Check-In%s(B('i'))</label><br />
508
- @ <label><input type="checkbox" name="ao"%s(oa['o']) />
509
- @ Check-Out%s(B('o'))</label><br />
510
- @ <label><input type="checkbox" name="ah"%s(oa['h']) />
511
- @ Hyperlinks%s(B('h'))</label><br />
512
- @ <label><input type="checkbox" name="ab"%s(oa['b']) />
513
- @ Attachments%s(B('b'))</label><br>
514
- @ <label><input type="checkbox" name="ag"%s(oa['g']) />
515
- @ Clone%s(B('g'))</label><br />
516
-
517
- @ </td><td><td width="40"></td><td valign="top">
518
- @ <label><input type="checkbox" name="aj"%s(oa['j']) />
519
- @ Read Wiki%s(B('j'))</label><br>
520
- @ <label><input type="checkbox" name="af"%s(oa['f']) />
521
- @ New Wiki%s(B('f'))</label><br />
522
- @ <label><input type="checkbox" name="am"%s(oa['m']) />
523
- @ Append Wiki%s(B('m'))</label><br />
524
- @ <label><input type="checkbox" name="ak"%s(oa['k']) />
525
- @ Write Wiki%s(B('k'))</label><br />
526
- @ <label><input type="checkbox" name="al"%s(oa['l']) />
527
- @ Moderate Wiki%s(B('l'))</label><br />
528
- @ <label><input type="checkbox" name="ar"%s(oa['r']) />
529
- @ Read Ticket%s(B('r'))</label><br />
530
- @ <label><input type="checkbox" name="an"%s(oa['n']) />
531
- @ New Tickets%s(B('n'))</label><br />
532
- @ <label><input type="checkbox" name="ac"%s(oa['c']) />
533
- @ Append To Ticket%s(B('c'))</label><br>
534
- @ <label><input type="checkbox" name="aw"%s(oa['w']) />
535
- @ Write Tickets%s(B('w'))</label><br />
536
- @ <label><input type="checkbox" name="aq"%s(oa['q']) />
537
- @ Moderate Tickets%s(B('q'))</label><br>
538
- @ <label><input type="checkbox" name="at"%s(oa['t']) />
539
- @ Ticket Report%s(B('t'))</label><br />
540
- @ <label><input type="checkbox" name="ax"%s(oa['x']) />
487
+ @ <td width="100%%">
488
+#define B(x) inherit[x]
489
+ @ <div class="columns" style="column-width:13em;">
490
+ @ <ul style="list-style-type: none;">
491
+ if( g.perm.Setup ){
492
+ @ <li><label><input type="checkbox" name="as"%s(oa['s']) />
493
+ @ Setup%s(B('s'))</label>
494
+ }
495
+ @ <li><label><input type="checkbox" name="aa"%s(oa['a']) />
496
+ @ Admin%s(B('a'))</label>
497
+ @ <li><label><input type="checkbox" name="au"%s(oa['u']) />
498
+ @ Reader%s(B('u'))</label>
499
+ @ <li><label><input type="checkbox" name="av"%s(oa['v']) />
500
+ @ Developer%s(B('v'))</label>
501
+ @ <li><label><input type="checkbox" name="ad"%s(oa['d']) />
502
+ @ Delete%s(B('d'))</label>
503
+ @ <li><label><input type="checkbox" name="ae"%s(oa['e']) />
504
+ @ View-PII%s(B('e'))</label>
505
+ @ <li><label><input type="checkbox" name="ap"%s(oa['p']) />
506
+ @ Password%s(B('p'))</label>
507
+ @ <li><label><input type="checkbox" name="ai"%s(oa['i']) />
508
+ @ Check-In%s(B('i'))</label>
509
+ @ <li><label><input type="checkbox" name="ao"%s(oa['o']) />
510
+ @ Check-Out%s(B('o'))</label>
511
+ @ <li><label><input type="checkbox" name="ah"%s(oa['h']) />
512
+ @ Hyperlinks%s(B('h'))</label>
513
+ @ <li><label><input type="checkbox" name="ab"%s(oa['b']) />
514
+ @ Attachments%s(B('b'))</label>
515
+ @ <li><label><input type="checkbox" name="ag"%s(oa['g']) />
516
+ @ Clone%s(B('g'))</label>
517
+ @ <li><label><input type="checkbox" name="aj"%s(oa['j']) />
518
+ @ Read Wiki%s(B('j'))</label>
519
+ @ <li><label><input type="checkbox" name="af"%s(oa['f']) />
520
+ @ New Wiki%s(B('f'))</label>
521
+ @ <li><label><input type="checkbox" name="am"%s(oa['m']) />
522
+ @ Append Wiki%s(B('m'))</label>
523
+ @ <li><label><input type="checkbox" name="ak"%s(oa['k']) />
524
+ @ Write Wiki%s(B('k'))</label>
525
+ @ <li><label><input type="checkbox" name="al"%s(oa['l']) />
526
+ @ Moderate Wiki%s(B('l'))</label>
527
+ @ <li><label><input type="checkbox" name="ar"%s(oa['r']) />
528
+ @ Read Ticket%s(B('r'))</label>
529
+ @ <li><label><input type="checkbox" name="an"%s(oa['n']) />
530
+ @ New Tickets%s(B('n'))</label>
531
+ @ <li><label><input type="checkbox" name="ac"%s(oa['c']) />
532
+ @ Append To Ticket%s(B('c'))</label>
533
+ @ <li><label><input type="checkbox" name="aw"%s(oa['w']) />
534
+ @ Write Tickets%s(B('w'))</label>
535
+ @ <li><label><input type="checkbox" name="aq"%s(oa['q']) />
536
+ @ Moderate Tickets%s(B('q'))</label>
537
+ @ <li><label><input type="checkbox" name="at"%s(oa['t']) />
538
+ @ Ticket Report%s(B('t'))</label>
539
+ @ <li><label><input type="checkbox" name="ax"%s(oa['x']) />
541540
@ Private%s(B('x'))</label>
542
-
543
- @ </td><td><td width="40"></td><td valign="top">
544
- @ <label><input type="checkbox" name="ay"%s(oa['y']) />
545
- @ Write Unversioned%s(B('y'))</label><br />
546
- @ <label><input type="checkbox" name="az"%s(oa['z']) />
547
- @ Download Zip%s(B('z'))</label><br />
548
- @ <label><input type="checkbox" name="a2"%s(oa['2']) />
549
- @ Read Forum%s(B('2'))</label><br />
550
- @ <label><input type="checkbox" name="a3"%s(oa['3']) />
551
- @ Write Forum%s(B('3'))</label><br />
552
- @ <label><input type="checkbox" name="a4"%s(oa['4']) />
553
- @ WriteTrusted Forum%s(B('4'))</label><br>
554
- @ <label><input type="checkbox" name="a5"%s(oa['5']) />
555
- @ Moderate Forum%s(B('5'))</label><br>
556
- @ <label><input type="checkbox" name="a6"%s(oa['6']) />
557
- @ Supervise Forum%s(B('6'))</label><br>
558
- @ <label><input type="checkbox" name="a7"%s(oa['7']) />
559
- @ Email Alerts%s(B('7'))</label><br>
560
- @ <label><input type="checkbox" name="aA"%s(oa['A']) />
561
- @ Send Announcements%s(B('A'))</label><br>
562
- @ <label><input type="checkbox" name="aD"%s(oa['D']) />
541
+ @ <li><label><input type="checkbox" name="ay"%s(oa['y']) />
542
+ @ Write Unversioned%s(B('y'))</label>
543
+ @ <li><label><input type="checkbox" name="az"%s(oa['z']) />
544
+ @ Download Zip%s(B('z'))</label>
545
+ @ <li><label><input type="checkbox" name="a2"%s(oa['2']) />
546
+ @ Read Forum%s(B('2'))</label>
547
+ @ <li><label><input type="checkbox" name="a3"%s(oa['3']) />
548
+ @ Write Forum%s(B('3'))</label>
549
+ @ <li><label><input type="checkbox" name="a4"%s(oa['4']) />
550
+ @ WriteTrusted Forum%s(B('4'))</label>
551
+ @ <li><label><input type="checkbox" name="a5"%s(oa['5']) />
552
+ @ Moderate Forum%s(B('5'))</label>
553
+ @ <li><label><input type="checkbox" name="a6"%s(oa['6']) />
554
+ @ Supervise Forum%s(B('6'))</label>
555
+ @ <li><label><input type="checkbox" name="a7"%s(oa['7']) />
556
+ @ Email Alerts%s(B('7'))</label>
557
+ @ <li><label><input type="checkbox" name="aA"%s(oa['A']) />
558
+ @ Send Announcements%s(B('A'))</label>
559
+ @ <li><label><input type="checkbox" name="aD"%s(oa['D']) />
563560
@ Enable Debug%s(B('D'))</label>
564
- @ </td></tr>
565
- @ </table>
561
+ @ </ul></div>
566562
@ </td>
567563
@ </tr>
568564
@ <tr>
569565
@ <td class="usetupEditLabel">Selected Cap.:</td>
570566
@ <td>
@@ -603,11 +599,12 @@
603599
}
604600
@ </table>
605601
@ </div></form>
606602
@ </div>
607603
style_load_one_js_file("useredit.js");
608
- @ <h2>Privileges And Capabilities:</h2>
604
+ @ <hr>
605
+ @ <h1>Notes On Privileges And Capabilities:</h1>
609606
@ <ul>
610607
if( higherUser ){
611608
@ <li><p class="missingPriv">
612609
@ User %h(zLogin) has Setup privileges and you only have Admin privileges
613610
@ so you are not permitted to make changes to %h(zLogin).
614611
--- src/setupuser.c
+++ src/setupuser.c
@@ -459,11 +459,11 @@
459 @ <input type="hidden" name="login" value="%s(zLogin)">
460 @ <input type="hidden" name="info" value="">
461 @ <input type="hidden" name="pw" value="*">
462 }
463 @ <input type="hidden" name="referer" value="%h(cgi_referer("setup_ulist"))">
464 @ <table>
465 @ <tr>
466 @ <td class="usetupEditLabel">User ID:</td>
467 if( uid ){
468 @ <td>%d(uid) <input type="hidden" name="id" value="%d(uid)" /></td>
469 }else{
@@ -482,89 +482,85 @@
482 @ <td><textarea name="info" cols="40" rows="2">%h(zInfo)</textarea></td>
483 }
484 @ </tr>
485 @ <tr>
486 @ <td class="usetupEditLabel">Capabilities:</td>
487 @ <td>
488 #define B(x) inherit[x]
489 @ <table border=0><tr><td valign="top">
490 if( g.perm.Setup ){
491 @ <label><input type="checkbox" name="as"%s(oa['s']) />
492 @ Setup%s(B('s'))</label><br />
493 }
494 @ <label><input type="checkbox" name="aa"%s(oa['a']) />
495 @ Admin%s(B('a'))</label><br />
496 @ <label><input type="checkbox" name="au"%s(oa['u']) />
497 @ Reader%s(B('u'))</label><br>
498 @ <label><input type="checkbox" name="av"%s(oa['v']) />
499 @ Developer%s(B('v'))</label><br />
500 @ <label><input type="checkbox" name="ad"%s(oa['d']) />
501 @ Delete%s(B('d'))</label><br />
502 @ <label><input type="checkbox" name="ae"%s(oa['e']) />
503 @ View-PII%s(B('e'))</label><br />
504 @ <label><input type="checkbox" name="ap"%s(oa['p']) />
505 @ Password%s(B('p'))</label><br />
506 @ <label><input type="checkbox" name="ai"%s(oa['i']) />
507 @ Check-In%s(B('i'))</label><br />
508 @ <label><input type="checkbox" name="ao"%s(oa['o']) />
509 @ Check-Out%s(B('o'))</label><br />
510 @ <label><input type="checkbox" name="ah"%s(oa['h']) />
511 @ Hyperlinks%s(B('h'))</label><br />
512 @ <label><input type="checkbox" name="ab"%s(oa['b']) />
513 @ Attachments%s(B('b'))</label><br>
514 @ <label><input type="checkbox" name="ag"%s(oa['g']) />
515 @ Clone%s(B('g'))</label><br />
516
517 @ </td><td><td width="40"></td><td valign="top">
518 @ <label><input type="checkbox" name="aj"%s(oa['j']) />
519 @ Read Wiki%s(B('j'))</label><br>
520 @ <label><input type="checkbox" name="af"%s(oa['f']) />
521 @ New Wiki%s(B('f'))</label><br />
522 @ <label><input type="checkbox" name="am"%s(oa['m']) />
523 @ Append Wiki%s(B('m'))</label><br />
524 @ <label><input type="checkbox" name="ak"%s(oa['k']) />
525 @ Write Wiki%s(B('k'))</label><br />
526 @ <label><input type="checkbox" name="al"%s(oa['l']) />
527 @ Moderate Wiki%s(B('l'))</label><br />
528 @ <label><input type="checkbox" name="ar"%s(oa['r']) />
529 @ Read Ticket%s(B('r'))</label><br />
530 @ <label><input type="checkbox" name="an"%s(oa['n']) />
531 @ New Tickets%s(B('n'))</label><br />
532 @ <label><input type="checkbox" name="ac"%s(oa['c']) />
533 @ Append To Ticket%s(B('c'))</label><br>
534 @ <label><input type="checkbox" name="aw"%s(oa['w']) />
535 @ Write Tickets%s(B('w'))</label><br />
536 @ <label><input type="checkbox" name="aq"%s(oa['q']) />
537 @ Moderate Tickets%s(B('q'))</label><br>
538 @ <label><input type="checkbox" name="at"%s(oa['t']) />
539 @ Ticket Report%s(B('t'))</label><br />
540 @ <label><input type="checkbox" name="ax"%s(oa['x']) />
541 @ Private%s(B('x'))</label>
542
543 @ </td><td><td width="40"></td><td valign="top">
544 @ <label><input type="checkbox" name="ay"%s(oa['y']) />
545 @ Write Unversioned%s(B('y'))</label><br />
546 @ <label><input type="checkbox" name="az"%s(oa['z']) />
547 @ Download Zip%s(B('z'))</label><br />
548 @ <label><input type="checkbox" name="a2"%s(oa['2']) />
549 @ Read Forum%s(B('2'))</label><br />
550 @ <label><input type="checkbox" name="a3"%s(oa['3']) />
551 @ Write Forum%s(B('3'))</label><br />
552 @ <label><input type="checkbox" name="a4"%s(oa['4']) />
553 @ WriteTrusted Forum%s(B('4'))</label><br>
554 @ <label><input type="checkbox" name="a5"%s(oa['5']) />
555 @ Moderate Forum%s(B('5'))</label><br>
556 @ <label><input type="checkbox" name="a6"%s(oa['6']) />
557 @ Supervise Forum%s(B('6'))</label><br>
558 @ <label><input type="checkbox" name="a7"%s(oa['7']) />
559 @ Email Alerts%s(B('7'))</label><br>
560 @ <label><input type="checkbox" name="aA"%s(oa['A']) />
561 @ Send Announcements%s(B('A'))</label><br>
562 @ <label><input type="checkbox" name="aD"%s(oa['D']) />
563 @ Enable Debug%s(B('D'))</label>
564 @ </td></tr>
565 @ </table>
566 @ </td>
567 @ </tr>
568 @ <tr>
569 @ <td class="usetupEditLabel">Selected Cap.:</td>
570 @ <td>
@@ -603,11 +599,12 @@
603 }
604 @ </table>
605 @ </div></form>
606 @ </div>
607 style_load_one_js_file("useredit.js");
608 @ <h2>Privileges And Capabilities:</h2>
 
609 @ <ul>
610 if( higherUser ){
611 @ <li><p class="missingPriv">
612 @ User %h(zLogin) has Setup privileges and you only have Admin privileges
613 @ so you are not permitted to make changes to %h(zLogin).
614
--- src/setupuser.c
+++ src/setupuser.c
@@ -459,11 +459,11 @@
459 @ <input type="hidden" name="login" value="%s(zLogin)">
460 @ <input type="hidden" name="info" value="">
461 @ <input type="hidden" name="pw" value="*">
462 }
463 @ <input type="hidden" name="referer" value="%h(cgi_referer("setup_ulist"))">
464 @ <table width="100%%">
465 @ <tr>
466 @ <td class="usetupEditLabel">User ID:</td>
467 if( uid ){
468 @ <td>%d(uid) <input type="hidden" name="id" value="%d(uid)" /></td>
469 }else{
@@ -482,89 +482,85 @@
482 @ <td><textarea name="info" cols="40" rows="2">%h(zInfo)</textarea></td>
483 }
484 @ </tr>
485 @ <tr>
486 @ <td class="usetupEditLabel">Capabilities:</td>
487 @ <td width="100%%">
488 #define B(x) inherit[x]
489 @ <div class="columns" style="column-width:13em;">
490 @ <ul style="list-style-type: none;">
491 if( g.perm.Setup ){
492 @ <li><label><input type="checkbox" name="as"%s(oa['s']) />
493 @ Setup%s(B('s'))</label>
494 }
495 @ <li><label><input type="checkbox" name="aa"%s(oa['a']) />
496 @ Admin%s(B('a'))</label>
497 @ <li><label><input type="checkbox" name="au"%s(oa['u']) />
498 @ Reader%s(B('u'))</label>
499 @ <li><label><input type="checkbox" name="av"%s(oa['v']) />
500 @ Developer%s(B('v'))</label>
501 @ <li><label><input type="checkbox" name="ad"%s(oa['d']) />
502 @ Delete%s(B('d'))</label>
503 @ <li><label><input type="checkbox" name="ae"%s(oa['e']) />
504 @ View-PII%s(B('e'))</label>
505 @ <li><label><input type="checkbox" name="ap"%s(oa['p']) />
506 @ Password%s(B('p'))</label>
507 @ <li><label><input type="checkbox" name="ai"%s(oa['i']) />
508 @ Check-In%s(B('i'))</label>
509 @ <li><label><input type="checkbox" name="ao"%s(oa['o']) />
510 @ Check-Out%s(B('o'))</label>
511 @ <li><label><input type="checkbox" name="ah"%s(oa['h']) />
512 @ Hyperlinks%s(B('h'))</label>
513 @ <li><label><input type="checkbox" name="ab"%s(oa['b']) />
514 @ Attachments%s(B('b'))</label>
515 @ <li><label><input type="checkbox" name="ag"%s(oa['g']) />
516 @ Clone%s(B('g'))</label>
517 @ <li><label><input type="checkbox" name="aj"%s(oa['j']) />
518 @ Read Wiki%s(B('j'))</label>
519 @ <li><label><input type="checkbox" name="af"%s(oa['f']) />
520 @ New Wiki%s(B('f'))</label>
521 @ <li><label><input type="checkbox" name="am"%s(oa['m']) />
522 @ Append Wiki%s(B('m'))</label>
523 @ <li><label><input type="checkbox" name="ak"%s(oa['k']) />
524 @ Write Wiki%s(B('k'))</label>
525 @ <li><label><input type="checkbox" name="al"%s(oa['l']) />
526 @ Moderate Wiki%s(B('l'))</label>
527 @ <li><label><input type="checkbox" name="ar"%s(oa['r']) />
528 @ Read Ticket%s(B('r'))</label>
529 @ <li><label><input type="checkbox" name="an"%s(oa['n']) />
530 @ New Tickets%s(B('n'))</label>
531 @ <li><label><input type="checkbox" name="ac"%s(oa['c']) />
532 @ Append To Ticket%s(B('c'))</label>
533 @ <li><label><input type="checkbox" name="aw"%s(oa['w']) />
534 @ Write Tickets%s(B('w'))</label>
535 @ <li><label><input type="checkbox" name="aq"%s(oa['q']) />
536 @ Moderate Tickets%s(B('q'))</label>
537 @ <li><label><input type="checkbox" name="at"%s(oa['t']) />
538 @ Ticket Report%s(B('t'))</label>
539 @ <li><label><input type="checkbox" name="ax"%s(oa['x']) />
 
540 @ Private%s(B('x'))</label>
541 @ <li><label><input type="checkbox" name="ay"%s(oa['y']) />
542 @ Write Unversioned%s(B('y'))</label>
543 @ <li><label><input type="checkbox" name="az"%s(oa['z']) />
544 @ Download Zip%s(B('z'))</label>
545 @ <li><label><input type="checkbox" name="a2"%s(oa['2']) />
546 @ Read Forum%s(B('2'))</label>
547 @ <li><label><input type="checkbox" name="a3"%s(oa['3']) />
548 @ Write Forum%s(B('3'))</label>
549 @ <li><label><input type="checkbox" name="a4"%s(oa['4']) />
550 @ WriteTrusted Forum%s(B('4'))</label>
551 @ <li><label><input type="checkbox" name="a5"%s(oa['5']) />
552 @ Moderate Forum%s(B('5'))</label>
553 @ <li><label><input type="checkbox" name="a6"%s(oa['6']) />
554 @ Supervise Forum%s(B('6'))</label>
555 @ <li><label><input type="checkbox" name="a7"%s(oa['7']) />
556 @ Email Alerts%s(B('7'))</label>
557 @ <li><label><input type="checkbox" name="aA"%s(oa['A']) />
558 @ Send Announcements%s(B('A'))</label>
559 @ <li><label><input type="checkbox" name="aD"%s(oa['D']) />
 
 
560 @ Enable Debug%s(B('D'))</label>
561 @ </ul></div>
 
562 @ </td>
563 @ </tr>
564 @ <tr>
565 @ <td class="usetupEditLabel">Selected Cap.:</td>
566 @ <td>
@@ -603,11 +599,12 @@
599 }
600 @ </table>
601 @ </div></form>
602 @ </div>
603 style_load_one_js_file("useredit.js");
604 @ <hr>
605 @ <h1>Notes On Privileges And Capabilities:</h1>
606 @ <ul>
607 if( higherUser ){
608 @ <li><p class="missingPriv">
609 @ User %h(zLogin) has Setup privileges and you only have Admin privileges
610 @ so you are not permitted to make changes to %h(zLogin).
611
--- src/style.c
+++ src/style.c
@@ -372,10 +372,11 @@
372372
@ <html>
373373
@ <head>
374374
@ <base href="$baseurl/$current_page" />
375375
@ <meta http-equiv="Content-Security-Policy" \
376376
@ content="default-src 'self' data: 'unsafe-inline'" />
377
+@ <meta name="viewport" content="width=device-width, initial-scale=1.0">
377378
@ <title>$<project_name>: $<title></title>
378379
@ <link rel="alternate" type="application/rss+xml" title="RSS Feed" \
379380
@ href="$home/timeline.rss" />
380381
@ <link rel="stylesheet" href="$stylesheet_url" type="text/css" \
381382
@ media="screen" />
382383
--- src/style.c
+++ src/style.c
@@ -372,10 +372,11 @@
372 @ <html>
373 @ <head>
374 @ <base href="$baseurl/$current_page" />
375 @ <meta http-equiv="Content-Security-Policy" \
376 @ content="default-src 'self' data: 'unsafe-inline'" />
 
377 @ <title>$<project_name>: $<title></title>
378 @ <link rel="alternate" type="application/rss+xml" title="RSS Feed" \
379 @ href="$home/timeline.rss" />
380 @ <link rel="stylesheet" href="$stylesheet_url" type="text/css" \
381 @ media="screen" />
382
--- src/style.c
+++ src/style.c
@@ -372,10 +372,11 @@
372 @ <html>
373 @ <head>
374 @ <base href="$baseurl/$current_page" />
375 @ <meta http-equiv="Content-Security-Policy" \
376 @ content="default-src 'self' data: 'unsafe-inline'" />
377 @ <meta name="viewport" content="width=device-width, initial-scale=1.0">
378 @ <title>$<project_name>: $<title></title>
379 @ <link rel="alternate" type="application/rss+xml" title="RSS Feed" \
380 @ href="$home/timeline.rss" />
381 @ <link rel="stylesheet" href="$stylesheet_url" type="text/css" \
382 @ media="screen" />
383

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button