F diff --git a/css/style.css b/css/style.css --- a/css/style.css +++ b/css/style.cssborder-color: #ddd;}+ .file > img {+ flex: 1 0 0;+ }+.file:hover > img {- filter: brightness(150%);+ filter: brightness(120%);}.path {F diff --git a/loggedin.js b/loggedin.js --- a/loggedin.js +++ b/loggedin.jsthe_file.onchange = on_file_added;- var files = [];const pwd = "/";const pending_uploads = [];+ class FileView {+ constructor(filename, visuals, mimetype, is_directory) {+ this.filename = filename;+ this.visuals = visuals;+ this.mimetype = mimetype;+ this.is_directory = is_directory;+ }+ }++ var files = [];+function on_file_added(_e) {if (the_file.files.length >= 1) {filename_input.value = the_file.files[0].name;xhr.open('POST', '/php/readdir.php', true);xhr.onload = function () {for (const f of files)- f[1].remove();+ f.visuals.remove();files = [];var json = JSON.parse(this.responseText);for (const f of json) {- add_file_visuals(f.name, f.mimetype);+ add_file_visuals(f.name, f.is_directory, f.mimetype);}};xhr.send(data);}- function add_file_visuals(name, mimetype) {+ function add_file_visuals(name, is_directory, mimetype) {var fileDiv = document.createElement('div');var img = document.createElement('img');var filename = document.createElement('div');- img.src="/mimeicons/application-pdf.png";+ if (is_directory) {+ img.src="/mimeicons/directory.png";+ }+ else {+ img.src=`/mimeicons/${mimetype.replace("/", "-")}.png`;+ }+fileDiv.classList.add('file');filename.classList.add('filename');filename.innerText = name;current_directory.appendChild(fileDiv);- files.push([name, fileDiv]);-- return fileDiv;+ var file = new FileView(name, fileDiv, mimetype, is_directory);+ files.push(file);+ return file;}function begin_upload() {F diff --git a/mimeicons/directory.png b/mimeicons/directory.png new file mode 100644B Binary files /dev/null and b/mimeicons/directory.png differF diff --git a/mimeicons/text-plain.png b/mimeicons/text-plain.png new file mode 100644B Binary files /dev/null and b/mimeicons/text-plain.png differF diff --git a/php/node.php b/php/node.php --- a/php/node.php +++ b/php/node.php$this->node_id=$node_id;}}- class Directory_Node extends Node++ class Current_Directory extends Node{- public $node_list;- /*the path in terms of the simulated filesystem*/- function __construct(string $abstract_path)+ /*an array of the dir_ids taken to reach here*/+ public $path;++ function __construct($user_id)+ {+ $this->dir_id=get_home_id($user_id);+ $this->path=[$dir_id];+ }+ function change_directory($directory_id):bool{+ global $database;+ if(!$database->is_directory($directory_id))+ {+ return false;+ }+}}