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

[web] SpacePolicy as pop-up #1090

Merged
merged 4 commits into from
Mar 15, 2024
Merged

Conversation

ancorgs
Copy link
Member

@ancorgs ancorgs commented Mar 12, 2024

Problem

A new table is going to be added to present the storage result, see #1088. Having both the table for configuring the space policy and the table for the result at the same page is too much.

Solution

Move the space policy configuration to a popup.

Screenshots

Toggle

one

another

@ancorgs ancorgs force-pushed the space_popup branch 4 times, most recently from 7d9ed18 to 2990e6f Compare March 13, 2024 15:45
@coveralls
Copy link

coveralls commented Mar 13, 2024

Coverage Status

coverage: 74.711% (+0.05%) from 74.666%
when pulling ca49bc3 on ancorgs:space_popup
into 8fd0ff7 on openSUSE:storage-ui.

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.

So far, it looks good. I really like the simple, but clever, trick you did to avoid repeating same lines in the test examples. I wonder why I didn't think on it before 😜 I'm gonna think that I'm simply less lazy than you 😄

summaryLabels: [
// TRANSLATORS: This is presented next to the label "Find space", so the whole sentence
// would read as "Find space performing a custom set of actions".
N_("performing a custom set of actions")
Copy link
Contributor

Choose a reason for hiding this comment

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

NP: I have asked about the need of using N_ and _ here instead of directly _. See #726 (comment)

Asking because I've used directly _( in other places and, unless I'm wrong, it works.

Copy link
Contributor

Choose a reason for hiding this comment

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

According to the @lslezak answer, you do not need 'N_ here, unless we decide to start wrapping Object.freeze to these objects.

Comment on lines +105 to +113
const openPopup = async (props = {}) => {
const allProps = { policy, devices, actions, ...props };
const { user } = plainRender(<ProposalSpacePolicyField { ...allProps } />);
const button = screen.getByRole("button");

await user.click(button);
const dialog = screen.getByRole("dialog", { name: "Find Space" });
return { user, dialog };
};
Copy link
Contributor

Choose a reason for hiding this comment

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

Cool! 👌

});

it("does not render the policy actions", async () => {
const { dialog } = await openPopup();
Copy link
Contributor

Choose a reason for hiding this comment

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

That saves a lot of duplicated lines! 🎉

@joseivanlopez joseivanlopez changed the base branch from master to storage-ui March 14, 2024 13:01
@joseivanlopez joseivanlopez changed the base branch from storage-ui to master March 14, 2024 13:04
@joseivanlopez joseivanlopez changed the base branch from master to storage-ui March 14, 2024 13:04
@joseivanlopez joseivanlopez marked this pull request as ready for review March 14, 2024 13:48
@joseivanlopez joseivanlopez changed the base branch from storage-ui to master March 14, 2024 13:52
@joseivanlopez joseivanlopez changed the base branch from master to storage-ui March 14, 2024 13:52
ancorgs and others added 4 commits March 14, 2024 13:59
- The state about expanded devices can be directly stored in the component.
- There are no unmounts when changing the policy or actions, so there is no
  need of remembering the state of an unmounted component.
- Use description from backend.
- Simplify columns.
@ancorgs ancorgs changed the title WIP: SpacePolicy as pop-up [web] SpacePolicy as pop-up Mar 14, 2024
@dgdavid
Copy link
Contributor

dgdavid commented Mar 14, 2024

Move the space policy configuration to a popup.

Just a note for people reading this. It has been moved not only for avoid having too much tables in the same page. We also found a kind of a pattern in that page which is, more or less, to move to a dialog things that are not applied immediately or things that are actually related with the real status of the current system, not the proposal that is going on.

Of course, we can elaborate this a bit more.

@@ -260,6 +237,18 @@ const DeviceRow = ({
onCollapse = noop,
onChange = noop
}) => {
// Generates the action value according to the policy.
const action = () => {
Copy link
Member Author

Choose a reason for hiding this comment

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

I'm not sure if this (together with the useEffect below) is the best (ie. most usable) behavior, but I find it reasonable enough to get this merged. We can re-evaluate in the future based on user's feedback.

// ensures that.

// Stores whether the custom policy has been used.
useEffect(() => {
Copy link
Member Author

Choose a reason for hiding this comment

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

See https://github.com/openSUSE/agama/pull/1090/files#r1526086667. As said there, I'm not sure this will be the final behavior, but it's not a stopper to merge (is actually quite good).

Copy link
Member Author

@ancorgs ancorgs left a comment

Choose a reason for hiding this comment

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

I approve changes introduced by @joseivanlopez, but I cannot effectively approve the PR since I'm the original author.

@ancorgs ancorgs merged commit 0574914 into openSUSE:storage-ui Mar 15, 2024
1 check passed
dgdavid added a commit that referenced this pull request Mar 19, 2024
As part of the Storage UI changes described at
https://github.com/openSUSE/agama/blob/master/doc/storage_ui.md
document, this PR aims to merge into master the changes already
available in the `storage_ui` feature branch, which has been already
tested and validated. Namely,

* #1071

   Added the following information to D-Bus:

    * The list of actions includes the SID of the affected device.
    * The partition table exports the unused slots.
* The LVM devices (volume groups, physical volumes and logical volumes)
are exported.
* The block devices includes their start block and also indicates
whether the device is encrypted.
    * The staging devices are exported.
    
* #1079 

Adapt the storage client to the changes in the D-Bus API and adapt
`ProposalPage` component to read the information about the devices if
needed.


* #1082

Added new D-Bus interfaces `Device` , `Partition`, `LVM.LogicalVolume`
and adapt `Filesystem` interface.

  It requires yast/yast-storage-ng#1373.

* #1088

Replaced the `Planned Actions` section in the storage proposal for a
`Result` one which presents how the storage would look after
installation instead of just the list of actions.

* #1090

  Moved the space policy configuration to a popup.


* #1098

Replace a `Resize` by `Before` label as it was suggested during the
presentation of the UI in a review meeting.
@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.

None yet

4 participants