diff --git a/server/plugin/plg_override_actiondelete/assets/pages/filespage/thing.js b/server/plugin/plg_override_actiondelete/assets/pages/filespage/thing.js new file mode 100644 index 00000000..b326e536 --- /dev/null +++ b/server/plugin/plg_override_actiondelete/assets/pages/filespage/thing.js @@ -0,0 +1,47 @@ +diff --git a/public/assets/pages/filespage/thing.js b/public/assets/pages/filespage/thing.js +index f6f0ec48..3c86ffcb 100644 +--- a/public/assets/pages/filespage/thing.js ++++ b/public/assets/pages/filespage/thing.js +@@ -11,6 +11,14 @@ import { addSelection, isSelected, clearSelection } from "./state_selection.js"; + import { mv as mv$ } from "./model_files.js"; + import { mv as mvVL, withVirtualLayer } from "./model_virtual_layer.js"; + ++import rxjs from "../../lib/rx.js"; ++import { rm as rm$ } from "./model_files.js"; ++import { rm as rmVL } from "./model_virtual_layer.js"; ++import { basename } from "../../lib/path.js"; ++import t from "../../locales/index.js"; ++import { createModal } from "../../components/modal.js"; ++import componentDelete from "./modal_delete.js"; ++ + const mv = (from, to) => withVirtualLayer( + mv$(from, to), + mvVL(from, to), +@@ -149,6 +157,27 @@ export function createThing({ + return $thing; + } + ++ let $action = $thing.querySelector(".component_action"); ++ $action.innerHTML = ``; ++ $action.onclick = (e) => { ++ e.preventDefault(); ++ e.stopPropagation(); ++ const rm = (...paths) => withVirtualLayer( ++ rm$(...paths), ++ rmVL(...paths), ++ ); ++ return rxjs.from(componentDelete( ++ createModal({ ++ withButtonsRight: t("OK"), ++ withButtonsLeft: t("CANCEL"), ++ }), ++ basename(path).substr(0, 15), ++ )).pipe( ++ rxjs.mergeMap(() => rm(path)), ++ rxjs.tap(() => window.dispatchEvent(new KeyboardEvent("keydown", { keyCode: 27 }))), ++ ).subscribe(); ++ }; ++ + const checked = isSelected(n); + if (permissions && permissions.can_move !== false) $thing.setAttribute("draggable", "true"); + $thing.classList.add(checked ? "selected" : "not-selected"); diff --git a/server/plugin/plg_override_actiondelete/index.go b/server/plugin/plg_override_actiondelete/index.go new file mode 100644 index 00000000..31154003 --- /dev/null +++ b/server/plugin/plg_override_actiondelete/index.go @@ -0,0 +1,14 @@ +package plg_override_actiondelete + +import ( + "embed" + + . "github.com/mickael-kerjean/filestash/server/common" +) + +//go:embed assets/* +var STATIC embed.FS + +func init() { + Hooks.Register.StaticPatch(STATIC) +}