Skip to content

Commit 5138ba5

Browse files
committed
[MS] Update organization recovery page
1 parent 611c942 commit 5138ba5

29 files changed

+1326
-597
lines changed
Lines changed: 32 additions & 0 deletions
Loading
Lines changed: 17 additions & 0 deletions
Loading
Lines changed: 12 additions & 0 deletions
Loading
Lines changed: 19 additions & 0 deletions
Loading

client/src/components/devices/DeviceCard.vue

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
</div>
2424

2525
<ion-text
26-
class="badge button-medium"
26+
class="badge-active button-medium"
2727
v-show="isCurrent"
2828
:outline="true"
2929
>
@@ -129,12 +129,15 @@ defineProps<{
129129
}
130130
}
131131
132-
.badge {
133-
font-size: 0.8125rem;
134-
margin: auto 0 auto auto;
135-
border-radius: var(--parsec-radius-32);
136-
padding: 0.25em 0.5em;
137-
color: var(--parsec-color-light-primary-600);
138-
background: var(--parsec-color-light-primary-100);
132+
.badge-active {
133+
position: absolute;
134+
top: 1rem;
135+
right: 1rem;
136+
background: var(--parsec-color-light-primary-50);
137+
color: var(--parsec-color-light-primary-500);
138+
flex-shrink: 0;
139+
padding: 0.25rem 0.5rem;
140+
border-radius: var(--parsec-radius-12);
141+
white-space: nowrap;
139142
}
140143
</style>
Lines changed: 35 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,50 +1,64 @@
11
<!-- Parsec Cloud (https://parsec.cloud) Copyright (c) BUSL-1.1 2016-present Scille SAS -->
22

33
<template>
4-
<div
5-
class="profile-info-card"
6-
:class="{ 'profile-info-card--center': centerContent }"
7-
>
8-
<ion-text class="profile-info-card__name title-h2">
9-
{{ label }}
10-
</ion-text>
11-
<ion-text class="profile-info-card__email body">
12-
{{ email }}
13-
</ion-text>
14-
<user-profile-tag :profile="currentProfile" />
4+
<div class="profile-info-card">
5+
<ms-image
6+
:image="PersonCircle"
7+
class="profile-info-card__avatar"
8+
/>
9+
<div class="profile-info-card-content">
10+
<div class="profile-info-card-item">
11+
<ion-text class="item-text title-h3">
12+
{{ label }}
13+
</ion-text>
14+
<user-profile-tag :profile="currentProfile" />
15+
</div>
16+
17+
<div class="profile-info-card-item">
18+
<ion-text class="item-text body-lg">
19+
{{ email }}
20+
</ion-text>
21+
</div>
22+
</div>
1523
</div>
1624
</template>
1725

1826
<script setup lang="ts">
27+
import PersonCircle from '@/assets/images/person-circle.svg?raw';
1928
import UserProfileTag from '@/components/users/UserProfileTag.vue';
2029
import { UserProfile } from '@/parsec';
2130
import { IonText } from '@ionic/vue';
31+
import { MsImage } from 'megashark-lib';
2232
2333
defineProps<{
2434
label: string;
2535
email: string;
2636
currentProfile: UserProfile;
27-
centerContent?: boolean;
2837
}>();
2938
</script>
3039

3140
<style lang="scss" scoped>
3241
.profile-info-card {
3342
display: flex;
34-
flex-direction: column;
35-
gap: 0.5rem;
43+
align-items: center;
44+
gap: 1rem;
3645
37-
&--center {
38-
align-items: center;
46+
&__avatar {
47+
height: 3rem;
48+
color: var(--parsec-color-light-secondary-text);
3949
}
4050
41-
&__name {
42-
color: var(--parsec-color-light-secondary-text);
51+
&-content {
52+
display: flex;
53+
flex-direction: column;
4354
}
4455
45-
&__email {
46-
margin-bottom: 0.5rem;
47-
color: var(--parsec-color-light-secondary-soft-text);
56+
&-item {
57+
display: flex;
58+
align-items: center;
59+
gap: 0.75rem;
60+
justify-content: space-between;
61+
color: var(--parsec-color-light-secondary-text);
4862
}
4963
}
5064
</style>

client/src/components/settings/SettingsList.vue

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -245,6 +245,7 @@ onUnmounted(async (): Promise<void> => {
245245
padding-top: 0px;
246246
padding-bottom: 0px;
247247
gap: 2rem;
248+
contain: initial;
248249
249250
&-container {
250251
display: flex;
@@ -256,7 +257,10 @@ onUnmounted(async (): Promise<void> => {
256257
background: var(--parsec-color-light-secondary-white);
257258
border-radius: var(--parsec-radius-12);
258259
padding: 1.5rem 0 0;
259-
box-shadow: var(--parsec-shadow-input);
260+
box-shadow:
261+
0 1px 1px 0 rgba(0, 0, 0, 0.05),
262+
0 1px 4px 0 rgba(0, 0, 0, 0.03),
263+
0 0 1px 0 rgba(0, 0, 0, 0.2);
260264
261265
&__title {
262266
color: var(--parsec-color-light-primary-700);

client/src/components/settings/SettingsOption.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<template>
44
<div class="settings-option">
55
<div class="settings-option__content">
6-
<ion-text class="button-medium title">
6+
<ion-text class="button-large title">
77
{{ $msTranslate(title) }}
88
</ion-text>
99
<ion-text class="body-sm description">
@@ -43,7 +43,7 @@ defineProps<{
4343
}
4444
4545
.description {
46-
color: var(--parsec-color-light-secondary-grey);
46+
color: var(--parsec-color-light-secondary-hard-grey);
4747
}
4848
}
4949
}

client/src/locales/en-US.json

Lines changed: 35 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -188,7 +188,7 @@
188188
"devices": "My devices",
189189
"authentication": "Authentication",
190190
"account": "Account",
191-
"recovery": "Recovery file",
191+
"recovery": "Access recovery",
192192
"contactUs": "Contact us",
193193
"documentation": "Documentation",
194194
"logout": "Log out",
@@ -2097,6 +2097,10 @@
20972097
"title": "Changes"
20982098
},
20992099
"MyProfilePage": {
2100+
"settings": {
2101+
"title": "Settings",
2102+
"description": "Access language, theme and privacy settings for the application."
2103+
},
21002104
"titleCurrentPassword": "Enter your current password",
21012105
"titleCurrentOpenBao": "Connect to your SSO provider",
21022106
"titleNewAuthentication": "Change authentication method",
@@ -2114,7 +2118,7 @@
21142118
"settings": "Settings",
21152119
"devices": "My devices",
21162120
"authentication": "Authentication",
2117-
"recovery": "Recovery files"
2121+
"recovery": "Access recovery"
21182122
},
21192123
"support": {
21202124
"title": "Support",
@@ -2133,16 +2137,37 @@
21332137
}
21342138
},
21352139
"OrganizationRecovery": {
2136-
"title": "Organization recovery files",
2137-
"recoveryFile": "Recovery Files",
2138-
"recoveryKey": "Secret Key",
2140+
"title": "Access recovery",
2141+
"description": "Set up recovery options in case you lose your access (forgotten password, lost login details, etc.) from a device or browser.",
21392142
"advice": "We strongly recommend creating recovery files for each organization.",
2140-
"adviceDone": "You have already created recovery files.",
2143+
"file": {
2144+
"title": "Recovery files",
2145+
"description": "A recovery file combined with a secret key allow you to restore access to your data once assembled.",
2146+
"info": "You need to save this recovery file and this secret key in a secure place, if possible in separate places, as both are needed to recover a device's access to an organization.",
2147+
"downloaded": "Files downloaded",
2148+
"action": "Create recovery files"
2149+
},
2150+
"device": {
2151+
"title": "Trusted devices or browsers",
2152+
"description": "Add secondary devices or browsers (Chrome or Firefox) as backup accesses to this organization.",
2153+
"activeDevices": "1 other active device/browser | {count} other active devices/browsers",
2154+
"action": "Add a device"
2155+
},
2156+
"trustedUser": {
2157+
"title": "People of trust",
2158+
"description": "Designate trusted people who can help you recover your account in case of lost access (minimum {minUsers} people).",
2159+
"action": "Manage my people of trust",
2160+
"actionSecondary": "Help recover a person"
2161+
},
2162+
"state": {
2163+
"active": "Active",
2164+
"inactive": "Inactive"
2165+
},
2166+
"modal": {
2167+
"title": "Recovery files",
2168+
"confirmation": "I confirm that I have copied my secret key and downloaded my recovery file."
2169+
},
21412170
"done": {
2142-
"subtitle": "Recovery files allow you to regain access to this organization if you forgot your password or lose your devices.",
2143-
"subtitle2": "Without recovery files, you will not be able to recover your account in such a case, and you will need to be re-invited to the organization.",
2144-
"subtitle3": "They consist of a recovery file and a recovery key. You need to save both in a secure place, if possible in separate places, as both are needed to recover a device's access to an organization.",
2145-
"button": "Download file",
21462171
"recreateQuestionTitle": "Create new recovery files?",
21472172
"recreateQuestionMessage": "You have already created recovery files in the past. Do you want to create new ones?",
21482173
"recreateYes": "Create new recovery files",

0 commit comments

Comments
 (0)