refactor(web): restore interface for managing iSCSI form web client#3092
Merged
refactor(web): restore interface for managing iSCSI form web client#3092
Conversation
dgdavid
reviewed
Feb 2, 2026
56041f8 to
df4759e
Compare
d3a1733 to
c5b37af
Compare
Not actually needed when the action is a children of the form. Temporary change, since this kind of actions will be extracted out of Page component
* Allows to use no selection at all (selectionMode=none).
It works kind of against the initial proposal of the component,
which still called "SELECTABLE". Something to revisit and improve.
* Does not render an empty dropdown for actions if there are actually
0 actions.
Not finished. Not polished and not tested. Just a kind of draft to draw the path to follow.
Given two or more colletions of elements, it merges all of them in a single one but adding a "sources" key to items for tracking in which collections they were. Born for bein able to know if an iscsci node comes from config, system, or both.
> Deprecation Warning on line 31, column 21 of > /node_modules/@patternfly/patternfly/sass-utilities/functions.scss:31:21: > > The Sass if() syntax is deprecated in favor of the modern CSS syntax. Such a warning comes from PatternFly, as the other two that were already silenced in commit eb6f5b1 Now is time to silence the "if-funtion" deprecation, which is active since Dart Sass 1.95.0. Check * https://sass-lang.com/documentation/js-api/interfaces/deprecations/#if_function * patternfly/patternfly#8077
The Sass import deprecation was previously silenced because PatternFly usage (see eb6f5b1). Now that PatternFly has been updated to v6, the deprecation warning is no longer raised and the workaround is no longer necessary.
Kind of continuation of 1c61572 in order to keep building the new iSCSI UI from a cleaner starting point.
Related to changes done in be88b4e
To avoid having a very big element in the breadcrumb due to the h1 styles. Allow heading inherit font-size from its parent.
c5b37af to
a915e20
Compare
a915e20 to
e3f4579
Compare
Since with new layout it should be an h2 instead of h3
For making less abrupt the change from a page with an h1 to another with a breadcrumbs + h1. Commit also includes some imports reordering.
Instead of the standard one with a lot of props for achiving same result.
dgdavid
reviewed
Feb 11, 2026
| * Common props shared by all page variants. | ||
| */ | ||
| interface BasePageProps { | ||
| interface BasePageProps extends HeaderProps { |
Contributor
There was a problem hiding this comment.
I'm not really sure, but maybe would be more convenient, predictable, and ergonomics to have a headerProps instead. Although title and breadcrumbs are so convenient to be related to page as well. In any case, I believe this PR is already rather long and changes in that regard should be sent as part of a new one.
It would allow to pass from
<Page breadcrumbs={[...]} noDefaultStartSlot endSlot={...} />to
<Page header={breadcrumbs: [...], noDefaultStartSlot: true, endSlot: ... />It has advantages and disadvantages. Advantages for defining slots contents, disadvantages passing title, breadcrumbs and "noDefaultX".
Overview-specific options are no longer shown in Header#Toolbar#centerSlot. They are now rendered in the sidebar to improve prominence and prevent users from assuming those options apply globally. This change makes the header options more distinguishable when navigating from the overview/dashboard to other areas. It reduces the risk of users expecting the "Options v" menu to contain the same items they saw on the Overview page, which could happen if it were placed in the header from the beginning.
dgdavid
added a commit
that referenced
this pull request
Feb 12, 2026
## Problem When installation `stage` is `failed` web interface does nothing but stays in the page users were working with. ## Solution Renders and informative screen instead as soon as the installation enters in a failed status ## Additional notes * All informative pages has been adapted to the usage of layout/SplitInfoLayout added as part of this PR * The `download` icon has not been added but only used here to minimize future merge conflicts since it is already added in #3092 * Tests for App.tsx still pending to adapt. Not done as part of this PR because lack of time.
ancorgs
added a commit
that referenced
this pull request
Feb 13, 2026
## Problem #3092 introduced a new button with the aria label "more storage options". The visible label was chosen to be "options" just to move the pull request forward, but we had not really agreed what would be the best visible name for the button. Now we have decided that "more" would fit better in general, taking into account that's a button that will likely be reproduced in other sections, even if (only in the storage section) it can look slightly redundant with the "more devices" below. ## Solution Label adapted. <img width="1249" height="483" alt="gimme-more" src="https://github.com/user-attachments/assets/f3d403f9-e95e-4bec-9832-795c783f49ba" />
bmwiedemann
pushed a commit
to bmwiedemann/openSUSE
that referenced
this pull request
Feb 27, 2026
https://build.opensuse.org/request/show/1334916 by user IGonzalezSosa + anag_factory - Fix the language change (gh#agama-project/agama#3197). - Do not crash when a system was registered without a code (bsc#1258450). - Log the data sent to the backend when the request fails (related to bsc#1256069) - Change the label of the button for extra storage options (related to gh#agama-project/agama#3092 and bsc#1258089). - Use the new URL of the password strenght check (gh#agama-project/agama#3159). - Notify users when installation fails (bsc#1257753). - Restore the interface for managing iSCSI in the web client (gh#agama-project/agama#3092). - Restore the "Rescan devices" storage option (bsc#1258089). - Honor the language from the backend (gh#agama-project/agama#3142). - Show translated product mode name and description (gh#agama-project/agama#3144)
dgdavid
added a commit
that referenced
this pull request
Mar 3, 2026
Agama tables lacked any visual feedback when users hovered with mouse or navigated rows with the keyboard, making it hard to track which row user is on. PF's built-in solution (isClickable on Tr) was intentionally avoided since it provides the hover highlight out of the box but also adds a pointer cursor and implies the row is clickable, which is not the common use case for Agama tables at this moment (check slightly related commit ae2d3a2 in which the usage of isClickable was discarded). Thus, a custom CSS rule has been added for covering three interaction cases: * Mouse hover, standard `:hover` * Keyboard navigation, `:focus-within`, intentionally broad to cover all focusable elements including checkboxes. This ensures keyboard users always know which row they are on. The (small) tradeoff is a residual highlight after checkbox selection that persists until focus moves elsewhere. Since it's not expected mouse users stop suddenly interacting, this is an acceptable edge case where the benefit for keyboard users outweighs the minor annoyance (for a brief amount of time) for mouse users. * Action menu open, `:has(.pf-v6-c-menu-toggle[aria-expanded="true"])`, which required fixing a missing `isExpanded` prop on `SimpleDropdown` as part of this PR. The highlight color reuses the same value used for button and menu option hover states for consistency across interactive elements. Defining another color for these elements or a dedicated token for row highlighting is left as a future improvement, though it is not a priority for the team in the mid-term given the amount of other ongoing work. <img width="2048" height="1536" alt="localhost_8080_ (10)" src="https://github.com/user-attachments/assets/3752b712-3a0e-4398-8afa-2a3fc45c73a4" /> <img width="2048" height="1536" alt="localhost_8080_ (9)" src="https://github.com/user-attachments/assets/9696544e-0d93-4a7a-8cec-6d7774ce2d7a" /> --- Related to * #3143 * #3092 * #2459
Merged
imobachgs
added a commit
that referenced
this pull request
Mar 17, 2026
Prepare to release version 19. * #1829 * #2508 * #2772 * #2818 * #2826 * #2848 * #2860 * #2863 * #2864 * #2866 * #2867 * #2869 * #2870 * #2871 * #2872 * #2873 * #2874 * #2875 * #2876 * #2877 * #2880 * #2881 * #2882 * #2884 * #2885 * #2886 * #2891 * #2892 * #2893 * #2894 * #2895 * #2896 * #2897 * #2898 * #2899 * #2900 * #2901 * #2902 * #2903 * #2904 * #2908 * #2909 * #2910 * #2912 * #2913 * #2914 * #2915 * #2916 * #2917 * #2918 * #2920 * #2921 * #2923 * #2924 * #2926 * #2928 * #2929 * #2930 * #2933 * #2934 * #2935 * #2936 * #2937 * #2938 * #2939 * #2942 * #2943 * #2944 * #2945 * #2946 * #2947 * #2948 * #2949 * #2950 * #2951 * #2952 * #2954 * #2955 * #2956 * #2957 * #2958 * #2959 * #2960 * #2961 * #2963 * #2964 * #2965 * #2967 * #2968 * #2969 * #2970 * #2971 * #2972 * #2974 * #2975 * #2977 * #2978 * #2980 * #2981 * #2982 * #2983 * #2984 * #2988 * #2989 * #2990 * #2991 * #2992 * #2993 * #2994 * #2995 * #2996 * #2997 * #2998 * #2999 * #3000 * #3001 * #3002 * #3004 * #3005 * #3006 * #3007 * #3008 * #3009 * #3011 * #3012 * #3013 * #3014 * #3015 * #3016 * #3018 * #3019 * #3020 * #3021 * #3022 * #3023 * #3024 * #3025 * #3026 * #3027 * #3028 * #3029 * #3030 * #3031 * #3033 * #3034 * #3035 * #3036 * #3037 * #3039 * #3040 * #3041 * #3042 * #3043 * #3044 * #3045 * #3046 * #3047 * #3048 * #3049 * #3050 * #3051 * #3052 * #3053 * #3054 * #3055 * #3056 * #3057 * #3058 * #3060 * #3061 * #3062 * #3063 * #3064 * #3065 * #3066 * #3067 * #3068 * #3069 * #3070 * #3071 * #3072 * #3073 * #3074 * #3075 * #3076 * #3077 * #3078 * #3079 * #3086 * #3087 * #3088 * #3089 * #3090 * #3091 * #3092 * #3093 * #3094 * #3095 * #3096 * #3097 * #3098 * #3099 * #3100 * #3101 * #3102 * #3103 * #3104 * #3105 * #3106 * #3107 * #3108 * #3109 * #3110 * #3112 * #3113 * #3114 * #3115 * #3116 * #3117 * #3118 * #3119 * #3120 * #3122 * #3123 * #3124 * #3127 * #3128 * #3129 * #3130 * #3131 * #3133 * #3134 * #3135 * #3136 * #3137 * #3138 * #3139 * #3140 * #3141 * #3142 * #3143 * #3144 * #3145 * #3146 * #3147 * #3148 * #3149 * #3150 * #3151 * #3152 * #3153 * #3154 * #3155 * #3157 * #3158 * #3159 * #3160 * #3161 * #3162 * #3163 * #3164 * #3165 * #3166 * #3167 * #3168 * #3169 * #3170 * #3174 * #3175 * #3176 * #3177 * #3178 * #3179 * #3181 * #3182 * #3184 * #3185 * #3186 * #3188 * #3189 * #3190 * #3191 * #3192 * #3194 * #3195 * #3196 * #3197 * #3198 * #3199 * #3200 * #3201 * #3202 * #3203 * #3205 * #3206 * #3208 * #3209 * #3210 * #3213 * #3214 * #3215 * #3216 * #3217 * #3218 * #3219 * #3220 * #3222 * #3223 * #3224 * #3225 * #3226 * #3227 * #3228 * #3229 * #3230 * #3231 * #3232 * #3233 * #3234 * #3235 * #3236 * #3237 * #3238 * #3239 * #3240 * #3241 * #3242 * #3243 * #3244 * #3246 * #3247 * #3248 * #3250 * #3251 * #3252 * #3253 * #3254 * #3255 * #3256 * #3257 * #3258 * #3259 * #3260 * #3261 * #3262 * #3263 * #3265 * #3266 * #3267 * #3268 * #3269 * #3270 * #3271 * #3272 * #3273 * #3274 * #3275 * #3276 * #3277 * #3278 * #3279 * #3280 * #3281 * #3282 * #3283 * #3284 * #3285 * #3286 * #3287 * #3288 * #3289 * #3290 * #3291
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.
Bring back the iSCSI user interface fully adapted to the HTTP v2 API and to the latest web client look&feel (https://trello.com/c/S65oeTKz, private link). It also restores the "Rescan devices" option (related to https://bugzilla.suse.com/show_bug.cgi?id=1258089, private link).
In addition to other minor changes not strictly related to the iSCSI user interface, during the resurrection of such an interface this PR introduced few important layout updates to make the Header and Breadcrumb more flexible and extensible. These adjustments were necessary to accommodate the placement of the “More storage options” menu while keeping consistence across other areas of Agama.
For more details, please refer to the relevant commits below.
Related to