Fossil

Diff
Login

Differences From Artifact [950d48b3d9]:

To Artifact [2e7fe6a641]:


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>&nbsp;&nbsp;<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>&nbsp;&nbsp;<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">