index: drag & drop redirects to the syntax highlighted pages

Signed-off-by: Gunwant Jain <mail@wantguns.dev>
This commit is contained in:
Gunwant Jain
2021-07-11 15:21:37 +05:30
parent 9c5a3af128
commit fbc92b669d
3 changed files with 27 additions and 17 deletions

View File

@@ -18,6 +18,7 @@ fn rocket() -> _ {
routes::upload::upload, routes::upload::upload,
routes::submit::submit, routes::submit::submit,
routes::retrieve::retrieve, routes::retrieve::retrieve,
routes::retrieve::retrieve_ext,
routes::pretty_retrieve::pretty_retrieve, routes::pretty_retrieve::pretty_retrieve,
routes::pretty_retrieve_ext::pretty_retrieve_ext routes::pretty_retrieve_ext::pretty_retrieve_ext
], ],

View File

@@ -1,10 +1,20 @@
use std::fs::File; use std::fs::File;
use crate::models::pretty_syntax::PasteIdSyntax;
use crate::models::paste_id::PasteId; use crate::models::paste_id::PasteId;
#[get("/<id>")] #[get("/<id>", rank = 2)]
pub async fn retrieve(id: PasteId<'_>) -> Option<File> { pub async fn retrieve(id: PasteId<'_>) -> Option<File> {
let filename = format!("upload/{id}", id = id); let filename = format!("upload/{id}", id = id);
File::open(&filename).ok() File::open(&filename).ok()
} }
// rank 1 here because this would be more oftenly used
#[get("/<id_ext>", rank = 1)]
pub async fn retrieve_ext(id_ext: PasteIdSyntax<'_>) -> Option<File> {
let filename = format!("upload/{id}", id = id_ext.get_fname());
File::open(&filename).ok()
}

View File

@@ -126,32 +126,31 @@ AUTHOR
return response; return response;
} }
// drag and drop files
function dropHandler(ev) { function dropHandler(ev) {
ev.preventDefault(); ev.preventDefault();
if (ev.dataTransfer.items) { if (ev.dataTransfer.items) {
for (var i = 0; i < ev.dataTransfer.items.length; i++) { var item = ev.dataTransfer.items[0];
if (ev.dataTransfer.items[i].kind === 'file') { var blob = item.getAsFile();
var file = ev.dataTransfer.items[i].getAsFile(); const ext = blob.name.split(".")[1];
var url = window.location.href;
var url = window.location.href; postData(url, blob)
.then(data => {
postData(url, file) window.location.href = data.url + "." + ext;
.then(data => { })
window.location.href = data.url; .catch(function (err) {
}) console.info(err + " url: " + url);
.catch(function (err) { });
console.info(err + " url: " + url); }
});
}
}
}
} }
function dragOverHandler(ev) { function dragOverHandler(ev) {
ev.preventDefault(); ev.preventDefault();
} }
// pasting files from the clipboard
document.onpaste = function(pasteEvent) { document.onpaste = function(pasteEvent) {
var item = pasteEvent.clipboardData.items[0]; var item = pasteEvent.clipboardData.items[0];
var blob = item.getAsFile(); var blob = item.getAsFile();