From 66c1c10d39e6ecb212ec4709888493693339c07d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vojt=C4=9Bch=20Pej=C5=A1a?= Date: Sun, 24 Mar 2019 10:25:48 +0100 Subject: Implement file upload. --- src/renderer.rs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'src/renderer.rs') diff --git a/src/renderer.rs b/src/renderer.rs index 66fc714..3039dc7 100644 --- a/src/renderer.rs +++ b/src/renderer.rs @@ -14,12 +14,18 @@ pub fn page( page_parent: Option, sort_method: Option, sort_order: Option, + base: &str, ) -> Markup { html! { (page_header(page_title)) body { span #top { } - h1.title { (page_title) } + h1 { (page_title) } + form action={"/upload?path=" (base)} method="POST" enctype="multipart/form-data" { + p { "Select file to upload" } + input type="file" name="file_to_upload" {} + input type="submit" value="Upload file" {} + } div.download { (archive_button(archive::CompressionMethod::TarGz)) } -- cgit v1.2.3 From d14e17d94964291fda976423c1fe1a772d5af60b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vojt=C4=9Bch=20Pej=C5=A1a?= Date: Wed, 27 Mar 2019 09:44:29 +0100 Subject: Add CLI arguments for file uploading. --- src/renderer.rs | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src/renderer.rs') diff --git a/src/renderer.rs b/src/renderer.rs index 3039dc7..6b3fb9f 100644 --- a/src/renderer.rs +++ b/src/renderer.rs @@ -14,6 +14,7 @@ pub fn page( page_parent: Option, sort_method: Option, sort_order: Option, + file_upload: bool, base: &str, ) -> Markup { html! { @@ -21,11 +22,13 @@ pub fn page( body { span #top { } h1 { (page_title) } + @if file_upload { form action={"/upload?path=" (base)} method="POST" enctype="multipart/form-data" { p { "Select file to upload" } input type="file" name="file_to_upload" {} input type="submit" value="Upload file" {} } + } div.download { (archive_button(archive::CompressionMethod::TarGz)) } -- cgit v1.2.3 From 84b5852aad17961dfa2cb6ea3351b9fa3244fe6f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vojt=C4=9Bch=20Pej=C5=A1a?= Date: Thu, 28 Mar 2019 11:29:56 +0100 Subject: Fix file upload when used with random route. --- src/renderer.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'src/renderer.rs') diff --git a/src/renderer.rs b/src/renderer.rs index 6b3fb9f..0a9f42b 100644 --- a/src/renderer.rs +++ b/src/renderer.rs @@ -15,7 +15,8 @@ pub fn page( sort_method: Option, sort_order: Option, file_upload: bool, - base: &str, + upload_route: &str, + current_dir: &str, ) -> Markup { html! { (page_header(page_title)) @@ -23,7 +24,7 @@ pub fn page( span #top { } h1 { (page_title) } @if file_upload { - form action={"/upload?path=" (base)} method="POST" enctype="multipart/form-data" { + form action={(upload_route) "?path=" (current_dir)} method="POST" enctype="multipart/form-data" { p { "Select file to upload" } input type="file" name="file_to_upload" {} input type="submit" value="Upload file" {} -- cgit v1.2.3 From e2ad04f4139d0f0aceb02c43b6913d17d11087ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vojt=C4=9Bch=20Pej=C5=A1a?= Date: Thu, 28 Mar 2019 18:32:15 +0100 Subject: Better error handling for file upload. --- src/renderer.rs | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'src/renderer.rs') diff --git a/src/renderer.rs b/src/renderer.rs index 0a9f42b..75d5c56 100644 --- a/src/renderer.rs +++ b/src/renderer.rs @@ -390,3 +390,14 @@ fn humanize_systemtime(src_time: Option) -> Option { .and_then(|from_now| Duration::from_std(from_now).ok()) .map(|duration| HumanTime::from(duration).to_text_en(Accuracy::Rough, Tense::Past)) } + +/// Renders error page when file uploading fails +pub fn file_upload_error(error_description: &str, return_address: &str) -> Markup { + html! { + h1 { "File uploading failed" } + p { (error_description) } + a href=(return_address) { + "back" + } + } +} -- cgit v1.2.3 From 93ea625fe29ea02c5bda6b4f6361134a0fe667f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vojt=C4=9Bch=20Pej=C5=A1a?= Date: Fri, 29 Mar 2019 23:33:27 +0100 Subject: Fix typos and indentation. --- src/renderer.rs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'src/renderer.rs') diff --git a/src/renderer.rs b/src/renderer.rs index 75d5c56..cb6d5d5 100644 --- a/src/renderer.rs +++ b/src/renderer.rs @@ -24,11 +24,11 @@ pub fn page( span #top { } h1 { (page_title) } @if file_upload { - form action={(upload_route) "?path=" (current_dir)} method="POST" enctype="multipart/form-data" { - p { "Select file to upload" } - input type="file" name="file_to_upload" {} - input type="submit" value="Upload file" {} - } + form action={(upload_route) "?path=" (current_dir)} method="POST" enctype="multipart/form-data" { + p { "Select file to upload" } + input type="file" name="file_to_upload" {} + input type="submit" value="Upload file" {} + } } div.download { (archive_button(archive::CompressionMethod::TarGz)) -- cgit v1.2.3 From ab711698b8cae4720311a705f3902df21cbe5893 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vojt=C4=9Bch=20Pej=C5=A1a?= Date: Wed, 3 Apr 2019 15:57:19 +0200 Subject: Allow drag and drop file upload with js. --- src/renderer.rs | 29 ++++++++++++++++++++++++++--- 1 file changed, 26 insertions(+), 3 deletions(-) (limited to 'src/renderer.rs') diff --git a/src/renderer.rs b/src/renderer.rs index cb6d5d5..5446205 100644 --- a/src/renderer.rs +++ b/src/renderer.rs @@ -20,13 +20,13 @@ pub fn page( ) -> Markup { html! { (page_header(page_title)) - body { + body id="dropContainer" { span #top { } h1 { (page_title) } @if file_upload { - form action={(upload_route) "?path=" (current_dir)} method="POST" enctype="multipart/form-data" { + form id="file_submit" action={(upload_route) "?path=" (current_dir)} method="POST" enctype="multipart/form-data" { p { "Select file to upload" } - input type="file" name="file_to_upload" {} + input type="file" name="file_to_upload" id="fileInput" {} input type="submit" value="Upload file" {} } } @@ -309,6 +309,9 @@ fn css() -> Markup { .download a:not(:last-of-type) { margin-right: 1rem; } + .drag_hover { + box-shadow: inset 0 25px 40px #aae; + } @media (max-width: 600px) { h1 { font-size: 1.375em; @@ -365,6 +368,26 @@ fn page_header(page_title: &str) -> Markup { meta name="viewport" content="width=device-width, initial-scale=1"; title { (page_title) } style { (css()) } + (PreEscaped(r#" + + "#)) } } } -- cgit v1.2.3 From 0b6437d60bb71538698072d281570166962c6a93 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vojt=C4=9Bch=20Pej=C5=A1a?= Date: Fri, 5 Apr 2019 13:14:18 +0200 Subject: Improve file upload text. --- src/renderer.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/renderer.rs') diff --git a/src/renderer.rs b/src/renderer.rs index 5446205..c166bc6 100644 --- a/src/renderer.rs +++ b/src/renderer.rs @@ -25,7 +25,7 @@ pub fn page( h1 { (page_title) } @if file_upload { form id="file_submit" action={(upload_route) "?path=" (current_dir)} method="POST" enctype="multipart/form-data" { - p { "Select file to upload" } + p { "Select file to upload or drag it into the window" } input type="file" name="file_to_upload" id="fileInput" {} input type="submit" value="Upload file" {} } -- cgit v1.2.3