| ︙ | | | ︙ | |
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
|
** Return NULL if zSkinName is NULL or an empty string.
**
** If ifExists is true, and the named skin does not exist, return NULL.
*/
static char *skinVarName(const char *zSkinName, int ifExists){
char *z;
if( zSkinName==0 || zSkinName[0]==0 ) return 0;
z = mprintf("skin:%s", zSkinName);
if( ifExists && !db_exists("SELECT 1 FROM config WHERE name=%Q", z) ){
free(z);
z = 0;
}
return z;
}
|
>
>
>
|
>
|
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
** Return NULL if zSkinName is NULL or an empty string.
**
** If ifExists is true, and the named skin does not exist, return NULL.
*/
static char *skinVarName(const char *zSkinName, int ifExists){
char *z;
if( zSkinName==0 || zSkinName[0]==0 ) return 0;
if( g.zSkin ){
z = mprintf("skin(%s):%s", g.zSkin, zSkinName);
}else{
z = mprintf("skin:%s", zSkinName);
}
if( ifExists && !db_exists("SELECT 1 FROM config WHERE name=%Q", z) ){
free(z);
z = 0;
}
return z;
}
|
| ︙ | | | ︙ | |
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
|
zLabel = mprintf("skins/default/%s.txt", azType[i]);
z = builtin_text(zLabel);
fossil_free(zLabel);
}
}
blob_appendf(&val,
"REPLACE INTO config(name,value,mtime) VALUES(%Q,%Q,now());\n",
azType[i], z
);
}
return blob_str(&val);
}
/*
** WEBPAGE: setup_skin
|
|
|
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
|
zLabel = mprintf("skins/default/%s.txt", azType[i]);
z = builtin_text(zLabel);
fossil_free(zLabel);
}
}
blob_appendf(&val,
"REPLACE INTO config(name,value,mtime) VALUES(%Q,%Q,now());\n",
db_skin_name(azType[i]), z
);
}
return blob_str(&val);
}
/*
** WEBPAGE: setup_skin
|
| ︙ | | | ︙ | |
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
|
for(i=0; i<sizeof(aBuiltinSkin)/sizeof(aBuiltinSkin[0]); i++){
if( fossil_strcmp(aBuiltinSkin[i].zSQL, zCurrent)==0 ){
seen = 1;
break;
}
}
if( !seen ){
seen = db_exists("SELECT 1 FROM config WHERE name GLOB 'skin:*'"
" AND value=%Q", zCurrent);
if( !seen ){
db_multi_exec(
"INSERT INTO config(name,value,mtime) VALUES("
" strftime('skin:Backup On %%Y-%%m-%%d %%H:%%M:%%S'),"
" %Q,now())", zCurrent
);
}
}
seen = 0;
for(i=0; i<sizeof(aBuiltinSkin)/sizeof(aBuiltinSkin[0]); i++){
if( fossil_strcmp(aBuiltinSkin[i].zDesc, z)==0 ){
seen = 1;
|
|
>
|
>
|
|
|
|
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
|
for(i=0; i<sizeof(aBuiltinSkin)/sizeof(aBuiltinSkin[0]); i++){
if( fossil_strcmp(aBuiltinSkin[i].zSQL, zCurrent)==0 ){
seen = 1;
break;
}
}
if( !seen ){
seen = db_exists("SELECT 1 FROM config"
" WHERE name GLOB %Q"
" AND value=%Q",
skinVarName("*",0), zCurrent);
if( !seen ){
db_multi_exec(
"INSERT INTO config(name,value,mtime) "
" VALUES(strftime(%Q),%Q,now())",
skinVarName("Backup On %Y-%m-%d %H:%M:%S",0), zCurrent
);
}
}
seen = 0;
for(i=0; i<sizeof(aBuiltinSkin)/sizeof(aBuiltinSkin[0]); i++){
if( fossil_strcmp(aBuiltinSkin[i].zDesc, z)==0 ){
seen = 1;
|
| ︙ | | | ︙ | |
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
|
@ <input type="submit" name="load" value="Install" />
@ </form>
}
@ </tr>
}
db_prepare(&q,
"SELECT substr(name, 6), value FROM config"
" WHERE name GLOB 'skin:*'"
" ORDER BY name"
);
while( db_step(&q)==SQLITE_ROW ){
const char *zN = db_column_text(&q, 0);
const char *zV = db_column_text(&q, 1);
i++;
@ <tr><td>%d(i).<td>%h(zN)<td> <td>
if( fossil_strcmp(zV, zCurrent)==0 ){
@ (Currently In Use)
}else{
@ <form action="%s(g.zTop)/setup_skin" method="post">
@ <input type="hidden" name="sn" value="%h(zN)">
@ <input type="submit" name="load" value="Install">
|
|
|
>
>
|
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
|
@ <input type="submit" name="load" value="Install" />
@ </form>
}
@ </tr>
}
db_prepare(&q,
"SELECT substr(name, 6), value FROM config"
" WHERE name GLOB %Q"
" ORDER BY name",
skinVarName("*",0)
);
while( db_step(&q)==SQLITE_ROW ){
const char *zN = db_column_text(&q, 0);
const char *zV = db_column_text(&q, 1);
i++;
if( g.zSkin ) zN += strlen(g.zSkin)+2;
@ <tr><td>%d(i).<td>%h(zN)<td> <td>
if( fossil_strcmp(zV, zCurrent)==0 ){
@ (Currently In Use)
}else{
@ <form action="%s(g.zTop)/setup_skin" method="post">
@ <input type="hidden" name="sn" value="%h(zN)">
@ <input type="submit" name="load" value="Install">
|
| ︙ | | | ︙ | |