Fossil SCM
Corrected ability to be able to select the repository's configured skin, rather than just built-ins.
Commit
5289ab2a458c60310fdfb5631a6529e89e40aef37cb2e3d6c0b24dd9cd61a084
Parent
c05ec7d924dfe78…
1 file changed
+15
-1
+15
-1
| --- src/skins.c | ||
| +++ src/skins.c | ||
| @@ -133,10 +133,14 @@ | ||
| 133 | 133 | ** illegal it is silently ignored. |
| 134 | 134 | ** |
| 135 | 135 | ** 3) Skin properties from the CONFIG db table |
| 136 | 136 | ** |
| 137 | 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. | |
| 138 | 142 | */ |
| 139 | 143 | char *skin_use_alternative(const char *zName, int rank){ |
| 140 | 144 | static int currentRank = 5; |
| 141 | 145 | int i; |
| 142 | 146 | Blob err = BLOB_INITIALIZER; |
| @@ -146,10 +150,15 @@ | ||
| 146 | 150 | return 0; |
| 147 | 151 | } |
| 148 | 152 | if( sqlite3_strglob("draft[1-9]", zName)==0 ){ |
| 149 | 153 | skin_use_draft(zName[5] - '0'); |
| 150 | 154 | return 0; |
| 155 | + } | |
| 156 | + if(zName && 0==strcmp("_repo",zName)){ | |
| 157 | + pAltSkin = 0; | |
| 158 | + zAltSkinDir = 0; | |
| 159 | + return 0; | |
| 151 | 160 | } |
| 152 | 161 | for(i=0; i<count(aBuiltinSkin); i++){ |
| 153 | 162 | if( fossil_strcmp(aBuiltinSkin[i].zLabel, zName)==0 ){ |
| 154 | 163 | pAltSkin = &aBuiltinSkin[i]; |
| 155 | 164 | return 0; |
| @@ -1195,17 +1204,22 @@ | ||
| 1195 | 1204 | @ configures the site to run without a forced hard-coded skin. |
| 1196 | 1205 | @ </p> |
| 1197 | 1206 | } |
| 1198 | 1207 | @ <p>The following skins are available for this repository:</p> |
| 1199 | 1208 | @ <ul> |
| 1209 | + if( pAltSkin==0 && zAltSkinDir==0 && iDraftSkin==0 ){ | |
| 1210 | + @ <li> Standard skin for this repository ← <i>Currently in use</i> | |
| 1211 | + }else{ | |
| 1212 | + @ <li> %z(href("%R/skins?skin=_repo"))Standard skin for this repository</a> | |
| 1213 | + } | |
| 1200 | 1214 | for(i=0; i<count(aBuiltinSkin); i++){ |
| 1201 | 1215 | if( pAltSkin==&aBuiltinSkin[i] ){ |
| 1202 | 1216 | @ <li> %h(aBuiltinSkin[i].zDesc) ← <i>Currently in use</i> |
| 1203 | 1217 | }else{ |
| 1204 | - char *zUrl = href("%s/skins?skin=%T", zBase, aBuiltinSkin[i].zLabel); | |
| 1218 | + char *zUrl = href("%R/skins?skin=%T", aBuiltinSkin[i].zLabel); | |
| 1205 | 1219 | @ <li> %z(zUrl)%h(aBuiltinSkin[i].zDesc)</a> |
| 1206 | 1220 | } |
| 1207 | 1221 | } |
| 1208 | 1222 | @ </ul> |
| 1209 | 1223 | style_finish_page(); |
| 1210 | 1224 | fossil_free(zBase); |
| 1211 | 1225 | } |
| 1212 | 1226 |
| --- 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) ← <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 ← <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) ← <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 |