Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FEATURE: New workspace overview UX #5132

Open
wants to merge 126 commits into
base: 9.0
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
126 commits
Select commit Hold shift + click to select a range
8e50788
FEATURE: New workspace overview UX
Sebobo Jun 5, 2024
4473b68
TASK: Improve workspace column styling
Sebobo Jun 17, 2024
9670123
TASK: Implement workspace delete modal as popover
Sebobo Jun 17, 2024
cfdf61f
TASK: Extract review script from show template
Sebobo Jun 17, 2024
0cb57be
TASK: Refactor create workspace dialog to Fusion
Sebobo Jun 17, 2024
f007a42
TASK: Improve new workspace template
Sebobo Jun 27, 2024
e4974a1
FEATURE: Refactor edit template to AFX
Sebobo Jun 27, 2024
3b25a13
FEATURE: Introduce htmx for workspace module delete action
Sebobo Jul 5, 2024
639752f
TASK: Extract htmxconfig into component
Sebobo Jul 18, 2024
03727e0
TASK: Improve HTMX integration in workspace UI
Sebobo Jul 18, 2024
1a1bb56
BUGFIX: Use new workspace ui privilege names in userservice
Sebobo Jul 18, 2024
384b6e2
TASK: Sort base workspace options
Sebobo Jul 18, 2024
6277bd3
TASK: Improve workspace creation notifications
Sebobo Jul 18, 2024
eff2161
FEATURE: Turn workspace create dialog into htmx popover
Sebobo Jul 18, 2024
798eb43
FEATURE: Render number of workspaces by visibility in module footer
Sebobo Jul 24, 2024
6a0eec6
TASK: Generate delete modal for workspaces on demand
Sebobo Jul 24, 2024
5dd2184
TASK: Move purely presentational components
Sebobo Jul 25, 2024
a02d5e4
TASK: Add button component for workspace ui
Sebobo Jul 25, 2024
55639cb
TASK: Refactor workspace edit action to a modal
Sebobo Jul 30, 2024
3bc73af
TASK: Refactor workspace count to component
Sebobo Jul 30, 2024
372e041
TASK: Render workspace list after workspace has been updated without …
Sebobo Aug 1, 2024
e0e0457
FEATURE: Render changes countsin workspace list
Sebobo Aug 1, 2024
17e7d5f
BUGFIX: Make editing of workspaces possible again
Sebobo Sep 16, 2024
69ecabe
FEATURE: Localise workspace state
Sebobo Sep 16, 2024
24a2cf2
BUGFIX: Solve view error with workspace review
Sebobo Sep 16, 2024
3dbe02a
Merge remote-tracking branch 'origin/9.0' into feature/4255-new-works…
mhsdesign Oct 21, 2024
6c353cb
WIP: Fix php integration to use new workspace permissions and metadata
mhsdesign Oct 21, 2024
3ae34d1
WIP: Rename use `WorkspaceListItem` instead of `WorkspaceDetails`
mhsdesign Oct 21, 2024
cc0b8a9
WIP: Pass `userWorkspaceName` instead of full workspace
mhsdesign Oct 21, 2024
1e216e1
WIP: Remove occurrence of `.workspace` in show action
mhsdesign Oct 21, 2024
9a0377b
WIP: Remove old view models
mhsdesign Oct 21, 2024
49554c3
Feature: Move a little bit of review to fusion
pKallert Oct 21, 2024
9f9dea8
Fix: Naming of workspaces in overview
pKallert Oct 22, 2024
c567563
Merge branch 'feature/4255-new-workspace-management-ui' into feature/…
pKallert Oct 22, 2024
69f8b0e
Feature: Apply stash
pKallert Oct 22, 2024
641f29f
TASK: Workspace management edit action
JamesAlias Oct 22, 2024
95677e1
Feature: finish change diff
pKallert Oct 22, 2024
3a84261
Merge in remote
pKallert Oct 22, 2024
8949eed
Feature: merge in current branch
pKallert Oct 22, 2024
2f6b9da
Feature: Add styling
pKallert Oct 22, 2024
31c574c
Feature: Add reload after discard
pKallert Oct 22, 2024
f35efff
Feature: discard action
pKallert Oct 22, 2024
c3ad765
TASK: Workspace management create and delete action
JamesAlias Oct 22, 2024
5c47933
TASK: Fix EditWorkspaceDto
JamesAlias Oct 22, 2024
f01f551
Merge branch 'feature/4255-new-workspace-management-ui' of https://gi…
pKallert Oct 23, 2024
db81766
Merge branch 'feature/4255-new-workspace-management-ui' into feature/…
pKallert Oct 23, 2024
e614497
TASK: change baseWorkspace in edit workspace
JamesAlias Oct 23, 2024
55dc0df
Feature: Add action footer back
pKallert Oct 23, 2024
7f26ffa
Feature: remove unused class
pKallert Oct 23, 2024
64fa1b7
Merge pull request #5311 from pKallert/feature/new-workspace-review
pKallert Oct 23, 2024
8557831
Feature: Make publish Documents work
pKallert Oct 23, 2024
089d382
Feature: Remove single node publish
pKallert Oct 23, 2024
916e510
TASK: remove owner column in workspace management table, fix some per…
JamesAlias Oct 23, 2024
6250a8b
TASK: fix icons & ignore live workspace in workspace listitems
JamesAlias Oct 23, 2024
979c70f
Feature: Add Javascript functionality
pKallert Oct 23, 2024
4de13a3
Merge pull request #5319 from pKallert/feature/add-review-functionality
pKallert Oct 23, 2024
c9d4e00
Feature: Adjust design of review page
pKallert Oct 24, 2024
b5efa0c
Feature: Adjust permissions
pKallert Oct 24, 2024
6df11e6
Merge pull request #5323 from pKallert/feature/redesign-review-page
pKallert Oct 24, 2024
7eb3a57
Feature: Add DTO for viewmodel
pKallert Oct 24, 2024
a3eacaf
WIP: WorkspaceRoleAssignment edit
JamesAlias Oct 24, 2024
005ce33
Feature: Adjust SiteChanges
pKallert Oct 25, 2024
f12f073
Feature: Add tag logic
pKallert Oct 25, 2024
c4364f0
Merge pull request #5326 from pKallert/feature/review-page-dto
pKallert Oct 25, 2024
541a2fa
WIP: WorkspaceRoleAssignment edit, add, delete
JamesAlias Oct 28, 2024
62576e3
TASK: Fix delete workspace, render workspace count oob
JamesAlias Oct 31, 2024
649786d
TASK: Fix edit workspace pattern, but user help still needed
JamesAlias Nov 1, 2024
eedfc59
TASK: Fix edit & remove WorkspaceRoleAssignment
JamesAlias Nov 1, 2024
b365ad5
Feature: Merge in latest 9.0 branch
pKallert Nov 8, 2024
597869c
Feature: Add permission queries to review page
pKallert Nov 8, 2024
7e55243
TASK: Flip cancel and confirm buttons and adjust position in modals
Sebobo Nov 16, 2024
5e9b10f
TASK: Add basic user stories for the workspace ui
Sebobo Nov 16, 2024
a5de169
BUGFIX: Show back button in workspace review when there are no changes
Sebobo Nov 16, 2024
b358b91
Feature: Consider parents and children when using checkboxes
pKallert Nov 18, 2024
d04808c
Merge branch 'feature/4255-new-workspace-management-ui' of https://gi…
pKallert Nov 18, 2024
5bab89c
Merge branch '9.0' into feature/4255-new-workspace-management-ui
pKallert Nov 29, 2024
765d68b
Task: Move removeWorkspaceRoleAssignment and deleteWorkspaceMetadata …
pKallert Nov 29, 2024
d21d9cb
WIP: WorkspaceRoleAssignment edit, add, delete
JamesAlias Nov 29, 2024
b60d495
Feature: Add publishAll and DiscardAll functions
pKallert Nov 29, 2024
d601fe0
Merge branch 'feature/4255-new-workspace-management-ui' of https://gi…
pKallert Nov 29, 2024
d817eb0
Feature: Make Discard and publish selected changes work
pKallert Dec 1, 2024
fda3b2d
Feature: Separate changes in doucment into different dimensions
pKallert Dec 2, 2024
081a995
Feature: Change folder structure
pKallert Dec 2, 2024
a555db8
Fix: Make menu work on review page
pKallert Dec 2, 2024
b830ee8
Fix: Show the right labels for properties
pKallert Dec 2, 2024
402a1e5
Merge branch '9.0' into feature/4255-new-workspace-management-ui
Sebobo Dec 3, 2024
9930da0
TASK: Change fusion folder structure
Sebobo Dec 3, 2024
cb7f4ea
BUGFIX: Resolve nested swap issues
Sebobo Dec 3, 2024
6f45693
module wrap
Sebobo Dec 3, 2024
877315f
TASK: Introduce module wrapper for workspace module views
Sebobo Dec 3, 2024
4a66a77
BUGFIX: Show flash message on workspace delete
Sebobo Dec 3, 2024
7133a95
Fix: Do not show duplicate footer on discard/publish single Document
pKallert Dec 9, 2024
6560a64
Adjust to PSR12 code style for parameter spacing
mhsdesign Dec 12, 2024
2d3e48b
Merge remote-tracking branch 'origin/9.0' into feature/4255-new-works…
mhsdesign Dec 12, 2024
461815c
TASK: Adjustments after workspace service fixes
mhsdesign Dec 12, 2024
fd2a043
TASK: Add `equals` helper to subtree tags
mhsdesign Dec 12, 2024
b11a498
BUGFIX: Only compare actual node tags (without inheritance)
mhsdesign Dec 12, 2024
bbd44d0
TASK: Basic phpstan adjustments for array types and nullability
mhsdesign Dec 12, 2024
116de2a
TASK: Adjust code to pass user to `getWorkspaceListItems` instead
mhsdesign Dec 12, 2024
64119e2
TASK: Further phpstan adjustments
mhsdesign Dec 12, 2024
e6b25ab
Merge remote-tracking branch 'origin/9.0' into feature/4255-new-works…
mhsdesign Dec 17, 2024
4aed441
TASK: Revert WIP workspace role assigment Ui
mhsdesign Dec 17, 2024
4ba3a39
TASK: Reformat workspace module js
Sebobo Dec 4, 2024
d505870
TASK: Translate cancel labels and autofocus primary modal actions
Sebobo Dec 17, 2024
e94d23a
BUGFIX: Convert review actions to htmx and make flash messages work
Sebobo Dec 17, 2024
3cee6fa
BUGFIX: Hide emtpy diffs
Sebobo Dec 17, 2024
7e33629
TASK: Code cleanup
Sebobo Dec 17, 2024
d138d52
BUGFIX: Add space between icon in button and its label
Sebobo Dec 17, 2024
b22d0c7
BUGFIX: Reload review correctly after discard or publish workspace
Sebobo Dec 17, 2024
ccdd46c
FEATURE: Set basic visibility on workspace creation
Sebobo Dec 17, 2024
929949c
TASK: Cleanup action redirects by using forward
Sebobo Dec 18, 2024
03c40f0
TASK: Remove last modification date column until we can have the date…
Sebobo Dec 18, 2024
c5a365e
BUGFIX: Reload workspace list after creation
Sebobo Dec 18, 2024
22b8c69
FEATURE: Sort workspaces by title
Sebobo Dec 18, 2024
89b7cae
BUGFIX: Show correct workspace visibility state in the workspace list
Sebobo Dec 19, 2024
4678c5d
TASK: Only match htmx pattern for workspace module
Sebobo Dec 19, 2024
49d23d4
BUGFIX: Disable modifying personal workspaces in workspace list
Sebobo Dec 19, 2024
22a564e
FEATURE: Allow modifying basic workspace visibility in edit dialog
Sebobo Dec 19, 2024
dfd86e3
TASK: Use button disabled prop
Sebobo Dec 20, 2024
0e4660b
TASK: Solve todos from WorkspaceListItem
Sebobo Dec 20, 2024
93f1317
TASK: Remove broken rebaseAndRedirect functionality
Sebobo Dec 20, 2024
d552690
BUGFIX: Hide empty tag changes and improve label
Sebobo Dec 20, 2024
1e06fbe
TASK: Use workspace classification to handle personal workspaces in t…
Sebobo Dec 20, 2024
05a6345
TASK: Remove unfinished CR switch functionality
Sebobo Dec 20, 2024
36e6daf
TASK: Remove user stories
Sebobo Dec 20, 2024
775713c
TASK: Solve code style issue
Sebobo Dec 20, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 12 additions & 14 deletions Neos.Workspace.Ui/Classes/Controller/WorkspaceController.php
Original file line number Diff line number Diff line change
Expand Up @@ -185,7 +185,8 @@ public function reviewAction(WorkspaceName $workspace): void
'',
Message::SEVERITY_ERROR
);
$this->redirect('index');
$this->indexAction();
Sebobo marked this conversation as resolved.
Show resolved Hide resolved
return;
}

