mirror of
https://github.com/haexhub/haex-hub.git
synced 2025-12-16 22:20:51 +01:00
cleanup
This commit is contained in:
@ -1,58 +1,60 @@
|
|||||||
<template>
|
<template>
|
||||||
<UiCard
|
<div class="p-1">
|
||||||
v-if="group"
|
<UiCard
|
||||||
:title="mode === 'create' ? t('title.create') : t('title.edit')"
|
v-if="group"
|
||||||
icon="mdi:folder-plus-outline"
|
:title="mode === 'create' ? t('title.create') : t('title.edit')"
|
||||||
@close="$emit('close')"
|
icon="mdi:folder-plus-outline"
|
||||||
>
|
@close="$emit('close')"
|
||||||
<form
|
|
||||||
class="flex flex-col gap-4 w-full p-4"
|
|
||||||
@submit.prevent="$emit('submit')"
|
|
||||||
>
|
>
|
||||||
<UiInput
|
<form
|
||||||
:check-input="check"
|
class="flex flex-col gap-4 w-full p-4"
|
||||||
:label="t('name')"
|
@submit.prevent="$emit('submit')"
|
||||||
:placeholder="t('name')"
|
>
|
||||||
autofocus
|
<UiInput
|
||||||
v-model="group.name"
|
:check-input="check"
|
||||||
ref="nameRef"
|
:label="t('name')"
|
||||||
/>
|
:placeholder="t('name')"
|
||||||
|
autofocus
|
||||||
<UiInput
|
v-model="group.name"
|
||||||
v-model="group.description"
|
ref="nameRef"
|
||||||
:check-input="check"
|
|
||||||
:label="t('description')"
|
|
||||||
:placeholder="t('description')"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<div class="flex gap-4">
|
|
||||||
<UiSelectIcon
|
|
||||||
v-model="group.icon"
|
|
||||||
default-icon="mdi:folder-outline"
|
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<UiSelectColor v-model="group.color" />
|
<UiInput
|
||||||
</div>
|
v-model="group.description"
|
||||||
|
:check-input="check"
|
||||||
|
:label="t('description')"
|
||||||
|
:placeholder="t('description')"
|
||||||
|
/>
|
||||||
|
|
||||||
<div class="flex flex-wrap justify-end gap-4">
|
<div class="flex gap-4">
|
||||||
<UiButton
|
<UiSelectIcon
|
||||||
class="btn-error btn-outline flex-1"
|
v-model="group.icon"
|
||||||
@click="$emit('close')"
|
default-icon="mdi:folder-outline"
|
||||||
>
|
/>
|
||||||
{{ t('abort') }}
|
|
||||||
<Icon name="mdi:close" />
|
|
||||||
</UiButton>
|
|
||||||
|
|
||||||
<UiButton
|
<UiSelectColor v-model="group.color" />
|
||||||
class="btn-primary flex-1"
|
</div>
|
||||||
@click="$emit('submit')"
|
|
||||||
>
|
<div class="flex flex-wrap justify-end gap-4">
|
||||||
{{ mode === 'create' ? t('create') : t('save') }}
|
<UiButton
|
||||||
<Icon name="mdi:check" />
|
class="btn-error btn-outline flex-1"
|
||||||
</UiButton>
|
@click="$emit('close')"
|
||||||
</div>
|
>
|
||||||
</form>
|
{{ t('abort') }}
|
||||||
</UiCard>
|
<Icon name="mdi:close" />
|
||||||
|
</UiButton>
|
||||||
|
|
||||||
|
<UiButton
|
||||||
|
class="btn-primary flex-1"
|
||||||
|
@click="$emit('submit')"
|
||||||
|
>
|
||||||
|
{{ mode === 'create' ? t('create') : t('save') }}
|
||||||
|
<Icon name="mdi:check" />
|
||||||
|
</UiButton>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</UiCard>
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
|
|||||||
@ -1,112 +1,114 @@
|
|||||||
<template>
|
<template>
|
||||||
<UiCard
|
<div class="p-1">
|
||||||
body-class="rounded overflow-auto px-0 h-full"
|
<UiCard
|
||||||
@close="onClose"
|
body-class="rounded overflow-auto px-0 h-full"
|
||||||
>
|
@close="onClose"
|
||||||
<div class="">
|
>
|
||||||
<nav
|
<div class="">
|
||||||
aria-label="Tabs Password Item"
|
<nav
|
||||||
aria-orientation="horizontal"
|
aria-label="Tabs Password Item"
|
||||||
class="tabs tabs-bordered w-full transition-all duration-700 sticky top-0 z-10"
|
aria-orientation="horizontal"
|
||||||
role="tablist"
|
class="tabs tabs-bordered w-full transition-all duration-700 sticky top-0 z-10"
|
||||||
>
|
role="tablist"
|
||||||
<button
|
|
||||||
:id="id.details"
|
|
||||||
aria-controls="vaultDetailsId"
|
|
||||||
aria-selected="true"
|
|
||||||
class="tab active-tab:tab-active active w-full"
|
|
||||||
data-tab="#vaultDetailsId"
|
|
||||||
role="tab"
|
|
||||||
type="button"
|
|
||||||
>
|
>
|
||||||
<Icon
|
<button
|
||||||
name="material-symbols:key-outline"
|
:id="id.details"
|
||||||
class="me-2"
|
aria-controls="vaultDetailsId"
|
||||||
/>
|
aria-selected="true"
|
||||||
<span class="hidden sm:block">
|
class="tab active-tab:tab-active active w-full"
|
||||||
{{ t('tab.details') }}
|
data-tab="#vaultDetailsId"
|
||||||
</span>
|
role="tab"
|
||||||
</button>
|
type="button"
|
||||||
<button
|
>
|
||||||
:id="id.keyValue"
|
<Icon
|
||||||
aria-controls="tabs-basic-2"
|
name="material-symbols:key-outline"
|
||||||
aria-selected="false"
|
class="me-2"
|
||||||
class="tab active-tab:tab-active w-full"
|
/>
|
||||||
data-tab="#tabs-basic-2"
|
<span class="hidden sm:block">
|
||||||
role="tab"
|
{{ t('tab.details') }}
|
||||||
type="button"
|
</span>
|
||||||
>
|
</button>
|
||||||
<Icon
|
<button
|
||||||
name="fluent:group-list-20-filled"
|
:id="id.keyValue"
|
||||||
class="me-2"
|
aria-controls="tabs-basic-2"
|
||||||
/>
|
aria-selected="false"
|
||||||
<span class="hidden sm:block">
|
class="tab active-tab:tab-active w-full"
|
||||||
{{ t('tab.keyValue') }}
|
data-tab="#tabs-basic-2"
|
||||||
</span>
|
role="tab"
|
||||||
</button>
|
type="button"
|
||||||
<button
|
>
|
||||||
:id="id.history"
|
<Icon
|
||||||
aria-controls="tabs-basic-3"
|
name="fluent:group-list-20-filled"
|
||||||
aria-selected="false"
|
class="me-2"
|
||||||
class="tab active-tab:tab-active w-full"
|
/>
|
||||||
data-tab="#tabs-basic-3"
|
<span class="hidden sm:block">
|
||||||
role="tab"
|
{{ t('tab.keyValue') }}
|
||||||
type="button"
|
</span>
|
||||||
>
|
</button>
|
||||||
<Icon
|
<button
|
||||||
name="material-symbols:history"
|
:id="id.history"
|
||||||
class="me-2"
|
aria-controls="tabs-basic-3"
|
||||||
/>
|
aria-selected="false"
|
||||||
<span class="hidden sm:block">
|
class="tab active-tab:tab-active w-full"
|
||||||
{{ t('tab.history') }}
|
data-tab="#tabs-basic-3"
|
||||||
</span>
|
role="tab"
|
||||||
</button>
|
type="button"
|
||||||
</nav>
|
>
|
||||||
|
<Icon
|
||||||
|
name="material-symbols:history"
|
||||||
|
class="me-2"
|
||||||
|
/>
|
||||||
|
<span class="hidden sm:block">
|
||||||
|
{{ t('tab.history') }}
|
||||||
|
</span>
|
||||||
|
</button>
|
||||||
|
</nav>
|
||||||
|
|
||||||
<div class="h-full pb-8">
|
<div class="h-full pb-8">
|
||||||
<div
|
<div
|
||||||
id="vaultDetailsId"
|
id="vaultDetailsId"
|
||||||
role="tabpanel"
|
role="tabpanel"
|
||||||
class="h-full"
|
class="h-full"
|
||||||
:aria-labelledby="id.details"
|
:aria-labelledby="id.details"
|
||||||
>
|
>
|
||||||
<HaexPassItemDetails
|
<HaexPassItemDetails
|
||||||
v-if="details"
|
v-if="details"
|
||||||
v-model="details"
|
v-model="details"
|
||||||
with-copy-button
|
with-copy-button
|
||||||
:read_only
|
:read_only
|
||||||
:defaultIcon
|
:defaultIcon
|
||||||
v-model:prevent-close="preventClose"
|
v-model:prevent-close="preventClose"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div
|
<div
|
||||||
id="tabs-basic-2"
|
id="tabs-basic-2"
|
||||||
class="hidden"
|
class="hidden"
|
||||||
role="tabpanel"
|
role="tabpanel"
|
||||||
:aria-labelledby="id.keyValue"
|
:aria-labelledby="id.keyValue"
|
||||||
>
|
>
|
||||||
<HaexPassItemKeyValue
|
<HaexPassItemKeyValue
|
||||||
v-if="keyValues"
|
v-if="keyValues"
|
||||||
v-model="keyValues"
|
v-model="keyValues"
|
||||||
v-model:items-to-add="keyValuesAdd"
|
v-model:items-to-add="keyValuesAdd"
|
||||||
v-model:items-to-delete="keyValuesDelete"
|
v-model:items-to-delete="keyValuesDelete"
|
||||||
:read_only
|
:read_only
|
||||||
:item-id="details!.id"
|
:item-id="details!.id"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div
|
<div
|
||||||
id="tabs-basic-3"
|
id="tabs-basic-3"
|
||||||
class="hidden h-full"
|
class="hidden h-full"
|
||||||
role="tabpanel"
|
role="tabpanel"
|
||||||
:aria-labelledby="id.history"
|
:aria-labelledby="id.history"
|
||||||
>
|
>
|
||||||
<!-- <HaexPassItemHistory v-model="itemHistory" /> -->
|
<!-- <HaexPassItemHistory v-model="itemHistory" /> -->
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</UiCard>
|
||||||
</UiCard>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<div v-if="menuItems?.length">
|
<div v-if="menuItems?.length">
|
||||||
<ul
|
<ul
|
||||||
class="flex flex-col w-full h-full gap-y-2 *:first:rounded-t-md *:last:rounded-b-md"
|
class="flex flex-col w-full h-full gap-y-2 first:rounded-t-md last:rounded-b-md p-1"
|
||||||
ref="listRef"
|
ref="listRef"
|
||||||
>
|
>
|
||||||
<li
|
<li
|
||||||
|
|||||||
@ -1,13 +1,10 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div class="h-full text-base-content flex bg-base-200">
|
||||||
aaaa
|
<HaexExtensionCard
|
||||||
<div class="h-full text-base-content flex bg-base-200">
|
v-for="extension in extensionStore.availableExtensions"
|
||||||
<HaexExtensionCard
|
v-bind="extension"
|
||||||
v-for="extension in extensionStore.availableExtensions"
|
:key="extension.id"
|
||||||
v-bind="extension"
|
/>
|
||||||
:key="extension.id"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
{{ group }}
|
|
||||||
<HaexPassGroup
|
<HaexPassGroup
|
||||||
v-model="group"
|
v-model="group"
|
||||||
mode="edit"
|
mode="edit"
|
||||||
|
|||||||
@ -1,33 +1,32 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="relative h-full">
|
<div class="relative h-full">
|
||||||
<div class="h-full">
|
<div class="h-full">
|
||||||
<div class="h-full overflow-auto p-1 flex flex-col">
|
<div class="h-full overflow-auto flex flex-col">
|
||||||
<HaexPassGroupBreadcrumbs
|
<HaexPassGroupBreadcrumbs
|
||||||
:items="breadCrumbs"
|
:items="breadCrumbs"
|
||||||
|
class="px-2"
|
||||||
v-show="breadCrumbs.length"
|
v-show="breadCrumbs.length"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<HaexPassMobileMenu
|
<HaexPassMobileMenu
|
||||||
ref="listRef"
|
|
||||||
:menu-items="groupItems"
|
:menu-items="groupItems"
|
||||||
|
ref="listRef"
|
||||||
v-model:selected-items="selectedItems"
|
v-model:selected-items="selectedItems"
|
||||||
sel
|
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div
|
<div
|
||||||
class="fixed bottom-4 flex justify-between transition-all pointer-events-none right-0 sm:items-center items-end"
|
class="fixed bottom-4 flex justify-between transition-all pointer-events-none right-0 sm:items-center items-end px-8"
|
||||||
:class="[isVisible ? 'left-15 ' : 'left-0']"
|
:class="[isVisible ? 'left-15 ' : 'left-0']"
|
||||||
>
|
>
|
||||||
<div class="w-full pl-8"></div>
|
<div class="w-full"></div>
|
||||||
|
|
||||||
<UiButtonAction
|
<UiButtonAction
|
||||||
:menu
|
|
||||||
v-if="!inTrashGroup"
|
v-if="!inTrashGroup"
|
||||||
|
:menu
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<div
|
<div
|
||||||
class="flex flex-col sm:flex-row gap-4 w-full justify-end items-end pr-8"
|
class="flex flex-col sm:flex-row gap-4 w-full justify-end items-end"
|
||||||
>
|
>
|
||||||
<UiButton
|
<UiButton
|
||||||
v-show="selectedItems.size === 1"
|
v-show="selectedItems.size === 1"
|
||||||
|
|||||||
Reference in New Issue
Block a user