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

Adapt the web user interface to log in the new server #1080

Merged
merged 27 commits into from
Mar 13, 2024

Conversation

imobachgs
Copy link
Contributor

@imobachgs imobachgs commented Mar 7, 2024

This pull request aims to adapt the web UI to start using the new agama-server.

The user should be able to:

  • Log in the new agama-server (using the root password).
  • Find the list of existing products and allow the user to select one.

To make it possible to reach the product selection list, several things need to be adapted.

Screenshots

Although texts still need a review, you can get an idea of how it looks with the following screenshots.

Screenshot 2024-03-08 at 06-18-09 Agama

Screenshot 2024-03-08 at 06-17-39 Agama

* It is (working) a proof-of-concept.
* Providers have been reorganized.
* The only way to logout is by removing the cookie. You can
  remove them, for instance, using your browser's developer
  tools.
@coveralls
Copy link

coveralls commented Mar 7, 2024

Coverage Status

coverage: 74.717% (-0.2%) from 74.923%
when pulling 6bf968d on login
into 3d97d73 on architecture_2024.

Needed in the context of the login page to been able to influence the
full look&feel of the button. It allows a better integration outside of the
core/Sidebar.
To make possible use it for the login page too, since core/Sidebar
mounts components that depends on pieces that are not available before
login into the system.
Mainly by wrapping its content in with core/Page component to make it
looks like the rest of Agama pages.

Texts and buttons might be subject to be changed before merging into
master.
@dgdavid
Copy link
Contributor

dgdavid commented Mar 7, 2024

I've made some changes to integrate the login page with the rest of Agama.

In general... I'm happy with the result 🤓 But please, bear in mind that the text you will see in below screenshot are kind of placeholder for opening a discussion about the information should be there. They might be improved or change, but in general I'd like keep two things

  • Make it clear that this is a page for entering the root password. No matter in which language the UI is, the root is always root.
  • Have the about link there. We can discuss as much as you want about the text and appearance until find something with a good balance between discover-ability and intrusiveness. BTW, I choose What is this? text just for opening the discussion.

localhost_8080_ (2)

@ancorgs
Copy link
Contributor

ancorgs commented Mar 8, 2024

Maybe we could take the opportunity to adapt the "about Agama" text. I would remove the part about "use it in virtual machines". For the time this is merged into master, I hope we could already benefit from tests in real hardware.

@imobachgs imobachgs marked this pull request as ready for review March 11, 2024 12:42
Copy link
Contributor

@dgdavid dgdavid left a comment

Choose a reason for hiding this comment

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

I've reviewed the web part. In general looks good, just a few minor comments, some of them against code sent by myself 😜

I saw a lot of code commented. I understand this is an intermediate step and these comments will be revisited sooner than later.

That was a huge change, thanks for taking care of it.

