feat(software-center): restructure updates tab and expose automatic updates opt-out - #1247
Open
stephdl wants to merge 20 commits into
Open
feat(software-center): restructure updates tab and expose automatic updates opt-out#1247stephdl wants to merge 20 commits into
stephdl wants to merge 20 commits into
Conversation
stephdl
marked this pull request as draft
July 24, 2026 14:44
Confirm enabling and disabling automatic updates before running the set-automatic-updates cluster action. One component serves both scopes: passing an instance switches the payload and the wording. Freeze the confirmed action when the modal opens, so the caller flipping its own state cannot rewrite the texts mid-fade. Release the modal on every terminal outcome, including validation-failed and an outcome that never arrives, and drop the $root listeners that never fired.
…updates Rename "instance" and "apps" to "applications" across the Software Center, add the core update section and automatic updates messages, and drop the keys left unused by the title tooltip removal.
Show both upgrade cases in the tab instead of a banner pointing at a separate page: a Core update section with the core card, then an Applications update section with its description, the bulk update button and the application cards. Each renders only when it has something to show, and the empty state states explicitly that nothing is pending. Merge the two mutually exclusive notifications into one covering core and application updates, add the cluster-wide automatic updates toggle, and drop the page title tooltip, absent from the design. Report an aborted list-modules rather than leaving the cluster-wide flags silently false, never claim the cluster is up to date when a listing failed, and keep the bulk update countdown mounted while the list reloads, since it carries the only way to cancel the armed timer.
stephdl
marked this pull request as ready for review
July 27, 2026 13:19
Add the enable and disable entry to the application menu and an "Updates disabled" tag beside the version. Both read a single gate, so they cannot disagree: the opt-out is offered only with an active subscription and cluster-wide automatic updates on, since it has no observable effect while the timer is off. Align the version cell contents, which Carbon tags pushed off the text baseline, and rename the page button to "Go to Core applications" with the arrow icon, as the design asks.
Add the enable and disable entry to the instance menu and the "Updates disabled" tag beside the version, behind the same gate as the applications view. Report an aborted list-modules instead of leaving the page in a loading skeleton with no error.
vue-router rejects a push to the current location, and the rejection was unhandled, so clicking the already active entry logged NavigationDuplicated.
andre8244
reviewed
Aug 24, 2026
andre8244
reviewed
Aug 24, 2026
This reverts commit 1a561a2.
The page manages the installed estate but kept only the per-instance opt-out: the warning notification and the cluster-wide switch lived in Software center alone, so there was no way to turn automatic updates off for every app from here. Add the same warning notification, and a kebab menu next to the Core applications button holding the switch and a link back to Software center. The shared modal is reused: the cluster-wide path clears the instance it targets, which otherwise outlives its own modal.
The page toolbar sits next to the same kebab menu as Software center but drew its button as tertiary, and the label ran wider than the one it faces. Use the same secondary kind and drop the Go to prefix.
…enter" This reverts commit 6874ca8. Keep the tertiary button with its right arrow and the Go to Core applications label.
The table kept a logo only when it was an absolute URL, which is what a repository serves. An app installed outside any repository publishes its logo with its own UI bundle, and list-modules reports that local path, so those rows fell back to the generic logo while the app drawer, fed by the same data, showed the right one. Take the module logo, then the instance one, whatever their form. A published bundle can disappear, so keep the default logo as an error fallback rather than letting a broken image through.
Installing an app refreshed the drawer, but removing one left it there, on both the Applications and the Software center pages, and a clone or a move never reached it either. The drawer lists the same estate, so it kept showing apps that were gone and missed the ones just created. Emit reloadAppDrawer from the two uninstall handlers, and from the clone modal itself so a single emission covers both pages, the way the install modal already does.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Implement the Software Center UI for automatic updates, per the approved design in NethServer/dev#7976. Frontend only; the backend policy is already enforced on the base branch
feat-8101.Changes
set-automatic-updatesreleases the modal; an abortedlist-modulesis reported instead of leaving the flags silently false.NavigationDuplicatedwhen clicking the active side menu entry.New file:
core/ui/src/components/software-center/AutomaticUpdatesModal.vue— one modal for both scopes; aninstanceprop switches payload and wording.Backend contract consumed
list-modules:apply_updates_is_active,subscription_is_active,installed[].automatic_updates.set-automatic-updates:{ apply_updates_is_active?, instances?: { id: bool } }.Refs: NethServer/dev#8101
Design: NethServer/dev#7976