aboutsummaryrefslogtreecommitdiffstats
path: root/loggedin.js
diff options
context:
space:
mode:
Diffstat (limited to 'loggedin.js')
-rw-r--r--loggedin.js77
1 files changed, 68 insertions, 9 deletions
diff --git a/loggedin.js b/loggedin.js
index fff6054..edc81a7 100644
--- a/loggedin.js
+++ b/loggedin.js
@@ -168,8 +168,8 @@ function openfile_nondir() {
xhr.open('POST', '/php/readfile.php', true);
focus.filecontents.innerText = "";
- focus.filecontents.style.display = 'block';
- focus.foldercontents.style.display = 'none';
+ focus.filecontentsroot.style.display = 'block';
+ focus.foldercontents.style.display = 'none';
if (mimetype.split("/")[0] == "image") {
xhr.responseType = 'arraybuffer';
@@ -177,7 +177,11 @@ function openfile_nondir() {
var b = base64ArrayBuffer(xhr.response);
var image = new Image();
image.src = `data:image/png;base64,${b}`;
+ image.style.minWidth = "0px";
+ image.style.minHeight = "0px";
+
focus.filecontents.appendChild(image);
+ focus.filecontents.display = "flex";
}
}
else {
@@ -189,6 +193,36 @@ function openfile_nondir() {
xhr.send(data);
}
+function share(in_file, filename) {
+ if (in_file) {
+ var folder = get_path(focus.pwd.length - 1);
+ filename = focus.pwd[focus.pwd.length - 1];
+ } else {
+ var folder = get_path();
+ }
+
+ var users = prompt("Enter comma separated list of users. empty = public", "");
+ if (users === null)
+ return;
+ var password = prompt("Enter a passcode", "");
+ if (password === null)
+ return;
+
+
+ var data = new FormData();
+ data.append('folder', folder);
+ data.append('filename', filename);
+ data.append('users', users);
+ data.append('password', password);
+
+ var xhr = new XMLHttpRequest();
+ xhr.open('POST', '/php/share.php', true);
+ xhr.onload = function () {
+ }
+
+ xhr.send(data);
+}
+
function opendir() {
update_path_visuals();
@@ -228,8 +262,8 @@ function opendir() {
};
xhr.send(data);
- focus.filecontents.style.display = 'none';
- focus.foldercontents.style.display = 'block';
+ focus.filecontentsroot.style.display = 'none';
+ focus.foldercontents.style.display = 'block';
}
function openfile(is_directory) {
@@ -430,11 +464,11 @@ function make_window(pwd) {
path.classList.add('path');
h2.appendChild(path);
- wnd_html.style.width = "800px";
+ wnd_html.style.width = "900px";
wnd_html.style.height = "600px";
wnd_html.style.position = "absolute";
- wnd_html.style.left = "300px";
- wnd_html.style.top = "300px";
+ wnd_html.style.left = "200px";
+ wnd_html.style.top = "100px";
wnd.visuals = wnd_html;
@@ -470,9 +504,34 @@ function make_window(pwd) {
}
{
+ wnd.filecontentsroot = document.createElement('div');
+ wnd_html.appendChild(wnd.filecontentsroot);
+
+ var h3 = document.createElement('h3');
+ wnd.filecontentsroot.appendChild(h3);
+
+ var download_btn = document.createElement('button');
+ download_btn.innerText = "Download";
+ download_btn.onclick = () => { download_file(); }
+ h3.appendChild(download_btn);
+
+ separator = document.createElement('div');
+ separator.classList.add('separator');
+ h3.appendChild(separator);
+
+ var download_btn = document.createElement('button');
+ download_btn.innerText = "Share";
+ download_btn.onclick = () => { share(true); }
+ h3.appendChild(download_btn);
+
+ separator = document.createElement('div');
+ separator.classList.add('separator');
+ h3.appendChild(separator);
+
wnd.filecontents = document.createElement('div');
wnd.filecontents.classList.add('filecontents');
- wnd_html.appendChild(wnd.filecontents);
+ wnd.filecontentsroot.appendChild(wnd.filecontents);
+
}
document.body.appendChild(wnd_html);
@@ -523,7 +582,7 @@ function add_file_visuals(fileview) {
} else if (!is_trash) {
context_list.push(
['Rename', () => { rename_file(fileview.filename); }],
- ['Share', () => {alert('not implemented')}],
+ ['Share', () => { share(false, fileview.filename); }],
['Delete', () => { move_to_trash(fileview.filename); }]
);
}