aboutsummaryrefslogtreecommitdiff
path: root/main.c
diff options
context:
space:
mode:
authorXavier Del Campo Romero <xavi.dcr@tutanota.com>2023-04-23 05:19:27 +0200
committerXavier Del Campo Romero <xavi.dcr@tutanota.com>2023-04-23 05:19:27 +0200
commitfa997aa2c153cef50941b4d4036694485259ac2a (patch)
tree7a8ae9d450a4a6737277de86f950de2f73d5e268 /main.c
parent011807e1d69d196cd0b9fd39a9899eb335c81abf (diff)
downloadslcl-fa997aa2c153cef50941b4d4036694485259ac2a.tar.gz
Implement file previews
When using HTTP "Content-Disposition: attachment;", users are forced to download files in order to use them, whereas others might prefer to open them in the browser. Therefore, now that URL parameters are supported by http.h, previews can be forced by adding "preview=1" or "preview=true" (case-insensitive) as a URL parameters. Any other parameters are ignored by slcl. For users, a "Preview" link has been added next to the "Share" button for each file.
Diffstat (limited to 'main.c')
-rw-r--r--main.c20
1 files changed, 13 insertions, 7 deletions
diff --git a/main.c b/main.c
index 66328a8..7fca16d 100644
--- a/main.c
+++ b/main.c
@@ -700,14 +700,20 @@ static int getnode(const struct http_payload *const p,
goto end;
}
- const struct page_quota *const ppq = available ?
- &(const struct page_quota)
- {
- .cur = cur,
- .max = max
- } : NULL;
+ const struct page_resource pr =
+ {
+ .r = r,
+ .args = p->args,
+ .n_args = p->n_args,
+ .dir = dir.str,
+ .root = root.str,
+ .res = d.str,
+ .q = available ?
+ &(const struct page_quota) {.cur = cur, .max = max }
+ : NULL
+ };
- ret = page_resource(r, dir.str, root.str, d.str, ppq);
+ ret = page_resource(&pr);
end:
dynstr_free(&dir);