Fossil SCM

Add the /skins webpage.

drh 2021-01-27 21:06 trunk
Commit d8ad5a2ec7824d67dcce25e1f0154c4a53b1c101235c55ff068ac607ca93adba
1 file changed +49 -7
+49 -7
--- src/skins.c
+++ src/skins.c
@@ -40,22 +40,22 @@
4040
const char *zDesc; /* Description of this skin */
4141
const char *zLabel; /* The directory under skins/ holding this skin */
4242
char *zSQL; /* Filled in at run-time with SQL to insert this skin */
4343
} aBuiltinSkin[] = {
4444
{ "Default", "default", 0 },
45
+ { "Ardoise", "ardoise", 0 },
46
+ { "Black & White, Menu on Left", "black_and_white", 0 },
4547
{ "Blitz", "blitz", 0 },
4648
{ "Blitz, No Logo", "blitz_no_logo", 0 },
4749
{ "Bootstrap", "bootstrap", 0 },
48
- { "Xekri", "xekri", 0 },
49
- { "Original", "original", 0 },
50
+ { "Eagle", "eagle", 0 },
5051
{ "Enhanced Original", "enhanced1", 0 },
51
- { "Shadow boxes & Rounded Corners", "rounded1", 0 },
52
- { "Eagle", "eagle", 0 },
53
- { "Black & White, Menu on Left", "black_and_white", 0 },
52
+ { "Khaki, No Logo", "khaki", 0 },
53
+ { "Original", "original", 0 },
5454
{ "Plain Gray, No Logo", "plain_gray", 0 },
55
- { "Khaki, No Logo", "khaki", 0 },
56
- { "Ardoise", "ardoise", 0 },
55
+ { "Shadow boxes & Rounded Corners", "rounded1", 0 },
56
+ { "Xekri", "xekri", 0 },
5757
};
5858
5959
/*
6060
** A skin consists of five "files" named here:
6161
*/
@@ -1132,5 +1132,47 @@
11321132
@ for cleanup and recovery actions.
11331133
}
11341134
builtin_request_js("skin.js");
11351135
style_finish_page();
11361136
}
1137
+
1138
+/*
1139
+** WEBPAGE: skins
1140
+**
1141
+** Show a list of all of the built-in skins, plus the responsitory skin,
1142
+** and provide the user with an opportunity to change to any of them.
1143
+*/
1144
+void skins_page(void){
1145
+ int i;
1146
+ char *zBase = fossil_strdup(g.zTop);
1147
+ size_t nBase = strlen(zBase);
1148
+ if( iDraftSkin && sqlite3_strglob("*/draft?", zBase)==0 ){
1149
+ nBase -= 7;
1150
+ zBase[nBase] = 0;
1151
+ }else if( pAltSkin ){
1152
+ char *zPattern = mprintf("*/skn_%s", pAltSkin->zLabel);
1153
+ if( sqlite3_strglob(zPattern, zBase)==0 ){
1154
+ nBase -= strlen(zPattern)-1;
1155
+ zBase[nBase] = 0;
1156
+ }
1157
+ fossil_free(zPattern);
1158
+ }
1159
+ login_check_credentials();
1160
+ style_header("Skins");
1161
+ @ <ul>
1162
+ if( pAltSkin==0 && zAltSkinDir==0 && iDraftSkin==0 ){
1163
+ @ <li> Standard skin for this repository &larr; <i>Currently in use</i>
1164
+ }else{
1165
+ @ <li> %z(href("%s/skins",zBase))Standard skin for this repository</a>
1166
+ }
1167
+ for(i=0; i<count(aBuiltinSkin); i++){
1168
+ if( pAltSkin==&aBuiltinSkin[i] ){
1169
+ @ <li> %h(aBuiltinSkin[i].zDesc) &larr; <i>Currently in use</i>
1170
+ }else{
1171
+ char *zUrl = href("%s/skn_%s/skins", zBase, aBuiltinSkin[i].zLabel);
1172
+ @ <li> %z(zUrl)%h(aBuiltinSkin[i].zDesc)</a>
1173
+ }
1174
+ }
1175
+ @ </ul>
1176
+ style_finish_page();
1177
+ fossil_free(zBase);
1178
+}
11371179
--- src/skins.c
+++ src/skins.c
@@ -40,22 +40,22 @@
40 const char *zDesc; /* Description of this skin */
41 const char *zLabel; /* The directory under skins/ holding this skin */
42 char *zSQL; /* Filled in at run-time with SQL to insert this skin */
43 } aBuiltinSkin[] = {
44 { "Default", "default", 0 },
 
 
45 { "Blitz", "blitz", 0 },
46 { "Blitz, No Logo", "blitz_no_logo", 0 },
47 { "Bootstrap", "bootstrap", 0 },
48 { "Xekri", "xekri", 0 },
49 { "Original", "original", 0 },
50 { "Enhanced Original", "enhanced1", 0 },
51 { "Shadow boxes & Rounded Corners", "rounded1", 0 },
52 { "Eagle", "eagle", 0 },
53 { "Black & White, Menu on Left", "black_and_white", 0 },
54 { "Plain Gray, No Logo", "plain_gray", 0 },
55 { "Khaki, No Logo", "khaki", 0 },
56 { "Ardoise", "ardoise", 0 },
57 };
58
59 /*
60 ** A skin consists of five "files" named here:
61 */
@@ -1132,5 +1132,47 @@
1132 @ for cleanup and recovery actions.
1133 }
1134 builtin_request_js("skin.js");
1135 style_finish_page();
1136 }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1137
--- src/skins.c
+++ src/skins.c
@@ -40,22 +40,22 @@
40 const char *zDesc; /* Description of this skin */
41 const char *zLabel; /* The directory under skins/ holding this skin */
42 char *zSQL; /* Filled in at run-time with SQL to insert this skin */
43 } aBuiltinSkin[] = {
44 { "Default", "default", 0 },
45 { "Ardoise", "ardoise", 0 },
46 { "Black & White, Menu on Left", "black_and_white", 0 },
47 { "Blitz", "blitz", 0 },
48 { "Blitz, No Logo", "blitz_no_logo", 0 },
49 { "Bootstrap", "bootstrap", 0 },
50 { "Eagle", "eagle", 0 },
 
51 { "Enhanced Original", "enhanced1", 0 },
52 { "Khaki, No Logo", "khaki", 0 },
53 { "Original", "original", 0 },
 
54 { "Plain Gray, No Logo", "plain_gray", 0 },
55 { "Shadow boxes & Rounded Corners", "rounded1", 0 },
56 { "Xekri", "xekri", 0 },
57 };
58
59 /*
60 ** A skin consists of five "files" named here:
61 */
@@ -1132,5 +1132,47 @@
1132 @ for cleanup and recovery actions.
1133 }
1134 builtin_request_js("skin.js");
1135 style_finish_page();
1136 }
1137
1138 /*
1139 ** WEBPAGE: skins
1140 **
1141 ** Show a list of all of the built-in skins, plus the responsitory skin,
1142 ** and provide the user with an opportunity to change to any of them.
1143 */
1144 void skins_page(void){
1145 int i;
1146 char *zBase = fossil_strdup(g.zTop);
1147 size_t nBase = strlen(zBase);
1148 if( iDraftSkin && sqlite3_strglob("*/draft?", zBase)==0 ){
1149 nBase -= 7;
1150 zBase[nBase] = 0;
1151 }else if( pAltSkin ){
1152 char *zPattern = mprintf("*/skn_%s", pAltSkin->zLabel);
1153 if( sqlite3_strglob(zPattern, zBase)==0 ){
1154 nBase -= strlen(zPattern)-1;
1155 zBase[nBase] = 0;
1156 }
1157 fossil_free(zPattern);
1158 }
1159 login_check_credentials();
1160 style_header("Skins");
1161 @ <ul>
1162 if( pAltSkin==0 && zAltSkinDir==0 && iDraftSkin==0 ){
1163 @ <li> Standard skin for this repository &larr; <i>Currently in use</i>
1164 }else{
1165 @ <li> %z(href("%s/skins",zBase))Standard skin for this repository</a>
1166 }
1167 for(i=0; i<count(aBuiltinSkin); i++){
1168 if( pAltSkin==&aBuiltinSkin[i] ){
1169 @ <li> %h(aBuiltinSkin[i].zDesc) &larr; <i>Currently in use</i>
1170 }else{
1171 char *zUrl = href("%s/skn_%s/skins", zBase, aBuiltinSkin[i].zLabel);
1172 @ <li> %z(zUrl)%h(aBuiltinSkin[i].zDesc)</a>
1173 }
1174 }
1175 @ </ul>
1176 style_finish_page();
1177 fossil_free(zBase);
1178 }
1179

Keyboard Shortcuts

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