aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoradam <adam@>2021-02-13 12:44:40 +0200
committeradam <adam@>2021-02-13 12:44:40 +0200
commit212043453286cbd1c1840b1ae13f1516f90870d4 (patch)
treedd955d5a0e744806ee2aafd9b8a81abf335c1eb2
parentcfc5bf135b131827f8b269f2daebe614f8baa56e (diff)
parent0c56b6431133facf94f83faf920cfa58e311dd19 (diff)
downloadfileup-212043453286cbd1c1840b1ae13f1516f90870d4.tar.gz
Merge https://github.com/alexvitkov/india
-rw-r--r--loggedin.js23
-rw-r--r--php/readfile.php36
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);