merge changes from dev-josh

This commit is contained in:
joshuaboud 2021-06-21 13:53:49 -03:00
parent 0f487a15f4
commit 8e626ea080
No known key found for this signature in database
GPG Key ID: 17EFB59E2A8BF50E
2 changed files with 38 additions and 5 deletions

View File

@ -232,8 +232,12 @@ class NavEntry {
this.dom_element.appendChild(icon);
this.dom_element.appendChild(title);
this.stat = stat;
this.dom_element.addEventListener("click", this);
this.dom_element.addEventListener("contextmenu", this);
if (stat && stat["inaccessible"]) {
this.dom_element.style.cursor = "not-allowed";
} else {
this.dom_element.addEventListener("click", this);
this.dom_element.addEventListener("contextmenu", this);
}
this.is_hidden_file = this.filename().startsWith('.');
if (this.is_hidden_file)
icon.style.opacity = 0.5;
@ -1484,8 +1488,15 @@ class NavWindow {
this.show_selected_properties();
document.getElementById("nav-num-dirs").innerText = num_dirs.toString();
document.getElementById("nav-num-files").innerText = num_files.toString();
document.getElementById("nav-num-bytes"). innerText = format_bytes(bytes_sum);
document.getElementById("nav-num-bytes").innerText = format_bytes(bytes_sum);
this.stop_load();
this.set_nav_button_state();
}
set_nav_button_state() {
document.getElementById("nav-back-btn").disabled = (this.path_stack_index === 1);
document.getElementById("nav-forward-btn").disabled = (this.path_stack_index === this.path_stack.length - 1);
document.getElementById("nav-up-dir-btn").disabled = (this.pwd().path_str() === "/");
}
/**
@ -1550,7 +1561,7 @@ class NavWindow {
[start, end] = [end, start];
if (end === -1)
return;
to_be_selected = this.entries.slice(start, end + 1);
to_be_selected = this.entries.slice(start, end + 1).filter(entry => !entry.stat["inaccessible"]);
} else {
if (!append)
this.selected_entries.clear();
@ -2065,6 +2076,7 @@ class NavWindow {
button.disabled = false;
}
document.getElementById("pwd").disabled = false;
this.set_nav_button_state();
}
select_all() {

View File

@ -25,7 +25,27 @@ from pwd import getpwuid
from grp import getgrgid
def get_stat(full_path, filename = '/'):
stats = os.lstat(full_path)
try:
stats = os.lstat(full_path)
except OSError:
return {
"filename": filename,
"isdir": False,
"link-target": "",
"stat": {
"inaccessible": True,
"mode": 0,
"mode-str": "?",
"uid": 0,
"owner": "?",
"gid": 0,
"group": "?",
"size": 0,
"atime": 0,
"mtime": 0,
"ctime": 0
}
}
isdir = False
try:
isdir = S_ISDIR(os.stat(full_path).st_mode)
@ -45,6 +65,7 @@ def get_stat(full_path, filename = '/'):
except:
pass
response = {
"inaccessible": False,
"filename": filename,
"isdir": isdir,
"link-target": link_target,