/**
* Registers a handler for events.
*
* The handler is executer for all the events. It is up to the callback to
Copy link
Contributor

Choose a reason for hiding this comment

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

NP: typo, executed

web/src/client/http.js Show resolved Hide resolved
}

/**
* Available locales to install in the target system.
*
* TODO: find a better name because it is rather confusing (e.g., 'locales' and 'getLocales').
Copy link
Contributor

Choose a reason for hiding this comment

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

The same applies to keymaps and timezones, I guess. Only whateverOptions comes to my mind, although admittedly is not much better.

web/src/components/core/If.jsx Outdated Show resolved Hide resolved
web/src/components/core/LoginPage.jsx Show resolved Hide resolved
Co-authored-by: David Díaz <1691872+dgdavid@users.noreply.github.com>
@dgdavid
Copy link
Contributor

dgdavid commented Mar 12, 2024

Maybe we could take the opportunity to adapt the "about Agama" text. I would remove the part about "use it in virtual machines". For the time this is merged into master, I hope we could already benefit from tests in real hardware.

Since Imo has considered this PR good enough to be merged into the feature branch, I guess we need a follow-up card for rewording the About text.

Maybe @mvidner wanna have a look.

rust/WEB-SERVER.md Outdated Show resolved Hide resolved
@@ -36,19 +41,50 @@ pub struct LoginRequest {
pub password: String,
}

#[utoipa::path(get, path = "/authenticate", responses(
#[utoipa::path(post, path = "/auth", responses(
Copy link
Contributor

Choose a reason for hiding this comment

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

Shall we use "/api/auth" here?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Oh, yes.

Copy link
Contributor

@teclator teclator left a comment

Choose a reason for hiding this comment

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

Just added some minor suggestions and comments but in general LGTM

imobachgs and others added 2 commits March 13, 2024 11:14
Co-authored-by: Knut Alejandro Anderssen González <kanderssen@suse.de>
@imobachgs imobachgs merged commit fbb5049 into architecture_2024 Mar 13, 2024
4 checks passed
@imobachgs imobachgs deleted the login branch March 13, 2024 12:00
imobachgs added a commit that referenced this pull request Mar 13, 2024
Trello:
https://trello.com/c/Ff8n3NVZ/3563-5-expose-the-manager-api-over-http

This PR exposes most of the Manager API[^1] through the interface. It
includes:

* `api/manager/probe`: starts the probing.
* `api/manager/install`: starts the installation.
* `api/manager/finish`: executes the post-install tasks.
* `api/manager/status`: expose the manager status`

```rust
{
  "phase": "Config",
  "busy": [
    "org.opensuse.Agama.Storage1"
  ]
}
```

Additionally, it emits two events: `BusyServicesChanged` and
`InstallationPhaseChanged`.

[^1]: The part of the D-Bus API used by the web UI.

## To do

- [x] Before proceeding, we need to merge #1080.
- [ ] ~~Add a mechanism to get the logs~~ (postponed).
- [x] Add a `CanInstall` boolean to the manager status.
imobachgs added a commit that referenced this pull request May 6, 2024
After a few months of work, it is time to merge the `architecture_2024`
branch into `master`. It is still a work-in-progress, but all the
efforts should be go now against that branch.

## Pull requests

* #1061
* #1064
* #1073
* #1074
* #1080
* #1089
* #1091
* #1092
* #1094
* #1095
* #1099
* #1100
* #1102
* #1103
* #1112
* #1114
* #1116
* #1117
* #1119
* #1120
* #1123
* #1126
* #1129
* #1130
* #1131
* #1132
* #1133
* #1134
* #1136
* #1139
* #1140
* #1143
* #1146

## Other commits

* 8efa41f
* 9e2dec0
@imobachgs imobachgs mentioned this pull request May 17, 2024
imobachgs added a commit that referenced this pull request May 17, 2024
Prepare for releasing Agama 8. It includes the following pull requests:

* #884
* #886
* #914
* #918
* #956
* #957
* #958
* #959
* #960
* #961
* #962
* #963
* #964
* #965
* #966
* #969
* #970
* #976
* #977
* #978
* #979
* #980
* #981
* #983
* #984
* #985
* #986
* #988
* #991
* #992
* #995
* #996
* #997
* #999
* #1003
* #1004
* #1006
* #1007
* #1008
* #1009
* #1010
* #1011
* #1012
* #1014
* #1015
* #1016
* #1017
* #1020
* #1022
* #1023
* #1024
* #1025
* #1027
* #1028
* #1029
* #1030
* #1031
* #1032
* #1033
* #1034
* #1035
* #1036
* #1038
* #1039
* #1041
* #1042
* #1043
* #1045
* #1046
* #1047
* #1048
* #1052
* #1054
* #1056
* #1057
* #1060
* #1061
* #1062
* #1063
* #1064
* #1066
* #1067
* #1068
* #1069
* #1071
* #1072
* #1073
* #1074
* #1075
* #1079
* #1080
* #1081
* #1082
* #1085
* #1086
* #1087
* #1088
* #1089
* #1090
* #1091
* #1092
* #1093
* #1094
* #1095
* #1096
* #1097
* #1098
* #1099
* #1100
* #1102
* #1103
* #1104
* #1105
* #1106
* #1109
* #1110
* #1111
* #1112
* #1114
* #1116
* #1117
* #1118
* #1119
* #1120
* #1121
* #1122
* #1123
* #1125
* #1126
* #1127
* #1128
* #1129
* #1130
* #1131
* #1132
* #1133
* #1134
* #1135
* #1136
* #1138
* #1139
* #1140
* #1141
* #1142
* #1143
* #1144
* #1145
* #1146
* #1147
* #1148
* #1149
* #1151
* #1152
* #1153
* #1154
* #1155
* #1156
* #1157
* #1158
* #1160
* #1161
* #1162
* #1163
* #1164
* #1165
* #1166
* #1167
* #1168
* #1169
* #1170
* #1171
* #1172
* #1173
* #1174
* #1175
* #1177
* #1178
* #1180
* #1181
* #1182
* #1183
* #1184
* #1185
* #1187
* #1188
* #1189
* #1190
* #1191
* #1192
* #1193
* #1194
* #1195
* #1196
* #1198
* #1199
* #1200
* #1201
* #1203
* #1204
* #1205
* #1206
* #1207
* #1208
* #1209
* #1210
* #1211
* #1212
* #1213
* #1214
* #1215
* #1216
* #1217
* #1219
* #1220
* #1221
* #1222
* #1223
* #1224
* #1225
* #1226
* #1227
* #1229
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.

5 participants