@@ -27,10 +27,18 @@
27 27 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
28 28 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifndef SQLITE_RECURSIVE
29 29 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# define SQLITE_RECURSIVE 33
30 30 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
31 31 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
32 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Settings that can be used to control ticket reports */
33 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
34 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** SETTING: ticket-default-report width=80
35 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** If this setting has a string value, then when the ticket
36 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** search page query is blank, the report with this title is shown.
37 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** If the setting is blank (default), then no report is shown.
38 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
39 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
32 40 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
33 41 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** WEBPAGE: reportlist
34 42 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
35 43 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Main menu for Tickets.
36 44 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
@@ -38,10 +46,11 @@
38 46 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *zScript;
39 47 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Blob ril; /* Report Item List */
40 48 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Stmt q;
41 49 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int rn = 0;
42 50 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int cnt = 0;
51 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ char *defaultReport = db_get("ticket-default-report", 0);
43 52 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
44 53 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
login_check_credentials();
45 54 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( !g.perm.RdTkt && !g.perm.NewTkt ){
46 55 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
login_needed(g.anon.RdTkt || g.anon.NewTkt);
47 56 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return;
@@ -85,10 +94,13 @@
85 94 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
href("%R/rptedit?rn=%d", rn));
86 95 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
87 96 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( g.perm.TktFmt ){
88 97 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_appendf(&ril, "[%zsql</a>]",
89 98 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
href("%R/rptsql?rn=%d", rn));
99 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
100 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( fossil_strcmp(zTitle, defaultReport)==0 ){
101 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_appendf(&ril, " ← default");
90 102 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
91 103 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_appendf(&ril, "</li>\n");
92 104 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
93 105 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_finalize(&q);
94 106 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@@ -384,10 +396,11 @@
384 396 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *z;
385 397 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *zOwner;
386 398 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *zClrKey;
387 399 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char *zSQL;
388 400 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char *zErr = 0;
401 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int dflt = P("dflt") ? 1 : 0;
389 402 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
390 403 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
login_check_credentials();
391 404 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( !g.perm.TktFmt ){
392 405 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
login_needed(g.anon.TktFmt);
393 406 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return;
@@ -452,10 +465,18 @@
452 465 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
453 466 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_multi_exec("INSERT INTO reportfmt(title,sqlcode,owner,cols,mtime) "
454 467 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"VALUES(%Q,%Q,%Q,%Q,now())",
455 468 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zTitle, zSQL, zOwner, zClrKey);
456 469 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rn = db_last_insert_rowid();
470 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
471 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( dflt ){
472 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ db_set("ticket-default-report", zTitle, 0);
473 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
474 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ char *defaultReport = db_get("ticket-default-report", 0);
475 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( fossil_strcmp(zTitle, defaultReport)==0 ){
476 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ db_set("ticket-default-report", "", 0);
477 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
457 478 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
458 479 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
cgi_redirect(mprintf("rptview?rn=%d", rn));
459 480 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return;
460 481 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
461 482 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else if( rn==0 ){
@@ -465,14 +486,16 @@
465 486 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
466 487 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Stmt q;
467 488 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_prepare(&q, "SELECT title, sqlcode, owner, cols "
468 489 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"FROM reportfmt WHERE rn=%d",rn);
469 490 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( db_step(&q)==SQLITE_ROW ){
491 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ char *defaultReport = db_get("ticket-default-report", 0);
470 492 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zTitle = db_column_malloc(&q, 0);
471 493 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zSQL = db_column_malloc(&q, 1);
472 494 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zOwner = db_column_malloc(&q, 2);
473 495 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zClrKey = db_column_malloc(&q, 3);
496 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ dflt = fossil_strcmp(zTitle, defaultReport)==0;
474 497 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
475 498 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_finalize(&q);
476 499 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( P("copy") ){
477 500 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rn = 0;
478 501 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zTitle = mprintf("Copy Of %s", zTitle);
@@ -507,10 +530,12 @@
507 530 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ color key is displayed.) Each line contains the text for a single
508 531 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ entry in the key. The first token of each line is the background
509 532 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ color for that line.<br />
510 533 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <textarea name="k" rows="8" cols="50">%h(zClrKey)</textarea>
511 534 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ </p>
535 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ <p><label><input type="checkbox" name="dflt" %s(dflt?"checked":"")> \
536 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ Make this the default report</label></p>
512 537 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( !g.perm.Admin && fossil_strcmp(zOwner,g.zLogin)!=0 ){
513 538 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <p>This report format is owned by %h(zOwner). You are not allowed
514 539 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ to change it.</p>
515 540 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ </form>
516 541 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
report_format_hints();
@@ -982,10 +1007,22 @@
982 1007 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** corresponding to REPORTFMT.RN. If the tablist query parameter exists,
983 1008 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** then the output consists of lines of tab-separated fields instead of
984 1009 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** an HTML table.
985 1010 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
986 1011 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void rptview_page(void){
1012 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ rptview_page_content(0, 1, 1);
1013 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
1014 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
1015 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
1016 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Render a report.
1017 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
1018 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ void rptview_page_content(
1019 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const char *defaultTitleSearch, /* If rn and title query parameters are
1020 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blank, search reports by this title. */
1021 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int pageWrap, /* If true, render full page; otherwise, just the report */
1022 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int redirectMissing /* If true and report not found, go to reportlist */
1023 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ){
987 1024 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int count = 0;
988 1025 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int rn, rc;
989 1026 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char *zSql;
990 1027 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char *zTitle;
991 1028 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char *zOwner;
@@ -1001,19 +1038,24 @@
1001 1038 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_prepare(&q,
1002 1039 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"SELECT title, sqlcode, owner, cols, rn FROM reportfmt WHERE rn=%d",
1003 1040 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
atoi(PD("rn","0")));
1004 1041 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = db_step(&q);
1005 1042 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( rc!=SQLITE_ROW ){
1043 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const char *titleSearch =
1044 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ defaultTitleSearch==0 || trim_string(defaultTitleSearch)[0]==0 ?
1045 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ P("title") : defaultTitleSearch;
1006 1046 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_finalize(&q);
1007 1047 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_prepare(&q,
1008 1048 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"SELECT title, sqlcode, owner, cols, rn FROM reportfmt WHERE title GLOB %Q",
1009 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- P("title"));
1049 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ titleSearch);
1010 1050 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = db_step(&q);
1011 1051 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1012 1052 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( rc!=SQLITE_ROW ){
1013 1053 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_finalize(&q);
1014 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- cgi_redirect("reportlist");
1054 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( redirectMissing ) {
1055 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ cgi_redirect("reportlist");
1056 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
1015 1057 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return;
1016 1058 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1017 1059 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zTitle = db_column_malloc(&q, 0);
1018 1060 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zSql = db_column_malloc(&q, 1);
1019 1061 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zOwner = db_column_malloc(&q, 2);
@@ -1041,29 +1083,31 @@
1041 1083 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
struct GenerateHTML sState = { 0, 0, 0, 0, 0, 0, 0, 0, 0 };
1042 1084 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *zQS = PD("QUERY_STRING","");
1043 1085 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
1044 1086 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_multi_exec("PRAGMA empty_result_callbacks=ON");
1045 1087 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
style_set_current_feature("report");
1046 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* style_finish_page() should provide escaping via %h formatting */
1047 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( zQS[0] ){
1048 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- style_submenu_element("Raw","%R/%s?tablist=1&%s",g.zPath,zQS);
1049 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- style_submenu_element("Reports","%R/reportlist?%s",zQS);
1050 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- } else {
1051 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- style_submenu_element("Raw","%R/%s?tablist=1",g.zPath);
1052 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- style_submenu_element("Reports","%R/reportlist");
1053 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
1054 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( g.perm.Admin
1055 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- || (g.perm.TktFmt && g.zLogin && fossil_strcmp(g.zLogin,zOwner)==0) ){
1056 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- style_submenu_element("Edit", "rptedit?rn=%d", rn);
1057 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
1058 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( g.perm.TktFmt ){
1059 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- style_submenu_element("SQL", "rptsql?rn=%d",rn);
1060 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
1061 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( g.perm.NewTkt ){
1062 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- style_submenu_element("New Ticket", "%R/tktnew");
1063 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
1064 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- style_header("%s", zTitle);
1088 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pageWrap ) {
1089 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* style_finish_page() should provide escaping via %h formatting */
1090 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( zQS[0] ){
1091 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ style_submenu_element("Raw","%R/%s?tablist=1&%s",g.zPath,zQS);
1092 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ style_submenu_element("Reports","%R/reportlist?%s",zQS);
1093 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ } else {
1094 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ style_submenu_element("Raw","%R/%s?tablist=1",g.zPath);
1095 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ style_submenu_element("Reports","%R/reportlist");
1096 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
1097 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( g.perm.Admin
1098 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ || (g.perm.TktFmt && g.zLogin && fossil_strcmp(g.zLogin,zOwner)==0) ){
1099 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ style_submenu_element("Edit", "rptedit?rn=%d", rn);
1100 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
1101 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( g.perm.TktFmt ){
1102 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ style_submenu_element("SQL", "rptsql?rn=%d",rn);
1103 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
1104 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( g.perm.NewTkt ){
1105 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ style_submenu_element("New Ticket", "%R/tktnew");
1106 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
1107 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ style_header("%s", zTitle);
1108 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
1065 1109 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
output_color_key(zClrKey, 1,
1066 1110 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"border=\"0\" cellpadding=\"3\" cellspacing=\"0\" class=\"report\"");
1067 1111 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <table border="1" cellpadding="2" cellspacing="0" class="report sortable"
1068 1112 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ data-column-types='' data-init-sort='0'>
1069 1113 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sState.rn = rn;
@@ -1076,11 +1120,13 @@
1076 1120 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <p class="reportError">Error: %h(zErr1)</p>
1077 1121 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else if( zErr2 ){
1078 1122 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <p class="reportError">Error: %h(zErr2)</p>
1079 1123 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1080 1124 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
style_table_sorter();
1081 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- style_finish_page();
1125 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pageWrap ) {
1126 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ style_finish_page();
1127 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
1082 1128 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
1083 1129 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
report_restrict_sql(&zErr1);
1084 1130 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_exec_readonly(g.db, zSql, output_tab_separated, &count, &zErr2);
1085 1131 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
report_unrestrict_sql();
1086 1132 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
cgi_set_content_type("text/plain");
1087 1133 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!