Fossil SCM

Improvements to the "/skins" page to work better with the new default-skin setting.

drh 2024-02-23 22:35 trunk
Commit 99575d4cbcbc24e60774cbd6927fe33c9f2248a1c6b73b579cb113a17113bc58
1 file changed +13 -6
+13 -6
--- src/skins.c
+++ src/skins.c
@@ -736,10 +736,11 @@
736736
@ (Selected)
737737
seenDefault = 1;
738738
}
739739
if( pAltSkin==&aBuiltinSkin[i] && iSkinSource!=SKIN_FROM_SETTING ){
740740
@ (Override)
741
+ zOverride = z;
741742
}
742743
@ </form></td></tr>
743744
}
744745
if( zOverride ){
745746
@ <tr><td>&nbsp;<td colspan="3">
@@ -1345,10 +1346,11 @@
13451346
*/
13461347
void skins_page(void){
13471348
int i;
13481349
char *zBase = fossil_strdup(g.zTop);
13491350
size_t nBase = strlen(zBase);
1351
+ login_check_credentials();
13501352
if( iDraftSkin && sqlite3_strglob("*/draft?", zBase)==0 ){
13511353
nBase -= 7;
13521354
zBase[nBase] = 0;
13531355
}else if( pAltSkin ){
13541356
char *zPattern = mprintf("*/skn_%s", pAltSkin->zLabel);
@@ -1356,11 +1358,10 @@
13561358
nBase -= strlen(zPattern)-1;
13571359
zBase[nBase] = 0;
13581360
}
13591361
fossil_free(zPattern);
13601362
}
1361
- login_check_credentials();
13621363
style_header("Skins");
13631364
if( iDraftSkin || nSkinRank<=1 ){
13641365
@ <p class="warning">Warning:
13651366
if( iDraftSkin>0 ){
13661367
@ you are using a draft skin,
@@ -1375,15 +1376,10 @@
13751376
@ higher-priority skin in place.
13761377
@ </p>
13771378
}
13781379
@ <p>The following skins are available for this repository:</p>
13791380
@ <ul>
1380
- if( pAltSkin==0 && zAltSkinDir==0 && iDraftSkin==0 ){
1381
- @ <li> Custom skin for this repository &larr; <i>Currently in use</i>
1382
- }else{
1383
- @ <li> %z(href("%R/skins?skin="))Custom skin for this repository</a>
1384
- }
13851381
for(i=0; i<count(aBuiltinSkin); i++){
13861382
if( pAltSkin==&aBuiltinSkin[i] ){
13871383
@ <li> %h(aBuiltinSkin[i].zDesc) &larr; <i>Currently in use</i>
13881384
}else{
13891385
char *zUrl = href("%R/skins?skin=%T", aBuiltinSkin[i].zLabel);
@@ -1412,9 +1408,20 @@
14121408
break;
14131409
case SKIN_FROM_SETTING:
14141410
@ the "default-skin" setting on the repository.
14151411
break;
14161412
}
1413
+ }
1414
+ if( iSkinSource==SKIN_FROM_COOKIE || iSkinSource==SKIN_FROM_QPARAM ){
1415
+ @ <ul>
1416
+ @ <li> %z(href("%R/skins?skin="))<i>Let Fossil choose \
1417
+ @ which skin to use</i></a>
1418
+ @ </ul>
14171419
}
14181420
style_finish_page();
1421
+ if( P("skin")!=0 ){
1422
+ sqlite3_uint64 x;
1423
+ sqlite3_randomness(sizeof(x), &x);
1424
+ cgi_redirectf("%R/skins/%llx", x);
1425
+ }
14191426
fossil_free(zBase);
14201427
}
14211428
--- src/skins.c
+++ src/skins.c
@@ -736,10 +736,11 @@
736 @ (Selected)
737 seenDefault = 1;
738 }
739 if( pAltSkin==&aBuiltinSkin[i] && iSkinSource!=SKIN_FROM_SETTING ){
740 @ (Override)
 
741 }
742 @ </form></td></tr>
743 }
744 if( zOverride ){
745 @ <tr><td>&nbsp;<td colspan="3">
@@ -1345,10 +1346,11 @@
1345 */
1346 void skins_page(void){
1347 int i;
1348 char *zBase = fossil_strdup(g.zTop);
1349 size_t nBase = strlen(zBase);
 
1350 if( iDraftSkin && sqlite3_strglob("*/draft?", zBase)==0 ){
1351 nBase -= 7;
1352 zBase[nBase] = 0;
1353 }else if( pAltSkin ){
1354 char *zPattern = mprintf("*/skn_%s", pAltSkin->zLabel);
@@ -1356,11 +1358,10 @@
1356 nBase -= strlen(zPattern)-1;
1357 zBase[nBase] = 0;
1358 }
1359 fossil_free(zPattern);
1360 }
1361 login_check_credentials();
1362 style_header("Skins");
1363 if( iDraftSkin || nSkinRank<=1 ){
1364 @ <p class="warning">Warning:
1365 if( iDraftSkin>0 ){
1366 @ you are using a draft skin,
@@ -1375,15 +1376,10 @@
1375 @ higher-priority skin in place.
1376 @ </p>
1377 }
1378 @ <p>The following skins are available for this repository:</p>
1379 @ <ul>
1380 if( pAltSkin==0 && zAltSkinDir==0 && iDraftSkin==0 ){
1381 @ <li> Custom skin for this repository &larr; <i>Currently in use</i>
1382 }else{
1383 @ <li> %z(href("%R/skins?skin="))Custom skin for this repository</a>
1384 }
1385 for(i=0; i<count(aBuiltinSkin); i++){
1386 if( pAltSkin==&aBuiltinSkin[i] ){
1387 @ <li> %h(aBuiltinSkin[i].zDesc) &larr; <i>Currently in use</i>
1388 }else{
1389 char *zUrl = href("%R/skins?skin=%T", aBuiltinSkin[i].zLabel);
@@ -1412,9 +1408,20 @@
1412 break;
1413 case SKIN_FROM_SETTING:
1414 @ the "default-skin" setting on the repository.
1415 break;
1416 }
 
 
 
 
 
 
1417 }
1418 style_finish_page();
 
 
 
 
 
1419 fossil_free(zBase);
1420 }
1421
--- src/skins.c
+++ src/skins.c
@@ -736,10 +736,11 @@
736 @ (Selected)
737 seenDefault = 1;
738 }
739 if( pAltSkin==&aBuiltinSkin[i] && iSkinSource!=SKIN_FROM_SETTING ){
740 @ (Override)
741 zOverride = z;
742 }
743 @ </form></td></tr>
744 }
745 if( zOverride ){
746 @ <tr><td>&nbsp;<td colspan="3">
@@ -1345,10 +1346,11 @@
1346 */
1347 void skins_page(void){
1348 int i;
1349 char *zBase = fossil_strdup(g.zTop);
1350 size_t nBase = strlen(zBase);
1351 login_check_credentials();
1352 if( iDraftSkin && sqlite3_strglob("*/draft?", zBase)==0 ){
1353 nBase -= 7;
1354 zBase[nBase] = 0;
1355 }else if( pAltSkin ){
1356 char *zPattern = mprintf("*/skn_%s", pAltSkin->zLabel);
@@ -1356,11 +1358,10 @@
1358 nBase -= strlen(zPattern)-1;
1359 zBase[nBase] = 0;
1360 }
1361 fossil_free(zPattern);
1362 }
 
1363 style_header("Skins");
1364 if( iDraftSkin || nSkinRank<=1 ){
1365 @ <p class="warning">Warning:
1366 if( iDraftSkin>0 ){
1367 @ you are using a draft skin,
@@ -1375,15 +1376,10 @@
1376 @ higher-priority skin in place.
1377 @ </p>
1378 }
1379 @ <p>The following skins are available for this repository:</p>
1380 @ <ul>
 
 
 
 
 
1381 for(i=0; i<count(aBuiltinSkin); i++){
1382 if( pAltSkin==&aBuiltinSkin[i] ){
1383 @ <li> %h(aBuiltinSkin[i].zDesc) &larr; <i>Currently in use</i>
1384 }else{
1385 char *zUrl = href("%R/skins?skin=%T", aBuiltinSkin[i].zLabel);
@@ -1412,9 +1408,20 @@
1408 break;
1409 case SKIN_FROM_SETTING:
1410 @ the "default-skin" setting on the repository.
1411 break;
1412 }
1413 }
1414 if( iSkinSource==SKIN_FROM_COOKIE || iSkinSource==SKIN_FROM_QPARAM ){
1415 @ <ul>
1416 @ <li> %z(href("%R/skins?skin="))<i>Let Fossil choose \
1417 @ which skin to use</i></a>
1418 @ </ul>
1419 }
1420 style_finish_page();
1421 if( P("skin")!=0 ){
1422 sqlite3_uint64 x;
1423 sqlite3_randomness(sizeof(x), &x);
1424 cgi_redirectf("%R/skins/%llx", x);
1425 }
1426 fossil_free(zBase);
1427 }
1428

Keyboard Shortcuts

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