F diff --git a/loggedin.js b/loggedin.js --- a/loggedin.js +++ b/loggedin.jsadd_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);