Fossil SCM
Use relative URLs for hyperlinks whereever possible, so that Fossil can work better behind a reverse proxy.
Commit
daeb10f65f90833fb1d903db7fb085c02a525a02
Parent
e3313965d3f7be5…
21 files changed
+2
-2
+2
-2
+11
-11
+1
-1
+1
-1
+1
-1
+1
-1
+16
-16
+1
-1
+1
-1
+8
-8
+7
-7
+44
-44
+15
-14
+2
-2
+6
-6
+4
-4
+2
-2
+1
-1
+14
-14
+8
-8
+2
-2
| --- src/attach.c | ||
| +++ src/attach.c | ||
| @@ -270,11 +270,11 @@ | ||
| 270 | 270 | db_end_transaction(0); |
| 271 | 271 | cgi_redirect(zFrom); |
| 272 | 272 | } |
| 273 | 273 | style_header("Add Attachment"); |
| 274 | 274 | @ <h2>Add Attachment To %s(zTargetType)</h2> |
| 275 | - @ <form action="%s(g.zBaseURL)/attachadd" method="post" | |
| 275 | + @ <form action="%s(g.zTop)/attachadd" method="post" | |
| 276 | 276 | @ enctype="multipart/form-data"><div> |
| 277 | 277 | @ File to Attach: |
| 278 | 278 | @ <input type="file" name="f" size="60" /><br /> |
| 279 | 279 | @ Description:<br /> |
| 280 | 280 | @ <textarea name="comment" cols="80" rows="5" wrap="virtual"></textarea><br /> |
| @@ -349,11 +349,11 @@ | ||
| 349 | 349 | manifest_crosslink(rid, &manifest); |
| 350 | 350 | db_end_transaction(0); |
| 351 | 351 | cgi_redirect(zFrom); |
| 352 | 352 | } |
| 353 | 353 | style_header("Delete Attachment"); |
| 354 | - @ <form action="%s(g.zBaseURL)/attachdelete" method="post"><div> | |
| 354 | + @ <form action="%s(g.zTop)/attachdelete" method="post"><div> | |
| 355 | 355 | @ <p>Confirm that you want to delete the attachment named |
| 356 | 356 | @ "%h(zFile)" on %s(zTkt?"ticket":"wiki page") %h(zTarget):<br /></p> |
| 357 | 357 | if( zTkt ){ |
| 358 | 358 | @ <input type="hidden" name="tkt" value="%h(zTkt)" /> |
| 359 | 359 | }else{ |
| 360 | 360 |
| --- src/attach.c | |
| +++ src/attach.c | |
| @@ -270,11 +270,11 @@ | |
| 270 | db_end_transaction(0); |
| 271 | cgi_redirect(zFrom); |
| 272 | } |
| 273 | style_header("Add Attachment"); |
| 274 | @ <h2>Add Attachment To %s(zTargetType)</h2> |
| 275 | @ <form action="%s(g.zBaseURL)/attachadd" method="post" |
| 276 | @ enctype="multipart/form-data"><div> |
| 277 | @ File to Attach: |
| 278 | @ <input type="file" name="f" size="60" /><br /> |
| 279 | @ Description:<br /> |
| 280 | @ <textarea name="comment" cols="80" rows="5" wrap="virtual"></textarea><br /> |
| @@ -349,11 +349,11 @@ | |
| 349 | manifest_crosslink(rid, &manifest); |
| 350 | db_end_transaction(0); |
| 351 | cgi_redirect(zFrom); |
| 352 | } |
| 353 | style_header("Delete Attachment"); |
| 354 | @ <form action="%s(g.zBaseURL)/attachdelete" method="post"><div> |
| 355 | @ <p>Confirm that you want to delete the attachment named |
| 356 | @ "%h(zFile)" on %s(zTkt?"ticket":"wiki page") %h(zTarget):<br /></p> |
| 357 | if( zTkt ){ |
| 358 | @ <input type="hidden" name="tkt" value="%h(zTkt)" /> |
| 359 | }else{ |
| 360 |
| --- src/attach.c | |
| +++ src/attach.c | |
| @@ -270,11 +270,11 @@ | |
| 270 | db_end_transaction(0); |
| 271 | cgi_redirect(zFrom); |
| 272 | } |
| 273 | style_header("Add Attachment"); |
| 274 | @ <h2>Add Attachment To %s(zTargetType)</h2> |
| 275 | @ <form action="%s(g.zTop)/attachadd" method="post" |
| 276 | @ enctype="multipart/form-data"><div> |
| 277 | @ File to Attach: |
| 278 | @ <input type="file" name="f" size="60" /><br /> |
| 279 | @ Description:<br /> |
| 280 | @ <textarea name="comment" cols="80" rows="5" wrap="virtual"></textarea><br /> |
| @@ -349,11 +349,11 @@ | |
| 349 | manifest_crosslink(rid, &manifest); |
| 350 | db_end_transaction(0); |
| 351 | cgi_redirect(zFrom); |
| 352 | } |
| 353 | style_header("Delete Attachment"); |
| 354 | @ <form action="%s(g.zTop)/attachdelete" method="post"><div> |
| 355 | @ <p>Confirm that you want to delete the attachment named |
| 356 | @ "%h(zFile)" on %s(zTkt?"ticket":"wiki page") %h(zTarget):<br /></p> |
| 357 | if( zTkt ){ |
| 358 | @ <input type="hidden" name="tkt" value="%h(zTkt)" /> |
| 359 | }else{ |
| 360 |
+2
-2
| --- src/branch.c | ||
| +++ src/branch.c | ||
| @@ -296,11 +296,11 @@ | ||
| 296 | 296 | } |
| 297 | 297 | @ <ul> |
| 298 | 298 | cnt++; |
| 299 | 299 | } |
| 300 | 300 | if( g.okHistory ){ |
| 301 | - @ <li><a href="%s(g.zBaseURL)/timeline?r=%T(zBr)">%h(zBr)</a></li> | |
| 301 | + @ <li><a href="%s(g.zTop)/timeline?r=%T(zBr)">%h(zBr)</a></li> | |
| 302 | 302 | }else{ |
| 303 | 303 | @ <li><b>%h(zBr)</b></li> |
| 304 | 304 | } |
| 305 | 305 | } |
| 306 | 306 | if( cnt ){ |
| @@ -332,11 +332,11 @@ | ||
| 332 | 332 | " AND tag.tagname GLOB 'sym-*'", |
| 333 | 333 | rid |
| 334 | 334 | ); |
| 335 | 335 | while( db_step(&q)==SQLITE_ROW ){ |
| 336 | 336 | const char *zTagName = db_column_text(&q, 0); |
| 337 | - @ <a href="%s(g.zBaseURL)/timeline?r=%T(zTagName)">[timeline]</a> | |
| 337 | + @ <a href="%s(g.zTop)/timeline?r=%T(zTagName)">[timeline]</a> | |
| 338 | 338 | } |
| 339 | 339 | db_finalize(&q); |
| 340 | 340 | } |
| 341 | 341 | |
| 342 | 342 | /* |
| 343 | 343 |
| --- src/branch.c | |
| +++ src/branch.c | |
| @@ -296,11 +296,11 @@ | |
| 296 | } |
| 297 | @ <ul> |
| 298 | cnt++; |
| 299 | } |
| 300 | if( g.okHistory ){ |
| 301 | @ <li><a href="%s(g.zBaseURL)/timeline?r=%T(zBr)">%h(zBr)</a></li> |
| 302 | }else{ |
| 303 | @ <li><b>%h(zBr)</b></li> |
| 304 | } |
| 305 | } |
| 306 | if( cnt ){ |
| @@ -332,11 +332,11 @@ | |
| 332 | " AND tag.tagname GLOB 'sym-*'", |
| 333 | rid |
| 334 | ); |
| 335 | while( db_step(&q)==SQLITE_ROW ){ |
| 336 | const char *zTagName = db_column_text(&q, 0); |
| 337 | @ <a href="%s(g.zBaseURL)/timeline?r=%T(zTagName)">[timeline]</a> |
| 338 | } |
| 339 | db_finalize(&q); |
| 340 | } |
| 341 | |
| 342 | /* |
| 343 |
| --- src/branch.c | |
| +++ src/branch.c | |
| @@ -296,11 +296,11 @@ | |
| 296 | } |
| 297 | @ <ul> |
| 298 | cnt++; |
| 299 | } |
| 300 | if( g.okHistory ){ |
| 301 | @ <li><a href="%s(g.zTop)/timeline?r=%T(zBr)">%h(zBr)</a></li> |
| 302 | }else{ |
| 303 | @ <li><b>%h(zBr)</b></li> |
| 304 | } |
| 305 | } |
| 306 | if( cnt ){ |
| @@ -332,11 +332,11 @@ | |
| 332 | " AND tag.tagname GLOB 'sym-*'", |
| 333 | rid |
| 334 | ); |
| 335 | while( db_step(&q)==SQLITE_ROW ){ |
| 336 | const char *zTagName = db_column_text(&q, 0); |
| 337 | @ <a href="%s(g.zTop)/timeline?r=%T(zTagName)">[timeline]</a> |
| 338 | } |
| 339 | db_finalize(&q); |
| 340 | } |
| 341 | |
| 342 | /* |
| 343 |
+11
-11
| --- src/browse.c | ||
| +++ src/browse.c | ||
| @@ -80,14 +80,14 @@ | ||
| 80 | 80 | for(i=0; zPath[i]; i=j){ |
| 81 | 81 | for(j=i; zPath[j] && zPath[j]!='/'; j++){} |
| 82 | 82 | if( zPath[j] && g.okHistory ){ |
| 83 | 83 | if( zCI ){ |
| 84 | 84 | blob_appendf(pOut, "%s<a href=\"%s/dir?ci=%S&name=%#T\">%#h</a>", |
| 85 | - zSep, g.zBaseURL, zCI, j, zPath, j-i, &zPath[i]); | |
| 85 | + zSep, g.zTop, zCI, j, zPath, j-i, &zPath[i]); | |
| 86 | 86 | }else{ |
| 87 | 87 | blob_appendf(pOut, "%s<a href=\"%s/dir?name=%#T\">%#h</a>", |
| 88 | - zSep, g.zBaseURL, j, zPath, j-i, &zPath[i]); | |
| 88 | + zSep, g.zTop, j, zPath, j-i, &zPath[i]); | |
| 89 | 89 | } |
| 90 | 90 | }else{ |
| 91 | 91 | blob_appendf(pOut, "%s%#h", zSep, j-i, &zPath[i]); |
| 92 | 92 | } |
| 93 | 93 | zSep = "/"; |
| @@ -161,32 +161,32 @@ | ||
| 161 | 161 | zSubdirLink = mprintf("%s/dir?ci=%S&name=%T", g.zTop, zUuid, zPrefix); |
| 162 | 162 | if( zD ){ |
| 163 | 163 | style_submenu_element("Top", "Top", "%s/dir?ci=%S", g.zTop, zUuid); |
| 164 | 164 | style_submenu_element("All", "All", "%s/dir?name=%t", g.zTop, zD); |
| 165 | 165 | }else{ |
| 166 | - style_submenu_element("All", "All", "%s/dir", g.zBaseURL); | |
| 166 | + style_submenu_element("All", "All", "%s/dir", g.zTop); | |
| 167 | 167 | } |
| 168 | 168 | }else{ |
| 169 | 169 | int hasTrunk; |
| 170 | 170 | @ <h2>The union of all files from all check-ins |
| 171 | 171 | @ %s(blob_str(&dirname))</h2> |
| 172 | 172 | hasTrunk = db_exists( |
| 173 | 173 | "SELECT 1 FROM tagxref WHERE tagid=%d AND value='trunk'", |
| 174 | 174 | TAG_BRANCH); |
| 175 | - zSubdirLink = mprintf("%s/dir?name=%T", g.zBaseURL, zPrefix); | |
| 175 | + zSubdirLink = mprintf("%s/dir?name=%T", g.zTop, zPrefix); | |
| 176 | 176 | if( zD ){ |
| 177 | - style_submenu_element("Top", "Top", "%s/dir", g.zBaseURL); | |
| 177 | + style_submenu_element("Top", "Top", "%s/dir", g.zTop); | |
| 178 | 178 | style_submenu_element("Tip", "Tip", "%s/dir?name=%t&ci=tip", |
| 179 | - g.zBaseURL, zD); | |
| 179 | + g.zTop, zD); | |
| 180 | 180 | if( hasTrunk ){ |
| 181 | 181 | style_submenu_element("Trunk", "Trunk", "%s/dir?name=%t&ci=trunk", |
| 182 | - g.zBaseURL,zD); | |
| 182 | + g.zTop,zD); | |
| 183 | 183 | } |
| 184 | 184 | }else{ |
| 185 | - style_submenu_element("Tip", "Tip", "%s/dir?ci=tip", g.zBaseURL); | |
| 185 | + style_submenu_element("Tip", "Tip", "%s/dir?ci=tip", g.zTop); | |
| 186 | 186 | if( hasTrunk ){ |
| 187 | - style_submenu_element("Trunk", "Trunk", "%s/dir?ci=trunk", g.zBaseURL); | |
| 187 | + style_submenu_element("Trunk", "Trunk", "%s/dir?ci=trunk", g.zTop); | |
| 188 | 188 | } |
| 189 | 189 | } |
| 190 | 190 | } |
| 191 | 191 | |
| 192 | 192 | /* Compute the temporary table "localfiles" containing the names |
| @@ -259,16 +259,16 @@ | ||
| 259 | 259 | if( zFN[0]=='/' ){ |
| 260 | 260 | zFN++; |
| 261 | 261 | @ <li><a href="%s(zSubdirLink)%T(zFN)">%h(zFN)/</a></li> |
| 262 | 262 | }else if( zCI ){ |
| 263 | 263 | const char *zUuid = db_column_text(&q, 1); |
| 264 | - @ <li><a href="%s(g.zBaseURL)/artifact?name=%s(zUuid)">%h(zFN)</a></li> | |
| 264 | + @ <li><a href="%s(g.zTop)/artifact?name=%s(zUuid)">%h(zFN)</a></li> | |
| 265 | 265 | }else{ |
| 266 | - @ <li><a href="%s(g.zBaseURL)/finfo?name=%T(zPrefix)%T(zFN)">%h(zFN) | |
| 266 | + @ <li><a href="%s(g.zTop)/finfo?name=%T(zPrefix)%T(zFN)">%h(zFN) | |
| 267 | 267 | @ </a></li> |
| 268 | 268 | } |
| 269 | 269 | } |
| 270 | 270 | db_finalize(&q); |
| 271 | 271 | manifest_destroy(pM); |
| 272 | 272 | @ </ul></td></tr></table> |
| 273 | 273 | style_footer(); |
| 274 | 274 | } |
| 275 | 275 |
| --- src/browse.c | |
| +++ src/browse.c | |
| @@ -80,14 +80,14 @@ | |
| 80 | for(i=0; zPath[i]; i=j){ |
| 81 | for(j=i; zPath[j] && zPath[j]!='/'; j++){} |
| 82 | if( zPath[j] && g.okHistory ){ |
| 83 | if( zCI ){ |
| 84 | blob_appendf(pOut, "%s<a href=\"%s/dir?ci=%S&name=%#T\">%#h</a>", |
| 85 | zSep, g.zBaseURL, zCI, j, zPath, j-i, &zPath[i]); |
| 86 | }else{ |
| 87 | blob_appendf(pOut, "%s<a href=\"%s/dir?name=%#T\">%#h</a>", |
| 88 | zSep, g.zBaseURL, j, zPath, j-i, &zPath[i]); |
| 89 | } |
| 90 | }else{ |
| 91 | blob_appendf(pOut, "%s%#h", zSep, j-i, &zPath[i]); |
| 92 | } |
| 93 | zSep = "/"; |
| @@ -161,32 +161,32 @@ | |
| 161 | zSubdirLink = mprintf("%s/dir?ci=%S&name=%T", g.zTop, zUuid, zPrefix); |
| 162 | if( zD ){ |
| 163 | style_submenu_element("Top", "Top", "%s/dir?ci=%S", g.zTop, zUuid); |
| 164 | style_submenu_element("All", "All", "%s/dir?name=%t", g.zTop, zD); |
| 165 | }else{ |
| 166 | style_submenu_element("All", "All", "%s/dir", g.zBaseURL); |
| 167 | } |
| 168 | }else{ |
| 169 | int hasTrunk; |
| 170 | @ <h2>The union of all files from all check-ins |
| 171 | @ %s(blob_str(&dirname))</h2> |
| 172 | hasTrunk = db_exists( |
| 173 | "SELECT 1 FROM tagxref WHERE tagid=%d AND value='trunk'", |
| 174 | TAG_BRANCH); |
| 175 | zSubdirLink = mprintf("%s/dir?name=%T", g.zBaseURL, zPrefix); |
| 176 | if( zD ){ |
| 177 | style_submenu_element("Top", "Top", "%s/dir", g.zBaseURL); |
| 178 | style_submenu_element("Tip", "Tip", "%s/dir?name=%t&ci=tip", |
| 179 | g.zBaseURL, zD); |
| 180 | if( hasTrunk ){ |
| 181 | style_submenu_element("Trunk", "Trunk", "%s/dir?name=%t&ci=trunk", |
| 182 | g.zBaseURL,zD); |
| 183 | } |
| 184 | }else{ |
| 185 | style_submenu_element("Tip", "Tip", "%s/dir?ci=tip", g.zBaseURL); |
| 186 | if( hasTrunk ){ |
| 187 | style_submenu_element("Trunk", "Trunk", "%s/dir?ci=trunk", g.zBaseURL); |
| 188 | } |
| 189 | } |
| 190 | } |
| 191 | |
| 192 | /* Compute the temporary table "localfiles" containing the names |
| @@ -259,16 +259,16 @@ | |
| 259 | if( zFN[0]=='/' ){ |
| 260 | zFN++; |
| 261 | @ <li><a href="%s(zSubdirLink)%T(zFN)">%h(zFN)/</a></li> |
| 262 | }else if( zCI ){ |
| 263 | const char *zUuid = db_column_text(&q, 1); |
| 264 | @ <li><a href="%s(g.zBaseURL)/artifact?name=%s(zUuid)">%h(zFN)</a></li> |
| 265 | }else{ |
| 266 | @ <li><a href="%s(g.zBaseURL)/finfo?name=%T(zPrefix)%T(zFN)">%h(zFN) |
| 267 | @ </a></li> |
| 268 | } |
| 269 | } |
| 270 | db_finalize(&q); |
| 271 | manifest_destroy(pM); |
| 272 | @ </ul></td></tr></table> |
| 273 | style_footer(); |
| 274 | } |
| 275 |
| --- src/browse.c | |
| +++ src/browse.c | |
| @@ -80,14 +80,14 @@ | |
| 80 | for(i=0; zPath[i]; i=j){ |
| 81 | for(j=i; zPath[j] && zPath[j]!='/'; j++){} |
| 82 | if( zPath[j] && g.okHistory ){ |
| 83 | if( zCI ){ |
| 84 | blob_appendf(pOut, "%s<a href=\"%s/dir?ci=%S&name=%#T\">%#h</a>", |
| 85 | zSep, g.zTop, zCI, j, zPath, j-i, &zPath[i]); |
| 86 | }else{ |
| 87 | blob_appendf(pOut, "%s<a href=\"%s/dir?name=%#T\">%#h</a>", |
| 88 | zSep, g.zTop, j, zPath, j-i, &zPath[i]); |
| 89 | } |
| 90 | }else{ |
| 91 | blob_appendf(pOut, "%s%#h", zSep, j-i, &zPath[i]); |
| 92 | } |
| 93 | zSep = "/"; |
| @@ -161,32 +161,32 @@ | |
| 161 | zSubdirLink = mprintf("%s/dir?ci=%S&name=%T", g.zTop, zUuid, zPrefix); |
| 162 | if( zD ){ |
| 163 | style_submenu_element("Top", "Top", "%s/dir?ci=%S", g.zTop, zUuid); |
| 164 | style_submenu_element("All", "All", "%s/dir?name=%t", g.zTop, zD); |
| 165 | }else{ |
| 166 | style_submenu_element("All", "All", "%s/dir", g.zTop); |
| 167 | } |
| 168 | }else{ |
| 169 | int hasTrunk; |
| 170 | @ <h2>The union of all files from all check-ins |
| 171 | @ %s(blob_str(&dirname))</h2> |
| 172 | hasTrunk = db_exists( |
| 173 | "SELECT 1 FROM tagxref WHERE tagid=%d AND value='trunk'", |
| 174 | TAG_BRANCH); |
| 175 | zSubdirLink = mprintf("%s/dir?name=%T", g.zTop, zPrefix); |
| 176 | if( zD ){ |
| 177 | style_submenu_element("Top", "Top", "%s/dir", g.zTop); |
| 178 | style_submenu_element("Tip", "Tip", "%s/dir?name=%t&ci=tip", |
| 179 | g.zTop, zD); |
| 180 | if( hasTrunk ){ |
| 181 | style_submenu_element("Trunk", "Trunk", "%s/dir?name=%t&ci=trunk", |
| 182 | g.zTop,zD); |
| 183 | } |
| 184 | }else{ |
| 185 | style_submenu_element("Tip", "Tip", "%s/dir?ci=tip", g.zTop); |
| 186 | if( hasTrunk ){ |
| 187 | style_submenu_element("Trunk", "Trunk", "%s/dir?ci=trunk", g.zTop); |
| 188 | } |
| 189 | } |
| 190 | } |
| 191 | |
| 192 | /* Compute the temporary table "localfiles" containing the names |
| @@ -259,16 +259,16 @@ | |
| 259 | if( zFN[0]=='/' ){ |
| 260 | zFN++; |
| 261 | @ <li><a href="%s(zSubdirLink)%T(zFN)">%h(zFN)/</a></li> |
| 262 | }else if( zCI ){ |
| 263 | const char *zUuid = db_column_text(&q, 1); |
| 264 | @ <li><a href="%s(g.zTop)/artifact?name=%s(zUuid)">%h(zFN)</a></li> |
| 265 | }else{ |
| 266 | @ <li><a href="%s(g.zTop)/finfo?name=%T(zPrefix)%T(zFN)">%h(zFN) |
| 267 | @ </a></li> |
| 268 | } |
| 269 | } |
| 270 | db_finalize(&q); |
| 271 | manifest_destroy(pM); |
| 272 | @ </ul></td></tr></table> |
| 273 | style_footer(); |
| 274 | } |
| 275 |
+1
-1
| --- src/cgi.c | ||
| +++ src/cgi.c | ||
| @@ -345,11 +345,11 @@ | ||
| 345 | 345 | char *zLocation; |
| 346 | 346 | CGIDEBUG(("redirect to %s\n", zURL)); |
| 347 | 347 | if( strncmp(zURL,"http:",5)==0 || strncmp(zURL,"https:",6)==0 || *zURL=='/' ){ |
| 348 | 348 | zLocation = mprintf("Location: %s\r\n", zURL); |
| 349 | 349 | }else{ |
| 350 | - zLocation = mprintf("Location: %s/%s\r\n", g.zBaseURL, zURL); | |
| 350 | + zLocation = mprintf("Location: %s/%s\r\n", g.zTop, zURL); | |
| 351 | 351 | } |
| 352 | 352 | cgi_append_header(zLocation); |
| 353 | 353 | cgi_reset_content(); |
| 354 | 354 | cgi_printf("<html>\n<p>Redirect to %h</p>\n</html>\n", zURL); |
| 355 | 355 | cgi_set_status(302, "Moved Temporarily"); |
| 356 | 356 |
| --- src/cgi.c | |
| +++ src/cgi.c | |
| @@ -345,11 +345,11 @@ | |
| 345 | char *zLocation; |
| 346 | CGIDEBUG(("redirect to %s\n", zURL)); |
| 347 | if( strncmp(zURL,"http:",5)==0 || strncmp(zURL,"https:",6)==0 || *zURL=='/' ){ |
| 348 | zLocation = mprintf("Location: %s\r\n", zURL); |
| 349 | }else{ |
| 350 | zLocation = mprintf("Location: %s/%s\r\n", g.zBaseURL, zURL); |
| 351 | } |
| 352 | cgi_append_header(zLocation); |
| 353 | cgi_reset_content(); |
| 354 | cgi_printf("<html>\n<p>Redirect to %h</p>\n</html>\n", zURL); |
| 355 | cgi_set_status(302, "Moved Temporarily"); |
| 356 |
| --- src/cgi.c | |
| +++ src/cgi.c | |
| @@ -345,11 +345,11 @@ | |
| 345 | char *zLocation; |
| 346 | CGIDEBUG(("redirect to %s\n", zURL)); |
| 347 | if( strncmp(zURL,"http:",5)==0 || strncmp(zURL,"https:",6)==0 || *zURL=='/' ){ |
| 348 | zLocation = mprintf("Location: %s\r\n", zURL); |
| 349 | }else{ |
| 350 | zLocation = mprintf("Location: %s/%s\r\n", g.zTop, zURL); |
| 351 | } |
| 352 | cgi_append_header(zLocation); |
| 353 | cgi_reset_content(); |
| 354 | cgi_printf("<html>\n<p>Redirect to %h</p>\n</html>\n", zURL); |
| 355 | cgi_set_status(302, "Moved Temporarily"); |
| 356 |
+1
-1
| --- src/descendants.c | ||
| +++ src/descendants.c | ||
| @@ -287,11 +287,11 @@ | ||
| 287 | 287 | ** the "leaves" page. Add some additional hyperlink to show the |
| 288 | 288 | ** ancestors of the leaf. |
| 289 | 289 | */ |
| 290 | 290 | static void leaves_extra(int rid){ |
| 291 | 291 | if( g.okHistory ){ |
| 292 | - @ <a href="%s(g.zBaseURL)/timeline?p=%d(rid)">[timeline]</a> | |
| 292 | + @ <a href="%s(g.zTop)/timeline?p=%d(rid)">[timeline]</a> | |
| 293 | 293 | } |
| 294 | 294 | } |
| 295 | 295 | |
| 296 | 296 | /* |
| 297 | 297 | ** WEBPAGE: leaves |
| 298 | 298 |
| --- src/descendants.c | |
| +++ src/descendants.c | |
| @@ -287,11 +287,11 @@ | |
| 287 | ** the "leaves" page. Add some additional hyperlink to show the |
| 288 | ** ancestors of the leaf. |
| 289 | */ |
| 290 | static void leaves_extra(int rid){ |
| 291 | if( g.okHistory ){ |
| 292 | @ <a href="%s(g.zBaseURL)/timeline?p=%d(rid)">[timeline]</a> |
| 293 | } |
| 294 | } |
| 295 | |
| 296 | /* |
| 297 | ** WEBPAGE: leaves |
| 298 |
| --- src/descendants.c | |
| +++ src/descendants.c | |
| @@ -287,11 +287,11 @@ | |
| 287 | ** the "leaves" page. Add some additional hyperlink to show the |
| 288 | ** ancestors of the leaf. |
| 289 | */ |
| 290 | static void leaves_extra(int rid){ |
| 291 | if( g.okHistory ){ |
| 292 | @ <a href="%s(g.zTop)/timeline?p=%d(rid)">[timeline]</a> |
| 293 | } |
| 294 | } |
| 295 | |
| 296 | /* |
| 297 | ** WEBPAGE: leaves |
| 298 |
+1
-1
| --- src/diff.c | ||
| +++ src/diff.c | ||
| @@ -769,11 +769,11 @@ | ||
| 769 | 769 | const char *zUuid = db_column_text(&q, 1); |
| 770 | 770 | const char *zDate = db_column_text(&q, 2); |
| 771 | 771 | const char *zUser = db_column_text(&q, 3); |
| 772 | 772 | if( webLabel ){ |
| 773 | 773 | zLabel = mprintf("<a href='%s/info/%s'>%.10s</a> %s %9.9s", |
| 774 | - g.zBaseURL, zUuid, zUuid, zDate, zUser); | |
| 774 | + g.zTop, zUuid, zUuid, zDate, zUser); | |
| 775 | 775 | }else{ |
| 776 | 776 | zLabel = mprintf("%.10s %s %9.9s", zUuid, zDate, zUser); |
| 777 | 777 | } |
| 778 | 778 | content_get(pid, &step); |
| 779 | 779 | annotation_step(p, &step, zLabel); |
| 780 | 780 |
| --- src/diff.c | |
| +++ src/diff.c | |
| @@ -769,11 +769,11 @@ | |
| 769 | const char *zUuid = db_column_text(&q, 1); |
| 770 | const char *zDate = db_column_text(&q, 2); |
| 771 | const char *zUser = db_column_text(&q, 3); |
| 772 | if( webLabel ){ |
| 773 | zLabel = mprintf("<a href='%s/info/%s'>%.10s</a> %s %9.9s", |
| 774 | g.zBaseURL, zUuid, zUuid, zDate, zUser); |
| 775 | }else{ |
| 776 | zLabel = mprintf("%.10s %s %9.9s", zUuid, zDate, zUser); |
| 777 | } |
| 778 | content_get(pid, &step); |
| 779 | annotation_step(p, &step, zLabel); |
| 780 |
| --- src/diff.c | |
| +++ src/diff.c | |
| @@ -769,11 +769,11 @@ | |
| 769 | const char *zUuid = db_column_text(&q, 1); |
| 770 | const char *zDate = db_column_text(&q, 2); |
| 771 | const char *zUser = db_column_text(&q, 3); |
| 772 | if( webLabel ){ |
| 773 | zLabel = mprintf("<a href='%s/info/%s'>%.10s</a> %s %9.9s", |
| 774 | g.zTop, zUuid, zUuid, zDate, zUser); |
| 775 | }else{ |
| 776 | zLabel = mprintf("%.10s %s %9.9s", zUuid, zDate, zUser); |
| 777 | } |
| 778 | content_get(pid, &step); |
| 779 | annotation_step(p, &step, zLabel); |
| 780 |
+1
-1
| --- src/event.c | ||
| +++ src/event.c | ||
| @@ -394,11 +394,11 @@ | ||
| 394 | 394 | for(n=2, z=zBody; z[0]; z++){ |
| 395 | 395 | if( z[0]=='\n' ) n++; |
| 396 | 396 | } |
| 397 | 397 | if( n<20 ) n = 20; |
| 398 | 398 | if( n>40 ) n = 40; |
| 399 | - @ <form method="post" action="%s(g.zBaseURL)/eventedit"><div> | |
| 399 | + @ <form method="post" action="%s(g.zTop)/eventedit"><div> | |
| 400 | 400 | login_insert_csrf_secret(); |
| 401 | 401 | @ <input type="hidden" name="name" value="%h(zEventId)" /> |
| 402 | 402 | @ <table border="0" cellspacing="10"> |
| 403 | 403 | |
| 404 | 404 | @ <tr><td align="right" valign="top"><b>Event Time:</b></td> |
| 405 | 405 |
| --- src/event.c | |
| +++ src/event.c | |
| @@ -394,11 +394,11 @@ | |
| 394 | for(n=2, z=zBody; z[0]; z++){ |
| 395 | if( z[0]=='\n' ) n++; |
| 396 | } |
| 397 | if( n<20 ) n = 20; |
| 398 | if( n>40 ) n = 40; |
| 399 | @ <form method="post" action="%s(g.zBaseURL)/eventedit"><div> |
| 400 | login_insert_csrf_secret(); |
| 401 | @ <input type="hidden" name="name" value="%h(zEventId)" /> |
| 402 | @ <table border="0" cellspacing="10"> |
| 403 | |
| 404 | @ <tr><td align="right" valign="top"><b>Event Time:</b></td> |
| 405 |
| --- src/event.c | |
| +++ src/event.c | |
| @@ -394,11 +394,11 @@ | |
| 394 | for(n=2, z=zBody; z[0]; z++){ |
| 395 | if( z[0]=='\n' ) n++; |
| 396 | } |
| 397 | if( n<20 ) n = 20; |
| 398 | if( n>40 ) n = 40; |
| 399 | @ <form method="post" action="%s(g.zTop)/eventedit"><div> |
| 400 | login_insert_csrf_secret(); |
| 401 | @ <input type="hidden" name="name" value="%h(zEventId)" /> |
| 402 | @ <table border="0" cellspacing="10"> |
| 403 | |
| 404 | @ <tr><td align="right" valign="top"><b>Event Time:</b></td> |
| 405 |
+16
-16
| --- src/info.c | ||
| +++ src/info.c | ||
| @@ -219,11 +219,11 @@ | ||
| 219 | 219 | @ propagates to descendants |
| 220 | 220 | } |
| 221 | 221 | #if 0 |
| 222 | 222 | if( zValue && strcmp(zTagname,"branch")==0 ){ |
| 223 | 223 | @ |
| 224 | - @ <a href="%s(g.zBaseURL)/timeline?r=%T(zValue)">branch timeline</a> | |
| 224 | + @ <a href="%s(g.zTop)/timeline?r=%T(zValue)">branch timeline</a> | |
| 225 | 225 | } |
| 226 | 226 | #endif |
| 227 | 227 | } |
| 228 | 228 | if( zSrcUuid && zSrcUuid[0] ){ |
| 229 | 229 | if( tagtype==0 ){ |
| @@ -427,14 +427,14 @@ | ||
| 427 | 427 | db_finalize(&q); |
| 428 | 428 | } |
| 429 | 429 | if( g.okHistory ){ |
| 430 | 430 | const char *zProjName = db_get("project-name", "unnamed"); |
| 431 | 431 | @ <tr><th>Timelines:</th><td> |
| 432 | - @ <a href="%s(g.zBaseURL)/timeline?f=%S(zUuid)">family</a> | |
| 433 | - @ | <a href="%s(g.zBaseURL)/timeline?p=%S(zUuid)">ancestors</a> | |
| 434 | - @ | <a href="%s(g.zBaseURL)/timeline?d=%S(zUuid)">descendants</a> | |
| 435 | - @ | <a href="%s(g.zBaseURL)/timeline?d=%S(zUuid)&p=%S(zUuid)">both</a> | |
| 432 | + @ <a href="%s(g.zTop)/timeline?f=%S(zUuid)">family</a> | |
| 433 | + @ | <a href="%s(g.zTop)/timeline?p=%S(zUuid)">ancestors</a> | |
| 434 | + @ | <a href="%s(g.zTop)/timeline?d=%S(zUuid)">descendants</a> | |
| 435 | + @ | <a href="%s(g.zTop)/timeline?d=%S(zUuid)&p=%S(zUuid)">both</a> | |
| 436 | 436 | db_prepare(&q, "SELECT substr(tag.tagname,5) FROM tagxref, tag " |
| 437 | 437 | " WHERE rid=%d AND tagtype>0 " |
| 438 | 438 | " AND tag.tagid=tagxref.tagid " |
| 439 | 439 | " AND +tag.tagname GLOB 'sym-*'", rid); |
| 440 | 440 | while( db_step(&q)==SQLITE_ROW ){ |
| @@ -467,19 +467,19 @@ | ||
| 467 | 467 | @ <div class="section">Changes</div> |
| 468 | 468 | showDiff = g.zPath[0]!='c'; |
| 469 | 469 | if( db_get_boolean("show-version-diffs", 0)==0 ){ |
| 470 | 470 | showDiff = !showDiff; |
| 471 | 471 | if( showDiff ){ |
| 472 | - @ <a href="%s(g.zBaseURL)/vinfo/%T(zName)">[hide diffs]</a><br/> | |
| 472 | + @ <a href="%s(g.zTop)/vinfo/%T(zName)">[hide diffs]</a><br/> | |
| 473 | 473 | }else{ |
| 474 | - @ <a href="%s(g.zBaseURL)/ci/%T(zName)">[show diffs]</a><br/> | |
| 474 | + @ <a href="%s(g.zTop)/ci/%T(zName)">[show diffs]</a><br/> | |
| 475 | 475 | } |
| 476 | 476 | }else{ |
| 477 | 477 | if( showDiff ){ |
| 478 | - @ <a href="%s(g.zBaseURL)/ci/%T(zName)">[hide diffs]</a><br/> | |
| 478 | + @ <a href="%s(g.zTop)/ci/%T(zName)">[hide diffs]</a><br/> | |
| 479 | 479 | }else{ |
| 480 | - @ <a href="%s(g.zBaseURL)/vinfo/%T(zName)">[show diffs]</a><br/> | |
| 480 | + @ <a href="%s(g.zTop)/vinfo/%T(zName)">[show diffs]</a><br/> | |
| 481 | 481 | } |
| 482 | 482 | } |
| 483 | 483 | db_prepare(&q, |
| 484 | 484 | "SELECT name," |
| 485 | 485 | " (SELECT uuid FROM blob WHERE rid=mlink.pid)," |
| @@ -549,12 +549,12 @@ | ||
| 549 | 549 | @ <tr><th>Original User:</th><td> |
| 550 | 550 | hyperlink_to_user(zUser, zDate, "</td></tr>"); |
| 551 | 551 | if( g.okHistory ){ |
| 552 | 552 | @ <tr><th>Commands:</th> |
| 553 | 553 | @ <td> |
| 554 | - @ <a href="%s(g.zBaseURL)/whistory?name=%t(zName)">history</a> | |
| 555 | - @ | <a href="%s(g.zBaseURL)/artifact/%S(zUuid)">raw-text</a> | |
| 554 | + @ <a href="%s(g.zTop)/whistory?name=%t(zName)">history</a> | |
| 555 | + @ | <a href="%s(g.zTop)/artifact/%S(zUuid)">raw-text</a> | |
| 556 | 556 | @ </td> |
| 557 | 557 | @ </tr> |
| 558 | 558 | } |
| 559 | 559 | @ </table></p> |
| 560 | 560 | }else{ |
| @@ -755,11 +755,11 @@ | ||
| 755 | 755 | @ Also file |
| 756 | 756 | }else{ |
| 757 | 757 | @ File |
| 758 | 758 | } |
| 759 | 759 | if( g.okHistory ){ |
| 760 | - @ <a href="%s(g.zBaseURL)/finfo?name=%T(zName)">%h(zName)</a> | |
| 760 | + @ <a href="%s(g.zTop)/finfo?name=%T(zName)">%h(zName)</a> | |
| 761 | 761 | }else{ |
| 762 | 762 | @ %h(zName) |
| 763 | 763 | } |
| 764 | 764 | @ part of check-in |
| 765 | 765 | hyperlink_to_uuid(zVers); |
| @@ -790,11 +790,11 @@ | ||
| 790 | 790 | @ Also wiki page |
| 791 | 791 | }else{ |
| 792 | 792 | @ Wiki page |
| 793 | 793 | } |
| 794 | 794 | if( g.okHistory ){ |
| 795 | - @ [<a href="%s(g.zBaseURL)/wiki?name=%t(zPagename)">%h(zPagename)</a>] | |
| 795 | + @ [<a href="%s(g.zTop)/wiki?name=%t(zPagename)">%h(zPagename)</a>] | |
| 796 | 796 | }else{ |
| 797 | 797 | @ [%h(zPagename)] |
| 798 | 798 | } |
| 799 | 799 | @ by |
| 800 | 800 | hyperlink_to_user(zUser,zDate," on"); |
| @@ -892,11 +892,11 @@ | ||
| 892 | 892 | @ Control artifact. |
| 893 | 893 | if( pDownloadName && blob_size(pDownloadName)==0 ){ |
| 894 | 894 | blob_appendf(pDownloadName, "%.10s.txt", zUuid); |
| 895 | 895 | } |
| 896 | 896 | }else if( linkToView && g.okHistory ){ |
| 897 | - @ <a href="%s(g.zBaseURL)/artifact/%S(zUuid)">[view]</a> | |
| 897 | + @ <a href="%s(g.zTop)/artifact/%S(zUuid)">[view]</a> | |
| 898 | 898 | } |
| 899 | 899 | } |
| 900 | 900 | |
| 901 | 901 | |
| 902 | 902 | /* |
| @@ -1166,11 +1166,11 @@ | ||
| 1166 | 1166 | if( zMime==0 ){ |
| 1167 | 1167 | @ <pre> |
| 1168 | 1168 | @ %h(blob_str(&content)) |
| 1169 | 1169 | @ </pre> |
| 1170 | 1170 | }else if( strncmp(zMime, "image/", 6)==0 ){ |
| 1171 | - @ <img src="%s(g.zBaseURL)/raw?name=%s(zUuid)&m=%s(zMime)"></img> | |
| 1171 | + @ <img src="%s(g.zTop)/raw?name=%s(zUuid)&m=%s(zMime)"></img> | |
| 1172 | 1172 | style_submenu_element("Hex","Hex", "%s/hexdump?name=%s", g.zTop, zUuid); |
| 1173 | 1173 | }else{ |
| 1174 | 1174 | @ <i>(file is %d(blob_size(&content)) bytes of binary data)</i> |
| 1175 | 1175 | } |
| 1176 | 1176 | @ </blockquote> |
| @@ -1566,11 +1566,11 @@ | ||
| 1566 | 1566 | @ <hr /> |
| 1567 | 1567 | blob_reset(&suffix); |
| 1568 | 1568 | } |
| 1569 | 1569 | @ <p>Make changes to attributes of check-in |
| 1570 | 1570 | @ [<a href="ci?name=%s(zUuid)">%s(zUuid)</a>]:</p> |
| 1571 | - @ <form action="%s(g.zBaseURL)/ci_edit" method="post"><div> | |
| 1571 | + @ <form action="%s(g.zTop)/ci_edit" method="post"><div> | |
| 1572 | 1572 | login_insert_csrf_secret(); |
| 1573 | 1573 | @ <input type="hidden" name="r" value="%S(zUuid)" /> |
| 1574 | 1574 | @ <table border="0" cellspacing="10"> |
| 1575 | 1575 | |
| 1576 | 1576 | @ <tr><td align="right" valign="top"><b>User:</b></td> |
| 1577 | 1577 |
| --- src/info.c | |
| +++ src/info.c | |
| @@ -219,11 +219,11 @@ | |
| 219 | @ propagates to descendants |
| 220 | } |
| 221 | #if 0 |
| 222 | if( zValue && strcmp(zTagname,"branch")==0 ){ |
| 223 | @ |
| 224 | @ <a href="%s(g.zBaseURL)/timeline?r=%T(zValue)">branch timeline</a> |
| 225 | } |
| 226 | #endif |
| 227 | } |
| 228 | if( zSrcUuid && zSrcUuid[0] ){ |
| 229 | if( tagtype==0 ){ |
| @@ -427,14 +427,14 @@ | |
| 427 | db_finalize(&q); |
| 428 | } |
| 429 | if( g.okHistory ){ |
| 430 | const char *zProjName = db_get("project-name", "unnamed"); |
| 431 | @ <tr><th>Timelines:</th><td> |
| 432 | @ <a href="%s(g.zBaseURL)/timeline?f=%S(zUuid)">family</a> |
| 433 | @ | <a href="%s(g.zBaseURL)/timeline?p=%S(zUuid)">ancestors</a> |
| 434 | @ | <a href="%s(g.zBaseURL)/timeline?d=%S(zUuid)">descendants</a> |
| 435 | @ | <a href="%s(g.zBaseURL)/timeline?d=%S(zUuid)&p=%S(zUuid)">both</a> |
| 436 | db_prepare(&q, "SELECT substr(tag.tagname,5) FROM tagxref, tag " |
| 437 | " WHERE rid=%d AND tagtype>0 " |
| 438 | " AND tag.tagid=tagxref.tagid " |
| 439 | " AND +tag.tagname GLOB 'sym-*'", rid); |
| 440 | while( db_step(&q)==SQLITE_ROW ){ |
| @@ -467,19 +467,19 @@ | |
| 467 | @ <div class="section">Changes</div> |
| 468 | showDiff = g.zPath[0]!='c'; |
| 469 | if( db_get_boolean("show-version-diffs", 0)==0 ){ |
| 470 | showDiff = !showDiff; |
| 471 | if( showDiff ){ |
| 472 | @ <a href="%s(g.zBaseURL)/vinfo/%T(zName)">[hide diffs]</a><br/> |
| 473 | }else{ |
| 474 | @ <a href="%s(g.zBaseURL)/ci/%T(zName)">[show diffs]</a><br/> |
| 475 | } |
| 476 | }else{ |
| 477 | if( showDiff ){ |
| 478 | @ <a href="%s(g.zBaseURL)/ci/%T(zName)">[hide diffs]</a><br/> |
| 479 | }else{ |
| 480 | @ <a href="%s(g.zBaseURL)/vinfo/%T(zName)">[show diffs]</a><br/> |
| 481 | } |
| 482 | } |
| 483 | db_prepare(&q, |
| 484 | "SELECT name," |
| 485 | " (SELECT uuid FROM blob WHERE rid=mlink.pid)," |
| @@ -549,12 +549,12 @@ | |
| 549 | @ <tr><th>Original User:</th><td> |
| 550 | hyperlink_to_user(zUser, zDate, "</td></tr>"); |
| 551 | if( g.okHistory ){ |
| 552 | @ <tr><th>Commands:</th> |
| 553 | @ <td> |
| 554 | @ <a href="%s(g.zBaseURL)/whistory?name=%t(zName)">history</a> |
| 555 | @ | <a href="%s(g.zBaseURL)/artifact/%S(zUuid)">raw-text</a> |
| 556 | @ </td> |
| 557 | @ </tr> |
| 558 | } |
| 559 | @ </table></p> |
| 560 | }else{ |
| @@ -755,11 +755,11 @@ | |
| 755 | @ Also file |
| 756 | }else{ |
| 757 | @ File |
| 758 | } |
| 759 | if( g.okHistory ){ |
| 760 | @ <a href="%s(g.zBaseURL)/finfo?name=%T(zName)">%h(zName)</a> |
| 761 | }else{ |
| 762 | @ %h(zName) |
| 763 | } |
| 764 | @ part of check-in |
| 765 | hyperlink_to_uuid(zVers); |
| @@ -790,11 +790,11 @@ | |
| 790 | @ Also wiki page |
| 791 | }else{ |
| 792 | @ Wiki page |
| 793 | } |
| 794 | if( g.okHistory ){ |
| 795 | @ [<a href="%s(g.zBaseURL)/wiki?name=%t(zPagename)">%h(zPagename)</a>] |
| 796 | }else{ |
| 797 | @ [%h(zPagename)] |
| 798 | } |
| 799 | @ by |
| 800 | hyperlink_to_user(zUser,zDate," on"); |
| @@ -892,11 +892,11 @@ | |
| 892 | @ Control artifact. |
| 893 | if( pDownloadName && blob_size(pDownloadName)==0 ){ |
| 894 | blob_appendf(pDownloadName, "%.10s.txt", zUuid); |
| 895 | } |
| 896 | }else if( linkToView && g.okHistory ){ |
| 897 | @ <a href="%s(g.zBaseURL)/artifact/%S(zUuid)">[view]</a> |
| 898 | } |
| 899 | } |
| 900 | |
| 901 | |
| 902 | /* |
| @@ -1166,11 +1166,11 @@ | |
| 1166 | if( zMime==0 ){ |
| 1167 | @ <pre> |
| 1168 | @ %h(blob_str(&content)) |
| 1169 | @ </pre> |
| 1170 | }else if( strncmp(zMime, "image/", 6)==0 ){ |
| 1171 | @ <img src="%s(g.zBaseURL)/raw?name=%s(zUuid)&m=%s(zMime)"></img> |
| 1172 | style_submenu_element("Hex","Hex", "%s/hexdump?name=%s", g.zTop, zUuid); |
| 1173 | }else{ |
| 1174 | @ <i>(file is %d(blob_size(&content)) bytes of binary data)</i> |
| 1175 | } |
| 1176 | @ </blockquote> |
| @@ -1566,11 +1566,11 @@ | |
| 1566 | @ <hr /> |
| 1567 | blob_reset(&suffix); |
| 1568 | } |
| 1569 | @ <p>Make changes to attributes of check-in |
| 1570 | @ [<a href="ci?name=%s(zUuid)">%s(zUuid)</a>]:</p> |
| 1571 | @ <form action="%s(g.zBaseURL)/ci_edit" method="post"><div> |
| 1572 | login_insert_csrf_secret(); |
| 1573 | @ <input type="hidden" name="r" value="%S(zUuid)" /> |
| 1574 | @ <table border="0" cellspacing="10"> |
| 1575 | |
| 1576 | @ <tr><td align="right" valign="top"><b>User:</b></td> |
| 1577 |
| --- src/info.c | |
| +++ src/info.c | |
| @@ -219,11 +219,11 @@ | |
| 219 | @ propagates to descendants |
| 220 | } |
| 221 | #if 0 |
| 222 | if( zValue && strcmp(zTagname,"branch")==0 ){ |
| 223 | @ |
| 224 | @ <a href="%s(g.zTop)/timeline?r=%T(zValue)">branch timeline</a> |
| 225 | } |
| 226 | #endif |
| 227 | } |
| 228 | if( zSrcUuid && zSrcUuid[0] ){ |
| 229 | if( tagtype==0 ){ |
| @@ -427,14 +427,14 @@ | |
| 427 | db_finalize(&q); |
| 428 | } |
| 429 | if( g.okHistory ){ |
| 430 | const char *zProjName = db_get("project-name", "unnamed"); |
| 431 | @ <tr><th>Timelines:</th><td> |
| 432 | @ <a href="%s(g.zTop)/timeline?f=%S(zUuid)">family</a> |
| 433 | @ | <a href="%s(g.zTop)/timeline?p=%S(zUuid)">ancestors</a> |
| 434 | @ | <a href="%s(g.zTop)/timeline?d=%S(zUuid)">descendants</a> |
| 435 | @ | <a href="%s(g.zTop)/timeline?d=%S(zUuid)&p=%S(zUuid)">both</a> |
| 436 | db_prepare(&q, "SELECT substr(tag.tagname,5) FROM tagxref, tag " |
| 437 | " WHERE rid=%d AND tagtype>0 " |
| 438 | " AND tag.tagid=tagxref.tagid " |
| 439 | " AND +tag.tagname GLOB 'sym-*'", rid); |
| 440 | while( db_step(&q)==SQLITE_ROW ){ |
| @@ -467,19 +467,19 @@ | |
| 467 | @ <div class="section">Changes</div> |
| 468 | showDiff = g.zPath[0]!='c'; |
| 469 | if( db_get_boolean("show-version-diffs", 0)==0 ){ |
| 470 | showDiff = !showDiff; |
| 471 | if( showDiff ){ |
| 472 | @ <a href="%s(g.zTop)/vinfo/%T(zName)">[hide diffs]</a><br/> |
| 473 | }else{ |
| 474 | @ <a href="%s(g.zTop)/ci/%T(zName)">[show diffs]</a><br/> |
| 475 | } |
| 476 | }else{ |
| 477 | if( showDiff ){ |
| 478 | @ <a href="%s(g.zTop)/ci/%T(zName)">[hide diffs]</a><br/> |
| 479 | }else{ |
| 480 | @ <a href="%s(g.zTop)/vinfo/%T(zName)">[show diffs]</a><br/> |
| 481 | } |
| 482 | } |
| 483 | db_prepare(&q, |
| 484 | "SELECT name," |
| 485 | " (SELECT uuid FROM blob WHERE rid=mlink.pid)," |
| @@ -549,12 +549,12 @@ | |
| 549 | @ <tr><th>Original User:</th><td> |
| 550 | hyperlink_to_user(zUser, zDate, "</td></tr>"); |
| 551 | if( g.okHistory ){ |
| 552 | @ <tr><th>Commands:</th> |
| 553 | @ <td> |
| 554 | @ <a href="%s(g.zTop)/whistory?name=%t(zName)">history</a> |
| 555 | @ | <a href="%s(g.zTop)/artifact/%S(zUuid)">raw-text</a> |
| 556 | @ </td> |
| 557 | @ </tr> |
| 558 | } |
| 559 | @ </table></p> |
| 560 | }else{ |
| @@ -755,11 +755,11 @@ | |
| 755 | @ Also file |
| 756 | }else{ |
| 757 | @ File |
| 758 | } |
| 759 | if( g.okHistory ){ |
| 760 | @ <a href="%s(g.zTop)/finfo?name=%T(zName)">%h(zName)</a> |
| 761 | }else{ |
| 762 | @ %h(zName) |
| 763 | } |
| 764 | @ part of check-in |
| 765 | hyperlink_to_uuid(zVers); |
| @@ -790,11 +790,11 @@ | |
| 790 | @ Also wiki page |
| 791 | }else{ |
| 792 | @ Wiki page |
| 793 | } |
| 794 | if( g.okHistory ){ |
| 795 | @ [<a href="%s(g.zTop)/wiki?name=%t(zPagename)">%h(zPagename)</a>] |
| 796 | }else{ |
| 797 | @ [%h(zPagename)] |
| 798 | } |
| 799 | @ by |
| 800 | hyperlink_to_user(zUser,zDate," on"); |
| @@ -892,11 +892,11 @@ | |
| 892 | @ Control artifact. |
| 893 | if( pDownloadName && blob_size(pDownloadName)==0 ){ |
| 894 | blob_appendf(pDownloadName, "%.10s.txt", zUuid); |
| 895 | } |
| 896 | }else if( linkToView && g.okHistory ){ |
| 897 | @ <a href="%s(g.zTop)/artifact/%S(zUuid)">[view]</a> |
| 898 | } |
| 899 | } |
| 900 | |
| 901 | |
| 902 | /* |
| @@ -1166,11 +1166,11 @@ | |
| 1166 | if( zMime==0 ){ |
| 1167 | @ <pre> |
| 1168 | @ %h(blob_str(&content)) |
| 1169 | @ </pre> |
| 1170 | }else if( strncmp(zMime, "image/", 6)==0 ){ |
| 1171 | @ <img src="%s(g.zTop)/raw?name=%s(zUuid)&m=%s(zMime)"></img> |
| 1172 | style_submenu_element("Hex","Hex", "%s/hexdump?name=%s", g.zTop, zUuid); |
| 1173 | }else{ |
| 1174 | @ <i>(file is %d(blob_size(&content)) bytes of binary data)</i> |
| 1175 | } |
| 1176 | @ </blockquote> |
| @@ -1566,11 +1566,11 @@ | |
| 1566 | @ <hr /> |
| 1567 | blob_reset(&suffix); |
| 1568 | } |
| 1569 | @ <p>Make changes to attributes of check-in |
| 1570 | @ [<a href="ci?name=%s(zUuid)">%s(zUuid)</a>]:</p> |
| 1571 | @ <form action="%s(g.zTop)/ci_edit" method="post"><div> |
| 1572 | login_insert_csrf_secret(); |
| 1573 | @ <input type="hidden" name="r" value="%S(zUuid)" /> |
| 1574 | @ <table border="0" cellspacing="10"> |
| 1575 | |
| 1576 | @ <tr><td align="right" valign="top"><b>User:</b></td> |
| 1577 |
+1
-1
| --- src/main.c | ||
| +++ src/main.c | ||
| @@ -731,11 +731,11 @@ | ||
| 731 | 731 | |
| 732 | 732 | /* |
| 733 | 733 | ** Send an HTTP redirect back to the designated Index Page. |
| 734 | 734 | */ |
| 735 | 735 | void fossil_redirect_home(void){ |
| 736 | - cgi_redirectf("%s%s", g.zBaseURL, db_get("index-page", "/index")); | |
| 736 | + cgi_redirectf("%s%s", g.zTop, db_get("index-page", "/index")); | |
| 737 | 737 | } |
| 738 | 738 | |
| 739 | 739 | /* |
| 740 | 740 | ** If running as root, chroot to the directory containing the |
| 741 | 741 | ** repository zRepo and then drop root privileges. Return the |
| 742 | 742 |
| --- src/main.c | |
| +++ src/main.c | |
| @@ -731,11 +731,11 @@ | |
| 731 | |
| 732 | /* |
| 733 | ** Send an HTTP redirect back to the designated Index Page. |
| 734 | */ |
| 735 | void fossil_redirect_home(void){ |
| 736 | cgi_redirectf("%s%s", g.zBaseURL, db_get("index-page", "/index")); |
| 737 | } |
| 738 | |
| 739 | /* |
| 740 | ** If running as root, chroot to the directory containing the |
| 741 | ** repository zRepo and then drop root privileges. Return the |
| 742 |
| --- src/main.c | |
| +++ src/main.c | |
| @@ -731,11 +731,11 @@ | |
| 731 | |
| 732 | /* |
| 733 | ** Send an HTTP redirect back to the designated Index Page. |
| 734 | */ |
| 735 | void fossil_redirect_home(void){ |
| 736 | cgi_redirectf("%s%s", g.zTop, db_get("index-page", "/index")); |
| 737 | } |
| 738 | |
| 739 | /* |
| 740 | ** If running as root, chroot to the directory containing the |
| 741 | ** repository zRepo and then drop root privileges. Return the |
| 742 |
+1
-1
| --- src/name.c | ||
| +++ src/name.c | ||
| @@ -337,11 +337,11 @@ | ||
| 337 | 337 | canonical16(z, strlen(z)); |
| 338 | 338 | db_prepare(&q, "SELECT uuid, rid FROM blob WHERE uuid GLOB '%q*'", z); |
| 339 | 339 | while( db_step(&q)==SQLITE_ROW ){ |
| 340 | 340 | const char *zUuid = db_column_text(&q, 0); |
| 341 | 341 | int rid = db_column_int(&q, 1); |
| 342 | - @ <li><p><a href="%s(g.zBaseURL)/%T(zSrc)/%S(zUuid)"> | |
| 342 | + @ <li><p><a href="%s(g.zTop)/%T(zSrc)/%S(zUuid)"> | |
| 343 | 343 | @ %S(zUuid)</a> - |
| 344 | 344 | object_description(rid, 0, 0); |
| 345 | 345 | @ </p></li> |
| 346 | 346 | } |
| 347 | 347 | @ </ol> |
| 348 | 348 |
| --- src/name.c | |
| +++ src/name.c | |
| @@ -337,11 +337,11 @@ | |
| 337 | canonical16(z, strlen(z)); |
| 338 | db_prepare(&q, "SELECT uuid, rid FROM blob WHERE uuid GLOB '%q*'", z); |
| 339 | while( db_step(&q)==SQLITE_ROW ){ |
| 340 | const char *zUuid = db_column_text(&q, 0); |
| 341 | int rid = db_column_int(&q, 1); |
| 342 | @ <li><p><a href="%s(g.zBaseURL)/%T(zSrc)/%S(zUuid)"> |
| 343 | @ %S(zUuid)</a> - |
| 344 | object_description(rid, 0, 0); |
| 345 | @ </p></li> |
| 346 | } |
| 347 | @ </ol> |
| 348 |
| --- src/name.c | |
| +++ src/name.c | |
| @@ -337,11 +337,11 @@ | |
| 337 | canonical16(z, strlen(z)); |
| 338 | db_prepare(&q, "SELECT uuid, rid FROM blob WHERE uuid GLOB '%q*'", z); |
| 339 | while( db_step(&q)==SQLITE_ROW ){ |
| 340 | const char *zUuid = db_column_text(&q, 0); |
| 341 | int rid = db_column_int(&q, 1); |
| 342 | @ <li><p><a href="%s(g.zTop)/%T(zSrc)/%S(zUuid)"> |
| 343 | @ %S(zUuid)</a> - |
| 344 | object_description(rid, 0, 0); |
| 345 | @ </p></li> |
| 346 | } |
| 347 | @ </ol> |
| 348 |
+8
-8
| --- src/setup.c | ||
| +++ src/setup.c | ||
| @@ -756,11 +756,11 @@ | ||
| 756 | 756 | login_needed(); |
| 757 | 757 | } |
| 758 | 758 | |
| 759 | 759 | style_header("Access Control Settings"); |
| 760 | 760 | db_begin_transaction(); |
| 761 | - @ <form action="%s(g.zBaseURL)/setup_access" method="post"><div> | |
| 761 | + @ <form action="%s(g.zTop)/setup_access" method="post"><div> | |
| 762 | 762 | login_insert_csrf_secret(); |
| 763 | 763 | @ <hr /> |
| 764 | 764 | onoff_attribute("Require password for local access", |
| 765 | 765 | "localauth", "localauth", 0); |
| 766 | 766 | @ <p>When enabled, the password sign-in is required for |
| @@ -818,11 +818,11 @@ | ||
| 818 | 818 | login_needed(); |
| 819 | 819 | } |
| 820 | 820 | |
| 821 | 821 | style_header("Timeline Display Preferences"); |
| 822 | 822 | db_begin_transaction(); |
| 823 | - @ <form action="%s(g.zBaseURL)/setup_timeline" method="post"><div> | |
| 823 | + @ <form action="%s(g.zTop)/setup_timeline" method="post"><div> | |
| 824 | 824 | login_insert_csrf_secret(); |
| 825 | 825 | |
| 826 | 826 | @ <hr /> |
| 827 | 827 | onoff_attribute("Allow block-markup in timeline", |
| 828 | 828 | "timeline-block-markup", "tbm", 0); |
| @@ -870,11 +870,11 @@ | ||
| 870 | 870 | style_header("Settings"); |
| 871 | 871 | db_begin_transaction(); |
| 872 | 872 | @ <p>This page provides a simple interface to the "fossil setting" command. |
| 873 | 873 | @ See the "fossil help setting" output below for further information on |
| 874 | 874 | @ the meaning of each setting.</p><hr /> |
| 875 | - @ <form action="%s(g.zBaseURL)/setup_settings" method="post"><div> | |
| 875 | + @ <form action="%s(g.zTop)/setup_settings" method="post"><div> | |
| 876 | 876 | @ <table border="0"><tr><td valign="top"> |
| 877 | 877 | login_insert_csrf_secret(); |
| 878 | 878 | for(pSet=ctrlSettings; pSet->name!=0; pSet++){ |
| 879 | 879 | if( pSet->width==0 ){ |
| 880 | 880 | onoff_attribute(pSet->name, pSet->name, |
| @@ -911,11 +911,11 @@ | ||
| 911 | 911 | login_needed(); |
| 912 | 912 | } |
| 913 | 913 | |
| 914 | 914 | style_header("WWW Configuration"); |
| 915 | 915 | db_begin_transaction(); |
| 916 | - @ <form action="%s(g.zBaseURL)/setup_config" method="post"><div> | |
| 916 | + @ <form action="%s(g.zTop)/setup_config" method="post"><div> | |
| 917 | 917 | login_insert_csrf_secret(); |
| 918 | 918 | @ <hr /> |
| 919 | 919 | entry_attribute("Project Name", 60, "project-name", "pn", ""); |
| 920 | 920 | @ <p>Give your project a name so visitors know what this site is about. |
| 921 | 921 | @ The project name will also be used as the RSS feed title.</p> |
| @@ -986,11 +986,11 @@ | ||
| 986 | 986 | if( P("submit")!=0 ){ |
| 987 | 987 | db_end_transaction(0); |
| 988 | 988 | cgi_redirect("setup_editcss"); |
| 989 | 989 | } |
| 990 | 990 | style_header("Edit CSS"); |
| 991 | - @ <form action="%s(g.zBaseURL)/setup_editcss" method="post"><div> | |
| 991 | + @ <form action="%s(g.zTop)/setup_editcss" method="post"><div> | |
| 992 | 992 | login_insert_csrf_secret(); |
| 993 | 993 | @ Edit the CSS below:<br /> |
| 994 | 994 | textarea_attribute("", 40, 80, "css", "css", zDefaultCSS); |
| 995 | 995 | @ <br /> |
| 996 | 996 | @ <input type="submit" name="submit" value="Apply Changes" /> |
| @@ -1024,11 +1024,11 @@ | ||
| 1024 | 1024 | cgi_replace_parameter("header", zDefaultHeader); |
| 1025 | 1025 | }else{ |
| 1026 | 1026 | textarea_attribute(0, 0, 0, "header", "header", zDefaultHeader); |
| 1027 | 1027 | } |
| 1028 | 1028 | style_header("Edit Page Header"); |
| 1029 | - @ <form action="%s(g.zBaseURL)/setup_header" method="post"><div> | |
| 1029 | + @ <form action="%s(g.zTop)/setup_header" method="post"><div> | |
| 1030 | 1030 | login_insert_csrf_secret(); |
| 1031 | 1031 | @ <p>Edit HTML text with embedded TH1 (a TCL dialect) that will be used to |
| 1032 | 1032 | @ generate the beginning of every page through start of the main |
| 1033 | 1033 | @ menu.</p> |
| 1034 | 1034 | textarea_attribute("", 40, 80, "header", "header", zDefaultHeader); |
| @@ -1062,11 +1062,11 @@ | ||
| 1062 | 1062 | cgi_replace_parameter("footer", zDefaultFooter); |
| 1063 | 1063 | }else{ |
| 1064 | 1064 | textarea_attribute(0, 0, 0, "footer", "footer", zDefaultFooter); |
| 1065 | 1065 | } |
| 1066 | 1066 | style_header("Edit Page Footer"); |
| 1067 | - @ <form action="%s(g.zBaseURL)/setup_footer" method="post"><div> | |
| 1067 | + @ <form action="%s(g.zTop)/setup_footer" method="post"><div> | |
| 1068 | 1068 | login_insert_csrf_secret(); |
| 1069 | 1069 | @ <p>Edit HTML text with embedded TH1 (a TCL dialect) that will be used to |
| 1070 | 1070 | @ generate the end of every page.</p> |
| 1071 | 1071 | textarea_attribute("", 20, 80, "footer", "footer", zDefaultFooter); |
| 1072 | 1072 | @ <br /> |
| @@ -1133,11 +1133,11 @@ | ||
| 1133 | 1133 | @ <a href="%s(g.zBaseURL)/logo">%s(g.zBaseURL)/logo</a>. |
| 1134 | 1134 | @ The logo may or may not appear on each |
| 1135 | 1135 | @ page depending on the <a href="setup_editcss">CSS</a> and |
| 1136 | 1136 | @ <a href="setup_header">header setup</a>.</p> |
| 1137 | 1137 | @ |
| 1138 | - @ <form action="%s(g.zBaseURL)/setup_logo" method="post" | |
| 1138 | + @ <form action="%s(g.zTop)/setup_logo" method="post" | |
| 1139 | 1139 | @ enctype="multipart/form-data"><div> |
| 1140 | 1140 | @ <p>To set a new logo image, select a file to use as the logo using |
| 1141 | 1141 | @ the entry box below and then press the "Change Logo" button.</p> |
| 1142 | 1142 | login_insert_csrf_secret(); |
| 1143 | 1143 | @ Logo Image file: |
| 1144 | 1144 |
| --- src/setup.c | |
| +++ src/setup.c | |
| @@ -756,11 +756,11 @@ | |
| 756 | login_needed(); |
| 757 | } |
| 758 | |
| 759 | style_header("Access Control Settings"); |
| 760 | db_begin_transaction(); |
| 761 | @ <form action="%s(g.zBaseURL)/setup_access" method="post"><div> |
| 762 | login_insert_csrf_secret(); |
| 763 | @ <hr /> |
| 764 | onoff_attribute("Require password for local access", |
| 765 | "localauth", "localauth", 0); |
| 766 | @ <p>When enabled, the password sign-in is required for |
| @@ -818,11 +818,11 @@ | |
| 818 | login_needed(); |
| 819 | } |
| 820 | |
| 821 | style_header("Timeline Display Preferences"); |
| 822 | db_begin_transaction(); |
| 823 | @ <form action="%s(g.zBaseURL)/setup_timeline" method="post"><div> |
| 824 | login_insert_csrf_secret(); |
| 825 | |
| 826 | @ <hr /> |
| 827 | onoff_attribute("Allow block-markup in timeline", |
| 828 | "timeline-block-markup", "tbm", 0); |
| @@ -870,11 +870,11 @@ | |
| 870 | style_header("Settings"); |
| 871 | db_begin_transaction(); |
| 872 | @ <p>This page provides a simple interface to the "fossil setting" command. |
| 873 | @ See the "fossil help setting" output below for further information on |
| 874 | @ the meaning of each setting.</p><hr /> |
| 875 | @ <form action="%s(g.zBaseURL)/setup_settings" method="post"><div> |
| 876 | @ <table border="0"><tr><td valign="top"> |
| 877 | login_insert_csrf_secret(); |
| 878 | for(pSet=ctrlSettings; pSet->name!=0; pSet++){ |
| 879 | if( pSet->width==0 ){ |
| 880 | onoff_attribute(pSet->name, pSet->name, |
| @@ -911,11 +911,11 @@ | |
| 911 | login_needed(); |
| 912 | } |
| 913 | |
| 914 | style_header("WWW Configuration"); |
| 915 | db_begin_transaction(); |
| 916 | @ <form action="%s(g.zBaseURL)/setup_config" method="post"><div> |
| 917 | login_insert_csrf_secret(); |
| 918 | @ <hr /> |
| 919 | entry_attribute("Project Name", 60, "project-name", "pn", ""); |
| 920 | @ <p>Give your project a name so visitors know what this site is about. |
| 921 | @ The project name will also be used as the RSS feed title.</p> |
| @@ -986,11 +986,11 @@ | |
| 986 | if( P("submit")!=0 ){ |
| 987 | db_end_transaction(0); |
| 988 | cgi_redirect("setup_editcss"); |
| 989 | } |
| 990 | style_header("Edit CSS"); |
| 991 | @ <form action="%s(g.zBaseURL)/setup_editcss" method="post"><div> |
| 992 | login_insert_csrf_secret(); |
| 993 | @ Edit the CSS below:<br /> |
| 994 | textarea_attribute("", 40, 80, "css", "css", zDefaultCSS); |
| 995 | @ <br /> |
| 996 | @ <input type="submit" name="submit" value="Apply Changes" /> |
| @@ -1024,11 +1024,11 @@ | |
| 1024 | cgi_replace_parameter("header", zDefaultHeader); |
| 1025 | }else{ |
| 1026 | textarea_attribute(0, 0, 0, "header", "header", zDefaultHeader); |
| 1027 | } |
| 1028 | style_header("Edit Page Header"); |
| 1029 | @ <form action="%s(g.zBaseURL)/setup_header" method="post"><div> |
| 1030 | login_insert_csrf_secret(); |
| 1031 | @ <p>Edit HTML text with embedded TH1 (a TCL dialect) that will be used to |
| 1032 | @ generate the beginning of every page through start of the main |
| 1033 | @ menu.</p> |
| 1034 | textarea_attribute("", 40, 80, "header", "header", zDefaultHeader); |
| @@ -1062,11 +1062,11 @@ | |
| 1062 | cgi_replace_parameter("footer", zDefaultFooter); |
| 1063 | }else{ |
| 1064 | textarea_attribute(0, 0, 0, "footer", "footer", zDefaultFooter); |
| 1065 | } |
| 1066 | style_header("Edit Page Footer"); |
| 1067 | @ <form action="%s(g.zBaseURL)/setup_footer" method="post"><div> |
| 1068 | login_insert_csrf_secret(); |
| 1069 | @ <p>Edit HTML text with embedded TH1 (a TCL dialect) that will be used to |
| 1070 | @ generate the end of every page.</p> |
| 1071 | textarea_attribute("", 20, 80, "footer", "footer", zDefaultFooter); |
| 1072 | @ <br /> |
| @@ -1133,11 +1133,11 @@ | |
| 1133 | @ <a href="%s(g.zBaseURL)/logo">%s(g.zBaseURL)/logo</a>. |
| 1134 | @ The logo may or may not appear on each |
| 1135 | @ page depending on the <a href="setup_editcss">CSS</a> and |
| 1136 | @ <a href="setup_header">header setup</a>.</p> |
| 1137 | @ |
| 1138 | @ <form action="%s(g.zBaseURL)/setup_logo" method="post" |
| 1139 | @ enctype="multipart/form-data"><div> |
| 1140 | @ <p>To set a new logo image, select a file to use as the logo using |
| 1141 | @ the entry box below and then press the "Change Logo" button.</p> |
| 1142 | login_insert_csrf_secret(); |
| 1143 | @ Logo Image file: |
| 1144 |
| --- src/setup.c | |
| +++ src/setup.c | |
| @@ -756,11 +756,11 @@ | |
| 756 | login_needed(); |
| 757 | } |
| 758 | |
| 759 | style_header("Access Control Settings"); |
| 760 | db_begin_transaction(); |
| 761 | @ <form action="%s(g.zTop)/setup_access" method="post"><div> |
| 762 | login_insert_csrf_secret(); |
| 763 | @ <hr /> |
| 764 | onoff_attribute("Require password for local access", |
| 765 | "localauth", "localauth", 0); |
| 766 | @ <p>When enabled, the password sign-in is required for |
| @@ -818,11 +818,11 @@ | |
| 818 | login_needed(); |
| 819 | } |
| 820 | |
| 821 | style_header("Timeline Display Preferences"); |
| 822 | db_begin_transaction(); |
| 823 | @ <form action="%s(g.zTop)/setup_timeline" method="post"><div> |
| 824 | login_insert_csrf_secret(); |
| 825 | |
| 826 | @ <hr /> |
| 827 | onoff_attribute("Allow block-markup in timeline", |
| 828 | "timeline-block-markup", "tbm", 0); |
| @@ -870,11 +870,11 @@ | |
| 870 | style_header("Settings"); |
| 871 | db_begin_transaction(); |
| 872 | @ <p>This page provides a simple interface to the "fossil setting" command. |
| 873 | @ See the "fossil help setting" output below for further information on |
| 874 | @ the meaning of each setting.</p><hr /> |
| 875 | @ <form action="%s(g.zTop)/setup_settings" method="post"><div> |
| 876 | @ <table border="0"><tr><td valign="top"> |
| 877 | login_insert_csrf_secret(); |
| 878 | for(pSet=ctrlSettings; pSet->name!=0; pSet++){ |
| 879 | if( pSet->width==0 ){ |
| 880 | onoff_attribute(pSet->name, pSet->name, |
| @@ -911,11 +911,11 @@ | |
| 911 | login_needed(); |
| 912 | } |
| 913 | |
| 914 | style_header("WWW Configuration"); |
| 915 | db_begin_transaction(); |
| 916 | @ <form action="%s(g.zTop)/setup_config" method="post"><div> |
| 917 | login_insert_csrf_secret(); |
| 918 | @ <hr /> |
| 919 | entry_attribute("Project Name", 60, "project-name", "pn", ""); |
| 920 | @ <p>Give your project a name so visitors know what this site is about. |
| 921 | @ The project name will also be used as the RSS feed title.</p> |
| @@ -986,11 +986,11 @@ | |
| 986 | if( P("submit")!=0 ){ |
| 987 | db_end_transaction(0); |
| 988 | cgi_redirect("setup_editcss"); |
| 989 | } |
| 990 | style_header("Edit CSS"); |
| 991 | @ <form action="%s(g.zTop)/setup_editcss" method="post"><div> |
| 992 | login_insert_csrf_secret(); |
| 993 | @ Edit the CSS below:<br /> |
| 994 | textarea_attribute("", 40, 80, "css", "css", zDefaultCSS); |
| 995 | @ <br /> |
| 996 | @ <input type="submit" name="submit" value="Apply Changes" /> |
| @@ -1024,11 +1024,11 @@ | |
| 1024 | cgi_replace_parameter("header", zDefaultHeader); |
| 1025 | }else{ |
| 1026 | textarea_attribute(0, 0, 0, "header", "header", zDefaultHeader); |
| 1027 | } |
| 1028 | style_header("Edit Page Header"); |
| 1029 | @ <form action="%s(g.zTop)/setup_header" method="post"><div> |
| 1030 | login_insert_csrf_secret(); |
| 1031 | @ <p>Edit HTML text with embedded TH1 (a TCL dialect) that will be used to |
| 1032 | @ generate the beginning of every page through start of the main |
| 1033 | @ menu.</p> |
| 1034 | textarea_attribute("", 40, 80, "header", "header", zDefaultHeader); |
| @@ -1062,11 +1062,11 @@ | |
| 1062 | cgi_replace_parameter("footer", zDefaultFooter); |
| 1063 | }else{ |
| 1064 | textarea_attribute(0, 0, 0, "footer", "footer", zDefaultFooter); |
| 1065 | } |
| 1066 | style_header("Edit Page Footer"); |
| 1067 | @ <form action="%s(g.zTop)/setup_footer" method="post"><div> |
| 1068 | login_insert_csrf_secret(); |
| 1069 | @ <p>Edit HTML text with embedded TH1 (a TCL dialect) that will be used to |
| 1070 | @ generate the end of every page.</p> |
| 1071 | textarea_attribute("", 20, 80, "footer", "footer", zDefaultFooter); |
| 1072 | @ <br /> |
| @@ -1133,11 +1133,11 @@ | |
| 1133 | @ <a href="%s(g.zBaseURL)/logo">%s(g.zBaseURL)/logo</a>. |
| 1134 | @ The logo may or may not appear on each |
| 1135 | @ page depending on the <a href="setup_editcss">CSS</a> and |
| 1136 | @ <a href="setup_header">header setup</a>.</p> |
| 1137 | @ |
| 1138 | @ <form action="%s(g.zTop)/setup_logo" method="post" |
| 1139 | @ enctype="multipart/form-data"><div> |
| 1140 | @ <p>To set a new logo image, select a file to use as the logo using |
| 1141 | @ the entry box below and then press the "Change Logo" button.</p> |
| 1142 | login_insert_csrf_secret(); |
| 1143 | @ Logo Image file: |
| 1144 |
+7
-7
| --- src/shun.c | ||
| +++ src/shun.c | ||
| @@ -70,11 +70,11 @@ | ||
| 70 | 70 | if( zUuid && P("sub") ){ |
| 71 | 71 | login_verify_csrf_secret(); |
| 72 | 72 | db_multi_exec("DELETE FROM shun WHERE uuid='%s'", zUuid); |
| 73 | 73 | if( db_exists("SELECT 1 FROM blob WHERE uuid='%s'", zUuid) ){ |
| 74 | 74 | @ <p class="noMoreShun">Artifact |
| 75 | - @ <a href="%s(g.zBaseURL)/artifact/%s(zUuid)">%s(zUuid)</a> is no | |
| 75 | + @ <a href="%s(g.zTop)/artifact/%s(zUuid)">%s(zUuid)</a> is no | |
| 76 | 76 | @ longer being shunned.</p> |
| 77 | 77 | }else{ |
| 78 | 78 | @ <p class="noMoreShun">Artifact %s(zUuid) will no longer |
| 79 | 79 | @ be shunned. But it does not exist in the repository. It |
| 80 | 80 | @ may be necessary to rebuild the repository using the |
| @@ -84,11 +84,11 @@ | ||
| 84 | 84 | } |
| 85 | 85 | if( zUuid && P("add") ){ |
| 86 | 86 | login_verify_csrf_secret(); |
| 87 | 87 | db_multi_exec("INSERT OR IGNORE INTO shun VALUES('%s')", zUuid); |
| 88 | 88 | @ <p class="shunned">Artifact |
| 89 | - @ <a href="%s(g.zBaseURL)/artifact/%s(zUuid)">%s(zUuid)</a> has been | |
| 89 | + @ <a href="%s(g.zTop)/artifact/%s(zUuid)">%s(zUuid)</a> has been | |
| 90 | 90 | @ shunned. It will no longer be pushed. |
| 91 | 91 | @ It will be removed from the repository the next time the respository |
| 92 | 92 | @ is rebuilt using the <b>fossil rebuild</b> command-line</p> |
| 93 | 93 | } |
| 94 | 94 | @ <p>A shunned artifact will not be pushed nor accepted in a pull and the |
| @@ -112,11 +112,11 @@ | ||
| 112 | 112 | @ or artifacts that by design or accident interfere with the processing |
| 113 | 113 | @ of the repository. Do not shun artifacts merely to remove them from |
| 114 | 114 | @ sight - set the "hidden" tag on such artifacts instead.</p> |
| 115 | 115 | @ |
| 116 | 116 | @ <blockquote> |
| 117 | - @ <form method="post" action="%s(g.zBaseURL)/%s(g.zPath)"><div> | |
| 117 | + @ <form method="post" action="%s(g.zTop)/%s(g.zPath)"><div> | |
| 118 | 118 | login_insert_csrf_secret(); |
| 119 | 119 | @ <input type="text" name="uuid" value="%h(PD("shun",""))" size="50" /> |
| 120 | 120 | @ <input type="submit" name="add" value="Shun" /> |
| 121 | 121 | @ </div></form> |
| 122 | 122 | @ </blockquote> |
| @@ -126,11 +126,11 @@ | ||
| 126 | 126 | @ restored because the content is unknown. The only change is that |
| 127 | 127 | @ the formerly shunned artifact will be accepted on subsequent sync |
| 128 | 128 | @ operations.</p> |
| 129 | 129 | @ |
| 130 | 130 | @ <blockquote> |
| 131 | - @ <form method="post" action="%s(g.zBaseURL)/%s(g.zPath)"><div> | |
| 131 | + @ <form method="post" action="%s(g.zTop)/%s(g.zPath)"><div> | |
| 132 | 132 | login_insert_csrf_secret(); |
| 133 | 133 | @ <input type="text" name="uuid" size="50" /> |
| 134 | 134 | @ <input type="submit" name="sub" value="Accept" /> |
| 135 | 135 | @ </div></form> |
| 136 | 136 | @ </blockquote> |
| @@ -139,11 +139,11 @@ | ||
| 139 | 139 | @ content of newly shunned artifacts is not purged until the repository |
| 140 | 140 | @ is rebuilt. On larger repositories, the rebuild may take minute or |
| 141 | 141 | @ two, so be patient after pressing the button.</p> |
| 142 | 142 | @ |
| 143 | 143 | @ <blockquote> |
| 144 | - @ <form method="post" action="%s(g.zBaseURL)/%s(g.zPath)"><div> | |
| 144 | + @ <form method="post" action="%s(g.zTop)/%s(g.zPath)"><div> | |
| 145 | 145 | login_insert_csrf_secret(); |
| 146 | 146 | @ <input type="submit" name="rebuild" value="Rebuild" /> |
| 147 | 147 | @ </div></form> |
| 148 | 148 | @ </blockquote> |
| 149 | 149 | @ |
| @@ -155,11 +155,11 @@ | ||
| 155 | 155 | while( db_step(&q)==SQLITE_ROW ){ |
| 156 | 156 | const char *zUuid = db_column_text(&q, 0); |
| 157 | 157 | int stillExists = db_column_int(&q, 1); |
| 158 | 158 | cnt++; |
| 159 | 159 | if( stillExists ){ |
| 160 | - @ <b><a href="%s(g.zBaseURL)/artifact/%s(zUuid)">%s(zUuid)</a></b><br /> | |
| 160 | + @ <b><a href="%s(g.zTop)/artifact/%s(zUuid)">%s(zUuid)</a></b><br /> | |
| 161 | 161 | }else{ |
| 162 | 162 | @ <b>%s(zUuid)</b><br /> |
| 163 | 163 | } |
| 164 | 164 | } |
| 165 | 165 | if( cnt==0 ){ |
| @@ -302,13 +302,13 @@ | ||
| 302 | 302 | @ <td valign="top"> |
| 303 | 303 | while( db_step(&q)==SQLITE_ROW ){ |
| 304 | 304 | int rid = db_column_int(&q, 0); |
| 305 | 305 | const char *zUuid = db_column_text(&q, 1); |
| 306 | 306 | int size = db_column_int(&q, 2); |
| 307 | - @ <a href="%s(g.zBaseURL)/info/%s(zUuid)">%s(zUuid)</a> | |
| 307 | + @ <a href="%s(g.zTop)/info/%s(zUuid)">%s(zUuid)</a> | |
| 308 | 308 | @ (rid: %d(rid), size: %d(size))<br /> |
| 309 | 309 | } |
| 310 | 310 | @ </td></tr> |
| 311 | 311 | @ </table> |
| 312 | 312 | db_finalize(&q); |
| 313 | 313 | style_footer(); |
| 314 | 314 | } |
| 315 | 315 |
| --- src/shun.c | |
| +++ src/shun.c | |
| @@ -70,11 +70,11 @@ | |
| 70 | if( zUuid && P("sub") ){ |
| 71 | login_verify_csrf_secret(); |
| 72 | db_multi_exec("DELETE FROM shun WHERE uuid='%s'", zUuid); |
| 73 | if( db_exists("SELECT 1 FROM blob WHERE uuid='%s'", zUuid) ){ |
| 74 | @ <p class="noMoreShun">Artifact |
| 75 | @ <a href="%s(g.zBaseURL)/artifact/%s(zUuid)">%s(zUuid)</a> is no |
| 76 | @ longer being shunned.</p> |
| 77 | }else{ |
| 78 | @ <p class="noMoreShun">Artifact %s(zUuid) will no longer |
| 79 | @ be shunned. But it does not exist in the repository. It |
| 80 | @ may be necessary to rebuild the repository using the |
| @@ -84,11 +84,11 @@ | |
| 84 | } |
| 85 | if( zUuid && P("add") ){ |
| 86 | login_verify_csrf_secret(); |
| 87 | db_multi_exec("INSERT OR IGNORE INTO shun VALUES('%s')", zUuid); |
| 88 | @ <p class="shunned">Artifact |
| 89 | @ <a href="%s(g.zBaseURL)/artifact/%s(zUuid)">%s(zUuid)</a> has been |
| 90 | @ shunned. It will no longer be pushed. |
| 91 | @ It will be removed from the repository the next time the respository |
| 92 | @ is rebuilt using the <b>fossil rebuild</b> command-line</p> |
| 93 | } |
| 94 | @ <p>A shunned artifact will not be pushed nor accepted in a pull and the |
| @@ -112,11 +112,11 @@ | |
| 112 | @ or artifacts that by design or accident interfere with the processing |
| 113 | @ of the repository. Do not shun artifacts merely to remove them from |
| 114 | @ sight - set the "hidden" tag on such artifacts instead.</p> |
| 115 | @ |
| 116 | @ <blockquote> |
| 117 | @ <form method="post" action="%s(g.zBaseURL)/%s(g.zPath)"><div> |
| 118 | login_insert_csrf_secret(); |
| 119 | @ <input type="text" name="uuid" value="%h(PD("shun",""))" size="50" /> |
| 120 | @ <input type="submit" name="add" value="Shun" /> |
| 121 | @ </div></form> |
| 122 | @ </blockquote> |
| @@ -126,11 +126,11 @@ | |
| 126 | @ restored because the content is unknown. The only change is that |
| 127 | @ the formerly shunned artifact will be accepted on subsequent sync |
| 128 | @ operations.</p> |
| 129 | @ |
| 130 | @ <blockquote> |
| 131 | @ <form method="post" action="%s(g.zBaseURL)/%s(g.zPath)"><div> |
| 132 | login_insert_csrf_secret(); |
| 133 | @ <input type="text" name="uuid" size="50" /> |
| 134 | @ <input type="submit" name="sub" value="Accept" /> |
| 135 | @ </div></form> |
| 136 | @ </blockquote> |
| @@ -139,11 +139,11 @@ | |
| 139 | @ content of newly shunned artifacts is not purged until the repository |
| 140 | @ is rebuilt. On larger repositories, the rebuild may take minute or |
| 141 | @ two, so be patient after pressing the button.</p> |
| 142 | @ |
| 143 | @ <blockquote> |
| 144 | @ <form method="post" action="%s(g.zBaseURL)/%s(g.zPath)"><div> |
| 145 | login_insert_csrf_secret(); |
| 146 | @ <input type="submit" name="rebuild" value="Rebuild" /> |
| 147 | @ </div></form> |
| 148 | @ </blockquote> |
| 149 | @ |
| @@ -155,11 +155,11 @@ | |
| 155 | while( db_step(&q)==SQLITE_ROW ){ |
| 156 | const char *zUuid = db_column_text(&q, 0); |
| 157 | int stillExists = db_column_int(&q, 1); |
| 158 | cnt++; |
| 159 | if( stillExists ){ |
| 160 | @ <b><a href="%s(g.zBaseURL)/artifact/%s(zUuid)">%s(zUuid)</a></b><br /> |
| 161 | }else{ |
| 162 | @ <b>%s(zUuid)</b><br /> |
| 163 | } |
| 164 | } |
| 165 | if( cnt==0 ){ |
| @@ -302,13 +302,13 @@ | |
| 302 | @ <td valign="top"> |
| 303 | while( db_step(&q)==SQLITE_ROW ){ |
| 304 | int rid = db_column_int(&q, 0); |
| 305 | const char *zUuid = db_column_text(&q, 1); |
| 306 | int size = db_column_int(&q, 2); |
| 307 | @ <a href="%s(g.zBaseURL)/info/%s(zUuid)">%s(zUuid)</a> |
| 308 | @ (rid: %d(rid), size: %d(size))<br /> |
| 309 | } |
| 310 | @ </td></tr> |
| 311 | @ </table> |
| 312 | db_finalize(&q); |
| 313 | style_footer(); |
| 314 | } |
| 315 |
| --- src/shun.c | |
| +++ src/shun.c | |
| @@ -70,11 +70,11 @@ | |
| 70 | if( zUuid && P("sub") ){ |
| 71 | login_verify_csrf_secret(); |
| 72 | db_multi_exec("DELETE FROM shun WHERE uuid='%s'", zUuid); |
| 73 | if( db_exists("SELECT 1 FROM blob WHERE uuid='%s'", zUuid) ){ |
| 74 | @ <p class="noMoreShun">Artifact |
| 75 | @ <a href="%s(g.zTop)/artifact/%s(zUuid)">%s(zUuid)</a> is no |
| 76 | @ longer being shunned.</p> |
| 77 | }else{ |
| 78 | @ <p class="noMoreShun">Artifact %s(zUuid) will no longer |
| 79 | @ be shunned. But it does not exist in the repository. It |
| 80 | @ may be necessary to rebuild the repository using the |
| @@ -84,11 +84,11 @@ | |
| 84 | } |
| 85 | if( zUuid && P("add") ){ |
| 86 | login_verify_csrf_secret(); |
| 87 | db_multi_exec("INSERT OR IGNORE INTO shun VALUES('%s')", zUuid); |
| 88 | @ <p class="shunned">Artifact |
| 89 | @ <a href="%s(g.zTop)/artifact/%s(zUuid)">%s(zUuid)</a> has been |
| 90 | @ shunned. It will no longer be pushed. |
| 91 | @ It will be removed from the repository the next time the respository |
| 92 | @ is rebuilt using the <b>fossil rebuild</b> command-line</p> |
| 93 | } |
| 94 | @ <p>A shunned artifact will not be pushed nor accepted in a pull and the |
| @@ -112,11 +112,11 @@ | |
| 112 | @ or artifacts that by design or accident interfere with the processing |
| 113 | @ of the repository. Do not shun artifacts merely to remove them from |
| 114 | @ sight - set the "hidden" tag on such artifacts instead.</p> |
| 115 | @ |
| 116 | @ <blockquote> |
| 117 | @ <form method="post" action="%s(g.zTop)/%s(g.zPath)"><div> |
| 118 | login_insert_csrf_secret(); |
| 119 | @ <input type="text" name="uuid" value="%h(PD("shun",""))" size="50" /> |
| 120 | @ <input type="submit" name="add" value="Shun" /> |
| 121 | @ </div></form> |
| 122 | @ </blockquote> |
| @@ -126,11 +126,11 @@ | |
| 126 | @ restored because the content is unknown. The only change is that |
| 127 | @ the formerly shunned artifact will be accepted on subsequent sync |
| 128 | @ operations.</p> |
| 129 | @ |
| 130 | @ <blockquote> |
| 131 | @ <form method="post" action="%s(g.zTop)/%s(g.zPath)"><div> |
| 132 | login_insert_csrf_secret(); |
| 133 | @ <input type="text" name="uuid" size="50" /> |
| 134 | @ <input type="submit" name="sub" value="Accept" /> |
| 135 | @ </div></form> |
| 136 | @ </blockquote> |
| @@ -139,11 +139,11 @@ | |
| 139 | @ content of newly shunned artifacts is not purged until the repository |
| 140 | @ is rebuilt. On larger repositories, the rebuild may take minute or |
| 141 | @ two, so be patient after pressing the button.</p> |
| 142 | @ |
| 143 | @ <blockquote> |
| 144 | @ <form method="post" action="%s(g.zTop)/%s(g.zPath)"><div> |
| 145 | login_insert_csrf_secret(); |
| 146 | @ <input type="submit" name="rebuild" value="Rebuild" /> |
| 147 | @ </div></form> |
| 148 | @ </blockquote> |
| 149 | @ |
| @@ -155,11 +155,11 @@ | |
| 155 | while( db_step(&q)==SQLITE_ROW ){ |
| 156 | const char *zUuid = db_column_text(&q, 0); |
| 157 | int stillExists = db_column_int(&q, 1); |
| 158 | cnt++; |
| 159 | if( stillExists ){ |
| 160 | @ <b><a href="%s(g.zTop)/artifact/%s(zUuid)">%s(zUuid)</a></b><br /> |
| 161 | }else{ |
| 162 | @ <b>%s(zUuid)</b><br /> |
| 163 | } |
| 164 | } |
| 165 | if( cnt==0 ){ |
| @@ -302,13 +302,13 @@ | |
| 302 | @ <td valign="top"> |
| 303 | while( db_step(&q)==SQLITE_ROW ){ |
| 304 | int rid = db_column_int(&q, 0); |
| 305 | const char *zUuid = db_column_text(&q, 1); |
| 306 | int size = db_column_int(&q, 2); |
| 307 | @ <a href="%s(g.zTop)/info/%s(zUuid)">%s(zUuid)</a> |
| 308 | @ (rid: %d(rid), size: %d(size))<br /> |
| 309 | } |
| 310 | @ </td></tr> |
| 311 | @ </table> |
| 312 | db_finalize(&q); |
| 313 | style_footer(); |
| 314 | } |
| 315 |
+44
-44
| --- src/skins.c | ||
| +++ src/skins.c | ||
| @@ -156,18 +156,18 @@ | ||
| 156 | 156 | @ }'); |
| 157 | 157 | @ REPLACE INTO config VALUES('header','<html> |
| 158 | 158 | @ <head> |
| 159 | 159 | @ <title>$<project_name>: $<title></title> |
| 160 | 160 | @ <link rel="alternate" type="application/rss+xml" title="RSS Feed" |
| 161 | -@ href="$baseurl/timeline.rss"> | |
| 162 | -@ <link rel="stylesheet" href="$baseurl/style.css?blackwhite" type="text/css" | |
| 161 | +@ href="$home/timeline.rss"> | |
| 162 | +@ <link rel="stylesheet" href="$home/style.css?blackwhite" type="text/css" | |
| 163 | 163 | @ media="screen"> |
| 164 | 164 | @ </head> |
| 165 | 165 | @ <body> |
| 166 | 166 | @ <div class="header"> |
| 167 | 167 | @ <div class="logo"> |
| 168 | -@ <img src="$baseurl/logo" alt="logo"> | |
| 168 | +@ <img src="$home/logo" alt="logo"> | |
| 169 | 169 | @ </div> |
| 170 | 170 | @ <div class="title"><small>$<project_name></small><br />$<title></div> |
| 171 | 171 | @ <div class="status"><nobr><th1> |
| 172 | 172 | @ if {[info exists login]} { |
| 173 | 173 | @ puts "Logged in as $login" |
| @@ -175,36 +175,36 @@ | ||
| 175 | 175 | @ puts "Not logged in" |
| 176 | 176 | @ } |
| 177 | 177 | @ </th1></nobr></div> |
| 178 | 178 | @ </div> |
| 179 | 179 | @ <div class="mainmenu"><th1> |
| 180 | -@ html "<a href=''$baseurl$index_page''>Home</a> " | |
| 180 | +@ html "<a href=''$home$index_page''>Home</a> " | |
| 181 | 181 | @ if {[anycap jor]} { |
| 182 | -@ html "<a href=''$baseurl/timeline''>Timeline</a> " | |
| 182 | +@ html "<a href=''$home/timeline''>Timeline</a> " | |
| 183 | 183 | @ } |
| 184 | 184 | @ if {[hascap oh]} { |
| 185 | -@ html "<a href=''$baseurl/dir?ci=tip''>Files</a> " | |
| 185 | +@ html "<a href=''$home/dir?ci=tip''>Files</a> " | |
| 186 | 186 | @ } |
| 187 | 187 | @ if {[hascap o]} { |
| 188 | -@ html "<a href=''$baseurl/brlist''>Branches</a> " | |
| 189 | -@ html "<a href=''$baseurl/taglist''>Tags</a> " | |
| 188 | +@ html "<a href=''$home/brlist''>Branches</a> " | |
| 189 | +@ html "<a href=''$home/taglist''>Tags</a> " | |
| 190 | 190 | @ } |
| 191 | 191 | @ if {[hascap r]} { |
| 192 | -@ html "<a href=''$baseurl/reportlist''>Tickets</a> " | |
| 192 | +@ html "<a href=''$home/reportlist''>Tickets</a> " | |
| 193 | 193 | @ } |
| 194 | 194 | @ if {[hascap j]} { |
| 195 | -@ html "<a href=''$baseurl/wiki''>Wiki</a> " | |
| 195 | +@ html "<a href=''$home/wiki''>Wiki</a> " | |
| 196 | 196 | @ } |
| 197 | 197 | @ if {[hascap s]} { |
| 198 | -@ html "<a href=''$baseurl/setup''>Admin</a> " | |
| 198 | +@ html "<a href=''$home/setup''>Admin</a> " | |
| 199 | 199 | @ } elseif {[hascap a]} { |
| 200 | -@ html "<a href=''$baseurl/setup_ulist''>Users</a> " | |
| 200 | +@ html "<a href=''$home/setup_ulist''>Users</a> " | |
| 201 | 201 | @ } |
| 202 | 202 | @ if {[info exists login]} { |
| 203 | -@ html "<a href=''$baseurl/login''>Logout</a> " | |
| 203 | +@ html "<a href=''$home/login''>Logout</a> " | |
| 204 | 204 | @ } else { |
| 205 | -@ html "<a href=''$baseurl/login''>Login</a> " | |
| 205 | +@ html "<a href=''$home/login''>Login</a> " | |
| 206 | 206 | @ } |
| 207 | 207 | @ </th1></div> |
| 208 | 208 | @ '); |
| 209 | 209 | @ REPLACE INTO config VALUES('footer','<div class="footer"> |
| 210 | 210 | @ Fossil version $manifest_version $manifest_date |
| @@ -358,12 +358,12 @@ | ||
| 358 | 358 | @ '); |
| 359 | 359 | @ REPLACE INTO config VALUES('header','<html> |
| 360 | 360 | @ <head> |
| 361 | 361 | @ <title>$<project_name>: $<title></title> |
| 362 | 362 | @ <link rel="alternate" type="application/rss+xml" title="RSS Feed" |
| 363 | -@ href="$baseurl/timeline.rss"> | |
| 364 | -@ <link rel="stylesheet" href="$baseurl/style.css?tan" type="text/css" | |
| 363 | +@ href="$home/timeline.rss"> | |
| 364 | +@ <link rel="stylesheet" href="$home/style.css?tan" type="text/css" | |
| 365 | 365 | @ media="screen"> |
| 366 | 366 | @ </head> |
| 367 | 367 | @ <body> |
| 368 | 368 | @ <div class="header"> |
| 369 | 369 | @ <div class="title">$<title></div> |
| @@ -376,36 +376,36 @@ | ||
| 376 | 376 | @ puts "Not logged in" |
| 377 | 377 | @ } |
| 378 | 378 | @ </th1></nobr></div> |
| 379 | 379 | @ </div> |
| 380 | 380 | @ <div class="mainmenu"><th1> |
| 381 | -@ html "<a href=''$baseurl$index_page''>Home</a> " | |
| 381 | +@ html "<a href=''$home$index_page''>Home</a> " | |
| 382 | 382 | @ if {[anycap jor]} { |
| 383 | -@ html "<a href=''$baseurl/timeline''>Timeline</a> " | |
| 383 | +@ html "<a href=''$home/timeline''>Timeline</a> " | |
| 384 | 384 | @ } |
| 385 | 385 | @ if {[hascap oh]} { |
| 386 | -@ html "<a href=''$baseurl/dir?ci=tip''>Files</a> " | |
| 386 | +@ html "<a href=''$home/dir?ci=tip''>Files</a> " | |
| 387 | 387 | @ } |
| 388 | 388 | @ if {[hascap o]} { |
| 389 | -@ html "<a href=''$baseurl/brlist''>Branches</a> " | |
| 390 | -@ html "<a href=''$baseurl/taglist''>Tags</a> " | |
| 389 | +@ html "<a href=''$home/brlist''>Branches</a> " | |
| 390 | +@ html "<a href=''$home/taglist''>Tags</a> " | |
| 391 | 391 | @ } |
| 392 | 392 | @ if {[hascap r]} { |
| 393 | -@ html "<a href=''$baseurl/reportlist''>Tickets</a> " | |
| 393 | +@ html "<a href=''$home/reportlist''>Tickets</a> " | |
| 394 | 394 | @ } |
| 395 | 395 | @ if {[hascap j]} { |
| 396 | -@ html "<a href=''$baseurl/wiki''>Wiki</a> " | |
| 396 | +@ html "<a href=''$home/wiki''>Wiki</a> " | |
| 397 | 397 | @ } |
| 398 | 398 | @ if {[hascap s]} { |
| 399 | -@ html "<a href=''$baseurl/setup''>Admin</a> " | |
| 399 | +@ html "<a href=''$home/setup''>Admin</a> " | |
| 400 | 400 | @ } elseif {[hascap a]} { |
| 401 | -@ html "<a href=''$baseurl/setup_ulist''>Users</a> " | |
| 401 | +@ html "<a href=''$home/setup_ulist''>Users</a> " | |
| 402 | 402 | @ } |
| 403 | 403 | @ if {[info exists login]} { |
| 404 | -@ html "<a href=''$baseurl/login''>Logout</a> " | |
| 404 | +@ html "<a href=''$home/login''>Logout</a> " | |
| 405 | 405 | @ } else { |
| 406 | -@ html "<a href=''$baseurl/login''>Login</a> " | |
| 406 | +@ html "<a href=''$home/login''>Login</a> " | |
| 407 | 407 | @ } |
| 408 | 408 | @ </th1></div> |
| 409 | 409 | @ '); |
| 410 | 410 | @ REPLACE INTO config VALUES('footer','<div class="footer"> |
| 411 | 411 | @ Fossil version $manifest_version $manifest_date |
| @@ -590,18 +590,18 @@ | ||
| 590 | 590 | @ }'); |
| 591 | 591 | @ REPLACE INTO config VALUES('header','<html> |
| 592 | 592 | @ <head> |
| 593 | 593 | @ <title>$<project_name>: $<title></title> |
| 594 | 594 | @ <link rel="alternate" type="application/rss+xml" title="RSS Feed" |
| 595 | -@ href="$baseurl/timeline.rss"> | |
| 596 | -@ <link rel="stylesheet" href="$baseurl/style.css?black2" type="text/css" | |
| 595 | +@ href="$home/timeline.rss"> | |
| 596 | +@ <link rel="stylesheet" href="$home/style.css?black2" type="text/css" | |
| 597 | 597 | @ media="screen"> |
| 598 | 598 | @ </head> |
| 599 | 599 | @ <body> |
| 600 | 600 | @ <div class="header"> |
| 601 | 601 | @ <div class="logo"> |
| 602 | -@ <!-- <img src="$baseurl/logo" alt="logo"> --> | |
| 602 | +@ <!-- <img src="$home/logo" alt="logo"> --> | |
| 603 | 603 | @ <br /><nobr>$<project_name></nobr> |
| 604 | 604 | @ </div> |
| 605 | 605 | @ <div class="title">$<title></div> |
| 606 | 606 | @ <div class="status"><nobr><th1> |
| 607 | 607 | @ if {[info exists login]} { |
| @@ -610,36 +610,36 @@ | ||
| 610 | 610 | @ puts "Not logged in" |
| 611 | 611 | @ } |
| 612 | 612 | @ </th1></nobr></div> |
| 613 | 613 | @ </div> |
| 614 | 614 | @ <div class="mainmenu"><ul><th1> |
| 615 | -@ html "<li><a href=''$baseurl$index_page''>Home</a></li>" | |
| 615 | +@ html "<li><a href=''$home$index_page''>Home</a></li>" | |
| 616 | 616 | @ if {[anycap jor]} { |
| 617 | -@ html "<li><a href=''$baseurl/timeline''>Timeline</a></li>" | |
| 617 | +@ html "<li><a href=''$home/timeline''>Timeline</a></li>" | |
| 618 | 618 | @ } |
| 619 | 619 | @ if {[hascap oh]} { |
| 620 | -@ html "<li><a href=''$baseurl/dir?ci=tip''>Files</a></li>" | |
| 620 | +@ html "<li><a href=''$home/dir?ci=tip''>Files</a></li>" | |
| 621 | 621 | @ } |
| 622 | 622 | @ if {[hascap o]} { |
| 623 | -@ html "<li><a href=''$baseurl/brlist''>Branches</a></li>" | |
| 624 | -@ html "<li><a href=''$baseurl/taglist''>Tags</a></li>" | |
| 623 | +@ html "<li><a href=''$home/brlist''>Branches</a></li>" | |
| 624 | +@ html "<li><a href=''$home/taglist''>Tags</a></li>" | |
| 625 | 625 | @ } |
| 626 | 626 | @ if {[hascap r]} { |
| 627 | -@ html "<li><a href=''$baseurl/reportlist''>Tickets</a></li>" | |
| 627 | +@ html "<li><a href=''$home/reportlist''>Tickets</a></li>" | |
| 628 | 628 | @ } |
| 629 | 629 | @ if {[hascap j]} { |
| 630 | -@ html "<li><a href=''$baseurl/wiki''>Wiki</a></li>" | |
| 630 | +@ html "<li><a href=''$home/wiki''>Wiki</a></li>" | |
| 631 | 631 | @ } |
| 632 | 632 | @ if {[hascap s]} { |
| 633 | -@ html "<li><a href=''$baseurl/setup''>Admin</a></li>" | |
| 633 | +@ html "<li><a href=''$home/setup''>Admin</a></li>" | |
| 634 | 634 | @ } elseif {[hascap a]} { |
| 635 | -@ html "<li><a href=''$baseurl/setup_ulist''>Users</a></li>" | |
| 635 | +@ html "<li><a href=''$home/setup_ulist''>Users</a></li>" | |
| 636 | 636 | @ } |
| 637 | 637 | @ if {[info exists login]} { |
| 638 | -@ html "<li><a href=''$baseurl/login''>Logout</a></li>" | |
| 638 | +@ html "<li><a href=''$home/login''>Logout</a></li>" | |
| 639 | 639 | @ } else { |
| 640 | -@ html "<li><a href=''$baseurl/login''>Login</a></li>" | |
| 640 | +@ html "<li><a href=''$home/login''>Login</a></li>" | |
| 641 | 641 | @ } |
| 642 | 642 | @ </th1></ul></div> |
| 643 | 643 | @ <div id="container"> |
| 644 | 644 | @ '); |
| 645 | 645 | @ REPLACE INTO config VALUES('footer','</div> |
| @@ -728,11 +728,11 @@ | ||
| 728 | 728 | db_begin_transaction(); |
| 729 | 729 | |
| 730 | 730 | /* Process requests to delete a user-defined skin */ |
| 731 | 731 | if( P("del1") && (zName = skinVarName(P("sn"), 1))!=0 ){ |
| 732 | 732 | style_header("Confirm Custom Skin Delete"); |
| 733 | - @ <form action="%s(g.zBaseURL)/setup_skin" method="post"><div> | |
| 733 | + @ <form action="%s(g.zTop)/setup_skin" method="post"><div> | |
| 734 | 734 | @ <p>Deletion of a custom skin is a permanent action that cannot |
| 735 | 735 | @ be undone. Please confirm that this is what you want to do:</p> |
| 736 | 736 | @ <input type="hidden" name="sn" value="%h(P("sn"))" /> |
| 737 | 737 | @ <input type="submit" name="del2" value="Confirm - Delete The Skin" /> |
| 738 | 738 | @ <input type="submit" name="cancel" value="Cancel - Do Not Delete" /> |
| @@ -809,11 +809,11 @@ | ||
| 809 | 809 | for(i=0; i<sizeof(aBuiltinSkin)/sizeof(aBuiltinSkin[0]); i++){ |
| 810 | 810 | z = aBuiltinSkin[i].zName; |
| 811 | 811 | if( strcmp(aBuiltinSkin[i].zValue, zCurrent)==0 ){ |
| 812 | 812 | @ <li><p>%h(z). <b>Currently In Use</b></p> |
| 813 | 813 | }else{ |
| 814 | - @ <li><form action="%s(g.zBaseURL)/setup_skin" method="post"><div> | |
| 814 | + @ <li><form action="%s(g.zTop)/setup_skin" method="post"><div> | |
| 815 | 815 | @ %h(z). |
| 816 | 816 | @ <input type="hidden" name="sn" value="%h(z)" /> |
| 817 | 817 | @ <input type="submit" name="load" value="Use This Skin" /> |
| 818 | 818 | @ </div></form></li> |
| 819 | 819 | } |
| @@ -827,11 +827,11 @@ | ||
| 827 | 827 | const char *zN = db_column_text(&q, 0); |
| 828 | 828 | const char *zV = db_column_text(&q, 1); |
| 829 | 829 | if( strcmp(zV, zCurrent)==0 ){ |
| 830 | 830 | @ <li><p>%h(zN). <b>Currently In Use</b></p> |
| 831 | 831 | }else{ |
| 832 | - @ <li><form action="%s(g.zBaseURL)/setup_skin" method="post"> | |
| 832 | + @ <li><form action="%s(g.zTop)/setup_skin" method="post"> | |
| 833 | 833 | @ %h(zN). |
| 834 | 834 | @ <input type="hidden" name="sn" value="%h(zN)"> |
| 835 | 835 | @ <input type="submit" name="load" value="Use This Skin"> |
| 836 | 836 | @ <input type="submit" name="del1" value="Delete This Skin"> |
| 837 | 837 | @ </form></li> |
| 838 | 838 |
| --- src/skins.c | |
| +++ src/skins.c | |
| @@ -156,18 +156,18 @@ | |
| 156 | @ }'); |
| 157 | @ REPLACE INTO config VALUES('header','<html> |
| 158 | @ <head> |
| 159 | @ <title>$<project_name>: $<title></title> |
| 160 | @ <link rel="alternate" type="application/rss+xml" title="RSS Feed" |
| 161 | @ href="$baseurl/timeline.rss"> |
| 162 | @ <link rel="stylesheet" href="$baseurl/style.css?blackwhite" type="text/css" |
| 163 | @ media="screen"> |
| 164 | @ </head> |
| 165 | @ <body> |
| 166 | @ <div class="header"> |
| 167 | @ <div class="logo"> |
| 168 | @ <img src="$baseurl/logo" alt="logo"> |
| 169 | @ </div> |
| 170 | @ <div class="title"><small>$<project_name></small><br />$<title></div> |
| 171 | @ <div class="status"><nobr><th1> |
| 172 | @ if {[info exists login]} { |
| 173 | @ puts "Logged in as $login" |
| @@ -175,36 +175,36 @@ | |
| 175 | @ puts "Not logged in" |
| 176 | @ } |
| 177 | @ </th1></nobr></div> |
| 178 | @ </div> |
| 179 | @ <div class="mainmenu"><th1> |
| 180 | @ html "<a href=''$baseurl$index_page''>Home</a> " |
| 181 | @ if {[anycap jor]} { |
| 182 | @ html "<a href=''$baseurl/timeline''>Timeline</a> " |
| 183 | @ } |
| 184 | @ if {[hascap oh]} { |
| 185 | @ html "<a href=''$baseurl/dir?ci=tip''>Files</a> " |
| 186 | @ } |
| 187 | @ if {[hascap o]} { |
| 188 | @ html "<a href=''$baseurl/brlist''>Branches</a> " |
| 189 | @ html "<a href=''$baseurl/taglist''>Tags</a> " |
| 190 | @ } |
| 191 | @ if {[hascap r]} { |
| 192 | @ html "<a href=''$baseurl/reportlist''>Tickets</a> " |
| 193 | @ } |
| 194 | @ if {[hascap j]} { |
| 195 | @ html "<a href=''$baseurl/wiki''>Wiki</a> " |
| 196 | @ } |
| 197 | @ if {[hascap s]} { |
| 198 | @ html "<a href=''$baseurl/setup''>Admin</a> " |
| 199 | @ } elseif {[hascap a]} { |
| 200 | @ html "<a href=''$baseurl/setup_ulist''>Users</a> " |
| 201 | @ } |
| 202 | @ if {[info exists login]} { |
| 203 | @ html "<a href=''$baseurl/login''>Logout</a> " |
| 204 | @ } else { |
| 205 | @ html "<a href=''$baseurl/login''>Login</a> " |
| 206 | @ } |
| 207 | @ </th1></div> |
| 208 | @ '); |
| 209 | @ REPLACE INTO config VALUES('footer','<div class="footer"> |
| 210 | @ Fossil version $manifest_version $manifest_date |
| @@ -358,12 +358,12 @@ | |
| 358 | @ '); |
| 359 | @ REPLACE INTO config VALUES('header','<html> |
| 360 | @ <head> |
| 361 | @ <title>$<project_name>: $<title></title> |
| 362 | @ <link rel="alternate" type="application/rss+xml" title="RSS Feed" |
| 363 | @ href="$baseurl/timeline.rss"> |
| 364 | @ <link rel="stylesheet" href="$baseurl/style.css?tan" type="text/css" |
| 365 | @ media="screen"> |
| 366 | @ </head> |
| 367 | @ <body> |
| 368 | @ <div class="header"> |
| 369 | @ <div class="title">$<title></div> |
| @@ -376,36 +376,36 @@ | |
| 376 | @ puts "Not logged in" |
| 377 | @ } |
| 378 | @ </th1></nobr></div> |
| 379 | @ </div> |
| 380 | @ <div class="mainmenu"><th1> |
| 381 | @ html "<a href=''$baseurl$index_page''>Home</a> " |
| 382 | @ if {[anycap jor]} { |
| 383 | @ html "<a href=''$baseurl/timeline''>Timeline</a> " |
| 384 | @ } |
| 385 | @ if {[hascap oh]} { |
| 386 | @ html "<a href=''$baseurl/dir?ci=tip''>Files</a> " |
| 387 | @ } |
| 388 | @ if {[hascap o]} { |
| 389 | @ html "<a href=''$baseurl/brlist''>Branches</a> " |
| 390 | @ html "<a href=''$baseurl/taglist''>Tags</a> " |
| 391 | @ } |
| 392 | @ if {[hascap r]} { |
| 393 | @ html "<a href=''$baseurl/reportlist''>Tickets</a> " |
| 394 | @ } |
| 395 | @ if {[hascap j]} { |
| 396 | @ html "<a href=''$baseurl/wiki''>Wiki</a> " |
| 397 | @ } |
| 398 | @ if {[hascap s]} { |
| 399 | @ html "<a href=''$baseurl/setup''>Admin</a> " |
| 400 | @ } elseif {[hascap a]} { |
| 401 | @ html "<a href=''$baseurl/setup_ulist''>Users</a> " |
| 402 | @ } |
| 403 | @ if {[info exists login]} { |
| 404 | @ html "<a href=''$baseurl/login''>Logout</a> " |
| 405 | @ } else { |
| 406 | @ html "<a href=''$baseurl/login''>Login</a> " |
| 407 | @ } |
| 408 | @ </th1></div> |
| 409 | @ '); |
| 410 | @ REPLACE INTO config VALUES('footer','<div class="footer"> |
| 411 | @ Fossil version $manifest_version $manifest_date |
| @@ -590,18 +590,18 @@ | |
| 590 | @ }'); |
| 591 | @ REPLACE INTO config VALUES('header','<html> |
| 592 | @ <head> |
| 593 | @ <title>$<project_name>: $<title></title> |
| 594 | @ <link rel="alternate" type="application/rss+xml" title="RSS Feed" |
| 595 | @ href="$baseurl/timeline.rss"> |
| 596 | @ <link rel="stylesheet" href="$baseurl/style.css?black2" type="text/css" |
| 597 | @ media="screen"> |
| 598 | @ </head> |
| 599 | @ <body> |
| 600 | @ <div class="header"> |
| 601 | @ <div class="logo"> |
| 602 | @ <!-- <img src="$baseurl/logo" alt="logo"> --> |
| 603 | @ <br /><nobr>$<project_name></nobr> |
| 604 | @ </div> |
| 605 | @ <div class="title">$<title></div> |
| 606 | @ <div class="status"><nobr><th1> |
| 607 | @ if {[info exists login]} { |
| @@ -610,36 +610,36 @@ | |
| 610 | @ puts "Not logged in" |
| 611 | @ } |
| 612 | @ </th1></nobr></div> |
| 613 | @ </div> |
| 614 | @ <div class="mainmenu"><ul><th1> |
| 615 | @ html "<li><a href=''$baseurl$index_page''>Home</a></li>" |
| 616 | @ if {[anycap jor]} { |
| 617 | @ html "<li><a href=''$baseurl/timeline''>Timeline</a></li>" |
| 618 | @ } |
| 619 | @ if {[hascap oh]} { |
| 620 | @ html "<li><a href=''$baseurl/dir?ci=tip''>Files</a></li>" |
| 621 | @ } |
| 622 | @ if {[hascap o]} { |
| 623 | @ html "<li><a href=''$baseurl/brlist''>Branches</a></li>" |
| 624 | @ html "<li><a href=''$baseurl/taglist''>Tags</a></li>" |
| 625 | @ } |
| 626 | @ if {[hascap r]} { |
| 627 | @ html "<li><a href=''$baseurl/reportlist''>Tickets</a></li>" |
| 628 | @ } |
| 629 | @ if {[hascap j]} { |
| 630 | @ html "<li><a href=''$baseurl/wiki''>Wiki</a></li>" |
| 631 | @ } |
| 632 | @ if {[hascap s]} { |
| 633 | @ html "<li><a href=''$baseurl/setup''>Admin</a></li>" |
| 634 | @ } elseif {[hascap a]} { |
| 635 | @ html "<li><a href=''$baseurl/setup_ulist''>Users</a></li>" |
| 636 | @ } |
| 637 | @ if {[info exists login]} { |
| 638 | @ html "<li><a href=''$baseurl/login''>Logout</a></li>" |
| 639 | @ } else { |
| 640 | @ html "<li><a href=''$baseurl/login''>Login</a></li>" |
| 641 | @ } |
| 642 | @ </th1></ul></div> |
| 643 | @ <div id="container"> |
| 644 | @ '); |
| 645 | @ REPLACE INTO config VALUES('footer','</div> |
| @@ -728,11 +728,11 @@ | |
| 728 | db_begin_transaction(); |
| 729 | |
| 730 | /* Process requests to delete a user-defined skin */ |
| 731 | if( P("del1") && (zName = skinVarName(P("sn"), 1))!=0 ){ |
| 732 | style_header("Confirm Custom Skin Delete"); |
| 733 | @ <form action="%s(g.zBaseURL)/setup_skin" method="post"><div> |
| 734 | @ <p>Deletion of a custom skin is a permanent action that cannot |
| 735 | @ be undone. Please confirm that this is what you want to do:</p> |
| 736 | @ <input type="hidden" name="sn" value="%h(P("sn"))" /> |
| 737 | @ <input type="submit" name="del2" value="Confirm - Delete The Skin" /> |
| 738 | @ <input type="submit" name="cancel" value="Cancel - Do Not Delete" /> |
| @@ -809,11 +809,11 @@ | |
| 809 | for(i=0; i<sizeof(aBuiltinSkin)/sizeof(aBuiltinSkin[0]); i++){ |
| 810 | z = aBuiltinSkin[i].zName; |
| 811 | if( strcmp(aBuiltinSkin[i].zValue, zCurrent)==0 ){ |
| 812 | @ <li><p>%h(z). <b>Currently In Use</b></p> |
| 813 | }else{ |
| 814 | @ <li><form action="%s(g.zBaseURL)/setup_skin" method="post"><div> |
| 815 | @ %h(z). |
| 816 | @ <input type="hidden" name="sn" value="%h(z)" /> |
| 817 | @ <input type="submit" name="load" value="Use This Skin" /> |
| 818 | @ </div></form></li> |
| 819 | } |
| @@ -827,11 +827,11 @@ | |
| 827 | const char *zN = db_column_text(&q, 0); |
| 828 | const char *zV = db_column_text(&q, 1); |
| 829 | if( strcmp(zV, zCurrent)==0 ){ |
| 830 | @ <li><p>%h(zN). <b>Currently In Use</b></p> |
| 831 | }else{ |
| 832 | @ <li><form action="%s(g.zBaseURL)/setup_skin" method="post"> |
| 833 | @ %h(zN). |
| 834 | @ <input type="hidden" name="sn" value="%h(zN)"> |
| 835 | @ <input type="submit" name="load" value="Use This Skin"> |
| 836 | @ <input type="submit" name="del1" value="Delete This Skin"> |
| 837 | @ </form></li> |
| 838 |
| --- src/skins.c | |
| +++ src/skins.c | |
| @@ -156,18 +156,18 @@ | |
| 156 | @ }'); |
| 157 | @ REPLACE INTO config VALUES('header','<html> |
| 158 | @ <head> |
| 159 | @ <title>$<project_name>: $<title></title> |
| 160 | @ <link rel="alternate" type="application/rss+xml" title="RSS Feed" |
| 161 | @ href="$home/timeline.rss"> |
| 162 | @ <link rel="stylesheet" href="$home/style.css?blackwhite" type="text/css" |
| 163 | @ media="screen"> |
| 164 | @ </head> |
| 165 | @ <body> |
| 166 | @ <div class="header"> |
| 167 | @ <div class="logo"> |
| 168 | @ <img src="$home/logo" alt="logo"> |
| 169 | @ </div> |
| 170 | @ <div class="title"><small>$<project_name></small><br />$<title></div> |
| 171 | @ <div class="status"><nobr><th1> |
| 172 | @ if {[info exists login]} { |
| 173 | @ puts "Logged in as $login" |
| @@ -175,36 +175,36 @@ | |
| 175 | @ puts "Not logged in" |
| 176 | @ } |
| 177 | @ </th1></nobr></div> |
| 178 | @ </div> |
| 179 | @ <div class="mainmenu"><th1> |
| 180 | @ html "<a href=''$home$index_page''>Home</a> " |
| 181 | @ if {[anycap jor]} { |
| 182 | @ html "<a href=''$home/timeline''>Timeline</a> " |
| 183 | @ } |
| 184 | @ if {[hascap oh]} { |
| 185 | @ html "<a href=''$home/dir?ci=tip''>Files</a> " |
| 186 | @ } |
| 187 | @ if {[hascap o]} { |
| 188 | @ html "<a href=''$home/brlist''>Branches</a> " |
| 189 | @ html "<a href=''$home/taglist''>Tags</a> " |
| 190 | @ } |
| 191 | @ if {[hascap r]} { |
| 192 | @ html "<a href=''$home/reportlist''>Tickets</a> " |
| 193 | @ } |
| 194 | @ if {[hascap j]} { |
| 195 | @ html "<a href=''$home/wiki''>Wiki</a> " |
| 196 | @ } |
| 197 | @ if {[hascap s]} { |
| 198 | @ html "<a href=''$home/setup''>Admin</a> " |
| 199 | @ } elseif {[hascap a]} { |
| 200 | @ html "<a href=''$home/setup_ulist''>Users</a> " |
| 201 | @ } |
| 202 | @ if {[info exists login]} { |
| 203 | @ html "<a href=''$home/login''>Logout</a> " |
| 204 | @ } else { |
| 205 | @ html "<a href=''$home/login''>Login</a> " |
| 206 | @ } |
| 207 | @ </th1></div> |
| 208 | @ '); |
| 209 | @ REPLACE INTO config VALUES('footer','<div class="footer"> |
| 210 | @ Fossil version $manifest_version $manifest_date |
| @@ -358,12 +358,12 @@ | |
| 358 | @ '); |
| 359 | @ REPLACE INTO config VALUES('header','<html> |
| 360 | @ <head> |
| 361 | @ <title>$<project_name>: $<title></title> |
| 362 | @ <link rel="alternate" type="application/rss+xml" title="RSS Feed" |
| 363 | @ href="$home/timeline.rss"> |
| 364 | @ <link rel="stylesheet" href="$home/style.css?tan" type="text/css" |
| 365 | @ media="screen"> |
| 366 | @ </head> |
| 367 | @ <body> |
| 368 | @ <div class="header"> |
| 369 | @ <div class="title">$<title></div> |
| @@ -376,36 +376,36 @@ | |
| 376 | @ puts "Not logged in" |
| 377 | @ } |
| 378 | @ </th1></nobr></div> |
| 379 | @ </div> |
| 380 | @ <div class="mainmenu"><th1> |
| 381 | @ html "<a href=''$home$index_page''>Home</a> " |
| 382 | @ if {[anycap jor]} { |
| 383 | @ html "<a href=''$home/timeline''>Timeline</a> " |
| 384 | @ } |
| 385 | @ if {[hascap oh]} { |
| 386 | @ html "<a href=''$home/dir?ci=tip''>Files</a> " |
| 387 | @ } |
| 388 | @ if {[hascap o]} { |
| 389 | @ html "<a href=''$home/brlist''>Branches</a> " |
| 390 | @ html "<a href=''$home/taglist''>Tags</a> " |
| 391 | @ } |
| 392 | @ if {[hascap r]} { |
| 393 | @ html "<a href=''$home/reportlist''>Tickets</a> " |
| 394 | @ } |
| 395 | @ if {[hascap j]} { |
| 396 | @ html "<a href=''$home/wiki''>Wiki</a> " |
| 397 | @ } |
| 398 | @ if {[hascap s]} { |
| 399 | @ html "<a href=''$home/setup''>Admin</a> " |
| 400 | @ } elseif {[hascap a]} { |
| 401 | @ html "<a href=''$home/setup_ulist''>Users</a> " |
| 402 | @ } |
| 403 | @ if {[info exists login]} { |
| 404 | @ html "<a href=''$home/login''>Logout</a> " |
| 405 | @ } else { |
| 406 | @ html "<a href=''$home/login''>Login</a> " |
| 407 | @ } |
| 408 | @ </th1></div> |
| 409 | @ '); |
| 410 | @ REPLACE INTO config VALUES('footer','<div class="footer"> |
| 411 | @ Fossil version $manifest_version $manifest_date |
| @@ -590,18 +590,18 @@ | |
| 590 | @ }'); |
| 591 | @ REPLACE INTO config VALUES('header','<html> |
| 592 | @ <head> |
| 593 | @ <title>$<project_name>: $<title></title> |
| 594 | @ <link rel="alternate" type="application/rss+xml" title="RSS Feed" |
| 595 | @ href="$home/timeline.rss"> |
| 596 | @ <link rel="stylesheet" href="$home/style.css?black2" type="text/css" |
| 597 | @ media="screen"> |
| 598 | @ </head> |
| 599 | @ <body> |
| 600 | @ <div class="header"> |
| 601 | @ <div class="logo"> |
| 602 | @ <!-- <img src="$home/logo" alt="logo"> --> |
| 603 | @ <br /><nobr>$<project_name></nobr> |
| 604 | @ </div> |
| 605 | @ <div class="title">$<title></div> |
| 606 | @ <div class="status"><nobr><th1> |
| 607 | @ if {[info exists login]} { |
| @@ -610,36 +610,36 @@ | |
| 610 | @ puts "Not logged in" |
| 611 | @ } |
| 612 | @ </th1></nobr></div> |
| 613 | @ </div> |
| 614 | @ <div class="mainmenu"><ul><th1> |
| 615 | @ html "<li><a href=''$home$index_page''>Home</a></li>" |
| 616 | @ if {[anycap jor]} { |
| 617 | @ html "<li><a href=''$home/timeline''>Timeline</a></li>" |
| 618 | @ } |
| 619 | @ if {[hascap oh]} { |
| 620 | @ html "<li><a href=''$home/dir?ci=tip''>Files</a></li>" |
| 621 | @ } |
| 622 | @ if {[hascap o]} { |
| 623 | @ html "<li><a href=''$home/brlist''>Branches</a></li>" |
| 624 | @ html "<li><a href=''$home/taglist''>Tags</a></li>" |
| 625 | @ } |
| 626 | @ if {[hascap r]} { |
| 627 | @ html "<li><a href=''$home/reportlist''>Tickets</a></li>" |
| 628 | @ } |
| 629 | @ if {[hascap j]} { |
| 630 | @ html "<li><a href=''$home/wiki''>Wiki</a></li>" |
| 631 | @ } |
| 632 | @ if {[hascap s]} { |
| 633 | @ html "<li><a href=''$home/setup''>Admin</a></li>" |
| 634 | @ } elseif {[hascap a]} { |
| 635 | @ html "<li><a href=''$home/setup_ulist''>Users</a></li>" |
| 636 | @ } |
| 637 | @ if {[info exists login]} { |
| 638 | @ html "<li><a href=''$home/login''>Logout</a></li>" |
| 639 | @ } else { |
| 640 | @ html "<li><a href=''$home/login''>Login</a></li>" |
| 641 | @ } |
| 642 | @ </th1></ul></div> |
| 643 | @ <div id="container"> |
| 644 | @ '); |
| 645 | @ REPLACE INTO config VALUES('footer','</div> |
| @@ -728,11 +728,11 @@ | |
| 728 | db_begin_transaction(); |
| 729 | |
| 730 | /* Process requests to delete a user-defined skin */ |
| 731 | if( P("del1") && (zName = skinVarName(P("sn"), 1))!=0 ){ |
| 732 | style_header("Confirm Custom Skin Delete"); |
| 733 | @ <form action="%s(g.zTop)/setup_skin" method="post"><div> |
| 734 | @ <p>Deletion of a custom skin is a permanent action that cannot |
| 735 | @ be undone. Please confirm that this is what you want to do:</p> |
| 736 | @ <input type="hidden" name="sn" value="%h(P("sn"))" /> |
| 737 | @ <input type="submit" name="del2" value="Confirm - Delete The Skin" /> |
| 738 | @ <input type="submit" name="cancel" value="Cancel - Do Not Delete" /> |
| @@ -809,11 +809,11 @@ | |
| 809 | for(i=0; i<sizeof(aBuiltinSkin)/sizeof(aBuiltinSkin[0]); i++){ |
| 810 | z = aBuiltinSkin[i].zName; |
| 811 | if( strcmp(aBuiltinSkin[i].zValue, zCurrent)==0 ){ |
| 812 | @ <li><p>%h(z). <b>Currently In Use</b></p> |
| 813 | }else{ |
| 814 | @ <li><form action="%s(g.zTop)/setup_skin" method="post"><div> |
| 815 | @ %h(z). |
| 816 | @ <input type="hidden" name="sn" value="%h(z)" /> |
| 817 | @ <input type="submit" name="load" value="Use This Skin" /> |
| 818 | @ </div></form></li> |
| 819 | } |
| @@ -827,11 +827,11 @@ | |
| 827 | const char *zN = db_column_text(&q, 0); |
| 828 | const char *zV = db_column_text(&q, 1); |
| 829 | if( strcmp(zV, zCurrent)==0 ){ |
| 830 | @ <li><p>%h(zN). <b>Currently In Use</b></p> |
| 831 | }else{ |
| 832 | @ <li><form action="%s(g.zTop)/setup_skin" method="post"> |
| 833 | @ %h(zN). |
| 834 | @ <input type="hidden" name="sn" value="%h(zN)"> |
| 835 | @ <input type="submit" name="load" value="Use This Skin"> |
| 836 | @ <input type="submit" name="del1" value="Delete This Skin"> |
| 837 | @ </form></li> |
| 838 |
+15
-14
| --- src/style.c | ||
| +++ src/style.c | ||
| @@ -97,10 +97,11 @@ | ||
| 97 | 97 | |
| 98 | 98 | /* Generate the header up through the main menu */ |
| 99 | 99 | Th_Store("project_name", db_get("project-name","Unnamed Fossil Project")); |
| 100 | 100 | Th_Store("title", zTitle); |
| 101 | 101 | Th_Store("baseurl", g.zBaseURL); |
| 102 | + Th_Store("home", g.zTop); | |
| 102 | 103 | Th_Store("index_page", db_get("index-page","/home")); |
| 103 | 104 | Th_Store("current_page", g.zPath); |
| 104 | 105 | Th_Store("manifest_version", MANIFEST_VERSION); |
| 105 | 106 | Th_Store("manifest_date", MANIFEST_DATE); |
| 106 | 107 | Th_Store("compiler_name", COMPILER_NAME); |
| @@ -192,18 +193,18 @@ | ||
| 192 | 193 | const char zDefaultHeader[] = |
| 193 | 194 | @ <html> |
| 194 | 195 | @ <head> |
| 195 | 196 | @ <title>$<project_name>: $<title></title> |
| 196 | 197 | @ <link rel="alternate" type="application/rss+xml" title="RSS Feed" |
| 197 | -@ href="$baseurl/timeline.rss" /> | |
| 198 | -@ <link rel="stylesheet" href="$baseurl/style.css?default" type="text/css" | |
| 198 | +@ href="$home/timeline.rss" /> | |
| 199 | +@ <link rel="stylesheet" href="$home/style.css?default" type="text/css" | |
| 199 | 200 | @ media="screen" /> |
| 200 | 201 | @ </head> |
| 201 | 202 | @ <body> |
| 202 | 203 | @ <div class="header"> |
| 203 | 204 | @ <div class="logo"> |
| 204 | -@ <img src="$baseurl/logo" alt="logo" /> | |
| 205 | +@ <img src="$home/logo" alt="logo" /> | |
| 205 | 206 | @ </div> |
| 206 | 207 | @ <div class="title"><small>$<project_name></small><br />$<title></div> |
| 207 | 208 | @ <div class="status"><th1> |
| 208 | 209 | @ if {[info exists login]} { |
| 209 | 210 | @ puts "Logged in as $login" |
| @@ -211,36 +212,36 @@ | ||
| 211 | 212 | @ puts "Not logged in" |
| 212 | 213 | @ } |
| 213 | 214 | @ </th1></div> |
| 214 | 215 | @ </div> |
| 215 | 216 | @ <div class="mainmenu"><th1> |
| 216 | -@ html "<a href='$baseurl$index_page'>Home</a> " | |
| 217 | +@ html "<a href='$home$index_page'>Home</a> " | |
| 217 | 218 | @ if {[anycap jor]} { |
| 218 | -@ html "<a href='$baseurl/timeline'>Timeline</a> " | |
| 219 | +@ html "<a href='$home/timeline'>Timeline</a> " | |
| 219 | 220 | @ } |
| 220 | 221 | @ if {[hascap oh]} { |
| 221 | -@ html "<a href='$baseurl/dir?ci=tip'>Files</a> " | |
| 222 | +@ html "<a href='$home/dir?ci=tip'>Files</a> " | |
| 222 | 223 | @ } |
| 223 | 224 | @ if {[hascap o]} { |
| 224 | -@ html "<a href='$baseurl/brlist'>Branches</a> " | |
| 225 | -@ html "<a href='$baseurl/taglist'>Tags</a> " | |
| 225 | +@ html "<a href='$home/brlist'>Branches</a> " | |
| 226 | +@ html "<a href='$home/taglist'>Tags</a> " | |
| 226 | 227 | @ } |
| 227 | 228 | @ if {[hascap r]} { |
| 228 | -@ html "<a href='$baseurl/reportlist'>Tickets</a> " | |
| 229 | +@ html "<a href='$home/reportlist'>Tickets</a> " | |
| 229 | 230 | @ } |
| 230 | 231 | @ if {[hascap j]} { |
| 231 | -@ html "<a href='$baseurl/wiki'>Wiki</a> " | |
| 232 | +@ html "<a href='$home/wiki'>Wiki</a> " | |
| 232 | 233 | @ } |
| 233 | 234 | @ if {[hascap s]} { |
| 234 | -@ html "<a href='$baseurl/setup'>Admin</a> " | |
| 235 | +@ html "<a href='$home/setup'>Admin</a> " | |
| 235 | 236 | @ } elseif {[hascap a]} { |
| 236 | -@ html "<a href='$baseurl/setup_ulist'>Users</a> " | |
| 237 | +@ html "<a href='$home/setup_ulist'>Users</a> " | |
| 237 | 238 | @ } |
| 238 | 239 | @ if {[info exists login]} { |
| 239 | -@ html "<a href='$baseurl/login'>Logout</a> " | |
| 240 | +@ html "<a href='$home/login'>Logout</a> " | |
| 240 | 241 | @ } else { |
| 241 | -@ html "<a href='$baseurl/login'>Login</a> " | |
| 242 | +@ html "<a href='$home/login'>Login</a> " | |
| 242 | 243 | @ } |
| 243 | 244 | @ </th1></div> |
| 244 | 245 | ; |
| 245 | 246 | |
| 246 | 247 | /* |
| 247 | 248 |
| --- src/style.c | |
| +++ src/style.c | |
| @@ -97,10 +97,11 @@ | |
| 97 | |
| 98 | /* Generate the header up through the main menu */ |
| 99 | Th_Store("project_name", db_get("project-name","Unnamed Fossil Project")); |
| 100 | Th_Store("title", zTitle); |
| 101 | Th_Store("baseurl", g.zBaseURL); |
| 102 | Th_Store("index_page", db_get("index-page","/home")); |
| 103 | Th_Store("current_page", g.zPath); |
| 104 | Th_Store("manifest_version", MANIFEST_VERSION); |
| 105 | Th_Store("manifest_date", MANIFEST_DATE); |
| 106 | Th_Store("compiler_name", COMPILER_NAME); |
| @@ -192,18 +193,18 @@ | |
| 192 | const char zDefaultHeader[] = |
| 193 | @ <html> |
| 194 | @ <head> |
| 195 | @ <title>$<project_name>: $<title></title> |
| 196 | @ <link rel="alternate" type="application/rss+xml" title="RSS Feed" |
| 197 | @ href="$baseurl/timeline.rss" /> |
| 198 | @ <link rel="stylesheet" href="$baseurl/style.css?default" type="text/css" |
| 199 | @ media="screen" /> |
| 200 | @ </head> |
| 201 | @ <body> |
| 202 | @ <div class="header"> |
| 203 | @ <div class="logo"> |
| 204 | @ <img src="$baseurl/logo" alt="logo" /> |
| 205 | @ </div> |
| 206 | @ <div class="title"><small>$<project_name></small><br />$<title></div> |
| 207 | @ <div class="status"><th1> |
| 208 | @ if {[info exists login]} { |
| 209 | @ puts "Logged in as $login" |
| @@ -211,36 +212,36 @@ | |
| 211 | @ puts "Not logged in" |
| 212 | @ } |
| 213 | @ </th1></div> |
| 214 | @ </div> |
| 215 | @ <div class="mainmenu"><th1> |
| 216 | @ html "<a href='$baseurl$index_page'>Home</a> " |
| 217 | @ if {[anycap jor]} { |
| 218 | @ html "<a href='$baseurl/timeline'>Timeline</a> " |
| 219 | @ } |
| 220 | @ if {[hascap oh]} { |
| 221 | @ html "<a href='$baseurl/dir?ci=tip'>Files</a> " |
| 222 | @ } |
| 223 | @ if {[hascap o]} { |
| 224 | @ html "<a href='$baseurl/brlist'>Branches</a> " |
| 225 | @ html "<a href='$baseurl/taglist'>Tags</a> " |
| 226 | @ } |
| 227 | @ if {[hascap r]} { |
| 228 | @ html "<a href='$baseurl/reportlist'>Tickets</a> " |
| 229 | @ } |
| 230 | @ if {[hascap j]} { |
| 231 | @ html "<a href='$baseurl/wiki'>Wiki</a> " |
| 232 | @ } |
| 233 | @ if {[hascap s]} { |
| 234 | @ html "<a href='$baseurl/setup'>Admin</a> " |
| 235 | @ } elseif {[hascap a]} { |
| 236 | @ html "<a href='$baseurl/setup_ulist'>Users</a> " |
| 237 | @ } |
| 238 | @ if {[info exists login]} { |
| 239 | @ html "<a href='$baseurl/login'>Logout</a> " |
| 240 | @ } else { |
| 241 | @ html "<a href='$baseurl/login'>Login</a> " |
| 242 | @ } |
| 243 | @ </th1></div> |
| 244 | ; |
| 245 | |
| 246 | /* |
| 247 |
| --- src/style.c | |
| +++ src/style.c | |
| @@ -97,10 +97,11 @@ | |
| 97 | |
| 98 | /* Generate the header up through the main menu */ |
| 99 | Th_Store("project_name", db_get("project-name","Unnamed Fossil Project")); |
| 100 | Th_Store("title", zTitle); |
| 101 | Th_Store("baseurl", g.zBaseURL); |
| 102 | Th_Store("home", g.zTop); |
| 103 | Th_Store("index_page", db_get("index-page","/home")); |
| 104 | Th_Store("current_page", g.zPath); |
| 105 | Th_Store("manifest_version", MANIFEST_VERSION); |
| 106 | Th_Store("manifest_date", MANIFEST_DATE); |
| 107 | Th_Store("compiler_name", COMPILER_NAME); |
| @@ -192,18 +193,18 @@ | |
| 193 | const char zDefaultHeader[] = |
| 194 | @ <html> |
| 195 | @ <head> |
| 196 | @ <title>$<project_name>: $<title></title> |
| 197 | @ <link rel="alternate" type="application/rss+xml" title="RSS Feed" |
| 198 | @ href="$home/timeline.rss" /> |
| 199 | @ <link rel="stylesheet" href="$home/style.css?default" type="text/css" |
| 200 | @ media="screen" /> |
| 201 | @ </head> |
| 202 | @ <body> |
| 203 | @ <div class="header"> |
| 204 | @ <div class="logo"> |
| 205 | @ <img src="$home/logo" alt="logo" /> |
| 206 | @ </div> |
| 207 | @ <div class="title"><small>$<project_name></small><br />$<title></div> |
| 208 | @ <div class="status"><th1> |
| 209 | @ if {[info exists login]} { |
| 210 | @ puts "Logged in as $login" |
| @@ -211,36 +212,36 @@ | |
| 212 | @ puts "Not logged in" |
| 213 | @ } |
| 214 | @ </th1></div> |
| 215 | @ </div> |
| 216 | @ <div class="mainmenu"><th1> |
| 217 | @ html "<a href='$home$index_page'>Home</a> " |
| 218 | @ if {[anycap jor]} { |
| 219 | @ html "<a href='$home/timeline'>Timeline</a> " |
| 220 | @ } |
| 221 | @ if {[hascap oh]} { |
| 222 | @ html "<a href='$home/dir?ci=tip'>Files</a> " |
| 223 | @ } |
| 224 | @ if {[hascap o]} { |
| 225 | @ html "<a href='$home/brlist'>Branches</a> " |
| 226 | @ html "<a href='$home/taglist'>Tags</a> " |
| 227 | @ } |
| 228 | @ if {[hascap r]} { |
| 229 | @ html "<a href='$home/reportlist'>Tickets</a> " |
| 230 | @ } |
| 231 | @ if {[hascap j]} { |
| 232 | @ html "<a href='$home/wiki'>Wiki</a> " |
| 233 | @ } |
| 234 | @ if {[hascap s]} { |
| 235 | @ html "<a href='$home/setup'>Admin</a> " |
| 236 | @ } elseif {[hascap a]} { |
| 237 | @ html "<a href='$home/setup_ulist'>Users</a> " |
| 238 | @ } |
| 239 | @ if {[info exists login]} { |
| 240 | @ html "<a href='$home/login'>Logout</a> " |
| 241 | @ } else { |
| 242 | @ html "<a href='$home/login'>Login</a> " |
| 243 | @ } |
| 244 | @ </th1></div> |
| 245 | ; |
| 246 | |
| 247 | /* |
| 248 |
+2
-2
| --- src/tag.c | ||
| +++ src/tag.c | ||
| @@ -526,11 +526,11 @@ | ||
| 526 | 526 | ); |
| 527 | 527 | @ <ul> |
| 528 | 528 | while( db_step(&q)==SQLITE_ROW ){ |
| 529 | 529 | const char *zName = db_column_text(&q, 0); |
| 530 | 530 | if( g.okHistory ){ |
| 531 | - @ <li><a class="tagLink" href="%s(g.zBaseURL)/timeline?t=%T(zName)"> | |
| 531 | + @ <li><a class="tagLink" href="%s(g.zTop)/timeline?t=%T(zName)"> | |
| 532 | 532 | @ %h(zName)</a></li> |
| 533 | 533 | }else{ |
| 534 | 534 | @ <li><span class="tagDsp">%h(zName)</span></li> |
| 535 | 535 | } |
| 536 | 536 | } |
| @@ -555,11 +555,11 @@ | ||
| 555 | 555 | rid |
| 556 | 556 | ); |
| 557 | 557 | while( db_step(&q)==SQLITE_ROW ){ |
| 558 | 558 | const char *zTagName = db_column_text(&q, 0); |
| 559 | 559 | if( g.okHistory ){ |
| 560 | - @ <a class="tagLink" href="%s(g.zBaseURL)/timeline?t=%T(zTagName)"> | |
| 560 | + @ <a class="tagLink" href="%s(g.zTop)/timeline?t=%T(zTagName)"> | |
| 561 | 561 | @ [%h(zTagName)]</a> |
| 562 | 562 | }else{ |
| 563 | 563 | @ <span class="tagDsp">[%h(zTagName)]</span> |
| 564 | 564 | } |
| 565 | 565 | } |
| 566 | 566 |
| --- src/tag.c | |
| +++ src/tag.c | |
| @@ -526,11 +526,11 @@ | |
| 526 | ); |
| 527 | @ <ul> |
| 528 | while( db_step(&q)==SQLITE_ROW ){ |
| 529 | const char *zName = db_column_text(&q, 0); |
| 530 | if( g.okHistory ){ |
| 531 | @ <li><a class="tagLink" href="%s(g.zBaseURL)/timeline?t=%T(zName)"> |
| 532 | @ %h(zName)</a></li> |
| 533 | }else{ |
| 534 | @ <li><span class="tagDsp">%h(zName)</span></li> |
| 535 | } |
| 536 | } |
| @@ -555,11 +555,11 @@ | |
| 555 | rid |
| 556 | ); |
| 557 | while( db_step(&q)==SQLITE_ROW ){ |
| 558 | const char *zTagName = db_column_text(&q, 0); |
| 559 | if( g.okHistory ){ |
| 560 | @ <a class="tagLink" href="%s(g.zBaseURL)/timeline?t=%T(zTagName)"> |
| 561 | @ [%h(zTagName)]</a> |
| 562 | }else{ |
| 563 | @ <span class="tagDsp">[%h(zTagName)]</span> |
| 564 | } |
| 565 | } |
| 566 |
| --- src/tag.c | |
| +++ src/tag.c | |
| @@ -526,11 +526,11 @@ | |
| 526 | ); |
| 527 | @ <ul> |
| 528 | while( db_step(&q)==SQLITE_ROW ){ |
| 529 | const char *zName = db_column_text(&q, 0); |
| 530 | if( g.okHistory ){ |
| 531 | @ <li><a class="tagLink" href="%s(g.zTop)/timeline?t=%T(zName)"> |
| 532 | @ %h(zName)</a></li> |
| 533 | }else{ |
| 534 | @ <li><span class="tagDsp">%h(zName)</span></li> |
| 535 | } |
| 536 | } |
| @@ -555,11 +555,11 @@ | |
| 555 | rid |
| 556 | ); |
| 557 | while( db_step(&q)==SQLITE_ROW ){ |
| 558 | const char *zTagName = db_column_text(&q, 0); |
| 559 | if( g.okHistory ){ |
| 560 | @ <a class="tagLink" href="%s(g.zTop)/timeline?t=%T(zTagName)"> |
| 561 | @ [%h(zTagName)]</a> |
| 562 | }else{ |
| 563 | @ <span class="tagDsp">[%h(zTagName)]</span> |
| 564 | } |
| 565 | } |
| 566 |
+6
-6
| --- src/timeline.c | ||
| +++ src/timeline.c | ||
| @@ -48,11 +48,11 @@ | ||
| 48 | 48 | */ |
| 49 | 49 | void hyperlink_to_uuid(const char *zUuid){ |
| 50 | 50 | char zShortUuid[UUID_SIZE+1]; |
| 51 | 51 | shorten_uuid(zShortUuid, zUuid); |
| 52 | 52 | if( g.okHistory ){ |
| 53 | - @ <a class="timelineHistLink" href="%s(g.zBaseURL)/info/%s(zShortUuid)"> | |
| 53 | + @ <a class="timelineHistLink" href="%s(g.zTop)/info/%s(zShortUuid)"> | |
| 54 | 54 | @ [%s(zShortUuid)]</a> |
| 55 | 55 | }else{ |
| 56 | 56 | @ <span class="timelineHistDsp">[%s(zShortUuid)]</span> |
| 57 | 57 | } |
| 58 | 58 | } |
| @@ -69,11 +69,11 @@ | ||
| 69 | 69 | ){ |
| 70 | 70 | char zShortUuid[UUID_SIZE+1]; |
| 71 | 71 | shorten_uuid(zShortUuid, zUuid); |
| 72 | 72 | if( g.okHistory ){ |
| 73 | 73 | @ <a onmouseover='%s(zIn)("m%d(id)")' onmouseout='%s(zOut)("m%d(id)")' |
| 74 | - @ href="%s(g.zBaseURL)/vinfo/%s(zShortUuid)">[%s(zShortUuid)]</a> | |
| 74 | + @ href="%s(g.zTop)/vinfo/%s(zShortUuid)">[%s(zShortUuid)]</a> | |
| 75 | 75 | }else{ |
| 76 | 76 | @ <b onmouseover='%s(zIn)("m%d(id)")' onmouseout='%s(zOut)("m%d(id)")'> |
| 77 | 77 | @ [%s(zShortUuid)]</b> |
| 78 | 78 | } |
| 79 | 79 | } |
| @@ -82,13 +82,13 @@ | ||
| 82 | 82 | ** Generate a hyperlink to a diff between two versions. |
| 83 | 83 | */ |
| 84 | 84 | void hyperlink_to_diff(const char *zV1, const char *zV2){ |
| 85 | 85 | if( g.okHistory ){ |
| 86 | 86 | if( zV2==0 ){ |
| 87 | - @ <a href="%s(g.zBaseURL)/diff?v2=%s(zV1)">[diff]</a> | |
| 87 | + @ <a href="%s(g.zTop)/diff?v2=%s(zV1)">[diff]</a> | |
| 88 | 88 | }else{ |
| 89 | - @ <a href="%s(g.zBaseURL)/diff?v1=%s(zV1)&v2=%s(zV2)">[diff]</a> | |
| 89 | + @ <a href="%s(g.zTop)/diff?v1=%s(zV1)&v2=%s(zV2)">[diff]</a> | |
| 90 | 90 | } |
| 91 | 91 | } |
| 92 | 92 | } |
| 93 | 93 | |
| 94 | 94 | /* |
| @@ -749,11 +749,11 @@ | ||
| 749 | 749 | ); |
| 750 | 750 | } |
| 751 | 751 | } |
| 752 | 752 | if( g.okHistory ){ |
| 753 | 753 | blob_appendf(&desc, " of <a href='%s/info/%s'>[%.10s]</a>", |
| 754 | - g.zBaseURL, zUuid, zUuid); | |
| 754 | + g.zTop, zUuid, zUuid); | |
| 755 | 755 | }else{ |
| 756 | 756 | blob_appendf(&desc, " of check-in [%.10s]", zUuid); |
| 757 | 757 | } |
| 758 | 758 | }else if( f_rid && g.okRead ){ |
| 759 | 759 | /* If f= is present, ignore all other parameters other than n= */ |
| @@ -773,11 +773,11 @@ | ||
| 773 | 773 | ); |
| 774 | 774 | blob_appendf(&desc, "Parents and children of check-in "); |
| 775 | 775 | zUuid = db_text("", "SELECT uuid FROM blob WHERE rid=%d", f_rid); |
| 776 | 776 | if( g.okHistory ){ |
| 777 | 777 | blob_appendf(&desc, "<a href='%s/info/%s'>[%.10s]</a>", |
| 778 | - g.zBaseURL, zUuid, zUuid); | |
| 778 | + g.zTop, zUuid, zUuid); | |
| 779 | 779 | }else{ |
| 780 | 780 | blob_appendf(&desc, "[%.10s]", zUuid); |
| 781 | 781 | } |
| 782 | 782 | }else{ |
| 783 | 783 | int n; |
| 784 | 784 |
| --- src/timeline.c | |
| +++ src/timeline.c | |
| @@ -48,11 +48,11 @@ | |
| 48 | */ |
| 49 | void hyperlink_to_uuid(const char *zUuid){ |
| 50 | char zShortUuid[UUID_SIZE+1]; |
| 51 | shorten_uuid(zShortUuid, zUuid); |
| 52 | if( g.okHistory ){ |
| 53 | @ <a class="timelineHistLink" href="%s(g.zBaseURL)/info/%s(zShortUuid)"> |
| 54 | @ [%s(zShortUuid)]</a> |
| 55 | }else{ |
| 56 | @ <span class="timelineHistDsp">[%s(zShortUuid)]</span> |
| 57 | } |
| 58 | } |
| @@ -69,11 +69,11 @@ | |
| 69 | ){ |
| 70 | char zShortUuid[UUID_SIZE+1]; |
| 71 | shorten_uuid(zShortUuid, zUuid); |
| 72 | if( g.okHistory ){ |
| 73 | @ <a onmouseover='%s(zIn)("m%d(id)")' onmouseout='%s(zOut)("m%d(id)")' |
| 74 | @ href="%s(g.zBaseURL)/vinfo/%s(zShortUuid)">[%s(zShortUuid)]</a> |
| 75 | }else{ |
| 76 | @ <b onmouseover='%s(zIn)("m%d(id)")' onmouseout='%s(zOut)("m%d(id)")'> |
| 77 | @ [%s(zShortUuid)]</b> |
| 78 | } |
| 79 | } |
| @@ -82,13 +82,13 @@ | |
| 82 | ** Generate a hyperlink to a diff between two versions. |
| 83 | */ |
| 84 | void hyperlink_to_diff(const char *zV1, const char *zV2){ |
| 85 | if( g.okHistory ){ |
| 86 | if( zV2==0 ){ |
| 87 | @ <a href="%s(g.zBaseURL)/diff?v2=%s(zV1)">[diff]</a> |
| 88 | }else{ |
| 89 | @ <a href="%s(g.zBaseURL)/diff?v1=%s(zV1)&v2=%s(zV2)">[diff]</a> |
| 90 | } |
| 91 | } |
| 92 | } |
| 93 | |
| 94 | /* |
| @@ -749,11 +749,11 @@ | |
| 749 | ); |
| 750 | } |
| 751 | } |
| 752 | if( g.okHistory ){ |
| 753 | blob_appendf(&desc, " of <a href='%s/info/%s'>[%.10s]</a>", |
| 754 | g.zBaseURL, zUuid, zUuid); |
| 755 | }else{ |
| 756 | blob_appendf(&desc, " of check-in [%.10s]", zUuid); |
| 757 | } |
| 758 | }else if( f_rid && g.okRead ){ |
| 759 | /* If f= is present, ignore all other parameters other than n= */ |
| @@ -773,11 +773,11 @@ | |
| 773 | ); |
| 774 | blob_appendf(&desc, "Parents and children of check-in "); |
| 775 | zUuid = db_text("", "SELECT uuid FROM blob WHERE rid=%d", f_rid); |
| 776 | if( g.okHistory ){ |
| 777 | blob_appendf(&desc, "<a href='%s/info/%s'>[%.10s]</a>", |
| 778 | g.zBaseURL, zUuid, zUuid); |
| 779 | }else{ |
| 780 | blob_appendf(&desc, "[%.10s]", zUuid); |
| 781 | } |
| 782 | }else{ |
| 783 | int n; |
| 784 |
| --- src/timeline.c | |
| +++ src/timeline.c | |
| @@ -48,11 +48,11 @@ | |
| 48 | */ |
| 49 | void hyperlink_to_uuid(const char *zUuid){ |
| 50 | char zShortUuid[UUID_SIZE+1]; |
| 51 | shorten_uuid(zShortUuid, zUuid); |
| 52 | if( g.okHistory ){ |
| 53 | @ <a class="timelineHistLink" href="%s(g.zTop)/info/%s(zShortUuid)"> |
| 54 | @ [%s(zShortUuid)]</a> |
| 55 | }else{ |
| 56 | @ <span class="timelineHistDsp">[%s(zShortUuid)]</span> |
| 57 | } |
| 58 | } |
| @@ -69,11 +69,11 @@ | |
| 69 | ){ |
| 70 | char zShortUuid[UUID_SIZE+1]; |
| 71 | shorten_uuid(zShortUuid, zUuid); |
| 72 | if( g.okHistory ){ |
| 73 | @ <a onmouseover='%s(zIn)("m%d(id)")' onmouseout='%s(zOut)("m%d(id)")' |
| 74 | @ href="%s(g.zTop)/vinfo/%s(zShortUuid)">[%s(zShortUuid)]</a> |
| 75 | }else{ |
| 76 | @ <b onmouseover='%s(zIn)("m%d(id)")' onmouseout='%s(zOut)("m%d(id)")'> |
| 77 | @ [%s(zShortUuid)]</b> |
| 78 | } |
| 79 | } |
| @@ -82,13 +82,13 @@ | |
| 82 | ** Generate a hyperlink to a diff between two versions. |
| 83 | */ |
| 84 | void hyperlink_to_diff(const char *zV1, const char *zV2){ |
| 85 | if( g.okHistory ){ |
| 86 | if( zV2==0 ){ |
| 87 | @ <a href="%s(g.zTop)/diff?v2=%s(zV1)">[diff]</a> |
| 88 | }else{ |
| 89 | @ <a href="%s(g.zTop)/diff?v1=%s(zV1)&v2=%s(zV2)">[diff]</a> |
| 90 | } |
| 91 | } |
| 92 | } |
| 93 | |
| 94 | /* |
| @@ -749,11 +749,11 @@ | |
| 749 | ); |
| 750 | } |
| 751 | } |
| 752 | if( g.okHistory ){ |
| 753 | blob_appendf(&desc, " of <a href='%s/info/%s'>[%.10s]</a>", |
| 754 | g.zTop, zUuid, zUuid); |
| 755 | }else{ |
| 756 | blob_appendf(&desc, " of check-in [%.10s]", zUuid); |
| 757 | } |
| 758 | }else if( f_rid && g.okRead ){ |
| 759 | /* If f= is present, ignore all other parameters other than n= */ |
| @@ -773,11 +773,11 @@ | |
| 773 | ); |
| 774 | blob_appendf(&desc, "Parents and children of check-in "); |
| 775 | zUuid = db_text("", "SELECT uuid FROM blob WHERE rid=%d", f_rid); |
| 776 | if( g.okHistory ){ |
| 777 | blob_appendf(&desc, "<a href='%s/info/%s'>[%.10s]</a>", |
| 778 | g.zTop, zUuid, zUuid); |
| 779 | }else{ |
| 780 | blob_appendf(&desc, "[%.10s]", zUuid); |
| 781 | } |
| 782 | }else{ |
| 783 | int n; |
| 784 |
+4
-4
| --- src/tkt.c | ||
| +++ src/tkt.c | ||
| @@ -519,21 +519,21 @@ | ||
| 519 | 519 | if( g.thTrace ) Th_Trace("BEGIN_TKTNEW<br />\n", -1); |
| 520 | 520 | ticket_init(); |
| 521 | 521 | getAllTicketFields(); |
| 522 | 522 | initializeVariablesFromDb(); |
| 523 | 523 | initializeVariablesFromCGI(); |
| 524 | - @ <form method="post" action="%s(g.zBaseURL)/%s(g.zPath)"><p> | |
| 524 | + @ <form method="post" action="%s(g.zTop)/%s(g.zPath)"><p> | |
| 525 | 525 | login_insert_csrf_secret(); |
| 526 | 526 | @ </p> |
| 527 | 527 | zScript = ticket_newpage_code(); |
| 528 | 528 | Th_Store("login", g.zLogin); |
| 529 | 529 | Th_Store("date", db_text(0, "SELECT datetime('now')")); |
| 530 | 530 | Th_CreateCommand(g.interp, "submit_ticket", submitTicketCmd, |
| 531 | 531 | (void*)&zNewUuid, 0); |
| 532 | 532 | if( g.thTrace ) Th_Trace("BEGIN_TKTNEW_SCRIPT<br />\n", -1); |
| 533 | 533 | if( Th_Render(zScript)==TH_RETURN && !g.thTrace && zNewUuid ){ |
| 534 | - cgi_redirect(mprintf("%s/tktview/%s", g.zBaseURL, zNewUuid)); | |
| 534 | + cgi_redirect(mprintf("%s/tktview/%s", g.zTop, zNewUuid)); | |
| 535 | 535 | return; |
| 536 | 536 | } |
| 537 | 537 | @ </form> |
| 538 | 538 | if( g.thTrace ) Th_Trace("END_TKTVIEW<br />\n", -1); |
| 539 | 539 | style_footer(); |
| @@ -585,11 +585,11 @@ | ||
| 585 | 585 | if( g.thTrace ) Th_Trace("BEGIN_TKTEDIT<br />\n", -1); |
| 586 | 586 | ticket_init(); |
| 587 | 587 | getAllTicketFields(); |
| 588 | 588 | initializeVariablesFromCGI(); |
| 589 | 589 | initializeVariablesFromDb(); |
| 590 | - @ <form method="post" action="%s(g.zBaseURL)/%s(g.zPath)"><p> | |
| 590 | + @ <form method="post" action="%s(g.zTop)/%s(g.zPath)"><p> | |
| 591 | 591 | @ <input type="hidden" name="name" value="%s(zName)" /> |
| 592 | 592 | login_insert_csrf_secret(); |
| 593 | 593 | @ </p> |
| 594 | 594 | zScript = ticket_editpage_code(); |
| 595 | 595 | Th_Store("login", g.zLogin); |
| @@ -596,11 +596,11 @@ | ||
| 596 | 596 | Th_Store("date", db_text(0, "SELECT datetime('now')")); |
| 597 | 597 | Th_CreateCommand(g.interp, "append_field", appendRemarkCmd, 0, 0); |
| 598 | 598 | Th_CreateCommand(g.interp, "submit_ticket", submitTicketCmd, (void*)&zName,0); |
| 599 | 599 | if( g.thTrace ) Th_Trace("BEGIN_TKTEDIT_SCRIPT<br />\n", -1); |
| 600 | 600 | if( Th_Render(zScript)==TH_RETURN && !g.thTrace && zName ){ |
| 601 | - cgi_redirect(mprintf("%s/tktview/%s", g.zBaseURL, zName)); | |
| 601 | + cgi_redirect(mprintf("%s/tktview/%s", g.zTop, zName)); | |
| 602 | 602 | return; |
| 603 | 603 | } |
| 604 | 604 | @ </form> |
| 605 | 605 | if( g.thTrace ) Th_Trace("BEGIN_TKTEDIT<br />\n", -1); |
| 606 | 606 | style_footer(); |
| 607 | 607 |
| --- src/tkt.c | |
| +++ src/tkt.c | |
| @@ -519,21 +519,21 @@ | |
| 519 | if( g.thTrace ) Th_Trace("BEGIN_TKTNEW<br />\n", -1); |
| 520 | ticket_init(); |
| 521 | getAllTicketFields(); |
| 522 | initializeVariablesFromDb(); |
| 523 | initializeVariablesFromCGI(); |
| 524 | @ <form method="post" action="%s(g.zBaseURL)/%s(g.zPath)"><p> |
| 525 | login_insert_csrf_secret(); |
| 526 | @ </p> |
| 527 | zScript = ticket_newpage_code(); |
| 528 | Th_Store("login", g.zLogin); |
| 529 | Th_Store("date", db_text(0, "SELECT datetime('now')")); |
| 530 | Th_CreateCommand(g.interp, "submit_ticket", submitTicketCmd, |
| 531 | (void*)&zNewUuid, 0); |
| 532 | if( g.thTrace ) Th_Trace("BEGIN_TKTNEW_SCRIPT<br />\n", -1); |
| 533 | if( Th_Render(zScript)==TH_RETURN && !g.thTrace && zNewUuid ){ |
| 534 | cgi_redirect(mprintf("%s/tktview/%s", g.zBaseURL, zNewUuid)); |
| 535 | return; |
| 536 | } |
| 537 | @ </form> |
| 538 | if( g.thTrace ) Th_Trace("END_TKTVIEW<br />\n", -1); |
| 539 | style_footer(); |
| @@ -585,11 +585,11 @@ | |
| 585 | if( g.thTrace ) Th_Trace("BEGIN_TKTEDIT<br />\n", -1); |
| 586 | ticket_init(); |
| 587 | getAllTicketFields(); |
| 588 | initializeVariablesFromCGI(); |
| 589 | initializeVariablesFromDb(); |
| 590 | @ <form method="post" action="%s(g.zBaseURL)/%s(g.zPath)"><p> |
| 591 | @ <input type="hidden" name="name" value="%s(zName)" /> |
| 592 | login_insert_csrf_secret(); |
| 593 | @ </p> |
| 594 | zScript = ticket_editpage_code(); |
| 595 | Th_Store("login", g.zLogin); |
| @@ -596,11 +596,11 @@ | |
| 596 | Th_Store("date", db_text(0, "SELECT datetime('now')")); |
| 597 | Th_CreateCommand(g.interp, "append_field", appendRemarkCmd, 0, 0); |
| 598 | Th_CreateCommand(g.interp, "submit_ticket", submitTicketCmd, (void*)&zName,0); |
| 599 | if( g.thTrace ) Th_Trace("BEGIN_TKTEDIT_SCRIPT<br />\n", -1); |
| 600 | if( Th_Render(zScript)==TH_RETURN && !g.thTrace && zName ){ |
| 601 | cgi_redirect(mprintf("%s/tktview/%s", g.zBaseURL, zName)); |
| 602 | return; |
| 603 | } |
| 604 | @ </form> |
| 605 | if( g.thTrace ) Th_Trace("BEGIN_TKTEDIT<br />\n", -1); |
| 606 | style_footer(); |
| 607 |
| --- src/tkt.c | |
| +++ src/tkt.c | |
| @@ -519,21 +519,21 @@ | |
| 519 | if( g.thTrace ) Th_Trace("BEGIN_TKTNEW<br />\n", -1); |
| 520 | ticket_init(); |
| 521 | getAllTicketFields(); |
| 522 | initializeVariablesFromDb(); |
| 523 | initializeVariablesFromCGI(); |
| 524 | @ <form method="post" action="%s(g.zTop)/%s(g.zPath)"><p> |
| 525 | login_insert_csrf_secret(); |
| 526 | @ </p> |
| 527 | zScript = ticket_newpage_code(); |
| 528 | Th_Store("login", g.zLogin); |
| 529 | Th_Store("date", db_text(0, "SELECT datetime('now')")); |
| 530 | Th_CreateCommand(g.interp, "submit_ticket", submitTicketCmd, |
| 531 | (void*)&zNewUuid, 0); |
| 532 | if( g.thTrace ) Th_Trace("BEGIN_TKTNEW_SCRIPT<br />\n", -1); |
| 533 | if( Th_Render(zScript)==TH_RETURN && !g.thTrace && zNewUuid ){ |
| 534 | cgi_redirect(mprintf("%s/tktview/%s", g.zTop, zNewUuid)); |
| 535 | return; |
| 536 | } |
| 537 | @ </form> |
| 538 | if( g.thTrace ) Th_Trace("END_TKTVIEW<br />\n", -1); |
| 539 | style_footer(); |
| @@ -585,11 +585,11 @@ | |
| 585 | if( g.thTrace ) Th_Trace("BEGIN_TKTEDIT<br />\n", -1); |
| 586 | ticket_init(); |
| 587 | getAllTicketFields(); |
| 588 | initializeVariablesFromCGI(); |
| 589 | initializeVariablesFromDb(); |
| 590 | @ <form method="post" action="%s(g.zTop)/%s(g.zPath)"><p> |
| 591 | @ <input type="hidden" name="name" value="%s(zName)" /> |
| 592 | login_insert_csrf_secret(); |
| 593 | @ </p> |
| 594 | zScript = ticket_editpage_code(); |
| 595 | Th_Store("login", g.zLogin); |
| @@ -596,11 +596,11 @@ | |
| 596 | Th_Store("date", db_text(0, "SELECT datetime('now')")); |
| 597 | Th_CreateCommand(g.interp, "append_field", appendRemarkCmd, 0, 0); |
| 598 | Th_CreateCommand(g.interp, "submit_ticket", submitTicketCmd, (void*)&zName,0); |
| 599 | if( g.thTrace ) Th_Trace("BEGIN_TKTEDIT_SCRIPT<br />\n", -1); |
| 600 | if( Th_Render(zScript)==TH_RETURN && !g.thTrace && zName ){ |
| 601 | cgi_redirect(mprintf("%s/tktview/%s", g.zTop, zName)); |
| 602 | return; |
| 603 | } |
| 604 | @ </form> |
| 605 | if( g.thTrace ) Th_Trace("BEGIN_TKTEDIT<br />\n", -1); |
| 606 | style_footer(); |
| 607 |
+2
-2
| --- src/tktsetup.c | ||
| +++ src/tktsetup.c | ||
| @@ -130,11 +130,11 @@ | ||
| 130 | 130 | db_set(zDbField, z, 0); |
| 131 | 131 | if( xRebuild ) xRebuild(); |
| 132 | 132 | cgi_redirect("tktsetup"); |
| 133 | 133 | } |
| 134 | 134 | } |
| 135 | - @ <form action="%s(g.zBaseURL)/%s(g.zPath)" method="post"><div> | |
| 135 | + @ <form action="%s(g.zTop)/%s(g.zPath)" method="post"><div> | |
| 136 | 136 | login_insert_csrf_secret(); |
| 137 | 137 | @ <p>%s(zDesc)</p> |
| 138 | 138 | @ <textarea name="x" rows="%d(height)" cols="80">%h(z)</textarea> |
| 139 | 139 | @ <blockquote><p> |
| 140 | 140 | @ <input type="submit" name="submit" value="Apply Changes" /> |
| @@ -699,11 +699,11 @@ | ||
| 699 | 699 | if( P("setup") ){ |
| 700 | 700 | cgi_redirect("tktsetup"); |
| 701 | 701 | } |
| 702 | 702 | style_header("Ticket Display On Timelines"); |
| 703 | 703 | db_begin_transaction(); |
| 704 | - @ <form action="%s(g.zBaseURL)/tktsetup_timeline" method="post"><div> | |
| 704 | + @ <form action="%s(g.zTop)/tktsetup_timeline" method="post"><div> | |
| 705 | 705 | login_insert_csrf_secret(); |
| 706 | 706 | |
| 707 | 707 | @ <hr /> |
| 708 | 708 | entry_attribute("Ticket Title", 40, "ticket-title-expr", "t", "title"); |
| 709 | 709 | @ <p>An SQL expression in a query against the TICKET table that will |
| 710 | 710 |
| --- src/tktsetup.c | |
| +++ src/tktsetup.c | |
| @@ -130,11 +130,11 @@ | |
| 130 | db_set(zDbField, z, 0); |
| 131 | if( xRebuild ) xRebuild(); |
| 132 | cgi_redirect("tktsetup"); |
| 133 | } |
| 134 | } |
| 135 | @ <form action="%s(g.zBaseURL)/%s(g.zPath)" method="post"><div> |
| 136 | login_insert_csrf_secret(); |
| 137 | @ <p>%s(zDesc)</p> |
| 138 | @ <textarea name="x" rows="%d(height)" cols="80">%h(z)</textarea> |
| 139 | @ <blockquote><p> |
| 140 | @ <input type="submit" name="submit" value="Apply Changes" /> |
| @@ -699,11 +699,11 @@ | |
| 699 | if( P("setup") ){ |
| 700 | cgi_redirect("tktsetup"); |
| 701 | } |
| 702 | style_header("Ticket Display On Timelines"); |
| 703 | db_begin_transaction(); |
| 704 | @ <form action="%s(g.zBaseURL)/tktsetup_timeline" method="post"><div> |
| 705 | login_insert_csrf_secret(); |
| 706 | |
| 707 | @ <hr /> |
| 708 | entry_attribute("Ticket Title", 40, "ticket-title-expr", "t", "title"); |
| 709 | @ <p>An SQL expression in a query against the TICKET table that will |
| 710 |
| --- src/tktsetup.c | |
| +++ src/tktsetup.c | |
| @@ -130,11 +130,11 @@ | |
| 130 | db_set(zDbField, z, 0); |
| 131 | if( xRebuild ) xRebuild(); |
| 132 | cgi_redirect("tktsetup"); |
| 133 | } |
| 134 | } |
| 135 | @ <form action="%s(g.zTop)/%s(g.zPath)" method="post"><div> |
| 136 | login_insert_csrf_secret(); |
| 137 | @ <p>%s(zDesc)</p> |
| 138 | @ <textarea name="x" rows="%d(height)" cols="80">%h(z)</textarea> |
| 139 | @ <blockquote><p> |
| 140 | @ <input type="submit" name="submit" value="Apply Changes" /> |
| @@ -699,11 +699,11 @@ | |
| 699 | if( P("setup") ){ |
| 700 | cgi_redirect("tktsetup"); |
| 701 | } |
| 702 | style_header("Ticket Display On Timelines"); |
| 703 | db_begin_transaction(); |
| 704 | @ <form action="%s(g.zTop)/tktsetup_timeline" method="post"><div> |
| 705 | login_insert_csrf_secret(); |
| 706 | |
| 707 | @ <hr /> |
| 708 | entry_attribute("Ticket Title", 40, "ticket-title-expr", "t", "title"); |
| 709 | @ <p>An SQL expression in a query against the TICKET table that will |
| 710 |
+1
-1
| --- src/url.c | ||
| +++ src/url.c | ||
| @@ -337,11 +337,11 @@ | ||
| 337 | 337 | ){ |
| 338 | 338 | const char *zSep = "?"; |
| 339 | 339 | int i; |
| 340 | 340 | |
| 341 | 341 | blob_reset(&p->url); |
| 342 | - blob_appendf(&p->url, "%s/%s", g.zBaseURL, p->zBase); | |
| 342 | + blob_appendf(&p->url, "%s/%s", g.zTop, p->zBase); | |
| 343 | 343 | for(i=0; i<p->nParam; i++){ |
| 344 | 344 | const char *z = p->azValue[i]; |
| 345 | 345 | if( zName1 && strcmp(zName1,p->azName[i])==0 ){ |
| 346 | 346 | zName1 = 0; |
| 347 | 347 | z = zValue1; |
| 348 | 348 |
| --- src/url.c | |
| +++ src/url.c | |
| @@ -337,11 +337,11 @@ | |
| 337 | ){ |
| 338 | const char *zSep = "?"; |
| 339 | int i; |
| 340 | |
| 341 | blob_reset(&p->url); |
| 342 | blob_appendf(&p->url, "%s/%s", g.zBaseURL, p->zBase); |
| 343 | for(i=0; i<p->nParam; i++){ |
| 344 | const char *z = p->azValue[i]; |
| 345 | if( zName1 && strcmp(zName1,p->azName[i])==0 ){ |
| 346 | zName1 = 0; |
| 347 | z = zValue1; |
| 348 |
| --- src/url.c | |
| +++ src/url.c | |
| @@ -337,11 +337,11 @@ | |
| 337 | ){ |
| 338 | const char *zSep = "?"; |
| 339 | int i; |
| 340 | |
| 341 | blob_reset(&p->url); |
| 342 | blob_appendf(&p->url, "%s/%s", g.zTop, p->zBase); |
| 343 | for(i=0; i<p->nParam; i++){ |
| 344 | const char *z = p->azValue[i]; |
| 345 | if( zName1 && strcmp(zName1,p->azName[i])==0 ){ |
| 346 | zName1 = 0; |
| 347 | z = zValue1; |
| 348 |
+14
-14
| --- src/wiki.c | ||
| +++ src/wiki.c | ||
| @@ -88,14 +88,14 @@ | ||
| 88 | 88 | while( zIndexPage[0]=='/' ) zIndexPage++; |
| 89 | 89 | while( zPathInfo[0]=='/' ) zPathInfo++; |
| 90 | 90 | if( strcmp(zIndexPage, zPathInfo)==0 ) zIndexPage = 0; |
| 91 | 91 | } |
| 92 | 92 | if( zIndexPage ){ |
| 93 | - cgi_redirectf("%s/%s", g.zBaseURL, zIndexPage); | |
| 93 | + cgi_redirectf("%s/%s", g.zTop, zIndexPage); | |
| 94 | 94 | } |
| 95 | 95 | if( !g.okRdWiki ){ |
| 96 | - cgi_redirectf("%s/login?g=%s/home", g.zBaseURL, g.zBaseURL); | |
| 96 | + cgi_redirectf("%s/login?g=%s/home", g.zTop, g.zTop); | |
| 97 | 97 | } |
| 98 | 98 | if( zPageName ){ |
| 99 | 99 | login_check_credentials(); |
| 100 | 100 | g.zExtra = zPageName; |
| 101 | 101 | cgi_set_parameter_nocopy("name", g.zExtra); |
| @@ -104,11 +104,11 @@ | ||
| 104 | 104 | return; |
| 105 | 105 | } |
| 106 | 106 | style_header("Home"); |
| 107 | 107 | @ <p>This is a stub home-page for the project. |
| 108 | 108 | @ To fill in this page, first go to |
| 109 | - @ <a href="%s(g.zBaseURL)/setup_config">setup/config</a> | |
| 109 | + @ <a href="%s(g.zTop)/setup_config">setup/config</a> | |
| 110 | 110 | @ and establish a "Project Name". Then create a |
| 111 | 111 | @ wiki page with that name. The content of that wiki page |
| 112 | 112 | @ will be displayed in place of this message.</p> |
| 113 | 113 | style_footer(); |
| 114 | 114 | } |
| @@ -142,29 +142,29 @@ | ||
| 142 | 142 | if( zPageName==0 ){ |
| 143 | 143 | style_header("Wiki"); |
| 144 | 144 | @ <ul> |
| 145 | 145 | { char *zHomePageName = db_get("project-name",0); |
| 146 | 146 | if( zHomePageName ){ |
| 147 | - @ <li> <a href="%s(g.zBaseURL)/wiki?name=%t(zHomePageName)"> | |
| 147 | + @ <li> <a href="%s(g.zTop)/wiki?name=%t(zHomePageName)"> | |
| 148 | 148 | @ %h(zHomePageName)</a> wiki home page.</li> |
| 149 | 149 | } |
| 150 | 150 | } |
| 151 | - @ <li> <a href="%s(g.zBaseURL)/timeline?y=w">Recent changes</a> to wiki | |
| 151 | + @ <li> <a href="%s(g.zTop)/timeline?y=w">Recent changes</a> to wiki | |
| 152 | 152 | @ pages. </li> |
| 153 | - @ <li> <a href="%s(g.zBaseURL)/wiki_rules">Formatting rules</a> for | |
| 153 | + @ <li> <a href="%s(g.zTop)/wiki_rules">Formatting rules</a> for | |
| 154 | 154 | @ wiki.</li> |
| 155 | - @ <li> Use the <a href="%s(g.zBaseURL)/wiki?name=Sandbox">Sandbox</a> | |
| 155 | + @ <li> Use the <a href="%s(g.zTop)/wiki?name=Sandbox">Sandbox</a> | |
| 156 | 156 | @ to experiment.</li> |
| 157 | 157 | if( g.okNewWiki ){ |
| 158 | - @ <li> Create a <a href="%s(g.zBaseURL)/wikinew">new wiki page</a>.</li> | |
| 158 | + @ <li> Create a <a href="%s(g.zTop)/wikinew">new wiki page</a>.</li> | |
| 159 | 159 | if( g.okWrite ){ |
| 160 | 160 | @ <li> Create a <a href="%s(g.zTop)/eventedit">new event</a>.</li> |
| 161 | 161 | } |
| 162 | 162 | } |
| 163 | - @ <li> <a href="%s(g.zBaseURL)/wcontent">List of All Wiki Pages</a> | |
| 163 | + @ <li> <a href="%s(g.zTop)/wcontent">List of All Wiki Pages</a> | |
| 164 | 164 | @ available on this server.</li> |
| 165 | - @ <li> <form method="get" action="%s(g.zBaseURL)/wfind"><div> | |
| 165 | + @ <li> <form method="get" action="%s(g.zTop)/wfind"><div> | |
| 166 | 166 | @ Search wiki titles: <input type="text" name="title"/> |
| 167 | 167 | @ <input type="submit" /></div></form> |
| 168 | 168 | @ </li> |
| 169 | 169 | @ </ul> |
| 170 | 170 | style_footer(); |
| @@ -353,11 +353,11 @@ | ||
| 353 | 353 | for(n=2, z=zBody; z[0]; z++){ |
| 354 | 354 | if( z[0]=='\n' ) n++; |
| 355 | 355 | } |
| 356 | 356 | if( n<20 ) n = 20; |
| 357 | 357 | if( n>40 ) n = 40; |
| 358 | - @ <form method="post" action="%s(g.zBaseURL)/wikiedit"><div> | |
| 358 | + @ <form method="post" action="%s(g.zTop)/wikiedit"><div> | |
| 359 | 359 | login_insert_csrf_secret(); |
| 360 | 360 | @ <input type="hidden" name="name" value="%h(zPageName)" /> |
| 361 | 361 | @ <textarea name="w" class="wikiedit" cols="80" |
| 362 | 362 | @ rows="%d(n)" wrap="virtual">%h(zBody)</textarea> |
| 363 | 363 | @ <br /> |
| @@ -388,11 +388,11 @@ | ||
| 388 | 388 | cgi_redirectf("wikiedit?name=%T", zName); |
| 389 | 389 | } |
| 390 | 390 | style_header("Create A New Wiki Page"); |
| 391 | 391 | @ <p>Rules for wiki page names:</p> |
| 392 | 392 | well_formed_wiki_name_rules(); |
| 393 | - @ <form method="post" action="%s(g.zBaseURL)/wikinew"> | |
| 393 | + @ <form method="post" action="%s(g.zTop)/wikinew"> | |
| 394 | 394 | @ <p>Name of new wiki page: |
| 395 | 395 | @ <input style="width: 35;" type="text" name="name" value="%h(zName)" /> |
| 396 | 396 | @ <input type="submit" value="Create" /> |
| 397 | 397 | @ </p></form> |
| 398 | 398 | if( zName[0] ){ |
| @@ -520,11 +520,11 @@ | ||
| 520 | 520 | wiki_convert(&preview, 0, 0); |
| 521 | 521 | @ <hr> |
| 522 | 522 | blob_reset(&preview); |
| 523 | 523 | } |
| 524 | 524 | zUser = PD("u", g.zLogin); |
| 525 | - @ <form method="post" action="%s(g.zBaseURL)/wikiappend"> | |
| 525 | + @ <form method="post" action="%s(g.zTop)/wikiappend"> | |
| 526 | 526 | login_insert_csrf_secret(); |
| 527 | 527 | @ <input type="hidden" name="name" value="%h(zPageName)" /> |
| 528 | 528 | @ Your Name: |
| 529 | 529 | @ <input type="text" name="u" size="20" value="%h(zUser)" /><br /> |
| 530 | 530 | @ Comment to append:<br /> |
| @@ -694,11 +694,11 @@ | ||
| 694 | 694 | "SELECT substr(tagname, 6, 1000) FROM tag WHERE tagname like 'wiki-%%%q%%'" |
| 695 | 695 | " ORDER BY lower(tagname) /*sort*/" , |
| 696 | 696 | zTitle); |
| 697 | 697 | while( db_step(&q)==SQLITE_ROW ){ |
| 698 | 698 | const char *zName = db_column_text(&q, 0); |
| 699 | - @ <li><a href="%s(g.zBaseURL)/wiki?name=%T(zName)">%h(zName)</a></li> | |
| 699 | + @ <li><a href="%s(g.zTop)/wiki?name=%T(zName)">%h(zName)</a></li> | |
| 700 | 700 | } |
| 701 | 701 | db_finalize(&q); |
| 702 | 702 | @ </ul> |
| 703 | 703 | style_footer(); |
| 704 | 704 | } |
| 705 | 705 |
| --- src/wiki.c | |
| +++ src/wiki.c | |
| @@ -88,14 +88,14 @@ | |
| 88 | while( zIndexPage[0]=='/' ) zIndexPage++; |
| 89 | while( zPathInfo[0]=='/' ) zPathInfo++; |
| 90 | if( strcmp(zIndexPage, zPathInfo)==0 ) zIndexPage = 0; |
| 91 | } |
| 92 | if( zIndexPage ){ |
| 93 | cgi_redirectf("%s/%s", g.zBaseURL, zIndexPage); |
| 94 | } |
| 95 | if( !g.okRdWiki ){ |
| 96 | cgi_redirectf("%s/login?g=%s/home", g.zBaseURL, g.zBaseURL); |
| 97 | } |
| 98 | if( zPageName ){ |
| 99 | login_check_credentials(); |
| 100 | g.zExtra = zPageName; |
| 101 | cgi_set_parameter_nocopy("name", g.zExtra); |
| @@ -104,11 +104,11 @@ | |
| 104 | return; |
| 105 | } |
| 106 | style_header("Home"); |
| 107 | @ <p>This is a stub home-page for the project. |
| 108 | @ To fill in this page, first go to |
| 109 | @ <a href="%s(g.zBaseURL)/setup_config">setup/config</a> |
| 110 | @ and establish a "Project Name". Then create a |
| 111 | @ wiki page with that name. The content of that wiki page |
| 112 | @ will be displayed in place of this message.</p> |
| 113 | style_footer(); |
| 114 | } |
| @@ -142,29 +142,29 @@ | |
| 142 | if( zPageName==0 ){ |
| 143 | style_header("Wiki"); |
| 144 | @ <ul> |
| 145 | { char *zHomePageName = db_get("project-name",0); |
| 146 | if( zHomePageName ){ |
| 147 | @ <li> <a href="%s(g.zBaseURL)/wiki?name=%t(zHomePageName)"> |
| 148 | @ %h(zHomePageName)</a> wiki home page.</li> |
| 149 | } |
| 150 | } |
| 151 | @ <li> <a href="%s(g.zBaseURL)/timeline?y=w">Recent changes</a> to wiki |
| 152 | @ pages. </li> |
| 153 | @ <li> <a href="%s(g.zBaseURL)/wiki_rules">Formatting rules</a> for |
| 154 | @ wiki.</li> |
| 155 | @ <li> Use the <a href="%s(g.zBaseURL)/wiki?name=Sandbox">Sandbox</a> |
| 156 | @ to experiment.</li> |
| 157 | if( g.okNewWiki ){ |
| 158 | @ <li> Create a <a href="%s(g.zBaseURL)/wikinew">new wiki page</a>.</li> |
| 159 | if( g.okWrite ){ |
| 160 | @ <li> Create a <a href="%s(g.zTop)/eventedit">new event</a>.</li> |
| 161 | } |
| 162 | } |
| 163 | @ <li> <a href="%s(g.zBaseURL)/wcontent">List of All Wiki Pages</a> |
| 164 | @ available on this server.</li> |
| 165 | @ <li> <form method="get" action="%s(g.zBaseURL)/wfind"><div> |
| 166 | @ Search wiki titles: <input type="text" name="title"/> |
| 167 | @ <input type="submit" /></div></form> |
| 168 | @ </li> |
| 169 | @ </ul> |
| 170 | style_footer(); |
| @@ -353,11 +353,11 @@ | |
| 353 | for(n=2, z=zBody; z[0]; z++){ |
| 354 | if( z[0]=='\n' ) n++; |
| 355 | } |
| 356 | if( n<20 ) n = 20; |
| 357 | if( n>40 ) n = 40; |
| 358 | @ <form method="post" action="%s(g.zBaseURL)/wikiedit"><div> |
| 359 | login_insert_csrf_secret(); |
| 360 | @ <input type="hidden" name="name" value="%h(zPageName)" /> |
| 361 | @ <textarea name="w" class="wikiedit" cols="80" |
| 362 | @ rows="%d(n)" wrap="virtual">%h(zBody)</textarea> |
| 363 | @ <br /> |
| @@ -388,11 +388,11 @@ | |
| 388 | cgi_redirectf("wikiedit?name=%T", zName); |
| 389 | } |
| 390 | style_header("Create A New Wiki Page"); |
| 391 | @ <p>Rules for wiki page names:</p> |
| 392 | well_formed_wiki_name_rules(); |
| 393 | @ <form method="post" action="%s(g.zBaseURL)/wikinew"> |
| 394 | @ <p>Name of new wiki page: |
| 395 | @ <input style="width: 35;" type="text" name="name" value="%h(zName)" /> |
| 396 | @ <input type="submit" value="Create" /> |
| 397 | @ </p></form> |
| 398 | if( zName[0] ){ |
| @@ -520,11 +520,11 @@ | |
| 520 | wiki_convert(&preview, 0, 0); |
| 521 | @ <hr> |
| 522 | blob_reset(&preview); |
| 523 | } |
| 524 | zUser = PD("u", g.zLogin); |
| 525 | @ <form method="post" action="%s(g.zBaseURL)/wikiappend"> |
| 526 | login_insert_csrf_secret(); |
| 527 | @ <input type="hidden" name="name" value="%h(zPageName)" /> |
| 528 | @ Your Name: |
| 529 | @ <input type="text" name="u" size="20" value="%h(zUser)" /><br /> |
| 530 | @ Comment to append:<br /> |
| @@ -694,11 +694,11 @@ | |
| 694 | "SELECT substr(tagname, 6, 1000) FROM tag WHERE tagname like 'wiki-%%%q%%'" |
| 695 | " ORDER BY lower(tagname) /*sort*/" , |
| 696 | zTitle); |
| 697 | while( db_step(&q)==SQLITE_ROW ){ |
| 698 | const char *zName = db_column_text(&q, 0); |
| 699 | @ <li><a href="%s(g.zBaseURL)/wiki?name=%T(zName)">%h(zName)</a></li> |
| 700 | } |
| 701 | db_finalize(&q); |
| 702 | @ </ul> |
| 703 | style_footer(); |
| 704 | } |
| 705 |
| --- src/wiki.c | |
| +++ src/wiki.c | |
| @@ -88,14 +88,14 @@ | |
| 88 | while( zIndexPage[0]=='/' ) zIndexPage++; |
| 89 | while( zPathInfo[0]=='/' ) zPathInfo++; |
| 90 | if( strcmp(zIndexPage, zPathInfo)==0 ) zIndexPage = 0; |
| 91 | } |
| 92 | if( zIndexPage ){ |
| 93 | cgi_redirectf("%s/%s", g.zTop, zIndexPage); |
| 94 | } |
| 95 | if( !g.okRdWiki ){ |
| 96 | cgi_redirectf("%s/login?g=%s/home", g.zTop, g.zTop); |
| 97 | } |
| 98 | if( zPageName ){ |
| 99 | login_check_credentials(); |
| 100 | g.zExtra = zPageName; |
| 101 | cgi_set_parameter_nocopy("name", g.zExtra); |
| @@ -104,11 +104,11 @@ | |
| 104 | return; |
| 105 | } |
| 106 | style_header("Home"); |
| 107 | @ <p>This is a stub home-page for the project. |
| 108 | @ To fill in this page, first go to |
| 109 | @ <a href="%s(g.zTop)/setup_config">setup/config</a> |
| 110 | @ and establish a "Project Name". Then create a |
| 111 | @ wiki page with that name. The content of that wiki page |
| 112 | @ will be displayed in place of this message.</p> |
| 113 | style_footer(); |
| 114 | } |
| @@ -142,29 +142,29 @@ | |
| 142 | if( zPageName==0 ){ |
| 143 | style_header("Wiki"); |
| 144 | @ <ul> |
| 145 | { char *zHomePageName = db_get("project-name",0); |
| 146 | if( zHomePageName ){ |
| 147 | @ <li> <a href="%s(g.zTop)/wiki?name=%t(zHomePageName)"> |
| 148 | @ %h(zHomePageName)</a> wiki home page.</li> |
| 149 | } |
| 150 | } |
| 151 | @ <li> <a href="%s(g.zTop)/timeline?y=w">Recent changes</a> to wiki |
| 152 | @ pages. </li> |
| 153 | @ <li> <a href="%s(g.zTop)/wiki_rules">Formatting rules</a> for |
| 154 | @ wiki.</li> |
| 155 | @ <li> Use the <a href="%s(g.zTop)/wiki?name=Sandbox">Sandbox</a> |
| 156 | @ to experiment.</li> |
| 157 | if( g.okNewWiki ){ |
| 158 | @ <li> Create a <a href="%s(g.zTop)/wikinew">new wiki page</a>.</li> |
| 159 | if( g.okWrite ){ |
| 160 | @ <li> Create a <a href="%s(g.zTop)/eventedit">new event</a>.</li> |
| 161 | } |
| 162 | } |
| 163 | @ <li> <a href="%s(g.zTop)/wcontent">List of All Wiki Pages</a> |
| 164 | @ available on this server.</li> |
| 165 | @ <li> <form method="get" action="%s(g.zTop)/wfind"><div> |
| 166 | @ Search wiki titles: <input type="text" name="title"/> |
| 167 | @ <input type="submit" /></div></form> |
| 168 | @ </li> |
| 169 | @ </ul> |
| 170 | style_footer(); |
| @@ -353,11 +353,11 @@ | |
| 353 | for(n=2, z=zBody; z[0]; z++){ |
| 354 | if( z[0]=='\n' ) n++; |
| 355 | } |
| 356 | if( n<20 ) n = 20; |
| 357 | if( n>40 ) n = 40; |
| 358 | @ <form method="post" action="%s(g.zTop)/wikiedit"><div> |
| 359 | login_insert_csrf_secret(); |
| 360 | @ <input type="hidden" name="name" value="%h(zPageName)" /> |
| 361 | @ <textarea name="w" class="wikiedit" cols="80" |
| 362 | @ rows="%d(n)" wrap="virtual">%h(zBody)</textarea> |
| 363 | @ <br /> |
| @@ -388,11 +388,11 @@ | |
| 388 | cgi_redirectf("wikiedit?name=%T", zName); |
| 389 | } |
| 390 | style_header("Create A New Wiki Page"); |
| 391 | @ <p>Rules for wiki page names:</p> |
| 392 | well_formed_wiki_name_rules(); |
| 393 | @ <form method="post" action="%s(g.zTop)/wikinew"> |
| 394 | @ <p>Name of new wiki page: |
| 395 | @ <input style="width: 35;" type="text" name="name" value="%h(zName)" /> |
| 396 | @ <input type="submit" value="Create" /> |
| 397 | @ </p></form> |
| 398 | if( zName[0] ){ |
| @@ -520,11 +520,11 @@ | |
| 520 | wiki_convert(&preview, 0, 0); |
| 521 | @ <hr> |
| 522 | blob_reset(&preview); |
| 523 | } |
| 524 | zUser = PD("u", g.zLogin); |
| 525 | @ <form method="post" action="%s(g.zTop)/wikiappend"> |
| 526 | login_insert_csrf_secret(); |
| 527 | @ <input type="hidden" name="name" value="%h(zPageName)" /> |
| 528 | @ Your Name: |
| 529 | @ <input type="text" name="u" size="20" value="%h(zUser)" /><br /> |
| 530 | @ Comment to append:<br /> |
| @@ -694,11 +694,11 @@ | |
| 694 | "SELECT substr(tagname, 6, 1000) FROM tag WHERE tagname like 'wiki-%%%q%%'" |
| 695 | " ORDER BY lower(tagname) /*sort*/" , |
| 696 | zTitle); |
| 697 | while( db_step(&q)==SQLITE_ROW ){ |
| 698 | const char *zName = db_column_text(&q, 0); |
| 699 | @ <li><a href="%s(g.zTop)/wiki?name=%T(zName)">%h(zName)</a></li> |
| 700 | } |
| 701 | db_finalize(&q); |
| 702 | @ </ul> |
| 703 | style_footer(); |
| 704 | } |
| 705 |
+8
-8
| --- src/wikiformat.c | ||
| +++ src/wikiformat.c | ||
| @@ -774,11 +774,11 @@ | ||
| 774 | 774 | for(i=0; i<p->nAttr; i++){ |
| 775 | 775 | blob_appendf(pOut, " %s", aAttribute[p->aAttr[i].iACode].zName); |
| 776 | 776 | if( p->aAttr[i].zValue ){ |
| 777 | 777 | const char *zVal = p->aAttr[i].zValue; |
| 778 | 778 | if( p->aAttr[i].iACode==ATTR_SRC && zVal[0]=='/' ){ |
| 779 | - blob_appendf(pOut, "=\"%s%s\"", g.zBaseURL, zVal); | |
| 779 | + blob_appendf(pOut, "=\"%s%s\"", g.zTop, zVal); | |
| 780 | 780 | }else{ |
| 781 | 781 | blob_appendf(pOut, "=\"%s\"", zVal); |
| 782 | 782 | } |
| 783 | 783 | } |
| 784 | 784 | } |
| @@ -1025,11 +1025,11 @@ | ||
| 1025 | 1025 | ){ |
| 1026 | 1026 | blob_appendf(p->pOut, "<a href=\"%s\">", zTarget); |
| 1027 | 1027 | /* zTerm = "⟾</a>"; // doesn't work on windows */ |
| 1028 | 1028 | }else if( zTarget[0]=='/' ){ |
| 1029 | 1029 | if( 1 /* g.okHistory */ ){ |
| 1030 | - blob_appendf(p->pOut, "<a href=\"%s%h\">", g.zBaseURL, zTarget); | |
| 1030 | + blob_appendf(p->pOut, "<a href=\"%s%h\">", g.zTop, zTarget); | |
| 1031 | 1031 | }else{ |
| 1032 | 1032 | zTerm = ""; |
| 1033 | 1033 | } |
| 1034 | 1034 | }else if( zTarget[0]=='.' || zTarget[0]=='#' ){ |
| 1035 | 1035 | if( 1 /* g.okHistory */ ){ |
| @@ -1045,38 +1045,38 @@ | ||
| 1045 | 1045 | */ |
| 1046 | 1046 | if( isClosed ){ |
| 1047 | 1047 | if( g.okHistory ){ |
| 1048 | 1048 | blob_appendf(p->pOut, |
| 1049 | 1049 | "<a href=\"%s/info/%s\"><span class=\"wikiTagCancelled\">", |
| 1050 | - g.zBaseURL, zTarget | |
| 1050 | + g.zTop, zTarget | |
| 1051 | 1051 | ); |
| 1052 | 1052 | zTerm = "</span></a>"; |
| 1053 | 1053 | }else{ |
| 1054 | 1054 | blob_appendf(p->pOut,"<span class=\"wikiTagCancelled\">"); |
| 1055 | 1055 | zTerm = "</span>"; |
| 1056 | 1056 | } |
| 1057 | 1057 | }else{ |
| 1058 | 1058 | if( g.okHistory ){ |
| 1059 | 1059 | blob_appendf(p->pOut,"<a href=\"%s/info/%s\">", |
| 1060 | - g.zBaseURL, zTarget | |
| 1060 | + g.zTop, zTarget | |
| 1061 | 1061 | ); |
| 1062 | 1062 | }else{ |
| 1063 | 1063 | zTerm = ""; |
| 1064 | 1064 | } |
| 1065 | 1065 | } |
| 1066 | 1066 | }else if( g.okHistory ){ |
| 1067 | - blob_appendf(p->pOut, "<a href=\"%s/info/%s\">", g.zBaseURL, zTarget); | |
| 1067 | + blob_appendf(p->pOut, "<a href=\"%s/info/%s\">", g.zTop, zTarget); | |
| 1068 | 1068 | } |
| 1069 | 1069 | }else if( strlen(zTarget)>=10 && fossil_isdigit(zTarget[0]) && zTarget[4]=='-' |
| 1070 | 1070 | && db_int(0, "SELECT datetime(%Q) NOT NULL", zTarget) ){ |
| 1071 | - blob_appendf(p->pOut, "<a href=\"%s/timeline?c=%T\">", g.zBaseURL, zTarget); | |
| 1071 | + blob_appendf(p->pOut, "<a href=\"%s/timeline?c=%T\">", g.zTop, zTarget); | |
| 1072 | 1072 | }else if( strncmp(zTarget, "wiki:", 5)==0 |
| 1073 | 1073 | && wiki_name_is_wellformed((const unsigned char*)zTarget) ){ |
| 1074 | 1074 | zTarget += 5; |
| 1075 | - blob_appendf(p->pOut, "<a href=\"%s/wiki?name=%T\">", g.zBaseURL, zTarget); | |
| 1075 | + blob_appendf(p->pOut, "<a href=\"%s/wiki?name=%T\">", g.zTop, zTarget); | |
| 1076 | 1076 | }else if( wiki_name_is_wellformed((const unsigned char *)zTarget) ){ |
| 1077 | - blob_appendf(p->pOut, "<a href=\"%s/wiki?name=%T\">", g.zBaseURL, zTarget); | |
| 1077 | + blob_appendf(p->pOut, "<a href=\"%s/wiki?name=%T\">", g.zTop, zTarget); | |
| 1078 | 1078 | }else{ |
| 1079 | 1079 | blob_appendf(p->pOut, "[bad-link: %h]", zTarget); |
| 1080 | 1080 | zTerm = ""; |
| 1081 | 1081 | } |
| 1082 | 1082 | assert( strlen(zTerm)<nClose ); |
| 1083 | 1083 |
| --- src/wikiformat.c | |
| +++ src/wikiformat.c | |
| @@ -774,11 +774,11 @@ | |
| 774 | for(i=0; i<p->nAttr; i++){ |
| 775 | blob_appendf(pOut, " %s", aAttribute[p->aAttr[i].iACode].zName); |
| 776 | if( p->aAttr[i].zValue ){ |
| 777 | const char *zVal = p->aAttr[i].zValue; |
| 778 | if( p->aAttr[i].iACode==ATTR_SRC && zVal[0]=='/' ){ |
| 779 | blob_appendf(pOut, "=\"%s%s\"", g.zBaseURL, zVal); |
| 780 | }else{ |
| 781 | blob_appendf(pOut, "=\"%s\"", zVal); |
| 782 | } |
| 783 | } |
| 784 | } |
| @@ -1025,11 +1025,11 @@ | |
| 1025 | ){ |
| 1026 | blob_appendf(p->pOut, "<a href=\"%s\">", zTarget); |
| 1027 | /* zTerm = "⟾</a>"; // doesn't work on windows */ |
| 1028 | }else if( zTarget[0]=='/' ){ |
| 1029 | if( 1 /* g.okHistory */ ){ |
| 1030 | blob_appendf(p->pOut, "<a href=\"%s%h\">", g.zBaseURL, zTarget); |
| 1031 | }else{ |
| 1032 | zTerm = ""; |
| 1033 | } |
| 1034 | }else if( zTarget[0]=='.' || zTarget[0]=='#' ){ |
| 1035 | if( 1 /* g.okHistory */ ){ |
| @@ -1045,38 +1045,38 @@ | |
| 1045 | */ |
| 1046 | if( isClosed ){ |
| 1047 | if( g.okHistory ){ |
| 1048 | blob_appendf(p->pOut, |
| 1049 | "<a href=\"%s/info/%s\"><span class=\"wikiTagCancelled\">", |
| 1050 | g.zBaseURL, zTarget |
| 1051 | ); |
| 1052 | zTerm = "</span></a>"; |
| 1053 | }else{ |
| 1054 | blob_appendf(p->pOut,"<span class=\"wikiTagCancelled\">"); |
| 1055 | zTerm = "</span>"; |
| 1056 | } |
| 1057 | }else{ |
| 1058 | if( g.okHistory ){ |
| 1059 | blob_appendf(p->pOut,"<a href=\"%s/info/%s\">", |
| 1060 | g.zBaseURL, zTarget |
| 1061 | ); |
| 1062 | }else{ |
| 1063 | zTerm = ""; |
| 1064 | } |
| 1065 | } |
| 1066 | }else if( g.okHistory ){ |
| 1067 | blob_appendf(p->pOut, "<a href=\"%s/info/%s\">", g.zBaseURL, zTarget); |
| 1068 | } |
| 1069 | }else if( strlen(zTarget)>=10 && fossil_isdigit(zTarget[0]) && zTarget[4]=='-' |
| 1070 | && db_int(0, "SELECT datetime(%Q) NOT NULL", zTarget) ){ |
| 1071 | blob_appendf(p->pOut, "<a href=\"%s/timeline?c=%T\">", g.zBaseURL, zTarget); |
| 1072 | }else if( strncmp(zTarget, "wiki:", 5)==0 |
| 1073 | && wiki_name_is_wellformed((const unsigned char*)zTarget) ){ |
| 1074 | zTarget += 5; |
| 1075 | blob_appendf(p->pOut, "<a href=\"%s/wiki?name=%T\">", g.zBaseURL, zTarget); |
| 1076 | }else if( wiki_name_is_wellformed((const unsigned char *)zTarget) ){ |
| 1077 | blob_appendf(p->pOut, "<a href=\"%s/wiki?name=%T\">", g.zBaseURL, zTarget); |
| 1078 | }else{ |
| 1079 | blob_appendf(p->pOut, "[bad-link: %h]", zTarget); |
| 1080 | zTerm = ""; |
| 1081 | } |
| 1082 | assert( strlen(zTerm)<nClose ); |
| 1083 |
| --- src/wikiformat.c | |
| +++ src/wikiformat.c | |
| @@ -774,11 +774,11 @@ | |
| 774 | for(i=0; i<p->nAttr; i++){ |
| 775 | blob_appendf(pOut, " %s", aAttribute[p->aAttr[i].iACode].zName); |
| 776 | if( p->aAttr[i].zValue ){ |
| 777 | const char *zVal = p->aAttr[i].zValue; |
| 778 | if( p->aAttr[i].iACode==ATTR_SRC && zVal[0]=='/' ){ |
| 779 | blob_appendf(pOut, "=\"%s%s\"", g.zTop, zVal); |
| 780 | }else{ |
| 781 | blob_appendf(pOut, "=\"%s\"", zVal); |
| 782 | } |
| 783 | } |
| 784 | } |
| @@ -1025,11 +1025,11 @@ | |
| 1025 | ){ |
| 1026 | blob_appendf(p->pOut, "<a href=\"%s\">", zTarget); |
| 1027 | /* zTerm = "⟾</a>"; // doesn't work on windows */ |
| 1028 | }else if( zTarget[0]=='/' ){ |
| 1029 | if( 1 /* g.okHistory */ ){ |
| 1030 | blob_appendf(p->pOut, "<a href=\"%s%h\">", g.zTop, zTarget); |
| 1031 | }else{ |
| 1032 | zTerm = ""; |
| 1033 | } |
| 1034 | }else if( zTarget[0]=='.' || zTarget[0]=='#' ){ |
| 1035 | if( 1 /* g.okHistory */ ){ |
| @@ -1045,38 +1045,38 @@ | |
| 1045 | */ |
| 1046 | if( isClosed ){ |
| 1047 | if( g.okHistory ){ |
| 1048 | blob_appendf(p->pOut, |
| 1049 | "<a href=\"%s/info/%s\"><span class=\"wikiTagCancelled\">", |
| 1050 | g.zTop, zTarget |
| 1051 | ); |
| 1052 | zTerm = "</span></a>"; |
| 1053 | }else{ |
| 1054 | blob_appendf(p->pOut,"<span class=\"wikiTagCancelled\">"); |
| 1055 | zTerm = "</span>"; |
| 1056 | } |
| 1057 | }else{ |
| 1058 | if( g.okHistory ){ |
| 1059 | blob_appendf(p->pOut,"<a href=\"%s/info/%s\">", |
| 1060 | g.zTop, zTarget |
| 1061 | ); |
| 1062 | }else{ |
| 1063 | zTerm = ""; |
| 1064 | } |
| 1065 | } |
| 1066 | }else if( g.okHistory ){ |
| 1067 | blob_appendf(p->pOut, "<a href=\"%s/info/%s\">", g.zTop, zTarget); |
| 1068 | } |
| 1069 | }else if( strlen(zTarget)>=10 && fossil_isdigit(zTarget[0]) && zTarget[4]=='-' |
| 1070 | && db_int(0, "SELECT datetime(%Q) NOT NULL", zTarget) ){ |
| 1071 | blob_appendf(p->pOut, "<a href=\"%s/timeline?c=%T\">", g.zTop, zTarget); |
| 1072 | }else if( strncmp(zTarget, "wiki:", 5)==0 |
| 1073 | && wiki_name_is_wellformed((const unsigned char*)zTarget) ){ |
| 1074 | zTarget += 5; |
| 1075 | blob_appendf(p->pOut, "<a href=\"%s/wiki?name=%T\">", g.zTop, zTarget); |
| 1076 | }else if( wiki_name_is_wellformed((const unsigned char *)zTarget) ){ |
| 1077 | blob_appendf(p->pOut, "<a href=\"%s/wiki?name=%T\">", g.zTop, zTarget); |
| 1078 | }else{ |
| 1079 | blob_appendf(p->pOut, "[bad-link: %h]", zTarget); |
| 1080 | zTerm = ""; |
| 1081 | } |
| 1082 | assert( strlen(zTerm)<nClose ); |
| 1083 |