Fossil SCM

Use URI extensions rather than name= query parameters on key ticket hyperlinks.

drh 2022-12-25 14:24 trunk
Commit 5f22b960b3e34964d4be97666a9ba3abeba581215e9cb6ac1c7b8773206bb6f2
2 files changed +1 -1 +8 -8
+1 -1
--- src/report.c
+++ src/report.c
@@ -932,11 +932,11 @@
932932
blob_reset(&content);
933933
@ %s(pState->zWikiEnd)
934934
}
935935
}else if( azName[i][0]=='#' ){
936936
zTid = zData;
937
- @ <td valign="top">%z(href("%R/tktview?name=%h",zData))%h(zData)</a></td>
937
+ @ <td valign="top">%z(href("%R/tktview/%h",zData))%h(zData)</a></td>
938938
}else if( zData[0]==0 ){
939939
@ <td valign="top">&nbsp;</td>
940940
}else{
941941
@ <td valign="top">
942942
@ %h(zData)
943943
--- src/report.c
+++ src/report.c
@@ -932,11 +932,11 @@
932 blob_reset(&content);
933 @ %s(pState->zWikiEnd)
934 }
935 }else if( azName[i][0]=='#' ){
936 zTid = zData;
937 @ <td valign="top">%z(href("%R/tktview?name=%h",zData))%h(zData)</a></td>
938 }else if( zData[0]==0 ){
939 @ <td valign="top">&nbsp;</td>
940 }else{
941 @ <td valign="top">
942 @ %h(zData)
943
--- src/report.c
+++ src/report.c
@@ -932,11 +932,11 @@
932 blob_reset(&content);
933 @ %s(pState->zWikiEnd)
934 }
935 }else if( azName[i][0]=='#' ){
936 zTid = zData;
937 @ <td valign="top">%z(href("%R/tktview/%h",zData))%h(zData)</a></td>
938 }else if( zData[0]==0 ){
939 @ <td valign="top">&nbsp;</td>
940 }else{
941 @ <td valign="top">
942 @ %h(zData)
943
+8 -8
--- src/tkt.c
+++ src/tkt.c
@@ -712,11 +712,11 @@
712712
@ </ul></div>
713713
}
714714
715715
/*
716716
** WEBPAGE: tktview
717
-** URL: tktview?name=HASH
717
+** URL: tktview/HASH
718718
**
719719
** View a ticket identified by the name= query parameter.
720720
** Other query parameters:
721721
**
722722
** tl Show a timeline of the ticket above the status
@@ -728,11 +728,11 @@
728728
int showTimeline = P("tl")!=0;
729729
730730
login_check_credentials();
731731
if( !g.perm.RdTkt ){ login_needed(g.anon.RdTkt); return; }
732732
if( g.anon.WrTkt || g.anon.ApndTkt ){
733
- style_submenu_element("Edit", "%R/tktedit?name=%T", PD("name",""));
733
+ style_submenu_element("Edit", "%R/tktedit/%T", PD("name",""));
734734
}
735735
if( g.perm.Hyperlink ){
736736
style_submenu_element("History", "%R/tkthistory/%T", zUuid);
737737
style_submenu_element("Check-ins", "%R/tkttimeline/%T?y=ci", zUuid);
738738
}
@@ -1055,11 +1055,11 @@
10551055
login_needed(g.anon.ApndTkt || g.anon.WrTkt);
10561056
return;
10571057
}
10581058
zName = P("name");
10591059
if( P("cancel") ){
1060
- cgi_redirectf("tktview?name=%T", zName);
1060
+ cgi_redirectf("tktview/%T", zName);
10611061
}
10621062
style_set_current_feature("tkt");
10631063
style_header("Edit Ticket");
10641064
if( zName==0 || (nName = strlen(zName))<4 || nName>HNAME_LEN_SHA1
10651065
|| !validate16(zName,nName) ){
@@ -1212,13 +1212,13 @@
12121212
return;
12131213
}
12141214
zUuid = PD("name","");
12151215
zType = PD("y","a");
12161216
if( zType[0]!='c' ){
1217
- style_submenu_element("Check-ins", "%R/tkttimeline?name=%T&y=ci", zUuid);
1217
+ style_submenu_element("Check-ins", "%R/tkttimeline/%T&y=ci", zUuid);
12181218
}else{
1219
- style_submenu_element("Timeline", "%R/tkttimeline?name=%T", zUuid);
1219
+ style_submenu_element("Timeline", "%R/tkttimeline/%T", zUuid);
12201220
}
12211221
style_submenu_element("History", "%R/tkthistory/%s", zUuid);
12221222
style_submenu_element("Status", "%R/info/%s", zUuid);
12231223
if( zType[0]=='c' ){
12241224
zTitle = mprintf("Check-ins Associated With Ticket %h", zUuid);
@@ -1240,11 +1240,11 @@
12401240
style_finish_page();
12411241
}
12421242
12431243
/*
12441244
** WEBPAGE: tkthistory
1245
-** URL: /tkthistory?name=TICKETUUID
1245
+** URL: /tkthistory/TICKETUUID
12461246
**
12471247
** Show the complete change history for a single ticket. Or (to put it
12481248
** another way) show a list of artifacts associated with a single ticket.
12491249
**
12501250
** By default, the artifacts are decoded and formatted. Text fields
@@ -1270,12 +1270,12 @@
12701270
return;
12711271
}
12721272
zUuid = PD("name","");
12731273
zTitle = mprintf("History Of Ticket %h", zUuid);
12741274
style_submenu_element("Status", "%R/info/%s", zUuid);
1275
- style_submenu_element("Check-ins", "%R/tkttimeline?name=%s&y=ci", zUuid);
1276
- style_submenu_element("Timeline", "%R/tkttimeline?name=%s", zUuid);
1275
+ style_submenu_element("Check-ins", "%R/tkttimeline/%s?y=ci", zUuid);
1276
+ style_submenu_element("Timeline", "%R/tkttimeline/%s", zUuid);
12771277
if( P("raw")!=0 ){
12781278
style_submenu_element("Decoded", "%R/tkthistory/%s", zUuid);
12791279
}else if( g.perm.Admin ){
12801280
style_submenu_element("Raw", "%R/tkthistory/%s?raw", zUuid);
12811281
}
12821282
--- src/tkt.c
+++ src/tkt.c
@@ -712,11 +712,11 @@
712 @ </ul></div>
713 }
714
715 /*
716 ** WEBPAGE: tktview
717 ** URL: tktview?name=HASH
718 **
719 ** View a ticket identified by the name= query parameter.
720 ** Other query parameters:
721 **
722 ** tl Show a timeline of the ticket above the status
@@ -728,11 +728,11 @@
728 int showTimeline = P("tl")!=0;
729
730 login_check_credentials();
731 if( !g.perm.RdTkt ){ login_needed(g.anon.RdTkt); return; }
732 if( g.anon.WrTkt || g.anon.ApndTkt ){
733 style_submenu_element("Edit", "%R/tktedit?name=%T", PD("name",""));
734 }
735 if( g.perm.Hyperlink ){
736 style_submenu_element("History", "%R/tkthistory/%T", zUuid);
737 style_submenu_element("Check-ins", "%R/tkttimeline/%T?y=ci", zUuid);
738 }
@@ -1055,11 +1055,11 @@
1055 login_needed(g.anon.ApndTkt || g.anon.WrTkt);
1056 return;
1057 }
1058 zName = P("name");
1059 if( P("cancel") ){
1060 cgi_redirectf("tktview?name=%T", zName);
1061 }
1062 style_set_current_feature("tkt");
1063 style_header("Edit Ticket");
1064 if( zName==0 || (nName = strlen(zName))<4 || nName>HNAME_LEN_SHA1
1065 || !validate16(zName,nName) ){
@@ -1212,13 +1212,13 @@
1212 return;
1213 }
1214 zUuid = PD("name","");
1215 zType = PD("y","a");
1216 if( zType[0]!='c' ){
1217 style_submenu_element("Check-ins", "%R/tkttimeline?name=%T&y=ci", zUuid);
1218 }else{
1219 style_submenu_element("Timeline", "%R/tkttimeline?name=%T", zUuid);
1220 }
1221 style_submenu_element("History", "%R/tkthistory/%s", zUuid);
1222 style_submenu_element("Status", "%R/info/%s", zUuid);
1223 if( zType[0]=='c' ){
1224 zTitle = mprintf("Check-ins Associated With Ticket %h", zUuid);
@@ -1240,11 +1240,11 @@
1240 style_finish_page();
1241 }
1242
1243 /*
1244 ** WEBPAGE: tkthistory
1245 ** URL: /tkthistory?name=TICKETUUID
1246 **
1247 ** Show the complete change history for a single ticket. Or (to put it
1248 ** another way) show a list of artifacts associated with a single ticket.
1249 **
1250 ** By default, the artifacts are decoded and formatted. Text fields
@@ -1270,12 +1270,12 @@
1270 return;
1271 }
1272 zUuid = PD("name","");
1273 zTitle = mprintf("History Of Ticket %h", zUuid);
1274 style_submenu_element("Status", "%R/info/%s", zUuid);
1275 style_submenu_element("Check-ins", "%R/tkttimeline?name=%s&y=ci", zUuid);
1276 style_submenu_element("Timeline", "%R/tkttimeline?name=%s", zUuid);
1277 if( P("raw")!=0 ){
1278 style_submenu_element("Decoded", "%R/tkthistory/%s", zUuid);
1279 }else if( g.perm.Admin ){
1280 style_submenu_element("Raw", "%R/tkthistory/%s?raw", zUuid);
1281 }
1282
--- src/tkt.c
+++ src/tkt.c
@@ -712,11 +712,11 @@
712 @ </ul></div>
713 }
714
715 /*
716 ** WEBPAGE: tktview
717 ** URL: tktview/HASH
718 **
719 ** View a ticket identified by the name= query parameter.
720 ** Other query parameters:
721 **
722 ** tl Show a timeline of the ticket above the status
@@ -728,11 +728,11 @@
728 int showTimeline = P("tl")!=0;
729
730 login_check_credentials();
731 if( !g.perm.RdTkt ){ login_needed(g.anon.RdTkt); return; }
732 if( g.anon.WrTkt || g.anon.ApndTkt ){
733 style_submenu_element("Edit", "%R/tktedit/%T", PD("name",""));
734 }
735 if( g.perm.Hyperlink ){
736 style_submenu_element("History", "%R/tkthistory/%T", zUuid);
737 style_submenu_element("Check-ins", "%R/tkttimeline/%T?y=ci", zUuid);
738 }
@@ -1055,11 +1055,11 @@
1055 login_needed(g.anon.ApndTkt || g.anon.WrTkt);
1056 return;
1057 }
1058 zName = P("name");
1059 if( P("cancel") ){
1060 cgi_redirectf("tktview/%T", zName);
1061 }
1062 style_set_current_feature("tkt");
1063 style_header("Edit Ticket");
1064 if( zName==0 || (nName = strlen(zName))<4 || nName>HNAME_LEN_SHA1
1065 || !validate16(zName,nName) ){
@@ -1212,13 +1212,13 @@
1212 return;
1213 }
1214 zUuid = PD("name","");
1215 zType = PD("y","a");
1216 if( zType[0]!='c' ){
1217 style_submenu_element("Check-ins", "%R/tkttimeline/%T&y=ci", zUuid);
1218 }else{
1219 style_submenu_element("Timeline", "%R/tkttimeline/%T", zUuid);
1220 }
1221 style_submenu_element("History", "%R/tkthistory/%s", zUuid);
1222 style_submenu_element("Status", "%R/info/%s", zUuid);
1223 if( zType[0]=='c' ){
1224 zTitle = mprintf("Check-ins Associated With Ticket %h", zUuid);
@@ -1240,11 +1240,11 @@
1240 style_finish_page();
1241 }
1242
1243 /*
1244 ** WEBPAGE: tkthistory
1245 ** URL: /tkthistory/TICKETUUID
1246 **
1247 ** Show the complete change history for a single ticket. Or (to put it
1248 ** another way) show a list of artifacts associated with a single ticket.
1249 **
1250 ** By default, the artifacts are decoded and formatted. Text fields
@@ -1270,12 +1270,12 @@
1270 return;
1271 }
1272 zUuid = PD("name","");
1273 zTitle = mprintf("History Of Ticket %h", zUuid);
1274 style_submenu_element("Status", "%R/info/%s", zUuid);
1275 style_submenu_element("Check-ins", "%R/tkttimeline/%s?y=ci", zUuid);
1276 style_submenu_element("Timeline", "%R/tkttimeline/%s", zUuid);
1277 if( P("raw")!=0 ){
1278 style_submenu_element("Decoded", "%R/tkthistory/%s", zUuid);
1279 }else if( g.perm.Admin ){
1280 style_submenu_element("Raw", "%R/tkthistory/%s?raw", zUuid);
1281 }
1282

Keyboard Shortcuts

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