From a32ec653bf2acc777d64803189a03a4b07b24096 Mon Sep 17 00:00:00 2001
From: Marvin Borner
Date: Tue, 16 Apr 2019 14:57:33 +0200
Subject: Added file sharing feature
---
src/main/resources/css/files.css | 21 +++++++++++++++++--
src/main/resources/fonts/ionicons .eot | Bin 0 -> 112662 bytes
src/main/resources/js/files.js | 31 ++++++++++++++++++++++++++++-
src/main/resources/js/fileview.js | 5 ++++-
src/main/resources/views/files.rocker.html | 5 +++++
src/main/resources/views/index.rocker.html | 12 ++++++++---
6 files changed, 67 insertions(+), 7 deletions(-)
create mode 100644 src/main/resources/fonts/ionicons .eot
(limited to 'src/main/resources')
diff --git a/src/main/resources/css/files.css b/src/main/resources/css/files.css
index 3ceb173..c7302bf 100644
--- a/src/main/resources/css/files.css
+++ b/src/main/resources/css/files.css
@@ -45,11 +45,15 @@ colgroup col:nth-child(2) {
}
colgroup col:nth-child(3) {
- width: 30%;
+ width: 25%;
}
colgroup col:nth-child(4) {
- width: 15%;
+ width: 10%;
+}
+
+colgroup col:nth-child(5) {
+ width: 10%;
}
.drop {
@@ -70,3 +74,16 @@ colgroup col:nth-child(4) {
transform: scale(1.3);
color: red;
}
+
+.share {
+ font-size: 20px;
+ background-color: inherit;
+ border: 0;
+ z-index: 100;
+ cursor: pointer;
+}
+
+.share:hover {
+ transform: scale(1.3);
+ color: dodgerblue;
+}
diff --git a/src/main/resources/fonts/ionicons .eot b/src/main/resources/fonts/ionicons .eot
new file mode 100644
index 0000000..671df91
Binary files /dev/null and b/src/main/resources/fonts/ionicons .eot differ
diff --git a/src/main/resources/js/files.js b/src/main/resources/js/files.js
index 8b8bd87..f776165 100644
--- a/src/main/resources/js/files.js
+++ b/src/main/resources/js/files.js
@@ -33,7 +33,8 @@ drop.addEventListener('drop', e => {
row.insertCell(0).innerHTML = file.name;
row.insertCell(1).innerHTML = bytesToSize(file.size);
row.insertCell(2).innerHTML = `${date.getMonth() + 1}/${date.getDate()}/${date.getFullYear()} ${date.getHours()}:${date.getMinutes()}:${date.getSeconds()}`;
- row.insertCell(3).innerHTML = "
| ";
+ row.insertCell(3).innerHTML = " | ";
+ row.insertCell(4).innerHTML = " | ";
setListeners();
@@ -128,6 +129,34 @@ function setListeners() {
parent.remove();
})
});
+
+ // share button
+ document.querySelectorAll(".share").forEach(element => {
+ element.addEventListener("click", e => {
+ e.stopPropagation();
+ const request = new XMLHttpRequest();
+ const parent = e.target.closest("tr");
+ const fileName = parent.getAttribute("data-href") || parent.getAttribute("data-path");
+
+ request.open("POST", `/share/${path}/${fileName}`);
+ request.onload = () => {
+ if (request.readyState === 4) {
+ if (request.status === 200) {
+ const input = document.createElement('input');
+ input.setAttribute('value', request.responseText);
+ document.body.appendChild(input);
+ input.select();
+ document.execCommand('copy');
+ document.body.removeChild(input);
+ alert("Copied url to clipboard!")
+ } else {
+ alert("Something went wrong.");
+ }
+ }
+ };
+ request.send();
+ })
+ });
}
setListeners();
diff --git a/src/main/resources/js/fileview.js b/src/main/resources/js/fileview.js
index ace7884..d78c342 100644
--- a/src/main/resources/js/fileview.js
+++ b/src/main/resources/js/fileview.js
@@ -1,6 +1,7 @@
const preview = document.getElementById("preview");
const content = document.getElementById("content");
-const body = document.getElementsByTagName("body")[0];
+const html = document.getElementsByTagName("html")[0];
+const body = document.body;
// buttons
const raw = document.getElementById("raw");
@@ -23,12 +24,14 @@ if (extension === "md" || extension === "html") {
raw.addEventListener("click", () => {
if (preview.style.display === "block") {
+ html.style.overflow = "visible";
body.style.overflow = "visible";
raw.innerText = "Show preview";
preview.style.display = "none";
content.style.display = "block";
settings.style.display = "block";
} else {
+ html.style.overflow = "hidden";
body.style.overflow = "hidden";
raw.innerText = "Show raw";
preview.style.display = "block";
diff --git a/src/main/resources/views/files.rocker.html b/src/main/resources/views/files.rocker.html
index acbe812..0e42891 100644
--- a/src/main/resources/views/files.rocker.html
+++ b/src/main/resources/views/files.rocker.html
@@ -35,6 +35,7 @@
Name |
Size |
Last modified |
+ Share |
Delete |
@@ -42,6 +43,7 @@
|
|
|
+ |
@@ -55,6 +57,9 @@
@fileArray[0] |
@fileArray[1] |
@fileArray[2] |
+
+
+ |
|
diff --git a/src/main/resources/views/index.rocker.html b/src/main/resources/views/index.rocker.html
index 4f5d32b..a0b4035 100644
--- a/src/main/resources/views/index.rocker.html
+++ b/src/main/resources/views/index.rocker.html
@@ -4,10 +4,16 @@
Welcome to Kloud @username!
@if(username.length() > 0) {
-
+
+
+
} else {
-
+
+
+
}
-
+
+
+
}
--
cgit v1.2.3