mirror of
https://github.com/anonaddy/anonaddy.git
synced 2025-12-27 23:45:59 +00:00
Fixed #557 and other accessibility issues
This commit is contained in:
parent
ad84ddea3f
commit
d2030a2dcf
@ -468,7 +468,7 @@ For full details please see the [self-hosting instructions file](SELF-HOSTING.md
|
||||
|
||||
## My sponsors
|
||||
|
||||
Thanks to [Vlad Timofeev](https://github.com/vlad-timofeev), [Patrick Dobler](https://github.com/patrickdobler), [Luca Steeb](https://github.com/steebchen), [Laiteux](https://github.com/Laiteux), [narolinus](https://github.com/narolinus),[Limon Monte](https://github.com/limonte) and [Lukas](https://github.com/lunibo) for supporting me by sponsoring the project on GitHub!
|
||||
Thanks to [Vlad Timofeev](https://github.com/vlad-timofeev), [Patrick Dobler](https://github.com/patrickdobler), [Luca Steeb](https://github.com/steebchen), [Laiteux](https://github.com/Laiteux), [narolinus](https://github.com/narolinus) and [Lukas](https://github.com/lunibo) for supporting me by sponsoring the project on GitHub!
|
||||
|
||||
Also an extra special thanks to [CrazyMax](https://github.com/crazy-max) for sponsoring me and also creating and maintaining the awesome [addy.io Docker image](https://github.com/anonaddy/docker)!
|
||||
|
||||
|
||||
10
composer.lock
generated
10
composer.lock
generated
@ -1961,16 +1961,16 @@
|
||||
},
|
||||
{
|
||||
"name": "laravel/framework",
|
||||
"version": "v10.32.1",
|
||||
"version": "v10.33.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/laravel/framework.git",
|
||||
"reference": "b30e44f20d244f7ba125283e14a8bbac167f4e5b"
|
||||
"reference": "4536872e3e5b6be51b1f655dafd12c9a4fa0cfe8"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/laravel/framework/zipball/b30e44f20d244f7ba125283e14a8bbac167f4e5b",
|
||||
"reference": "b30e44f20d244f7ba125283e14a8bbac167f4e5b",
|
||||
"url": "https://api.github.com/repos/laravel/framework/zipball/4536872e3e5b6be51b1f655dafd12c9a4fa0cfe8",
|
||||
"reference": "4536872e3e5b6be51b1f655dafd12c9a4fa0cfe8",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -2159,7 +2159,7 @@
|
||||
"issues": "https://github.com/laravel/framework/issues",
|
||||
"source": "https://github.com/laravel/framework"
|
||||
},
|
||||
"time": "2023-11-14T22:57:08+00:00"
|
||||
"time": "2023-11-21T14:49:31+00:00"
|
||||
},
|
||||
{
|
||||
"name": "laravel/prompts",
|
||||
|
||||
30
package-lock.json
generated
30
package-lock.json
generated
@ -52,9 +52,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/parser": {
|
||||
"version": "7.23.3",
|
||||
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.3.tgz",
|
||||
"integrity": "sha512-uVsWNvlVsIninV2prNz/3lHCb+5CJ+e+IUBfbjToAHODtfGYLfCFuY4AU7TskI+dAKk+njsPiBjq1gKTvZOBaw==",
|
||||
"version": "7.23.4",
|
||||
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.4.tgz",
|
||||
"integrity": "sha512-vf3Xna6UEprW+7t6EtOmFpHNAuxw3xqPZghy+brsnusscJRW5BMUzzHZc5ICjULee81WeUV2jjakG09MDglJXQ==",
|
||||
"bin": {
|
||||
"parser": "bin/babel-parser.js"
|
||||
},
|
||||
@ -63,9 +63,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/runtime": {
|
||||
"version": "7.23.2",
|
||||
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.2.tgz",
|
||||
"integrity": "sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==",
|
||||
"version": "7.23.4",
|
||||
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.4.tgz",
|
||||
"integrity": "sha512-2Yv65nlWnWlSpe3fXEyX5i7fx5kIKo4Qbcj+hMO0odwaneFjfXw5fdum+4yL20O0QiaHpia0cYQ9xpNMqrBwHg==",
|
||||
"dependencies": {
|
||||
"regenerator-runtime": "^0.14.0"
|
||||
},
|
||||
@ -619,9 +619,9 @@
|
||||
"peer": true
|
||||
},
|
||||
"node_modules/@types/node": {
|
||||
"version": "20.9.2",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.9.2.tgz",
|
||||
"integrity": "sha512-WHZXKFCEyIUJzAwh3NyyTHYSR35SevJ6mZ1nWwJafKtiQbqRTIKSRcw3Ma3acqgsent3RRDqeVwpHntMk+9irg==",
|
||||
"version": "20.9.4",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.9.4.tgz",
|
||||
"integrity": "sha512-wmyg8HUhcn6ACjsn8oKYjkN/zUzQeNtMy44weTJSM6p4MMzEOuKbA3OjJ267uPCOW7Xex9dyrNTful8XTQYoDA==",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"undici-types": "~5.26.4"
|
||||
@ -1175,9 +1175,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/caniuse-lite": {
|
||||
"version": "1.0.30001563",
|
||||
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001563.tgz",
|
||||
"integrity": "sha512-na2WUmOxnwIZtwnFI2CZ/3er0wdNzU7hN+cPYz/z2ajHThnkWjNBOpEPP4n+4r2WPM847JaMotaJE3bnfzjyKw==",
|
||||
"version": "1.0.30001564",
|
||||
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001564.tgz",
|
||||
"integrity": "sha512-DqAOf+rhof+6GVx1y+xzbFPeOumfQnhYzVnZD6LAXijR77yPtm9mfOcqOnT3mpnJiZVT+kwLAFnRlZcIz+c6bg==",
|
||||
"funding": [
|
||||
{
|
||||
"type": "opencollective",
|
||||
@ -1505,9 +1505,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/electron-to-chromium": {
|
||||
"version": "1.4.588",
|
||||
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.588.tgz",
|
||||
"integrity": "sha512-soytjxwbgcCu7nh5Pf4S2/4wa6UIu+A3p03U2yVr53qGxi1/VTR3ENI+p50v+UxqqZAfl48j3z55ud7VHIOr9w=="
|
||||
"version": "1.4.590",
|
||||
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.590.tgz",
|
||||
"integrity": "sha512-hohItzsQcG7/FBsviCYMtQwUSWvVF7NVqPOnJCErWsAshsP/CR2LAXdmq276RbESNdhxiAq5/vRo1g2pxGXVww=="
|
||||
},
|
||||
"node_modules/emoji-regex": {
|
||||
"version": "9.2.2",
|
||||
|
||||
38
postfix/composer.lock
generated
38
postfix/composer.lock
generated
@ -216,16 +216,16 @@
|
||||
},
|
||||
{
|
||||
"name": "illuminate/collections",
|
||||
"version": "v10.32.1",
|
||||
"version": "v10.33.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/illuminate/collections.git",
|
||||
"reference": "9ce1745e9701d5f801de27ab6d2542dac42334cd"
|
||||
"reference": "766a3b6c3e5c8011b037a147266dcf7f93b21223"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/illuminate/collections/zipball/9ce1745e9701d5f801de27ab6d2542dac42334cd",
|
||||
"reference": "9ce1745e9701d5f801de27ab6d2542dac42334cd",
|
||||
"url": "https://api.github.com/repos/illuminate/collections/zipball/766a3b6c3e5c8011b037a147266dcf7f93b21223",
|
||||
"reference": "766a3b6c3e5c8011b037a147266dcf7f93b21223",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -267,11 +267,11 @@
|
||||
"issues": "https://github.com/laravel/framework/issues",
|
||||
"source": "https://github.com/laravel/framework"
|
||||
},
|
||||
"time": "2023-11-13T16:41:37+00:00"
|
||||
"time": "2023-11-20T15:45:45+00:00"
|
||||
},
|
||||
{
|
||||
"name": "illuminate/conditionable",
|
||||
"version": "v10.32.1",
|
||||
"version": "v10.33.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/illuminate/conditionable.git",
|
||||
@ -317,7 +317,7 @@
|
||||
},
|
||||
{
|
||||
"name": "illuminate/container",
|
||||
"version": "v10.32.1",
|
||||
"version": "v10.33.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/illuminate/container.git",
|
||||
@ -368,7 +368,7 @@
|
||||
},
|
||||
{
|
||||
"name": "illuminate/contracts",
|
||||
"version": "v10.32.1",
|
||||
"version": "v10.33.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/illuminate/contracts.git",
|
||||
@ -416,16 +416,16 @@
|
||||
},
|
||||
{
|
||||
"name": "illuminate/database",
|
||||
"version": "v10.32.1",
|
||||
"version": "v10.33.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/illuminate/database.git",
|
||||
"reference": "0c7819430a1805cd1646ac523d50abe86b6d8687"
|
||||
"reference": "8cebe8112d612a9ce8025a1bce22ca5cc5c1308f"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/illuminate/database/zipball/0c7819430a1805cd1646ac523d50abe86b6d8687",
|
||||
"reference": "0c7819430a1805cd1646ac523d50abe86b6d8687",
|
||||
"url": "https://api.github.com/repos/illuminate/database/zipball/8cebe8112d612a9ce8025a1bce22ca5cc5c1308f",
|
||||
"reference": "8cebe8112d612a9ce8025a1bce22ca5cc5c1308f",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -481,11 +481,11 @@
|
||||
"issues": "https://github.com/laravel/framework/issues",
|
||||
"source": "https://github.com/laravel/framework"
|
||||
},
|
||||
"time": "2023-11-13T16:39:12+00:00"
|
||||
"time": "2023-11-15T19:02:12+00:00"
|
||||
},
|
||||
{
|
||||
"name": "illuminate/macroable",
|
||||
"version": "v10.32.1",
|
||||
"version": "v10.33.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/illuminate/macroable.git",
|
||||
@ -531,16 +531,16 @@
|
||||
},
|
||||
{
|
||||
"name": "illuminate/support",
|
||||
"version": "v10.32.1",
|
||||
"version": "v10.33.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/illuminate/support.git",
|
||||
"reference": "e1d8f5fabcee9623b5d6eb4de78f0120522fd1b5"
|
||||
"reference": "f414b40d6149d6a4954f0abceacd1af2edf2d596"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/illuminate/support/zipball/e1d8f5fabcee9623b5d6eb4de78f0120522fd1b5",
|
||||
"reference": "e1d8f5fabcee9623b5d6eb4de78f0120522fd1b5",
|
||||
"url": "https://api.github.com/repos/illuminate/support/zipball/f414b40d6149d6a4954f0abceacd1af2edf2d596",
|
||||
"reference": "f414b40d6149d6a4954f0abceacd1af2edf2d596",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -598,7 +598,7 @@
|
||||
"issues": "https://github.com/laravel/framework/issues",
|
||||
"source": "https://github.com/laravel/framework"
|
||||
},
|
||||
"time": "2023-11-08T18:14:03+00:00"
|
||||
"time": "2023-11-20T20:29:51+00:00"
|
||||
},
|
||||
{
|
||||
"name": "nesbot/carbon",
|
||||
|
||||
5
resources/css/app.css
vendored
5
resources/css/app.css
vendored
@ -336,12 +336,9 @@ table.vgt-table tr.clickable:hover {
|
||||
@apply p-3 align-middle relative;
|
||||
}
|
||||
.vgt-table th.sortable button {
|
||||
@apply absolute appearance-none border-none top-0 left-0 w-full h-full;
|
||||
@apply absolute appearance-none border-none top-0 left-0 w-full h-full focus-visible:outline-indigo-600;
|
||||
background: 0 0;
|
||||
}
|
||||
.vgt-table th.sortable button:focus {
|
||||
outline: 0;
|
||||
}
|
||||
.vgt-table th.sortable button:after {
|
||||
@apply absolute h-0 w-0;
|
||||
content: '';
|
||||
|
||||
@ -303,10 +303,11 @@
|
||||
</svg>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
props: {
|
||||
name: String,
|
||||
<script setup>
|
||||
defineProps({
|
||||
name: {
|
||||
type: String,
|
||||
required: true,
|
||||
},
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
@ -48,17 +48,8 @@
|
||||
</TransitionRoot>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
<script setup>
|
||||
import { Dialog, DialogPanel, DialogTitle, TransitionChild, TransitionRoot } from '@headlessui/vue'
|
||||
|
||||
export default {
|
||||
props: ['open', 'maxWidth'],
|
||||
components: {
|
||||
Dialog,
|
||||
DialogPanel,
|
||||
DialogTitle,
|
||||
TransitionChild,
|
||||
TransitionRoot,
|
||||
},
|
||||
}
|
||||
defineProps(['open', 'maxWidth'])
|
||||
</script>
|
||||
|
||||
@ -1,9 +1,10 @@
|
||||
<template>
|
||||
<Switch
|
||||
@click="toggle"
|
||||
@keyup.space="toggle"
|
||||
:class="[
|
||||
modelValue ? 'bg-cyan-500' : 'bg-grey-300',
|
||||
'relative inline-flex flex-shrink-0 h-6 w-11 border-2 border-transparent rounded-full cursor-pointer transition-colors ease-in-out duration-200 focus:outline-none',
|
||||
'relative inline-flex flex-shrink-0 h-6 w-11 border-2 border-transparent rounded-full cursor-pointer transition-colors ease-in-out duration-200 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600',
|
||||
]"
|
||||
>
|
||||
<span class="sr-only">Use setting</span>
|
||||
@ -47,19 +48,16 @@
|
||||
</Switch>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
<script setup>
|
||||
import { ref } from 'vue'
|
||||
import { Switch } from '@headlessui/vue'
|
||||
|
||||
export default {
|
||||
props: ['modelValue'],
|
||||
components: {
|
||||
Switch,
|
||||
},
|
||||
methods: {
|
||||
toggle() {
|
||||
this.$emit('update:modelValue', !this.modelValue)
|
||||
this.modelValue ? this.$emit('off') : this.$emit('on')
|
||||
},
|
||||
},
|
||||
const emit = defineEmits(['update:modelValue', 'on', 'off'])
|
||||
|
||||
const props = defineProps(['modelValue'])
|
||||
|
||||
const toggle = () => {
|
||||
emit('update:modelValue', !props.modelValue)
|
||||
props.modelValue ? emit('off') : emit('on')
|
||||
}
|
||||
</script>
|
||||
|
||||
@ -190,7 +190,7 @@
|
||||
placeholder="Search"
|
||||
type="search"
|
||||
/>
|
||||
<div
|
||||
<button
|
||||
v-if="search"
|
||||
@click="
|
||||
;(searchForm.search = ''),
|
||||
@ -201,10 +201,10 @@
|
||||
},
|
||||
)
|
||||
"
|
||||
class="cursor-pointer absolute inset-y-0 right-0 flex items-center pr-3"
|
||||
class="absolute inset-y-0 right-0 flex items-center pr-3 rounded-sm focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600"
|
||||
>
|
||||
<XMarkIcon class="h-5 w-5 text-grey-400" aria-hidden="true" />
|
||||
</div>
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
<Listbox as="div" v-model="searchTypeSelected">
|
||||
@ -222,7 +222,7 @@
|
||||
</p>
|
||||
</div>
|
||||
<ListboxButton
|
||||
class="relative inline-flex items-center bg-indigo-500 p-2 rounded-l-none rounded-r-md text-sm font-medium text-white hover:bg-indigo-600 focus:outline-none focus:z-10"
|
||||
class="relative inline-flex items-center bg-indigo-500 p-2 rounded-l-none rounded-r-md text-sm font-medium text-white hover:bg-indigo-600 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600 focus:z-10"
|
||||
style="height: 39px"
|
||||
>
|
||||
<span class="sr-only">Change published status</span>
|
||||
@ -279,7 +279,9 @@
|
||||
<!-- Profile dropdown -->
|
||||
<Menu as="div" class="relative flex-shrink-0" role="menu">
|
||||
<div>
|
||||
<MenuButton class="bg-white rounded-full flex text-base focus:outline-none">
|
||||
<MenuButton
|
||||
class="bg-white rounded-sm flex text-base focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600"
|
||||
>
|
||||
<span class="sr-only">Open user menu</span>
|
||||
<span id="dropdown-username" class="ml-2 md:ml-0 font-medium">{{
|
||||
$page.props.user.username
|
||||
|
||||
@ -96,7 +96,7 @@
|
||||
<button
|
||||
@click="editFromName"
|
||||
:disabled="alias.fromNameLoading"
|
||||
class="bg-cyan-400 w-full hover:bg-cyan-300 text-cyan-900 font-bold py-3 px-4 rounded focus:outline-none disabled:cursor-not-allowed"
|
||||
class="bg-cyan-400 w-full hover:bg-cyan-300 text-cyan-900 font-bold py-3 px-4 rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600 disabled:cursor-not-allowed"
|
||||
>
|
||||
Update Alias From Name
|
||||
<loader v-if="alias.fromNameLoading" />
|
||||
|
||||
@ -13,18 +13,19 @@
|
||||
? 'found for your search or filters'
|
||||
: 'in your account'
|
||||
}}
|
||||
<InformationCircleIcon
|
||||
@click="moreInfoOpen = !moreInfoOpen"
|
||||
class="h-6 w-6 inline-block cursor-pointer text-grey-500"
|
||||
title="Click for more information"
|
||||
/>
|
||||
<button @click="moreInfoOpen = !moreInfoOpen">
|
||||
<InformationCircleIcon
|
||||
class="h-6 w-6 inline-block cursor-pointer text-grey-500"
|
||||
title="Click for more information"
|
||||
/>
|
||||
</button>
|
||||
</p>
|
||||
</div>
|
||||
<div class="mt-4 sm:mt-0 sm:ml-16 sm:flex-none flex items-center">
|
||||
<button
|
||||
type="button"
|
||||
@click="createAliasModalOpen = true"
|
||||
class="inline-flex items-center justify-center rounded-md border border-transparent bg-cyan-400 hover:bg-cyan-300 text-cyan-900 px-4 py-2 font-bold shadow-sm focus:outline-none sm:w-auto"
|
||||
class="inline-flex items-center justify-center rounded-md border border-transparent bg-cyan-400 hover:bg-cyan-300 text-cyan-900 px-4 py-2 font-bold shadow-sm focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600 sm:w-auto"
|
||||
>
|
||||
Create Alias
|
||||
</button>
|
||||
@ -41,7 +42,7 @@
|
||||
<div class="relative">
|
||||
<div>
|
||||
<ListboxButton
|
||||
class="inline-flex items-center text-sm text-grey-700 hover:text-grey-900 focus:outline-none"
|
||||
class="inline-flex items-center text-sm text-grey-700 hover:text-grey-900 rounded-sm focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600"
|
||||
>
|
||||
<span class="sr-only">Change display</span>
|
||||
<ListboxLabel class="cursor-pointer">Display</ListboxLabel>
|
||||
@ -115,7 +116,7 @@
|
||||
<div class="relative">
|
||||
<div>
|
||||
<ListboxButton
|
||||
class="inline-flex items-center text-sm text-grey-700 hover:text-grey-900 focus:outline-none"
|
||||
class="inline-flex items-center text-sm text-grey-700 hover:text-grey-900 rounded-sm focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600"
|
||||
>
|
||||
<span class="sr-only">Change sort by</span>
|
||||
<ListboxLabel class="cursor-pointer">Sort By</ListboxLabel>
|
||||
@ -327,11 +328,12 @@
|
||||
</span>
|
||||
</span>
|
||||
<span v-else-if="props.column.field == 'email'" class="block">
|
||||
<span
|
||||
class="text-grey-400 tooltip cursor-pointer outline-none"
|
||||
<button
|
||||
class="text-grey-400 tooltip outline-none"
|
||||
data-tippy-content="Click to copy"
|
||||
@click="clipboard(getAliasEmail(rows[props.row.originalIndex]))"
|
||||
><span class="font-semibold text-indigo-800">{{
|
||||
>
|
||||
<span class="font-semibold text-indigo-800">{{
|
||||
$filters.truncate(getAliasLocalPart(props.row), 60)
|
||||
}}</span
|
||||
><span
|
||||
@ -344,14 +346,14 @@
|
||||
)
|
||||
}}</span
|
||||
>
|
||||
</span>
|
||||
</button>
|
||||
<div v-if="aliasIdToEdit === props.row.id" class="flex items-center">
|
||||
<input
|
||||
@keyup.enter="editAliasDescription(rows[props.row.originalIndex])"
|
||||
@keyup.esc="aliasIdToEdit = aliasDescriptionToEdit = ''"
|
||||
v-model="aliasDescriptionToEdit"
|
||||
type="text"
|
||||
class="grow text-sm appearance-none bg-grey-50 border text-grey-700 focus:outline-none rounded px-2 py-1"
|
||||
class="grow text-sm appearance-none bg-grey-50 border text-grey-700 rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600 px-2 py-1"
|
||||
:class="
|
||||
aliasDescriptionToEdit.length > 200 ? 'border-red-500' : 'border-transparent'
|
||||
"
|
||||
@ -359,36 +361,35 @@
|
||||
tabindex="0"
|
||||
autofocus
|
||||
/>
|
||||
<icon
|
||||
name="close"
|
||||
class="inline-block w-6 h-6 text-red-300 fill-current cursor-pointer"
|
||||
@click="aliasIdToEdit = aliasDescriptionToEdit = ''"
|
||||
/>
|
||||
<icon
|
||||
name="save"
|
||||
class="inline-block w-6 h-6 text-cyan-500 fill-current cursor-pointer"
|
||||
@click="editAliasDescription(rows[props.row.originalIndex])"
|
||||
/>
|
||||
<button @click="aliasIdToEdit = aliasDescriptionToEdit = ''">
|
||||
<icon name="close" class="inline-block w-6 h-6 text-red-300 fill-current" />
|
||||
</button>
|
||||
<button @click="editAliasDescription(rows[props.row.originalIndex])">
|
||||
<icon name="save" class="inline-block w-6 h-6 text-cyan-500 fill-current" />
|
||||
</button>
|
||||
</div>
|
||||
<div v-else-if="props.row.description" class="flex items-center">
|
||||
<span class="inline-block text-grey-400 text-sm py-1 border border-transparent">
|
||||
<span
|
||||
class="inline-block text-grey-400 text-sm py-1 border border-transparent mr-2"
|
||||
>
|
||||
{{ $filters.truncate(props.row.description, 60) }}
|
||||
</span>
|
||||
<icon
|
||||
name="edit"
|
||||
class="inline-block w-6 h-6 ml-2 text-grey-300 fill-current cursor-pointer"
|
||||
<button
|
||||
@click="
|
||||
;(aliasIdToEdit = props.row.id),
|
||||
(aliasDescriptionToEdit = props.row.description)
|
||||
"
|
||||
/>
|
||||
>
|
||||
<icon name="edit" class="inline-block w-6 h-6 text-grey-300 fill-current" />
|
||||
</button>
|
||||
</div>
|
||||
<div v-else>
|
||||
<span
|
||||
class="inline-block text-grey-300 text-sm cursor-pointer py-1 border border-transparent"
|
||||
<button
|
||||
class="inline-block text-grey-300 text-sm py-1 border border-transparent"
|
||||
@click=";(aliasIdToEdit = props.row.id), (aliasDescriptionToEdit = '')"
|
||||
>Add description</span
|
||||
>
|
||||
Add description
|
||||
</button>
|
||||
</div>
|
||||
</span>
|
||||
<span
|
||||
@ -421,11 +422,9 @@
|
||||
:data-tippy-content="$page.props.user.email"
|
||||
>default</span
|
||||
>
|
||||
<icon
|
||||
name="edit"
|
||||
class="ml-2 inline-block w-6 h-6 text-grey-300 fill-current cursor-pointer"
|
||||
@click="openAliasRecipientsModal(props.row)"
|
||||
/>
|
||||
<button @click="openAliasRecipientsModal(props.row)" class="ml-2">
|
||||
<icon name="edit" class="inline-block w-6 h-6 text-grey-300 fill-current" />
|
||||
</button>
|
||||
</span>
|
||||
<span
|
||||
v-else-if="props.column.field == 'emails_forwarded'"
|
||||
@ -462,14 +461,14 @@
|
||||
class="text-indigo-500 hover:text-indigo-800 font-medium"
|
||||
>Edit<span class="sr-only">, {{ props.row.email }}</span></Link
|
||||
>
|
||||
<span
|
||||
<button
|
||||
@click="openSendFromModal(props.row)"
|
||||
class="group cursor-pointer flex items-center text-indigo-500 hover:text-indigo-800 font-medium ml-4 tooltip"
|
||||
class="group flex items-center text-indigo-500 hover:text-indigo-800 font-medium ml-4 tooltip"
|
||||
data-tippy-content="Send an email from this alias"
|
||||
>
|
||||
Send
|
||||
<EnvelopeIcon class="ml-1 h-4 w-4" aria-hidden="true" />
|
||||
</span>
|
||||
</button>
|
||||
</span>
|
||||
</template>
|
||||
</vue-good-table>
|
||||
@ -816,7 +815,7 @@
|
||||
<div class="mt-6 flex flex-col sm:flex-row space-y-4 sm:space-y-0 sm:space-x-4">
|
||||
<button
|
||||
@click="createNewAlias"
|
||||
class="bg-cyan-400 hover:bg-cyan-300 text-cyan-900 font-bold py-3 px-4 rounded focus:outline-none disabled:cursor-not-allowed"
|
||||
class="bg-cyan-400 hover:bg-cyan-300 text-cyan-900 font-bold py-3 px-4 rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600 disabled:cursor-not-allowed"
|
||||
:disabled="createAliasLoading"
|
||||
>
|
||||
Create Alias
|
||||
@ -824,7 +823,7 @@
|
||||
</button>
|
||||
<button
|
||||
@click="createAliasModalOpen = false"
|
||||
class="px-4 py-3 text-grey-800 font-semibold bg-white hover:bg-grey-50 border border-grey-100 rounded focus:outline-none"
|
||||
class="px-4 py-3 text-grey-800 font-semibold bg-white hover:bg-grey-50 border border-grey-100 rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600"
|
||||
>
|
||||
Cancel
|
||||
</button>
|
||||
@ -859,7 +858,7 @@
|
||||
<button
|
||||
type="button"
|
||||
@click="editAliasRecipients()"
|
||||
class="px-4 py-3 text-cyan-900 font-semibold bg-cyan-400 hover:bg-cyan-300 border border-transparent rounded focus:outline-none disabled:cursor-not-allowed"
|
||||
class="px-4 py-3 text-cyan-900 font-semibold bg-cyan-400 hover:bg-cyan-300 border border-transparent rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600 disabled:cursor-not-allowed"
|
||||
:disabled="editAliasRecipientsLoading"
|
||||
>
|
||||
Update Recipients
|
||||
@ -867,7 +866,7 @@
|
||||
</button>
|
||||
<button
|
||||
@click="closeAliasRecipientsModal()"
|
||||
class="px-4 py-3 text-grey-800 font-semibold bg-white hover:bg-grey-50 border border-grey-100 rounded focus:outline-none"
|
||||
class="px-4 py-3 text-grey-800 font-semibold bg-white hover:bg-grey-50 border border-grey-100 rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600"
|
||||
>
|
||||
Cancel
|
||||
</button>
|
||||
@ -902,7 +901,7 @@
|
||||
<button
|
||||
type="button"
|
||||
@click="bulkEditAliasRecipients()"
|
||||
class="px-4 py-3 text-cyan-900 font-semibold bg-cyan-400 hover:bg-cyan-300 border border-transparent rounded focus:outline-none disabled:cursor-not-allowed"
|
||||
class="px-4 py-3 text-cyan-900 font-semibold bg-cyan-400 hover:bg-cyan-300 border border-transparent rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600 disabled:cursor-not-allowed"
|
||||
:disabled="bulkEditAliasRecipientsLoading"
|
||||
>
|
||||
Update Recipients
|
||||
@ -910,7 +909,7 @@
|
||||
</button>
|
||||
<button
|
||||
@click="closeBulkAliasRecipientsModal()"
|
||||
class="px-4 py-3 text-grey-800 font-semibold bg-white hover:bg-grey-50 border border-grey-100 rounded focus:outline-none"
|
||||
class="px-4 py-3 text-grey-800 font-semibold bg-white hover:bg-grey-50 border border-grey-100 rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600"
|
||||
>
|
||||
Cancel
|
||||
</button>
|
||||
@ -929,7 +928,7 @@
|
||||
<button
|
||||
type="button"
|
||||
@click="restoreAlias(aliasIdToRestore)"
|
||||
class="px-4 py-3 text-cyan-900 font-semibold bg-cyan-400 hover:bg-cyan-300 border border-transparent rounded focus:outline-none disabled:cursor-not-allowed"
|
||||
class="px-4 py-3 text-cyan-900 font-semibold bg-cyan-400 hover:bg-cyan-300 border border-transparent rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600 disabled:cursor-not-allowed"
|
||||
:disabled="restoreAliasLoading"
|
||||
>
|
||||
Restore alias
|
||||
@ -937,7 +936,7 @@
|
||||
</button>
|
||||
<button
|
||||
@click="closeRestoreModal"
|
||||
class="px-4 py-3 text-grey-800 font-semibold bg-white hover:bg-grey-50 border border-grey-100 rounded focus:outline-none"
|
||||
class="px-4 py-3 text-grey-800 font-semibold bg-white hover:bg-grey-50 border border-grey-100 rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600"
|
||||
>
|
||||
Cancel
|
||||
</button>
|
||||
@ -957,7 +956,7 @@
|
||||
<button
|
||||
type="button"
|
||||
@click="bulkRestoreAlias()"
|
||||
class="px-4 py-3 text-cyan-900 font-semibold bg-cyan-400 hover:bg-cyan-300 border border-transparent rounded focus:outline-none disabled:cursor-not-allowed"
|
||||
class="px-4 py-3 text-cyan-900 font-semibold bg-cyan-400 hover:bg-cyan-300 border border-transparent rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600 disabled:cursor-not-allowed"
|
||||
:disabled="bulkRestoreAliasLoading"
|
||||
>
|
||||
Restore aliases
|
||||
@ -965,7 +964,7 @@
|
||||
</button>
|
||||
<button
|
||||
@click="bulkRestoreAliasModalOpen = false"
|
||||
class="px-4 py-3 text-grey-800 font-semibold bg-white hover:bg-grey-50 border border-grey-100 rounded focus:outline-none"
|
||||
class="px-4 py-3 text-grey-800 font-semibold bg-white hover:bg-grey-50 border border-grey-100 rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600"
|
||||
>
|
||||
Cancel
|
||||
</button>
|
||||
@ -986,7 +985,7 @@
|
||||
<button
|
||||
type="button"
|
||||
@click="deleteAlias(aliasToDelete.id)"
|
||||
class="px-4 py-3 text-white font-semibold bg-red-500 hover:bg-red-600 border border-transparent rounded focus:outline-none disabled:cursor-not-allowed"
|
||||
class="px-4 py-3 text-white font-semibold bg-red-500 hover:bg-red-600 border border-transparent rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600 disabled:cursor-not-allowed"
|
||||
:disabled="deleteAliasLoading"
|
||||
>
|
||||
Delete alias
|
||||
@ -994,7 +993,7 @@
|
||||
</button>
|
||||
<button
|
||||
@click="closeDeleteModal"
|
||||
class="px-4 py-3 text-grey-800 font-semibold bg-white hover:bg-grey-50 border border-grey-100 rounded focus:outline-none"
|
||||
class="px-4 py-3 text-grey-800 font-semibold bg-white hover:bg-grey-50 border border-grey-100 rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600"
|
||||
>
|
||||
Cancel
|
||||
</button>
|
||||
@ -1014,7 +1013,7 @@
|
||||
<button
|
||||
type="button"
|
||||
@click="bulkDeleteAlias()"
|
||||
class="px-4 py-3 text-white font-semibold bg-red-500 hover:bg-red-600 border border-transparent rounded focus:outline-none disabled:cursor-not-allowed"
|
||||
class="px-4 py-3 text-white font-semibold bg-red-500 hover:bg-red-600 border border-transparent rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600 disabled:cursor-not-allowed"
|
||||
:disabled="bulkDeleteAliasLoading"
|
||||
>
|
||||
Delete aliases
|
||||
@ -1022,7 +1021,7 @@
|
||||
</button>
|
||||
<button
|
||||
@click="bulkDeleteAliasModalOpen = false"
|
||||
class="px-4 py-3 text-grey-800 font-semibold bg-white hover:bg-grey-50 border border-grey-100 rounded focus:outline-none"
|
||||
class="px-4 py-3 text-grey-800 font-semibold bg-white hover:bg-grey-50 border border-grey-100 rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600"
|
||||
>
|
||||
Cancel
|
||||
</button>
|
||||
@ -1046,7 +1045,7 @@
|
||||
<button
|
||||
type="button"
|
||||
@click="forgetAlias(aliasToForget.id)"
|
||||
class="px-4 py-3 text-white font-semibold bg-red-500 hover:bg-red-600 border border-transparent rounded focus:outline-none disabled:cursor-not-allowed"
|
||||
class="px-4 py-3 text-white font-semibold bg-red-500 hover:bg-red-600 border border-transparent rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600 disabled:cursor-not-allowed"
|
||||
:disabled="forgetAliasLoading"
|
||||
>
|
||||
Forget alias
|
||||
@ -1054,7 +1053,7 @@
|
||||
</button>
|
||||
<button
|
||||
@click="closeForgetModal"
|
||||
class="px-4 py-3 text-grey-800 font-semibold bg-white hover:bg-grey-50 border border-grey-100 rounded focus:outline-none"
|
||||
class="px-4 py-3 text-grey-800 font-semibold bg-white hover:bg-grey-50 border border-grey-100 rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600"
|
||||
>
|
||||
Cancel
|
||||
</button>
|
||||
@ -1079,7 +1078,7 @@
|
||||
<button
|
||||
type="button"
|
||||
@click="bulkForgetAlias()"
|
||||
class="px-4 py-3 text-white font-semibold bg-red-500 hover:bg-red-600 border border-transparent rounded focus:outline-none disabled:cursor-not-allowed"
|
||||
class="px-4 py-3 text-white font-semibold bg-red-500 hover:bg-red-600 border border-transparent rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600 disabled:cursor-not-allowed"
|
||||
:disabled="bulkForgetAliasLoading"
|
||||
>
|
||||
Forget aliases
|
||||
@ -1087,7 +1086,7 @@
|
||||
</button>
|
||||
<button
|
||||
@click="bulkForgetAliasModalOpen = false"
|
||||
class="px-4 py-3 text-grey-800 font-semibold bg-white hover:bg-grey-50 border border-grey-100 rounded focus:outline-none"
|
||||
class="px-4 py-3 text-grey-800 font-semibold bg-white hover:bg-grey-50 border border-grey-100 rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600"
|
||||
>
|
||||
Cancel
|
||||
</button>
|
||||
@ -1188,7 +1187,7 @@
|
||||
<button
|
||||
type="button"
|
||||
@click="displaySendFromAddress(aliasToSendFrom)"
|
||||
class="px-4 py-3 text-cyan-900 font-semibold bg-cyan-400 hover:bg-cyan-300 border border-transparent rounded focus:outline-none disabled:cursor-not-allowed"
|
||||
class="px-4 py-3 text-cyan-900 font-semibold bg-cyan-400 hover:bg-cyan-300 border border-transparent rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600 disabled:cursor-not-allowed"
|
||||
:disabled="sendFromAliasLoading"
|
||||
>
|
||||
Show address
|
||||
@ -1196,7 +1195,7 @@
|
||||
</button>
|
||||
<button
|
||||
@click="closeSendFromModal"
|
||||
class="px-4 py-3 text-grey-800 font-semibold bg-white hover:bg-grey-50 border border-grey-100 rounded focus:outline-none"
|
||||
class="px-4 py-3 text-grey-800 font-semibold bg-white hover:bg-grey-50 border border-grey-100 rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600"
|
||||
>
|
||||
Close
|
||||
</button>
|
||||
@ -1225,7 +1224,7 @@
|
||||
<div class="mt-6 flex flex-col sm:flex-row">
|
||||
<button
|
||||
@click="moreInfoOpen = false"
|
||||
class="px-4 py-3 text-grey-800 font-semibold bg-white hover:bg-grey-50 border border-grey-100 rounded focus:outline-none"
|
||||
class="px-4 py-3 text-grey-800 font-semibold bg-white hover:bg-grey-50 border border-grey-100 rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600"
|
||||
>
|
||||
Close
|
||||
</button>
|
||||
|
||||
@ -158,7 +158,7 @@
|
||||
<button
|
||||
@click="editFromName"
|
||||
:disabled="domain.fromNameLoading"
|
||||
class="bg-cyan-400 w-full hover:bg-cyan-300 text-cyan-900 font-bold py-3 px-4 rounded focus:outline-none disabled:cursor-not-allowed"
|
||||
class="bg-cyan-400 w-full hover:bg-cyan-300 text-cyan-900 font-bold py-3 px-4 rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600 disabled:cursor-not-allowed"
|
||||
>
|
||||
Update From Name
|
||||
<loader v-if="domain.fromNameLoading" />
|
||||
|
||||
@ -8,18 +8,19 @@
|
||||
<h1 class="text-2xl font-semibold text-grey-900">Domains</h1>
|
||||
<p class="mt-2 text-sm text-grey-700">
|
||||
A list of all the domains {{ search ? 'found for your search' : 'in your account' }}
|
||||
<InformationCircleIcon
|
||||
@click="moreInfoOpen = !moreInfoOpen"
|
||||
class="h-6 w-6 inline-block cursor-pointer text-grey-500"
|
||||
title="Click for more information"
|
||||
/>
|
||||
<button @click="moreInfoOpen = !moreInfoOpen">
|
||||
<InformationCircleIcon
|
||||
class="h-6 w-6 inline-block cursor-pointer text-grey-500"
|
||||
title="Click for more information"
|
||||
/>
|
||||
</button>
|
||||
</p>
|
||||
</div>
|
||||
<div class="mt-4 sm:mt-0 sm:ml-16 sm:flex-none">
|
||||
<button
|
||||
type="button"
|
||||
@click="openAddDomainModal"
|
||||
class="inline-flex items-center justify-center rounded-md border border-transparent bg-cyan-400 hover:bg-cyan-300 text-cyan-900 px-4 py-2 font-bold shadow-sm focus:outline-none sm:w-auto"
|
||||
class="inline-flex items-center justify-center rounded-md border border-transparent bg-cyan-400 hover:bg-cyan-300 text-cyan-900 px-4 py-2 font-bold shadow-sm focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600 sm:w-auto"
|
||||
>
|
||||
Add Domain
|
||||
</button>
|
||||
@ -45,12 +46,13 @@
|
||||
>{{ $filters.timeAgo(props.row.created_at) }}
|
||||
</span>
|
||||
<span v-else-if="props.column.field == 'domain'">
|
||||
<span
|
||||
<button
|
||||
class="tooltip cursor-pointer outline-none font-medium text-grey-700"
|
||||
data-tippy-content="Click to copy"
|
||||
@click="clipboard(rows[props.row.originalIndex].domain)"
|
||||
>{{ $filters.truncate(props.row.domain, 30) }}</span
|
||||
>
|
||||
{{ $filters.truncate(props.row.domain, 30) }}
|
||||
</button>
|
||||
</span>
|
||||
<span v-else-if="props.column.field == 'description'">
|
||||
<div v-if="domainIdToEdit === props.row.id" class="flex items-center">
|
||||
@ -67,58 +69,48 @@
|
||||
tabindex="0"
|
||||
autofocus
|
||||
/>
|
||||
<icon
|
||||
name="close"
|
||||
class="inline-block w-6 h-6 text-red-300 fill-current cursor-pointer"
|
||||
@click="domainIdToEdit = domainDescriptionToEdit = ''"
|
||||
/>
|
||||
<icon
|
||||
name="save"
|
||||
class="inline-block w-6 h-6 text-cyan-500 fill-current cursor-pointer"
|
||||
@click="editDomain(rows[props.row.originalIndex])"
|
||||
/>
|
||||
<button @click="domainIdToEdit = domainDescriptionToEdit = ''">
|
||||
<icon name="close" class="inline-block w-6 h-6 text-red-300 fill-current" />
|
||||
</button>
|
||||
<button @click="editDomain(rows[props.row.originalIndex])">
|
||||
<icon name="save" class="inline-block w-6 h-6 text-cyan-500 fill-current" />
|
||||
</button>
|
||||
</div>
|
||||
<div v-else-if="props.row.description" class="flex items-centers">
|
||||
<span class="outline-none text-grey-500">{{
|
||||
<span class="outline-none text-grey-500 mr-2">{{
|
||||
$filters.truncate(props.row.description, 60)
|
||||
}}</span>
|
||||
<icon
|
||||
name="edit"
|
||||
class="inline-block w-6 h-6 text-grey-300 fill-current cursor-pointer ml-2"
|
||||
<button
|
||||
@click="
|
||||
;(domainIdToEdit = props.row.id), (domainDescriptionToEdit = props.row.description)
|
||||
"
|
||||
/>
|
||||
>
|
||||
<icon name="edit" class="inline-block w-6 h-6 text-grey-300 fill-current" />
|
||||
</button>
|
||||
</div>
|
||||
<div v-else class="flex justify-center">
|
||||
<icon
|
||||
name="plus"
|
||||
class="block w-6 h-6 text-grey-300 fill-current cursor-pointer"
|
||||
@click=";(domainIdToEdit = props.row.id), (domainDescriptionToEdit = '')"
|
||||
/>
|
||||
<button @click=";(domainIdToEdit = props.row.id), (domainDescriptionToEdit = '')">
|
||||
<icon name="plus" class="block w-6 h-6 text-grey-300 fill-current" />
|
||||
</button>
|
||||
</div>
|
||||
</span>
|
||||
<span v-else-if="props.column.field === 'default_recipient'">
|
||||
<div v-if="props.row.default_recipient">
|
||||
<span
|
||||
class="tooltip cursor-pointer font-medium text-grey-500"
|
||||
class="tooltip cursor-pointer font-medium text-grey-500 mr-2"
|
||||
data-tippy-content="Click to copy"
|
||||
@click="clipboard(rows[props.row.originalIndex].default_recipient.email)"
|
||||
>
|
||||
{{ $filters.truncate(props.row.default_recipient.email, 30) }}
|
||||
</span>
|
||||
<icon
|
||||
name="edit"
|
||||
class="ml-2 inline-block w-6 h-6 text-grey-300 fill-current cursor-pointer"
|
||||
@click="openDomainDefaultRecipientModal(props.row)"
|
||||
/>
|
||||
<button @click="openDomainDefaultRecipientModal(props.row)">
|
||||
<icon name="edit" class="inline-block w-6 h-6 text-grey-300 fill-current" />
|
||||
</button>
|
||||
</div>
|
||||
<div class="flex justify-center" v-else>
|
||||
<icon
|
||||
name="plus"
|
||||
class="block w-6 h-6 text-grey-300 fill-current cursor-pointer"
|
||||
@click="openDomainDefaultRecipientModal(props.row)"
|
||||
/>
|
||||
<button @click="openDomainDefaultRecipientModal(props.row)">
|
||||
<icon name="plus" class="block w-6 h-6 text-grey-300 fill-current" />
|
||||
</button>
|
||||
</div>
|
||||
</span>
|
||||
<span v-else-if="props.column.field === 'aliases_count'">
|
||||
@ -152,7 +144,7 @@
|
||||
<div v-if="props.row.domain_sending_verified_at || props.row.domain_mx_validated_at">
|
||||
<svg
|
||||
v-if="props.row.domain_sending_verified_at && props.row.domain_mx_validated_at"
|
||||
class="h-5 w-5 inline-block tooltip"
|
||||
class="h-5 w-5 inline-block tooltip focus:outline-none"
|
||||
data-tippy-content="Domain fully verified"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
viewBox="0 0 20 20"
|
||||
@ -172,7 +164,7 @@
|
||||
v-else-if="!props.row.domain_mx_validated_at"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
viewBox="0 0 20 20"
|
||||
class="h-5 w-5 inline-block tooltip"
|
||||
class="h-5 w-5 inline-block tooltip focus:outline-none"
|
||||
data-tippy-content="MX records invalid"
|
||||
>
|
||||
<g fill="none" fill-rule="evenodd">
|
||||
@ -197,7 +189,7 @@
|
||||
v-else
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
viewBox="0 0 20 20"
|
||||
class="h-5 w-5 inline-block tooltip"
|
||||
class="h-5 w-5 inline-block tooltip focus:outline-none"
|
||||
data-tippy-content="DNS records for sending invalid"
|
||||
>
|
||||
<g fill="none" fill-rule="evenodd">
|
||||
@ -220,7 +212,7 @@
|
||||
</svg>
|
||||
<button
|
||||
@click="openCheckRecordsModal(rows[props.row.originalIndex])"
|
||||
class="focus:outline-none text-sm ml-2 text-grey-500"
|
||||
class="focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600 text-sm ml-2 text-grey-500 rounded-sm"
|
||||
>
|
||||
Recheck
|
||||
</button>
|
||||
@ -228,7 +220,7 @@
|
||||
<button
|
||||
v-else
|
||||
@click="openCheckRecordsModal(rows[props.row.originalIndex])"
|
||||
class="focus:outline-none text-sm text-grey-500"
|
||||
class="focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600 text-sm text-grey-500 rounded-sm"
|
||||
>
|
||||
Check Records
|
||||
</button>
|
||||
@ -290,7 +282,7 @@
|
||||
<template v-if="!domainToCheck" v-slot:content>
|
||||
<p class="mt-4 mb-2 text-grey-700">
|
||||
To verify ownership of the domain, please add the following TXT record and then click Add
|
||||
Domain below.
|
||||
Domain below. Once you've added the domain you can safely remove this TXT record.
|
||||
</p>
|
||||
<div class="table w-full">
|
||||
<div class="table-row">
|
||||
@ -301,12 +293,14 @@
|
||||
<div class="table-row">
|
||||
<div class="table-cell py-2">TXT</div>
|
||||
<div class="table-cell p-2">@</div>
|
||||
<div
|
||||
class="table-cell py-2 break-all cursor-pointer"
|
||||
title="Copy"
|
||||
@click="clipboard(`aa-verify=${aaVerify}`)"
|
||||
>
|
||||
aa-verify={{ aaVerify }}
|
||||
<div class="table-cell py-2">
|
||||
<button
|
||||
@click="clipboard(`aa-verify=${aaVerify}`)"
|
||||
class="break-all focus-visible:outline-indigo-600"
|
||||
title="Copy"
|
||||
>
|
||||
aa-verify={{ aaVerify }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -324,7 +318,7 @@
|
||||
/>
|
||||
<button
|
||||
@click="validateNewDomain"
|
||||
class="bg-cyan-400 hover:bg-cyan-300 text-cyan-900 font-bold py-3 px-4 rounded focus:outline-none"
|
||||
class="bg-cyan-400 hover:bg-cyan-300 text-cyan-900 font-bold py-3 px-4 rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600"
|
||||
:class="addDomainLoading ? 'cursor-not-allowed' : ''"
|
||||
:disabled="addDomainLoading"
|
||||
>
|
||||
@ -333,7 +327,7 @@
|
||||
</button>
|
||||
<button
|
||||
@click="addDomainModalOpen = false"
|
||||
class="ml-4 px-4 py-3 text-grey-800 font-semibold bg-white hover:bg-grey-50 border border-grey-100 rounded focus:outline-none"
|
||||
class="ml-4 px-4 py-3 text-grey-800 font-semibold bg-white hover:bg-grey-50 border border-grey-100 rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600"
|
||||
>
|
||||
Cancel
|
||||
</button>
|
||||
@ -370,69 +364,85 @@
|
||||
</div>
|
||||
<div class="table-row">
|
||||
<div class="table-cell py-2">MX 10</div>
|
||||
<div class="table-cell py-2 px-4 cursor-pointer" title="Copy" @click="clipboard('@')">
|
||||
@
|
||||
<div class="table-cell py-2 px-4">
|
||||
<button title="Copy" @click="clipboard('@')" class="focus-visible:outline-indigo-600">
|
||||
@
|
||||
</button>
|
||||
</div>
|
||||
<div
|
||||
class="table-cell py-2 break-words cursor-pointer"
|
||||
title="Copy"
|
||||
@click="clipboard(hostname)"
|
||||
>
|
||||
{{ hostname }}.
|
||||
<div class="table-cell py-2 break-words">
|
||||
<button
|
||||
title="Copy"
|
||||
@click="clipboard(hostname)"
|
||||
class="focus-visible:outline-indigo-600"
|
||||
>
|
||||
{{ hostname }}.
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="table-row">
|
||||
<div class="table-cell py-2">TXT</div>
|
||||
<div class="table-cell py-2 px-4 cursor-pointer" title="Copy" @click="clipboard('@')">
|
||||
@
|
||||
<div class="table-cell py-2 px-4">
|
||||
<button title="Copy" @click="clipboard('@')" class="focus-visible:outline-indigo-600">
|
||||
@
|
||||
</button>
|
||||
</div>
|
||||
<div
|
||||
class="table-cell py-2 break-words cursor-pointer"
|
||||
title="Copy"
|
||||
@click="clipboard('v=spf1 mx -all')"
|
||||
>
|
||||
v=spf1 mx -all
|
||||
<div class="table-cell py-2 break-words">
|
||||
<button
|
||||
title="Copy"
|
||||
@click="clipboard('v=spf1 mx -all')"
|
||||
class="focus-visible:outline-indigo-600"
|
||||
>
|
||||
v=spf1 mx -all
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="table-row">
|
||||
<div class="table-cell py-2">CNAME</div>
|
||||
<div
|
||||
class="table-cell py-2 px-4 cursor-pointer"
|
||||
title="Copy"
|
||||
@click="clipboard(`${dkimSelector}._domainkey`)"
|
||||
>
|
||||
{{ dkimSelector }}._domainkey
|
||||
<div class="table-cell py-2 px-4">
|
||||
<button
|
||||
title="Copy"
|
||||
@click="clipboard(`${dkimSelector}._domainkey`)"
|
||||
class="focus-visible:outline-indigo-600"
|
||||
>
|
||||
{{ dkimSelector }}._domainkey
|
||||
</button>
|
||||
</div>
|
||||
<div
|
||||
class="table-cell py-2 break-words cursor-pointer"
|
||||
title="Copy"
|
||||
@click="clipboard(`${dkimSelector}._domainkey.${domainName}.`)"
|
||||
>
|
||||
{{ dkimSelector }}._domainkey.{{ domainName }}.
|
||||
<div class="table-cell py-2 break-words">
|
||||
<button
|
||||
title="Copy"
|
||||
@click="clipboard(`${dkimSelector}._domainkey.${domainName}.`)"
|
||||
class="focus-visible:outline-indigo-600"
|
||||
>
|
||||
{{ dkimSelector }}._domainkey.{{ domainName }}.
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="table-row">
|
||||
<div class="table-cell py-2">TXT</div>
|
||||
<div
|
||||
class="table-cell py-2 px-4 cursor-pointer"
|
||||
title="Copy"
|
||||
@click="clipboard('_dmarc')"
|
||||
>
|
||||
_dmarc
|
||||
<div class="table-cell py-2 px-4">
|
||||
<button
|
||||
title="Copy"
|
||||
@click="clipboard('_dmarc')"
|
||||
class="focus-visible:outline-indigo-600"
|
||||
>
|
||||
_dmarc
|
||||
</button>
|
||||
</div>
|
||||
<div
|
||||
class="table-cell py-2 break-words cursor-pointer"
|
||||
title="Copy"
|
||||
@click="clipboard('v=DMARC1; p=quarantine; adkim=s')"
|
||||
>
|
||||
v=DMARC1; p=quarantine; adkim=s
|
||||
<div class="table-cell py-2 break-words">
|
||||
<button
|
||||
title="Copy"
|
||||
@click="clipboard('v=DMARC1; p=quarantine; adkim=s')"
|
||||
class="focus-visible:outline-indigo-600"
|
||||
>
|
||||
v=DMARC1; p=quarantine; adkim=s
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mt-6">
|
||||
<button
|
||||
@click="checkRecords(domainToCheck)"
|
||||
class="bg-cyan-400 hover:bg-cyan-300 text-cyan-900 font-bold py-3 px-4 rounded focus:outline-none"
|
||||
class="bg-cyan-400 hover:bg-cyan-300 text-cyan-900 font-bold py-3 px-4 rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600"
|
||||
:class="checkRecordsLoading ? 'cursor-not-allowed' : ''"
|
||||
:disabled="checkRecordsLoading"
|
||||
>
|
||||
@ -441,7 +451,7 @@
|
||||
</button>
|
||||
<button
|
||||
@click="closeCheckRecordsModal"
|
||||
class="ml-4 px-4 py-3 text-grey-800 font-semibold bg-white hover:bg-grey-50 border border-grey-100 rounded focus:outline-none"
|
||||
class="ml-4 px-4 py-3 text-grey-800 font-semibold bg-white hover:bg-grey-50 border border-grey-100 rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600"
|
||||
>
|
||||
Cancel
|
||||
</button>
|
||||
@ -485,7 +495,7 @@
|
||||
<button
|
||||
type="button"
|
||||
@click="editDefaultRecipient()"
|
||||
class="px-4 py-3 text-cyan-900 font-semibold bg-cyan-400 hover:bg-cyan-300 border border-transparent rounded focus:outline-none disabled:cursor-not-allowed"
|
||||
class="px-4 py-3 text-cyan-900 font-semibold bg-cyan-400 hover:bg-cyan-300 border border-transparent rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600 disabled:cursor-not-allowed"
|
||||
:disabled="editDefaultRecipientLoading"
|
||||
>
|
||||
Update Default Recipient
|
||||
@ -493,7 +503,7 @@
|
||||
</button>
|
||||
<button
|
||||
@click="closeDomainDefaultRecipientModal()"
|
||||
class="px-4 py-3 text-grey-800 font-semibold bg-white hover:bg-grey-50 border border-grey-100 rounded focus:outline-none"
|
||||
class="px-4 py-3 text-grey-800 font-semibold bg-white hover:bg-grey-50 border border-grey-100 rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600"
|
||||
>
|
||||
Cancel
|
||||
</button>
|
||||
@ -513,7 +523,7 @@
|
||||
<button
|
||||
type="button"
|
||||
@click="deleteDomain(domainIdToDelete)"
|
||||
class="px-4 py-3 text-white font-semibold bg-red-500 hover:bg-red-600 border border-transparent rounded focus:outline-none disabled:cursor-not-allowed"
|
||||
class="px-4 py-3 text-white font-semibold bg-red-500 hover:bg-red-600 border border-transparent rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600 disabled:cursor-not-allowed"
|
||||
:disabled="deleteDomainLoading"
|
||||
>
|
||||
Delete domain
|
||||
@ -521,7 +531,7 @@
|
||||
</button>
|
||||
<button
|
||||
@click="closeDeleteModal"
|
||||
class="px-4 py-3 text-grey-800 font-semibold bg-white hover:bg-grey-50 border border-grey-100 rounded focus:outline-none"
|
||||
class="px-4 py-3 text-grey-800 font-semibold bg-white hover:bg-grey-50 border border-grey-100 rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600"
|
||||
>
|
||||
Cancel
|
||||
</button>
|
||||
@ -561,7 +571,7 @@
|
||||
<div class="mt-6 flex flex-col sm:flex-row">
|
||||
<button
|
||||
@click="moreInfoOpen = false"
|
||||
class="px-4 py-3 text-grey-800 font-semibold bg-white hover:bg-grey-50 border border-grey-100 rounded focus:outline-none"
|
||||
class="px-4 py-3 text-grey-800 font-semibold bg-white hover:bg-grey-50 border border-grey-100 rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600"
|
||||
>
|
||||
Close
|
||||
</button>
|
||||
|
||||
@ -9,11 +9,12 @@
|
||||
<p class="mt-2 text-sm text-grey-700">
|
||||
A list of all the failed deliveries
|
||||
{{ search ? 'found for your search' : 'in your account' }}
|
||||
<InformationCircleIcon
|
||||
@click="moreInfoOpen = !moreInfoOpen"
|
||||
class="h-6 w-6 inline-block cursor-pointer text-grey-500"
|
||||
title="Click for more information"
|
||||
/>
|
||||
<button @click="moreInfoOpen = !moreInfoOpen">
|
||||
<InformationCircleIcon
|
||||
class="h-6 w-6 inline-block cursor-pointer text-grey-500"
|
||||
title="Click for more information"
|
||||
/>
|
||||
</button>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
@ -149,7 +150,7 @@
|
||||
<button
|
||||
type="button"
|
||||
@click="deleteFailedDelivery(failedDeliveryIdToDelete)"
|
||||
class="px-4 py-3 text-white font-semibold bg-red-500 hover:bg-red-600 border border-transparent rounded focus:outline-none disabled:cursor-not-allowed"
|
||||
class="px-4 py-3 text-white font-semibold bg-red-500 hover:bg-red-600 border border-transparent rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600 disabled:cursor-not-allowed"
|
||||
:disabled="deleteFailedDeliveryLoading"
|
||||
>
|
||||
Delete failed delivery
|
||||
@ -157,7 +158,7 @@
|
||||
</button>
|
||||
<button
|
||||
@click="closeDeleteModal"
|
||||
class="px-4 py-3 text-grey-800 font-semibold bg-white hover:bg-grey-50 border border-grey-100 rounded focus:outline-none"
|
||||
class="px-4 py-3 text-grey-800 font-semibold bg-white hover:bg-grey-50 border border-grey-100 rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600"
|
||||
>
|
||||
Cancel
|
||||
</button>
|
||||
@ -185,7 +186,7 @@
|
||||
<div class="mt-6 flex flex-col sm:flex-row">
|
||||
<button
|
||||
@click="moreInfoOpen = false"
|
||||
class="px-4 py-3 text-grey-800 font-semibold bg-white hover:bg-grey-50 border border-grey-100 rounded focus:outline-none"
|
||||
class="px-4 py-3 text-grey-800 font-semibold bg-white hover:bg-grey-50 border border-grey-100 rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600"
|
||||
>
|
||||
Close
|
||||
</button>
|
||||
|
||||
@ -8,18 +8,19 @@
|
||||
<h1 class="text-2xl font-semibold text-grey-900">Recipients</h1>
|
||||
<p class="mt-2 text-sm text-grey-700">
|
||||
A list of all the recipients {{ search ? 'found for your search' : 'in your account' }}
|
||||
<InformationCircleIcon
|
||||
@click="moreInfoOpen = !moreInfoOpen"
|
||||
class="h-6 w-6 inline-block cursor-pointer text-grey-500"
|
||||
title="Click for more information"
|
||||
/>
|
||||
<button @click="moreInfoOpen = !moreInfoOpen">
|
||||
<InformationCircleIcon
|
||||
class="h-6 w-6 inline-block cursor-pointer text-grey-500"
|
||||
title="Click for more information"
|
||||
/>
|
||||
</button>
|
||||
</p>
|
||||
</div>
|
||||
<div class="mt-4 sm:mt-0 sm:ml-16 sm:flex-none">
|
||||
<button
|
||||
type="button"
|
||||
@click="openAddRecipientModal"
|
||||
class="inline-flex items-center justify-center rounded-md border border-transparent bg-cyan-400 hover:bg-cyan-300 text-cyan-900 px-4 py-2 font-bold shadow-sm focus:outline-none sm:w-auto"
|
||||
class="inline-flex items-center justify-center rounded-md border border-transparent bg-cyan-400 hover:bg-cyan-300 text-cyan-900 px-4 py-2 font-bold shadow-sm focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600 sm:w-auto"
|
||||
>
|
||||
Add Recipient
|
||||
</button>
|
||||
@ -71,12 +72,13 @@
|
||||
{{ props.row.key }}
|
||||
</span>
|
||||
<span v-else-if="props.column.field == 'email'">
|
||||
<span
|
||||
class="tooltip cursor-pointer outline-none font-medium text-grey-700"
|
||||
<button
|
||||
class="tooltip outline-none font-medium text-grey-700"
|
||||
data-tippy-content="Click to copy"
|
||||
@click="clipboard(rows[props.row.originalIndex].email)"
|
||||
>{{ $filters.truncate(props.row.email, 30) }}</span
|
||||
>
|
||||
{{ $filters.truncate(props.row.email, 30) }}
|
||||
</button>
|
||||
|
||||
<span
|
||||
v-if="isDefault(props.row.id)"
|
||||
@ -86,9 +88,7 @@
|
||||
>
|
||||
|
||||
<span v-else-if="props.row.email_verified_at" class="block text-grey-400 text-sm py-1">
|
||||
<span @click="openMakeDefaultModal(props.row)" class="cursor-pointer">
|
||||
Make Default
|
||||
</span>
|
||||
<button @click="openMakeDefaultModal(props.row)">Make Default</button>
|
||||
</span>
|
||||
</span>
|
||||
<span v-else-if="props.column.field === 'aliases'">
|
||||
@ -125,23 +125,25 @@
|
||||
@on="turnOnEncryption(props.row.id)"
|
||||
@off="turnOffEncryption(props.row.id)"
|
||||
/>
|
||||
<icon
|
||||
name="fingerprint"
|
||||
class="tooltip outline-none cursor-pointer block w-6 h-6 text-grey-300 fill-current mx-2"
|
||||
:data-tippy-content="props.row.fingerprint"
|
||||
<button
|
||||
@click="clipboard(props.row.fingerprint)"
|
||||
/>
|
||||
<icon
|
||||
name="delete"
|
||||
class="tooltip outline-none cursor-pointer block w-6 h-6 text-grey-300 fill-current"
|
||||
class="tooltip"
|
||||
:data-tippy-content="props.row.fingerprint"
|
||||
>
|
||||
<icon name="fingerprint" class="block w-6 h-6 text-grey-300 fill-current mx-2" />
|
||||
</button>
|
||||
<button
|
||||
@click="openDeleteRecipientKeyModal(props.row)"
|
||||
class="tooltip"
|
||||
data-tippy-content="Remove public key"
|
||||
/>
|
||||
>
|
||||
<icon name="delete" class="block w-6 h-6 text-grey-300 fill-current" />
|
||||
</button>
|
||||
</span>
|
||||
<button
|
||||
v-else
|
||||
@click="openRecipientKeyModal(props.row)"
|
||||
class="focus:outline-none text-sm text-grey-500"
|
||||
class="text-sm text-grey-500 rounded-sm focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600"
|
||||
>
|
||||
Add PGP key
|
||||
</button>
|
||||
@ -160,7 +162,7 @@
|
||||
<button
|
||||
v-else
|
||||
@click="resendVerification(props.row.id)"
|
||||
class="focus:outline-none text-sm disabled:cursor-not-allowed"
|
||||
class="text-sm disabled:cursor-not-allowed rounded-sm focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600"
|
||||
:disabled="resendVerificationLoading"
|
||||
>
|
||||
Resend email
|
||||
@ -228,7 +230,7 @@
|
||||
<div class="flex flex-col sm:flex-row space-y-4 sm:space-y-0 sm:space-x-4">
|
||||
<button
|
||||
@click="validateNewRecipient"
|
||||
class="bg-cyan-400 hover:bg-cyan-300 text-cyan-900 font-bold py-3 px-4 rounded focus:outline-none disabled:cursor-not-allowed"
|
||||
class="bg-cyan-400 hover:bg-cyan-300 text-cyan-900 font-bold py-3 px-4 rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600 disabled:cursor-not-allowed"
|
||||
:disabled="addRecipientLoading"
|
||||
>
|
||||
Add Recipient
|
||||
@ -236,7 +238,7 @@
|
||||
</button>
|
||||
<button
|
||||
@click="addRecipientModalOpen = false"
|
||||
class="px-4 py-3 text-grey-800 font-semibold bg-white hover:bg-grey-50 border border-grey-100 rounded focus:outline-none"
|
||||
class="px-4 py-3 text-grey-800 font-semibold bg-white hover:bg-grey-50 border border-grey-100 rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600"
|
||||
>
|
||||
Cancel
|
||||
</button>
|
||||
@ -277,7 +279,7 @@
|
||||
<button
|
||||
type="button"
|
||||
@click="validateRecipientKey"
|
||||
class="bg-cyan-400 hover:bg-cyan-300 text-cyan-900 font-bold py-3 px-4 rounded focus:outline-none disabled:cursor-not-allowed"
|
||||
class="bg-cyan-400 hover:bg-cyan-300 text-cyan-900 font-bold py-3 px-4 rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600 disabled:cursor-not-allowed"
|
||||
:disabled="addRecipientKeyLoading"
|
||||
>
|
||||
Add Key
|
||||
@ -285,7 +287,7 @@
|
||||
</button>
|
||||
<button
|
||||
@click="closeRecipientKeyModal"
|
||||
class="px-4 py-3 text-grey-800 font-semibold bg-white hover:bg-grey-50 border border-grey-100 rounded focus:outline-none"
|
||||
class="px-4 py-3 text-grey-800 font-semibold bg-white hover:bg-grey-50 border border-grey-100 rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600"
|
||||
>
|
||||
Cancel
|
||||
</button>
|
||||
@ -305,7 +307,7 @@
|
||||
<button
|
||||
type="button"
|
||||
@click="deleteRecipientKey(recipientKeyToDelete)"
|
||||
class="px-4 py-3 text-white font-semibold bg-red-500 hover:bg-red-600 border border-transparent rounded focus:outline-none disabled:cursor-not-allowed"
|
||||
class="px-4 py-3 text-white font-semibold bg-red-500 hover:bg-red-600 border border-transparent rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600 disabled:cursor-not-allowed"
|
||||
:disabled="deleteRecipientKeyLoading"
|
||||
>
|
||||
Remove public key
|
||||
@ -313,7 +315,7 @@
|
||||
</button>
|
||||
<button
|
||||
@click="closeDeleteRecipientKeyModal"
|
||||
class="px-4 py-3 text-grey-800 font-semibold bg-white hover:bg-grey-50 border border-grey-100 rounded focus:outline-none"
|
||||
class="px-4 py-3 text-grey-800 font-semibold bg-white hover:bg-grey-50 border border-grey-100 rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600"
|
||||
>
|
||||
Cancel
|
||||
</button>
|
||||
@ -329,7 +331,7 @@
|
||||
<button
|
||||
type="button"
|
||||
@click="deleteRecipient(recipientToDelete)"
|
||||
class="px-4 py-3 text-white font-semibold bg-red-500 hover:bg-red-600 border border-transparent rounded focus:outline-none disabled:cursor-not-allowed"
|
||||
class="px-4 py-3 text-white font-semibold bg-red-500 hover:bg-red-600 border border-transparent rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600 disabled:cursor-not-allowed"
|
||||
:disabled="deleteRecipientLoading"
|
||||
>
|
||||
Delete recipient
|
||||
@ -337,7 +339,7 @@
|
||||
</button>
|
||||
<button
|
||||
@click="closeDeleteModal"
|
||||
class="px-4 py-3 text-grey-800 font-semibold bg-white hover:bg-grey-50 border border-grey-100 rounded focus:outline-none"
|
||||
class="px-4 py-3 text-grey-800 font-semibold bg-white hover:bg-grey-50 border border-grey-100 rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600"
|
||||
>
|
||||
Cancel
|
||||
</button>
|
||||
@ -358,7 +360,7 @@
|
||||
<button
|
||||
type="button"
|
||||
@click="makeDefaultRecipient(recipientToMakeDefault)"
|
||||
class="bg-cyan-400 hover:bg-cyan-300 text-cyan-900 font-bold py-3 px-4 rounded focus:outline-none disabled:cursor-not-allowed"
|
||||
class="bg-cyan-400 hover:bg-cyan-300 text-cyan-900 font-bold py-3 px-4 rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600 disabled:cursor-not-allowed"
|
||||
:disabled="makeDefaultLoading"
|
||||
>
|
||||
Make default recipient
|
||||
@ -366,7 +368,7 @@
|
||||
</button>
|
||||
<button
|
||||
@click="closeMakeDefaultModal"
|
||||
class="px-4 py-3 text-grey-800 font-semibold bg-white hover:bg-grey-50 border border-grey-100 rounded focus:outline-none"
|
||||
class="px-4 py-3 text-grey-800 font-semibold bg-white hover:bg-grey-50 border border-grey-100 rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600"
|
||||
>
|
||||
Cancel
|
||||
</button>
|
||||
@ -392,7 +394,7 @@
|
||||
<div class="mt-6 flex flex-col sm:flex-row">
|
||||
<button
|
||||
@click="moreInfoOpen = false"
|
||||
class="px-4 py-3 text-grey-800 font-semibold bg-white hover:bg-grey-50 border border-grey-100 rounded focus:outline-none"
|
||||
class="px-4 py-3 text-grey-800 font-semibold bg-white hover:bg-grey-50 border border-grey-100 rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600"
|
||||
>
|
||||
Close
|
||||
</button>
|
||||
|
||||
@ -10,18 +10,19 @@
|
||||
<h1 class="text-2xl font-semibold text-grey-900">Rules</h1>
|
||||
<p class="mt-2 text-sm text-grey-700">
|
||||
A list of all the rules {{ search ? 'found for your search' : 'in your account' }}
|
||||
<InformationCircleIcon
|
||||
@click="moreInfoOpen = !moreInfoOpen"
|
||||
class="h-6 w-6 inline-block cursor-pointer text-grey-500"
|
||||
title="Click for more information"
|
||||
/>
|
||||
<button @click="moreInfoOpen = !moreInfoOpen">
|
||||
<InformationCircleIcon
|
||||
class="h-6 w-6 inline-block cursor-pointer text-grey-500"
|
||||
title="Click for more information"
|
||||
/>
|
||||
</button>
|
||||
</p>
|
||||
</div>
|
||||
<div class="mt-4 sm:mt-0 sm:ml-16 sm:flex-none">
|
||||
<button
|
||||
type="button"
|
||||
@click="openCreateModal"
|
||||
class="inline-flex items-center justify-center rounded-md border border-transparent bg-cyan-400 hover:bg-cyan-300 text-cyan-900 px-4 py-2 font-bold shadow-sm focus:outline-none sm:w-auto"
|
||||
class="inline-flex items-center justify-center rounded-md border border-transparent bg-cyan-400 hover:bg-cyan-300 text-cyan-900 px-4 py-2 font-bold shadow-sm focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600 sm:w-auto"
|
||||
>
|
||||
Create Rule
|
||||
</button>
|
||||
@ -260,7 +261,7 @@
|
||||
<!-- add condition button -->
|
||||
<button
|
||||
@click="addCondition(createRuleObject)"
|
||||
class="mt-4 p-2 text-grey-800 bg-white hover:bg-grey-50 border border-grey-100 rounded focus:outline-none"
|
||||
class="mt-4 p-2 text-grey-800 bg-white hover:bg-grey-50 border border-grey-100 rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600"
|
||||
>
|
||||
Add condition
|
||||
</button>
|
||||
@ -358,7 +359,7 @@
|
||||
<!-- add action button -->
|
||||
<button
|
||||
@click="addAction(createRuleObject)"
|
||||
class="mt-4 p-2 text-grey-800 bg-white hover:bg-grey-50 border border-grey-100 rounded focus:outline-none"
|
||||
class="mt-4 p-2 text-grey-800 bg-white hover:bg-grey-50 border border-grey-100 rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600"
|
||||
>
|
||||
Add action
|
||||
</button>
|
||||
@ -407,7 +408,7 @@
|
||||
<div class="mt-6 flex flex-col sm:flex-row space-y-4 sm:space-y-0 sm:space-x-4">
|
||||
<button
|
||||
@click="createNewRule"
|
||||
class="bg-cyan-400 hover:bg-cyan-300 text-cyan-900 font-bold py-3 px-4 rounded focus:outline-none disabled:cursor-not-allowed"
|
||||
class="bg-cyan-400 hover:bg-cyan-300 text-cyan-900 font-bold py-3 px-4 rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600 disabled:cursor-not-allowed"
|
||||
:disabled="createRuleLoading"
|
||||
>
|
||||
Create Rule
|
||||
@ -415,7 +416,7 @@
|
||||
</button>
|
||||
<button
|
||||
@click="createRuleModalOpen = false"
|
||||
class="px-4 py-3 text-grey-800 font-semibold bg-white hover:bg-grey-50 border border-grey-100 rounded focus:outline-none"
|
||||
class="px-4 py-3 text-grey-800 font-semibold bg-white hover:bg-grey-50 border border-grey-100 rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600"
|
||||
>
|
||||
Cancel
|
||||
</button>
|
||||
@ -565,7 +566,7 @@
|
||||
<!-- add condition button -->
|
||||
<button
|
||||
@click="addCondition(editRuleObject)"
|
||||
class="mt-4 p-2 text-grey-800 bg-white hover:bg-grey-50 border border-grey-100 rounded focus:outline-none"
|
||||
class="mt-4 p-2 text-grey-800 bg-white hover:bg-grey-50 border border-grey-100 rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600"
|
||||
>
|
||||
Add condition
|
||||
</button>
|
||||
@ -663,7 +664,7 @@
|
||||
<!-- add action button -->
|
||||
<button
|
||||
@click="addAction(editRuleObject)"
|
||||
class="mt-4 p-2 text-grey-800 bg-white hover:bg-grey-50 border border-grey-100 rounded focus:outline-none"
|
||||
class="mt-4 p-2 text-grey-800 bg-white hover:bg-grey-50 border border-grey-100 rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600"
|
||||
>
|
||||
Add action
|
||||
</button>
|
||||
@ -712,7 +713,7 @@
|
||||
<div class="mt-6 flex flex-col sm:flex-row space-y-4 sm:space-y-0 sm:space-x-4">
|
||||
<button
|
||||
@click="editRule"
|
||||
class="bg-cyan-400 hover:bg-cyan-300 text-cyan-900 font-bold py-3 px-4 rounded focus:outline-none disabled:cursor-not-allowed"
|
||||
class="bg-cyan-400 hover:bg-cyan-300 text-cyan-900 font-bold py-3 px-4 rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600 disabled:cursor-not-allowed"
|
||||
:disabled="editRuleLoading"
|
||||
>
|
||||
Save
|
||||
@ -720,7 +721,7 @@
|
||||
</button>
|
||||
<button
|
||||
@click="closeEditModal"
|
||||
class="px-4 py-3 text-grey-800 font-semibold bg-white hover:bg-grey-50 border border-grey-100 rounded focus:outline-none"
|
||||
class="px-4 py-3 text-grey-800 font-semibold bg-white hover:bg-grey-50 border border-grey-100 rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600"
|
||||
>
|
||||
Cancel
|
||||
</button>
|
||||
@ -736,7 +737,7 @@
|
||||
<button
|
||||
type="button"
|
||||
@click="deleteRule(ruleIdToDelete)"
|
||||
class="px-4 py-3 text-white font-semibold bg-red-500 hover:bg-red-600 border border-transparent rounded focus:outline-none disabled:cursor-not-allowed"
|
||||
class="px-4 py-3 text-white font-semibold bg-red-500 hover:bg-red-600 border border-transparent rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600 disabled:cursor-not-allowed"
|
||||
:disabled="deleteRuleLoading"
|
||||
>
|
||||
Delete rule
|
||||
@ -744,7 +745,7 @@
|
||||
</button>
|
||||
<button
|
||||
@click="closeDeleteModal"
|
||||
class="px-4 py-3 text-grey-800 font-semibold bg-white hover:bg-grey-50 border border-grey-100 rounded focus:outline-none"
|
||||
class="px-4 py-3 text-grey-800 font-semibold bg-white hover:bg-grey-50 border border-grey-100 rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600"
|
||||
>
|
||||
Cancel
|
||||
</button>
|
||||
@ -769,7 +770,7 @@
|
||||
<div class="mt-6 flex flex-col">
|
||||
<button
|
||||
@click="moreInfoOpen = false"
|
||||
class="px-4 py-3 text-grey-800 font-semibold bg-white hover:bg-grey-50 border border-grey-100 rounded focus:outline-none"
|
||||
class="px-4 py-3 text-grey-800 font-semibold bg-white hover:bg-grey-50 border border-grey-100 rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600"
|
||||
>
|
||||
Close
|
||||
</button>
|
||||
|
||||
@ -67,7 +67,7 @@
|
||||
|
||||
<button
|
||||
type="submit"
|
||||
class="text-white font-bold bg-red-500 hover:bg-red-600 w-full py-3 px-4 rounded focus:outline-none"
|
||||
class="text-white font-bold bg-red-500 hover:bg-red-600 w-full py-3 px-4 rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600"
|
||||
>
|
||||
Delete Account
|
||||
</button>
|
||||
@ -87,7 +87,7 @@
|
||||
<button
|
||||
type="button"
|
||||
@click="submitDeleteAccountForm"
|
||||
class="px-4 py-3 text-white font-semibold bg-red-500 hover:bg-red-600 border border-transparent rounded focus:outline-none disabled:cursor-not-allowed"
|
||||
class="px-4 py-3 text-white font-semibold bg-red-500 hover:bg-red-600 border border-transparent rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600 disabled:cursor-not-allowed"
|
||||
:disabled="deleteAccountForm.processing"
|
||||
>
|
||||
Delete Account
|
||||
@ -95,7 +95,7 @@
|
||||
</button>
|
||||
<button
|
||||
@click="deleteAccountModalOpen = false"
|
||||
class="px-4 py-3 text-grey-800 font-semibold bg-white hover:bg-grey-50 border border-grey-100 rounded focus:outline-none"
|
||||
class="px-4 py-3 text-grey-800 font-semibold bg-white hover:bg-grey-50 border border-grey-100 rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600"
|
||||
>
|
||||
Cancel
|
||||
</button>
|
||||
|
||||
@ -38,7 +38,7 @@
|
||||
<div class="mt-4">
|
||||
<button
|
||||
@click="openCreateTokenModal"
|
||||
class="bg-cyan-400 w-full hover:bg-cyan-300 text-cyan-900 font-bold py-3 px-4 rounded focus:outline-none"
|
||||
class="bg-cyan-400 w-full hover:bg-cyan-300 text-cyan-900 font-bold py-3 px-4 rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600"
|
||||
>
|
||||
Create New API Key
|
||||
</button>
|
||||
@ -82,12 +82,12 @@
|
||||
</div>
|
||||
<div v-else class="table-cell p-1 md:p-4">Does not expire</div>
|
||||
<div class="table-cell p-1 md:p-4 text-right">
|
||||
<a
|
||||
class="text-red-500 font-bold cursor-pointer focus:outline-none"
|
||||
<button
|
||||
class="text-red-500 font-bold cursor-pointer rounded-sm focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600"
|
||||
@click="showRevokeModal(token)"
|
||||
>
|
||||
Delete
|
||||
</a>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -165,7 +165,7 @@
|
||||
/>
|
||||
<button
|
||||
@click="store"
|
||||
class="bg-cyan-400 hover:bg-cyan-300 text-cyan-900 font-bold py-3 px-4 rounded focus:outline-none"
|
||||
class="bg-cyan-400 hover:bg-cyan-300 text-cyan-900 font-bold py-3 px-4 rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600"
|
||||
:class="loading ? 'cursor-not-allowed' : ''"
|
||||
:disabled="loading"
|
||||
>
|
||||
@ -174,7 +174,7 @@
|
||||
</button>
|
||||
<button
|
||||
@click="closeCreateTokenModal"
|
||||
class="ml-4 px-4 py-3 text-grey-800 font-semibold bg-white hover:bg-grey-50 border border-grey-100 rounded focus:outline-none"
|
||||
class="ml-4 px-4 py-3 text-grey-800 font-semibold bg-white hover:bg-grey-50 border border-grey-100 rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600"
|
||||
>
|
||||
Close
|
||||
</button>
|
||||
@ -202,14 +202,14 @@
|
||||
</div>
|
||||
<div class="mt-6">
|
||||
<button
|
||||
class="bg-cyan-400 hover:bg-cyan-300 text-cyan-900 font-bold py-3 px-4 rounded focus:outline-none"
|
||||
class="bg-cyan-400 hover:bg-cyan-300 text-cyan-900 font-bold py-3 px-4 rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600"
|
||||
@click="clipboard(accessToken)"
|
||||
>
|
||||
Copy To Clipboard
|
||||
</button>
|
||||
<button
|
||||
@click="closeCreateTokenModal"
|
||||
class="ml-4 px-4 py-3 text-grey-800 font-semibold bg-white hover:bg-grey-50 border border-grey-100 rounded focus:outline-none"
|
||||
class="ml-4 px-4 py-3 text-grey-800 font-semibold bg-white hover:bg-grey-50 border border-grey-100 rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600"
|
||||
>
|
||||
Close
|
||||
</button>
|
||||
@ -228,7 +228,7 @@
|
||||
<div class="mt-6">
|
||||
<button
|
||||
@click="revoke"
|
||||
class="bg-red-500 hover:bg-red-600 text-white font-bold py-3 px-4 rounded focus:outline-none"
|
||||
class="bg-red-500 hover:bg-red-600 text-white font-bold py-3 px-4 rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600"
|
||||
:class="revokeTokenLoading ? 'cursor-not-allowed' : ''"
|
||||
:disabled="revokeTokenLoading"
|
||||
>
|
||||
@ -237,7 +237,7 @@
|
||||
</button>
|
||||
<button
|
||||
@click="closeRevokeTokenModal"
|
||||
class="ml-4 px-4 py-3 text-grey-800 font-semibold bg-white hover:bg-grey-50 border border-grey-100 rounded focus:outline-none"
|
||||
class="ml-4 px-4 py-3 text-grey-800 font-semibold bg-white hover:bg-grey-50 border border-grey-100 rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600"
|
||||
>
|
||||
Close
|
||||
</button>
|
||||
|
||||
@ -59,14 +59,14 @@
|
||||
<div class="mt-4">
|
||||
<div
|
||||
v-if="!domainsCount"
|
||||
class="bg-cyan-400 block w-full text-center hover:bg-cyan-300 text-cyan-900 font-bold py-3 px-4 rounded focus:outline-none cursor-not-allowed"
|
||||
class="bg-cyan-400 block w-full text-center hover:bg-cyan-300 text-cyan-900 font-bold py-3 px-4 rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600 cursor-not-allowed"
|
||||
>
|
||||
You don't have any custom domains
|
||||
</div>
|
||||
<button
|
||||
v-else
|
||||
type="submit"
|
||||
class="bg-cyan-400 block w-full text-center hover:bg-cyan-300 text-cyan-900 font-bold py-3 px-4 rounded focus:outline-none"
|
||||
class="bg-cyan-400 block w-full text-center hover:bg-cyan-300 text-cyan-900 font-bold py-3 px-4 rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600"
|
||||
>
|
||||
Import Alias Data
|
||||
</button>
|
||||
@ -98,13 +98,13 @@
|
||||
:href="route('aliases.export')"
|
||||
:class="!totalAliasesCount ? 'cursor-not-allowed' : ''"
|
||||
:disabled="!totalAliasesCount"
|
||||
class="bg-cyan-400 block w-full text-center hover:bg-cyan-300 text-cyan-900 font-bold py-3 px-4 rounded focus:outline-none"
|
||||
class="bg-cyan-400 block w-full text-center hover:bg-cyan-300 text-cyan-900 font-bold py-3 px-4 rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600"
|
||||
>
|
||||
Export Alias Data
|
||||
</a>
|
||||
<div
|
||||
v-else
|
||||
class="bg-cyan-400 block w-full text-center hover:bg-cyan-300 text-cyan-900 font-bold py-3 px-4 rounded focus:outline-none cursor-not-allowed"
|
||||
class="bg-cyan-400 block w-full text-center hover:bg-cyan-300 text-cyan-900 font-bold py-3 px-4 rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600 cursor-not-allowed"
|
||||
>
|
||||
Export Alias Data
|
||||
</div>
|
||||
|
||||
@ -121,7 +121,7 @@
|
||||
<button
|
||||
type="submit"
|
||||
:disabled="emailForm.processing"
|
||||
class="bg-cyan-400 w-full hover:bg-cyan-300 text-cyan-900 font-bold py-3 px-4 rounded focus:outline-none disabled:cursor-not-allowed"
|
||||
class="bg-cyan-400 w-full hover:bg-cyan-300 text-cyan-900 font-bold py-3 px-4 rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600 disabled:cursor-not-allowed"
|
||||
>
|
||||
Update Email
|
||||
<loader v-if="emailForm.processing" />
|
||||
@ -201,7 +201,7 @@
|
||||
<button
|
||||
type="submit"
|
||||
:disabled="defaultAliasDomainForm.processing"
|
||||
class="bg-cyan-400 w-full hover:bg-cyan-300 text-cyan-900 font-bold py-3 px-4 rounded focus:outline-none disabled:cursor-not-allowed"
|
||||
class="bg-cyan-400 w-full hover:bg-cyan-300 text-cyan-900 font-bold py-3 px-4 rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600 disabled:cursor-not-allowed"
|
||||
>
|
||||
Update Default Alias Domain
|
||||
<loader v-if="defaultAliasDomainForm.processing" />
|
||||
@ -298,7 +298,7 @@
|
||||
<button
|
||||
type="submit"
|
||||
:disabled="defaultAliasFormatForm.processing"
|
||||
class="bg-cyan-400 w-full hover:bg-cyan-300 text-cyan-900 font-bold py-3 px-4 rounded focus:outline-none disabled:cursor-not-allowed"
|
||||
class="bg-cyan-400 w-full hover:bg-cyan-300 text-cyan-900 font-bold py-3 px-4 rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600 disabled:cursor-not-allowed"
|
||||
>
|
||||
Update Default Alias Format
|
||||
<loader v-if="defaultAliasFormatForm.processing" />
|
||||
@ -378,7 +378,7 @@
|
||||
<button
|
||||
type="submit"
|
||||
:disabled="loginRedirectForm.processing"
|
||||
class="bg-cyan-400 w-full hover:bg-cyan-300 text-cyan-900 font-bold py-3 px-4 rounded focus:outline-none disabled:cursor-not-allowed"
|
||||
class="bg-cyan-400 w-full hover:bg-cyan-300 text-cyan-900 font-bold py-3 px-4 rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600 disabled:cursor-not-allowed"
|
||||
>
|
||||
Update Login Redirect
|
||||
<loader v-if="loginRedirectForm.processing" />
|
||||
@ -456,7 +456,7 @@
|
||||
<button
|
||||
type="submit"
|
||||
:disabled="displayFromFormatForm.processing"
|
||||
class="bg-cyan-400 w-full hover:bg-cyan-300 text-cyan-900 font-bold py-3 px-4 rounded focus:outline-none disabled:cursor-not-allowed"
|
||||
class="bg-cyan-400 w-full hover:bg-cyan-300 text-cyan-900 font-bold py-3 px-4 rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600 disabled:cursor-not-allowed"
|
||||
>
|
||||
Update Display From Format
|
||||
<loader v-if="displayFromFormatForm.processing" />
|
||||
@ -537,7 +537,7 @@
|
||||
<button
|
||||
type="submit"
|
||||
:disabled="useReplyToForm.processing"
|
||||
class="bg-cyan-400 w-full hover:bg-cyan-300 text-cyan-900 font-bold py-3 px-4 rounded focus:outline-none disabled:cursor-not-allowed"
|
||||
class="bg-cyan-400 w-full hover:bg-cyan-300 text-cyan-900 font-bold py-3 px-4 rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600 disabled:cursor-not-allowed"
|
||||
>
|
||||
Update Use Reply-To
|
||||
<loader v-if="useReplyToForm.processing" />
|
||||
@ -620,7 +620,7 @@
|
||||
<button
|
||||
type="submit"
|
||||
:disabled="storeFailedDeliveriesForm.processing"
|
||||
class="bg-cyan-400 w-full hover:bg-cyan-300 text-cyan-900 font-bold py-3 px-4 rounded focus:outline-none disabled:cursor-not-allowed"
|
||||
class="bg-cyan-400 w-full hover:bg-cyan-300 text-cyan-900 font-bold py-3 px-4 rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600 disabled:cursor-not-allowed"
|
||||
>
|
||||
Update Store Failed Deliveries
|
||||
<loader v-if="storeFailedDeliveriesForm.processing" />
|
||||
@ -702,7 +702,7 @@
|
||||
<button
|
||||
type="submit"
|
||||
:disabled="fromNameForm.processing"
|
||||
class="bg-cyan-400 w-full hover:bg-cyan-300 text-cyan-900 font-bold py-3 px-4 rounded focus:outline-none disabled:cursor-not-allowed"
|
||||
class="bg-cyan-400 w-full hover:bg-cyan-300 text-cyan-900 font-bold py-3 px-4 rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600 disabled:cursor-not-allowed"
|
||||
>
|
||||
Update Global From Name
|
||||
<loader v-if="fromNameForm.processing" />
|
||||
@ -785,7 +785,7 @@
|
||||
<button
|
||||
type="submit"
|
||||
:disabled="bannerLocationForm.processing"
|
||||
class="bg-cyan-400 w-full hover:bg-cyan-300 text-cyan-900 font-bold py-3 px-4 rounded focus:outline-none disabled:cursor-not-allowed"
|
||||
class="bg-cyan-400 w-full hover:bg-cyan-300 text-cyan-900 font-bold py-3 px-4 rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600 disabled:cursor-not-allowed"
|
||||
>
|
||||
Update Banner Location
|
||||
<loader v-if="bannerLocationForm.processing" />
|
||||
@ -857,7 +857,7 @@
|
||||
<button
|
||||
type="submit"
|
||||
:disabled="emailSubjectForm.processing"
|
||||
class="bg-cyan-400 w-full hover:bg-cyan-300 text-cyan-900 font-bold py-3 px-4 rounded focus:outline-none disabled:cursor-not-allowed"
|
||||
class="bg-cyan-400 w-full hover:bg-cyan-300 text-cyan-900 font-bold py-3 px-4 rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600 disabled:cursor-not-allowed"
|
||||
>
|
||||
Update Email Subject
|
||||
<loader v-if="emailSubjectForm.processing" />
|
||||
|
||||
@ -147,7 +147,7 @@
|
||||
<button
|
||||
type="submit"
|
||||
:disabled="updatePasswordForm.processing"
|
||||
class="bg-cyan-400 w-full hover:bg-cyan-300 text-cyan-900 font-bold py-3 px-4 rounded focus:outline-none disabled:cursor-not-allowed"
|
||||
class="bg-cyan-400 w-full hover:bg-cyan-300 text-cyan-900 font-bold py-3 px-4 rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600 disabled:cursor-not-allowed"
|
||||
>
|
||||
Update Password
|
||||
<loader v-if="updatePasswordForm.processing" />
|
||||
@ -220,7 +220,7 @@
|
||||
<button
|
||||
type="submit"
|
||||
:disabled="browserSessionsForm.processing"
|
||||
class="bg-cyan-400 w-full hover:bg-cyan-300 text-cyan-900 font-bold py-3 px-4 rounded focus:outline-none disabled:cursor-not-allowed"
|
||||
class="bg-cyan-400 w-full hover:bg-cyan-300 text-cyan-900 font-bold py-3 px-4 rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600 disabled:cursor-not-allowed"
|
||||
>
|
||||
Logout Other Browser Sessions
|
||||
<loader v-if="browserSessionsForm.processing" />
|
||||
@ -235,8 +235,9 @@
|
||||
<p class="text-base text-grey-700">
|
||||
Two-factor authentication, also known as 2FA or multi-factor, adds an extra layer of
|
||||
security to your account beyond your username and password. There are
|
||||
<b>multiple options for 2FA</b> - 1. Authentication App (e.g. Google Authenticator or another,
|
||||
Aegis, andOTP) 2. Hardware Security Key (e.g. YubiKey, SoloKey, Nitrokey) 3. Passkeys (which can be stored in a supported provider such as Bitwarden or 1Password).
|
||||
<b>multiple options for 2FA</b> - 1. Authentication App (e.g. Google Authenticator or
|
||||
another, Aegis, andOTP) 2. Hardware Security Key (e.g. YubiKey, SoloKey, Nitrokey) 3.
|
||||
Passkeys (which can be stored in a supported provider such as Bitwarden or 1Password).
|
||||
</p>
|
||||
<p class="text-base text-grey-700">
|
||||
When you login with 2FA enabled, you will be prompted to use a security key or enter a
|
||||
@ -332,7 +333,7 @@
|
||||
<button
|
||||
type="submit"
|
||||
:disabled="newBackupCodeForm.processing"
|
||||
class="bg-cyan-400 w-full hover:bg-cyan-300 text-cyan-900 font-bold py-3 px-4 rounded focus:outline-none disabled:cursor-not-allowed"
|
||||
class="bg-cyan-400 w-full hover:bg-cyan-300 text-cyan-900 font-bold py-3 px-4 rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600 disabled:cursor-not-allowed"
|
||||
>
|
||||
Generate New Backup Code
|
||||
<loader v-if="newBackupCodeForm.processing" />
|
||||
@ -406,7 +407,7 @@
|
||||
<button
|
||||
type="submit"
|
||||
:disabled="disableTwoFactorForm.processing"
|
||||
class="bg-cyan-400 w-full hover:bg-cyan-300 text-cyan-900 font-bold py-3 px-4 rounded focus:outline-none disabled:cursor-not-allowed"
|
||||
class="bg-cyan-400 w-full hover:bg-cyan-300 text-cyan-900 font-bold py-3 px-4 rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600 disabled:cursor-not-allowed"
|
||||
>
|
||||
Disable Two-Factor Authentication
|
||||
<loader v-if="disableTwoFactorForm.processing" />
|
||||
@ -422,15 +423,13 @@
|
||||
Device/Passkey Authentication (WebAuthn)
|
||||
</h3>
|
||||
<p class="text-base text-grey-700">
|
||||
Hardware security keys and Passkeys that you have registered for 2nd factor authentication. To remove
|
||||
a key simply click the delete button next to it. Disabled keys cannot be used to
|
||||
login. Disabling all keys will turn off 2FA on your account.
|
||||
Hardware security keys and Passkeys that you have registered for 2nd factor
|
||||
authentication. To remove a key simply click the delete button next to it. Disabled
|
||||
keys cannot be used to login. Disabling all keys will turn off 2FA on your account.
|
||||
</p>
|
||||
</div>
|
||||
<div class="mt-4">
|
||||
<p class="mb-0" v-if="keys.length === 0">
|
||||
You have not registered any keys.
|
||||
</p>
|
||||
<p class="mb-0" v-if="keys.length === 0">You have not registered any keys.</p>
|
||||
|
||||
<div class="table w-full text-sm md:text-base" v-if="keys.length > 0">
|
||||
<div class="table-row">
|
||||
@ -492,27 +491,27 @@
|
||||
</svg>
|
||||
</div>
|
||||
<div class="table-cell p-1 md:p-4 text-right">
|
||||
<a
|
||||
<button
|
||||
v-if="key.enabled"
|
||||
class="text-indigo-500 font-bold cursor-pointer focus:outline-none"
|
||||
class="text-indigo-500 font-bold cursor-pointer rounded-sm focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600"
|
||||
@click="showDisableKeyModal(key)"
|
||||
>
|
||||
Disable
|
||||
</a>
|
||||
<a
|
||||
</button>
|
||||
<button
|
||||
v-else
|
||||
class="text-indigo-500 font-bold cursor-pointer focus:outline-none"
|
||||
class="text-indigo-500 font-bold cursor-pointer rounded-sm focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600"
|
||||
@click="enableKey(key)"
|
||||
>
|
||||
Enable
|
||||
<loader v-if="key.enableKeyLoading" />
|
||||
</a>
|
||||
<a
|
||||
class="text-red-500 font-bold cursor-pointer sm:ml-4 focus:outline-none"
|
||||
</button>
|
||||
<button
|
||||
class="text-red-500 font-bold cursor-pointer sm:ml-4 rounded-sm focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600"
|
||||
@click="showDeleteKeyModal(key)"
|
||||
>
|
||||
Delete
|
||||
</a>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -657,7 +656,7 @@
|
||||
<button
|
||||
type="submit"
|
||||
:disabled="enableTwoFactorForm.processing"
|
||||
class="bg-cyan-400 w-full hover:bg-cyan-300 text-cyan-900 font-bold py-3 px-4 rounded focus:outline-none disabled:cursor-not-allowed"
|
||||
class="bg-cyan-400 w-full hover:bg-cyan-300 text-cyan-900 font-bold py-3 px-4 rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600 disabled:cursor-not-allowed"
|
||||
>
|
||||
Verify and Enable
|
||||
<loader v-if="enableTwoFactorForm.processing" />
|
||||
@ -679,7 +678,7 @@
|
||||
<a
|
||||
type="button"
|
||||
:href="route('webauthn.create')"
|
||||
class="block bg-cyan-400 w-full hover:bg-cyan-300 text-cyan-900 font-bold py-3 px-4 rounded focus:outline-none text-center"
|
||||
class="block bg-cyan-400 w-full hover:bg-cyan-300 text-cyan-900 font-bold py-3 px-4 rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600 text-center"
|
||||
>
|
||||
Register New Key
|
||||
</a>
|
||||
@ -722,7 +721,7 @@
|
||||
<div class="flex flex-col sm:flex-row space-y-4 sm:space-y-0 sm:space-x-4">
|
||||
<button
|
||||
@click="disableKey"
|
||||
class="bg-red-500 hover:bg-red-600 text-white font-bold py-3 px-4 rounded focus:outline-none disable:cursor-not-allowed"
|
||||
class="bg-red-500 hover:bg-red-600 text-white font-bold py-3 px-4 rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600 disable:cursor-not-allowed"
|
||||
:disabled="disableKeyLoading"
|
||||
>
|
||||
Disable
|
||||
@ -730,7 +729,7 @@
|
||||
</button>
|
||||
<button
|
||||
@click="closeDisableKeyModal"
|
||||
class="ml-4 px-4 py-3 text-grey-800 font-semibold bg-white hover:bg-grey-50 border border-grey-100 rounded focus:outline-none"
|
||||
class="ml-4 px-4 py-3 text-grey-800 font-semibold bg-white hover:bg-grey-50 border border-grey-100 rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600"
|
||||
>
|
||||
Close
|
||||
</button>
|
||||
@ -772,7 +771,7 @@
|
||||
<div class="flex flex-col sm:flex-row space-y-4 sm:space-y-0 sm:space-x-4">
|
||||
<button
|
||||
@click="deleteKey"
|
||||
class="bg-red-500 hover:bg-red-600 text-white font-bold py-3 px-4 rounded focus:outline-none disable:cursor-not-allowed"
|
||||
class="bg-red-500 hover:bg-red-600 text-white font-bold py-3 px-4 rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600 disable:cursor-not-allowed"
|
||||
:disabled="deleteKeyLoading"
|
||||
>
|
||||
Remove
|
||||
@ -780,7 +779,7 @@
|
||||
</button>
|
||||
<button
|
||||
@click="closeDeleteKeyModal"
|
||||
class="ml-4 px-4 py-3 text-grey-800 font-semibold bg-white hover:bg-grey-50 border border-grey-100 rounded focus:outline-none"
|
||||
class="ml-4 px-4 py-3 text-grey-800 font-semibold bg-white hover:bg-grey-50 border border-grey-100 rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600"
|
||||
>
|
||||
Close
|
||||
</button>
|
||||
|
||||
@ -91,7 +91,7 @@
|
||||
<button
|
||||
@click="editFromName"
|
||||
:disabled="username.fromNameLoading"
|
||||
class="bg-cyan-400 w-full hover:bg-cyan-300 text-cyan-900 font-bold py-3 px-4 rounded focus:outline-none disabled:cursor-not-allowed"
|
||||
class="bg-cyan-400 w-full hover:bg-cyan-300 text-cyan-900 font-bold py-3 px-4 rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600 disabled:cursor-not-allowed"
|
||||
>
|
||||
Update From Name
|
||||
<loader v-if="username.fromNameLoading" />
|
||||
|
||||
@ -8,18 +8,19 @@
|
||||
<h1 class="text-2xl font-semibold text-grey-900">Usernames</h1>
|
||||
<p class="mt-2 text-sm text-grey-700">
|
||||
A list of all the usernames {{ search ? 'found for your search' : 'in your account' }}
|
||||
<InformationCircleIcon
|
||||
@click="moreInfoOpen = !moreInfoOpen"
|
||||
class="h-6 w-6 inline-block cursor-pointer text-grey-500"
|
||||
title="Click for more information"
|
||||
/>
|
||||
<button @click="moreInfoOpen = !moreInfoOpen">
|
||||
<InformationCircleIcon
|
||||
class="h-6 w-6 inline-block cursor-pointer text-grey-500"
|
||||
title="Click for more information"
|
||||
/>
|
||||
</button>
|
||||
</p>
|
||||
</div>
|
||||
<div class="mt-4 sm:mt-0 sm:ml-16 sm:flex-none">
|
||||
<button
|
||||
type="button"
|
||||
@click="openAddUsernameModal"
|
||||
class="inline-flex items-center justify-center rounded-md border border-transparent bg-cyan-400 hover:bg-cyan-300 text-cyan-900 px-4 py-2 font-bold shadow-sm focus:outline-none sm:w-auto"
|
||||
class="inline-flex items-center justify-center rounded-md border border-transparent bg-cyan-400 hover:bg-cyan-300 text-cyan-900 px-4 py-2 font-bold shadow-sm focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600 sm:w-auto"
|
||||
>
|
||||
Add Username
|
||||
</button>
|
||||
@ -45,21 +46,20 @@
|
||||
>{{ $filters.timeAgo(props.row.created_at) }}
|
||||
</span>
|
||||
<span v-else-if="props.column.field == 'username'">
|
||||
<span
|
||||
class="tooltip cursor-pointer outline-none font-medium text-grey-700"
|
||||
<button
|
||||
class="tooltip outline-none font-medium text-grey-700"
|
||||
data-tippy-content="Click to copy"
|
||||
@click="clipboard(rows[props.row.originalIndex].username)"
|
||||
>{{ $filters.truncate(props.row.username, 30) }}</span
|
||||
>
|
||||
{{ $filters.truncate(props.row.username, 30) }}
|
||||
</button>
|
||||
<span
|
||||
v-if="isDefault(props.row.id)"
|
||||
class="ml-3 py-1 px-2 text-sm bg-yellow-200 text-yellow-900 rounded-full"
|
||||
>default</span
|
||||
>
|
||||
<span v-else class="block text-grey-400 text-sm py-1">
|
||||
<span @click="openMakeDefaultModal(props.row)" class="cursor-pointer">
|
||||
Make Default
|
||||
</span>
|
||||
<button @click="openMakeDefaultModal(props.row)">Make Default</button>
|
||||
</span>
|
||||
</span>
|
||||
<span v-else-if="props.column.field == 'description'">
|
||||
@ -77,59 +77,49 @@
|
||||
tabindex="0"
|
||||
autofocus
|
||||
/>
|
||||
<Icon
|
||||
name="close"
|
||||
class="inline-block w-6 h-6 text-red-300 fill-current cursor-pointer"
|
||||
@click="usernameIdToEdit = usernameDescriptionToEdit = ''"
|
||||
/>
|
||||
<Icon
|
||||
name="save"
|
||||
class="inline-block w-6 h-6 text-cyan-500 fill-current cursor-pointer"
|
||||
@click="editUsername(rows[props.row.originalIndex])"
|
||||
/>
|
||||
<button @click="usernameIdToEdit = usernameDescriptionToEdit = ''">
|
||||
<Icon name="close" class="inline-block w-6 h-6 text-red-300 fill-current" />
|
||||
</button>
|
||||
<button @click="editUsername(rows[props.row.originalIndex])">
|
||||
<Icon name="save" class="inline-block w-6 h-6 text-cyan-500 fill-current" />
|
||||
</button>
|
||||
</div>
|
||||
<div v-else-if="props.row.description" class="flex items-centers">
|
||||
<span class="outline-none text-grey-500">{{
|
||||
<span class="outline-none text-grey-500 mr-2">{{
|
||||
$filters.truncate(props.row.description, 60)
|
||||
}}</span>
|
||||
<Icon
|
||||
name="edit"
|
||||
class="inline-block w-6 h-6 text-grey-300 fill-current cursor-pointer ml-2"
|
||||
<button
|
||||
@click="
|
||||
;(usernameIdToEdit = props.row.id),
|
||||
(usernameDescriptionToEdit = props.row.description)
|
||||
"
|
||||
/>
|
||||
>
|
||||
<Icon name="edit" class="inline-block w-6 h-6 text-grey-300 fill-current" />
|
||||
</button>
|
||||
</div>
|
||||
<div v-else class="flex justify-center">
|
||||
<Icon
|
||||
name="plus"
|
||||
class="block w-6 h-6 text-grey-300 fill-current cursor-pointer"
|
||||
@click=";(usernameIdToEdit = props.row.id), (usernameDescriptionToEdit = '')"
|
||||
/>
|
||||
<button @click=";(usernameIdToEdit = props.row.id), (usernameDescriptionToEdit = '')">
|
||||
<Icon name="plus" class="block w-6 h-6 text-grey-300 fill-current" />
|
||||
</button>
|
||||
</div>
|
||||
</span>
|
||||
<span v-else-if="props.column.field === 'default_recipient'">
|
||||
<div v-if="props.row.default_recipient">
|
||||
<span
|
||||
class="tooltip cursor-pointer font-medium text-grey-500"
|
||||
class="tooltip cursor-pointer font-medium text-grey-500 mr-2"
|
||||
data-tippy-content="Click to copy"
|
||||
@click="clipboard(rows[props.row.originalIndex].default_recipient.email)"
|
||||
>
|
||||
{{ $filters.truncate(props.row.default_recipient.email, 30) }}
|
||||
</span>
|
||||
<Icon
|
||||
name="edit"
|
||||
class="ml-2 inline-block w-6 h-6 text-grey-300 fill-current cursor-pointer"
|
||||
@click="openUsernameDefaultRecipientModal(props.row)"
|
||||
/>
|
||||
<button @click="openUsernameDefaultRecipientModal(props.row)">
|
||||
<Icon name="edit" class="inline-block w-6 h-6 text-grey-300 fill-current" />
|
||||
</button>
|
||||
</div>
|
||||
<div class="flex justify-center" v-else>
|
||||
<Icon
|
||||
name="plus"
|
||||
class="block w-6 h-6 text-grey-300 fill-current cursor-pointer"
|
||||
@click="openUsernameDefaultRecipientModal(props.row)"
|
||||
/>
|
||||
<button @click="openUsernameDefaultRecipientModal(props.row)">
|
||||
<Icon name="plus" class="block w-6 h-6 text-grey-300 fill-current" />
|
||||
</button>
|
||||
</div>
|
||||
</span>
|
||||
<span v-else-if="props.column.field === 'aliases_count'">
|
||||
@ -225,7 +215,7 @@
|
||||
<div class="flex flex-col sm:flex-row space-y-4 sm:space-y-0 sm:space-x-4">
|
||||
<button
|
||||
@click="validateNewUsername"
|
||||
class="bg-cyan-400 hover:bg-cyan-300 text-cyan-900 font-bold py-3 px-4 rounded focus:outline-none disabled:cursor-not-allowed"
|
||||
class="bg-cyan-400 hover:bg-cyan-300 text-cyan-900 font-bold py-3 px-4 rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600 disabled:cursor-not-allowed"
|
||||
:disabled="addUsernameLoading"
|
||||
>
|
||||
Add Username
|
||||
@ -233,7 +223,7 @@
|
||||
</button>
|
||||
<button
|
||||
@click="addUsernameModalOpen = false"
|
||||
class="px-4 py-3 text-grey-800 font-semibold bg-white hover:bg-grey-50 border border-grey-100 rounded focus:outline-none"
|
||||
class="px-4 py-3 text-grey-800 font-semibold bg-white hover:bg-grey-50 border border-grey-100 rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600"
|
||||
>
|
||||
Cancel
|
||||
</button>
|
||||
@ -268,7 +258,7 @@
|
||||
<button
|
||||
type="button"
|
||||
@click="editDefaultRecipient()"
|
||||
class="px-4 py-3 text-cyan-900 font-semibold bg-cyan-400 hover:bg-cyan-300 border border-transparent rounded focus:outline-none disabled:cursor-not-allowed"
|
||||
class="px-4 py-3 text-cyan-900 font-semibold bg-cyan-400 hover:bg-cyan-300 border border-transparent rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600 disabled:cursor-not-allowed"
|
||||
:disabled="editDefaultRecipientLoading"
|
||||
>
|
||||
Update Default Recipient
|
||||
@ -276,7 +266,7 @@
|
||||
</button>
|
||||
<button
|
||||
@click="closeUsernameDefaultRecipientModal()"
|
||||
class="px-4 py-3 text-grey-800 font-semibold bg-white hover:bg-grey-50 border border-grey-100 rounded focus:outline-none"
|
||||
class="px-4 py-3 text-grey-800 font-semibold bg-white hover:bg-grey-50 border border-grey-100 rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600"
|
||||
>
|
||||
Cancel
|
||||
</button>
|
||||
@ -297,7 +287,7 @@
|
||||
<button
|
||||
type="button"
|
||||
@click="deleteUsername(usernameIdToDelete)"
|
||||
class="px-4 py-3 text-white font-semibold bg-red-500 hover:bg-red-600 border border-transparent rounded focus:outline-none disabled:cursor-not-allowed"
|
||||
class="px-4 py-3 text-white font-semibold bg-red-500 hover:bg-red-600 border border-transparent rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600 disabled:cursor-not-allowed"
|
||||
:disabled="deleteUsernameLoading"
|
||||
>
|
||||
Delete username
|
||||
@ -305,7 +295,7 @@
|
||||
</button>
|
||||
<button
|
||||
@click="closeDeleteModal"
|
||||
class="px-4 py-3 text-grey-800 font-semibold bg-white hover:bg-grey-50 border border-grey-100 rounded focus:outline-none"
|
||||
class="px-4 py-3 text-grey-800 font-semibold bg-white hover:bg-grey-50 border border-grey-100 rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600"
|
||||
>
|
||||
Cancel
|
||||
</button>
|
||||
@ -326,7 +316,7 @@
|
||||
<button
|
||||
type="button"
|
||||
@click="makeDefaultUsername(usernameToMakeDefault)"
|
||||
class="bg-cyan-400 hover:bg-cyan-300 text-cyan-900 font-bold py-3 px-4 rounded focus:outline-none disabled:cursor-not-allowed"
|
||||
class="bg-cyan-400 hover:bg-cyan-300 text-cyan-900 font-bold py-3 px-4 rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600 disabled:cursor-not-allowed"
|
||||
:disabled="makeDefaultLoading"
|
||||
>
|
||||
Make default username
|
||||
@ -334,7 +324,7 @@
|
||||
</button>
|
||||
<button
|
||||
@click="closeMakeDefaultModal"
|
||||
class="px-4 py-3 text-grey-800 font-semibold bg-white hover:bg-grey-50 border border-grey-100 rounded focus:outline-none"
|
||||
class="px-4 py-3 text-grey-800 font-semibold bg-white hover:bg-grey-50 border border-grey-100 rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600"
|
||||
>
|
||||
Cancel
|
||||
</button>
|
||||
@ -364,7 +354,7 @@
|
||||
<div class="mt-6 flex flex-col sm:flex-row">
|
||||
<button
|
||||
@click="moreInfoOpen = false"
|
||||
class="px-4 py-3 text-grey-800 font-semibold bg-white hover:bg-grey-50 border border-grey-100 rounded focus:outline-none"
|
||||
class="px-4 py-3 text-grey-800 font-semibold bg-white hover:bg-grey-50 border border-grey-100 rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600"
|
||||
>
|
||||
Close
|
||||
</button>
|
||||
|
||||
@ -39,7 +39,7 @@
|
||||
</div>
|
||||
|
||||
<div class="px-6 md:px-10 py-4 bg-grey-50 border-t border-grey-100 flex flex-wrap items-center justify-center">
|
||||
<button type="submit" class="bg-cyan-400 w-full hover:bg-cyan-300 text-cyan-900 font-bold py-3 px-4 rounded focus:outline-none">
|
||||
<button type="submit" class="bg-cyan-400 w-full hover:bg-cyan-300 text-cyan-900 font-bold py-3 px-4 rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600">
|
||||
{{ __('Authenticate') }}
|
||||
</button>
|
||||
</div>
|
||||
|
||||
@ -86,7 +86,7 @@
|
||||
</div>
|
||||
|
||||
<div class="px-6 md:px-10 py-4 bg-grey-50 border-t border-grey-100 flex flex-wrap items-center">
|
||||
<button type="submit" class="bg-cyan-400 w-full hover:bg-cyan-300 text-cyan-900 font-bold py-3 px-4 rounded focus:outline-none ml-auto focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600">
|
||||
<button type="submit" class="bg-cyan-400 w-full hover:bg-cyan-300 text-cyan-900 font-bold py-3 px-4 rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600 ml-auto">
|
||||
{{ __('Login') }}
|
||||
</button>
|
||||
</div>
|
||||
|
||||
@ -68,7 +68,7 @@
|
||||
</div>
|
||||
|
||||
<div class="px-6 md:px-10 py-4 bg-grey-50 border-t border-grey-100 flex flex-wrap items-center justify-center">
|
||||
<button type="submit" class="bg-cyan-400 w-full hover:bg-cyan-300 text-cyan-900 font-bold py-3 px-4 rounded focus:outline-none">
|
||||
<button type="submit" class="bg-cyan-400 w-full hover:bg-cyan-300 text-cyan-900 font-bold py-3 px-4 rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600">
|
||||
{{ __('Send Password Reset Link') }}
|
||||
</button>
|
||||
</div>
|
||||
|
||||
@ -59,7 +59,7 @@
|
||||
</div>
|
||||
|
||||
<div class="px-6 md:px-10 py-4 bg-grey-50 border-t border-grey-100 flex flex-wrap items-center">
|
||||
<button type="submit" class="bg-cyan-400 w-full hover:bg-cyan-300 text-cyan-900 font-bold py-3 px-4 rounded focus:outline-none">
|
||||
<button type="submit" class="bg-cyan-400 w-full hover:bg-cyan-300 text-cyan-900 font-bold py-3 px-4 rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600">
|
||||
{{ __('Reset Password') }}
|
||||
</button>
|
||||
</div>
|
||||
|
||||
@ -99,7 +99,7 @@
|
||||
</div>
|
||||
|
||||
<div class="px-6 md:px-10 py-4 bg-grey-50 border-t border-grey-100 flex flex-wrap items-center">
|
||||
<button type="submit" class="bg-cyan-400 w-full hover:bg-cyan-300 text-cyan-900 font-bold py-3 px-4 rounded focus:outline-none">
|
||||
<button type="submit" class="bg-cyan-400 w-full hover:bg-cyan-300 text-cyan-900 font-bold py-3 px-4 rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600">
|
||||
{{ __('Register') }}
|
||||
</button>
|
||||
</div>
|
||||
|
||||
@ -41,7 +41,7 @@
|
||||
</div>
|
||||
|
||||
<div class="px-6 md:px-10 py-4 bg-grey-50 border-t border-grey-100 flex flex-wrap items-center justify-center">
|
||||
<button type="submit" class="bg-cyan-400 w-full hover:bg-cyan-300 text-cyan-900 font-bold py-3 px-4 rounded focus:outline-none">
|
||||
<button type="submit" class="bg-cyan-400 w-full hover:bg-cyan-300 text-cyan-900 font-bold py-3 px-4 rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600">
|
||||
{{ __('Authenticate') }}
|
||||
</button>
|
||||
</div>
|
||||
|
||||
@ -65,7 +65,7 @@
|
||||
</div>
|
||||
|
||||
<div class="px-6 md:px-10 py-4 bg-grey-50 border-t border-grey-100 flex flex-wrap items-center justify-center">
|
||||
<button type="submit" class="bg-cyan-400 w-full hover:bg-cyan-300 text-cyan-900 font-bold py-3 px-4 rounded focus:outline-none">
|
||||
<button type="submit" class="bg-cyan-400 w-full hover:bg-cyan-300 text-cyan-900 font-bold py-3 px-4 rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600">
|
||||
{{ __('Send Username Reminder') }}
|
||||
</button>
|
||||
</div>
|
||||
|
||||
@ -29,7 +29,7 @@
|
||||
<form method="POST" action="{{ route('verification.resend') }}" class="w-full">
|
||||
@csrf
|
||||
|
||||
<button type="submit" class="bg-cyan-400 w-full text-center hover:bg-cyan-300 text-cyan-900 font-bold py-3 px-4 rounded focus:ring no-underline mx-auto">
|
||||
<button type="submit" class="bg-cyan-400 w-full text-center hover:bg-cyan-300 text-cyan-900 font-bold py-3 px-4 rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600 no-underline mx-auto">
|
||||
{{ __('Resend verification email') }}
|
||||
</button>
|
||||
</form>
|
||||
|
||||
@ -48,7 +48,7 @@
|
||||
</form>
|
||||
|
||||
<div class="mt-4">
|
||||
<button onclick="authenticateDevice()" class="bg-cyan-400 w-full hover:bg-cyan-300 text-cyan-900 font-bold py-3 px-4 rounded focus:outline-none ml-auto">
|
||||
<button onclick="authenticateDevice()" class="bg-cyan-400 w-full hover:bg-cyan-300 text-cyan-900 font-bold py-3 px-4 rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600 ml-auto">
|
||||
Authenticate
|
||||
</button>
|
||||
</div>
|
||||
|
||||
@ -69,7 +69,7 @@
|
||||
</div>
|
||||
|
||||
<div class="px-6 md:px-10 py-4 bg-grey-50 border-t border-grey-100 flex flex-wrap items-center">
|
||||
<button onclick="registerDevice()" class="bg-cyan-400 w-full hover:bg-cyan-300 text-cyan-900 font-bold py-3 px-4 rounded focus:outline-none ml-auto">
|
||||
<button onclick="registerDevice()" class="bg-cyan-400 w-full hover:bg-cyan-300 text-cyan-900 font-bold py-3 px-4 rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600 ml-auto">
|
||||
Add Key
|
||||
</button>
|
||||
</div>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user