Skip to content

refactor(web): enhance network page#3247

Merged
dgdavid merged 50 commits intonetwork-202603from
network_devices_UI
Mar 16, 2026
Merged

refactor(web): enhance network page#3247
dgdavid merged 50 commits intonetwork-202603from
network_devices_UI

Conversation

@teclator
Copy link
Copy Markdown
Contributor

@teclator teclator commented Mar 6, 2026

Problem

Beyond the usual enhancements, there was some pending work to make the network pages more useful for users. The following issues were identified as high priority:

  • Associated devices to connection: it is difficult to identify which devices belong to each connection. Improving the connection list to clearly show associated devices would make it easier for users to manage their networks.

  • Contextual actions for connections: Users can only click to view a connection and then edit it. Would be better providing a contextual menu with actions such as view details, edit, connect, or delete allows users to perform common tasks more efficiently.

  • Creating new connections: Users can only edit existing connections, which limits a lot the network configuration. Adding the ability to create new connections will address this gap and improve overall usability.

Related to,

Solution

  • Backend enhancements: Added a backend improvement to notify the system about added or removed connections, as well as changes to devices, ensuring the internal state stays in sync (see PR Detect NetworkManager connection add/remove events and maintain the internal state in sync #3244 ).

  • Connections table: Brought back the connections table, enhanced to give users more control and visibility over their connections.

  • Manage connections: Users can now add and remove connections directly from the UI.

  • IP settings improvements: Added the dnsSearchList field to the connection IPSettingsForm to support additional DNS configuration options (related to https://jira.suse.com/browse/PED-15913).

Testing

  • Added a new unit test
  • Tested manually

Screenshots

localhost_8080_ (9) localhost_8080_ (11) localhost_8080_ (12) localhost_8080_ (13)

@dgdavid

This comment was marked as outdated.

@teclator teclator force-pushed the network_devices_UI branch from 9037bc7 to 539309e Compare March 11, 2026 12:49
@teclator teclator marked this pull request as ready for review March 13, 2026 15:01
dgdavid added 3 commits March 13, 2026 16:16
  * Use Connect/Disconnect instead of up/down
  * Drop the bind column and integrate the information into device.
  * Drop bind filter
@dgdavid dgdavid force-pushed the network_devices_UI branch from 222559b to cb3ce77 Compare March 13, 2026 16:16
Copy link
Copy Markdown
Contributor

@imobachgs imobachgs left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done with the Rust part.

Action::AddAccessPoint(ap) => {
self.state.add_access_point(*ap.clone())?;
tracing::info!("Access point added: {:?}", &ap);
//self.events.send(Event::SystemChanged {
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Commented code?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yest. It needs to be discussed carefully, by now we prefer to not notify when new access points appears and just force a rescan when needed. Probably deserves a note but plan to add it and continue with the enhancements in next iteration..

Action::RemoveAccessPoint(hw_address) => {
self.state.remove_access_point(&hw_address)?;
tracing::info!("Access point removed: {:?}", &hw_address);
//self.events.send(Event::SystemChanged {
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Commented code?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same than above.

if self.state != state {
self.state = state;
self.events.send(Event::ConfigChanged {
self.events.send(Event::ProposalChanged {
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK, I guess all the events are here.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The important ones

@dgdavid dgdavid changed the title NetworkPage UI revamp refactor(web): enhance network page Mar 13, 2026
dgdavid and others added 2 commits March 15, 2026 20:58
Co-authored-by: Imobach González Sosa <igonzalezsosa@suse.com>
@dgdavid dgdavid merged commit 1558c99 into network-202603 Mar 16, 2026
16 of 18 checks passed
@dgdavid dgdavid deleted the network_devices_UI branch March 16, 2026 08:33
@imobachgs imobachgs mentioned this pull request Mar 17, 2026
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
bmwiedemann pushed a commit to bmwiedemann/openSUSE that referenced this pull request Mar 18, 2026
https://build.opensuse.org/request/show/1340718
by user IGonzalezSosa + anag_factory
- Version 19

- Ensure the list of storage issues is correctly updated
  (gh#agama-project/agama#3291).

- fix the ssh keys for first user (gh#agama-project/agama#3290)

- Ensure storage system is probed before configuring DASD
  (bsc#1259354).

- Extend the network service to monitor connections, access points,
  and general state changes, ensuring awareness of external
  modifications to the network.
- Notify about System or Proposal changes when applying the
  configuration and added progress reporting.
- Notify about System changes when devices change
  (gh#agama-project/agama#3244, gh#agama-project/agama#3247,
  gh#agama-project/agama#3276).

- Fix method for getting zFCP issues (gh#agama-project/agama#3287).

- Fix the sshPublicKeys alias (gh#agama-project/agama#3284).

- jsc#PED-1543
bmwiedemann pushed a commit to bmwiedemann/openSUSE that referenced this pull request Mar 18, 2026
https://build.opensuse.org/request/show/1340724
by user IGonzalezSosa + anag_factory
- Version 19

- Prevent bulk selection using stale data (gh#agama-project/agama#3289).

- Log actions failures (related to bsc#1259354).

- Change network web user interface to offer more control and
  interaction with connections (gh#agama-project/agama#3247).

- Prevent error when there is no zFCP config
  (gh#agama-project/agama#3287).

- Prevent error when displaying reused LVM VGs (related to
  gh#agama-project/agama#3210, jsc#PED-15104, bsc#1254718 and
  gh#agama-project/agama#3171).

- Sync system schema with the backend (related to the fix for
  bsc#1258486).

- Improve error page with filtered, source-mapped stack traces
  for better error reporting (gh#agama-project/agama#3261).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants