Skip to content

Commit 09314db

Browse files
committed
[MS] Update organization recovery page
1 parent d403cf4 commit 09314db

29 files changed

+1261
-589
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": "Organization recovery",
192192
"contactUs": "Contact us",
193193
"documentation": "Documentation",
194194
"logout": "Log out",
@@ -2076,6 +2076,10 @@
20762076
"title": "Changes"
20772077
},
20782078
"MyProfilePage": {
2079+
"settings": {
2080+
"title": "Settings",
2081+
"description": "Access language, theme and privacy settings for the application."
2082+
},
20792083
"titleCurrentPassword": "Enter your current password",
20802084
"titleCurrentOpenBao": "Connect to your SSO provider",
20812085
"titleNewAuthentication": "Change authentication method",
@@ -2093,7 +2097,7 @@
20932097
"settings": "Settings",
20942098
"devices": "My devices",
20952099
"authentication": "Authentication",
2096-
"recovery": "Recovery files"
2100+
"recovery": "Organization recovery"
20972101
},
20982102
"support": {
20992103
"title": "Support",
@@ -2112,16 +2116,37 @@
21122116
}
21132117
},
21142118
"OrganizationRecovery": {
2115-
"title": "Organization recovery files",
2116-
"recoveryFile": "Recovery Files",
2117-
"recoveryKey": "Secret Key",
2119+
"title": "Organization recovery",
2120+
"description": "If you lose access to your account, you can set up recovery options for your account with this organization.",
21182121
"advice": "We strongly recommend creating recovery files for each organization.",
2119-
"adviceDone": "You have already created recovery files.",
2122+
"file": {
2123+
"title": "Recovery files",
2124+
"description": "A recovery file and a secret key allow you to regain access to your data once assembled.",
2125+
"info": "You need to save recovery file and recovery key in a secure place, if possible in separate places, as both are needed to recover a device's access to an organization.",
2126+
"downloaded": "Files downloaded",
2127+
"action": "Create recovery files"
2128+
},
2129+
"device": {
2130+
"title": "Trusted devices or browsers",
2131+
"description": "Simply add secondary devices or browsers (Chrome or Firefox) to recover your account.",
2132+
"activeDevices": "1 other active device/browser | {count} other active devices/browsers",
2133+
"action": "Add a device"
2134+
},
2135+
"trustedUser": {
2136+
"title": "People of trust",
2137+
"description": "Designate trusted people who can help you recover your account in case of lost access (minimum {minUsers} people).",
2138+
"action": "Manage my people of trust",
2139+
"actionSecondary": "Help recover a person"
2140+
},
2141+
"state": {
2142+
"active": "Active",
2143+
"inactive": "Inactive"
2144+
},
2145+
"modal": {
2146+
"title": "Recovery files",
2147+
"confirmation": "I confirm that I have copied my secret key and downloaded my recovery file."
2148+
},
21202149
"done": {
2121-
"subtitle": "Recovery files allow you to regain access to this organization if you forgot your password or lose your devices.",
2122-
"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.",
2123-
"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.",
2124-
"button": "Download file",
21252150
"recreateQuestionTitle": "Create new recovery files?",
21262151
"recreateQuestionMessage": "You have already created recovery files in the past. Do you want to create new ones?",
21272152
"recreateYes": "Create new recovery files",

0 commit comments

Comments
 (0)