Fossil SCM

Corrected ability to be able to select the repository's configured skin, rather than just built-ins.

stephan 2021-03-02 08:09 skin-preference-cookie
Commit 5289ab2a458c60310fdfb5631a6529e89e40aef37cb2e3d6c0b24dd9cd61a084
1 file changed +15 -1
+15 -1
--- src/skins.c
+++ src/skins.c
@@ -133,10 +133,14 @@
133133
** illegal it is silently ignored.
134134
**
135135
** 3) Skin properties from the CONFIG db table
136136
**
137137
** 4) Default skin.
138
+**
139
+** As a special case, the name "_repo" resets zAltSkinDir and
140
+** pAltSkin to 0 to indicate that the current config-side skin should
141
+** be used (rank 3, above), then returns 0.
138142
*/
139143
char *skin_use_alternative(const char *zName, int rank){
140144
static int currentRank = 5;
141145
int i;
142146
Blob err = BLOB_INITIALIZER;
@@ -146,10 +150,15 @@
146150
return 0;
147151
}
148152
if( sqlite3_strglob("draft[1-9]", zName)==0 ){
149153
skin_use_draft(zName[5] - '0');
150154
return 0;
155
+ }
156
+ if(zName && 0==strcmp("_repo",zName)){
157
+ pAltSkin = 0;
158
+ zAltSkinDir = 0;
159
+ return 0;
151160
}
152161
for(i=0; i<count(aBuiltinSkin); i++){
153162
if( fossil_strcmp(aBuiltinSkin[i].zLabel, zName)==0 ){
154163
pAltSkin = &aBuiltinSkin[i];
155164
return 0;
@@ -1195,17 +1204,22 @@
11951204
@ configures the site to run without a forced hard-coded skin.
11961205
@ </p>
11971206
}
11981207
@ <p>The following skins are available for this repository:</p>
11991208
@ <ul>
1209
+ if( pAltSkin==0 && zAltSkinDir==0 && iDraftSkin==0 ){
1210
+ @ <li> Standard skin for this repository &larr; <i>Currently in use</i>
1211
+ }else{
1212
+ @ <li> %z(href("%R/skins?skin=_repo"))Standard skin for this repository</a>
1213
+ }
12001214
for(i=0; i<count(aBuiltinSkin); i++){
12011215
if( pAltSkin==&aBuiltinSkin[i] ){
12021216
@ <li> %h(aBuiltinSkin[i].zDesc) &larr; <i>Currently in use</i>
12031217
}else{
1204
- char *zUrl = href("%s/skins?skin=%T", zBase, aBuiltinSkin[i].zLabel);
1218
+ char *zUrl = href("%R/skins?skin=%T", aBuiltinSkin[i].zLabel);
12051219
@ <li> %z(zUrl)%h(aBuiltinSkin[i].zDesc)</a>
12061220
}
12071221
}
12081222
@ </ul>
12091223
style_finish_page();
12101224
fossil_free(zBase);
12111225
}
12121226
--- src/skins.c
+++ src/skins.c
@@ -133,10 +133,14 @@
133 ** illegal it is silently ignored.
134 **
135 ** 3) Skin properties from the CONFIG db table
136 **
137 ** 4) Default skin.
 
 
 
 
138 */
139 char *skin_use_alternative(const char *zName, int rank){
140 static int currentRank = 5;
141 int i;
142 Blob err = BLOB_INITIALIZER;
@@ -146,10 +150,15 @@
146 return 0;
147 }
148 if( sqlite3_strglob("draft[1-9]", zName)==0 ){
149 skin_use_draft(zName[5] - '0');
150 return 0;
 
 
 
 
 
151 }
152 for(i=0; i<count(aBuiltinSkin); i++){
153 if( fossil_strcmp(aBuiltinSkin[i].zLabel, zName)==0 ){
154 pAltSkin = &aBuiltinSkin[i];
155 return 0;
@@ -1195,17 +1204,22 @@
1195 @ configures the site to run without a forced hard-coded skin.
1196 @ </p>
1197 }
1198 @ <p>The following skins are available for this repository:</p>
1199 @ <ul>
 
 
 
 
 
1200 for(i=0; i<count(aBuiltinSkin); i++){
1201 if( pAltSkin==&aBuiltinSkin[i] ){
1202 @ <li> %h(aBuiltinSkin[i].zDesc) &larr; <i>Currently in use</i>
1203 }else{
1204 char *zUrl = href("%s/skins?skin=%T", zBase, aBuiltinSkin[i].zLabel);
1205 @ <li> %z(zUrl)%h(aBuiltinSkin[i].zDesc)</a>
1206 }
1207 }
1208 @ </ul>
1209 style_finish_page();
1210 fossil_free(zBase);
1211 }
1212
--- src/skins.c
+++ src/skins.c
@@ -133,10 +133,14 @@
133 ** illegal it is silently ignored.
134 **
135 ** 3) Skin properties from the CONFIG db table
136 **
137 ** 4) Default skin.
138 **
139 ** As a special case, the name "_repo" resets zAltSkinDir and
140 ** pAltSkin to 0 to indicate that the current config-side skin should
141 ** be used (rank 3, above), then returns 0.
142 */
143 char *skin_use_alternative(const char *zName, int rank){
144 static int currentRank = 5;
145 int i;
146 Blob err = BLOB_INITIALIZER;
@@ -146,10 +150,15 @@
150 return 0;
151 }
152 if( sqlite3_strglob("draft[1-9]", zName)==0 ){
153 skin_use_draft(zName[5] - '0');
154 return 0;
155 }
156 if(zName && 0==strcmp("_repo",zName)){
157 pAltSkin = 0;
158 zAltSkinDir = 0;
159 return 0;
160 }
161 for(i=0; i<count(aBuiltinSkin); i++){
162 if( fossil_strcmp(aBuiltinSkin[i].zLabel, zName)==0 ){
163 pAltSkin = &aBuiltinSkin[i];
164 return 0;
@@ -1195,17 +1204,22 @@
1204 @ configures the site to run without a forced hard-coded skin.
1205 @ </p>
1206 }
1207 @ <p>The following skins are available for this repository:</p>
1208 @ <ul>
1209 if( pAltSkin==0 && zAltSkinDir==0 && iDraftSkin==0 ){
1210 @ <li> Standard skin for this repository &larr; <i>Currently in use</i>
1211 }else{
1212 @ <li> %z(href("%R/skins?skin=_repo"))Standard skin for this repository</a>
1213 }
1214 for(i=0; i<count(aBuiltinSkin); i++){
1215 if( pAltSkin==&aBuiltinSkin[i] ){
1216 @ <li> %h(aBuiltinSkin[i].zDesc) &larr; <i>Currently in use</i>
1217 }else{
1218 char *zUrl = href("%R/skins?skin=%T", aBuiltinSkin[i].zLabel);
1219 @ <li> %z(zUrl)%h(aBuiltinSkin[i].zDesc)</a>
1220 }
1221 }
1222 @ </ul>
1223 style_finish_page();
1224 fossil_free(zBase);
1225 }
1226

Keyboard Shortcuts

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