openedx / openedx/frontend-app-authoring
Library: Bulk Publish Confirmation Step
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 17
- Forks
- 218
- Avg merge
- 9d 20h
- Merged PRs (30d)
- 20
Description
Figma link - shows full happy path flow.
Spec
Currently, pressing "Publish All" in a content library instantly publishes all content. This will add a staged approach to allow users to choose which objects to publish deliberately, emphasizing higher-level and lower-risk levels of publishing. This ticket may be broken down into sub-issues if helpful.
Important: bulk publish confirmations have a pending product call relating to #2779. If/when library sidebars include improvements made to outline/unit-level sidebars and avoid duplication, this ticket may need to be updated / restructured.
- Users clicking "Publish" at a library level see a new Bulk Publish view, pictured above.
- Objects are grouped at the top-level within each tab (see more detail below).
- Objects can be viewed in detail in the sidebar / transiently selected by clicking the card anywhere except the "Select" button.
- Clicking the "Select" button checks the box and adds the item to the publish set.
- The publish confirmation sidebar shows the set of objects added to the publish set through direct selection (not descendants).
- The publish confirmation sidebar also shows direct or indirect course references to the objects selected.
- The transient selection object details sub-view within the sidebar does not allow editing any properties.
- On click, the publish button shows a loader, navigates back to the library browse view, and then displays a toast message about the publish status.
Grouping Logic
The groups are defined as:
- My Contributions: shows objects that have only been changed by the user since they were last published, grouped to the highest level.
- Shared Drafts: shows objects that have been changed by the user and/or other users since they were last published, grouped to the highest level (including changes from other users).
- All drafts: shows all edited objects, grouped to the highest level.
E.g. for a U1 that Braden renamed, that contains separate components, C1 edited since publish by Eddie and C2 edited since publish by Sam (with no other changed library objects):
- For Braden, U1 would appear under Shared Drafts and All Drafts, but not My Contributions. No other items would appear on any tab.
- If, at this point, Eddie published C1 and Sam Published C2, then U1 would then show under My Contributions for Braden (since it does not include anyone else’s contributions anymore).
- For Eddie, C1 would appear under My Contributions. U1 would appear under Shared Drafts and All Drafts.
- For Sam, C2 would appear under My Contributions. U1 would appear under Shared Drafts and All Drafts.
In Scope
- Publish confirmation flow
Not in Scope
- Sidebar improvements from libraries (may need to restructure this ticket depending on product delivery timeline).
- Course reference implementation itself: falls under #2801
Related Issues
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Review the Figma happy path and related issues #2779, #2799, and #2801 before defining the work; the issue names no source files or tests. Confirm the pending product decision and break the publish confirmation flow into implementable pieces, with completion covering the grouping, selection/sidebar, publish navigation, and status toast behavior described in the spec.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- react, typescript
- Domain
- frontend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100