show properties for editing batches of files

This commit is contained in:
joshuaboud 2021-06-01 10:08:07 -03:00
parent defaf5d1ce
commit e93eccbab1
No known key found for this signature in database
GPG Key ID: 17EFB59E2A8BF50E

View File

@ -173,7 +173,6 @@ class NavEntry {
handleEvent(e) { handleEvent(e) {
switch (e.type) { switch (e.type) {
case "click": case "click":
this.show_properties();
this.nav_window_ref.set_selected(this, e.shiftKey, e.ctrlKey); this.nav_window_ref.set_selected(this, e.shiftKey, e.ctrlKey);
e.stopPropagation(); e.stopPropagation();
break; break;
@ -817,6 +816,16 @@ class NavWindow {
i.dom_element.nav_item_icon.classList.add("fa-folder-open"); i.dom_element.nav_item_icon.classList.add("fa-folder-open");
} }
} }
if (this.selected_entries.size > 1){
var name_fields = document.getElementsByClassName("nav-info-column-filename");
for (let name_field of name_fields) {
name_field.innerText = this.selected_entries.size.toString() + " selected"
name_field.title = name_field.innerText;
}
document.getElementById("nav-info-column-properties").innerHTML = "";
} else {
this.show_selected_properties();
}
this.last_selected_index = this.entries.indexOf(entry); this.last_selected_index = this.entries.indexOf(entry);
} }
@ -848,18 +857,46 @@ class NavWindow {
"/usr/lib64", "/usr/lib64",
"/usr/sbin", "/usr/sbin",
]; ];
if (dangerous_dirs.includes(this.selected_entry().path_str())) { var dangerous_selected = [];
if ( for (let i of this.selected_entries) {
!window.confirm( var path = i.path_str();
"Warning: editing `" + if (dangerous_dirs.includes(path)) {
this.selected_entry().path_str() + dangerous_selected.push(path);
"` can be dangerous. Are you sure?" }
) }
) { if (dangerous_selected.length > 0) {
var last = dangerous_selected.pop();
var dangerous_selected_str = dangerous_selected.join(", ");
dangerous_selected_str += ", and " + last;
if (!window.confirm(
"Warning: editing " +
dangerous_selected_str +
" can be dangerous. Are you sure?"
)) {
return;
}
} else if (this.selected_entries.size > 1) {
if (!window.confirm(
"Warning: are you sure you want to edit permissions for " +
this.selected_entries.size +
" files?"
)) {
return; return;
} }
} }
if (this.selected_entries.size === 1) {
this.selected_entry().populate_edit_fields(); this.selected_entry().populate_edit_fields();
} else {
for (let field of ["owner", "group"]) {
document.getElementById("nav-edit-" + field).value = "";
}
var filename = document.getElementById("nav-edit-filename");
filename.value = "N/A";
filename.disabled = true;
for (let checkbox of document.getElementsByClassName("mode-checkbox")) {
checkbox.checked = false;
}
}
this.update_permissions_preview(); this.update_permissions_preview();
document.getElementById("nav-edit-properties").style.display = "block"; document.getElementById("nav-edit-properties").style.display = "block";
document.getElementById("nav-show-properties").style.display = "none"; document.getElementById("nav-show-properties").style.display = "none";