From 197918e2299be8298193542c4a573cfbef9d65ee Mon Sep 17 00:00:00 2001 From: joshuaboud Date: Wed, 26 May 2021 12:09:25 -0300 Subject: [PATCH] implement deleting files and directories --- navigator/navigator.html | 6 +++++- navigator/navigator.js | 12 ++++++++++-- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/navigator/navigator.html b/navigator/navigator.html index 1f8a719..07605c2 100644 --- a/navigator/navigator.html +++ b/navigator/navigator.html @@ -52,7 +52,11 @@ diff --git a/navigator/navigator.js b/navigator/navigator.js index c8d2e1d..75801e9 100644 --- a/navigator/navigator.js +++ b/navigator/navigator.js @@ -162,7 +162,7 @@ class NavFile extends NavEntry { } async rm() { var proc = cockpit.spawn( - ["rm", "-f", this.path_str(), [this.nav_window_ref.pwd().path_str(), new_path].join('/')], + ["rm", "-f", this.path_str()], {superuser: "try", err:"out"} ); proc.fail((e, data) => { @@ -223,7 +223,7 @@ class NavDir extends NavEntry { } async rm() { var proc = cockpit.spawn( - ["rmdir", this.path_str(), [this.nav_window_ref.pwd().path_str(), new_path].join('/')], + ["rmdir", this.path_str()], {superuser: "try", err:"out"} ); proc.fail((e, data) => { @@ -353,6 +353,13 @@ class NavWindow { this.refresh(); this.hide_edit_selected(); } + async delete_selected() { + if(!window.confirm("Deleting `" + this.selected_entry.path_str() + "` cannot be undone. Are you sure?")){ + return; + } + await this.selected_entry.rm().catch(/*ignore, caught in rm*/); + this.refresh(); + } } let nav_window = new NavWindow(); @@ -360,6 +367,7 @@ let nav_window = new NavWindow(); function set_up_buttons() { document.getElementById("nav-up-dir-btn").addEventListener("click", nav_window.up.bind(nav_window)); document.getElementById("nav-refresh-btn").addEventListener("click", nav_window.refresh.bind(nav_window)); + document.getElementById("nav-delete-btn").addEventListener("click", nav_window.delete_selected.bind(nav_window)); document.getElementById("nav-edit-properties-btn").addEventListener("click", nav_window.show_edit_selected.bind(nav_window)); document.getElementById("nav-cancel-edit-btn").addEventListener("click", nav_window.hide_edit_selected.bind(nav_window)); document.getElementById("nav-apply-edit-btn").addEventListener("click", nav_window.apply_edit_selected.bind(nav_window));