Fossil SCM

Provide help text for all commands and webpages.

drh 2015-04-27 13:19 trunk
Commit 7ab03289eeeb94d2b34d82bd5e3cc1538b2e1d2d
+8 -6
--- src/attach.c
+++ src/attach.c
@@ -21,18 +21,18 @@
2121
#include "attach.h"
2222
#include <assert.h>
2323
2424
/*
2525
** WEBPAGE: attachlist
26
+** List attachments.
2627
**
2728
** tkt=TICKETUUID
2829
** page=WIKIPAGE
2930
**
30
-** List attachments.
31
-** Either one of tkt= or page= are supplied or neither. If neither
32
-** are given, all attachments are listed. If one is given, only
33
-** attachments for the designated ticket or wiki page are shown.
31
+** Either one of tkt= or page= are supplied or neither but not both.
32
+** If neither are given, all attachments are listed. If one is given,
33
+** only attachments for the designated ticket or wiki page are shown.
3434
** TICKETUUID must be complete
3535
*/
3636
void attachlist_page(void){
3737
const char *zPage = P("page");
3838
const char *zTkt = P("tkt");
@@ -134,16 +134,18 @@
134134
/*
135135
** WEBPAGE: attachdownload
136136
** WEBPAGE: attachimage
137137
** WEBPAGE: attachview
138138
**
139
+** Download or display an attachment.
140
+** Query parameters:
141
+**
139142
** tkt=TICKETUUID
140143
** page=WIKIPAGE
141144
** file=FILENAME
142145
** attachid=ID
143146
**
144
-** List attachments.
145147
*/
146148
void attachview_page(void){
147149
const char *zPage = P("page");
148150
const char *zTkt = P("tkt");
149151
const char *zFile = P("file");
@@ -223,16 +225,16 @@
223225
}
224226
225227
226228
/*
227229
** WEBPAGE: attachadd
230
+** Add a new attachment.
228231
**
229232
** tkt=TICKETUUID
230233
** page=WIKIPAGE
231234
** from=URL
232235
**
233
-** Add a new attachment.
234236
*/
235237
void attachadd_page(void){
236238
const char *zPage = P("page");
237239
const char *zTkt = P("tkt");
238240
const char *zFrom = P("from");
239241
--- src/attach.c
+++ src/attach.c
@@ -21,18 +21,18 @@
21 #include "attach.h"
22 #include <assert.h>
23
24 /*
25 ** WEBPAGE: attachlist
 
26 **
27 ** tkt=TICKETUUID
28 ** page=WIKIPAGE
29 **
30 ** List attachments.
31 ** Either one of tkt= or page= are supplied or neither. If neither
32 ** are given, all attachments are listed. If one is given, only
33 ** attachments for the designated ticket or wiki page are shown.
34 ** TICKETUUID must be complete
35 */
36 void attachlist_page(void){
37 const char *zPage = P("page");
38 const char *zTkt = P("tkt");
@@ -134,16 +134,18 @@
134 /*
135 ** WEBPAGE: attachdownload
136 ** WEBPAGE: attachimage
137 ** WEBPAGE: attachview
138 **
 
 
 
139 ** tkt=TICKETUUID
140 ** page=WIKIPAGE
141 ** file=FILENAME
142 ** attachid=ID
143 **
144 ** List attachments.
145 */
146 void attachview_page(void){
147 const char *zPage = P("page");
148 const char *zTkt = P("tkt");
149 const char *zFile = P("file");
@@ -223,16 +225,16 @@
223 }
224
225
226 /*
227 ** WEBPAGE: attachadd
 
228 **
229 ** tkt=TICKETUUID
230 ** page=WIKIPAGE
231 ** from=URL
232 **
233 ** Add a new attachment.
234 */
235 void attachadd_page(void){
236 const char *zPage = P("page");
237 const char *zTkt = P("tkt");
238 const char *zFrom = P("from");
239
--- src/attach.c
+++ src/attach.c
@@ -21,18 +21,18 @@
21 #include "attach.h"
22 #include <assert.h>
23
24 /*
25 ** WEBPAGE: attachlist
26 ** List attachments.
27 **
28 ** tkt=TICKETUUID
29 ** page=WIKIPAGE
30 **
31 ** Either one of tkt= or page= are supplied or neither but not both.
32 ** If neither are given, all attachments are listed. If one is given,
33 ** only attachments for the designated ticket or wiki page are shown.
 
34 ** TICKETUUID must be complete
35 */
36 void attachlist_page(void){
37 const char *zPage = P("page");
38 const char *zTkt = P("tkt");
@@ -134,16 +134,18 @@
134 /*
135 ** WEBPAGE: attachdownload
136 ** WEBPAGE: attachimage
137 ** WEBPAGE: attachview
138 **
139 ** Download or display an attachment.
140 ** Query parameters:
141 **
142 ** tkt=TICKETUUID
143 ** page=WIKIPAGE
144 ** file=FILENAME
145 ** attachid=ID
146 **
 
147 */
148 void attachview_page(void){
149 const char *zPage = P("page");
150 const char *zTkt = P("tkt");
151 const char *zFile = P("file");
@@ -223,16 +225,16 @@
225 }
226
227
228 /*
229 ** WEBPAGE: attachadd
230 ** Add a new attachment.
231 **
232 ** tkt=TICKETUUID
233 ** page=WIKIPAGE
234 ** from=URL
235 **
 
236 */
237 void attachadd_page(void){
238 const char *zPage = P("page");
239 const char *zTkt = P("tkt");
240 const char *zFrom = P("from");
241
+22
--- src/blob.c
+++ src/blob.c
@@ -118,10 +118,13 @@
118118
}
119119
120120
121121
/*
122122
** COMMAND: test-isspace
123
+**
124
+** Verify that the fossil_isspace() routine is working correctly but
125
+** testing it on all possible inputs.
123126
*/
124127
void isspace_cmd(void){
125128
int i;
126129
for(i=0; i<=255; i++){
127130
if( i==' ' || i=='\n' || i=='\t' || i=='\v'
@@ -884,10 +887,16 @@
884887
blob_resize(pOut, nOut2+4);
885888
}
886889
887890
/*
888891
** COMMAND: test-compress
892
+**
893
+** Usage: %fossil test-compress INPUTFILE OUTPUTFILE
894
+**
895
+** Run compression on INPUTFILE and write the result into OUTPUTFILE.
896
+**
897
+** This is used to test and debug the blob_compress() routine.
889898
*/
890899
void compress_cmd(void){
891900
Blob f;
892901
if( g.argc!=4 ) usage("INPUTFILE OUTPUTFILE");
893902
blob_read_from_file(&f, g.argv[2]);
@@ -936,10 +945,17 @@
936945
*pOut = temp;
937946
}
938947
939948
/*
940949
** COMMAND: test-compress-2
950
+**
951
+** Usage: %fossil test-compress-2 IN1 IN2 OUT
952
+**
953
+** Read files IN1 and IN2, concatenate the content, compress the
954
+** content, then write results into OUT.
955
+**
956
+** This is used to test and debug the blob_compress2() routine.
941957
*/
942958
void compress2_cmd(void){
943959
Blob f1, f2;
944960
if( g.argc!=5 ) usage("INPUTFILE1 INPUTFILE2 OUTPUTFILE");
945961
blob_read_from_file(&f1, g.argv[2]);
@@ -982,10 +998,16 @@
982998
return 0;
983999
}
9841000
9851001
/*
9861002
** COMMAND: test-uncompress
1003
+**
1004
+** Usage: %fossil test-uncompress IN OUT
1005
+**
1006
+** Read the content of file IN, uncompress that content, and write the
1007
+** result into OUT. This command is intended for testing of the the
1008
+** blob_compress() function.
9871009
*/
9881010
void uncompress_cmd(void){
9891011
Blob f;
9901012
if( g.argc!=4 ) usage("INPUTFILE OUTPUTFILE");
9911013
blob_read_from_file(&f, g.argv[2]);
9921014
--- src/blob.c
+++ src/blob.c
@@ -118,10 +118,13 @@
118 }
119
120
121 /*
122 ** COMMAND: test-isspace
 
 
 
123 */
124 void isspace_cmd(void){
125 int i;
126 for(i=0; i<=255; i++){
127 if( i==' ' || i=='\n' || i=='\t' || i=='\v'
@@ -884,10 +887,16 @@
884 blob_resize(pOut, nOut2+4);
885 }
886
887 /*
888 ** COMMAND: test-compress
 
 
 
 
 
 
889 */
890 void compress_cmd(void){
891 Blob f;
892 if( g.argc!=4 ) usage("INPUTFILE OUTPUTFILE");
893 blob_read_from_file(&f, g.argv[2]);
@@ -936,10 +945,17 @@
936 *pOut = temp;
937 }
938
939 /*
940 ** COMMAND: test-compress-2
 
 
 
 
 
 
 
941 */
942 void compress2_cmd(void){
943 Blob f1, f2;
944 if( g.argc!=5 ) usage("INPUTFILE1 INPUTFILE2 OUTPUTFILE");
945 blob_read_from_file(&f1, g.argv[2]);
@@ -982,10 +998,16 @@
982 return 0;
983 }
984
985 /*
986 ** COMMAND: test-uncompress
 
 
 
 
 
 
987 */
988 void uncompress_cmd(void){
989 Blob f;
990 if( g.argc!=4 ) usage("INPUTFILE OUTPUTFILE");
991 blob_read_from_file(&f, g.argv[2]);
992
--- src/blob.c
+++ src/blob.c
@@ -118,10 +118,13 @@
118 }
119
120
121 /*
122 ** COMMAND: test-isspace
123 **
124 ** Verify that the fossil_isspace() routine is working correctly but
125 ** testing it on all possible inputs.
126 */
127 void isspace_cmd(void){
128 int i;
129 for(i=0; i<=255; i++){
130 if( i==' ' || i=='\n' || i=='\t' || i=='\v'
@@ -884,10 +887,16 @@
887 blob_resize(pOut, nOut2+4);
888 }
889
890 /*
891 ** COMMAND: test-compress
892 **
893 ** Usage: %fossil test-compress INPUTFILE OUTPUTFILE
894 **
895 ** Run compression on INPUTFILE and write the result into OUTPUTFILE.
896 **
897 ** This is used to test and debug the blob_compress() routine.
898 */
899 void compress_cmd(void){
900 Blob f;
901 if( g.argc!=4 ) usage("INPUTFILE OUTPUTFILE");
902 blob_read_from_file(&f, g.argv[2]);
@@ -936,10 +945,17 @@
945 *pOut = temp;
946 }
947
948 /*
949 ** COMMAND: test-compress-2
950 **
951 ** Usage: %fossil test-compress-2 IN1 IN2 OUT
952 **
953 ** Read files IN1 and IN2, concatenate the content, compress the
954 ** content, then write results into OUT.
955 **
956 ** This is used to test and debug the blob_compress2() routine.
957 */
958 void compress2_cmd(void){
959 Blob f1, f2;
960 if( g.argc!=5 ) usage("INPUTFILE1 INPUTFILE2 OUTPUTFILE");
961 blob_read_from_file(&f1, g.argv[2]);
@@ -982,10 +998,16 @@
998 return 0;
999 }
1000
1001 /*
1002 ** COMMAND: test-uncompress
1003 **
1004 ** Usage: %fossil test-uncompress IN OUT
1005 **
1006 ** Read the content of file IN, uncompress that content, and write the
1007 ** result into OUT. This command is intended for testing of the the
1008 ** blob_compress() function.
1009 */
1010 void uncompress_cmd(void){
1011 Blob f;
1012 if( g.argc!=4 ) usage("INPUTFILE OUTPUTFILE");
1013 blob_read_from_file(&f, g.argv[2]);
1014
+4 -1
--- src/branch.c
+++ src/branch.c
@@ -386,11 +386,14 @@
386386
style_footer();
387387
}
388388
389389
/*
390390
** WEBPAGE: brlist
391
-** Show a list of branches
391
+** Show a list of branches. With no query parameters, a sortable table
392
+** is used to show all branches. If query parameters are present a
393
+** fixed bullet list is shown.
394
+**
392395
** Query parameters:
393396
**
394397
** all Show all branches
395398
** closed Show only closed branches
396399
** open Show only open branches (default behavior)
397400
--- src/branch.c
+++ src/branch.c
@@ -386,11 +386,14 @@
386 style_footer();
387 }
388
389 /*
390 ** WEBPAGE: brlist
391 ** Show a list of branches
 
 
 
392 ** Query parameters:
393 **
394 ** all Show all branches
395 ** closed Show only closed branches
396 ** open Show only open branches (default behavior)
397
--- src/branch.c
+++ src/branch.c
@@ -386,11 +386,14 @@
386 style_footer();
387 }
388
389 /*
390 ** WEBPAGE: brlist
391 ** Show a list of branches. With no query parameters, a sortable table
392 ** is used to show all branches. If query parameters are present a
393 ** fixed bullet list is shown.
394 **
395 ** Query parameters:
396 **
397 ** all Show all branches
398 ** closed Show only closed branches
399 ** open Show only open branches (default behavior)
400
+18
--- src/browse.c
+++ src/browse.c
@@ -105,14 +105,21 @@
105105
106106
107107
/*
108108
** WEBPAGE: dir
109109
**
110
+** Show the files and subdirectories within a single directory of the
111
+** source tree. Only files for a single check-in are shown if the ci=
112
+** query parameter is present. If ci= is missing, the union of files
113
+** across all check-ins is shown.
114
+**
110115
** Query parameters:
111116
**
112117
** name=PATH Directory to display. Optional. Top-level if missing
113118
** ci=LABEL Show only files in this check-in. Optional.
119
+** type=TYPE TYPE=flat: use this display
120
+** TYPE=tree: use the /tree display instead
114121
*/
115122
void page_dir(void){
116123
char *zD = fossil_strdup(P("name"));
117124
int nD = zD ? strlen(zD)+1 : 0;
118125
int mxLen;
@@ -503,13 +510,21 @@
503510
}
504511
505512
506513
/*
507514
** WEBPAGE: tree
515
+**
516
+** Show the files using a tree-view. If the ci= query parameter is present
517
+** then show only the files for the check-in identified. If ci= is omitted,
518
+** then show the union of files over all check-ins.
519
+**
520
+** The type=tree query parameter is required or else the /dir format is
521
+** used.
508522
**
509523
** Query parameters:
510524
**
525
+** type=tree Required to prevent use of /dir format
511526
** name=PATH Directory to display. Optional
512527
** ci=LABEL Show only files in this check-in. Optional.
513528
** re=REGEXP Show only files matching REGEXP. Optional.
514529
** expand Begin with the tree fully expanded.
515530
** nofiles Show directories (folders) only. Omit files.
@@ -985,10 +1000,13 @@
9851000
db_finalize(&q);
9861001
}
9871002
9881003
/*
9891004
** WEBPAGE: fileage
1005
+**
1006
+** Show all files in a single check-in (identified by the name= query
1007
+** parameter) in order of increasing age.
9901008
**
9911009
** Parameters:
9921010
** name=VERSION Selects the check-in version (default=tip).
9931011
** glob=STRING Only shows files matching this glob pattern
9941012
** (e.g. *.c or *.txt).
9951013
--- src/browse.c
+++ src/browse.c
@@ -105,14 +105,21 @@
105
106
107 /*
108 ** WEBPAGE: dir
109 **
 
 
 
 
 
110 ** Query parameters:
111 **
112 ** name=PATH Directory to display. Optional. Top-level if missing
113 ** ci=LABEL Show only files in this check-in. Optional.
 
 
114 */
115 void page_dir(void){
116 char *zD = fossil_strdup(P("name"));
117 int nD = zD ? strlen(zD)+1 : 0;
118 int mxLen;
@@ -503,13 +510,21 @@
503 }
504
505
506 /*
507 ** WEBPAGE: tree
 
 
 
 
 
 
 
508 **
509 ** Query parameters:
510 **
 
511 ** name=PATH Directory to display. Optional
512 ** ci=LABEL Show only files in this check-in. Optional.
513 ** re=REGEXP Show only files matching REGEXP. Optional.
514 ** expand Begin with the tree fully expanded.
515 ** nofiles Show directories (folders) only. Omit files.
@@ -985,10 +1000,13 @@
985 db_finalize(&q);
986 }
987
988 /*
989 ** WEBPAGE: fileage
 
 
 
990 **
991 ** Parameters:
992 ** name=VERSION Selects the check-in version (default=tip).
993 ** glob=STRING Only shows files matching this glob pattern
994 ** (e.g. *.c or *.txt).
995
--- src/browse.c
+++ src/browse.c
@@ -105,14 +105,21 @@
105
106
107 /*
108 ** WEBPAGE: dir
109 **
110 ** Show the files and subdirectories within a single directory of the
111 ** source tree. Only files for a single check-in are shown if the ci=
112 ** query parameter is present. If ci= is missing, the union of files
113 ** across all check-ins is shown.
114 **
115 ** Query parameters:
116 **
117 ** name=PATH Directory to display. Optional. Top-level if missing
118 ** ci=LABEL Show only files in this check-in. Optional.
119 ** type=TYPE TYPE=flat: use this display
120 ** TYPE=tree: use the /tree display instead
121 */
122 void page_dir(void){
123 char *zD = fossil_strdup(P("name"));
124 int nD = zD ? strlen(zD)+1 : 0;
125 int mxLen;
@@ -503,13 +510,21 @@
510 }
511
512
513 /*
514 ** WEBPAGE: tree
515 **
516 ** Show the files using a tree-view. If the ci= query parameter is present
517 ** then show only the files for the check-in identified. If ci= is omitted,
518 ** then show the union of files over all check-ins.
519 **
520 ** The type=tree query parameter is required or else the /dir format is
521 ** used.
522 **
523 ** Query parameters:
524 **
525 ** type=tree Required to prevent use of /dir format
526 ** name=PATH Directory to display. Optional
527 ** ci=LABEL Show only files in this check-in. Optional.
528 ** re=REGEXP Show only files matching REGEXP. Optional.
529 ** expand Begin with the tree fully expanded.
530 ** nofiles Show directories (folders) only. Omit files.
@@ -985,10 +1000,13 @@
1000 db_finalize(&q);
1001 }
1002
1003 /*
1004 ** WEBPAGE: fileage
1005 **
1006 ** Show all files in a single check-in (identified by the name= query
1007 ** parameter) in order of increasing age.
1008 **
1009 ** Parameters:
1010 ** name=VERSION Selects the check-in version (default=tip).
1011 ** glob=STRING Only shows files matching this glob pattern
1012 ** (e.g. *.c or *.txt).
1013
+2 -1
--- src/cache.c
+++ src/cache.c
@@ -330,11 +330,11 @@
330330
}
331331
332332
/*
333333
** WEBPAGE: cachestat
334334
**
335
-** Show information about the webpage cache
335
+** Show information about the webpage cache. Requires Admin privilege.
336336
*/
337337
void cache_page(void){
338338
sqlite3 *db;
339339
sqlite3_stmt *pStmt;
340340
char zBuf[100];
@@ -380,10 +380,11 @@
380380
**
381381
** Usage: /cacheget?key=KEY
382382
**
383383
** Download a single entry for the cache, identified by KEY.
384384
** This page is normally a hyperlink from the /cachestat page.
385
+** Requires Admin privilege.
385386
*/
386387
void cache_getpage(void){
387388
const char *zKey;
388389
Blob content;
389390
390391
--- src/cache.c
+++ src/cache.c
@@ -330,11 +330,11 @@
330 }
331
332 /*
333 ** WEBPAGE: cachestat
334 **
335 ** Show information about the webpage cache
336 */
337 void cache_page(void){
338 sqlite3 *db;
339 sqlite3_stmt *pStmt;
340 char zBuf[100];
@@ -380,10 +380,11 @@
380 **
381 ** Usage: /cacheget?key=KEY
382 **
383 ** Download a single entry for the cache, identified by KEY.
384 ** This page is normally a hyperlink from the /cachestat page.
 
385 */
386 void cache_getpage(void){
387 const char *zKey;
388 Blob content;
389
390
--- src/cache.c
+++ src/cache.c
@@ -330,11 +330,11 @@
330 }
331
332 /*
333 ** WEBPAGE: cachestat
334 **
335 ** Show information about the webpage cache. Requires Admin privilege.
336 */
337 void cache_page(void){
338 sqlite3 *db;
339 sqlite3_stmt *pStmt;
340 char zBuf[100];
@@ -380,10 +380,11 @@
380 **
381 ** Usage: /cacheget?key=KEY
382 **
383 ** Download a single entry for the cache, identified by KEY.
384 ** This page is normally a hyperlink from the /cachestat page.
385 ** Requires Admin privilege.
386 */
387 void cache_getpage(void){
388 const char *zKey;
389 Blob content;
390
391
--- src/captcha.c
+++ src/captcha.c
@@ -414,10 +414,12 @@
414414
}
415415
#endif /* CAPTCHA==3 */
416416
417417
/*
418418
** COMMAND: test-captcha
419
+**
420
+** Render an ASCII-art captcha for numbers given on the command line.
419421
*/
420422
void test_captcha(void){
421423
int i;
422424
unsigned int v;
423425
char *z;
@@ -551,10 +553,13 @@
551553
@ </td></tr></table></div>
552554
}
553555
554556
/*
555557
** WEBPAGE: test-captcha
558
+** Test the captcha-generator by rendering the value of the name= query
559
+** parameter using ascii-art. If name= is omitted, show a random 16-digit
560
+** hexadecimal number.
556561
*/
557562
void captcha_test(void){
558563
const char *zPw = P("name");
559564
if( zPw==0 || zPw[0]==0 ){
560565
u64 x;
561566
--- src/captcha.c
+++ src/captcha.c
@@ -414,10 +414,12 @@
414 }
415 #endif /* CAPTCHA==3 */
416
417 /*
418 ** COMMAND: test-captcha
 
 
419 */
420 void test_captcha(void){
421 int i;
422 unsigned int v;
423 char *z;
@@ -551,10 +553,13 @@
551 @ </td></tr></table></div>
552 }
553
554 /*
555 ** WEBPAGE: test-captcha
 
 
 
556 */
557 void captcha_test(void){
558 const char *zPw = P("name");
559 if( zPw==0 || zPw[0]==0 ){
560 u64 x;
561
--- src/captcha.c
+++ src/captcha.c
@@ -414,10 +414,12 @@
414 }
415 #endif /* CAPTCHA==3 */
416
417 /*
418 ** COMMAND: test-captcha
419 **
420 ** Render an ASCII-art captcha for numbers given on the command line.
421 */
422 void test_captcha(void){
423 int i;
424 unsigned int v;
425 char *z;
@@ -551,10 +553,13 @@
553 @ </td></tr></table></div>
554 }
555
556 /*
557 ** WEBPAGE: test-captcha
558 ** Test the captcha-generator by rendering the value of the name= query
559 ** parameter using ascii-art. If name= is omitted, show a random 16-digit
560 ** hexadecimal number.
561 */
562 void captcha_test(void){
563 const char *zPw = P("name");
564 if( zPw==0 || zPw[0]==0 ){
565 u64 x;
566
--- src/descendants.c
+++ src/descendants.c
@@ -465,11 +465,21 @@
465465
}
466466
467467
/*
468468
** WEBPAGE: leaves
469469
**
470
-** Find leaves of all branches.
470
+** Show leaf check-ins in a timeline. By default only open leaves
471
+** are listed.
472
+**
473
+** A "leaf" is a check-in with no children in the same branch. A
474
+** "closed leaf" is a leaf that has a "closed" tag. An "open leaf"
475
+** is a leaf without a "closed" tag.
476
+**
477
+** Query parameters:
478
+**
479
+** all Show all leaves
480
+** closed Show only closed leaves
471481
*/
472482
void leaves_page(void){
473483
Blob sql;
474484
Stmt q;
475485
int showAll = P("all")!=0;
476486
--- src/descendants.c
+++ src/descendants.c
@@ -465,11 +465,21 @@
465 }
466
467 /*
468 ** WEBPAGE: leaves
469 **
470 ** Find leaves of all branches.
 
 
 
 
 
 
 
 
 
 
471 */
472 void leaves_page(void){
473 Blob sql;
474 Stmt q;
475 int showAll = P("all")!=0;
476
--- src/descendants.c
+++ src/descendants.c
@@ -465,11 +465,21 @@
465 }
466
467 /*
468 ** WEBPAGE: leaves
469 **
470 ** Show leaf check-ins in a timeline. By default only open leaves
471 ** are listed.
472 **
473 ** A "leaf" is a check-in with no children in the same branch. A
474 ** "closed leaf" is a leaf that has a "closed" tag. An "open leaf"
475 ** is a leaf without a "closed" tag.
476 **
477 ** Query parameters:
478 **
479 ** all Show all leaves
480 ** closed Show only closed leaves
481 */
482 void leaves_page(void){
483 Blob sql;
484 Stmt q;
485 int showAll = P("all")!=0;
486
+17 -1
--- src/diff.c
+++ src/diff.c
@@ -1929,10 +1929,16 @@
19291929
return diffFlags;
19301930
}
19311931
19321932
/*
19331933
** COMMAND: test-rawdiff
1934
+**
1935
+** Usage: %fossil test-rawdiff FILE1 FILE2
1936
+**
1937
+** Show a minimal sequence of Copy/Delete/Insert operations needed to convert
1938
+** FILE1 into FILE2. This command is intended for use in testing and debugging
1939
+** the built-in difference engine of Fossil.
19341940
*/
19351941
void test_rawdiff_cmd(void){
19361942
Blob a, b;
19371943
int r;
19381944
int i;
@@ -2207,17 +2213,27 @@
22072213
/*
22082214
** WEBPAGE: annotate
22092215
** WEBPAGE: blame
22102216
** WEBPAGE: praise
22112217
**
2218
+** URL: /annotate?checkin=ID&filename=FILENAME
2219
+** URL: /blame?checkin=ID&filename=FILENAME
2220
+** URL: /praise?checkin=ID&filename=FILENAME
2221
+**
2222
+** Show the most recent change to each line of a text file. /annotate shows
2223
+** the date of the changes and the check-in SHA1 hash (with a link to the
2224
+** check-in). /blame and /praise also show the user who made the check-in.
2225
+**
22122226
** Query parameters:
22132227
**
22142228
** checkin=ID The manifest ID at which to start the annotation
22152229
** filename=FILENAME The filename.
22162230
** filevers Show file versions rather than check-in versions
2217
-** log=BOOLEAN Show a log of versions analyzed
22182231
** limit=N Limit the search depth to N ancestors
2232
+** log=BOOLEAN Show a log of versions analyzed
2233
+** w Ignore whitespace
2234
+**
22192235
*/
22202236
void annotation_page(void){
22212237
int mid;
22222238
int fnid;
22232239
int i;
22242240
--- src/diff.c
+++ src/diff.c
@@ -1929,10 +1929,16 @@
1929 return diffFlags;
1930 }
1931
1932 /*
1933 ** COMMAND: test-rawdiff
 
 
 
 
 
 
1934 */
1935 void test_rawdiff_cmd(void){
1936 Blob a, b;
1937 int r;
1938 int i;
@@ -2207,17 +2213,27 @@
2207 /*
2208 ** WEBPAGE: annotate
2209 ** WEBPAGE: blame
2210 ** WEBPAGE: praise
2211 **
 
 
 
 
 
 
 
 
2212 ** Query parameters:
2213 **
2214 ** checkin=ID The manifest ID at which to start the annotation
2215 ** filename=FILENAME The filename.
2216 ** filevers Show file versions rather than check-in versions
2217 ** log=BOOLEAN Show a log of versions analyzed
2218 ** limit=N Limit the search depth to N ancestors
 
 
 
2219 */
2220 void annotation_page(void){
2221 int mid;
2222 int fnid;
2223 int i;
2224
--- src/diff.c
+++ src/diff.c
@@ -1929,10 +1929,16 @@
1929 return diffFlags;
1930 }
1931
1932 /*
1933 ** COMMAND: test-rawdiff
1934 **
1935 ** Usage: %fossil test-rawdiff FILE1 FILE2
1936 **
1937 ** Show a minimal sequence of Copy/Delete/Insert operations needed to convert
1938 ** FILE1 into FILE2. This command is intended for use in testing and debugging
1939 ** the built-in difference engine of Fossil.
1940 */
1941 void test_rawdiff_cmd(void){
1942 Blob a, b;
1943 int r;
1944 int i;
@@ -2207,17 +2213,27 @@
2213 /*
2214 ** WEBPAGE: annotate
2215 ** WEBPAGE: blame
2216 ** WEBPAGE: praise
2217 **
2218 ** URL: /annotate?checkin=ID&filename=FILENAME
2219 ** URL: /blame?checkin=ID&filename=FILENAME
2220 ** URL: /praise?checkin=ID&filename=FILENAME
2221 **
2222 ** Show the most recent change to each line of a text file. /annotate shows
2223 ** the date of the changes and the check-in SHA1 hash (with a link to the
2224 ** check-in). /blame and /praise also show the user who made the check-in.
2225 **
2226 ** Query parameters:
2227 **
2228 ** checkin=ID The manifest ID at which to start the annotation
2229 ** filename=FILENAME The filename.
2230 ** filevers Show file versions rather than check-in versions
 
2231 ** limit=N Limit the search depth to N ancestors
2232 ** log=BOOLEAN Show a log of versions analyzed
2233 ** w Ignore whitespace
2234 **
2235 */
2236 void annotation_page(void){
2237 int mid;
2238 int fnid;
2239 int i;
2240
+3 -1
--- src/diffcmd.c
+++ src/diffcmd.c
@@ -835,11 +835,13 @@
835835
}
836836
}
837837
838838
/*
839839
** WEBPAGE: vpatch
840
-** URL vpatch?from=UUID&to=UUID
840
+** URL: /vpatch?from=FROM&to=TO
841
+**
842
+** Show a patch that goes from check-in FROM to check-in TO.
841843
*/
842844
void vpatch_page(void){
843845
const char *zFrom = P("from");
844846
const char *zTo = P("to");
845847
login_check_credentials();
846848
--- src/diffcmd.c
+++ src/diffcmd.c
@@ -835,11 +835,13 @@
835 }
836 }
837
838 /*
839 ** WEBPAGE: vpatch
840 ** URL vpatch?from=UUID&to=UUID
 
 
841 */
842 void vpatch_page(void){
843 const char *zFrom = P("from");
844 const char *zTo = P("to");
845 login_check_credentials();
846
--- src/diffcmd.c
+++ src/diffcmd.c
@@ -835,11 +835,13 @@
835 }
836 }
837
838 /*
839 ** WEBPAGE: vpatch
840 ** URL: /vpatch?from=FROM&to=TO
841 **
842 ** Show a patch that goes from check-in FROM to check-in TO.
843 */
844 void vpatch_page(void){
845 const char *zFrom = P("from");
846 const char *zTo = P("to");
847 login_check_credentials();
848
+10 -3
--- src/doc.c
+++ src/doc.c
@@ -774,11 +774,12 @@
774774
775775
776776
/*
777777
** WEBPAGE: background
778778
**
779
-** Return the background image.
779
+** Return the background image. If no background image is defined, a
780
+** built-in 16x16 pixel white GIF is returned.
780781
*/
781782
void background_page(void){
782783
Blob bgimg;
783784
char *zMime;
784785
@@ -793,15 +794,21 @@
793794
g.isConst = 1;
794795
}
795796
796797
797798
/*
798
-** WEBPAGE: /docsrch
799
+** WEBPAGE: docsrch
800
+**
801
+** Search for documents that match a user-supplied full-text search pattern.
802
+** If no pattern is specified (by the s= query parameter) then the user
803
+** is prompted to enter a search string.
804
+**
805
+** Query parameters:
799806
**
800
-** Search for documents that match a user-supplied pattern.
807
+** s=PATTERN Search for PATTERN
801808
*/
802809
void doc_search_page(void){
803810
login_check_credentials();
804811
style_header("Document Search");
805812
search_screen(SRCH_DOC, 0);
806813
style_footer();
807814
}
808815
--- src/doc.c
+++ src/doc.c
@@ -774,11 +774,12 @@
774
775
776 /*
777 ** WEBPAGE: background
778 **
779 ** Return the background image.
 
780 */
781 void background_page(void){
782 Blob bgimg;
783 char *zMime;
784
@@ -793,15 +794,21 @@
793 g.isConst = 1;
794 }
795
796
797 /*
798 ** WEBPAGE: /docsrch
 
 
 
 
 
 
799 **
800 ** Search for documents that match a user-supplied pattern.
801 */
802 void doc_search_page(void){
803 login_check_credentials();
804 style_header("Document Search");
805 search_screen(SRCH_DOC, 0);
806 style_footer();
807 }
808
--- src/doc.c
+++ src/doc.c
@@ -774,11 +774,12 @@
774
775
776 /*
777 ** WEBPAGE: background
778 **
779 ** Return the background image. If no background image is defined, a
780 ** built-in 16x16 pixel white GIF is returned.
781 */
782 void background_page(void){
783 Blob bgimg;
784 char *zMime;
785
@@ -793,15 +794,21 @@
794 g.isConst = 1;
795 }
796
797
798 /*
799 ** WEBPAGE: docsrch
800 **
801 ** Search for documents that match a user-supplied full-text search pattern.
802 ** If no pattern is specified (by the s= query parameter) then the user
803 ** is prompted to enter a search string.
804 **
805 ** Query parameters:
806 **
807 ** s=PATTERN Search for PATTERN
808 */
809 void doc_search_page(void){
810 login_check_credentials();
811 style_header("Document Search");
812 search_screen(SRCH_DOC, 0);
813 style_footer();
814 }
815
--- src/encode.c
+++ src/encode.c
@@ -606,10 +606,14 @@
606606
/*
607607
** Command to test obscure() and unobscure(). These commands are also useful
608608
** utilities for decoding passwords found in the database.
609609
**
610610
** COMMAND: test-obscure
611
+**
612
+** For each command-line argument X, run both obscure(X) and
613
+** unobscure(obscure(X)) and print the results. This is used for testing
614
+** and debugging of the obscure() and unobscure() functions.
611615
*/
612616
void test_obscure_cmd(void){
613617
int i;
614618
char *z, *z2;
615619
for(i=2; i<g.argc; i++){
616620
--- src/encode.c
+++ src/encode.c
@@ -606,10 +606,14 @@
606 /*
607 ** Command to test obscure() and unobscure(). These commands are also useful
608 ** utilities for decoding passwords found in the database.
609 **
610 ** COMMAND: test-obscure
 
 
 
 
611 */
612 void test_obscure_cmd(void){
613 int i;
614 char *z, *z2;
615 for(i=2; i<g.argc; i++){
616
--- src/encode.c
+++ src/encode.c
@@ -606,10 +606,14 @@
606 /*
607 ** Command to test obscure() and unobscure(). These commands are also useful
608 ** utilities for decoding passwords found in the database.
609 **
610 ** COMMAND: test-obscure
611 **
612 ** For each command-line argument X, run both obscure(X) and
613 ** unobscure(obscure(X)) and print the results. This is used for testing
614 ** and debugging of the obscure() and unobscure() functions.
615 */
616 void test_obscure_cmd(void){
617 int i;
618 char *z, *z2;
619 for(i=2; i<g.argc; i++){
620
--- src/finfo.c
+++ src/finfo.c
@@ -288,10 +288,11 @@
288288
** b=DATE Only show changes before DATE
289289
** n=NUM Show the first NUM changes only
290290
** brbg Background color by branch name
291291
** ubg Background color by user name
292292
** ci=UUID Ancestors of a particular check-in
293
+** showid Show RID values for debugging
293294
*/
294295
void finfo_page(void){
295296
Stmt q;
296297
const char *zFilename;
297298
char zPrevDate[20];
298299
--- src/finfo.c
+++ src/finfo.c
@@ -288,10 +288,11 @@
288 ** b=DATE Only show changes before DATE
289 ** n=NUM Show the first NUM changes only
290 ** brbg Background color by branch name
291 ** ubg Background color by user name
292 ** ci=UUID Ancestors of a particular check-in
 
293 */
294 void finfo_page(void){
295 Stmt q;
296 const char *zFilename;
297 char zPrevDate[20];
298
--- src/finfo.c
+++ src/finfo.c
@@ -288,10 +288,11 @@
288 ** b=DATE Only show changes before DATE
289 ** n=NUM Show the first NUM changes only
290 ** brbg Background color by branch name
291 ** ubg Background color by user name
292 ** ci=UUID Ancestors of a particular check-in
293 ** showid Show RID values for debugging
294 */
295 void finfo_page(void){
296 Stmt q;
297 const char *zFilename;
298 char zPrevDate[20];
299
+18 -8
--- src/info.c
+++ src/info.c
@@ -483,15 +483,16 @@
483483
}
484484
485485
/*
486486
** WEBPAGE: vinfo
487487
** WEBPAGE: ci
488
-** URL: /ci?name=RID|ARTIFACTID
488
+** URL: /ci?name=ARTIFACTID
489
+** URL: /vinfo?name=ARTIFACTID
489490
**
490491
** Display information about a particular check-in.
491492
**
492
-** We also jump here from /info if the name is a version.
493
+** We also jump here from /info if the name is a check-in
493494
**
494495
** If the /ci page is used (instead of /vinfo or /info) then the
495496
** default behavior is to show unified diffs of all file changes.
496497
** With /vinfo and /info, only a list of the changed files are
497498
** shown, without diffs. This behavior is inverted if the
@@ -746,11 +747,11 @@
746747
747748
/*
748749
** WEBPAGE: winfo
749750
** URL: /winfo?name=UUID
750751
**
751
-** Return information about a wiki page.
752
+** Display information about a wiki page.
752753
*/
753754
void winfo_page(void){
754755
int rid;
755756
Manifest *pWiki;
756757
char *zUuid;
@@ -949,20 +950,25 @@
949950
}
950951
951952
952953
/*
953954
** WEBPAGE: vdiff
954
-** URL: /vdiff
955
+** URL: /vdiff?from=TAG&to=TAG
956
+**
957
+** Show the difference between two check-ins identified by the from= and
958
+** to= query parameters.
955959
**
956960
** Query parameters:
957961
**
958962
** from=TAG Left side of the comparison
959963
** to=TAG Right side of the comparison
960964
** branch=TAG Show all changes on a particular branch
961965
** v=BOOLEAN Default true. If false, only list files that have changed
962966
** sbs=BOOLEAN Side-by-side diff if true. Unified diff if false
963967
** glob=STRING only diff files matching this glob
968
+** dc=N show N lines of context around each diff
969
+** w ignore whitespace when computing diffs
964970
**
965971
**
966972
** Show all differences between two check-ins.
967973
*/
968974
void vdiff_page(void){
@@ -1395,10 +1401,12 @@
13951401
** is 0. Generate plaintext if "patch" is present.
13961402
**
13971403
** Additional parameters:
13981404
**
13991405
** verbose Show more detail when describing artifacts
1406
+** dc=N Show N lines of context around each diff
1407
+** w Ignore whitespace
14001408
*/
14011409
void diff_page(void){
14021410
int v1, v2;
14031411
int isPatch;
14041412
int sideBySide;
@@ -2022,14 +2030,14 @@
20222030
20232031
/*
20242032
** WEBPAGE: info
20252033
** URL: info/ARTIFACTID
20262034
**
2027
-** The argument is a artifact ID which might be a baseline or a file or
2035
+** The argument is a artifact ID which might be a check-in or a file or
20282036
** a ticket changes or a wiki edit or something else.
20292037
**
2030
-** Figure out what the artifact ID is and jump to it.
2038
+** Figure out what the artifact ID is and display it appropriately.
20312039
*/
20322040
void info_page(void){
20332041
const char *zName;
20342042
Blob uuid;
20352043
int rid;
@@ -2257,17 +2265,19 @@
22572265
return zA[0]==0 && zB[0]==0;
22582266
}
22592267
22602268
/*
22612269
** WEBPAGE: ci_edit
2262
-** URL: ci_edit?r=RID&c=NEWCOMMENT&u=NEWUSER
2270
+** URL: /ci_edit?r=RID&c=NEWCOMMENT&u=NEWUSER
22632271
**
2264
-** Present a dialog for updating properties of a baseline:
2272
+** Present a dialog for updating properties of a check-in.
22652273
**
22662274
** * The check-in user
22672275
** * The check-in comment
2276
+** * The check-in time and date
22682277
** * The background color.
2278
+** * Add and remove tags
22692279
*/
22702280
void ci_edit_page(void){
22712281
int rid;
22722282
const char *zComment; /* Current comment on the check-in */
22732283
const char *zNewComment; /* Revised check-in comment */
22742284
--- src/info.c
+++ src/info.c
@@ -483,15 +483,16 @@
483 }
484
485 /*
486 ** WEBPAGE: vinfo
487 ** WEBPAGE: ci
488 ** URL: /ci?name=RID|ARTIFACTID
 
489 **
490 ** Display information about a particular check-in.
491 **
492 ** We also jump here from /info if the name is a version.
493 **
494 ** If the /ci page is used (instead of /vinfo or /info) then the
495 ** default behavior is to show unified diffs of all file changes.
496 ** With /vinfo and /info, only a list of the changed files are
497 ** shown, without diffs. This behavior is inverted if the
@@ -746,11 +747,11 @@
746
747 /*
748 ** WEBPAGE: winfo
749 ** URL: /winfo?name=UUID
750 **
751 ** Return information about a wiki page.
752 */
753 void winfo_page(void){
754 int rid;
755 Manifest *pWiki;
756 char *zUuid;
@@ -949,20 +950,25 @@
949 }
950
951
952 /*
953 ** WEBPAGE: vdiff
954 ** URL: /vdiff
 
 
 
955 **
956 ** Query parameters:
957 **
958 ** from=TAG Left side of the comparison
959 ** to=TAG Right side of the comparison
960 ** branch=TAG Show all changes on a particular branch
961 ** v=BOOLEAN Default true. If false, only list files that have changed
962 ** sbs=BOOLEAN Side-by-side diff if true. Unified diff if false
963 ** glob=STRING only diff files matching this glob
 
 
964 **
965 **
966 ** Show all differences between two check-ins.
967 */
968 void vdiff_page(void){
@@ -1395,10 +1401,12 @@
1395 ** is 0. Generate plaintext if "patch" is present.
1396 **
1397 ** Additional parameters:
1398 **
1399 ** verbose Show more detail when describing artifacts
 
 
1400 */
1401 void diff_page(void){
1402 int v1, v2;
1403 int isPatch;
1404 int sideBySide;
@@ -2022,14 +2030,14 @@
2022
2023 /*
2024 ** WEBPAGE: info
2025 ** URL: info/ARTIFACTID
2026 **
2027 ** The argument is a artifact ID which might be a baseline or a file or
2028 ** a ticket changes or a wiki edit or something else.
2029 **
2030 ** Figure out what the artifact ID is and jump to it.
2031 */
2032 void info_page(void){
2033 const char *zName;
2034 Blob uuid;
2035 int rid;
@@ -2257,17 +2265,19 @@
2257 return zA[0]==0 && zB[0]==0;
2258 }
2259
2260 /*
2261 ** WEBPAGE: ci_edit
2262 ** URL: ci_edit?r=RID&c=NEWCOMMENT&u=NEWUSER
2263 **
2264 ** Present a dialog for updating properties of a baseline:
2265 **
2266 ** * The check-in user
2267 ** * The check-in comment
 
2268 ** * The background color.
 
2269 */
2270 void ci_edit_page(void){
2271 int rid;
2272 const char *zComment; /* Current comment on the check-in */
2273 const char *zNewComment; /* Revised check-in comment */
2274
--- src/info.c
+++ src/info.c
@@ -483,15 +483,16 @@
483 }
484
485 /*
486 ** WEBPAGE: vinfo
487 ** WEBPAGE: ci
488 ** URL: /ci?name=ARTIFACTID
489 ** URL: /vinfo?name=ARTIFACTID
490 **
491 ** Display information about a particular check-in.
492 **
493 ** We also jump here from /info if the name is a check-in
494 **
495 ** If the /ci page is used (instead of /vinfo or /info) then the
496 ** default behavior is to show unified diffs of all file changes.
497 ** With /vinfo and /info, only a list of the changed files are
498 ** shown, without diffs. This behavior is inverted if the
@@ -746,11 +747,11 @@
747
748 /*
749 ** WEBPAGE: winfo
750 ** URL: /winfo?name=UUID
751 **
752 ** Display information about a wiki page.
753 */
754 void winfo_page(void){
755 int rid;
756 Manifest *pWiki;
757 char *zUuid;
@@ -949,20 +950,25 @@
950 }
951
952
953 /*
954 ** WEBPAGE: vdiff
955 ** URL: /vdiff?from=TAG&to=TAG
956 **
957 ** Show the difference between two check-ins identified by the from= and
958 ** to= query parameters.
959 **
960 ** Query parameters:
961 **
962 ** from=TAG Left side of the comparison
963 ** to=TAG Right side of the comparison
964 ** branch=TAG Show all changes on a particular branch
965 ** v=BOOLEAN Default true. If false, only list files that have changed
966 ** sbs=BOOLEAN Side-by-side diff if true. Unified diff if false
967 ** glob=STRING only diff files matching this glob
968 ** dc=N show N lines of context around each diff
969 ** w ignore whitespace when computing diffs
970 **
971 **
972 ** Show all differences between two check-ins.
973 */
974 void vdiff_page(void){
@@ -1395,10 +1401,12 @@
1401 ** is 0. Generate plaintext if "patch" is present.
1402 **
1403 ** Additional parameters:
1404 **
1405 ** verbose Show more detail when describing artifacts
1406 ** dc=N Show N lines of context around each diff
1407 ** w Ignore whitespace
1408 */
1409 void diff_page(void){
1410 int v1, v2;
1411 int isPatch;
1412 int sideBySide;
@@ -2022,14 +2030,14 @@
2030
2031 /*
2032 ** WEBPAGE: info
2033 ** URL: info/ARTIFACTID
2034 **
2035 ** The argument is a artifact ID which might be a check-in or a file or
2036 ** a ticket changes or a wiki edit or something else.
2037 **
2038 ** Figure out what the artifact ID is and display it appropriately.
2039 */
2040 void info_page(void){
2041 const char *zName;
2042 Blob uuid;
2043 int rid;
@@ -2257,17 +2265,19 @@
2265 return zA[0]==0 && zB[0]==0;
2266 }
2267
2268 /*
2269 ** WEBPAGE: ci_edit
2270 ** URL: /ci_edit?r=RID&c=NEWCOMMENT&u=NEWUSER
2271 **
2272 ** Present a dialog for updating properties of a check-in.
2273 **
2274 ** * The check-in user
2275 ** * The check-in comment
2276 ** * The check-in time and date
2277 ** * The background color.
2278 ** * Add and remove tags
2279 */
2280 void ci_edit_page(void){
2281 int rid;
2282 const char *zComment; /* Current comment on the check-in */
2283 const char *zNewComment; /* Revised check-in comment */
2284
+2 -2
--- src/login.c
+++ src/login.c
@@ -1302,12 +1302,12 @@
13021302
}
13031303
13041304
/*
13051305
** WEBPAGE: register
13061306
**
1307
-** Generate the register page.
1308
-**
1307
+** Page to allow users to self-register. The "self-register" setting
1308
+** must be enabled for this page to operate.
13091309
*/
13101310
void register_page(void){
13111311
const char *zUsername, *zPasswd, *zConfirm, *zContact, *zCS, *zPw, *zCap;
13121312
unsigned int uSeed;
13131313
const char *zDecoded;
13141314
--- src/login.c
+++ src/login.c
@@ -1302,12 +1302,12 @@
1302 }
1303
1304 /*
1305 ** WEBPAGE: register
1306 **
1307 ** Generate the register page.
1308 **
1309 */
1310 void register_page(void){
1311 const char *zUsername, *zPasswd, *zConfirm, *zContact, *zCS, *zPw, *zCap;
1312 unsigned int uSeed;
1313 const char *zDecoded;
1314
--- src/login.c
+++ src/login.c
@@ -1302,12 +1302,12 @@
1302 }
1303
1304 /*
1305 ** WEBPAGE: register
1306 **
1307 ** Page to allow users to self-register. The "self-register" setting
1308 ** must be enabled for this page to operate.
1309 */
1310 void register_page(void){
1311 const char *zUsername, *zPasswd, *zConfirm, *zContact, *zCS, *zPw, *zCap;
1312 unsigned int uSeed;
1313 const char *zDecoded;
1314
+4 -2
--- src/main.c
+++ src/main.c
@@ -1131,11 +1131,14 @@
11311131
putchar('\n');
11321132
}
11331133
11341134
/*
11351135
** WEBPAGE: help
1136
-** URL: /help/CMD
1136
+** URL: /help?name=CMD
1137
+**
1138
+** Show the built-in help text for CMD. CMD can be a command-line interface
1139
+** command or a page name from the web interface.
11371140
*/
11381141
void help_page(void){
11391142
const char *zCmd = P("cmd");
11401143
11411144
if( zCmd==0 ) zCmd = P("name");
@@ -1199,11 +1202,10 @@
11991202
@ </ul></td>
12001203
}
12011204
@ </tr></table>
12021205
12031206
@ <h1>Available web UI pages:</h1>
1204
- @ (Only pages with help text are linked.)
12051207
@ <table border="0"><tr>
12061208
for(i=j=0; i<count(aCommand); i++){
12071209
const char *z = aCommand[i].zName;
12081210
if( '/'!=*z ) continue;
12091211
j++;
12101212
--- src/main.c
+++ src/main.c
@@ -1131,11 +1131,14 @@
1131 putchar('\n');
1132 }
1133
1134 /*
1135 ** WEBPAGE: help
1136 ** URL: /help/CMD
 
 
 
1137 */
1138 void help_page(void){
1139 const char *zCmd = P("cmd");
1140
1141 if( zCmd==0 ) zCmd = P("name");
@@ -1199,11 +1202,10 @@
1199 @ </ul></td>
1200 }
1201 @ </tr></table>
1202
1203 @ <h1>Available web UI pages:</h1>
1204 @ (Only pages with help text are linked.)
1205 @ <table border="0"><tr>
1206 for(i=j=0; i<count(aCommand); i++){
1207 const char *z = aCommand[i].zName;
1208 if( '/'!=*z ) continue;
1209 j++;
1210
--- src/main.c
+++ src/main.c
@@ -1131,11 +1131,14 @@
1131 putchar('\n');
1132 }
1133
1134 /*
1135 ** WEBPAGE: help
1136 ** URL: /help?name=CMD
1137 **
1138 ** Show the built-in help text for CMD. CMD can be a command-line interface
1139 ** command or a page name from the web interface.
1140 */
1141 void help_page(void){
1142 const char *zCmd = P("cmd");
1143
1144 if( zCmd==0 ) zCmd = P("name");
@@ -1199,11 +1202,10 @@
1202 @ </ul></td>
1203 }
1204 @ </tr></table>
1205
1206 @ <h1>Available web UI pages:</h1>
 
1207 @ <table border="0"><tr>
1208 for(i=j=0; i<count(aCommand); i++){
1209 const char *z = aCommand[i].zName;
1210 if( '/'!=*z ) continue;
1211 j++;
1212
+18 -5
--- src/report.c
+++ src/report.c
@@ -28,11 +28,11 @@
2828
#ifndef SQLITE_RECURSIVE
2929
# define SQLITE_RECURSIVE 33
3030
#endif
3131
3232
/*
33
-** WEBPAGE: /reportlist
33
+** WEBPAGE: reportlist
3434
**
3535
** Main menu for Tickets.
3636
*/
3737
void view_list(void){
3838
const char *zScript;
@@ -284,11 +284,15 @@
284284
report_unrestrict_sql();
285285
return zErr;
286286
}
287287
288288
/*
289
-** WEBPAGE: /rptsql
289
+** WEBPAGE: rptsql
290
+** URL: /rptsql?rn=N
291
+**
292
+** Display the SQL query used to generate a ticket report. The rn=N
293
+** query parameter identifies the specific report number to be displayed.
290294
*/
291295
void view_see_sql(void){
292296
int rn;
293297
const char *zTitle;
294298
const char *zSQL;
@@ -332,12 +336,21 @@
332336
style_footer();
333337
db_finalize(&q);
334338
}
335339
336340
/*
337
-** WEBPAGE: /rptnew
338
-** WEBPAGE: /rptedit
341
+** WEBPAGE: rptnew
342
+** WEBPAGE: rptedit
343
+**
344
+** Create (/rptnew) or edit (/rptedit) a ticket report format.
345
+** Query parameters:
346
+**
347
+** rn=N Ticket report number. (required)
348
+** t=TITLE Title of the report format
349
+** w=USER Owner of the report format
350
+** s=SQL SQL text used to implement the report
351
+** k=KEY Color key
339352
*/
340353
void view_edit(void){
341354
int rn;
342355
const char *zTitle;
343356
const char *z;
@@ -1061,11 +1074,11 @@
10611074
@ </script>
10621075
}
10631076
10641077
10651078
/*
1066
-** WEBPAGE: /rptview
1079
+** WEBPAGE: rptview
10671080
**
10681081
** Generate a report. The rn query parameter is the report number
10691082
** corresponding to REPORTFMT.RN. If the tablist query parameter exists,
10701083
** then the output consists of lines of tab-separated fields instead of
10711084
** an HTML table.
10721085
--- src/report.c
+++ src/report.c
@@ -28,11 +28,11 @@
28 #ifndef SQLITE_RECURSIVE
29 # define SQLITE_RECURSIVE 33
30 #endif
31
32 /*
33 ** WEBPAGE: /reportlist
34 **
35 ** Main menu for Tickets.
36 */
37 void view_list(void){
38 const char *zScript;
@@ -284,11 +284,15 @@
284 report_unrestrict_sql();
285 return zErr;
286 }
287
288 /*
289 ** WEBPAGE: /rptsql
 
 
 
 
290 */
291 void view_see_sql(void){
292 int rn;
293 const char *zTitle;
294 const char *zSQL;
@@ -332,12 +336,21 @@
332 style_footer();
333 db_finalize(&q);
334 }
335
336 /*
337 ** WEBPAGE: /rptnew
338 ** WEBPAGE: /rptedit
 
 
 
 
 
 
 
 
 
339 */
340 void view_edit(void){
341 int rn;
342 const char *zTitle;
343 const char *z;
@@ -1061,11 +1074,11 @@
1061 @ </script>
1062 }
1063
1064
1065 /*
1066 ** WEBPAGE: /rptview
1067 **
1068 ** Generate a report. The rn query parameter is the report number
1069 ** corresponding to REPORTFMT.RN. If the tablist query parameter exists,
1070 ** then the output consists of lines of tab-separated fields instead of
1071 ** an HTML table.
1072
--- src/report.c
+++ src/report.c
@@ -28,11 +28,11 @@
28 #ifndef SQLITE_RECURSIVE
29 # define SQLITE_RECURSIVE 33
30 #endif
31
32 /*
33 ** WEBPAGE: reportlist
34 **
35 ** Main menu for Tickets.
36 */
37 void view_list(void){
38 const char *zScript;
@@ -284,11 +284,15 @@
284 report_unrestrict_sql();
285 return zErr;
286 }
287
288 /*
289 ** WEBPAGE: rptsql
290 ** URL: /rptsql?rn=N
291 **
292 ** Display the SQL query used to generate a ticket report. The rn=N
293 ** query parameter identifies the specific report number to be displayed.
294 */
295 void view_see_sql(void){
296 int rn;
297 const char *zTitle;
298 const char *zSQL;
@@ -332,12 +336,21 @@
336 style_footer();
337 db_finalize(&q);
338 }
339
340 /*
341 ** WEBPAGE: rptnew
342 ** WEBPAGE: rptedit
343 **
344 ** Create (/rptnew) or edit (/rptedit) a ticket report format.
345 ** Query parameters:
346 **
347 ** rn=N Ticket report number. (required)
348 ** t=TITLE Title of the report format
349 ** w=USER Owner of the report format
350 ** s=SQL SQL text used to implement the report
351 ** k=KEY Color key
352 */
353 void view_edit(void){
354 int rn;
355 const char *zTitle;
356 const char *z;
@@ -1061,11 +1074,11 @@
1074 @ </script>
1075 }
1076
1077
1078 /*
1079 ** WEBPAGE: rptview
1080 **
1081 ** Generate a report. The rn query parameter is the report number
1082 ** corresponding to REPORTFMT.RN. If the tablist query parameter exists,
1083 ** then the output consists of lines of tab-separated fields instead of
1084 ** an HTML table.
1085
+9 -1
--- src/search.c
+++ src/search.c
@@ -1047,14 +1047,22 @@
10471047
@ </div>
10481048
}
10491049
}
10501050
10511051
/*
1052
-** WEBPAGE: /search
1052
+** WEBPAGE: search
10531053
**
10541054
** Search for check-in comments, documents, tickets, or wiki that
10551055
** match a user-supplied pattern.
1056
+**
1057
+** s=PATTERN Specify the full-text pattern to search for
1058
+** y=TYPE What to search.
1059
+** c -> check-ins
1060
+** d -> documentation
1061
+** t -> tickets
1062
+** w -> wiki
1063
+** all -> everything
10561064
*/
10571065
void search_page(void){
10581066
login_check_credentials();
10591067
style_header("Search");
10601068
search_screen(SRCH_ALL, 1);
10611069
--- src/search.c
+++ src/search.c
@@ -1047,14 +1047,22 @@
1047 @ </div>
1048 }
1049 }
1050
1051 /*
1052 ** WEBPAGE: /search
1053 **
1054 ** Search for check-in comments, documents, tickets, or wiki that
1055 ** match a user-supplied pattern.
 
 
 
 
 
 
 
 
1056 */
1057 void search_page(void){
1058 login_check_credentials();
1059 style_header("Search");
1060 search_screen(SRCH_ALL, 1);
1061
--- src/search.c
+++ src/search.c
@@ -1047,14 +1047,22 @@
1047 @ </div>
1048 }
1049 }
1050
1051 /*
1052 ** WEBPAGE: search
1053 **
1054 ** Search for check-in comments, documents, tickets, or wiki that
1055 ** match a user-supplied pattern.
1056 **
1057 ** s=PATTERN Specify the full-text pattern to search for
1058 ** y=TYPE What to search.
1059 ** c -> check-ins
1060 ** d -> documentation
1061 ** t -> tickets
1062 ** w -> wiki
1063 ** all -> everything
1064 */
1065 void search_page(void){
1066 login_check_credentials();
1067 style_header("Search");
1068 search_screen(SRCH_ALL, 1);
1069
+31 -5
--- src/setup.c
+++ src/setup.c
@@ -54,11 +54,13 @@
5454
}
5555
5656
5757
5858
/*
59
-** WEBPAGE: /setup
59
+** WEBPAGE: setup
60
+**
61
+** Main menu for the administrative pages. Requires Admin privileges.
6062
*/
6163
void setup_page(void){
6264
login_check_credentials();
6365
if( !g.perm.Setup ){
6466
login_needed(0);
@@ -138,11 +140,11 @@
138140
139141
/*
140142
** WEBPAGE: setup_ulist
141143
**
142144
** Show a list of users. Clicking on any user jumps to the edit
143
-** screen for that user.
145
+** screen for that user. Requires Admin privileges.
144146
*/
145147
void setup_ulist(void){
146148
Stmt s;
147149
int prevLevel = 0;
148150
@@ -313,11 +315,14 @@
313315
while( zPw[0]=='*' ){ zPw++; }
314316
return zPw[0]!=0;
315317
}
316318
317319
/*
318
-** WEBPAGE: /setup_uedit
320
+** WEBPAGE: setup_uedit
321
+**
322
+** Edit information about a user or create a new user.
323
+** Requires Admin privileges.
319324
*/
320325
void user_edit(void){
321326
const char *zId, *zLogin, *zInfo, *zCap, *zPw;
322327
const char *zGroup;
323328
const char *zOldLogin;
@@ -989,10 +994,12 @@
989994
}
990995
991996
992997
/*
993998
** WEBPAGE: setup_access
999
+**
1000
+** The access-control settings page. Requires Admin privileges.
9941001
*/
9951002
void setup_access(void){
9961003
login_check_credentials();
9971004
if( !g.perm.Setup ){
9981005
login_needed(0);
@@ -1186,10 +1193,13 @@
11861193
style_footer();
11871194
}
11881195
11891196
/*
11901197
** WEBPAGE: setup_login_group
1198
+**
1199
+** Change how the current repository participates in a login
1200
+** group.
11911201
*/
11921202
void setup_login_group(void){
11931203
const char *zGroup;
11941204
char *zErrMsg = 0;
11951205
Blob fullName;
@@ -1299,10 +1309,13 @@
12991309
style_footer();
13001310
}
13011311
13021312
/*
13031313
** WEBPAGE: setup_timeline
1314
+**
1315
+** Edit administrative settings controlling the display of
1316
+** timelines.
13041317
*/
13051318
void setup_timeline(void){
13061319
double tmDiff;
13071320
char zTmDiff[20];
13081321
static const char *const azTimeFormats[] = {
@@ -1385,10 +1398,13 @@
13851398
style_footer();
13861399
}
13871400
13881401
/*
13891402
** WEBPAGE: setup_settings
1403
+**
1404
+** Change or view miscellanous settings. Part of the
1405
+** Admin pages requiring Admin privileges.
13901406
*/
13911407
void setup_settings(void){
13921408
Setting const *pSet;
13931409
13941410
login_check_credentials();
@@ -1468,10 +1484,12 @@
14681484
style_footer();
14691485
}
14701486
14711487
/*
14721488
** WEBPAGE: setup_config
1489
+**
1490
+** The "Admin/Configuration" page. Requires Admin privilege.
14731491
*/
14741492
void setup_config(void){
14751493
login_check_credentials();
14761494
if( !g.perm.Setup ){
14771495
login_needed(0);
@@ -1547,10 +1565,12 @@
15471565
style_footer();
15481566
}
15491567
15501568
/*
15511569
** WEBPAGE: setup_modreq
1570
+**
1571
+** Admin page for setting up moderation of tickets and wiki.
15521572
*/
15531573
void setup_modreq(void){
15541574
login_check_credentials();
15551575
if( !g.perm.Setup ){
15561576
login_needed(0);
@@ -1592,10 +1612,13 @@
15921612
15931613
}
15941614
15951615
/*
15961616
** WEBPAGE: setup_adunit
1617
+**
1618
+** Administrative page for configuring and controlling ad units
1619
+** and how they are displayed.
15971620
*/
15981621
void setup_adunit(void){
15991622
login_check_credentials();
16001623
if( !g.perm.Setup ){
16011624
login_needed(0);
@@ -1660,10 +1683,12 @@
16601683
db_end_transaction(0);
16611684
}
16621685
16631686
/*
16641687
** WEBPAGE: setup_logo
1688
+**
1689
+** Administrative page for changing the logo image.
16651690
*/
16661691
void setup_logo(void){
16671692
const char *zLogoMtime = db_get_mtime("logo-image", 0, 0);
16681693
const char *zLogoMime = db_get("logo-mimetype","image/gif");
16691694
const char *aLogoImg = P("logoim");
@@ -1812,10 +1837,11 @@
18121837
18131838
/*
18141839
** WEBPAGE: admin_sql
18151840
**
18161841
** Run raw SQL commands against the database file using the web interface.
1842
+** Requires Admin privileges.
18171843
*/
18181844
void sql_page(void){
18191845
const char *zQ = P("q");
18201846
int go = P("go")!=0;
18211847
login_check_credentials();
@@ -1933,11 +1959,11 @@
19331959
/*
19341960
** WEBPAGE: admin_th1
19351961
**
19361962
** Run raw TH1 commands using the web interface. If Tcl integration was
19371963
** enabled at compile-time and the "tcl" setting is enabled, Tcl commands
1938
-** may be run as well.
1964
+** may be run as well. Requires Admin privilege.
19391965
*/
19401966
void th1_page(void){
19411967
const char *zQ = P("q");
19421968
int go = P("go")!=0;
19431969
login_check_credentials();
@@ -2054,11 +2080,11 @@
20542080
}
20552081
20562082
/*
20572083
** WEBPAGE: srchsetup
20582084
**
2059
-** Configure the search engine.
2085
+** Configure the search engine. Requires Admin privilege.
20602086
*/
20612087
void page_srchsetup(){
20622088
login_check_credentials();
20632089
if( !g.perm.Setup && !g.perm.Admin ){
20642090
login_needed(0);
20652091
--- src/setup.c
+++ src/setup.c
@@ -54,11 +54,13 @@
54 }
55
56
57
58 /*
59 ** WEBPAGE: /setup
 
 
60 */
61 void setup_page(void){
62 login_check_credentials();
63 if( !g.perm.Setup ){
64 login_needed(0);
@@ -138,11 +140,11 @@
138
139 /*
140 ** WEBPAGE: setup_ulist
141 **
142 ** Show a list of users. Clicking on any user jumps to the edit
143 ** screen for that user.
144 */
145 void setup_ulist(void){
146 Stmt s;
147 int prevLevel = 0;
148
@@ -313,11 +315,14 @@
313 while( zPw[0]=='*' ){ zPw++; }
314 return zPw[0]!=0;
315 }
316
317 /*
318 ** WEBPAGE: /setup_uedit
 
 
 
319 */
320 void user_edit(void){
321 const char *zId, *zLogin, *zInfo, *zCap, *zPw;
322 const char *zGroup;
323 const char *zOldLogin;
@@ -989,10 +994,12 @@
989 }
990
991
992 /*
993 ** WEBPAGE: setup_access
 
 
994 */
995 void setup_access(void){
996 login_check_credentials();
997 if( !g.perm.Setup ){
998 login_needed(0);
@@ -1186,10 +1193,13 @@
1186 style_footer();
1187 }
1188
1189 /*
1190 ** WEBPAGE: setup_login_group
 
 
 
1191 */
1192 void setup_login_group(void){
1193 const char *zGroup;
1194 char *zErrMsg = 0;
1195 Blob fullName;
@@ -1299,10 +1309,13 @@
1299 style_footer();
1300 }
1301
1302 /*
1303 ** WEBPAGE: setup_timeline
 
 
 
1304 */
1305 void setup_timeline(void){
1306 double tmDiff;
1307 char zTmDiff[20];
1308 static const char *const azTimeFormats[] = {
@@ -1385,10 +1398,13 @@
1385 style_footer();
1386 }
1387
1388 /*
1389 ** WEBPAGE: setup_settings
 
 
 
1390 */
1391 void setup_settings(void){
1392 Setting const *pSet;
1393
1394 login_check_credentials();
@@ -1468,10 +1484,12 @@
1468 style_footer();
1469 }
1470
1471 /*
1472 ** WEBPAGE: setup_config
 
 
1473 */
1474 void setup_config(void){
1475 login_check_credentials();
1476 if( !g.perm.Setup ){
1477 login_needed(0);
@@ -1547,10 +1565,12 @@
1547 style_footer();
1548 }
1549
1550 /*
1551 ** WEBPAGE: setup_modreq
 
 
1552 */
1553 void setup_modreq(void){
1554 login_check_credentials();
1555 if( !g.perm.Setup ){
1556 login_needed(0);
@@ -1592,10 +1612,13 @@
1592
1593 }
1594
1595 /*
1596 ** WEBPAGE: setup_adunit
 
 
 
1597 */
1598 void setup_adunit(void){
1599 login_check_credentials();
1600 if( !g.perm.Setup ){
1601 login_needed(0);
@@ -1660,10 +1683,12 @@
1660 db_end_transaction(0);
1661 }
1662
1663 /*
1664 ** WEBPAGE: setup_logo
 
 
1665 */
1666 void setup_logo(void){
1667 const char *zLogoMtime = db_get_mtime("logo-image", 0, 0);
1668 const char *zLogoMime = db_get("logo-mimetype","image/gif");
1669 const char *aLogoImg = P("logoim");
@@ -1812,10 +1837,11 @@
1812
1813 /*
1814 ** WEBPAGE: admin_sql
1815 **
1816 ** Run raw SQL commands against the database file using the web interface.
 
1817 */
1818 void sql_page(void){
1819 const char *zQ = P("q");
1820 int go = P("go")!=0;
1821 login_check_credentials();
@@ -1933,11 +1959,11 @@
1933 /*
1934 ** WEBPAGE: admin_th1
1935 **
1936 ** Run raw TH1 commands using the web interface. If Tcl integration was
1937 ** enabled at compile-time and the "tcl" setting is enabled, Tcl commands
1938 ** may be run as well.
1939 */
1940 void th1_page(void){
1941 const char *zQ = P("q");
1942 int go = P("go")!=0;
1943 login_check_credentials();
@@ -2054,11 +2080,11 @@
2054 }
2055
2056 /*
2057 ** WEBPAGE: srchsetup
2058 **
2059 ** Configure the search engine.
2060 */
2061 void page_srchsetup(){
2062 login_check_credentials();
2063 if( !g.perm.Setup && !g.perm.Admin ){
2064 login_needed(0);
2065
--- src/setup.c
+++ src/setup.c
@@ -54,11 +54,13 @@
54 }
55
56
57
58 /*
59 ** WEBPAGE: setup
60 **
61 ** Main menu for the administrative pages. Requires Admin privileges.
62 */
63 void setup_page(void){
64 login_check_credentials();
65 if( !g.perm.Setup ){
66 login_needed(0);
@@ -138,11 +140,11 @@
140
141 /*
142 ** WEBPAGE: setup_ulist
143 **
144 ** Show a list of users. Clicking on any user jumps to the edit
145 ** screen for that user. Requires Admin privileges.
146 */
147 void setup_ulist(void){
148 Stmt s;
149 int prevLevel = 0;
150
@@ -313,11 +315,14 @@
315 while( zPw[0]=='*' ){ zPw++; }
316 return zPw[0]!=0;
317 }
318
319 /*
320 ** WEBPAGE: setup_uedit
321 **
322 ** Edit information about a user or create a new user.
323 ** Requires Admin privileges.
324 */
325 void user_edit(void){
326 const char *zId, *zLogin, *zInfo, *zCap, *zPw;
327 const char *zGroup;
328 const char *zOldLogin;
@@ -989,10 +994,12 @@
994 }
995
996
997 /*
998 ** WEBPAGE: setup_access
999 **
1000 ** The access-control settings page. Requires Admin privileges.
1001 */
1002 void setup_access(void){
1003 login_check_credentials();
1004 if( !g.perm.Setup ){
1005 login_needed(0);
@@ -1186,10 +1193,13 @@
1193 style_footer();
1194 }
1195
1196 /*
1197 ** WEBPAGE: setup_login_group
1198 **
1199 ** Change how the current repository participates in a login
1200 ** group.
1201 */
1202 void setup_login_group(void){
1203 const char *zGroup;
1204 char *zErrMsg = 0;
1205 Blob fullName;
@@ -1299,10 +1309,13 @@
1309 style_footer();
1310 }
1311
1312 /*
1313 ** WEBPAGE: setup_timeline
1314 **
1315 ** Edit administrative settings controlling the display of
1316 ** timelines.
1317 */
1318 void setup_timeline(void){
1319 double tmDiff;
1320 char zTmDiff[20];
1321 static const char *const azTimeFormats[] = {
@@ -1385,10 +1398,13 @@
1398 style_footer();
1399 }
1400
1401 /*
1402 ** WEBPAGE: setup_settings
1403 **
1404 ** Change or view miscellanous settings. Part of the
1405 ** Admin pages requiring Admin privileges.
1406 */
1407 void setup_settings(void){
1408 Setting const *pSet;
1409
1410 login_check_credentials();
@@ -1468,10 +1484,12 @@
1484 style_footer();
1485 }
1486
1487 /*
1488 ** WEBPAGE: setup_config
1489 **
1490 ** The "Admin/Configuration" page. Requires Admin privilege.
1491 */
1492 void setup_config(void){
1493 login_check_credentials();
1494 if( !g.perm.Setup ){
1495 login_needed(0);
@@ -1547,10 +1565,12 @@
1565 style_footer();
1566 }
1567
1568 /*
1569 ** WEBPAGE: setup_modreq
1570 **
1571 ** Admin page for setting up moderation of tickets and wiki.
1572 */
1573 void setup_modreq(void){
1574 login_check_credentials();
1575 if( !g.perm.Setup ){
1576 login_needed(0);
@@ -1592,10 +1612,13 @@
1612
1613 }
1614
1615 /*
1616 ** WEBPAGE: setup_adunit
1617 **
1618 ** Administrative page for configuring and controlling ad units
1619 ** and how they are displayed.
1620 */
1621 void setup_adunit(void){
1622 login_check_credentials();
1623 if( !g.perm.Setup ){
1624 login_needed(0);
@@ -1660,10 +1683,12 @@
1683 db_end_transaction(0);
1684 }
1685
1686 /*
1687 ** WEBPAGE: setup_logo
1688 **
1689 ** Administrative page for changing the logo image.
1690 */
1691 void setup_logo(void){
1692 const char *zLogoMtime = db_get_mtime("logo-image", 0, 0);
1693 const char *zLogoMime = db_get("logo-mimetype","image/gif");
1694 const char *aLogoImg = P("logoim");
@@ -1812,10 +1837,11 @@
1837
1838 /*
1839 ** WEBPAGE: admin_sql
1840 **
1841 ** Run raw SQL commands against the database file using the web interface.
1842 ** Requires Admin privileges.
1843 */
1844 void sql_page(void){
1845 const char *zQ = P("q");
1846 int go = P("go")!=0;
1847 login_check_credentials();
@@ -1933,11 +1959,11 @@
1959 /*
1960 ** WEBPAGE: admin_th1
1961 **
1962 ** Run raw TH1 commands using the web interface. If Tcl integration was
1963 ** enabled at compile-time and the "tcl" setting is enabled, Tcl commands
1964 ** may be run as well. Requires Admin privilege.
1965 */
1966 void th1_page(void){
1967 const char *zQ = P("q");
1968 int go = P("go")!=0;
1969 login_check_credentials();
@@ -2054,11 +2080,11 @@
2080 }
2081
2082 /*
2083 ** WEBPAGE: srchsetup
2084 **
2085 ** Configure the search engine. Requires Admin privilege.
2086 */
2087 void page_srchsetup(){
2088 login_check_credentials();
2089 if( !g.perm.Setup && !g.perm.Admin ){
2090 login_needed(0);
2091
+10 -1
--- src/shun.c
+++ src/shun.c
@@ -35,10 +35,13 @@
3535
return rc==SQLITE_ROW;
3636
}
3737
3838
/*
3939
** WEBPAGE: shun
40
+**
41
+** View the SHA1 hashes of all shunned artifacts. Add new hashes
42
+** to the shun set. Requires Admin privilege.
4043
*/
4144
void shun_page(void){
4245
Stmt q;
4346
int cnt = 0;
4447
const char *zUuid = P("uuid");
@@ -293,10 +296,15 @@
293296
294297
/*
295298
** WEBPAGE: rcvfromlist
296299
**
297300
** Show a listing of RCVFROM table entries.
301
+**
302
+** The RCVFROM table records where this repository received each
303
+** artifact, including the time of receipt, user, and IP address.
304
+**
305
+** Access requires Admin privilege.
298306
*/
299307
void rcvfromlist_page(void){
300308
int ofst = atoi(PD("ofst","0"));
301309
int showAll = P("all")!=0;
302310
int cnt;
@@ -375,11 +383,12 @@
375383
}
376384
377385
/*
378386
** WEBPAGE: rcvfrom
379387
**
380
-** Show a single RCVFROM table entry.
388
+** Show a single RCVFROM table entry identified by the rcvid= query
389
+** parameters. Requires Admin privilege.
381390
*/
382391
void rcvfrom_page(void){
383392
int rcvid = atoi(PD("rcvid","0"));
384393
Stmt q;
385394
386395
--- src/shun.c
+++ src/shun.c
@@ -35,10 +35,13 @@
35 return rc==SQLITE_ROW;
36 }
37
38 /*
39 ** WEBPAGE: shun
 
 
 
40 */
41 void shun_page(void){
42 Stmt q;
43 int cnt = 0;
44 const char *zUuid = P("uuid");
@@ -293,10 +296,15 @@
293
294 /*
295 ** WEBPAGE: rcvfromlist
296 **
297 ** Show a listing of RCVFROM table entries.
 
 
 
 
 
298 */
299 void rcvfromlist_page(void){
300 int ofst = atoi(PD("ofst","0"));
301 int showAll = P("all")!=0;
302 int cnt;
@@ -375,11 +383,12 @@
375 }
376
377 /*
378 ** WEBPAGE: rcvfrom
379 **
380 ** Show a single RCVFROM table entry.
 
381 */
382 void rcvfrom_page(void){
383 int rcvid = atoi(PD("rcvid","0"));
384 Stmt q;
385
386
--- src/shun.c
+++ src/shun.c
@@ -35,10 +35,13 @@
35 return rc==SQLITE_ROW;
36 }
37
38 /*
39 ** WEBPAGE: shun
40 **
41 ** View the SHA1 hashes of all shunned artifacts. Add new hashes
42 ** to the shun set. Requires Admin privilege.
43 */
44 void shun_page(void){
45 Stmt q;
46 int cnt = 0;
47 const char *zUuid = P("uuid");
@@ -293,10 +296,15 @@
296
297 /*
298 ** WEBPAGE: rcvfromlist
299 **
300 ** Show a listing of RCVFROM table entries.
301 **
302 ** The RCVFROM table records where this repository received each
303 ** artifact, including the time of receipt, user, and IP address.
304 **
305 ** Access requires Admin privilege.
306 */
307 void rcvfromlist_page(void){
308 int ofst = atoi(PD("ofst","0"));
309 int showAll = P("all")!=0;
310 int cnt;
@@ -375,11 +383,12 @@
383 }
384
385 /*
386 ** WEBPAGE: rcvfrom
387 **
388 ** Show a single RCVFROM table entry identified by the rcvid= query
389 ** parameters. Requires Admin privilege.
390 */
391 void rcvfrom_page(void){
392 int rcvid = atoi(PD("rcvid","0"));
393 Stmt q;
394
395
+5 -1
--- src/sitemap.c
+++ src/sitemap.c
@@ -22,11 +22,14 @@
2222
#include <assert.h>
2323
2424
/*
2525
** WEBPAGE: sitemap
2626
**
27
-** Show an incomplete list of web pages offered by the Fossil web engine.
27
+** List some of the web pages offered by the Fossil web engine. This
28
+** page is intended as a suppliment to the menu bar on the main screen.
29
+** That is, this page is designed to hold links that are omitted from
30
+** the main menu due to lack of space.
2831
*/
2932
void sitemap_page(void){
3033
int srchFlags;
3134
login_check_credentials();
3235
srchFlags = search_restrict(SRCH_ALL);
@@ -142,9 +145,10 @@
142145
if( g.perm.Read ){
143146
@ <li>%z(href("%R/test-rename-list"))List of file renames</a></li>
144147
}
145148
@ <li>%z(href("%R/hash-color-test"))Page to experiment with the automatic
146149
@ colors assigned to branch names</a>
150
+ @ <li>%z(href("%R/test-captcha"))Random ASCII-art Captcha image</li>
147151
@ </ul></li>
148152
@ </ul></li>
149153
style_footer();
150154
}
151155
--- src/sitemap.c
+++ src/sitemap.c
@@ -22,11 +22,14 @@
22 #include <assert.h>
23
24 /*
25 ** WEBPAGE: sitemap
26 **
27 ** Show an incomplete list of web pages offered by the Fossil web engine.
 
 
 
28 */
29 void sitemap_page(void){
30 int srchFlags;
31 login_check_credentials();
32 srchFlags = search_restrict(SRCH_ALL);
@@ -142,9 +145,10 @@
142 if( g.perm.Read ){
143 @ <li>%z(href("%R/test-rename-list"))List of file renames</a></li>
144 }
145 @ <li>%z(href("%R/hash-color-test"))Page to experiment with the automatic
146 @ colors assigned to branch names</a>
 
147 @ </ul></li>
148 @ </ul></li>
149 style_footer();
150 }
151
--- src/sitemap.c
+++ src/sitemap.c
@@ -22,11 +22,14 @@
22 #include <assert.h>
23
24 /*
25 ** WEBPAGE: sitemap
26 **
27 ** List some of the web pages offered by the Fossil web engine. This
28 ** page is intended as a suppliment to the menu bar on the main screen.
29 ** That is, this page is designed to hold links that are omitted from
30 ** the main menu due to lack of space.
31 */
32 void sitemap_page(void){
33 int srchFlags;
34 login_check_credentials();
35 srchFlags = search_restrict(SRCH_ALL);
@@ -142,9 +145,10 @@
145 if( g.perm.Read ){
146 @ <li>%z(href("%R/test-rename-list"))List of file renames</a></li>
147 }
148 @ <li>%z(href("%R/hash-color-test"))Page to experiment with the automatic
149 @ colors assigned to branch names</a>
150 @ <li>%z(href("%R/test-captcha"))Random ASCII-art Captcha image</li>
151 @ </ul></li>
152 @ </ul></li>
153 style_footer();
154 }
155
--- src/skins.c
+++ src/skins.c
@@ -407,10 +407,13 @@
407407
return 0;
408408
}
409409
410410
/*
411411
** WEBPAGE: setup_skin
412
+**
413
+** Show a list of available skins with buttons for selecting which
414
+** skin to use. Requires Admin privilege.
412415
*/
413416
void setup_skin(void){
414417
const char *z;
415418
char *zName;
416419
char *zErr = 0;
@@ -565,10 +568,13 @@
565568
}
566569
567570
568571
/*
569572
** WEBPAGE: setup_skinedit
573
+**
574
+** Edit aspects of a skin determined by the w= query parameter.
575
+** Requires Admin privileges.
570576
**
571577
** w=N -- 0=CSS, 1=footer, 2=header, 3=details
572578
*/
573579
void setup_skinedit(void){
574580
static const struct sSkinAddr {
575581
--- src/skins.c
+++ src/skins.c
@@ -407,10 +407,13 @@
407 return 0;
408 }
409
410 /*
411 ** WEBPAGE: setup_skin
 
 
 
412 */
413 void setup_skin(void){
414 const char *z;
415 char *zName;
416 char *zErr = 0;
@@ -565,10 +568,13 @@
565 }
566
567
568 /*
569 ** WEBPAGE: setup_skinedit
 
 
 
570 **
571 ** w=N -- 0=CSS, 1=footer, 2=header, 3=details
572 */
573 void setup_skinedit(void){
574 static const struct sSkinAddr {
575
--- src/skins.c
+++ src/skins.c
@@ -407,10 +407,13 @@
407 return 0;
408 }
409
410 /*
411 ** WEBPAGE: setup_skin
412 **
413 ** Show a list of available skins with buttons for selecting which
414 ** skin to use. Requires Admin privilege.
415 */
416 void setup_skin(void){
417 const char *z;
418 char *zName;
419 char *zErr = 0;
@@ -565,10 +568,13 @@
568 }
569
570
571 /*
572 ** WEBPAGE: setup_skinedit
573 **
574 ** Edit aspects of a skin determined by the w= query parameter.
575 ** Requires Admin privileges.
576 **
577 ** w=N -- 0=CSS, 1=footer, 2=header, 3=details
578 */
579 void setup_skinedit(void){
580 static const struct sSkinAddr {
581
+6 -2
--- src/style.c
+++ src/style.c
@@ -1360,10 +1360,12 @@
13601360
}
13611361
13621362
13631363
/*
13641364
** WEBPAGE: style.css
1365
+**
1366
+** Return the style sheet.
13651367
*/
13661368
void page_style_css(void){
13671369
Blob css;
13681370
int i;
13691371
@@ -1395,10 +1397,13 @@
13951397
g.isConst = 1;
13961398
}
13971399
13981400
/*
13991401
** WEBPAGE: test_env
1402
+**
1403
+** Display CGI-variables and other aspects of the run-time
1404
+** environment, for debugging and trouble-shooting purposes.
14001405
*/
14011406
void page_test_env(void){
14021407
char c;
14031408
int i;
14041409
int showAll;
@@ -1466,13 +1471,12 @@
14661471
style_footer();
14671472
if( g.perm.Admin && P("err") ) fossil_fatal("%s", P("err"));
14681473
}
14691474
14701475
/*
1471
-** This page is a honeypot for spiders and bots.
1472
-**
14731476
** WEBPAGE: honeypot
1477
+** This page is a honeypot for spiders and bots.
14741478
*/
14751479
void honeypot_page(void){
14761480
cgi_set_status(403, "Forbidden");
14771481
@ <p>Please enable javascript or log in to see this content</p>
14781482
}
14791483
--- src/style.c
+++ src/style.c
@@ -1360,10 +1360,12 @@
1360 }
1361
1362
1363 /*
1364 ** WEBPAGE: style.css
 
 
1365 */
1366 void page_style_css(void){
1367 Blob css;
1368 int i;
1369
@@ -1395,10 +1397,13 @@
1395 g.isConst = 1;
1396 }
1397
1398 /*
1399 ** WEBPAGE: test_env
 
 
 
1400 */
1401 void page_test_env(void){
1402 char c;
1403 int i;
1404 int showAll;
@@ -1466,13 +1471,12 @@
1466 style_footer();
1467 if( g.perm.Admin && P("err") ) fossil_fatal("%s", P("err"));
1468 }
1469
1470 /*
1471 ** This page is a honeypot for spiders and bots.
1472 **
1473 ** WEBPAGE: honeypot
 
1474 */
1475 void honeypot_page(void){
1476 cgi_set_status(403, "Forbidden");
1477 @ <p>Please enable javascript or log in to see this content</p>
1478 }
1479
--- src/style.c
+++ src/style.c
@@ -1360,10 +1360,12 @@
1360 }
1361
1362
1363 /*
1364 ** WEBPAGE: style.css
1365 **
1366 ** Return the style sheet.
1367 */
1368 void page_style_css(void){
1369 Blob css;
1370 int i;
1371
@@ -1395,10 +1397,13 @@
1397 g.isConst = 1;
1398 }
1399
1400 /*
1401 ** WEBPAGE: test_env
1402 **
1403 ** Display CGI-variables and other aspects of the run-time
1404 ** environment, for debugging and trouble-shooting purposes.
1405 */
1406 void page_test_env(void){
1407 char c;
1408 int i;
1409 int showAll;
@@ -1466,13 +1471,12 @@
1471 style_footer();
1472 if( g.perm.Admin && P("err") ) fossil_fatal("%s", P("err"));
1473 }
1474
1475 /*
 
 
1476 ** WEBPAGE: honeypot
1477 ** This page is a honeypot for spiders and bots.
1478 */
1479 void honeypot_page(void){
1480 cgi_set_status(403, "Forbidden");
1481 @ <p>Please enable javascript or log in to see this content</p>
1482 }
1483
+5
--- src/tag.c
+++ src/tag.c
@@ -536,10 +536,12 @@
536536
usage("add|cancel|find|list ...");
537537
}
538538
539539
/*
540540
** WEBPAGE: taglist
541
+**
542
+** List all non-propagating symbolic tags.
541543
*/
542544
void taglist_page(void){
543545
Stmt q;
544546
545547
login_check_credentials();
@@ -575,10 +577,13 @@
575577
style_footer();
576578
}
577579
578580
/*
579581
** WEBPAGE: /tagtimeline
582
+**
583
+** Render a timeline with all check-ins that contain non-propagating
584
+** symbolic tags.
580585
*/
581586
void tagtimeline_page(void){
582587
Stmt q;
583588
584589
login_check_credentials();
585590
--- src/tag.c
+++ src/tag.c
@@ -536,10 +536,12 @@
536 usage("add|cancel|find|list ...");
537 }
538
539 /*
540 ** WEBPAGE: taglist
 
 
541 */
542 void taglist_page(void){
543 Stmt q;
544
545 login_check_credentials();
@@ -575,10 +577,13 @@
575 style_footer();
576 }
577
578 /*
579 ** WEBPAGE: /tagtimeline
 
 
 
580 */
581 void tagtimeline_page(void){
582 Stmt q;
583
584 login_check_credentials();
585
--- src/tag.c
+++ src/tag.c
@@ -536,10 +536,12 @@
536 usage("add|cancel|find|list ...");
537 }
538
539 /*
540 ** WEBPAGE: taglist
541 **
542 ** List all non-propagating symbolic tags.
543 */
544 void taglist_page(void){
545 Stmt q;
546
547 login_check_credentials();
@@ -575,10 +577,13 @@
577 style_footer();
578 }
579
580 /*
581 ** WEBPAGE: /tagtimeline
582 **
583 ** Render a timeline with all check-ins that contain non-propagating
584 ** symbolic tags.
585 */
586 void tagtimeline_page(void){
587 Stmt q;
588
589 login_check_credentials();
590
--- src/timeline.c
+++ src/timeline.c
@@ -2234,10 +2234,15 @@
22342234
db_finalize(&q);
22352235
}
22362236
22372237
/*
22382238
** WEBPAGE: test_timewarps
2239
+**
2240
+** Show all check-ins that are "timewarps". A timewarp is a
2241
+** check-in that occurs before its parent, according to the
2242
+** timestamp information on the check-in. This can only actually
2243
+** happen, of course, if a users system clock is set incorrectly.
22392244
*/
22402245
void test_timewarp_page(void){
22412246
Stmt q;
22422247
22432248
login_check_credentials();
22442249
--- src/timeline.c
+++ src/timeline.c
@@ -2234,10 +2234,15 @@
2234 db_finalize(&q);
2235 }
2236
2237 /*
2238 ** WEBPAGE: test_timewarps
 
 
 
 
 
2239 */
2240 void test_timewarp_page(void){
2241 Stmt q;
2242
2243 login_check_credentials();
2244
--- src/timeline.c
+++ src/timeline.c
@@ -2234,10 +2234,15 @@
2234 db_finalize(&q);
2235 }
2236
2237 /*
2238 ** WEBPAGE: test_timewarps
2239 **
2240 ** Show all check-ins that are "timewarps". A timewarp is a
2241 ** check-in that occurs before its parent, according to the
2242 ** timestamp information on the check-in. This can only actually
2243 ** happen, of course, if a users system clock is set incorrectly.
2244 */
2245 void test_timewarp_page(void){
2246 Stmt q;
2247
2248 login_check_credentials();
2249
+1 -1
--- src/tkt.c
+++ src/tkt.c
@@ -441,11 +441,11 @@
441441
442442
/*
443443
** WEBPAGE: tktview
444444
** URL: tktview?name=UUID
445445
**
446
-** View a ticket.
446
+** View a ticket identified by the name= query parameter.
447447
*/
448448
void tktview_page(void){
449449
const char *zScript;
450450
char *zFullName;
451451
const char *zUuid = PD("name","");
452452
--- src/tkt.c
+++ src/tkt.c
@@ -441,11 +441,11 @@
441
442 /*
443 ** WEBPAGE: tktview
444 ** URL: tktview?name=UUID
445 **
446 ** View a ticket.
447 */
448 void tktview_page(void){
449 const char *zScript;
450 char *zFullName;
451 const char *zUuid = PD("name","");
452
--- src/tkt.c
+++ src/tkt.c
@@ -441,11 +441,11 @@
441
442 /*
443 ** WEBPAGE: tktview
444 ** URL: tktview?name=UUID
445 **
446 ** View a ticket identified by the name= query parameter.
447 */
448 void tktview_page(void){
449 const char *zScript;
450 char *zFullName;
451 const char *zUuid = PD("name","");
452
+24 -1
--- src/tktsetup.c
+++ src/tktsetup.c
@@ -21,12 +21,12 @@
2121
#include "config.h"
2222
#include "tktsetup.h"
2323
#include <assert.h>
2424
2525
/*
26
-** Main sub-menu for configuring the ticketing system.
2726
** WEBPAGE: tktsetup
27
+** Main sub-menu for configuring the ticketing system.
2828
*/
2929
void tktsetup_page(void){
3030
login_check_credentials();
3131
if( !g.perm.Setup ){
3232
login_needed(0);
@@ -167,10 +167,12 @@
167167
style_footer();
168168
}
169169
170170
/*
171171
** WEBPAGE: tktsetup_tab
172
+** Administrative page for defining the "ticket" table used
173
+** to hold ticket information.
172174
*/
173175
void tktsetup_tab_page(void){
174176
static const char zDesc[] =
175177
@ Enter a valid CREATE TABLE statement for the "ticket" table. The
176178
@ table must contain columns named "tkt_id", "tkt_uuid", and "tkt_mtime"
@@ -243,10 +245,12 @@
243245
return db_get("ticket-common", (char*)zDefaultTicketCommon);
244246
}
245247
246248
/*
247249
** WEBPAGE: tktsetup_com
250
+** Administrative page used to define TH1 script that is
251
+** common to all ticket screens.
248252
*/
249253
void tktsetup_com_page(void){
250254
static const char zDesc[] =
251255
@ Enter TH1 script that initializes variables prior to generating
252256
@ any of the ticket view, edit, or creation pages.
@@ -273,10 +277,12 @@
273277
return db_get("ticket-change", (char*)zDefaultTicketChange);
274278
}
275279
276280
/*
277281
** WEBPAGE: tktsetup_change
282
+** Adminstrative screen used to view or edit the TH1 script
283
+** that shows ticket changes.
278284
*/
279285
void tktsetup_change_page(void){
280286
static const char zDesc[] =
281287
@ Enter TH1 script that runs after processing the ticket editing
282288
@ and creation pages.
@@ -416,10 +422,12 @@
416422
return db_get("ticket-newpage", (char*)zDefaultNew);
417423
}
418424
419425
/*
420426
** WEBPAGE: tktsetup_newpage
427
+** Administrative page used to view or edit the TH1 script used
428
+** to enter new tickets.
421429
*/
422430
void tktsetup_newpage_page(void){
423431
static const char zDesc[] =
424432
@ Enter HTML with embedded TH1 script that will render the "new ticket"
425433
@ page
@@ -555,10 +563,12 @@
555563
return db_get("ticket-viewpage", (char*)zDefaultView);
556564
}
557565
558566
/*
559567
** WEBPAGE: tktsetup_viewpage
568
+** Administrative page used to view or edit the TH1 script that
569
+** displays individual tickets.
560570
*/
561571
void tktsetup_viewpage_page(void){
562572
static const char zDesc[] =
563573
@ Enter HTML with embedded TH1 script that will render the "view ticket" page
564574
;
@@ -694,10 +704,12 @@
694704
return db_get("ticket-editpage", (char*)zDefaultEdit);
695705
}
696706
697707
/*
698708
** WEBPAGE: tktsetup_editpage
709
+** Administrative page for viewing or editing the TH1 script that
710
+** drives the ticket editing page.
699711
*/
700712
void tktsetup_editpage_page(void){
701713
static const char zDesc[] =
702714
@ Enter HTML with embedded TH1 script that will render the "edit ticket" page
703715
;
@@ -748,10 +760,12 @@
748760
return db_get("ticket-reportlist", (char*)zDefaultReportList);
749761
}
750762
751763
/*
752764
** WEBPAGE: tktsetup_reportlist
765
+** Administrative page used to view or edit the TH1 script that
766
+** defines the "report list" page.
753767
*/
754768
void tktsetup_reportlist(void){
755769
static const char zDesc[] =
756770
@ Enter HTML with embedded TH1 script that will render the "report list" page
757771
;
@@ -795,10 +809,13 @@
795809
return db_get("ticket-report-template", zDefaultReport);
796810
}
797811
798812
/*
799813
** WEBPAGE: tktsetup_rpttplt
814
+**
815
+** Administrative page used to view or edit the ticket report
816
+** template.
800817
*/
801818
void tktsetup_rpttplt_page(void){
802819
static const char zDesc[] =
803820
@ Enter the default ticket report format template. This is the
804821
@ template report format that initially appears when creating a
@@ -836,10 +853,13 @@
836853
return db_get("ticket-key-template", (char*)zDefaultKey);
837854
}
838855
839856
/*
840857
** WEBPAGE: tktsetup_keytplt
858
+**
859
+** Administrative page used to view or edit the Key template
860
+** for tickets.
841861
*/
842862
void tktsetup_keytplt_page(void){
843863
static const char zDesc[] =
844864
@ Enter the default ticket report color-key template. This is the
845865
@ the color-key that initially appears when creating a
@@ -856,10 +876,13 @@
856876
);
857877
}
858878
859879
/*
860880
** WEBPAGE: tktsetup_timeline
881
+**
882
+** Administrative page used ot configure how tickets are
883
+** rendered on timeline views.
861884
*/
862885
void tktsetup_timeline_page(void){
863886
login_check_credentials();
864887
if( !g.perm.Setup ){
865888
login_needed(0);
866889
--- src/tktsetup.c
+++ src/tktsetup.c
@@ -21,12 +21,12 @@
21 #include "config.h"
22 #include "tktsetup.h"
23 #include <assert.h>
24
25 /*
26 ** Main sub-menu for configuring the ticketing system.
27 ** WEBPAGE: tktsetup
 
28 */
29 void tktsetup_page(void){
30 login_check_credentials();
31 if( !g.perm.Setup ){
32 login_needed(0);
@@ -167,10 +167,12 @@
167 style_footer();
168 }
169
170 /*
171 ** WEBPAGE: tktsetup_tab
 
 
172 */
173 void tktsetup_tab_page(void){
174 static const char zDesc[] =
175 @ Enter a valid CREATE TABLE statement for the "ticket" table. The
176 @ table must contain columns named "tkt_id", "tkt_uuid", and "tkt_mtime"
@@ -243,10 +245,12 @@
243 return db_get("ticket-common", (char*)zDefaultTicketCommon);
244 }
245
246 /*
247 ** WEBPAGE: tktsetup_com
 
 
248 */
249 void tktsetup_com_page(void){
250 static const char zDesc[] =
251 @ Enter TH1 script that initializes variables prior to generating
252 @ any of the ticket view, edit, or creation pages.
@@ -273,10 +277,12 @@
273 return db_get("ticket-change", (char*)zDefaultTicketChange);
274 }
275
276 /*
277 ** WEBPAGE: tktsetup_change
 
 
278 */
279 void tktsetup_change_page(void){
280 static const char zDesc[] =
281 @ Enter TH1 script that runs after processing the ticket editing
282 @ and creation pages.
@@ -416,10 +422,12 @@
416 return db_get("ticket-newpage", (char*)zDefaultNew);
417 }
418
419 /*
420 ** WEBPAGE: tktsetup_newpage
 
 
421 */
422 void tktsetup_newpage_page(void){
423 static const char zDesc[] =
424 @ Enter HTML with embedded TH1 script that will render the "new ticket"
425 @ page
@@ -555,10 +563,12 @@
555 return db_get("ticket-viewpage", (char*)zDefaultView);
556 }
557
558 /*
559 ** WEBPAGE: tktsetup_viewpage
 
 
560 */
561 void tktsetup_viewpage_page(void){
562 static const char zDesc[] =
563 @ Enter HTML with embedded TH1 script that will render the "view ticket" page
564 ;
@@ -694,10 +704,12 @@
694 return db_get("ticket-editpage", (char*)zDefaultEdit);
695 }
696
697 /*
698 ** WEBPAGE: tktsetup_editpage
 
 
699 */
700 void tktsetup_editpage_page(void){
701 static const char zDesc[] =
702 @ Enter HTML with embedded TH1 script that will render the "edit ticket" page
703 ;
@@ -748,10 +760,12 @@
748 return db_get("ticket-reportlist", (char*)zDefaultReportList);
749 }
750
751 /*
752 ** WEBPAGE: tktsetup_reportlist
 
 
753 */
754 void tktsetup_reportlist(void){
755 static const char zDesc[] =
756 @ Enter HTML with embedded TH1 script that will render the "report list" page
757 ;
@@ -795,10 +809,13 @@
795 return db_get("ticket-report-template", zDefaultReport);
796 }
797
798 /*
799 ** WEBPAGE: tktsetup_rpttplt
 
 
 
800 */
801 void tktsetup_rpttplt_page(void){
802 static const char zDesc[] =
803 @ Enter the default ticket report format template. This is the
804 @ template report format that initially appears when creating a
@@ -836,10 +853,13 @@
836 return db_get("ticket-key-template", (char*)zDefaultKey);
837 }
838
839 /*
840 ** WEBPAGE: tktsetup_keytplt
 
 
 
841 */
842 void tktsetup_keytplt_page(void){
843 static const char zDesc[] =
844 @ Enter the default ticket report color-key template. This is the
845 @ the color-key that initially appears when creating a
@@ -856,10 +876,13 @@
856 );
857 }
858
859 /*
860 ** WEBPAGE: tktsetup_timeline
 
 
 
861 */
862 void tktsetup_timeline_page(void){
863 login_check_credentials();
864 if( !g.perm.Setup ){
865 login_needed(0);
866
--- src/tktsetup.c
+++ src/tktsetup.c
@@ -21,12 +21,12 @@
21 #include "config.h"
22 #include "tktsetup.h"
23 #include <assert.h>
24
25 /*
 
26 ** WEBPAGE: tktsetup
27 ** Main sub-menu for configuring the ticketing system.
28 */
29 void tktsetup_page(void){
30 login_check_credentials();
31 if( !g.perm.Setup ){
32 login_needed(0);
@@ -167,10 +167,12 @@
167 style_footer();
168 }
169
170 /*
171 ** WEBPAGE: tktsetup_tab
172 ** Administrative page for defining the "ticket" table used
173 ** to hold ticket information.
174 */
175 void tktsetup_tab_page(void){
176 static const char zDesc[] =
177 @ Enter a valid CREATE TABLE statement for the "ticket" table. The
178 @ table must contain columns named "tkt_id", "tkt_uuid", and "tkt_mtime"
@@ -243,10 +245,12 @@
245 return db_get("ticket-common", (char*)zDefaultTicketCommon);
246 }
247
248 /*
249 ** WEBPAGE: tktsetup_com
250 ** Administrative page used to define TH1 script that is
251 ** common to all ticket screens.
252 */
253 void tktsetup_com_page(void){
254 static const char zDesc[] =
255 @ Enter TH1 script that initializes variables prior to generating
256 @ any of the ticket view, edit, or creation pages.
@@ -273,10 +277,12 @@
277 return db_get("ticket-change", (char*)zDefaultTicketChange);
278 }
279
280 /*
281 ** WEBPAGE: tktsetup_change
282 ** Adminstrative screen used to view or edit the TH1 script
283 ** that shows ticket changes.
284 */
285 void tktsetup_change_page(void){
286 static const char zDesc[] =
287 @ Enter TH1 script that runs after processing the ticket editing
288 @ and creation pages.
@@ -416,10 +422,12 @@
422 return db_get("ticket-newpage", (char*)zDefaultNew);
423 }
424
425 /*
426 ** WEBPAGE: tktsetup_newpage
427 ** Administrative page used to view or edit the TH1 script used
428 ** to enter new tickets.
429 */
430 void tktsetup_newpage_page(void){
431 static const char zDesc[] =
432 @ Enter HTML with embedded TH1 script that will render the "new ticket"
433 @ page
@@ -555,10 +563,12 @@
563 return db_get("ticket-viewpage", (char*)zDefaultView);
564 }
565
566 /*
567 ** WEBPAGE: tktsetup_viewpage
568 ** Administrative page used to view or edit the TH1 script that
569 ** displays individual tickets.
570 */
571 void tktsetup_viewpage_page(void){
572 static const char zDesc[] =
573 @ Enter HTML with embedded TH1 script that will render the "view ticket" page
574 ;
@@ -694,10 +704,12 @@
704 return db_get("ticket-editpage", (char*)zDefaultEdit);
705 }
706
707 /*
708 ** WEBPAGE: tktsetup_editpage
709 ** Administrative page for viewing or editing the TH1 script that
710 ** drives the ticket editing page.
711 */
712 void tktsetup_editpage_page(void){
713 static const char zDesc[] =
714 @ Enter HTML with embedded TH1 script that will render the "edit ticket" page
715 ;
@@ -748,10 +760,12 @@
760 return db_get("ticket-reportlist", (char*)zDefaultReportList);
761 }
762
763 /*
764 ** WEBPAGE: tktsetup_reportlist
765 ** Administrative page used to view or edit the TH1 script that
766 ** defines the "report list" page.
767 */
768 void tktsetup_reportlist(void){
769 static const char zDesc[] =
770 @ Enter HTML with embedded TH1 script that will render the "report list" page
771 ;
@@ -795,10 +809,13 @@
809 return db_get("ticket-report-template", zDefaultReport);
810 }
811
812 /*
813 ** WEBPAGE: tktsetup_rpttplt
814 **
815 ** Administrative page used to view or edit the ticket report
816 ** template.
817 */
818 void tktsetup_rpttplt_page(void){
819 static const char zDesc[] =
820 @ Enter the default ticket report format template. This is the
821 @ template report format that initially appears when creating a
@@ -836,10 +853,13 @@
853 return db_get("ticket-key-template", (char*)zDefaultKey);
854 }
855
856 /*
857 ** WEBPAGE: tktsetup_keytplt
858 **
859 ** Administrative page used to view or edit the Key template
860 ** for tickets.
861 */
862 void tktsetup_keytplt_page(void){
863 static const char zDesc[] =
864 @ Enter the default ticket report color-key template. This is the
865 @ the color-key that initially appears when creating a
@@ -856,10 +876,13 @@
876 );
877 }
878
879 /*
880 ** WEBPAGE: tktsetup_timeline
881 **
882 ** Administrative page used ot configure how tickets are
883 ** rendered on timeline views.
884 */
885 void tktsetup_timeline_page(void){
886 login_check_credentials();
887 if( !g.perm.Setup ){
888 login_needed(0);
889
+9 -4
--- src/user.c
+++ src/user.c
@@ -410,17 +410,22 @@
410410
}
411411
412412
/*
413413
** WEBPAGE: access_log
414414
**
415
-** y=N 1: success only. 2: failure only. 3: both
416
-** n=N Number of entries to show
417
-** o=N Skip this many entries
415
+** Show login attempts, including timestamp and IP address.
416
+** Requires Admin privileges.
417
+**
418
+** Query parameters:
419
+**
420
+** y=N 1: success only. 2: failure only. 3: both (default: 3)
421
+** n=N Number of entries to show (default: 200)
422
+** o=N Skip this many entries (default: 0)
418423
*/
419424
void access_log_page(void){
420425
int y = atoi(PD("y","3"));
421
- int n = atoi(PD("n","50"));
426
+ int n = atoi(PD("n","200"));
422427
int skip = atoi(PD("o","0"));
423428
Blob sql;
424429
Stmt q;
425430
int cnt = 0;
426431
int rc;
427432
--- src/user.c
+++ src/user.c
@@ -410,17 +410,22 @@
410 }
411
412 /*
413 ** WEBPAGE: access_log
414 **
415 ** y=N 1: success only. 2: failure only. 3: both
416 ** n=N Number of entries to show
417 ** o=N Skip this many entries
 
 
 
 
 
418 */
419 void access_log_page(void){
420 int y = atoi(PD("y","3"));
421 int n = atoi(PD("n","50"));
422 int skip = atoi(PD("o","0"));
423 Blob sql;
424 Stmt q;
425 int cnt = 0;
426 int rc;
427
--- src/user.c
+++ src/user.c
@@ -410,17 +410,22 @@
410 }
411
412 /*
413 ** WEBPAGE: access_log
414 **
415 ** Show login attempts, including timestamp and IP address.
416 ** Requires Admin privileges.
417 **
418 ** Query parameters:
419 **
420 ** y=N 1: success only. 2: failure only. 3: both (default: 3)
421 ** n=N Number of entries to show (default: 200)
422 ** o=N Skip this many entries (default: 0)
423 */
424 void access_log_page(void){
425 int y = atoi(PD("y","3"));
426 int n = atoi(PD("n","200"));
427 int skip = atoi(PD("o","0"));
428 Blob sql;
429 Stmt q;
430 int cnt = 0;
431 int rc;
432
--- src/vfile.c
+++ src/vfile.c
@@ -916,10 +916,15 @@
916916
md5sum_finish(pOut);
917917
}
918918
919919
/*
920920
** COMMAND: test-agg-cksum
921
+**
922
+** Display the aggregate checksum for content computed in several
923
+** different ways. The aggregate checksum is used during "fossil commit"
924
+** to double-check that the information about to be committed to the
925
+** repository exactly matches the information currently in the check-out.
921926
*/
922927
void test_agg_cksum_cmd(void){
923928
int vid;
924929
Blob hash, hash2;
925930
db_must_be_within_tree();
926931
--- src/vfile.c
+++ src/vfile.c
@@ -916,10 +916,15 @@
916 md5sum_finish(pOut);
917 }
918
919 /*
920 ** COMMAND: test-agg-cksum
 
 
 
 
 
921 */
922 void test_agg_cksum_cmd(void){
923 int vid;
924 Blob hash, hash2;
925 db_must_be_within_tree();
926
--- src/vfile.c
+++ src/vfile.c
@@ -916,10 +916,15 @@
916 md5sum_finish(pOut);
917 }
918
919 /*
920 ** COMMAND: test-agg-cksum
921 **
922 ** Display the aggregate checksum for content computed in several
923 ** different ways. The aggregate checksum is used during "fossil commit"
924 ** to double-check that the information about to be committed to the
925 ** repository exactly matches the information currently in the check-out.
926 */
927 void test_agg_cksum_cmd(void){
928 int vid;
929 Blob hash, hash2;
930 db_must_be_within_tree();
931
+9
--- src/wiki.c
+++ src/wiki.c
@@ -76,10 +76,13 @@
7676
7777
/*
7878
** WEBPAGE: home
7979
** WEBPAGE: index
8080
** WEBPAGE: not_found
81
+**
82
+** The /home, /index, and /not_found pages all redirect to the homepage
83
+** configured by the administrator.
8184
*/
8285
void home_page(void){
8386
char *zPageName = db_get("project-name",0);
8487
char *zIndexPage = db_get("index-page",0);
8588
login_check_credentials();
@@ -458,10 +461,12 @@
458461
}
459462
460463
/*
461464
** WEBPAGE: wikiedit
462465
** URL: /wikiedit?name=PAGENAME
466
+**
467
+** Edit a wiki page.
463468
*/
464469
void wikiedit_page(void){
465470
char *zTag;
466471
int rid = 0;
467472
int isSandbox;
@@ -704,10 +709,12 @@
704709
}
705710
706711
/*
707712
** WEBPAGE: wikiappend
708713
** URL: /wikiappend?name=PAGENAME&mimetype=MIMETYPE
714
+**
715
+** Append text to the end of a wiki page.
709716
*/
710717
void wikiappend_page(void){
711718
char *zTag;
712719
int rid = 0;
713720
int isSandbox;
@@ -995,10 +1002,12 @@
9951002
style_footer();
9961003
}
9971004
9981005
/*
9991006
** WEBPAGE: wiki_rules
1007
+**
1008
+** Show the formatting rules for Fossil wiki.
10001009
*/
10011010
void wikirules_page(void){
10021011
style_header("Wiki Formatting Rules");
10031012
@ <h2>Formatting Rule Summary</h2>
10041013
@ <ol>
10051014
--- src/wiki.c
+++ src/wiki.c
@@ -76,10 +76,13 @@
76
77 /*
78 ** WEBPAGE: home
79 ** WEBPAGE: index
80 ** WEBPAGE: not_found
 
 
 
81 */
82 void home_page(void){
83 char *zPageName = db_get("project-name",0);
84 char *zIndexPage = db_get("index-page",0);
85 login_check_credentials();
@@ -458,10 +461,12 @@
458 }
459
460 /*
461 ** WEBPAGE: wikiedit
462 ** URL: /wikiedit?name=PAGENAME
 
 
463 */
464 void wikiedit_page(void){
465 char *zTag;
466 int rid = 0;
467 int isSandbox;
@@ -704,10 +709,12 @@
704 }
705
706 /*
707 ** WEBPAGE: wikiappend
708 ** URL: /wikiappend?name=PAGENAME&mimetype=MIMETYPE
 
 
709 */
710 void wikiappend_page(void){
711 char *zTag;
712 int rid = 0;
713 int isSandbox;
@@ -995,10 +1002,12 @@
995 style_footer();
996 }
997
998 /*
999 ** WEBPAGE: wiki_rules
 
 
1000 */
1001 void wikirules_page(void){
1002 style_header("Wiki Formatting Rules");
1003 @ <h2>Formatting Rule Summary</h2>
1004 @ <ol>
1005
--- src/wiki.c
+++ src/wiki.c
@@ -76,10 +76,13 @@
76
77 /*
78 ** WEBPAGE: home
79 ** WEBPAGE: index
80 ** WEBPAGE: not_found
81 **
82 ** The /home, /index, and /not_found pages all redirect to the homepage
83 ** configured by the administrator.
84 */
85 void home_page(void){
86 char *zPageName = db_get("project-name",0);
87 char *zIndexPage = db_get("index-page",0);
88 login_check_credentials();
@@ -458,10 +461,12 @@
461 }
462
463 /*
464 ** WEBPAGE: wikiedit
465 ** URL: /wikiedit?name=PAGENAME
466 **
467 ** Edit a wiki page.
468 */
469 void wikiedit_page(void){
470 char *zTag;
471 int rid = 0;
472 int isSandbox;
@@ -704,10 +709,12 @@
709 }
710
711 /*
712 ** WEBPAGE: wikiappend
713 ** URL: /wikiappend?name=PAGENAME&mimetype=MIMETYPE
714 **
715 ** Append text to the end of a wiki page.
716 */
717 void wikiappend_page(void){
718 char *zTag;
719 int rid = 0;
720 int isSandbox;
@@ -995,10 +1002,12 @@
1002 style_footer();
1003 }
1004
1005 /*
1006 ** WEBPAGE: wiki_rules
1007 **
1008 ** Show the formatting rules for Fossil wiki.
1009 */
1010 void wikirules_page(void){
1011 style_header("Wiki Formatting Rules");
1012 @ <h2>Formatting Rule Summary</h2>
1013 @ <ol>
1014
--- src/wikiformat.c
+++ src/wikiformat.c
@@ -2094,10 +2094,13 @@
20942094
if( iCur ) blob_append(pOut, "\n", 1);
20952095
}
20962096
20972097
/*
20982098
** COMMAND: test-html-tidy
2099
+**
2100
+** Run the htmlTidy() routine on the content of all files named on
2101
+** the command-line and write the results to standard output.
20992102
*/
21002103
void test_html_tidy(void){
21012104
Blob in, out;
21022105
int i;
21032106
@@ -2212,10 +2215,19 @@
22122215
if( nNL==0 ) blob_append(pOut, "\n", 1);
22132216
}
22142217
22152218
/*
22162219
** COMMAND: test-html-to-text
2220
+**
2221
+** Usage: %fossil test-html-to-text FILE ...
2222
+**
2223
+** Read all files named on the command-line. Convert the file
2224
+** content from HTML to text and write the results on standard
2225
+** output.
2226
+**
2227
+** This command is intended as a test and debug interface for
2228
+** the html_to_plaintext() routine.
22172229
*/
22182230
void test_html_to_text(void){
22192231
Blob in, out;
22202232
int i;
22212233
22222234
--- src/wikiformat.c
+++ src/wikiformat.c
@@ -2094,10 +2094,13 @@
2094 if( iCur ) blob_append(pOut, "\n", 1);
2095 }
2096
2097 /*
2098 ** COMMAND: test-html-tidy
 
 
 
2099 */
2100 void test_html_tidy(void){
2101 Blob in, out;
2102 int i;
2103
@@ -2212,10 +2215,19 @@
2212 if( nNL==0 ) blob_append(pOut, "\n", 1);
2213 }
2214
2215 /*
2216 ** COMMAND: test-html-to-text
 
 
 
 
 
 
 
 
 
2217 */
2218 void test_html_to_text(void){
2219 Blob in, out;
2220 int i;
2221
2222
--- src/wikiformat.c
+++ src/wikiformat.c
@@ -2094,10 +2094,13 @@
2094 if( iCur ) blob_append(pOut, "\n", 1);
2095 }
2096
2097 /*
2098 ** COMMAND: test-html-tidy
2099 **
2100 ** Run the htmlTidy() routine on the content of all files named on
2101 ** the command-line and write the results to standard output.
2102 */
2103 void test_html_tidy(void){
2104 Blob in, out;
2105 int i;
2106
@@ -2212,10 +2215,19 @@
2215 if( nNL==0 ) blob_append(pOut, "\n", 1);
2216 }
2217
2218 /*
2219 ** COMMAND: test-html-to-text
2220 **
2221 ** Usage: %fossil test-html-to-text FILE ...
2222 **
2223 ** Read all files named on the command-line. Convert the file
2224 ** content from HTML to text and write the results on standard
2225 ** output.
2226 **
2227 ** This command is intended as a test and debug interface for
2228 ** the html_to_plaintext() routine.
2229 */
2230 void test_html_to_text(void){
2231 Blob in, out;
2232 int i;
2233
2234
+8 -1
--- src/xfersetup.c
+++ src/xfersetup.c
@@ -21,12 +21,12 @@
2121
#include "config.h"
2222
#include "xfersetup.h"
2323
#include <assert.h>
2424
2525
/*
26
-** Main sub-menu for configuring the transfer system.
2726
** WEBPAGE: xfersetup
27
+** Main sub-menu for configuring the transfer system.
2828
*/
2929
void xfersetup_page(void){
3030
login_check_credentials();
3131
if( !g.perm.Setup ){
3232
login_needed(0);
@@ -157,10 +157,12 @@
157157
158158
static const char *zDefaultXferCommon = 0;
159159
160160
/*
161161
** WEBPAGE: xfersetup_com
162
+** View or edit the TH1 script that runs prior to receiving a
163
+** transfer.
162164
*/
163165
void xfersetup_com_page(void){
164166
static const char zDesc[] =
165167
@ Enter TH1 script that initializes variables prior to running
166168
@ any of the transfer request scripts.
@@ -178,10 +180,11 @@
178180
179181
static const char *zDefaultXferPush = 0;
180182
181183
/*
182184
** WEBPAGE: xfersetup_push
185
+** View or edit the TH1 script that runs after receiving a "push".
183186
*/
184187
void xfersetup_push_page(void){
185188
static const char zDesc[] =
186189
@ Enter TH1 script that runs after processing <strong>push</strong>
187190
@ transfer requests.
@@ -199,10 +202,12 @@
199202
200203
static const char *zDefaultXferCommit = 0;
201204
202205
/*
203206
** WEBPAGE: xfersetup_commit
207
+** View or edit the TH1 script that runs when a transfer commit
208
+** is processed.
204209
*/
205210
void xfersetup_commit_page(void){
206211
static const char zDesc[] =
207212
@ Enter TH1 script that runs when a commit is processed.
208213
;
@@ -219,10 +224,12 @@
219224
220225
static const char *zDefaultXferTicket = 0;
221226
222227
/*
223228
** WEBPAGE: xfersetup_ticket
229
+** View or edit the TH1 script that runs when a ticket change artifact
230
+** is processed during a transfer.
224231
*/
225232
void xfersetup_ticket_page(void){
226233
static const char zDesc[] =
227234
@ Enter TH1 script that runs when a ticket change is processed.
228235
;
229236
--- src/xfersetup.c
+++ src/xfersetup.c
@@ -21,12 +21,12 @@
21 #include "config.h"
22 #include "xfersetup.h"
23 #include <assert.h>
24
25 /*
26 ** Main sub-menu for configuring the transfer system.
27 ** WEBPAGE: xfersetup
 
28 */
29 void xfersetup_page(void){
30 login_check_credentials();
31 if( !g.perm.Setup ){
32 login_needed(0);
@@ -157,10 +157,12 @@
157
158 static const char *zDefaultXferCommon = 0;
159
160 /*
161 ** WEBPAGE: xfersetup_com
 
 
162 */
163 void xfersetup_com_page(void){
164 static const char zDesc[] =
165 @ Enter TH1 script that initializes variables prior to running
166 @ any of the transfer request scripts.
@@ -178,10 +180,11 @@
178
179 static const char *zDefaultXferPush = 0;
180
181 /*
182 ** WEBPAGE: xfersetup_push
 
183 */
184 void xfersetup_push_page(void){
185 static const char zDesc[] =
186 @ Enter TH1 script that runs after processing <strong>push</strong>
187 @ transfer requests.
@@ -199,10 +202,12 @@
199
200 static const char *zDefaultXferCommit = 0;
201
202 /*
203 ** WEBPAGE: xfersetup_commit
 
 
204 */
205 void xfersetup_commit_page(void){
206 static const char zDesc[] =
207 @ Enter TH1 script that runs when a commit is processed.
208 ;
@@ -219,10 +224,12 @@
219
220 static const char *zDefaultXferTicket = 0;
221
222 /*
223 ** WEBPAGE: xfersetup_ticket
 
 
224 */
225 void xfersetup_ticket_page(void){
226 static const char zDesc[] =
227 @ Enter TH1 script that runs when a ticket change is processed.
228 ;
229
--- src/xfersetup.c
+++ src/xfersetup.c
@@ -21,12 +21,12 @@
21 #include "config.h"
22 #include "xfersetup.h"
23 #include <assert.h>
24
25 /*
 
26 ** WEBPAGE: xfersetup
27 ** Main sub-menu for configuring the transfer system.
28 */
29 void xfersetup_page(void){
30 login_check_credentials();
31 if( !g.perm.Setup ){
32 login_needed(0);
@@ -157,10 +157,12 @@
157
158 static const char *zDefaultXferCommon = 0;
159
160 /*
161 ** WEBPAGE: xfersetup_com
162 ** View or edit the TH1 script that runs prior to receiving a
163 ** transfer.
164 */
165 void xfersetup_com_page(void){
166 static const char zDesc[] =
167 @ Enter TH1 script that initializes variables prior to running
168 @ any of the transfer request scripts.
@@ -178,10 +180,11 @@
180
181 static const char *zDefaultXferPush = 0;
182
183 /*
184 ** WEBPAGE: xfersetup_push
185 ** View or edit the TH1 script that runs after receiving a "push".
186 */
187 void xfersetup_push_page(void){
188 static const char zDesc[] =
189 @ Enter TH1 script that runs after processing <strong>push</strong>
190 @ transfer requests.
@@ -199,10 +202,12 @@
202
203 static const char *zDefaultXferCommit = 0;
204
205 /*
206 ** WEBPAGE: xfersetup_commit
207 ** View or edit the TH1 script that runs when a transfer commit
208 ** is processed.
209 */
210 void xfersetup_commit_page(void){
211 static const char zDesc[] =
212 @ Enter TH1 script that runs when a commit is processed.
213 ;
@@ -219,10 +224,12 @@
224
225 static const char *zDefaultXferTicket = 0;
226
227 /*
228 ** WEBPAGE: xfersetup_ticket
229 ** View or edit the TH1 script that runs when a ticket change artifact
230 ** is processed during a transfer.
231 */
232 void xfersetup_ticket_page(void){
233 static const char zDesc[] =
234 @ Enter TH1 script that runs when a ticket change is processed.
235 ;
236

Keyboard Shortcuts

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