mirror of
https://github.com/narrrl/narl-workspace.git
synced 2026-11-04 00:47:01 +01:00
tree: several nodes picked up and moved at once
m now adds the row under the cursor to a set of marks and steps on, so
mmm picks up three; M takes the whole folder, Esc or :unmark puts it all
back. Marks stay while the list walks, so they can be gathered from
several folders. p, :mv and Shift+digit move the whole set.
With a pointer, Ctrl- or Cmd-click marks a row and Shift-click every row
from the cursor to it. Rows drag onto a folder row, a crumb or a space
pill; a marked row carries every marked node with it.
POST /api/nodes/move takes { ids, parent_id } and moves them all or
none: every node is checked before any moves, sealing into a sealed
folder happens before the one transaction that moves them, and two of a
name get slugs of their own. The single move goes the same way.
This commit is contained in:
1 parent
b19fb21fc4
commit
6bf88e7ffd
15 files changed
+407
-111
No files matched your search
+6
-1
@@ -568,10 +568,14 @@
|
||||
else void workspace.guard(() => workspace.openSelected())
|
||||
break
|
||||
case 'm':
|
||||
// Pick a node up here, walk to a folder, put it down with `p`.
|
||||
// Pick nodes up here, walk to a folder, put them down with `p`.
|
||||
event.preventDefault()
|
||||
workspace.mark()
|
||||
break
|
||||
case 'M':
|
||||
event.preventDefault()
|
||||
workspace.markAll()
|
||||
break
|
||||
case 'p':
|
||||
event.preventDefault()
|
||||
void workspace.guard(() => workspace.drop())
|
||||
@@ -619,6 +623,7 @@
|
||||
case 'Escape':
|
||||
event.preventDefault()
|
||||
if (workspace.open) void runCommand('q')
|
||||
else workspace.unmarkAll()
|
||||
break
|
||||
case 'x':
|
||||
event.preventDefault()
|
||||
|
||||
Reference in new issue
Block a user