$workspacePermissions = $this->authorizationService->getWorkspacePermissions($contentRepositoryId, $workspace, $this->securityContext->getRoles(), $currentUser->getId());
Expand All @@ -195,7 +196,8 @@ public function reviewAction(WorkspaceName $workspace): void
'',
Message::SEVERITY_ERROR
);
$this->redirect('index');
$this->indexAction();
return;
}
$workspaceMetadata = $this->workspaceService->getWorkspaceMetadata($contentRepositoryId, $workspace);
$baseWorkspaceMetadata = null;
Expand All @@ -215,7 +217,8 @@ public function reviewAction(WorkspaceName $workspace): void
'canPublishToBaseWorkspace' => $baseWorkspacePermissions?->write ?? false,
'canPublishToWorkspace' => $workspacePermissions->write,
'siteChanges' => $this->computeSiteChanges($workspaceObj, $contentRepository),
'contentDimensions' => $contentRepository->getContentDimensionSource()->getContentDimensionsOrderedByPriority()
'contentDimensions' => $contentRepository->getContentDimensionSource()->getContentDimensionsOrderedByPriority(),
'flashMessages' => $this->controllerContext->getFlashMessageContainer()->getMessagesAndFlush(),
]);
}

Expand Down Expand Up @@ -267,7 +270,7 @@ public function createAction(
$this->throwStatus(500, 'Workspace could not be created');
}
$this->addFlashMessage($this->getModuleLabel('workspaces.workspaceHasBeenCreated', [$title->value]));
$this->redirect('index');
$this->indexAction();
}

