F diff --git a/loggedin.js b/loggedin.js
--- a/loggedin.js
+++ b/loggedin.js
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;
}
} 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); }],
for (let i = 0; i < max_length; i++) {
path += pwd[i];
if (i != max_length - 1)
- path + "/";
+ path += "/";
}
return path;
}
F diff --git a/php/readfile.php b/php/readfile.php
new file mode 100644
--- /dev/null
+++ b/php/readfile.php
+ <?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);