diff --git a/resources/js/components/Footer.vue b/resources/js/components/Footer.vue index 6e2ca2bf..5c066f7c 100644 --- a/resources/js/components/Footer.vue +++ b/resources/js/components/Footer.vue @@ -15,7 +15,7 @@
{{ $t('settings.settings') }} - - {{ $t('auth.sign_out') }} + -
diff --git a/resources/js/components/FormCheckbox.vue b/resources/js/components/FormCheckbox.vue index 992d431c..e0db4d8c 100644 --- a/resources/js/components/FormCheckbox.vue +++ b/resources/js/components/FormCheckbox.vue @@ -1,7 +1,7 @@ @@ -38,6 +38,15 @@ type: String, default: '' }, + }, + + methods: { + setCheckbox(event) { + if (this.$attrs.disabled == false) { + this.form[this.fieldName] = !this.form[this.fieldName] + this.$emit(this.fieldName, this.form[this.fieldName]) + } + } } } \ No newline at end of file diff --git a/resources/js/components/FormPasswordField.vue b/resources/js/components/FormPasswordField.vue index 642e9384..2e46b17f 100644 --- a/resources/js/components/FormPasswordField.vue +++ b/resources/js/components/FormPasswordField.vue @@ -13,10 +13,10 @@ v-on:change="$emit('field-changed', form[fieldName])" v-on:keyup="checkCapsLock" /> - + - + @@ -121,6 +121,12 @@ checkCapsLock(event) { this.hasCapsLockOn = event.getModifierState('CapsLock') ? true : false }, + + setFieldType(event) { + if (this.currentType != event) { + this.currentType = event + } + } }, } \ No newline at end of file diff --git a/resources/js/components/FormToggle.vue b/resources/js/components/FormToggle.vue index 863c78d6..52cc395e 100644 --- a/resources/js/components/FormToggle.vue +++ b/resources/js/components/FormToggle.vue @@ -1,11 +1,29 @@ diff --git a/resources/js/components/OtpDisplayer.vue b/resources/js/components/OtpDisplayer.vue index 6b40d7cc..c5b2cae2 100644 --- a/resources/js/components/OtpDisplayer.vue +++ b/resources/js/components/OtpDisplayer.vue @@ -5,7 +5,7 @@

{{ internal_service }}

{{ internal_account }}

-

{{ displayedOtp }}

+

{{ displayedOtp }}

