diff options
author | adam <adam@> | 2021-02-13 12:44:40 +0200 |
---|---|---|
committer | adam <adam@> | 2021-02-13 12:44:40 +0200 |
commit | 212043453286cbd1c1840b1ae13f1516f90870d4 (patch) | |
tree | dd955d5a0e744806ee2aafd9b8a81abf335c1eb2 | |
parent | cfc5bf135b131827f8b269f2daebe614f8baa56e (diff) | |
parent | 0c56b6431133facf94f83faf920cfa58e311dd19 (diff) | |
download | fileup-212043453286cbd1c1840b1ae13f1516f90870d4.tar.gz |
Merge https://github.com/alexvitkov/india
-rw-r--r-- | loggedin.js | 23 | ||||
-rw-r--r-- | php/readfile.php | 36 |
2 files changed, 56 insertions, 3 deletions
diff --git a/loggedin.js b/loggedin.js index 8681dba..c2d407f 100644 --- a/loggedin.js +++ b/loggedin.js @@ -247,6 +247,19 @@ function add_link_functionality(link, length) { add_link_functionality(document.getElementById("home_path_entry"), 0); +function open_file(fileview) { + var data = new FormData(); + data.append('folder', get_path()); + data.append('path', get_path()); + + var xhr = new XMLHttpRequest(); + xhr.open('POST', '/php/readfile.php', true); + xhr.onload = function () { + + }; + xhr.send(data); +} + function add_file_visuals(fileview) { var visuals = document.createElement('div'); fileview.visuals = visuals; @@ -262,16 +275,20 @@ function add_file_visuals(fileview) { } } else { img.src=`/mimeicons/${fileview.mimetype.replace("/", "-")}.png`; + visuals.onclick = () => { + open_file(fileview); + } } visuals.oncontextmenu = (e) => { if (!dragging) { context(e, [ ['Open', () => { - if (fileview.is_directory) { pwd.push(fileview.filename); + if (fileview.is_directory) { + pwd.push(fileview.filename); load_dir(); } else { - alert('not implemented'); + open_file(fileview); } }], ['Rename', () => { rename_file(fileview.filename); }], @@ -342,7 +359,7 @@ function get_path(max_length) { for (let i = 0; i < max_length; i++) { path += pwd[i]; if (i != max_length - 1) - path + "/"; + path += "/"; } return path; } diff --git a/php/readfile.php b/php/readfile.php new file mode 100644 index 0000000..d978ffc --- /dev/null +++ b/php/readfile.php @@ -0,0 +1,36 @@ +<?php +require_once "database.php"; +require_once "configuration.php"; +require_once "file_type_recogniser.php"; +require_once "node.php"; +require_once "misc.php"; + +session_start(); +if (!isset($_POST["filename"]) || !isset($_FILES["folder"])) { + error_log("/php/readfile.php - invalid request"); + http_response_code(400); + exit(1); +} + +$user = $_SESSION['user_object']; +$homedir = $user->home_directory; +$folder = $_POST["folder"]; +$filename = $_POST["filename"]; + +$dir = get_directory($folder, $user); +if (!$dir) { + error_log("i/php/readfile.php - invalid directory"); + http_response_code(409); + exit(0); +} + +$contents_of_dir = $database->get_links_of($dir); +$file_node = null; + +foreach ($contents_of_dir as $c) { + if ($c['name'] == $filename) { + $file_node = $c; + } +} + +var_error_log($file_node); |