39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
-
+
-
+
-
|
Blob sql;
Stmt q;
if( zPage && zTkt ) zTkt = 0;
login_check_credentials();
blob_zero(&sql);
blob_append_sql(&sql,
"SELECT datetime(mtime%s), src, target, filename,"
"SELECT datetime(mtime,toLocal()), src, target, filename,"
" comment, user,"
" (SELECT uuid FROM blob WHERE rid=attachid), attachid"
" FROM attachment",
" FROM attachment"
timeline_utc()
);
if( zPage ){
if( g.perm.RdWiki==0 ){ login_needed(g.anon.RdWiki); return; }
style_header("Attachments To %h", zPage);
blob_append_sql(&sql, " WHERE target=%Q", zPage);
}else if( zTkt ){
if( g.perm.RdTkt==0 ){ login_needed(g.anon.RdTkt); return; }
|
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
|
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
|
-
+
-
+
|
void attachment_list(
const char *zTarget, /* Object that things are attached to */
const char *zHeader /* Header to display with attachments */
){
int cnt = 0;
Stmt q;
db_prepare(&q,
"SELECT datetime(mtime%s), filename, user,"
"SELECT datetime(mtime,toLocal()), filename, user,"
" (SELECT uuid FROM blob WHERE rid=attachid), src"
" FROM attachment"
" WHERE isLatest AND src!='' AND target=%Q"
" ORDER BY mtime DESC",
timeline_utc(), zTarget
zTarget
);
while( db_step(&q)==SQLITE_ROW ){
const char *zDate = db_column_text(&q, 0);
const char *zFile = db_column_text(&q, 1);
const char *zUser = db_column_text(&q, 2);
const char *zUuid = db_column_text(&q, 3);
const char *zSrc = db_column_text(&q, 4);
|