Hello, today I’d like to discuss with you the batch move functionality, something that many people asked for.
Right now there are some ways of achieving this, but they are not very user-friendly or, at least, beginner-friendly. See this forum discussion.
Proposal Summary 
Create a dedicated space where pages can be selected to create a batch of pages that can be moved somewhere, taking into consideration their rights.
Where would this UI be?
The Batch Move UI could be accessed through a new entry, named Batch Move, in the
dropdown of any page.
State 1
The user just got on the UI and hasn’t selected anything yet.
When accessing the UI, the tree loads only the first 10 pages of the current space.
If they have children, they are collapsed.
See the default settings and messages in the proposal page.
State 2: User selects stuff
How is the selection of pages made?
Every page will have a checkbox in front of its name in the tree. Initially, this checkbox is empty.
-
For terminal pages (pages with no children), the checkbox only has 2 states (state 0 and state 1 from below).
-
For parent pages (pages with children), the checkbox has 4 states (states 0,1,2,3).
These are the 4 possible states of the checkbox:
State 0: Empty Checkbox: The current page hasn’t been selected.
State 1: Blue Checked Checkbox: The current page has been selected.
State 2: Green Checked Checkbox: The current page and all of its children have been selected.
- Sub-case: If current page is in state 2 (green) and the user unchecks one of its children (however deeply nested it is), current page goes in state 1 (blue).
State 3: Unchecked Crossed Checkbox: All children of the current page have been selected, but the current page hasn’t been selected.
- Sub-case: If current page is in state 3 (crossed) and the user unchecks one of its children (however deeply nested it is), current page goes in state 0 (blue).
Case 1: User selects pages but doesn’t set destination
The section “Destination space tree after moving” will contain a warning box stating the number of pages selected and warning the user to set a destination path.
Case 2: User selects pages & sets destination
If there are pages selected, once the destination is set, the tree of the destination space would be rendered, including the selected pages. This is just a simulated tree, no actual page movement is done.
At this point, the Refresh tree button is not yet present.
If after this, the user selects more pages, the Refresh tree button appears and the tree gets hidden. If the user clicks the button, the tree gets rendered.
This behavior gets repeated every time the user selects some other pages or if the user changes the destination path .
State 3 & 4: Confirm move & status bar
You can see them in the proposal page:
- confirm selection modal
- status page (to be done, but it will mainly be a loading bar + how many pages moved successfully, how many did not, how many attachment did not move + the size of the destination space - pages and gigabytes)