Fossil SCM

Show the custom skin as an option on the /skins page, if it exists.

drh 2024-02-23 23:29 trunk
Commit b828d8fd59a18b923087ca180de269b25407a4621d684efe3af18a74fa029a00
1 file changed +17 -1
+17 -1
--- src/skins.c
+++ src/skins.c
@@ -195,10 +195,16 @@
195195
}
196196
if(!zName || !*zName){
197197
pAltSkin = 0;
198198
zAltSkinDir = 0;
199199
return 0;
200
+ }
201
+ if( fossil_strcmp(zName, "custom")==0 ){
202
+ pAltSkin = 0;
203
+ zAltSkinDir = 0;
204
+ iSkinSource = iSource;
205
+ return 0;
200206
}
201207
for(i=0; i<count(aBuiltinSkin); i++){
202208
if( fossil_strcmp(aBuiltinSkin[i].zLabel, zName)==0 ){
203209
pAltSkin = &aBuiltinSkin[i];
204210
iSkinSource = iSource;
@@ -283,11 +289,11 @@
283289
zOut = db_get(zWhat, 0);
284290
if( zOut==0 ){
285291
z = mprintf("skins/default/%s.txt", zWhat);
286292
zOut = builtin_text(z);
287293
fossil_free(z);
288
- }else{
294
+ }else if( iSkinSource==SKIN_FROM_DEFAULT ){
289295
iSkinSource = SKIN_FROM_CUSTOM;
290296
}
291297
}
292298
return zOut;
293299
}
@@ -1346,10 +1352,11 @@
13461352
*/
13471353
void skins_page(void){
13481354
int i;
13491355
char *zBase = fossil_strdup(g.zTop);
13501356
size_t nBase = strlen(zBase);
1357
+ const char *z;
13511358
login_check_credentials();
13521359
if( iDraftSkin && sqlite3_strglob("*/draft?", zBase)==0 ){
13531360
nBase -= 7;
13541361
zBase[nBase] = 0;
13551362
}else if( pAltSkin ){
@@ -1376,10 +1383,18 @@
13761383
@ higher-priority skin in place.
13771384
@ </p>
13781385
}
13791386
@ <p>The following skins are available for this repository:</p>
13801387
@ <ul>
1388
+ if( skin_exists_custom() ){
1389
+ if( pAltSkin==0 && zAltSkinDir==0 && iDraftSkin==0 ){
1390
+ @ <li> Custom skin for this repository &larr; <i>Currently in use</i>
1391
+ }else{
1392
+ @ <li> %z(href("%R/skins?skin=custom"))\
1393
+ @ Custom skin for this repository</a>
1394
+ }
1395
+ }
13811396
for(i=0; i<count(aBuiltinSkin); i++){
13821397
if( pAltSkin==&aBuiltinSkin[i] ){
13831398
@ <li> %h(aBuiltinSkin[i].zDesc) &larr; <i>Currently in use</i>
13841399
}else{
13851400
char *zUrl = href("%R/skins?skin=%T", aBuiltinSkin[i].zLabel);
@@ -1409,10 +1424,11 @@
14091424
case SKIN_FROM_SETTING:
14101425
@ the "default-skin" setting on the repository.
14111426
break;
14121427
}
14131428
}
1429
+fprintf(stderr, "iSkinSource = %d\n", iSkinSource);
14141430
if( iSkinSource==SKIN_FROM_COOKIE || iSkinSource==SKIN_FROM_QPARAM ){
14151431
@ <ul>
14161432
@ <li> %z(href("%R/skins?skin="))<i>Let Fossil choose \
14171433
@ which skin to use</i></a>
14181434
@ </ul>
14191435
--- src/skins.c
+++ src/skins.c
@@ -195,10 +195,16 @@
195 }
196 if(!zName || !*zName){
197 pAltSkin = 0;
198 zAltSkinDir = 0;
199 return 0;
 
 
 
 
 
 
200 }
201 for(i=0; i<count(aBuiltinSkin); i++){
202 if( fossil_strcmp(aBuiltinSkin[i].zLabel, zName)==0 ){
203 pAltSkin = &aBuiltinSkin[i];
204 iSkinSource = iSource;
@@ -283,11 +289,11 @@
283 zOut = db_get(zWhat, 0);
284 if( zOut==0 ){
285 z = mprintf("skins/default/%s.txt", zWhat);
286 zOut = builtin_text(z);
287 fossil_free(z);
288 }else{
289 iSkinSource = SKIN_FROM_CUSTOM;
290 }
291 }
292 return zOut;
293 }
@@ -1346,10 +1352,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 ){
@@ -1376,10 +1383,18 @@
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);
@@ -1409,10 +1424,11 @@
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
--- src/skins.c
+++ src/skins.c
@@ -195,10 +195,16 @@
195 }
196 if(!zName || !*zName){
197 pAltSkin = 0;
198 zAltSkinDir = 0;
199 return 0;
200 }
201 if( fossil_strcmp(zName, "custom")==0 ){
202 pAltSkin = 0;
203 zAltSkinDir = 0;
204 iSkinSource = iSource;
205 return 0;
206 }
207 for(i=0; i<count(aBuiltinSkin); i++){
208 if( fossil_strcmp(aBuiltinSkin[i].zLabel, zName)==0 ){
209 pAltSkin = &aBuiltinSkin[i];
210 iSkinSource = iSource;
@@ -283,11 +289,11 @@
289 zOut = db_get(zWhat, 0);
290 if( zOut==0 ){
291 z = mprintf("skins/default/%s.txt", zWhat);
292 zOut = builtin_text(z);
293 fossil_free(z);
294 }else if( iSkinSource==SKIN_FROM_DEFAULT ){
295 iSkinSource = SKIN_FROM_CUSTOM;
296 }
297 }
298 return zOut;
299 }
@@ -1346,10 +1352,11 @@
1352 */
1353 void skins_page(void){
1354 int i;
1355 char *zBase = fossil_strdup(g.zTop);
1356 size_t nBase = strlen(zBase);
1357 const char *z;
1358 login_check_credentials();
1359 if( iDraftSkin && sqlite3_strglob("*/draft?", zBase)==0 ){
1360 nBase -= 7;
1361 zBase[nBase] = 0;
1362 }else if( pAltSkin ){
@@ -1376,10 +1383,18 @@
1383 @ higher-priority skin in place.
1384 @ </p>
1385 }
1386 @ <p>The following skins are available for this repository:</p>
1387 @ <ul>
1388 if( skin_exists_custom() ){
1389 if( pAltSkin==0 && zAltSkinDir==0 && iDraftSkin==0 ){
1390 @ <li> Custom skin for this repository &larr; <i>Currently in use</i>
1391 }else{
1392 @ <li> %z(href("%R/skins?skin=custom"))\
1393 @ Custom skin for this repository</a>
1394 }
1395 }
1396 for(i=0; i<count(aBuiltinSkin); i++){
1397 if( pAltSkin==&aBuiltinSkin[i] ){
1398 @ <li> %h(aBuiltinSkin[i].zDesc) &larr; <i>Currently in use</i>
1399 }else{
1400 char *zUrl = href("%R/skins?skin=%T", aBuiltinSkin[i].zLabel);
@@ -1409,10 +1424,11 @@
1424 case SKIN_FROM_SETTING:
1425 @ the "default-skin" setting on the repository.
1426 break;
1427 }
1428 }
1429 fprintf(stderr, "iSkinSource = %d\n", iSkinSource);
1430 if( iSkinSource==SKIN_FROM_COOKIE || iSkinSource==SKIN_FROM_QPARAM ){
1431 @ <ul>
1432 @ <li> %z(href("%R/skins?skin="))<i>Let Fossil choose \
1433 @ which skin to use</i></a>
1434 @ </ul>
1435

Keyboard Shortcuts

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