mirror of
https://github.com/MrUnknownDE/VRCX.git
synced 2026-04-26 10:13:48 +02:00
replace some el-button
This commit is contained in:
@@ -35,7 +35,7 @@
|
||||
@input="searchAvatarFavorites" />
|
||||
<DropdownMenu v-model:open="avatarToolbarMenuOpen">
|
||||
<DropdownMenuTrigger as-child>
|
||||
<el-button :icon="MoreFilled" size="small" circle />
|
||||
<Button class="rounded-full" size="icon-sm" variant="ghost"> <Ellipsis /> </Button>
|
||||
</DropdownMenuTrigger>
|
||||
<DropdownMenuContent class="favorites-dropdown">
|
||||
<li class="favorites-dropdown__control" @click.stop>
|
||||
@@ -195,16 +195,19 @@
|
||||
<div class="group-section__header">
|
||||
<span>{{ t('view.favorite.avatars.local_favorites') }}</span>
|
||||
<template v-if="!refreshingLocalFavorites">
|
||||
<el-button
|
||||
size="small"
|
||||
:icon="Refresh"
|
||||
circle
|
||||
@click.stop="refreshLocalAvatarFavorites" />
|
||||
<Button
|
||||
class="rounded-full"
|
||||
size="icon"
|
||||
variant="outline"
|
||||
@click.stop="refreshLocalAvatarFavorites"
|
||||
><RefreshCcw
|
||||
/></Button>
|
||||
</template>
|
||||
<el-button v-else size="small" text @click.stop="cancelLocalAvatarRefresh">
|
||||
<el-icon class="is-loading"><Loading /></el-icon>
|
||||
<Button size="sm" variant="ghost" v-else @click.stop="cancelLocalAvatarRefresh">
|
||||
<Loader />
|
||||
|
||||
{{ t('view.favorite.avatars.cancel_refresh') }}
|
||||
</el-button>
|
||||
</Button>
|
||||
</div>
|
||||
<div class="group-section__list">
|
||||
<template v-if="localAvatarFavoriteGroups.length">
|
||||
@@ -226,12 +229,13 @@
|
||||
:open="activeGroupMenu === localGroupMenuKey(group)"
|
||||
@update:open="handleGroupMenuVisible(localGroupMenuKey(group), $event)">
|
||||
<PopoverTrigger asChild>
|
||||
<el-button
|
||||
text
|
||||
size="small"
|
||||
:icon="MoreFilled"
|
||||
circle
|
||||
@click.stop></el-button>
|
||||
<Button
|
||||
class="rounded-full"
|
||||
size="icon-sm"
|
||||
variant="ghost"
|
||||
@click.stop
|
||||
><Ellipsis
|
||||
/></Button>
|
||||
</PopoverTrigger>
|
||||
<PopoverContent side="right" class="w-50 p-1 rounded-lg">
|
||||
<div class="favorites-group-menu">
|
||||
@@ -295,7 +299,9 @@
|
||||
:open="activeGroupMenu === historyGroupMenuKey"
|
||||
@update:open="handleGroupMenuVisible(historyGroupMenuKey, $event)">
|
||||
<PopoverTrigger asChild>
|
||||
<el-button text size="small" :icon="MoreFilled" circle @click.stop></el-button>
|
||||
<Button class="rounded-full" size="icon-sm" variant="ghost" @click.stop
|
||||
><Ellipsis
|
||||
/></Button>
|
||||
</PopoverTrigger>
|
||||
<PopoverContent side="right" class="w-45 p-1 rounded-lg">
|
||||
<div class="favorites-group-menu">
|
||||
@@ -359,25 +365,34 @@
|
||||
<div
|
||||
v-if="avatarEditMode && !isSearchActive && activeRemoteGroup"
|
||||
class="favorites-content__actions">
|
||||
<el-button size="small" @click="toggleSelectAllAvatars">
|
||||
<Button size="sm" variant="outline" @click="toggleSelectAllAvatars">
|
||||
{{
|
||||
isAllAvatarsSelected
|
||||
? t('view.favorite.deselect_all')
|
||||
: t('view.favorite.select_all')
|
||||
}}
|
||||
</el-button>
|
||||
<el-button size="small" :disabled="!hasAvatarSelection" @click="clearSelectedAvatars">
|
||||
</Button>
|
||||
<Button
|
||||
size="sm"
|
||||
variant="secondary"
|
||||
:disabled="!hasAvatarSelection"
|
||||
@click="clearSelectedAvatars">
|
||||
{{ t('view.favorite.clear') }}
|
||||
</el-button>
|
||||
<el-button size="small" :disabled="!hasAvatarSelection" @click="copySelectedAvatars">
|
||||
</Button>
|
||||
<Button
|
||||
size="sm"
|
||||
variant="outline"
|
||||
:disabled="!hasAvatarSelection"
|
||||
@click="copySelectedAvatars">
|
||||
{{ t('view.favorite.copy') }}
|
||||
</el-button>
|
||||
<el-button
|
||||
size="small"
|
||||
</Button>
|
||||
<Button
|
||||
size="sm"
|
||||
variant="outline"
|
||||
:disabled="!hasAvatarSelection"
|
||||
@click="showAvatarBulkUnfavoriteSelectionConfirm">
|
||||
{{ t('view.favorite.bulk_unfavorite') }}
|
||||
</el-button>
|
||||
</Button>
|
||||
</div>
|
||||
</div>
|
||||
<div ref="avatarFavoritesContainerRef" class="favorites-content__list">
|
||||
@@ -496,8 +511,10 @@
|
||||
|
||||
<script setup>
|
||||
import { computed, h, nextTick, onBeforeMount, onBeforeUnmount, onMounted, reactive, ref, watch } from 'vue';
|
||||
import { Loading, MoreFilled, Plus, Refresh } from '@element-plus/icons-vue';
|
||||
import { ElMessageBox, ElNotification, ElProgress } from 'element-plus';
|
||||
import { MoreFilled, Plus, Refresh } from '@element-plus/icons-vue';
|
||||
import { Ellipsis, RefreshCcw } from 'lucide-vue-next';
|
||||
import { Button } from '@/components/ui/button';
|
||||
import { storeToRefs } from 'pinia';
|
||||
import { toast } from 'vue-sonner';
|
||||
import { useI18n } from 'vue-i18n';
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
@input="searchFriendFavorites" />
|
||||
<DropdownMenu v-model:open="friendToolbarMenuOpen">
|
||||
<DropdownMenuTrigger as-child>
|
||||
<el-button :icon="MoreFilled" size="small" circle />
|
||||
<Button class="rounded-full" size="icon-sm" variant="ghost"><Ellipsis /></Button>
|
||||
</DropdownMenuTrigger>
|
||||
<DropdownMenuContent class="favorites-dropdown">
|
||||
<li class="favorites-dropdown__control" @click.stop>
|
||||
@@ -196,25 +196,34 @@
|
||||
</div>
|
||||
<div class="favorites-content__edit-actions">
|
||||
<div v-if="friendEditMode && !isSearchActive" class="favorites-content__actions">
|
||||
<el-button size="small" @click="toggleSelectAllFriends">
|
||||
<Button size="sm" variant="outline" @click="toggleSelectAllFriends">
|
||||
{{
|
||||
isAllFriendsSelected
|
||||
? t('view.favorite.deselect_all')
|
||||
: t('view.favorite.select_all')
|
||||
}}
|
||||
</el-button>
|
||||
<el-button size="small" :disabled="!hasFriendSelection" @click="clearSelectedFriends">
|
||||
</Button>
|
||||
<Button
|
||||
size="sm"
|
||||
variant="secondary"
|
||||
:disabled="!hasFriendSelection"
|
||||
@click="clearSelectedFriends">
|
||||
{{ t('view.favorite.clear') }}
|
||||
</el-button>
|
||||
<el-button size="small" :disabled="!hasFriendSelection" @click="copySelectedFriends">
|
||||
</Button>
|
||||
<Button
|
||||
size="sm"
|
||||
variant="outline"
|
||||
:disabled="!hasFriendSelection"
|
||||
@click="copySelectedFriends">
|
||||
{{ t('view.favorite.copy') }}
|
||||
</el-button>
|
||||
<el-button
|
||||
size="small"
|
||||
</Button>
|
||||
<Button
|
||||
size="sm"
|
||||
variant="outline"
|
||||
:disabled="!hasFriendSelection"
|
||||
@click="showFriendBulkUnfavoriteSelectionConfirm">
|
||||
{{ t('view.favorite.bulk_unfavorite') }}
|
||||
</el-button>
|
||||
</Button>
|
||||
</div>
|
||||
</div>
|
||||
<div ref="friendFavoritesContainerRef" class="favorites-content__list">
|
||||
@@ -287,7 +296,9 @@
|
||||
<script setup>
|
||||
import { computed, onBeforeMount, ref, watch } from 'vue';
|
||||
import { MoreFilled, Refresh } from '@element-plus/icons-vue';
|
||||
import { Button } from '@/components/ui/button';
|
||||
import { ElMessageBox } from 'element-plus';
|
||||
import { Ellipsis } from 'lucide-vue-next';
|
||||
import { storeToRefs } from 'pinia';
|
||||
import { toast } from 'vue-sonner';
|
||||
import { useI18n } from 'vue-i18n';
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
@input="searchWorldFavorites" />
|
||||
<DropdownMenu v-model:open="worldToolbarMenuOpen">
|
||||
<DropdownMenuTrigger as-child>
|
||||
<el-button :icon="MoreFilled" size="small" circle />
|
||||
<Button class="rounded-full" size="icon" variant="outline"><Ellipsis /></Button>
|
||||
</DropdownMenuTrigger>
|
||||
<DropdownMenuContent class="favorites-dropdown">
|
||||
<li class="favorites-dropdown__control" @click.stop>
|
||||
@@ -194,16 +194,18 @@
|
||||
<div class="group-section">
|
||||
<div class="group-section__header">
|
||||
<span>{{ t('view.favorite.worlds.local_favorites') }}</span>
|
||||
<el-button
|
||||
<Button
|
||||
class="rounded-full"
|
||||
size="icon-sm"
|
||||
variant="outline"
|
||||
v-if="!refreshingLocalFavorites"
|
||||
size="small"
|
||||
@click.stop="refreshLocalWorldFavorites"
|
||||
:icon="Refresh"
|
||||
circle />
|
||||
<el-button v-else size="small" text @click.stop="cancelLocalWorldRefresh">
|
||||
<el-icon class="is-loading"><Loading /></el-icon>
|
||||
><RefreshCcw
|
||||
/></Button>
|
||||
<Button size="icon-sm" variant="ghost" v-else @click.stop="cancelLocalWorldRefresh">
|
||||
<RefreshCcw />
|
||||
{{ t('view.favorite.worlds.cancel_refresh') }}
|
||||
</el-button>
|
||||
</Button>
|
||||
</div>
|
||||
<div class="group-section__list">
|
||||
<template v-if="localWorldFavoriteGroups.length">
|
||||
@@ -226,12 +228,13 @@
|
||||
handleGroupMenuVisible(localGroupMenuKey(group), $event)
|
||||
">
|
||||
<PopoverTrigger asChild>
|
||||
<el-button
|
||||
text
|
||||
size="small"
|
||||
:icon="MoreFilled"
|
||||
circle
|
||||
@click.stop></el-button>
|
||||
<Button
|
||||
class="rounded-full"
|
||||
size="icon-sm"
|
||||
variant="ghost"
|
||||
@click.stop
|
||||
><Ellipsis
|
||||
/></Button>
|
||||
</PopoverTrigger>
|
||||
<PopoverContent side="right" class="w-50 p-1 rounded-lg">
|
||||
<div class="favorites-group-menu">
|
||||
@@ -302,25 +305,34 @@
|
||||
</div>
|
||||
<div class="favorites-content__edit-actions">
|
||||
<div v-if="worldEditMode && !isSearchActive" class="favorites-content__actions">
|
||||
<el-button size="small" @click="toggleSelectAllWorlds">
|
||||
<Button size="sm" variant="outline" @click="toggleSelectAllWorlds">
|
||||
{{
|
||||
isAllWorldsSelected
|
||||
? t('view.favorite.deselect_all')
|
||||
: t('view.favorite.select_all')
|
||||
}}
|
||||
</el-button>
|
||||
<el-button size="small" :disabled="!hasWorldSelection" @click="clearSelectedWorlds">
|
||||
</Button>
|
||||
<Button
|
||||
size="sm"
|
||||
variant="secondary"
|
||||
:disabled="!hasWorldSelection"
|
||||
@click="clearSelectedWorlds">
|
||||
{{ t('view.favorite.clear') }}
|
||||
</el-button>
|
||||
<el-button size="small" :disabled="!hasWorldSelection" @click="copySelectedWorlds">
|
||||
</Button>
|
||||
<Button
|
||||
size="sm"
|
||||
variant="outline"
|
||||
:disabled="!hasWorldSelection"
|
||||
@click="copySelectedWorlds">
|
||||
{{ t('view.favorite.copy') }}
|
||||
</el-button>
|
||||
<el-button
|
||||
size="small"
|
||||
</Button>
|
||||
<Button
|
||||
size="sm"
|
||||
variant="outline"
|
||||
:disabled="!hasWorldSelection"
|
||||
@click="showWorldBulkUnfavoriteSelectionConfirm">
|
||||
{{ t('view.favorite.bulk_unfavorite') }}
|
||||
</el-button>
|
||||
</Button>
|
||||
</div>
|
||||
</div>
|
||||
<div ref="worldFavoritesContainerRef" class="favorites-content__list">
|
||||
@@ -413,7 +425,9 @@
|
||||
|
||||
<script setup>
|
||||
import { computed, nextTick, onBeforeMount, onBeforeUnmount, onMounted, ref, watch } from 'vue';
|
||||
import { Loading, MoreFilled, Plus, Refresh } from '@element-plus/icons-vue';
|
||||
import { MoreFilled, Plus, Refresh } from '@element-plus/icons-vue';
|
||||
import { Ellipsis, RefreshCcw } from 'lucide-vue-next';
|
||||
import { Button } from '@/components/ui/button';
|
||||
import { ElMessageBox } from 'element-plus';
|
||||
import { storeToRefs } from 'pinia';
|
||||
import { toast } from 'vue-sonner';
|
||||
|
||||
@@ -68,13 +68,14 @@
|
||||
<div class="favorites-search-card__action-group">
|
||||
<div class="favorites-search-card__action" v-if="canSelectAvatar">
|
||||
<TooltipWrapper side="top" :content="t('view.favorite.select_avatar_tooltip')">
|
||||
<el-button
|
||||
<Button
|
||||
size="icon-sm"
|
||||
variant="outline"
|
||||
:disabled="currentUser.currentAvatar === favorite.id"
|
||||
size="small"
|
||||
:icon="Check"
|
||||
circle
|
||||
class="favorites-search-card__action-btn"
|
||||
@click.stop="selectAvatarWithConfirmation(favorite.id)" />
|
||||
class="favorites-search-card__action-btn rounded-full text-xs h-6 w-6"
|
||||
@click.stop="selectAvatarWithConfirmation(favorite.id)"
|
||||
><i class="ri-check-line"></i
|
||||
></Button>
|
||||
</TooltipWrapper>
|
||||
</div>
|
||||
<div class="favorites-search-card__action">
|
||||
@@ -82,22 +83,22 @@
|
||||
v-if="showDangerUnfavorite"
|
||||
side="bottom"
|
||||
:content="t('view.favorite.unfavorite_tooltip')">
|
||||
<el-button
|
||||
size="small"
|
||||
:icon="Close"
|
||||
circle
|
||||
class="favorites-search-card__action-btn"
|
||||
type="danger"
|
||||
@click.stop="handlePrimaryDeleteAction" />
|
||||
<Button
|
||||
size="icon-sm"
|
||||
variant="destructive"
|
||||
class="favorites-search-card__action-btn rounded-full text-xs h-6 w-6"
|
||||
@click.stop="handlePrimaryDeleteAction"
|
||||
><i class="ri-delete-bin-line"></i
|
||||
></Button>
|
||||
</TooltipWrapper>
|
||||
<TooltipWrapper v-else side="bottom" :content="t('view.favorite.edit_favorite_tooltip')">
|
||||
<el-button
|
||||
type="default"
|
||||
:icon="Star"
|
||||
size="small"
|
||||
circle
|
||||
class="favorites-search-card__action-btn"
|
||||
@click.stop="showFavoriteDialog('avatar', favorite.id)" />
|
||||
<Button
|
||||
size="icon-sm"
|
||||
variant="outline"
|
||||
class="favorites-search-card__action-btn rounded-full text-xs h-6 w-6"
|
||||
@click.stop="showFavoriteDialog('avatar', favorite.id)"
|
||||
><i class="ri-star-line"></i
|
||||
></Button>
|
||||
</TooltipWrapper>
|
||||
</div>
|
||||
</div>
|
||||
@@ -113,9 +114,13 @@
|
||||
</div>
|
||||
<div class="favorites-search-card__actions">
|
||||
<div class="favorites-search-card__action">
|
||||
<el-button circle type="default" size="small" @click.stop="handlePrimaryDeleteAction">
|
||||
<Button
|
||||
class="rounded-full text-xs h-6 w-6"
|
||||
size="icon-sm"
|
||||
variant="outline"
|
||||
@click.stop="handlePrimaryDeleteAction">
|
||||
<i class="ri-delete-bin-line"></i>
|
||||
</el-button>
|
||||
</Button>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
@@ -123,7 +128,7 @@
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { Check, Close, Star } from '@element-plus/icons-vue';
|
||||
import { Button } from '@/components/ui/button';
|
||||
import { Checkbox } from '@/components/ui/checkbox';
|
||||
import { computed } from 'vue';
|
||||
import { storeToRefs } from 'pinia';
|
||||
|
||||
@@ -15,24 +15,33 @@
|
||||
<div class="favorites-search-card__action-group">
|
||||
<div class="favorites-search-card__action">
|
||||
<TooltipWrapper side="top" :content="t('view.favorite.select_avatar_tooltip')">
|
||||
<el-button
|
||||
<Button
|
||||
size="icon-sm"
|
||||
variant="outline"
|
||||
:disabled="currentUser.currentAvatar === favorite.id"
|
||||
size="small"
|
||||
:icon="Check"
|
||||
circle
|
||||
class="favorites-search-card__action-btn"
|
||||
@click.stop="selectAvatarWithConfirmation(favorite.id)" />
|
||||
class="favorites-search-card__action-btn rounded-full"
|
||||
@click.stop="selectAvatarWithConfirmation(favorite.id)">
|
||||
<Check
|
||||
/></Button>
|
||||
</TooltipWrapper>
|
||||
</div>
|
||||
<div class="favorites-search-card__action">
|
||||
<TooltipWrapper side="bottom" :content="t('view.favorite.favorite_tooltip')">
|
||||
<el-button
|
||||
type="default"
|
||||
:icon="favoriteExists ? Star : StarFilled"
|
||||
size="small"
|
||||
circle
|
||||
class="favorites-search-card__action-btn"
|
||||
@click.stop="showFavoriteDialog('avatar', favorite.id)" />
|
||||
<Button
|
||||
v-if="favoriteExists"
|
||||
size="icon-sm"
|
||||
variant="outline"
|
||||
class="favorites-search-card__action-btn rounded-full"
|
||||
@click.stop="showFavoriteDialog('avatar', favorite.id)">
|
||||
<Star />
|
||||
</Button>
|
||||
<Button
|
||||
else
|
||||
size="icon-sm"
|
||||
class="favorites-search-card__action-btn rounded-full"
|
||||
@click.stop="showFavoriteDialog('avatar', favorite.id)">
|
||||
<Star />
|
||||
</Button>
|
||||
</TooltipWrapper>
|
||||
</div>
|
||||
</div>
|
||||
@@ -41,7 +50,8 @@
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { Check, Star, StarFilled } from '@element-plus/icons-vue';
|
||||
import { Check, Star } from 'lucide-vue-next';
|
||||
import { Button } from '@/components/ui/button';
|
||||
import { computed } from 'vue';
|
||||
import { storeToRefs } from 'pinia';
|
||||
import { useI18n } from 'vue-i18n';
|
||||
|
||||
@@ -34,14 +34,13 @@
|
||||
</div>
|
||||
<div class="favorites-search-card__action">
|
||||
<TooltipWrapper side="left" :content="t('view.favorite.unfavorite_tooltip')">
|
||||
<el-button
|
||||
size="small"
|
||||
circle
|
||||
class="favorites-search-card__action-btn"
|
||||
type="default"
|
||||
<Button
|
||||
size="icon-sm"
|
||||
variant="outline"
|
||||
class="favorites-search-card__action-btn rounded-full text-xs h-6 w-6"
|
||||
@click.stop="handleDeleteFavorite">
|
||||
<i class="ri-delete-bin-line"></i>
|
||||
</el-button>
|
||||
</Button>
|
||||
</TooltipWrapper>
|
||||
</div>
|
||||
</div>
|
||||
@@ -49,12 +48,13 @@
|
||||
<template v-else>
|
||||
<div class="favorites-search-card__action">
|
||||
<TooltipWrapper side="right" :content="t('view.favorite.edit_favorite_tooltip')">
|
||||
<el-button
|
||||
size="small"
|
||||
:icon="Star"
|
||||
circle
|
||||
class="favorites-search-card__action-btn"
|
||||
@click.stop="showFavoriteDialog('friend', favorite.id)" />
|
||||
<Button
|
||||
size="icon-sm"
|
||||
variant="outline"
|
||||
class="favorites-search-card__action-btn rounded-full text-xs h-6 w-6"
|
||||
@click.stop="showFavoriteDialog('friend', favorite.id)"
|
||||
><i class="ri-star-line"></i
|
||||
></Button>
|
||||
</TooltipWrapper>
|
||||
</div>
|
||||
</template>
|
||||
@@ -69,9 +69,13 @@
|
||||
</div>
|
||||
<div class="favorites-search-card__actions">
|
||||
<div class="favorites-search-card__action">
|
||||
<el-button circle type="default" size="small" @click.stop="handleDeleteFavorite">
|
||||
<Button
|
||||
class="rounded-full text-xs h-6 w-6"
|
||||
size="icon-sm"
|
||||
variant="outline"
|
||||
@click.stop="handleDeleteFavorite">
|
||||
<i class="ri-delete-bin-line"></i>
|
||||
</el-button>
|
||||
</Button>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
@@ -79,8 +83,8 @@
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { Button } from '@/components/ui/button';
|
||||
import { Checkbox } from '@/components/ui/checkbox';
|
||||
import { Star } from '@element-plus/icons-vue';
|
||||
import { computed } from 'vue';
|
||||
import { storeToRefs } from 'pinia';
|
||||
import { useI18n } from 'vue-i18n';
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
<template>
|
||||
<DropdownMenu v-model:open="moveDropdownOpen" style="margin-left: 5px">
|
||||
<DropdownMenuTrigger as-child>
|
||||
<el-button type="default" :icon="Back" size="small" circle></el-button>
|
||||
<Button class="rounded-full w-6 h-6 text-xs" size="icon-sm" variant="ghost"
|
||||
><i class="ri-arrow-left-line"></i
|
||||
></Button>
|
||||
</DropdownMenuTrigger>
|
||||
<DropdownMenuContent class="favorites-dropdown">
|
||||
<span style="font-weight: bold; display: block; text-align: center">
|
||||
@@ -23,7 +25,7 @@
|
||||
|
||||
<script setup>
|
||||
import { computed, ref } from 'vue';
|
||||
import { Back } from '@element-plus/icons-vue';
|
||||
import { Button } from '@/components/ui/button';
|
||||
import { toast } from 'vue-sonner';
|
||||
import { useI18n } from 'vue-i18n';
|
||||
|
||||
|
||||
@@ -50,14 +50,13 @@
|
||||
type="world" />
|
||||
</div>
|
||||
<div class="favorites-search-card__action">
|
||||
<el-button
|
||||
size="small"
|
||||
circle
|
||||
class="favorites-search-card__action-btn"
|
||||
type="default"
|
||||
<Button
|
||||
size="icon-sm"
|
||||
variant="outline"
|
||||
class="favorites-search-card__action-btn rounded-full text-xs h-6 w-6"
|
||||
@click.stop="handleDeleteFavorite">
|
||||
<i class="ri-delete-bin-line"></i>
|
||||
</el-button>
|
||||
</Button>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
@@ -65,12 +64,13 @@
|
||||
<div class="favorites-search-card__action-group">
|
||||
<div class="favorites-search-card__action">
|
||||
<TooltipWrapper side="top" :content="inviteOrLaunchText">
|
||||
<el-button
|
||||
size="small"
|
||||
:icon="Message"
|
||||
class="favorites-search-card__action-btn"
|
||||
<Button
|
||||
size="icon-sm"
|
||||
variant="outline"
|
||||
class="favorites-search-card__action-btn rounded-full text-xs h-6 w-6"
|
||||
@click.stop="newInstanceSelfInvite(favorite.id)"
|
||||
circle />
|
||||
><i class="ri-mail-line"></i
|
||||
></Button>
|
||||
</TooltipWrapper>
|
||||
</div>
|
||||
<div class="favorites-search-card__action">
|
||||
@@ -78,22 +78,22 @@
|
||||
v-if="showDangerUnfavorite"
|
||||
side="top"
|
||||
:content="t('view.favorite.unfavorite_tooltip')">
|
||||
<el-button
|
||||
size="small"
|
||||
:icon="Close"
|
||||
circle
|
||||
class="favorites-search-card__action-btn"
|
||||
type="danger"
|
||||
@click.stop="handleDeleteFavorite" />
|
||||
<Button
|
||||
size="icon-sm"
|
||||
variant="destructive"
|
||||
class="favorites-search-card__action-btn rounded-full text-xs h-6 w-6"
|
||||
@click.stop="handleDeleteFavorite"
|
||||
><i class="ri-star-line"></i
|
||||
></Button>
|
||||
</TooltipWrapper>
|
||||
<TooltipWrapper v-else side="top" :content="t('view.favorite.edit_favorite_tooltip')">
|
||||
<el-button
|
||||
type="default"
|
||||
:icon="Star"
|
||||
size="small"
|
||||
circle
|
||||
class="favorites-search-card__action-btn"
|
||||
@click.stop="showFavoriteDialog('world', favorite.id)" />
|
||||
<Button
|
||||
size="icon-sm"
|
||||
variant="outline"
|
||||
class="favorites-search-card__action-btn rounded-full text-xs h-6 w-6"
|
||||
@click.stop="showFavoriteDialog('world', favorite.id)"
|
||||
><i class="ri-delete-bin-line"></i
|
||||
></Button>
|
||||
</TooltipWrapper>
|
||||
</div>
|
||||
</div>
|
||||
@@ -113,9 +113,13 @@
|
||||
</div>
|
||||
<div class="favorites-search-card__actions">
|
||||
<div class="favorites-search-card__action">
|
||||
<el-button circle type="default" size="small" @click.stop="handleDeleteFavorite">
|
||||
<Button
|
||||
class="rounded-full text-xs h-6 w-6"
|
||||
size="icon-sm"
|
||||
variant="outline"
|
||||
@click.stop="handleDeleteFavorite">
|
||||
<i class="ri-delete-bin-line"></i>
|
||||
</el-button>
|
||||
</Button>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
@@ -123,7 +127,7 @@
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { Close, Message, Star } from '@element-plus/icons-vue';
|
||||
import { Button } from '@/components/ui/button';
|
||||
import { Checkbox } from '@/components/ui/checkbox';
|
||||
import { computed } from 'vue';
|
||||
import { storeToRefs } from 'pinia';
|
||||
|
||||
@@ -47,12 +47,13 @@
|
||||
<div class="favorites-search-card__action-group">
|
||||
<div class="favorites-search-card__action">
|
||||
<TooltipWrapper side="top" :content="inviteOrLaunchText">
|
||||
<el-button
|
||||
size="small"
|
||||
:icon="Message"
|
||||
class="favorites-search-card__action-btn"
|
||||
<Button
|
||||
size="icon-sm"
|
||||
variant="outline"
|
||||
class="favorites-search-card__action-btn rounded-full text-xs h-6 w-6"
|
||||
@click.stop="newInstanceSelfInvite(favorite.id)"
|
||||
circle />
|
||||
><i class="ri-mail-line"></i
|
||||
></Button>
|
||||
</TooltipWrapper>
|
||||
</div>
|
||||
<div class="favorites-search-card__action">
|
||||
@@ -60,22 +61,22 @@
|
||||
v-if="showDangerUnfavorite"
|
||||
side="top"
|
||||
:content="t('view.favorite.unfavorite_tooltip')">
|
||||
<el-button
|
||||
size="small"
|
||||
:icon="Close"
|
||||
circle
|
||||
class="favorites-search-card__action-btn"
|
||||
type="danger"
|
||||
@click.stop="handleDeleteFavorite" />
|
||||
<Button
|
||||
size="icon-sm"
|
||||
variant="destructive"
|
||||
class="favorites-search-card__action-btn rounded-full text-xs h-6 w-6"
|
||||
@click.stop="handleDeleteFavorite"
|
||||
><i class="ri-delete-bin-line"></i
|
||||
></Button>
|
||||
</TooltipWrapper>
|
||||
<TooltipWrapper v-else side="top" :content="t('view.favorite.edit_favorite_tooltip')">
|
||||
<el-button
|
||||
type="default"
|
||||
:icon="Star"
|
||||
size="small"
|
||||
circle
|
||||
class="favorites-search-card__action-btn"
|
||||
@click.stop="showFavoriteDialog('world', favorite.id)" />
|
||||
<Button
|
||||
size="icon-sm"
|
||||
variant="outline"
|
||||
class="favorites-search-card__action-btn rounded-full text-xs h-6 w-6"
|
||||
@click.stop="showFavoriteDialog('world', favorite.id)"
|
||||
><i class="ri-star-line"></i
|
||||
></Button>
|
||||
</TooltipWrapper>
|
||||
</div>
|
||||
</div>
|
||||
@@ -91,9 +92,13 @@
|
||||
</div>
|
||||
<div class="favorites-search-card__actions">
|
||||
<div class="favorites-search-card__action">
|
||||
<el-button circle type="default" size="small" @click.stop="handleDeleteFavorite">
|
||||
<Button
|
||||
class="rounded-full text-xs h-6 w-6"
|
||||
size="icon-sm"
|
||||
variant="outline"
|
||||
@click.stop="handleDeleteFavorite">
|
||||
<i class="ri-delete-bin-line"></i>
|
||||
</el-button>
|
||||
</Button>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
@@ -101,7 +106,7 @@
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { Close, Message, Star } from '@element-plus/icons-vue';
|
||||
import { Button } from '@/components/ui/button';
|
||||
import { computed } from 'vue';
|
||||
import { storeToRefs } from 'pinia';
|
||||
import { useI18n } from 'vue-i18n';
|
||||
|
||||
@@ -12,12 +12,12 @@
|
||||
{{ avatarImportDialog.progressTotal }}
|
||||
<el-icon style="margin: 0 5px"><Loading /></el-icon>
|
||||
</div>
|
||||
<el-button v-if="avatarImportDialog.loading" size="small" @click="cancelAvatarImport">
|
||||
<Button v-if="avatarImportDialog.loading" size="sm" variant="secondary" @click="cancelAvatarImport">
|
||||
{{ t('dialog.avatar_import.cancel') }}
|
||||
</el-button>
|
||||
<el-button v-else size="small" :disabled="!avatarImportDialog.input" @click="processAvatarImportList">
|
||||
</Button>
|
||||
<Button size="sm" v-else :disabled="!avatarImportDialog.input" @click="processAvatarImportList">
|
||||
{{ t('dialog.avatar_import.process_list') }}
|
||||
</el-button>
|
||||
</Button>
|
||||
</div>
|
||||
</div>
|
||||
<el-input
|
||||
@@ -75,13 +75,11 @@
|
||||
</span>
|
||||
</div>
|
||||
<div>
|
||||
<el-button size="small" @click="clearAvatarImportTable">
|
||||
<Button size="sm" variant="secondary" class="mr-2" @click="clearAvatarImportTable">
|
||||
{{ t('dialog.avatar_import.clear_table') }}
|
||||
</el-button>
|
||||
<el-button
|
||||
size="small"
|
||||
type="primary"
|
||||
style="margin: 5px"
|
||||
</Button>
|
||||
<Button
|
||||
size="sm"
|
||||
:disabled="
|
||||
avatarImportTable.data.length === 0 ||
|
||||
(!avatarImportDialog.avatarImportFavoriteGroup &&
|
||||
@@ -89,7 +87,7 @@
|
||||
"
|
||||
@click="importAvatarImportTable">
|
||||
{{ t('dialog.avatar_import.import') }}
|
||||
</el-button>
|
||||
</Button>
|
||||
</div>
|
||||
</div>
|
||||
<span v-if="avatarImportDialog.importProgress" style="margin: 10px">
|
||||
@@ -99,9 +97,9 @@
|
||||
</span>
|
||||
<br />
|
||||
<template v-if="avatarImportDialog.errors">
|
||||
<el-button size="small" @click="avatarImportDialog.errors = ''">
|
||||
<Button size="sm" variant="secondary" @click="avatarImportDialog.errors = ''">
|
||||
{{ t('dialog.avatar_import.clear_errors') }}
|
||||
</el-button>
|
||||
</Button>
|
||||
<h2 style="font-weight: bold; margin: 5px 0">
|
||||
{{ t('dialog.avatar_import.errors') }}
|
||||
</h2>
|
||||
@@ -154,7 +152,7 @@
|
||||
</el-table-column>
|
||||
<el-table-column :label="t('table.import.action')" width="90" align="right">
|
||||
<template #default="{ row }">
|
||||
<el-button text :icon="Close" size="small" @click="deleteItemAvatarImport(row)"> </el-button>
|
||||
<Button size="icon-sm" variant="ghost" @click="deleteItemAvatarImport(row)"><Trash2 /> </Button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</DataTable>
|
||||
@@ -164,7 +162,9 @@
|
||||
<script setup>
|
||||
import { Select, SelectContent, SelectGroup, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select';
|
||||
import { computed, ref, watch } from 'vue';
|
||||
import { Close, Loading } from '@element-plus/icons-vue';
|
||||
import { Button } from '@/components/ui/button';
|
||||
import { Loading } from '@element-plus/icons-vue';
|
||||
import { Trash2 } from 'lucide-vue-next';
|
||||
import { storeToRefs } from 'pinia';
|
||||
import { toast } from 'vue-sonner';
|
||||
import { useI18n } from 'vue-i18n';
|
||||
|
||||
@@ -12,12 +12,12 @@
|
||||
{{ friendImportDialog.progressTotal }}
|
||||
<el-icon style="margin: 0 5px"><Loading /></el-icon>
|
||||
</div>
|
||||
<el-button v-if="friendImportDialog.loading" size="small" @click="cancelFriendImport">
|
||||
<Button v-if="friendImportDialog.loading" size="sm" variant="secondary" @click="cancelFriendImport">
|
||||
{{ t('dialog.friend_import.cancel') }}
|
||||
</el-button>
|
||||
<el-button v-else size="small" :disabled="!friendImportDialog.input" @click="processFriendImportList">
|
||||
</Button>
|
||||
<Button size="sm" v-else :disabled="!friendImportDialog.input" @click="processFriendImportList">
|
||||
{{ t('dialog.friend_import.process_list') }}
|
||||
</el-button>
|
||||
</Button>
|
||||
</div>
|
||||
</div>
|
||||
<el-input
|
||||
@@ -56,17 +56,20 @@
|
||||
</span>
|
||||
</div>
|
||||
<div>
|
||||
<el-button size="small" :disabled="friendImportTable.data.length === 0" @click="clearFriendImportTable">
|
||||
<Button
|
||||
size="sm"
|
||||
class="mr-2"
|
||||
variant="secondary"
|
||||
:disabled="friendImportTable.data.length === 0"
|
||||
@click="clearFriendImportTable">
|
||||
{{ t('dialog.friend_import.clear_table') }}
|
||||
</el-button>
|
||||
<el-button
|
||||
size="small"
|
||||
type="primary"
|
||||
style="margin: 5px"
|
||||
</Button>
|
||||
<Button
|
||||
size="sm"
|
||||
:disabled="friendImportTable.data.length === 0 || !friendImportDialog.friendImportFavoriteGroup"
|
||||
@click="importFriendImportTable">
|
||||
{{ t('dialog.friend_import.import') }}
|
||||
</el-button>
|
||||
</Button>
|
||||
</div>
|
||||
</div>
|
||||
<span v-if="friendImportDialog.importProgress" style="margin: 10px">
|
||||
@@ -77,9 +80,9 @@
|
||||
</span>
|
||||
<br />
|
||||
<template v-if="friendImportDialog.errors">
|
||||
<el-button size="small" @click="friendImportDialog.errors = ''">
|
||||
<Button size="sm" variant="secondary" @click="friendImportDialog.errors = ''">
|
||||
{{ t('dialog.friend_import.clear_errors') }}
|
||||
</el-button>
|
||||
</Button>
|
||||
<h2 style="font-weight: bold; margin: 5px 0">{{ t('dialog.friend_import.errors') }}</h2>
|
||||
<pre style="white-space: pre-wrap; font-size: 12px" v-text="friendImportDialog.errors"></pre>
|
||||
</template>
|
||||
@@ -107,7 +110,7 @@
|
||||
</el-table-column>
|
||||
<el-table-column :label="t('table.import.action')" width="90" align="right">
|
||||
<template #default="{ row }">
|
||||
<el-button text :icon="Close" size="small" @click="deleteItemFriendImport(row)"> </el-button>
|
||||
<Button size="icon-sm" variant="ghost" @click="deleteItemFriendImport(row)"><Trash2 /></Button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</DataTable>
|
||||
@@ -117,7 +120,9 @@
|
||||
<script setup>
|
||||
import { Select, SelectContent, SelectGroup, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select';
|
||||
import { computed, ref, watch } from 'vue';
|
||||
import { Close, Loading } from '@element-plus/icons-vue';
|
||||
import { Button } from '@/components/ui/button';
|
||||
import { Loading } from '@element-plus/icons-vue';
|
||||
import { Trash2 } from 'lucide-vue-next';
|
||||
import { storeToRefs } from 'pinia';
|
||||
import { toast } from 'vue-sonner';
|
||||
import { useI18n } from 'vue-i18n';
|
||||
|
||||
@@ -13,12 +13,12 @@
|
||||
{{ worldImportDialog.progress }} / {{ worldImportDialog.progressTotal }}
|
||||
<el-icon style="margin: 0 5px"><Loading /></el-icon>
|
||||
</div>
|
||||
<el-button v-if="worldImportDialog.loading" size="small" @click="cancelWorldImport">
|
||||
<Button v-if="worldImportDialog.loading" size="sm" variant="outline" @click="cancelWorldImport">
|
||||
{{ t('dialog.world_import.cancel') }}
|
||||
</el-button>
|
||||
<el-button v-else size="small" :disabled="!worldImportDialog.input" @click="processWorldImportList">
|
||||
</Button>
|
||||
<Button size="sm" v-else :disabled="!worldImportDialog.input" @click="processWorldImportList">
|
||||
{{ t('dialog.world_import.process_list') }}
|
||||
</el-button>
|
||||
</Button>
|
||||
</div>
|
||||
</div>
|
||||
<el-input
|
||||
@@ -75,13 +75,16 @@
|
||||
</span>
|
||||
</div>
|
||||
<div>
|
||||
<el-button size="small" :disabled="worldImportTable.data.length === 0" @click="clearWorldImportTable">
|
||||
<Button
|
||||
size="sm"
|
||||
variant="secondary"
|
||||
class="mr-2"
|
||||
:disabled="worldImportTable.data.length === 0"
|
||||
@click="clearWorldImportTable">
|
||||
{{ t('dialog.world_import.clear_table') }}
|
||||
</el-button>
|
||||
<el-button
|
||||
size="small"
|
||||
type="primary"
|
||||
style="margin: 5px"
|
||||
</Button>
|
||||
<Button
|
||||
size="sm"
|
||||
:disabled="
|
||||
worldImportTable.data.length === 0 ||
|
||||
(!worldImportDialog.worldImportFavoriteGroup &&
|
||||
@@ -89,7 +92,7 @@
|
||||
"
|
||||
@click="importWorldImportTable">
|
||||
{{ t('dialog.world_import.import') }}
|
||||
</el-button>
|
||||
</Button>
|
||||
</div>
|
||||
</div>
|
||||
<span v-if="worldImportDialog.importProgress" style="margin: 10px">
|
||||
@@ -99,9 +102,9 @@
|
||||
</span>
|
||||
<br />
|
||||
<template v-if="worldImportDialog.errors">
|
||||
<el-button size="small" @click="worldImportDialog.errors = ''">
|
||||
<Button size="sm" variant="secondary" @click="worldImportDialog.errors = ''">
|
||||
{{ t('dialog.world_import.clear_errors') }}
|
||||
</el-button>
|
||||
</Button>
|
||||
<h2 style="font-weight: bold; margin: 5px 0">
|
||||
{{ t('dialog.world_import.errors') }}
|
||||
</h2>
|
||||
@@ -149,7 +152,9 @@
|
||||
</el-table-column>
|
||||
<el-table-column :label="t('table.import.action')" width="90" align="right">
|
||||
<template #default="{ row }">
|
||||
<el-button text :icon="Close" size="small" @click="deleteItemWorldImport(row)"></el-button>
|
||||
<Button size="icon-sm" class="w-6 h-6" variant="ghost" @click="deleteItemWorldImport(row)"
|
||||
><Trash2
|
||||
/></Button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</DataTable>
|
||||
@@ -159,7 +164,9 @@
|
||||
<script setup>
|
||||
import { Select, SelectContent, SelectGroup, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select';
|
||||
import { computed, ref, watch } from 'vue';
|
||||
import { Close, Loading } from '@element-plus/icons-vue';
|
||||
import { Button } from '@/components/ui/button';
|
||||
import { Loading } from '@element-plus/icons-vue';
|
||||
import { Trash2 } from 'lucide-vue-next';
|
||||
import { storeToRefs } from 'pinia';
|
||||
import { toast } from 'vue-sonner';
|
||||
import { useI18n } from 'vue-i18n';
|
||||
|
||||
@@ -29,9 +29,9 @@
|
||||
</div>
|
||||
<div class="flex items-center">
|
||||
<div v-if="friendsListBulkUnfriendMode" class="inline-block mr-10">
|
||||
<el-button @click="showBulkUnfriendSelectionConfirm">
|
||||
<Button variant="outline" @click="showBulkUnfriendSelectionConfirm">
|
||||
{{ t('view.friend_list.bulk_unfriend_selection') }}
|
||||
</el-button>
|
||||
</Button>
|
||||
<!-- el-button(size="small" @click="showBulkUnfriendAllConfirm" style="margin-right:5px") Bulk Unfriend All-->
|
||||
</div>
|
||||
<div class="flex items-center mr-3">
|
||||
@@ -41,11 +41,13 @@
|
||||
@update:modelValue="toggleFriendsListBulkUnfriendMode" />
|
||||
</div>
|
||||
<div class="flex items-center">
|
||||
<el-button @click="openChartsTab">
|
||||
<Button variant="outline" @click="openChartsTab">
|
||||
{{ t('view.friend_list.load_mutual_friends') }}
|
||||
</el-button>
|
||||
</Button>
|
||||
|
||||
<el-button @click="friendsListLoadUsers">{{ t('view.friend_list.load') }}</el-button>
|
||||
<Button variant="outline" @click="friendsListLoadUsers">{{
|
||||
t('view.friend_list.load')
|
||||
}}</Button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -56,11 +58,9 @@
|
||||
@row-click="selectFriendsListRow">
|
||||
<el-table-column v-if="friendsListBulkUnfriendMode" width="55">
|
||||
<template #default="{ row }">
|
||||
<div class="flex items-center justify-center" @click.stop>
|
||||
<Checkbox
|
||||
:model-value="selectedFriends.has(row.id)"
|
||||
@update:modelValue="toggleFriendSelection(row.id)" />
|
||||
</div>
|
||||
<Checkbox
|
||||
:model-value="selectedFriends.has(row.id)"
|
||||
@update:modelValue="toggleFriendSelection(row.id)" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column width="20"></el-table-column>
|
||||
@@ -249,9 +249,9 @@
|
||||
<span>{{ friendsListLoadingCurrent }} / {{ friendsListLoadingTotal }}</span>
|
||||
</div>
|
||||
<template #footer>
|
||||
<el-button @click="cancelFriendsListLoad">
|
||||
<Button variant="outline" @click="cancelFriendsListLoad">
|
||||
{{ t('view.friend_list.load_cancel') }}
|
||||
</el-button>
|
||||
</Button>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</div>
|
||||
@@ -260,6 +260,7 @@
|
||||
|
||||
<script setup>
|
||||
import { computed, nextTick, reactive, ref, watch } from 'vue';
|
||||
import { Button } from '@/components/ui/button';
|
||||
import { ElMessageBox } from 'element-plus';
|
||||
import { storeToRefs } from 'pinia';
|
||||
import { toast } from 'vue-sonner';
|
||||
|
||||
@@ -29,23 +29,20 @@
|
||||
</el-table-column>
|
||||
<el-table-column :label="t('table.profile.invite_messages.action')" width="70" align="right">
|
||||
<template #default="scope">
|
||||
<el-button
|
||||
text
|
||||
:icon="Edit"
|
||||
size="small"
|
||||
@click.stop="showEditAndSendInviteResponseDialog(scope.row)">
|
||||
</el-button>
|
||||
<Button size="icon-sm" variant="ghost" @click.stop="showEditAndSendInviteResponseDialog(scope.row)">
|
||||
<SquarePen
|
||||
/></Button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</DataTable>
|
||||
|
||||
<template #footer>
|
||||
<el-button @click="cancelSendInviteRequestResponse">
|
||||
<Button variant="secondary" class="mr-2" @click="cancelSendInviteRequestResponse">
|
||||
{{ t('dialog.invite_request_response_message.cancel') }}
|
||||
</el-button>
|
||||
<el-button @click="refreshInviteMessageTableData('requestResponse')">
|
||||
</Button>
|
||||
<Button @click="refreshInviteMessageTableData('requestResponse')">
|
||||
{{ t('dialog.invite_request_response_message.refresh') }}
|
||||
</el-button>
|
||||
</Button>
|
||||
</template>
|
||||
<EditAndSendInviteResponseDialog
|
||||
:edit-and-send-invite-response-dialog="editAndSendInviteResponseDialog"
|
||||
@@ -61,7 +58,8 @@
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { Edit } from '@element-plus/icons-vue';
|
||||
import { Button } from '@/components/ui/button';
|
||||
import { SquarePen } from 'lucide-vue-next';
|
||||
import { ref } from 'vue';
|
||||
import { storeToRefs } from 'pinia';
|
||||
import { useI18n } from 'vue-i18n';
|
||||
|
||||
@@ -11,10 +11,10 @@
|
||||
</div>
|
||||
|
||||
<template #footer>
|
||||
<el-button @click="cancelInviteResponseConfirm">{{ t('dialog.invite_response_message.cancel') }}</el-button>
|
||||
<el-button type="primary" @click="sendInviteResponseConfirm">{{
|
||||
t('dialog.invite_response_message.confirm')
|
||||
}}</el-button>
|
||||
<Button variant="secondary" class="mr-2" @click="cancelInviteResponseConfirm">{{
|
||||
t('dialog.invite_response_message.cancel')
|
||||
}}</Button>
|
||||
<Button @click="sendInviteResponseConfirm">{{ t('dialog.invite_response_message.confirm') }}</Button>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
@@ -28,20 +28,20 @@
|
||||
</el-table-column>
|
||||
<el-table-column :label="t('table.profile.invite_messages.action')" width="70" align="right">
|
||||
<template #default="scope">
|
||||
<el-button
|
||||
text
|
||||
:icon="Edit"
|
||||
size="small"
|
||||
@click.stop="showEditAndSendInviteResponseDialog(scope.row)" />
|
||||
<Button size="icon-sm" variant="ghost" @click.stop="showEditAndSendInviteResponseDialog(scope.row)">
|
||||
<SquarePen
|
||||
/></Button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</DataTable>
|
||||
|
||||
<template #footer>
|
||||
<el-button @click="cancelSendInviteResponse">{{ t('dialog.invite_response_message.cancel') }}</el-button>
|
||||
<el-button @click="refreshInviteMessageTableData('response')">{{
|
||||
<Button variant="secondary" class="mr-2" @click="cancelSendInviteResponse">{{
|
||||
t('dialog.invite_response_message.cancel')
|
||||
}}</Button>
|
||||
<Button @click="refreshInviteMessageTableData('response')">{{
|
||||
t('dialog.invite_response_message.refresh')
|
||||
}}</el-button>
|
||||
}}</Button>
|
||||
</template>
|
||||
<EditAndSendInviteResponseDialog
|
||||
:edit-and-send-invite-response-dialog="editAndSendInviteResponseDialog"
|
||||
@@ -57,7 +57,8 @@
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { Edit } from '@element-plus/icons-vue';
|
||||
import { Button } from '@/components/ui/button';
|
||||
import { SquarePen } from 'lucide-vue-next';
|
||||
import { ref } from 'vue';
|
||||
import { storeToRefs } from 'pinia';
|
||||
import { useI18n } from 'vue-i18n';
|
||||
|
||||
@@ -13,18 +13,19 @@
|
||||
size="small"
|
||||
style="margin-top: 5px"
|
||||
@change="saveAvatarProviderList">
|
||||
<el-button :icon="Delete" @click="removeAvatarProvider(provider)"></el-button>
|
||||
<Button variant="outline" size="icon" @click="removeAvatarProvider(provider)"><Trash2 /></Button>
|
||||
</el-input>
|
||||
|
||||
<el-button size="small" style="margin-top: 5px" @click="avatarRemoteDatabaseProviderList.push('')">
|
||||
<Button size="sm" style="margin-top: 5px" @click="avatarRemoteDatabaseProviderList.push('')">
|
||||
{{ t('dialog.avatar_database_provider.add_provider') }}
|
||||
</el-button>
|
||||
</Button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { Delete } from '@element-plus/icons-vue';
|
||||
import { Button } from '@/components/ui/button';
|
||||
import { Trash2 } from 'lucide-vue-next';
|
||||
import { storeToRefs } from 'pinia';
|
||||
import { useI18n } from 'vue-i18n';
|
||||
|
||||
|
||||
@@ -32,43 +32,46 @@
|
||||
<el-table-column :label="t('dialog.registry_backup.action')" width="90" align="right">
|
||||
<template #default="scope">
|
||||
<TooltipWrapper side="top" :content="t('dialog.registry_backup.restore')">
|
||||
<el-button
|
||||
text
|
||||
:icon="Upload"
|
||||
size="small"
|
||||
<Button
|
||||
size="sm"
|
||||
variant="ghost"
|
||||
class="button-pd-0"
|
||||
@click="restoreVrcRegistryBackup(scope.row)"></el-button>
|
||||
@click="restoreVrcRegistryBackup(scope.row)">
|
||||
<RotateCcw
|
||||
/></Button>
|
||||
</TooltipWrapper>
|
||||
<TooltipWrapper side="top" :content="t('dialog.registry_backup.save_to_file')">
|
||||
<el-button
|
||||
text
|
||||
:icon="Download"
|
||||
size="small"
|
||||
<Button
|
||||
size="icon-sm"
|
||||
variant="ghost"
|
||||
class="button-pd-0"
|
||||
@click="saveVrcRegistryBackupToFile(scope.row)"></el-button>
|
||||
@click="saveVrcRegistryBackupToFile(scope.row)">
|
||||
<Download
|
||||
/></Button>
|
||||
</TooltipWrapper>
|
||||
<TooltipWrapper side="top" :content="t('dialog.registry_backup.delete')">
|
||||
<el-button
|
||||
text
|
||||
:icon="Delete"
|
||||
size="small"
|
||||
<Button
|
||||
size="icon-sm"
|
||||
variant="ghost"
|
||||
class="button-pd-0"
|
||||
@click="deleteVrcRegistryBackup(scope.row)"></el-button>
|
||||
@click="deleteVrcRegistryBackup(scope.row)"
|
||||
><Trash2
|
||||
/></Button>
|
||||
</TooltipWrapper>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</DataTable>
|
||||
<div style="display: flex; align-items: center; justify-content: space-between; margin-top: 10px">
|
||||
<el-button type="danger" size="small" @click="deleteVrcRegistry">{{
|
||||
<Button size="sm" variant="destructive" @click="deleteVrcRegistry">{{
|
||||
t('dialog.registry_backup.reset')
|
||||
}}</el-button>
|
||||
}}</Button>
|
||||
<div>
|
||||
<el-button size="small" @click="promptVrcRegistryBackupName">{{
|
||||
<Button size="sm" variant="outline" @click="promptVrcRegistryBackupName">{{
|
||||
t('dialog.registry_backup.backup')
|
||||
}}</el-button>
|
||||
<el-button size="small" @click="restoreVrcRegistryFromFile">{{
|
||||
}}</Button>
|
||||
<Button size="sm" variant="outline" @click="restoreVrcRegistryFromFile">{{
|
||||
t('dialog.registry_backup.restore_from_file')
|
||||
}}</el-button>
|
||||
}}</Button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -76,8 +79,9 @@
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { Delete, Download, Upload } from '@element-plus/icons-vue';
|
||||
import { Download, RotateCcw, Trash2 } from 'lucide-vue-next';
|
||||
import { ref, watch } from 'vue';
|
||||
import { Button } from '@/components/ui/button';
|
||||
import { ElMessageBox } from 'element-plus';
|
||||
import { storeToRefs } from 'pinia';
|
||||
import { toast } from 'vue-sonner';
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
<template>
|
||||
<div class="gallery-page x-container">
|
||||
<div class="gallery-page__header">
|
||||
<el-button text :icon="ArrowLeft" class="gallery-page__back" @click="goBack">
|
||||
<Button variant="ghost" class="gallery-page__back" @click="goBack">
|
||||
{{ t('nav_tooltip.tools') }}
|
||||
</el-button>
|
||||
</Button>
|
||||
<span class="header">{{ t('dialog.gallery_icons.header') }}</span>
|
||||
</div>
|
||||
<el-progress
|
||||
@@ -70,19 +70,20 @@
|
||||
loading="lazy" />
|
||||
</div>
|
||||
<div class="float-right" style="margin-top: 5px">
|
||||
<el-button
|
||||
type="default"
|
||||
@click="showFullscreenImageDialog(image.versions[image.versions.length - 1].file.url)"
|
||||
size="small"
|
||||
:icon="Picture"
|
||||
circle></el-button>
|
||||
<el-button
|
||||
type="default"
|
||||
@click="deleteGalleryImage(image.id)"
|
||||
size="small"
|
||||
:icon="Delete"
|
||||
circle
|
||||
style="margin-left: 5px"></el-button>
|
||||
<Button
|
||||
class="rounded-full mr-2"
|
||||
size="icon-sm"
|
||||
variant="outline"
|
||||
@click="showFullscreenImageDialog(image.versions[image.versions.length - 1].file.url)">
|
||||
<Maximize2 />
|
||||
</Button>
|
||||
<Button
|
||||
class="rounded-full"
|
||||
size="icon-sm"
|
||||
variant="outline"
|
||||
@click="deleteGalleryImage(image.id)">
|
||||
<Trash2 />
|
||||
</Button>
|
||||
</div>
|
||||
</template>
|
||||
</div>
|
||||
@@ -140,19 +141,20 @@
|
||||
loading="lazy" />
|
||||
</div>
|
||||
<div class="float-right" style="margin-top: 5px">
|
||||
<el-button
|
||||
type="default"
|
||||
@click="showFullscreenImageDialog(image.versions[image.versions.length - 1].file.url)"
|
||||
size="small"
|
||||
:icon="Picture"
|
||||
circle></el-button>
|
||||
<el-button
|
||||
type="default"
|
||||
<Button
|
||||
class="rounded-full mr-2"
|
||||
size="icon-sm"
|
||||
variant="outline"
|
||||
@click="showFullscreenImageDialog(image.versions[image.versions.length - 1].file.url)">
|
||||
<Maximize2 />
|
||||
</Button>
|
||||
<Button
|
||||
class="rounded-full"
|
||||
size="icon-sm"
|
||||
variant="outline"
|
||||
@click="deleteVRCPlusIcon(image.id)"
|
||||
size="small"
|
||||
:icon="Delete"
|
||||
circle
|
||||
style="margin-left: 5px"></el-button></div
|
||||
><Trash2
|
||||
/></Button></div
|
||||
></template>
|
||||
</div>
|
||||
</el-tab-pane>
|
||||
@@ -217,14 +219,13 @@
|
||||
<span>{{ t('dialog.gallery_icons.emoji_animation_type') }}</span>
|
||||
</label>
|
||||
<template v-if="emojiAnimType">
|
||||
<el-button
|
||||
type="default"
|
||||
size="small"
|
||||
:icon="Link"
|
||||
style="margin-right: 10px"
|
||||
<Button
|
||||
size="sm"
|
||||
variant="outline"
|
||||
class="mr-3"
|
||||
@click="openExternalLink('https://vrcemoji.com')">
|
||||
{{ t('dialog.gallery_icons.create_animated_emoji') }}
|
||||
</el-button>
|
||||
</Button>
|
||||
<span style="margin-right: 10px">{{ t('dialog.gallery_icons.emoji_animation_fps') }}</span>
|
||||
<NumberField
|
||||
v-model="emojiAnimFps"
|
||||
@@ -295,24 +296,25 @@
|
||||
<br />
|
||||
</div>
|
||||
<div class="float-right" style="margin-top: 5px">
|
||||
<el-button
|
||||
type="default"
|
||||
<Button
|
||||
class="rounded-full mr-2"
|
||||
size="icon-sm"
|
||||
variant="outline"
|
||||
@click="
|
||||
showFullscreenImageDialog(
|
||||
image.versions[image.versions.length - 1].file.url,
|
||||
getEmojiFileName(image)
|
||||
)
|
||||
"
|
||||
size="small"
|
||||
:icon="Picture"
|
||||
circle></el-button>
|
||||
<el-button
|
||||
type="default"
|
||||
@click="deleteEmoji(image.id)"
|
||||
size="small"
|
||||
:icon="Delete"
|
||||
circle
|
||||
style="margin-left: 5px"></el-button></div
|
||||
><Maximize2
|
||||
/></Button>
|
||||
<Button
|
||||
class="rounded-full mr-2"
|
||||
size="icon-sm"
|
||||
variant="outline"
|
||||
@click="deleteEmoji(image.id)">
|
||||
<Trash2
|
||||
/></Button></div
|
||||
></template>
|
||||
</div>
|
||||
</el-tab-pane>
|
||||
@@ -367,19 +369,20 @@
|
||||
loading="lazy" />
|
||||
</div>
|
||||
<div class="float-right" style="margin-top: 5px">
|
||||
<el-button
|
||||
type="default"
|
||||
<Button
|
||||
class="rounded-full mr-2"
|
||||
size="icon-sm"
|
||||
variant="outline"
|
||||
@click="showFullscreenImageDialog(image.versions[image.versions.length - 1].file.url)"
|
||||
size="small"
|
||||
:icon="Picture"
|
||||
circle></el-button>
|
||||
<el-button
|
||||
type="default"
|
||||
><Maximize2
|
||||
/></Button>
|
||||
<Button
|
||||
class="rounded-full"
|
||||
size="icon-sm"
|
||||
variant="outline"
|
||||
@click="deleteSticker(image.id)"
|
||||
size="small"
|
||||
:icon="Delete"
|
||||
circle
|
||||
style="margin-left: 5px"></el-button></div
|
||||
><Trash2
|
||||
/></Button></div
|
||||
></template>
|
||||
</div>
|
||||
</el-tab-pane>
|
||||
@@ -463,19 +466,16 @@
|
||||
<span v-else style="display: block"> </span>
|
||||
</div>
|
||||
<div class="float-right">
|
||||
<el-button
|
||||
type="default"
|
||||
@click="showFullscreenImageDialog(image.files.image, getPrintFileName(image))"
|
||||
size="small"
|
||||
:icon="Picture"
|
||||
circle></el-button>
|
||||
<el-button
|
||||
type="default"
|
||||
@click="deletePrint(image.id)"
|
||||
size="small"
|
||||
:icon="Delete"
|
||||
circle
|
||||
style="margin-left: 5px"></el-button>
|
||||
<Button
|
||||
class="rounded-full mr-2"
|
||||
size="icon-sm"
|
||||
variant="outline"
|
||||
@click="showFullscreenImageDialog(image.files.image, getPrintFileName(image))">
|
||||
<Maximize2
|
||||
/></Button>
|
||||
<Button class="rounded-full" size="icon-sm" variant="outline" @click="deletePrint(image.id)">
|
||||
<Trash2
|
||||
/></Button>
|
||||
</div>
|
||||
</div>
|
||||
</el-tab-pane>
|
||||
@@ -531,15 +531,13 @@
|
||||
<span v-else-if="item.itemType === 'emoji'">{{ t('dialog.gallery_icons.emoji') }}</span>
|
||||
<span v-else v-text="item.itemTypeLabel"></span>
|
||||
</div>
|
||||
<el-button
|
||||
<Button
|
||||
size="sm"
|
||||
v-if="item.itemType === 'bundle'"
|
||||
type="default"
|
||||
@click="consumeInventoryBundle(item.id)"
|
||||
size="small"
|
||||
:icon="Plus"
|
||||
class="float-right">
|
||||
{{ t('dialog.gallery_icons.consume_bundle') }}
|
||||
</el-button>
|
||||
</Button>
|
||||
</div>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
@@ -547,7 +545,6 @@
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { ArrowLeft, Close, Delete, Link, Picture, Plus, Present, Refresh, Upload } from '@element-plus/icons-vue';
|
||||
import {
|
||||
NumberField,
|
||||
NumberFieldContent,
|
||||
@@ -555,7 +552,9 @@
|
||||
NumberFieldIncrement,
|
||||
NumberFieldInput
|
||||
} from '@/components/ui/number-field';
|
||||
import { Close, Present, Refresh, Upload } from '@element-plus/icons-vue';
|
||||
import { computed, onBeforeUnmount, onMounted, ref } from 'vue';
|
||||
import { Maximize2, Trash2 } from 'lucide-vue-next';
|
||||
import { Button } from '@/components/ui/button';
|
||||
import { ButtonGroup } from '@/components/ui/button-group';
|
||||
import { Checkbox } from '@/components/ui/checkbox';
|
||||
|
||||
Reference in New Issue
Block a user