/**
Expand Down Expand Up @@ -556,7 +559,7 @@ public function publishDocumentAction(string $nodeAddress, WorkspaceName $select
);

$this->addFlashMessage($this->getModuleLabel('workspaces.selectedChangeHasBeenPublished'));
$this->redirect('review', null, null, ['workspace' => $selectedWorkspace->value]);
$this->reviewAction($selectedWorkspace);
}

/**
Expand All @@ -580,9 +583,7 @@ public function discardDocumentAction(string $nodeAddress, WorkspaceName $select
);

$this->addFlashMessage($this->getModuleLabel('workspaces.selectedChangeHasBeenDiscarded'));

$this->redirect('review', null, null, ['workspace' => $selectedWorkspace->value]);

$this->reviewAction($selectedWorkspace);
}

/**
Expand Down Expand Up @@ -625,8 +626,7 @@ public function publishOrDiscardNodesAction(array $nodes, string $action, Worksp
default:
throw new \RuntimeException('Invalid action "' . htmlspecialchars($action) . '" given.', 1346167441);
}

$this->redirect('review', null, null, ['workspace' => $workspace->value]);
$this->reviewAction($workspace);
}

/**
Expand All @@ -648,8 +648,7 @@ public function publishWorkspaceAction(WorkspaceName $workspace): void
],
)
);
//todo make redirect work
$this->redirect('index');
$this->indexAction();
}

public function confirmPublishAllChangesAction(WorkspaceName $workspaceName): void
Expand Down Expand Up @@ -754,8 +753,7 @@ public function discardWorkspaceAction(WorkspaceName $workspace): void
[htmlspecialchars($workspace->value)],
)
);
//todo make redirect to index work
$this->redirect('review', null, null, ['workspace' => $workspace->value]);
$this->reviewAction($workspace);
}

/**
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# Actions that update a workspace and redirect to the review view

# Discard actions
Neos.Workspace.Ui.WorkspaceController.discardWorkspace < Neos.Workspace.Ui.WorkspaceController.review
Sebobo marked this conversation as resolved.
Show resolved Hide resolved
Neos.Workspace.Ui.WorkspaceController.discardDocument < Neos.Workspace.Ui.WorkspaceController.review

# Publish actions
Neos.Workspace.Ui.WorkspaceController.publishDocument < Neos.Workspace.Ui.WorkspaceController.review
Neos.Workspace.Ui.WorkspaceController.publishOrDiscardNodes < Neos.Workspace.Ui.WorkspaceController.review
Neos.Workspace.Ui.WorkspaceController.publishWorkspace < Neos.Workspace.Ui.WorkspaceController.review
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@ prototype(Neos.Workspace.Ui:Component.ReviewDocumentTableRow) < prototype(Neos.F
arguments {
targetWorkspaceName = ${selectedWorkspaceName}
targetNode = ${document.document.documentNodeAddress}

}
}
openNodeInPreviewAction = Neos.Fusion:ActionUri {
Expand All @@ -28,17 +27,18 @@ prototype(Neos.Workspace.Ui:Component.ReviewDocumentTableRow) < prototype(Neos.F
action = 'preview'
// todo fixme
@process.addQuery = ${value + '?node=' + document.document.documentNodeAddress}

}
discardDocumentAction = Neos.Fusion:ActionUri {
action = 'discardDocument'
format = 'htmx'
arguments {
nodeAddress = ${document.document.documentNodeAddress}
selectedWorkspace = ${selectedWorkspaceName}
}
}
publishDocumentAction = Neos.Fusion:ActionUri {
action = 'publishDocument'
format = 'htmx'
arguments {
nodeAddress = ${document.document.documentNodeAddress}
selectedWorkspace = ${selectedWorkspaceName}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ prototype(Neos.Workspace.Ui:Component.ReviewTable) < prototype(Neos.Fusion:Compo

@private {
i18n = ${I18n.id('').source('Main').package('Neos.Workspace.Ui')}

}

renderer = afx`
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ prototype(Neos.Workspace.Ui:Component.Modal.ConfirmDiscardAllChanges) < prototyp

discardWorkspaceUri = Neos.Fusion:ActionUri {
action = 'discardWorkspace'
format = 'htmx'
arguments {
workspace = ${workspaceName}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ prototype(Neos.Workspace.Ui:Component.Modal.ConfirmDiscardSelectedChanges) < pro

confirmDiscardSelectedChanges = Neos.Fusion:ActionUri {
action = 'publishOrDiscardNodes'
format = 'htmx'
arguments {
workspace = ${workspaceName}
action = 'discard'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ prototype(Neos.Workspace.Ui:Component.Modal.ConfirmPublishSelectedChanges) < pro

publishSelectedChanges = Neos.Fusion:ActionUri {
action = 'publishOrDiscardNodes'
format = 'htmx'
arguments {
workspace = ${workspaceName}
action = 'publish'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ Neos.Workspace.Ui.WorkspaceController.index = Neos.Fusion:Component {
userWorkspaceName = ${userWorkspaceName}
/// Neos\Workspace\Ui\ViewModel\WorkspaceListItems
workspaceListItems = ${workspaceListItems}
/// array
flashMessages = ${flashMessages}

newAction = Neos.Fusion:UriBuilder {
action = 'new'
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Actions that update a workspace and redirect to the index view

Neos.Workspace.Ui.WorkspaceController.create < Neos.Workspace.Ui.WorkspaceController.index
Loading