Fossil SCM

Improvements to the setup page, including a button to automatically add the <base> element to the header if it is missing.

drh 2012-08-11 15:06 UTC wysiwyg
Commit bf27074c825143d7ce596555ad4cc9041199c117
1 file changed +35 -13
+35 -13
--- src/setup.c
+++ src/setup.c
@@ -62,11 +62,11 @@
6262
6363
/* Make sure the header contains <base href="...">. Issue a warning
6464
** if it does not. */
6565
if( !cgi_header_contains("<base href=") ){
6666
@ <p class="generalError"><b>Configuration Error:</b> Please add
67
- @ <tt>&lt;base href="$baseurl/" /&gt</tt> after <tt>&lt;head&gt;</tt>
67
+ @ <tt>&lt;base href="$baseurl/"&gt</tt> after <tt>&lt;head&gt;</tt>
6868
@ in the <a href="setup_header">HTML header</a>!</p>
6969
}
7070
7171
@ <table border="0" cellspacing="7">
7272
setup_menu_entry("Users", "setup_ulist",
@@ -878,13 +878,15 @@
878878
login_verify_csrf_secret();
879879
db_set(zVar, zQ, 0);
880880
z = zQ;
881881
}
882882
if( rows>0 && cols>0 ){
883
- @ <textarea name="%s(zQP)" rows="%d(rows)" cols="%d(cols)">%h(z)</textarea>
884
- if (zLabel && *zLabel)
883
+ @ <textarea id="id%s(zQP)" name="%s(zQP)" rows="%d(rows)"
884
+ @ cols="%d(cols)">%h(z)</textarea>
885
+ if (zLabel && *zLabel){
885886
@ <span class="textareaLabel">%s(zLabel)</span>
887
+ }
886888
}
887889
}
888890
889891
890892
/*
@@ -1306,22 +1308,21 @@
13061308
if( P("clear")!=0 ){
13071309
db_multi_exec("DELETE FROM config WHERE name='css'");
13081310
cgi_replace_parameter("css", zDefaultCSS);
13091311
db_end_transaction(0);
13101312
cgi_redirect("setup_editcss");
1311
- }else{
1312
- textarea_attribute(0, 0, 0, "css", "css", zDefaultCSS);
13131313
}
13141314
if( P("submit")!=0 ){
1315
+ textarea_attribute(0, 0, 0, "css", "css", zDefaultCSS);
13151316
db_end_transaction(0);
13161317
cgi_redirect("setup_editcss");
13171318
}
13181319
style_header("Edit CSS");
13191320
@ <form action="%s(g.zTop)/setup_editcss" method="post"><div>
13201321
login_insert_csrf_secret();
13211322
@ Edit the CSS below:<br />
1322
- textarea_attribute("", 40, 80, "css", "css", zDefaultCSS);
1323
+ textarea_attribute("", 35, 80, "css", "css", zDefaultCSS);
13231324
@ <br />
13241325
@ <input type="submit" name="submit" value="Apply Changes" />
13251326
@ <input type="submit" name="clear" value="Revert To Default" />
13261327
@ </div></form>
13271328
@ <p><span class="note">Note:</span> Press your browser Reload button after
@@ -1348,20 +1349,43 @@
13481349
}
13491350
db_begin_transaction();
13501351
if( P("clear")!=0 ){
13511352
db_multi_exec("DELETE FROM config WHERE name='header'");
13521353
cgi_replace_parameter("header", zDefaultHeader);
1353
- }else{
1354
+ }else if( P("submit")!=0 ){
13541355
textarea_attribute(0, 0, 0, "header", "header", zDefaultHeader);
1356
+ }else if( P("fixbase")!=0 ){
1357
+ const char *z = db_get("header", (char*)zDefaultHeader);
1358
+ char *zHead = strstr(z, "<head>");
1359
+ if( strstr(z, "<base href=")==0 && zHead!=0 ){
1360
+ char *zNew;
1361
+ char *zTail = &zHead[6];
1362
+ while( fossil_isspace(zTail[0]) ) zTail++;
1363
+ zNew = mprintf("%.*s\n<base href=\"$baseurl/\" />\n%s",
1364
+ zHead+6-z, z, zTail);
1365
+ cgi_replace_parameter("header", zNew);
1366
+ db_set("header", zNew, 0);
1367
+ }
13551368
}
1369
+
13561370
style_header("Edit Page Header");
1357
- @ <form action="%s(g.zTop)/setup_header" method="post"><div>
1371
+ @ <form action="%R/setup_header" method="post"><div>
1372
+
1373
+ /* Make sure the header contains <base href="...">. Issue a warning
1374
+ ** if it does not. */
1375
+ if( !cgi_header_contains("<base href=") ){
1376
+ @ <p class="generalError">Please add
1377
+ @ <tt>&lt;base href="$baseurl/"&gt</tt> after <tt>&lt;head&gt;</tt>
1378
+ @ in the header!
1379
+ @ <input type="submit" name="fixbase" value="Add &lt;base&gt; Now"></p>
1380
+ }
1381
+
13581382
login_insert_csrf_secret();
13591383
@ <p>Edit HTML text with embedded TH1 (a TCL dialect) that will be used to
13601384
@ generate the beginning of every page through start of the main
13611385
@ menu.</p>
1362
- textarea_attribute("", 40, 80, "header", "header", zDefaultHeader);
1386
+ textarea_attribute("", 35, 80, "header", "header", zDefaultHeader);
13631387
@ <br />
13641388
@ <input type="submit" name="submit" value="Apply Changes" />
13651389
@ <input type="submit" name="clear" value="Revert To Default" />
13661390
@ </div></form>
13671391
@ <hr />
@@ -1386,13 +1410,12 @@
13861410
}
13871411
db_begin_transaction();
13881412
if( P("clear")!=0 ){
13891413
db_multi_exec("DELETE FROM config WHERE name='footer'");
13901414
cgi_replace_parameter("footer", zDefaultFooter);
1391
- }else{
1392
- textarea_attribute(0, 0, 0, "footer", "footer", zDefaultFooter);
13931415
}
1416
+
13941417
style_header("Edit Page Footer");
13951418
@ <form action="%s(g.zTop)/setup_footer" method="post"><div>
13961419
login_insert_csrf_secret();
13971420
@ <p>Edit HTML text with embedded TH1 (a TCL dialect) that will be used to
13981421
@ generate the end of every page.</p>
@@ -1423,13 +1446,12 @@
14231446
}
14241447
db_begin_transaction();
14251448
if( P("clear")!=0 ){
14261449
db_multi_exec("DELETE FROM config WHERE name GLOB 'adunit*'");
14271450
cgi_replace_parameter("adunit","");
1428
- }else{
1429
- textarea_attribute(0, 0, 0, "adunit", "adunit", "");
14301451
}
1452
+
14311453
style_header("Edit Ad Unit");
14321454
@ <form action="%s(g.zTop)/setup_adunit" method="post"><div>
14331455
login_insert_csrf_secret();
14341456
@ <p>Edit HTML text for an ad unit that will be inserted after the
14351457
@ menu bar and above the content of every page.</p>
14361458
--- src/setup.c
+++ src/setup.c
@@ -62,11 +62,11 @@
62
63 /* Make sure the header contains <base href="...">. Issue a warning
64 ** if it does not. */
65 if( !cgi_header_contains("<base href=") ){
66 @ <p class="generalError"><b>Configuration Error:</b> Please add
67 @ <tt>&lt;base href="$baseurl/" /&gt</tt> after <tt>&lt;head&gt;</tt>
68 @ in the <a href="setup_header">HTML header</a>!</p>
69 }
70
71 @ <table border="0" cellspacing="7">
72 setup_menu_entry("Users", "setup_ulist",
@@ -878,13 +878,15 @@
878 login_verify_csrf_secret();
879 db_set(zVar, zQ, 0);
880 z = zQ;
881 }
882 if( rows>0 && cols>0 ){
883 @ <textarea name="%s(zQP)" rows="%d(rows)" cols="%d(cols)">%h(z)</textarea>
884 if (zLabel && *zLabel)
 
885 @ <span class="textareaLabel">%s(zLabel)</span>
 
886 }
887 }
888
889
890 /*
@@ -1306,22 +1308,21 @@
1306 if( P("clear")!=0 ){
1307 db_multi_exec("DELETE FROM config WHERE name='css'");
1308 cgi_replace_parameter("css", zDefaultCSS);
1309 db_end_transaction(0);
1310 cgi_redirect("setup_editcss");
1311 }else{
1312 textarea_attribute(0, 0, 0, "css", "css", zDefaultCSS);
1313 }
1314 if( P("submit")!=0 ){
 
1315 db_end_transaction(0);
1316 cgi_redirect("setup_editcss");
1317 }
1318 style_header("Edit CSS");
1319 @ <form action="%s(g.zTop)/setup_editcss" method="post"><div>
1320 login_insert_csrf_secret();
1321 @ Edit the CSS below:<br />
1322 textarea_attribute("", 40, 80, "css", "css", zDefaultCSS);
1323 @ <br />
1324 @ <input type="submit" name="submit" value="Apply Changes" />
1325 @ <input type="submit" name="clear" value="Revert To Default" />
1326 @ </div></form>
1327 @ <p><span class="note">Note:</span> Press your browser Reload button after
@@ -1348,20 +1349,43 @@
1348 }
1349 db_begin_transaction();
1350 if( P("clear")!=0 ){
1351 db_multi_exec("DELETE FROM config WHERE name='header'");
1352 cgi_replace_parameter("header", zDefaultHeader);
1353 }else{
1354 textarea_attribute(0, 0, 0, "header", "header", zDefaultHeader);
 
 
 
 
 
 
 
 
 
 
 
 
1355 }
 
1356 style_header("Edit Page Header");
1357 @ <form action="%s(g.zTop)/setup_header" method="post"><div>
 
 
 
 
 
 
 
 
 
 
1358 login_insert_csrf_secret();
1359 @ <p>Edit HTML text with embedded TH1 (a TCL dialect) that will be used to
1360 @ generate the beginning of every page through start of the main
1361 @ menu.</p>
1362 textarea_attribute("", 40, 80, "header", "header", zDefaultHeader);
1363 @ <br />
1364 @ <input type="submit" name="submit" value="Apply Changes" />
1365 @ <input type="submit" name="clear" value="Revert To Default" />
1366 @ </div></form>
1367 @ <hr />
@@ -1386,13 +1410,12 @@
1386 }
1387 db_begin_transaction();
1388 if( P("clear")!=0 ){
1389 db_multi_exec("DELETE FROM config WHERE name='footer'");
1390 cgi_replace_parameter("footer", zDefaultFooter);
1391 }else{
1392 textarea_attribute(0, 0, 0, "footer", "footer", zDefaultFooter);
1393 }
 
1394 style_header("Edit Page Footer");
1395 @ <form action="%s(g.zTop)/setup_footer" method="post"><div>
1396 login_insert_csrf_secret();
1397 @ <p>Edit HTML text with embedded TH1 (a TCL dialect) that will be used to
1398 @ generate the end of every page.</p>
@@ -1423,13 +1446,12 @@
1423 }
1424 db_begin_transaction();
1425 if( P("clear")!=0 ){
1426 db_multi_exec("DELETE FROM config WHERE name GLOB 'adunit*'");
1427 cgi_replace_parameter("adunit","");
1428 }else{
1429 textarea_attribute(0, 0, 0, "adunit", "adunit", "");
1430 }
 
1431 style_header("Edit Ad Unit");
1432 @ <form action="%s(g.zTop)/setup_adunit" method="post"><div>
1433 login_insert_csrf_secret();
1434 @ <p>Edit HTML text for an ad unit that will be inserted after the
1435 @ menu bar and above the content of every page.</p>
1436
--- src/setup.c
+++ src/setup.c
@@ -62,11 +62,11 @@
62
63 /* Make sure the header contains <base href="...">. Issue a warning
64 ** if it does not. */
65 if( !cgi_header_contains("<base href=") ){
66 @ <p class="generalError"><b>Configuration Error:</b> Please add
67 @ <tt>&lt;base href="$baseurl/"&gt</tt> after <tt>&lt;head&gt;</tt>
68 @ in the <a href="setup_header">HTML header</a>!</p>
69 }
70
71 @ <table border="0" cellspacing="7">
72 setup_menu_entry("Users", "setup_ulist",
@@ -878,13 +878,15 @@
878 login_verify_csrf_secret();
879 db_set(zVar, zQ, 0);
880 z = zQ;
881 }
882 if( rows>0 && cols>0 ){
883 @ <textarea id="id%s(zQP)" name="%s(zQP)" rows="%d(rows)"
884 @ cols="%d(cols)">%h(z)</textarea>
885 if (zLabel && *zLabel){
886 @ <span class="textareaLabel">%s(zLabel)</span>
887 }
888 }
889 }
890
891
892 /*
@@ -1306,22 +1308,21 @@
1308 if( P("clear")!=0 ){
1309 db_multi_exec("DELETE FROM config WHERE name='css'");
1310 cgi_replace_parameter("css", zDefaultCSS);
1311 db_end_transaction(0);
1312 cgi_redirect("setup_editcss");
 
 
1313 }
1314 if( P("submit")!=0 ){
1315 textarea_attribute(0, 0, 0, "css", "css", zDefaultCSS);
1316 db_end_transaction(0);
1317 cgi_redirect("setup_editcss");
1318 }
1319 style_header("Edit CSS");
1320 @ <form action="%s(g.zTop)/setup_editcss" method="post"><div>
1321 login_insert_csrf_secret();
1322 @ Edit the CSS below:<br />
1323 textarea_attribute("", 35, 80, "css", "css", zDefaultCSS);
1324 @ <br />
1325 @ <input type="submit" name="submit" value="Apply Changes" />
1326 @ <input type="submit" name="clear" value="Revert To Default" />
1327 @ </div></form>
1328 @ <p><span class="note">Note:</span> Press your browser Reload button after
@@ -1348,20 +1349,43 @@
1349 }
1350 db_begin_transaction();
1351 if( P("clear")!=0 ){
1352 db_multi_exec("DELETE FROM config WHERE name='header'");
1353 cgi_replace_parameter("header", zDefaultHeader);
1354 }else if( P("submit")!=0 ){
1355 textarea_attribute(0, 0, 0, "header", "header", zDefaultHeader);
1356 }else if( P("fixbase")!=0 ){
1357 const char *z = db_get("header", (char*)zDefaultHeader);
1358 char *zHead = strstr(z, "<head>");
1359 if( strstr(z, "<base href=")==0 && zHead!=0 ){
1360 char *zNew;
1361 char *zTail = &zHead[6];
1362 while( fossil_isspace(zTail[0]) ) zTail++;
1363 zNew = mprintf("%.*s\n<base href=\"$baseurl/\" />\n%s",
1364 zHead+6-z, z, zTail);
1365 cgi_replace_parameter("header", zNew);
1366 db_set("header", zNew, 0);
1367 }
1368 }
1369
1370 style_header("Edit Page Header");
1371 @ <form action="%R/setup_header" method="post"><div>
1372
1373 /* Make sure the header contains <base href="...">. Issue a warning
1374 ** if it does not. */
1375 if( !cgi_header_contains("<base href=") ){
1376 @ <p class="generalError">Please add
1377 @ <tt>&lt;base href="$baseurl/"&gt</tt> after <tt>&lt;head&gt;</tt>
1378 @ in the header!
1379 @ <input type="submit" name="fixbase" value="Add &lt;base&gt; Now"></p>
1380 }
1381
1382 login_insert_csrf_secret();
1383 @ <p>Edit HTML text with embedded TH1 (a TCL dialect) that will be used to
1384 @ generate the beginning of every page through start of the main
1385 @ menu.</p>
1386 textarea_attribute("", 35, 80, "header", "header", zDefaultHeader);
1387 @ <br />
1388 @ <input type="submit" name="submit" value="Apply Changes" />
1389 @ <input type="submit" name="clear" value="Revert To Default" />
1390 @ </div></form>
1391 @ <hr />
@@ -1386,13 +1410,12 @@
1410 }
1411 db_begin_transaction();
1412 if( P("clear")!=0 ){
1413 db_multi_exec("DELETE FROM config WHERE name='footer'");
1414 cgi_replace_parameter("footer", zDefaultFooter);
 
 
1415 }
1416
1417 style_header("Edit Page Footer");
1418 @ <form action="%s(g.zTop)/setup_footer" method="post"><div>
1419 login_insert_csrf_secret();
1420 @ <p>Edit HTML text with embedded TH1 (a TCL dialect) that will be used to
1421 @ generate the end of every page.</p>
@@ -1423,13 +1446,12 @@
1446 }
1447 db_begin_transaction();
1448 if( P("clear")!=0 ){
1449 db_multi_exec("DELETE FROM config WHERE name GLOB 'adunit*'");
1450 cgi_replace_parameter("adunit","");
 
 
1451 }
1452
1453 style_header("Edit Ad Unit");
1454 @ <form action="%s(g.zTop)/setup_adunit" method="post"><div>
1455 login_insert_csrf_secret();
1456 @ <p>Edit HTML text for an ad unit that will be inserted after the
1457 @ menu bar and above the content of every page.</p>
1458

Keyboard Shortcuts

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