@@ -37,17 +37,12 @@
37 37 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
38 38 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
39 39 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
40 40 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
41 41 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Discover information about the repository given by
42 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** pRepo->zRepoName. The discovered information is stored in
43 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
44 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
45 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
46 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
47 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** This is an expensive routine in that it has to open and close an
48 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** SQLite database file.
42 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** pRepo->zRepoName. The discovered information is stored in other
43 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** fields of the RepoInfo object.
49 44 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
50 45 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static void remote_repo_info(RepoInfo *pRepo){
51 46 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3 *db;
52 47 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_stmt *pStmt;
53 48 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int rc;
@@ -84,13 +79,10 @@
84 79 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pRepo->isValid = 1;
85 80 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_finalize(pStmt);
86 81 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
finish_repo_list:
87 82 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
g.dbIgnoreErrors--;
88 83 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_close(db);
89 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( pRepo->isRepolistSkin && !g.repositoryOpen ){
90 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- db_open_repository(pRepo->zRepoName);
91 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
92 84 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
93 85 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
94 86 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
95 87 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Generate a web-page that lists all repositories located under the
96 88 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** g.zRepositoryName directory and return non-zero.
@@ -107,15 +99,17 @@
107 99 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
108 100 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Or, if no repositories can be located beneath g.zRepositoryName,
109 101 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** return 0.
110 102 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
111 103 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int repo_list_page(void){
112 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Blob base; /* document root for all repositories */
113 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int n = 0; /* Number of repositories found */
114 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int allRepo; /* True if running "fossil ui all".
115 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** False if a directory scan of base for repos */
116 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Blob html; /* Html for the body of the repository list */
104 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Blob base; /* document root for all repositories */
105 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int n = 0; /* Number of repositories found */
106 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int allRepo; /* True if running "fossil ui all".
107 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** False if a directory scan of base for repos */
108 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Blob html; /* Html for the body of the repository list */
109 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ char *zSkinRepo = 0; /* Name of the repository database used for skins */
110 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ char *zSkinUrl = 0; /* URL for the skin database */
117 111 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
118 112 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( g.db==0 );
119 113 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_init(&html, 0, 0);
120 114 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( fossil_strcmp(g.zRepositoryName,"/")==0 && !g.fJail ){
121 115 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* For the special case of the "repository directory" being "/",
@@ -144,11 +138,14 @@
144 138 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
vfile_scan(&base, blob_size(&base), 0, 0, 0);
145 139 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_multi_exec("DELETE FROM sfile WHERE pathname NOT GLOB '*[^/].fossil'");
146 140 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
allRepo = 0;
147 141 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
148 142 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
n = db_int(0, "SELECT count(*) FROM sfile");
149 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( n>0 ){
143 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( n==0 ){
144 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_close(g.db);
145 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return 0;
146 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
150 147 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Stmt q;
151 148 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
double rNow;
152 149 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_append_sql(&html,
153 150 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"<table border='0' class='sortable' data-init-sort='1'"
154 151 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
" data-column-types='txtxk'><thead>\n"
@@ -180,10 +177,16 @@
180 177 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
181 178 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zFull = mprintf("%s/%s", g.zRepositoryName, zName);
182 179 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
183 180 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
x.zRepoName = zFull;
184 181 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
remote_repo_info(&x);
182 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( x.isRepolistSkin ){
183 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( zSkinRepo==0 ){
184 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zSkinRepo = mprintf("%s", x.zRepoName);
185 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zSkinUrl = mprintf("%s", zUrl);
186 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
187 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
185 188 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fossil_free(zFull);
186 189 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( !x.isValid ){
187 190 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
continue;
188 191 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
189 192 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( x.isRepolistSkin==2 && !allRepo ){
@@ -203,15 +206,15 @@
203 206 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
} else if( sqlite3_strglob("*/.*", zName)==0 ){
204 207 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Do not show hyperlinks for hidden repos */
205 208 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_append_sql(&html, "%h (hidden)", zName);
206 209 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
} else if( allRepo && sqlite3_strglob("[a-zA-Z]:/?*", zName)!=0 ){
207 210 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_append_sql(&html,
208 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "<a href='%R/%T/home' target='_blank'>/%h</a>\n",
211 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "<a href='/%T/home' target='_blank'>/%h</a>\n",
209 212 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zUrl, zName);
210 213 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
211 214 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_append_sql(&html,
212 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "<a href='%R/%T/home' target='_blank'>%h</a>\n",
215 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "<a href='/%T/home' target='_blank'>%h</a>\n",
213 216 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zUrl, zName);
214 217 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
215 218 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( x.zProjName ){
216 219 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_append_sql(&html, "<td></td><td>%h</td>\n", x.zProjName);
217 220 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fossil_free(x.zProjName);
@@ -224,23 +227,26 @@
224 227 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fossil_free(zAge);
225 228 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_free(zUrl);
226 229 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
227 230 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_finalize(&q);
228 231 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_append_sql(&html,"</tbody></table>\n");
229 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else{
230 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- blob_append_sql(&html,"<h1>No Repositories Found</h1>\n");
232 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
233 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( zSkinRepo ){
234 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ char *zNewBase = mprintf("%s/%s", g.zBaseURL, zSkinUrl);
235 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ g.zBaseURL = 0;
236 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ set_base_url(zNewBase);
237 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ db_open_repository(zSkinRepo);
238 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ fossil_free(zSkinRepo);
239 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ fossil_free(zSkinUrl);
231 240 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
232 241 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( g.repositoryOpen ){
233 242 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* This case runs if remote_repository_info() found a repository
234 243 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** that has the "repolist_skin" property set to non-zero and left
235 244 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** that repository open in g.db. Use the skin of that repository
236 245 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** for display. */
237 246 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
login_check_credentials();
238 247 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
style_header("Repository List");
239 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- @ <style>
240 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- style_render_stylesheet();
241 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- @ </style>
242 248 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ %s(blob_str(&html))
243 249 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
style_table_sorter();
244 250 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
style_footer();
245 251 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
246 252 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* If no repositories were found that had the "repolist_skin"
247 253 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!