diff --git a/resources/js/components/SettingTabs.vue b/resources/js/components/SettingTabs.vue index a40151aa..d4a53c68 100644 --- a/resources/js/components/SettingTabs.vue +++ b/resources/js/components/SettingTabs.vue @@ -5,7 +5,7 @@ diff --git a/resources/js/mixins.js b/resources/js/mixins.js index c1cdab10..b8874ee0 100644 --- a/resources/js/mixins.js +++ b/resources/js/mixins.js @@ -177,6 +177,12 @@ Vue.mixin({ case 'password': prefix = 'pwd' break + case 'radio': + prefix = 'rdo' + break + case 'label': + prefix = 'lbl' + break default: prefix = 'txt' break diff --git a/resources/js/views/About.vue b/resources/js/views/About.vue index 0ebe09db..b405b640 100644 --- a/resources/js/views/About.vue +++ b/resources/js/views/About.vue @@ -50,9 +50,9 @@ {{ $t('commons.environment') }}
- +
  • {{key}}: {{value}}
@@ -62,9 +62,9 @@ {{ $t('settings.user_options') }}
- +
  • {{option}}: {{value}}
diff --git a/resources/js/views/Accounts.vue b/resources/js/views/Accounts.vue index 59bd655c..12b00a67 100644 --- a/resources/js/views/Accounts.vue +++ b/resources/js/views/Accounts.vue @@ -19,7 +19,7 @@

- {{ $t('commons.close') }} +

@@ -81,7 +81,7 @@
-
+
{{ displayService(account.service) }} @@ -148,7 +148,7 @@ {{ selectedAccounts.length }} {{ $t('commons.selected') }} - + {{ $t('commons.all') }} @@ -156,10 +156,10 @@
- + - +
@@ -167,7 +167,7 @@
-
+
{{ $t('groups.change_group') }} @@ -177,7 +177,7 @@
-
+
{{ $t('commons.delete') }} @@ -193,7 +193,7 @@
- + @@ -201,14 +201,18 @@
-
-
+
+
- {{ activeGroupName }} ({{ filteredAccounts.length }}) - +
- {{ $t('groups.select_accounts_to_show') }} +
diff --git a/resources/js/views/auth/Login.vue b/resources/js/views/auth/Login.vue index a3f7750e..a5f401f3 100644 --- a/resources/js/views/auth/Login.vue +++ b/resources/js/views/auth/Login.vue @@ -10,7 +10,9 @@
@@ -28,7 +30,9 @@

{{ $t('auth.forms.forgot_your_password') }} {{ $t('auth.forms.request_password_reset') }}

-

{{ $t('auth.sign_in_using') }} {{ $t('auth.webauthn.security_device') }}

+

{{ $t('auth.sign_in_using') }}  + {{ $t('auth.webauthn.security_device') }} +

diff --git a/resources/js/views/settings/Account.vue b/resources/js/views/settings/Account.vue index 762eaf1b..5180abda 100644 --- a/resources/js/views/settings/Account.vue +++ b/resources/js/views/settings/Account.vue @@ -37,7 +37,7 @@

- + {{ $t('commons.close') }}

diff --git a/resources/js/views/settings/OAuth.vue b/resources/js/views/settings/OAuth.vue index f2329c8d..483875fa 100644 --- a/resources/js/views/settings/OAuth.vue +++ b/resources/js/views/settings/OAuth.vue @@ -9,7 +9,7 @@ {{ $t('settings.token_legend')}}
diff --git a/resources/js/views/settings/WebAuthn.vue b/resources/js/views/settings/WebAuthn.vue index 4fcb2944..9c9317de 100644 --- a/resources/js/views/settings/WebAuthn.vue +++ b/resources/js/views/settings/WebAuthn.vue @@ -9,8 +9,8 @@ {{ $t('auth.webauthn.security_devices_legend')}}
diff --git a/resources/lang/en/errors.php b/resources/lang/en/errors.php index ba43bccf..217146ba 100644 --- a/resources/lang/en/errors.php +++ b/resources/lang/en/errors.php @@ -22,7 +22,7 @@ return [ 'Unable_to_decrypt_uri' => 'Unable to decrypt uri', 'not_a_supported_otp_type' => 'This OTP format is not currently supported', 'cannot_create_otp_without_secret' => 'Cannot create an OTP without a secret', - 'data_of_qrcode_is_not_valid_URI' => 'The data of this QR code is not a valid OTP Auth URI:', + 'data_of_qrcode_is_not_valid_URI' => 'The data of this QR code is not a valid OTP Auth URI. The QR code contains:', 'wrong_current_password' => 'Wrong current password, nothing has changed', 'error_during_encryption' => 'Encryption failed, your database remains unprotected.', 'error_during_decryption' => 'Decryption failed, your database is still protected. This is mainly caused by an integrity issue of encrypted data for one or more accounts.', diff --git a/resources/lang/en/groups.php b/resources/lang/en/groups.php index 26c25063..e3553824 100644 --- a/resources/lang/en/groups.php +++ b/resources/lang/en/groups.php @@ -15,7 +15,9 @@ return [ 'groups' => 'Groups', 'create_group' => 'Create new group', - 'select_accounts_to_show' => 'Select accounts to show', + 'show_group_selector' => 'Show group selector', + 'hide_group_selector' => 'Hide group selector', + 'select_accounts_to_show' => 'Select accounts group to show', 'manage_groups' => 'Manage groups', 'active_group' => 'Active group', 'manage_groups_legend' => 'You can create groups to organize your accounts the way you want. All accounts remain visible in the pseudo group named \'All\', regardless of the group they belong to.', diff --git a/resources/sass/app.scss b/resources/sass/app.scss index e4b3dcbd..670fd05b 100644 --- a/resources/sass/app.scss +++ b/resources/sass/app.scss @@ -205,9 +205,13 @@ a:hover { flex-grow: 1; overflow: hidden; } - -// .tfa-grid .tfa-content { -// } +.tfa-content:focus, .tfa-content:focus-visible +{ + outline: 2px solid $grey; + border: none; + outline-offset: 7px; + border-radius: 3px; +} .tfa-list .tfa-content { padding-right: 1rem; @@ -524,43 +528,24 @@ a.has-text-white-bis:focus, a.has-text-white-bis:focus-visible { box-shadow: $input-focus-box-shadow-size $input-focus-box-shadow-color; } -// .button.is-dark:focus:not(:active), .button.is-dark.is-focused:not(:active), -// .button.is-link:focus:not(:active), .button.is-link.is-focused:not(:active) { -// box-shadow: 0 0 0 0.125em hsla(0, 0%, 96%, 0.25); -// } -// .button.copy-text:focus:not(:active), .button.copy-text.is-focused:not(:active) { -// box-shadow: none; -// color: hsl(0, 0%, 86%); -// } - -// a:focus, -// .button:focus, -// .control.has-icons-right > span.icon:focus { -// outline: none !important; -// } -// .button:focus { -// box-shadow: none; -// } -// a:focus-visible, -// .control.has-icons-right > span.icon:focus { -// outline: 2px solid hsl(217, 71%, 53%) !important; -// outline-offset: 3px !important; -// } - -// .button:focus-visible { -// box-shadow: none; -// outline: 2px solid hsl(217, 71%, 53%) !important; -// outline-offset: 3px !important; -// } - -// @supports not selector(:focus-visible) { -// a:focus, -// button:focus, -// .control.has-icons-right > span.icon:focus { -// outline: 2px solid hsl(217, 71%, 53%); -// outline-offset: 3px; -// } -// } +.is-checkradio[type="checkbox"] + label:focus, +.is-checkradio[type="checkbox"] + label:focus-visible +{ + outline: none; + border: none; +} +.is-checkradio[type="checkbox"] + label:focus::before, +.is-checkradio[type="checkbox"] + label:focus-visible::before +{ + outline: none; + border: 1px solid $input-focus-border-color; + box-shadow: $input-focus-box-shadow-size $input-focus-box-shadow-color; +} +.is-checkradio[type="checkbox"] + label::before, +.is-checkradio[type="checkbox"] + label::before +{ + border-color: $grey; +} .label {