F diff --git a/loggedin.js b/loggedin.js --- a/loggedin.js +++ b/loggedin.js// A FileView is an entry inside the explorer windowclass FileView {- constructor(filename, mimetype, is_directory, write_permissions) {+ constructor(filename, wnd, mimetype, is_directory, write_permissions) {this.filename = filename;+ this.wnd = wnd;this.visuals = null; // The DOM object with the icon and the filenam textthis.mimetype = mimetype;this.is_directory = is_directory;this.write_permissions = write_permissions;}++ full_path() {+ return path_combine(get_path(this.wnd), this.filename);+ }}// An array of all fileviews currently openentry.onmouseup = (e) => {if (dragging && dragging_fileview) {var new_folder = get_path(wnd, i + 1);- move_file(new_folder, dragging_fileview.filename, wnd);+ move_file(dragging_fileview.wnd, wnd, new_folder, dragging_fileview.filename);end_drag();e.preventDefault();// Create the FileViews from the json responsefor (const f of json) {var view = new FileView(f.name,+ wnd,f.mimetype,f.is_directory && f.is_directory != "0",f.can_edit && f.can_edit != "0");wnd.filecontentsroot.style.display = 'none';wnd.foldercontents.style.display = 'flex';++ wnd.foldercontents.onmouseup = () => {+ if (dragging && dragging_fileview) {+ move_file(dragging_fileview.wnd, wnd, get_path(wnd), dragging_fileview.filename);+ }+ }}function openfile(is_directory, wnd) {if (!wnd) {- alert(451);+ alert("YOU ARE NOT SUPPOSED TO SEE THIS. PLEASE COPY THE STACKTRACE FROM THE CONSOLE AND SEND IT TO THE NEAREST DEVELOPER");console.trace();wnd = focus;}}function move_to_trash(wnd, filename) {- move_file("/trash", filename, path_combine(get_path(wnd), filename), wnd);+ move_file(wnd, wnd, "/trash", filename, path_combine(get_path(wnd), filename));}function restore_from_trash(wnd, filename) {var new_filename = split.pop();var new_directory = "/" + split.join("/");- move_file(new_directory, filename, new_filename, wnd);+ move_file(wnd, new_directory, filename, new_filename);}xhr.send(data);}- function move_file(new_folder, filename, new_filename, wnd) {+ function move_file(srcwnd, dstwnd, new_folder, filename, new_filename) {if (!new_filename)new_filename = filename;var data = new FormData();- data.append('old_folder', get_path(wnd));+ data.append('old_folder', get_path(srcwnd));data.append('new_folder', new_folder);data.append('filename', filename);data.append('new_filename',new_filename);var xhr = new XMLHttpRequest();xhr.open('POST', '/php/move.php', true);xhr.onload = () => {- openfile(true, wnd);+ openfile(true, srcwnd);+ openfile(true, dstwnd);};xhr.send(data);}function end_drag(_e) {set_iframe_enabled(true);- // If there's a dragging placeholder remove it and put the dragged node back into its place+ // If there's a dragging palceholder remove it and put the dragged node back into its placeif (dragging_placeholder) {dragging_placeholder.parentNode.insertBefore(dragging, dragging_placeholder);dragging_placeholder.remove();var new_pwd = wnd.pwd.slice();new_pwd.push(fileview.filename);var new_wnd = make_window(new_pwd, true);- focus_window(new_wnd);open_file = fileview;- openfile(fileview.is_directory, wnd);+ openfile(fileview.is_directory, new_wnd);+ focus_window(new_wnd);}],];// move to 'share' is invalid} else {// If we've dragged something onto a directory, move it into that directory- move_file(path_combine(get_path(wnd), fileview.filename), dragging_fileview.filename, wnd);+ move_file(dragging_fileview.wnd, wnd, path_combine(get_path(wnd), fileview.filename), dragging_fileview.filename);}} else {// alert(`Dropped ${dst.filename} on ${src.filename}`);