mirror of
https://github.com/MrUnknownDE/VRCX.git
synced 2026-05-05 06:16:05 +02:00
Unleash the PUG linter
This commit is contained in:
+702
-259
File diff suppressed because it is too large
Load Diff
+165
-97
@@ -1,121 +1,189 @@
|
||||
mixin feedTab()
|
||||
.x-container(v-show="$refs.menu && $refs.menu.activeIndex === 'feed'")
|
||||
data-tables(v-bind="feedTable" v-loading="feedTable.loading")
|
||||
mixin feedTab
|
||||
.x-container(v-show='$refs.menu && $refs.menu.activeIndex === \'feed\'')
|
||||
data-tables(v-bind='feedTable' v-loading='feedTable.loading')
|
||||
template(#tool)
|
||||
div(style="margin:0 0 10px;display:flex;align-items:center")
|
||||
div(style="flex:none;margin-right:10px;display:flex;align-items:center;")
|
||||
el-tooltip(placement="bottom" :content="$t('view.feed.favorites_only_tooltip')" :disabled="hideTooltips")
|
||||
el-switch(v-model="feedTable.vip" @change="feedTableLookup" active-color="#13ce66")
|
||||
el-select(v-model="feedTable.filter" @change="feedTableLookup" multiple clearable style="flex:1;height:40px;" :placeholder="$t('view.feed.filter_placeholder')")
|
||||
el-option(v-for="type in ['GPS', 'Online', 'Offline', 'Status', 'Avatar', 'Bio']" :key="type" :label="$t('view.feed.filters.' + type)" :value="type")
|
||||
el-input(v-model="feedTable.search" :placeholder="$t('view.feed.search_placeholder')" @keyup.native.13="feedTableLookup" @change="feedTableLookup" clearable style="flex:none;width:150px;margin:0 10px")
|
||||
el-table-column(type="expand" width="20")
|
||||
template(#default="scope")
|
||||
div(style="position:relative;font-size:14px")
|
||||
template(v-if="scope.row.type === 'GPS'")
|
||||
location(v-if="scope.row.previousLocation" :location="scope.row.previousLocation")
|
||||
el-tag(type="info" effect="plain" size="mini" style="margin-left:5px") {{ timeToText(scope.row.time) }}
|
||||
div(style='margin: 0 0 10px; display: flex; align-items: center')
|
||||
div(style='flex: none; margin-right: 10px; display: flex; align-items: center')
|
||||
el-tooltip(
|
||||
placement='bottom'
|
||||
:content='$t("view.feed.favorites_only_tooltip")'
|
||||
:disabled='hideTooltips')
|
||||
el-switch(v-model='feedTable.vip' @change='feedTableLookup' active-color='#13ce66')
|
||||
el-select(
|
||||
v-model='feedTable.filter'
|
||||
@change='feedTableLookup'
|
||||
multiple
|
||||
clearable
|
||||
style='flex: 1; height: 40px'
|
||||
:placeholder='$t("view.feed.filter_placeholder")')
|
||||
el-option(
|
||||
v-for='type in ["GPS", "Online", "Offline", "Status", "Avatar", "Bio"]'
|
||||
:key='type'
|
||||
:label='$t("view.feed.filters." + type)'
|
||||
:value='type')
|
||||
el-input(
|
||||
v-model='feedTable.search'
|
||||
:placeholder='$t("view.feed.search_placeholder")'
|
||||
@keyup.native.13='feedTableLookup'
|
||||
@change='feedTableLookup'
|
||||
clearable
|
||||
style='flex: none; width: 150px; margin: 0 10px')
|
||||
el-table-column(type='expand' width='20')
|
||||
template(#default='scope')
|
||||
div(style='position: relative; font-size: 14px')
|
||||
template(v-if='scope.row.type === "GPS"')
|
||||
location(v-if='scope.row.previousLocation' :location='scope.row.previousLocation')
|
||||
el-tag(type='info' effect='plain' size='mini' style='margin-left: 5px') {{ timeToText(scope.row.time) }}
|
||||
br
|
||||
span(style="margin-right:5px")
|
||||
span(style='margin-right: 5px')
|
||||
i.el-icon-right
|
||||
location(v-if="scope.row.location" :location="scope.row.location" :hint="scope.row.worldName" :grouphint="scope.row.groupName")
|
||||
template(v-else-if="scope.row.type === 'Offline'")
|
||||
template(v-if="scope.row.location")
|
||||
location(:location="scope.row.location" :hint="scope.row.worldName" :grouphint="scope.row.groupName")
|
||||
el-tag(type="info" effect="plain" size="mini" style="margin-left:5px") {{ timeToText(scope.row.time) }}
|
||||
template(v-else-if="scope.row.type === 'Online'")
|
||||
location(v-if="scope.row.location" :location="scope.row.location" :hint="scope.row.worldName" :grouphint="scope.row.groupName")
|
||||
template(v-else-if="scope.row.type === 'Avatar'")
|
||||
div(style="display:flex;align-items:center")
|
||||
el-popover(placement="right" width="500px" trigger="click")
|
||||
div(slot="reference" style="display:inline-block;vertical-align:top;width:160px")
|
||||
template(v-if="scope.row.previousCurrentAvatarThumbnailImageUrl")
|
||||
img.x-link(v-lazy="scope.row.previousCurrentAvatarThumbnailImageUrl" style="flex:none;width:160px;height:120px;border-radius:4px")
|
||||
location(
|
||||
v-if='scope.row.location'
|
||||
:location='scope.row.location'
|
||||
:hint='scope.row.worldName'
|
||||
:grouphint='scope.row.groupName')
|
||||
template(v-else-if='scope.row.type === "Offline"')
|
||||
template(v-if='scope.row.location')
|
||||
location(
|
||||
:location='scope.row.location'
|
||||
:hint='scope.row.worldName'
|
||||
:grouphint='scope.row.groupName')
|
||||
el-tag(type='info' effect='plain' size='mini' style='margin-left: 5px') {{ timeToText(scope.row.time) }}
|
||||
template(v-else-if='scope.row.type === "Online"')
|
||||
location(
|
||||
v-if='scope.row.location'
|
||||
:location='scope.row.location'
|
||||
:hint='scope.row.worldName'
|
||||
:grouphint='scope.row.groupName')
|
||||
template(v-else-if='scope.row.type === "Avatar"')
|
||||
div(style='display: flex; align-items: center')
|
||||
el-popover(placement='right' width='500px' trigger='click')
|
||||
div(slot='reference' style='display: inline-block; vertical-align: top; width: 160px')
|
||||
template(v-if='scope.row.previousCurrentAvatarThumbnailImageUrl')
|
||||
img.x-link(
|
||||
v-lazy='scope.row.previousCurrentAvatarThumbnailImageUrl'
|
||||
style='flex: none; width: 160px; height: 120px; border-radius: 4px')
|
||||
br
|
||||
avatar-info(:imageurl="scope.row.previousCurrentAvatarThumbnailImageUrl" :userid="scope.row.userId" :hintownerid="scope.row.previousOwnerId" :hintavatarname="scope.row.previousAvatarName" :avatartags="scope.row.previousCurrentAvatarTags")
|
||||
img.x-link(v-lazy="scope.row.previousCurrentAvatarImageUrl" style="width:500px;height:375px" @click="showFullscreenImageDialog(scope.row.previousCurrentAvatarImageUrl)")
|
||||
span(style="position:relative;margin:0 10px")
|
||||
avatar-info(
|
||||
:imageurl='scope.row.previousCurrentAvatarThumbnailImageUrl'
|
||||
:userid='scope.row.userId'
|
||||
:hintownerid='scope.row.previousOwnerId'
|
||||
:hintavatarname='scope.row.previousAvatarName'
|
||||
:avatartags='scope.row.previousCurrentAvatarTags')
|
||||
img.x-link(
|
||||
v-lazy='scope.row.previousCurrentAvatarImageUrl'
|
||||
style='width: 500px; height: 375px'
|
||||
@click='showFullscreenImageDialog(scope.row.previousCurrentAvatarImageUrl)')
|
||||
span(style='position: relative; margin: 0 10px')
|
||||
i.el-icon-right
|
||||
el-popover(placement="right" width="500px" trigger="click")
|
||||
div(slot="reference" style="display:inline-block;vertical-align:top;width:160px")
|
||||
template(v-if="scope.row.currentAvatarThumbnailImageUrl")
|
||||
img.x-link(v-lazy="scope.row.currentAvatarThumbnailImageUrl" style="flex:none;width:160px;height:120px;border-radius:4px")
|
||||
el-popover(placement='right' width='500px' trigger='click')
|
||||
div(slot='reference' style='display: inline-block; vertical-align: top; width: 160px')
|
||||
template(v-if='scope.row.currentAvatarThumbnailImageUrl')
|
||||
img.x-link(
|
||||
v-lazy='scope.row.currentAvatarThumbnailImageUrl'
|
||||
style='flex: none; width: 160px; height: 120px; border-radius: 4px')
|
||||
br
|
||||
avatar-info(:imageurl="scope.row.currentAvatarThumbnailImageUrl" :userid="scope.row.userId" :hintownerid="scope.row.ownerId" :hintavatarname="scope.row.avatarName" :avatartags="scope.row.currentAvatarTags")
|
||||
img.x-link(v-lazy="scope.row.currentAvatarImageUrl" style="width:500px;height:375px" @click="showFullscreenImageDialog(scope.row.currentAvatarImageUrl)")
|
||||
template(v-else-if="scope.row.type === 'Status'")
|
||||
el-tooltip(placement="top")
|
||||
avatar-info(
|
||||
:imageurl='scope.row.currentAvatarThumbnailImageUrl'
|
||||
:userid='scope.row.userId'
|
||||
:hintownerid='scope.row.ownerId'
|
||||
:hintavatarname='scope.row.avatarName'
|
||||
:avatartags='scope.row.currentAvatarTags')
|
||||
img.x-link(
|
||||
v-lazy='scope.row.currentAvatarImageUrl'
|
||||
style='width: 500px; height: 375px'
|
||||
@click='showFullscreenImageDialog(scope.row.currentAvatarImageUrl)')
|
||||
template(v-else-if='scope.row.type === "Status"')
|
||||
el-tooltip(placement='top')
|
||||
template(#content)
|
||||
span(v-if="scope.row.previousStatus === 'active'") {{ $t('dialog.user.status.active') }}
|
||||
span(v-else-if="scope.row.previousStatus === 'join me'") {{ $t('dialog.user.status.join_me') }}
|
||||
span(v-else-if="scope.row.previousStatus === 'ask me'") {{ $t('dialog.user.status.ask_me') }}
|
||||
span(v-else-if="scope.row.previousStatus === 'busy'") {{ $t('dialog.user.status.busy') }}
|
||||
span(v-if='scope.row.previousStatus === "active"') {{ $t('dialog.user.status.active') }}
|
||||
span(v-else-if='scope.row.previousStatus === "join me"') {{ $t('dialog.user.status.join_me') }}
|
||||
span(v-else-if='scope.row.previousStatus === "ask me"') {{ $t('dialog.user.status.ask_me') }}
|
||||
span(v-else-if='scope.row.previousStatus === "busy"') {{ $t('dialog.user.status.busy') }}
|
||||
span(v-else) {{ $t('dialog.user.status.offline') }}
|
||||
i.x-user-status(:class="statusClass(scope.row.previousStatus)")
|
||||
span(v-text="scope.row.previousStatusDescription" style="margin-left:5px")
|
||||
i.x-user-status(:class='statusClass(scope.row.previousStatus)')
|
||||
span(v-text='scope.row.previousStatusDescription' style='margin-left: 5px')
|
||||
br
|
||||
span
|
||||
i.el-icon-right
|
||||
el-tooltip(placement="top")
|
||||
el-tooltip(placement='top')
|
||||
template(#content)
|
||||
span(v-if="scope.row.status === 'active'") {{ $t('dialog.user.status.active') }}
|
||||
span(v-else-if="scope.row.status === 'join me'") {{ $t('dialog.user.status.join_me') }}
|
||||
span(v-else-if="scope.row.status === 'ask me'") {{ $t('dialog.user.status.ask_me') }}
|
||||
span(v-else-if="scope.row.status === 'busy'") {{ $t('dialog.user.status.busy') }}
|
||||
span(v-if='scope.row.status === "active"') {{ $t('dialog.user.status.active') }}
|
||||
span(v-else-if='scope.row.status === "join me"') {{ $t('dialog.user.status.join_me') }}
|
||||
span(v-else-if='scope.row.status === "ask me"') {{ $t('dialog.user.status.ask_me') }}
|
||||
span(v-else-if='scope.row.status === "busy"') {{ $t('dialog.user.status.busy') }}
|
||||
span(v-else) {{ $t('dialog.user.status.offline') }}
|
||||
i.x-user-status(:class="statusClass(scope.row.status)" style="margin:0 5px")
|
||||
span(v-text="scope.row.statusDescription")
|
||||
template(v-else-if="scope.row.type === 'Bio'")
|
||||
pre(v-html="formatDifference(scope.row.previousBio, scope.row.bio)" style="font-family:inherit;font-size:12px;white-space:pre-wrap;line-height:25px;line-height: 22px;")
|
||||
el-table-column(:label="$t('table.feed.date')" prop="created_at" sortable="custom" width="120")
|
||||
template(#default="scope")
|
||||
el-tooltip(placement="right")
|
||||
i.x-user-status(:class='statusClass(scope.row.status)' style='margin: 0 5px')
|
||||
span(v-text='scope.row.statusDescription')
|
||||
template(v-else-if='scope.row.type === "Bio"')
|
||||
pre(
|
||||
v-html='formatDifference(scope.row.previousBio, scope.row.bio)'
|
||||
style='font-family: inherit; font-size: 12px; white-space: pre-wrap; line-height: 25px; line-height: 22px')
|
||||
el-table-column(:label='$t("table.feed.date")' prop='created_at' sortable='custom' width='120')
|
||||
template(#default='scope')
|
||||
el-tooltip(placement='right')
|
||||
template(#content)
|
||||
span {{ scope.row.created_at | formatDate('long') }}
|
||||
span {{ scope.row.created_at | formatDate('short') }}
|
||||
el-table-column(:label="$t('table.feed.type')" prop="type" width="80")
|
||||
template(#default="scope")
|
||||
span.x-link(v-text="$t('view.feed.filters.' + scope.row.type)")
|
||||
el-table-column(:label="$t('table.feed.user')" prop="displayName" width="180")
|
||||
template(#default="scope")
|
||||
span.x-link(v-text="scope.row.displayName" @click="showUserDialog(scope.row.userId)" style="padding-right:10px")
|
||||
el-table-column(:label="$t('table.feed.detail')")
|
||||
template(#default="scope")
|
||||
template(v-if="scope.row.type === 'GPS'")
|
||||
location(v-if="scope.row.location" :location="scope.row.location" :hint="scope.row.worldName" :grouphint="scope.row.groupName")
|
||||
template(v-else-if="scope.row.type === 'Offline' || scope.row.type === 'Online'")
|
||||
location(v-if="scope.row.location" :location="scope.row.location" :hint="scope.row.worldName" :grouphint="scope.row.groupName")
|
||||
template(v-else-if="scope.row.type === 'Status'")
|
||||
template(v-if="scope.row.statusDescription === scope.row.previousStatusDescription")
|
||||
el-tooltip(placement="top")
|
||||
el-table-column(:label='$t("table.feed.type")' prop='type' width='80')
|
||||
template(#default='scope')
|
||||
span.x-link(v-text='$t("view.feed.filters." + scope.row.type)')
|
||||
el-table-column(:label='$t("table.feed.user")' prop='displayName' width='180')
|
||||
template(#default='scope')
|
||||
span.x-link(
|
||||
v-text='scope.row.displayName'
|
||||
@click='showUserDialog(scope.row.userId)'
|
||||
style='padding-right: 10px')
|
||||
el-table-column(:label='$t("table.feed.detail")')
|
||||
template(#default='scope')
|
||||
template(v-if='scope.row.type === "GPS"')
|
||||
location(
|
||||
v-if='scope.row.location'
|
||||
:location='scope.row.location'
|
||||
:hint='scope.row.worldName'
|
||||
:grouphint='scope.row.groupName')
|
||||
template(v-else-if='scope.row.type === "Offline" || scope.row.type === "Online"')
|
||||
location(
|
||||
v-if='scope.row.location'
|
||||
:location='scope.row.location'
|
||||
:hint='scope.row.worldName'
|
||||
:grouphint='scope.row.groupName')
|
||||
template(v-else-if='scope.row.type === "Status"')
|
||||
template(v-if='scope.row.statusDescription === scope.row.previousStatusDescription')
|
||||
el-tooltip(placement='top')
|
||||
template(#content)
|
||||
span(v-if="scope.row.previousStatus === 'active'") {{ $t('dialog.user.status.active') }}
|
||||
span(v-else-if="scope.row.previousStatus === 'join me'") {{ $t('dialog.user.status.join_me') }}
|
||||
span(v-else-if="scope.row.previousStatus === 'ask me'") {{ $t('dialog.user.status.ask_me') }}
|
||||
span(v-else-if="scope.row.previousStatus === 'busy'") {{ $t('dialog.user.status.busy') }}
|
||||
span(v-if='scope.row.previousStatus === "active"') {{ $t('dialog.user.status.active') }}
|
||||
span(v-else-if='scope.row.previousStatus === "join me"') {{ $t('dialog.user.status.join_me') }}
|
||||
span(v-else-if='scope.row.previousStatus === "ask me"') {{ $t('dialog.user.status.ask_me') }}
|
||||
span(v-else-if='scope.row.previousStatus === "busy"') {{ $t('dialog.user.status.busy') }}
|
||||
span(v-else) {{ $t('dialog.user.status.offline') }}
|
||||
i.x-user-status(:class="statusClass(scope.row.previousStatus)")
|
||||
span(style="margin:0 5px")
|
||||
i.x-user-status(:class='statusClass(scope.row.previousStatus)')
|
||||
span(style='margin: 0 5px')
|
||||
i.el-icon-right
|
||||
el-tooltip(placement="top")
|
||||
el-tooltip(placement='top')
|
||||
template(#content)
|
||||
span(v-if="scope.row.status === 'active'") {{ $t('dialog.user.status.active') }}
|
||||
span(v-else-if="scope.row.status === 'join me'") {{ $t('dialog.user.status.join_me') }}
|
||||
span(v-else-if="scope.row.status === 'ask me'") {{ $t('dialog.user.status.ask_me') }}
|
||||
span(v-else-if="scope.row.status === 'busy'") {{ $t('dialog.user.status.busy') }}
|
||||
span(v-if='scope.row.status === "active"') {{ $t('dialog.user.status.active') }}
|
||||
span(v-else-if='scope.row.status === "join me"') {{ $t('dialog.user.status.join_me') }}
|
||||
span(v-else-if='scope.row.status === "ask me"') {{ $t('dialog.user.status.ask_me') }}
|
||||
span(v-else-if='scope.row.status === "busy"') {{ $t('dialog.user.status.busy') }}
|
||||
span(v-else) {{ $t('dialog.user.status.offline') }}
|
||||
i.x-user-status(:class="statusClass(scope.row.status)")
|
||||
i.x-user-status(:class='statusClass(scope.row.status)')
|
||||
template(v-else)
|
||||
el-tooltip(placement="top")
|
||||
el-tooltip(placement='top')
|
||||
template(#content)
|
||||
span(v-if="scope.row.status === 'active'") {{ $t('dialog.user.status.active') }}
|
||||
span(v-else-if="scope.row.status === 'join me'") {{ $t('dialog.user.status.join_me') }}
|
||||
span(v-else-if="scope.row.status === 'ask me'") {{ $t('dialog.user.status.ask_me') }}
|
||||
span(v-else-if="scope.row.status === 'busy'") {{ $t('dialog.user.status.busy') }}
|
||||
span(v-if='scope.row.status === "active"') {{ $t('dialog.user.status.active') }}
|
||||
span(v-else-if='scope.row.status === "join me"') {{ $t('dialog.user.status.join_me') }}
|
||||
span(v-else-if='scope.row.status === "ask me"') {{ $t('dialog.user.status.ask_me') }}
|
||||
span(v-else-if='scope.row.status === "busy"') {{ $t('dialog.user.status.busy') }}
|
||||
span(v-else) {{ $t('dialog.user.status.offline') }}
|
||||
i.x-user-status(:class="statusClass(scope.row.status)" style="margin-right:3px")
|
||||
span(v-text="scope.row.statusDescription")
|
||||
template(v-else-if="scope.row.type === 'Avatar'")
|
||||
avatar-info(:imageurl="scope.row.currentAvatarImageUrl" :userid="scope.row.userId" :hintownerid="scope.row.ownerId" :hintavatarname="scope.row.avatarName" :avatartags="scope.row.currentAvatarTags")
|
||||
template(v-else-if="scope.row.type === 'Bio'")
|
||||
span(v-text="scope.row.bio")
|
||||
i.x-user-status(:class='statusClass(scope.row.status)' style='margin-right: 3px')
|
||||
span(v-text='scope.row.statusDescription')
|
||||
template(v-else-if='scope.row.type === "Avatar"')
|
||||
avatar-info(
|
||||
:imageurl='scope.row.currentAvatarImageUrl'
|
||||
:userid='scope.row.userId'
|
||||
:hintownerid='scope.row.ownerId'
|
||||
:hintavatarname='scope.row.avatarName'
|
||||
:avatartags='scope.row.currentAvatarTags')
|
||||
template(v-else-if='scope.row.type === "Bio"')
|
||||
span(v-text='scope.row.bio')
|
||||
|
||||
+184
-73
@@ -1,85 +1,196 @@
|
||||
mixin friendsListTab()
|
||||
.x-container(v-if="$refs.menu && $refs.menu.activeIndex === 'friendsList'")
|
||||
div.options-container(style="margin-top:0")
|
||||
mixin friendsListTab
|
||||
.x-container(v-if='$refs.menu && $refs.menu.activeIndex === "friendsList"')
|
||||
.options-container(style='margin-top: 0')
|
||||
span.header {{ $t('view.friend_list.header') }}
|
||||
div(style="float:right;font-size:13px")
|
||||
div(v-if="friendsListBulkUnfriendMode" style="display:inline-block;margin-right:10px")
|
||||
el-button(size="small" @click="showBulkUnfriendSelectionConfirm") {{ $t('view.friend_list.bulk_unfriend_selection') }}
|
||||
div(style='float: right; font-size: 13px')
|
||||
div(v-if='friendsListBulkUnfriendMode' style='display: inline-block; margin-right: 10px')
|
||||
el-button(size='small' @click='showBulkUnfriendSelectionConfirm') {{ $t('view.friend_list.bulk_unfriend_selection') }}
|
||||
//- el-button(size="small" @click="showBulkUnfriendAllConfirm" style="margin-right:5px") Bulk Unfriend All
|
||||
div(style="display:inline-block;margin-right:10px")
|
||||
div(style='display: inline-block; margin-right: 10px')
|
||||
span.name {{ $t('view.friend_list.bulk_unfriend') }}
|
||||
el-switch(@change="toggleFriendsListBulkUnfriendMode" v-model="friendsListBulkUnfriendMode" style="margin-left:5px")
|
||||
el-switch(
|
||||
@change='toggleFriendsListBulkUnfriendMode'
|
||||
v-model='friendsListBulkUnfriendMode'
|
||||
style='margin-left: 5px')
|
||||
span {{ $t('view.friend_list.load') }}
|
||||
template(v-if="friendsListLoading")
|
||||
span(v-text="friendsListLoadingProgress" style="margin-left:5px")
|
||||
el-tooltip(placement="top" :content="$t('view.friend_list.cancel_tooltip')" :disabled="hideTooltips")
|
||||
el-button(@click="friendsListLoading = false" size="mini" icon="el-icon-loading" circle style="margin-left:5px")
|
||||
template(v-if='friendsListLoading')
|
||||
span(v-text='friendsListLoadingProgress' style='margin-left: 5px')
|
||||
el-tooltip(
|
||||
placement='top'
|
||||
:content='$t("view.friend_list.cancel_tooltip")'
|
||||
:disabled='hideTooltips')
|
||||
el-button(
|
||||
@click='friendsListLoading = false'
|
||||
size='mini'
|
||||
icon='el-icon-loading'
|
||||
circle
|
||||
style='margin-left: 5px')
|
||||
template(v-else)
|
||||
el-tooltip(placement="top" :content="$t('view.friend_list.load_tooltip')" :disabled="hideTooltips")
|
||||
el-button(@click="friendsListLoadUsers" size="mini" icon="el-icon-refresh-left" circle style="margin-left:5px")
|
||||
div(style="margin:10px 0 0 10px;display:flex;align-items:center")
|
||||
div(style="flex:none;margin-right:10px;display:flex;align-items:center;")
|
||||
el-tooltip(placement="bottom" :content="$t('view.friend_list.favorites_only_tooltip')" :disabled="hideTooltips")
|
||||
el-switch(v-model="friendsListSearchFilterVIP" @change="friendsListSearchChange" active-color="#13ce66")
|
||||
el-input(v-model="friendsListSearch" :placeholder="$t('view.friend_list.search_placeholder')" @change="friendsListSearchChange" clearable style="flex:1")
|
||||
el-select(v-model="friendsListSearchFilters" multiple clearable collapse-tags style="flex:none;width:200px;margin:0 10px" @change="friendsListSearchChange" :placeholder="$t('view.friend_list.filter_placeholder')")
|
||||
el-option(v-for="type in ['Display Name', 'User Name', 'Rank', 'Status', 'Bio', 'Memo']" :key="type" :label="type" :value="type")
|
||||
el-tooltip(placement="top" :content="$t('view.friend_list.refresh_tooltip')" :disabled="hideTooltips")
|
||||
el-button(type="default" @click="friendsListSearchChange" icon="el-icon-refresh" circle style="flex:none")
|
||||
el-tooltip(placement="top" :content="$t('view.friend_list.clear_tooltip')" :disabled="hideTooltips")
|
||||
el-button(type="default" @click="friendsListTable.data = []" icon="el-icon-delete" circle style="flex:none;margin-left:5px")
|
||||
data-tables(v-bind="friendsListTable" @row-click="selectFriendsListRow" style="margin-top:10px;cursor:pointer")
|
||||
el-table-column(width="55" prop="$selected" v-if="friendsListBulkUnfriendMode" :key="friendsListBulkUnfriendForceUpdate")
|
||||
template(#default="scope")
|
||||
el-button(type="text" size="mini" @click.stop)
|
||||
el-checkbox(v-model="scope.row.$selected" @change="friendsListBulkUnfriendForceUpdate++")
|
||||
el-table-column(:label="$t('table.friendList.no')" width="70" prop="$friendNumber" sortable="custom")
|
||||
template(#default="scope")
|
||||
el-tooltip(placement='top' :content='$t("view.friend_list.load_tooltip")' :disabled='hideTooltips')
|
||||
el-button(
|
||||
@click='friendsListLoadUsers'
|
||||
size='mini'
|
||||
icon='el-icon-refresh-left'
|
||||
circle
|
||||
style='margin-left: 5px')
|
||||
div(style='margin: 10px 0 0 10px; display: flex; align-items: center')
|
||||
div(style='flex: none; margin-right: 10px; display: flex; align-items: center')
|
||||
el-tooltip(
|
||||
placement='bottom'
|
||||
:content='$t("view.friend_list.favorites_only_tooltip")'
|
||||
:disabled='hideTooltips')
|
||||
el-switch(
|
||||
v-model='friendsListSearchFilterVIP'
|
||||
@change='friendsListSearchChange'
|
||||
active-color='#13ce66')
|
||||
el-input(
|
||||
v-model='friendsListSearch'
|
||||
:placeholder='$t("view.friend_list.search_placeholder")'
|
||||
@change='friendsListSearchChange'
|
||||
clearable
|
||||
style='flex: 1')
|
||||
el-select(
|
||||
v-model='friendsListSearchFilters'
|
||||
multiple
|
||||
clearable
|
||||
collapse-tags
|
||||
style='flex: none; width: 200px; margin: 0 10px'
|
||||
@change='friendsListSearchChange'
|
||||
:placeholder='$t("view.friend_list.filter_placeholder")')
|
||||
el-option(
|
||||
v-for='type in ["Display Name", "User Name", "Rank", "Status", "Bio", "Memo"]'
|
||||
:key='type'
|
||||
:label='type'
|
||||
:value='type')
|
||||
el-tooltip(placement='top' :content='$t("view.friend_list.refresh_tooltip")' :disabled='hideTooltips')
|
||||
el-button(
|
||||
type='default'
|
||||
@click='friendsListSearchChange'
|
||||
icon='el-icon-refresh'
|
||||
circle
|
||||
style='flex: none')
|
||||
el-tooltip(placement='top' :content='$t("view.friend_list.clear_tooltip")' :disabled='hideTooltips')
|
||||
el-button(
|
||||
type='default'
|
||||
@click='friendsListTable.data = []'
|
||||
icon='el-icon-delete'
|
||||
circle
|
||||
style='flex: none; margin-left: 5px')
|
||||
data-tables(
|
||||
v-bind='friendsListTable'
|
||||
@row-click='selectFriendsListRow'
|
||||
style='margin-top: 10px; cursor: pointer')
|
||||
el-table-column(
|
||||
width='55'
|
||||
prop='$selected'
|
||||
v-if='friendsListBulkUnfriendMode'
|
||||
:key='friendsListBulkUnfriendForceUpdate')
|
||||
template(#default='scope')
|
||||
el-button(type='text' size='mini' @click.stop)
|
||||
el-checkbox(v-model='scope.row.$selected' @change='friendsListBulkUnfriendForceUpdate++')
|
||||
el-table-column(:label='$t("table.friendList.no")' width='70' prop='$friendNumber' sortable='custom')
|
||||
template(#default='scope')
|
||||
span {{ scope.row.$friendNumber ? scope.row.$friendNumber : '' }}
|
||||
el-table-column(:label="$t('table.friendList.avatar')" width="70" prop="photo")
|
||||
template(#default="scope")
|
||||
el-popover(placement="right" height="500px" trigger="hover")
|
||||
img.friends-list-avatar(slot="reference" v-lazy="userImage(scope.row)")
|
||||
img.friends-list-avatar(v-lazy="userImageFull(scope.row)" style="height:500px;cursor:pointer" @click="showFullscreenImageDialog(userImageFull(scope.row))")
|
||||
el-table-column(:label="$t('table.friendList.displayName')" min-width="140" prop="displayName" sortable :sort-method="(a, b) => sortAlphabetically(a, b, 'displayName')")
|
||||
template(#default="scope")
|
||||
span.name(v-if="randomUserColours" v-text="scope.row.displayName" :style="{'color':scope.row.$userColour}")
|
||||
span.name(v-else v-text="scope.row.displayName")
|
||||
el-table-column(:label="$t('table.friendList.rank')" width="110" prop="$trustSortNum" sortable="custom")
|
||||
template(#default="scope")
|
||||
span.name(v-if="randomUserColours" v-text="scope.row.$trustLevel" :class="scope.row.$trustClass")
|
||||
span.name(v-else v-text="scope.row.$trustLevel" :style="{'color':scope.row.$userColour}")
|
||||
el-table-column(:label="$t('table.friendList.status')" min-width="180" prop="status" sortable :sort-method="(a, b) => sortStatus(a.status, b.status)")
|
||||
template(#default="scope")
|
||||
i.x-user-status(v-if="scope.row.status !== 'offline'" :class="statusClass(scope.row.status)")
|
||||
span
|
||||
span(v-text="scope.row.statusDescription")
|
||||
el-table-column(:label="$t('table.friendList.language')" width="110" prop="$languages" sortable :sort-method="(a, b) => sortLanguages(a, b)")
|
||||
template(#default="scope")
|
||||
el-tooltip(v-for="item in scope.row.$languages" :key="item.key" placement="top")
|
||||
el-table-column(:label='$t("table.friendList.avatar")' width='70' prop='photo')
|
||||
template(#default='scope')
|
||||
el-popover(placement='right' height='500px' trigger='hover')
|
||||
img.friends-list-avatar(slot='reference' v-lazy='userImage(scope.row)')
|
||||
img.friends-list-avatar(
|
||||
v-lazy='userImageFull(scope.row)'
|
||||
style='height: 500px; cursor: pointer'
|
||||
@click='showFullscreenImageDialog(userImageFull(scope.row))')
|
||||
el-table-column(
|
||||
:label='$t("table.friendList.displayName")'
|
||||
min-width='140'
|
||||
prop='displayName'
|
||||
sortable
|
||||
:sort-method='(a, b) => sortAlphabetically(a, b, "displayName")')
|
||||
template(#default='scope')
|
||||
span.name(
|
||||
v-if='randomUserColours'
|
||||
v-text='scope.row.displayName'
|
||||
:style='{ color: scope.row.$userColour }')
|
||||
span.name(v-else v-text='scope.row.displayName')
|
||||
el-table-column(
|
||||
:label='$t("table.friendList.rank")'
|
||||
width='110'
|
||||
prop='$trustSortNum'
|
||||
sortable='custom')
|
||||
template(#default='scope')
|
||||
span.name(
|
||||
v-if='randomUserColours'
|
||||
v-text='scope.row.$trustLevel'
|
||||
:class='scope.row.$trustClass')
|
||||
span.name(v-else v-text='scope.row.$trustLevel' :style='{ color: scope.row.$userColour }')
|
||||
el-table-column(
|
||||
:label='$t("table.friendList.status")'
|
||||
min-width='180'
|
||||
prop='status'
|
||||
sortable
|
||||
:sort-method='(a, b) => sortStatus(a.status, b.status)')
|
||||
template(#default='scope')
|
||||
i.x-user-status(v-if='scope.row.status !== "offline"' :class='statusClass(scope.row.status)')
|
||||
span
|
||||
span(v-text='scope.row.statusDescription')
|
||||
el-table-column(
|
||||
:label='$t("table.friendList.language")'
|
||||
width='110'
|
||||
prop='$languages'
|
||||
sortable
|
||||
:sort-method='(a, b) => sortLanguages(a, b)')
|
||||
template(#default='scope')
|
||||
el-tooltip(v-for='item in scope.row.$languages' :key='item.key' placement='top')
|
||||
template(#content)
|
||||
span {{ item.value }} ({{ item.key }})
|
||||
span.flags(:class="languageClass(item.key)" style="display:inline-block;margin-right:5px")
|
||||
el-table-column(:label="$t('table.friendList.bioLink')" width="100" prop="bioLinks")
|
||||
template(#default="scope")
|
||||
el-tooltip(v-if="link" v-for="(link, index) in scope.row.bioLinks" :key="index")
|
||||
span.flags(:class='languageClass(item.key)' style='display: inline-block; margin-right: 5px')
|
||||
el-table-column(:label='$t("table.friendList.bioLink")' width='100' prop='bioLinks')
|
||||
template(#default='scope')
|
||||
el-tooltip(v-if='link' v-for='(link, index) in scope.row.bioLinks' :key='index')
|
||||
template(#content)
|
||||
span(v-text="link")
|
||||
img(:src="getFaviconUrl(link)" style="width:16px;height:16px;vertical-align:middle;margin-right:5px;cursor:pointer" @click.stop="openExternalLink(link)")
|
||||
el-table-column(:label="$t('table.friendList.joinCount')" width="120" prop="$joinCount" sortable)
|
||||
el-table-column(:label="$t('table.friendList.timeTogether')" width="140" prop="$timeSpent" sortable)
|
||||
template(#default="scope")
|
||||
span(v-if="scope.row.$timeSpent") {{ timeToText(scope.row.$timeSpent) }}
|
||||
el-table-column(:label="$t('table.friendList.lastSeen')" width="170" prop="$lastSeen" sortable :sort-method="(a, b) => sortAlphabetically(a, b, '$lastSeen')")
|
||||
template(#default="scope")
|
||||
span(v-text='link')
|
||||
img(
|
||||
:src='getFaviconUrl(link)'
|
||||
style='width: 16px; height: 16px; vertical-align: middle; margin-right: 5px; cursor: pointer'
|
||||
@click.stop='openExternalLink(link)')
|
||||
el-table-column(:label='$t("table.friendList.joinCount")' width='120' prop='$joinCount' sortable)
|
||||
el-table-column(:label='$t("table.friendList.timeTogether")' width='140' prop='$timeSpent' sortable)
|
||||
template(#default='scope')
|
||||
span(v-if='scope.row.$timeSpent') {{ timeToText(scope.row.$timeSpent) }}
|
||||
el-table-column(
|
||||
:label='$t("table.friendList.lastSeen")'
|
||||
width='170'
|
||||
prop='$lastSeen'
|
||||
sortable
|
||||
:sort-method='(a, b) => sortAlphabetically(a, b, "$lastSeen")')
|
||||
template(#default='scope')
|
||||
span {{ scope.row.$lastSeen | formatDate('long') }}
|
||||
el-table-column(:label="$t('table.friendList.lastActivity')" width="170" prop="last_activity" sortable :sort-method="(a, b) => sortAlphabetically(a, b, 'last_activity')")
|
||||
template(#default="scope")
|
||||
el-table-column(
|
||||
:label='$t("table.friendList.lastActivity")'
|
||||
width='170'
|
||||
prop='last_activity'
|
||||
sortable
|
||||
:sort-method='(a, b) => sortAlphabetically(a, b, "last_activity")')
|
||||
template(#default='scope')
|
||||
span {{ scope.row.last_activity | formatDate('long') }}
|
||||
el-table-column(:label="$t('table.friendList.lastLogin')" width="170" prop="last_login" sortable :sort-method="(a, b) => sortAlphabetically(a, b, 'last_login')")
|
||||
template(#default="scope")
|
||||
el-table-column(
|
||||
:label='$t("table.friendList.lastLogin")'
|
||||
width='170'
|
||||
prop='last_login'
|
||||
sortable
|
||||
:sort-method='(a, b) => sortAlphabetically(a, b, "last_login")')
|
||||
template(#default='scope')
|
||||
span {{ scope.row.last_login | formatDate('long') }}
|
||||
el-table-column(:label="$t('table.friendList.dateJoined')" width="120" prop="date_joined" sortable :sort-method="(a, b) => sortAlphabetically(a, b, 'date_joined')")
|
||||
el-table-column(:label="$t('table.friendList.unfriend')" width="100" align="center")
|
||||
template(#default="scope")
|
||||
el-button(type="text" icon="el-icon-close" style="color:#f56c6c" size="mini" @click.stop="confirmDeleteFriend(scope.row.id)")
|
||||
el-table-column(
|
||||
:label='$t("table.friendList.dateJoined")'
|
||||
width='120'
|
||||
prop='date_joined'
|
||||
sortable
|
||||
:sort-method='(a, b) => sortAlphabetically(a, b, "date_joined")')
|
||||
el-table-column(:label='$t("table.friendList.unfriend")' width='100' align='center')
|
||||
template(#default='scope')
|
||||
el-button(
|
||||
type='text'
|
||||
icon='el-icon-close'
|
||||
style='color: #f56c6c'
|
||||
size='mini'
|
||||
@click.stop='confirmDeleteFriend(scope.row.id)')
|
||||
|
||||
+106
-51
@@ -1,57 +1,112 @@
|
||||
mixin gameLogTab()
|
||||
.x-container(v-show="$refs.menu && $refs.menu.activeIndex === 'gameLog'")
|
||||
data-tables(v-bind="gameLogTable" v-loading="gameLogTable.loading")
|
||||
mixin gameLogTab
|
||||
.x-container(v-show='$refs.menu && $refs.menu.activeIndex === \'gameLog\'')
|
||||
data-tables(v-bind='gameLogTable' v-loading='gameLogTable.loading')
|
||||
template(#tool)
|
||||
div(style="margin:0 0 10px;display:flex;align-items:center")
|
||||
div(style="flex:none;margin-right:10px;display:flex;align-items:center;")
|
||||
el-tooltip(placement="bottom" :content="$t('view.feed.favorites_only_tooltip')" :disabled="hideTooltips")
|
||||
el-switch(v-model="gameLogTable.vip" @change="gameLogTableLookup" active-color="#13ce66")
|
||||
el-select(v-model="gameLogTable.filter" @change="gameLogTableLookup" multiple clearable style="flex:1" :placeholder="$t('view.game_log.filter_placeholder')")
|
||||
el-option(v-for="type in ['Location', 'OnPlayerJoined', 'OnPlayerLeft', 'PortalSpawn', 'VideoPlay', 'Event', 'External', 'StringLoad', 'ImageLoad']" :key="type" :label="$t('view.game_log.filters.' + type)" :value="type")
|
||||
el-input(v-model="gameLogTable.search" :placeholder="$t('view.game_log.search_placeholder')" @keyup.native.13="gameLogTableLookup" @change="gameLogTableLookup" clearable style="flex:none;width:150px;margin:0 10px")
|
||||
el-table-column(:label="$t('table.gameLog.date')" prop="created_at" sortable="custom" width="120")
|
||||
template(#default="scope")
|
||||
el-tooltip(placement="right")
|
||||
div(style='margin: 0 0 10px; display: flex; align-items: center')
|
||||
div(style='flex: none; margin-right: 10px; display: flex; align-items: center')
|
||||
el-tooltip(
|
||||
placement='bottom'
|
||||
:content='$t("view.feed.favorites_only_tooltip")'
|
||||
:disabled='hideTooltips')
|
||||
el-switch(v-model='gameLogTable.vip' @change='gameLogTableLookup' active-color='#13ce66')
|
||||
el-select(
|
||||
v-model='gameLogTable.filter'
|
||||
@change='gameLogTableLookup'
|
||||
multiple
|
||||
clearable
|
||||
style='flex: 1'
|
||||
:placeholder='$t("view.game_log.filter_placeholder")')
|
||||
el-option(
|
||||
v-for='type in ["Location", "OnPlayerJoined", "OnPlayerLeft", "PortalSpawn", "VideoPlay", "Event", "External", "StringLoad", "ImageLoad"]'
|
||||
:key='type'
|
||||
:label='$t("view.game_log.filters." + type)'
|
||||
:value='type')
|
||||
el-input(
|
||||
v-model='gameLogTable.search'
|
||||
:placeholder='$t("view.game_log.search_placeholder")'
|
||||
@keyup.native.13='gameLogTableLookup'
|
||||
@change='gameLogTableLookup'
|
||||
clearable
|
||||
style='flex: none; width: 150px; margin: 0 10px')
|
||||
el-table-column(:label='$t("table.gameLog.date")' prop='created_at' sortable='custom' width='120')
|
||||
template(#default='scope')
|
||||
el-tooltip(placement='right')
|
||||
template(#content)
|
||||
span {{ scope.row.created_at | formatDate('long') }}
|
||||
span {{ scope.row.created_at | formatDate('short') }}
|
||||
el-table-column(:label="$t('table.gameLog.type')" prop="type" width="120")
|
||||
template(#default="scope")
|
||||
span.x-link(v-if="scope.row.location && scope.row.type !== 'Location'" v-text="$t('view.game_log.filters.' + scope.row.type)" @click="showWorldDialog(scope.row.location)")
|
||||
span(v-else v-text="$t('view.game_log.filters.' + scope.row.type)")
|
||||
el-table-column(:label="$t('table.gameLog.icon')" prop="isFriend" width="70" align="center")
|
||||
template(#default="scope")
|
||||
template(v-if="gameLogIsFriend(scope.row)")
|
||||
el-tooltip(v-if="gameLogIsFavorite(scope.row)" placement="top" content="Favorite")
|
||||
el-table-column(:label='$t("table.gameLog.type")' prop='type' width='120')
|
||||
template(#default='scope')
|
||||
span.x-link(
|
||||
v-if='scope.row.location && scope.row.type !== "Location"'
|
||||
v-text='$t("view.game_log.filters." + scope.row.type)'
|
||||
@click='showWorldDialog(scope.row.location)')
|
||||
span(v-else v-text='$t("view.game_log.filters." + scope.row.type)')
|
||||
el-table-column(:label='$t("table.gameLog.icon")' prop='isFriend' width='70' align='center')
|
||||
template(#default='scope')
|
||||
template(v-if='gameLogIsFriend(scope.row)')
|
||||
el-tooltip(v-if='gameLogIsFavorite(scope.row)' placement='top' content='Favorite')
|
||||
span ⭐
|
||||
el-tooltip(v-else placement="top" content="Friend")
|
||||
el-tooltip(v-else placement='top' content='Friend')
|
||||
span 💚
|
||||
el-table-column(:label="$t('table.gameLog.user')" prop="displayName" width="180")
|
||||
template(#default="scope")
|
||||
span.x-link(v-if="scope.row.displayName" v-text="scope.row.displayName" @click="lookupUser(scope.row)" style="padding-right:10px")
|
||||
el-table-column(:label="$t('table.gameLog.detail')" prop="data")
|
||||
template(#default="scope")
|
||||
location(v-if="scope.row.type === 'Location'" :location="scope.row.location" :hint="scope.row.worldName" :grouphint="scope.row.groupName")
|
||||
location(v-else-if="scope.row.type === 'PortalSpawn'" :location="scope.row.instanceId" :hint="scope.row.worldName" :grouphint="scope.row.groupName")
|
||||
template(v-else-if="scope.row.type === 'Event'")
|
||||
span(v-text="scope.row.data")
|
||||
template(v-else-if="scope.row.type === 'External'")
|
||||
span(v-text="scope.row.message")
|
||||
template(v-else-if="scope.row.type === 'VideoPlay'")
|
||||
span(v-if="scope.row.videoId" style="margin-right:5px") {{ scope.row.videoId }}:
|
||||
span(v-if="scope.row.videoId === 'LSMedia'" v-text="scope.row.videoName")
|
||||
span.x-link(v-else-if="scope.row.videoName" @click="openExternalLink(scope.row.videoUrl)" v-text="scope.row.videoName")
|
||||
span.x-link(v-else @click="openExternalLink(scope.row.videoUrl)" v-text="scope.row.videoUrl")
|
||||
template(v-else-if="scope.row.type === 'ImageLoad'")
|
||||
span.x-link(@click="openExternalLink(scope.row.resourceUrl)" v-text="scope.row.resourceUrl")
|
||||
template(v-else-if="scope.row.type === 'StringLoad'")
|
||||
span.x-link(@click="openExternalLink(scope.row.resourceUrl)" v-text="scope.row.resourceUrl")
|
||||
template(v-else-if="scope.row.type === 'Notification' || scope.row.type === 'OnPlayerJoined' || scope.row.type === 'OnPlayerLeft'")
|
||||
span.x-link(v-else v-text="scope.row.data")
|
||||
el-table-column(:label="$t('table.gameLog.action')" width="80" align="right")
|
||||
template(#default="scope")
|
||||
template(v-if="scope.row.type !== 'OnPlayerJoined' && scope.row.type !== 'OnPlayerLeft' && scope.row.type !== 'Location' && scope.row.type !== 'PortalSpawn'")
|
||||
el-button(v-if="shiftHeld" style="color:#f56c6c" type="text" icon="el-icon-close" size="mini" @click="deleteGameLogEntry(scope.row)")
|
||||
el-button(v-else type="text" icon="el-icon-delete" size="mini" @click="deleteGameLogEntryPrompt(scope.row)")
|
||||
el-tooltip(placement="top" content="Open Instance Info" :disabled="hideTooltips")
|
||||
el-button(v-if="scope.row.type === 'Location'" type="text" icon="el-icon-tickets" size="mini" @click="showPreviousInstanceInfoDialog(scope.row.location)")
|
||||
el-table-column(:label='$t("table.gameLog.user")' prop='displayName' width='180')
|
||||
template(#default='scope')
|
||||
span.x-link(
|
||||
v-if='scope.row.displayName'
|
||||
v-text='scope.row.displayName'
|
||||
@click='lookupUser(scope.row)'
|
||||
style='padding-right: 10px')
|
||||
el-table-column(:label='$t("table.gameLog.detail")' prop='data')
|
||||
template(#default='scope')
|
||||
location(
|
||||
v-if='scope.row.type === "Location"'
|
||||
:location='scope.row.location'
|
||||
:hint='scope.row.worldName'
|
||||
:grouphint='scope.row.groupName')
|
||||
location(
|
||||
v-else-if='scope.row.type === "PortalSpawn"'
|
||||
:location='scope.row.instanceId'
|
||||
:hint='scope.row.worldName'
|
||||
:grouphint='scope.row.groupName')
|
||||
template(v-else-if='scope.row.type === "Event"')
|
||||
span(v-text='scope.row.data')
|
||||
template(v-else-if='scope.row.type === "External"')
|
||||
span(v-text='scope.row.message')
|
||||
template(v-else-if='scope.row.type === "VideoPlay"')
|
||||
span(v-if='scope.row.videoId' style='margin-right: 5px') {{ scope.row.videoId }}:
|
||||
span(v-if='scope.row.videoId === "LSMedia"' v-text='scope.row.videoName')
|
||||
span.x-link(
|
||||
v-else-if='scope.row.videoName'
|
||||
@click='openExternalLink(scope.row.videoUrl)'
|
||||
v-text='scope.row.videoName')
|
||||
span.x-link(v-else @click='openExternalLink(scope.row.videoUrl)' v-text='scope.row.videoUrl')
|
||||
template(v-else-if='scope.row.type === "ImageLoad"')
|
||||
span.x-link(@click='openExternalLink(scope.row.resourceUrl)' v-text='scope.row.resourceUrl')
|
||||
template(v-else-if='scope.row.type === "StringLoad"')
|
||||
span.x-link(@click='openExternalLink(scope.row.resourceUrl)' v-text='scope.row.resourceUrl')
|
||||
template(
|
||||
v-else-if='scope.row.type === "Notification" || scope.row.type === "OnPlayerJoined" || scope.row.type === "OnPlayerLeft"')
|
||||
span.x-link(v-else v-text='scope.row.data')
|
||||
el-table-column(:label='$t("table.gameLog.action")' width='80' align='right')
|
||||
template(#default='scope')
|
||||
template(
|
||||
v-if='scope.row.type !== "OnPlayerJoined" && scope.row.type !== "OnPlayerLeft" && scope.row.type !== "Location" && scope.row.type !== "PortalSpawn"')
|
||||
el-button(
|
||||
v-if='shiftHeld'
|
||||
style='color: #f56c6c'
|
||||
type='text'
|
||||
icon='el-icon-close'
|
||||
size='mini'
|
||||
@click='deleteGameLogEntry(scope.row)')
|
||||
el-button(
|
||||
v-else
|
||||
type='text'
|
||||
icon='el-icon-delete'
|
||||
size='mini'
|
||||
@click='deleteGameLogEntryPrompt(scope.row)')
|
||||
el-tooltip(placement='top' content='Open Instance Info' :disabled='hideTooltips')
|
||||
el-button(
|
||||
v-if='scope.row.type === "Location"'
|
||||
type='text'
|
||||
icon='el-icon-tickets'
|
||||
size='mini'
|
||||
@click='showPreviousInstanceInfoDialog(scope.row.location)')
|
||||
|
||||
@@ -1,95 +1,264 @@
|
||||
mixin notificationsTab()
|
||||
.x-container(v-if="$refs.menu && $refs.menu.activeIndex === 'notification'" v-loading="API.isNotificationsLoading")
|
||||
data-tables(v-bind="notificationTable" ref="notificationTableRef" class="notification-table")
|
||||
mixin notificationsTab
|
||||
.x-container(v-if='$refs.menu && $refs.menu.activeIndex === "notification"' v-loading='API.isNotificationsLoading')
|
||||
data-tables.notification-table(v-bind='notificationTable' ref='notificationTableRef')
|
||||
template(#tool)
|
||||
div(style="margin:0 0 10px;display:flex;align-items:center")
|
||||
el-select(v-model="notificationTable.filters[0].value" @change="saveTableFilters" multiple clearable style="flex:1" :placeholder="$t('view.notification.filter_placeholder')")
|
||||
el-option(v-for="type in ['requestInvite', 'invite', 'requestInviteResponse', 'inviteResponse', 'friendRequest', 'ignoredFriendRequest', 'message', 'boop', 'groupChange', 'group.announcement', 'group.informative', 'group.invite', 'group.joinRequest', 'group.transfer', 'group.queueReady', 'moderation.warning.group', 'moderation.report.closed', 'instance.closed']" :key="type" :label="$t('view.notification.filters.' + type)" :value="type")
|
||||
el-input(v-model="notificationTable.filters[1].value" :placeholder="$t('view.notification.search_placeholder')" style="flex:none;width:150px;margin:0 10px")
|
||||
el-tooltip(placement="bottom" :content="$t('view.notification.refresh_tooltip')" :disabled="hideTooltips")
|
||||
el-button(type="default" :loading="API.isNotificationsLoading" @click="API.refreshNotifications()" icon="el-icon-refresh" circle style="flex:none")
|
||||
el-table-column(:label="$t('table.notification.date')" prop="created_at" sortable="custom" width="120")
|
||||
template(#default="scope")
|
||||
el-tooltip(placement="right")
|
||||
div(style='margin: 0 0 10px; display: flex; align-items: center')
|
||||
el-select(
|
||||
v-model='notificationTable.filters[0].value'
|
||||
@change='saveTableFilters'
|
||||
multiple
|
||||
clearable
|
||||
style='flex: 1'
|
||||
:placeholder='$t("view.notification.filter_placeholder")')
|
||||
el-option(
|
||||
v-for='type in ["requestInvite", "invite", "requestInviteResponse", "inviteResponse", "friendRequest", "ignoredFriendRequest", "message", "boop", "groupChange", "group.announcement", "group.informative", "group.invite", "group.joinRequest", "group.transfer", "group.queueReady", "moderation.warning.group", "moderation.report.closed", "instance.closed"]'
|
||||
:key='type'
|
||||
:label='$t("view.notification.filters." + type)'
|
||||
:value='type')
|
||||
el-input(
|
||||
v-model='notificationTable.filters[1].value'
|
||||
:placeholder='$t("view.notification.search_placeholder")'
|
||||
style='flex: none; width: 150px; margin: 0 10px')
|
||||
el-tooltip(
|
||||
placement='bottom'
|
||||
:content='$t("view.notification.refresh_tooltip")'
|
||||
:disabled='hideTooltips')
|
||||
el-button(
|
||||
type='default'
|
||||
:loading='API.isNotificationsLoading'
|
||||
@click='API.refreshNotifications()'
|
||||
icon='el-icon-refresh'
|
||||
circle
|
||||
style='flex: none')
|
||||
el-table-column(:label='$t("table.notification.date")' prop='created_at' sortable='custom' width='120')
|
||||
template(#default='scope')
|
||||
el-tooltip(placement='right')
|
||||
template(#content)
|
||||
span {{ scope.row.created_at | formatDate('long') }}
|
||||
span {{ scope.row.created_at | formatDate('short') }}
|
||||
el-table-column(:label="$t('table.notification.type')" prop="type" width="180")
|
||||
template(#default="scope")
|
||||
el-tooltip(v-if="scope.row.type === 'invite'" placement="top")
|
||||
el-table-column(:label='$t("table.notification.type")' prop='type' width='180')
|
||||
template(#default='scope')
|
||||
el-tooltip(v-if='scope.row.type === "invite"' placement='top')
|
||||
template(#content)
|
||||
location(v-if="scope.row.details" :location="scope.row.details.worldId" :hint="scope.row.details.worldName" :grouphint="scope.row.details.groupName" :link="false")
|
||||
span.x-link(v-text="$t('view.notification.filters.' + scope.row.type)" @click="showWorldDialog(scope.row.details.worldId)")
|
||||
el-tooltip(v-else-if="scope.row.type === 'group.queueReady' || scope.row.type === 'instance.closed'" placement="top")
|
||||
location(
|
||||
v-if='scope.row.details'
|
||||
:location='scope.row.details.worldId'
|
||||
:hint='scope.row.details.worldName'
|
||||
:grouphint='scope.row.details.groupName'
|
||||
:link='false')
|
||||
span.x-link(
|
||||
v-text='$t("view.notification.filters." + scope.row.type)'
|
||||
@click='showWorldDialog(scope.row.details.worldId)')
|
||||
el-tooltip(
|
||||
v-else-if='scope.row.type === "group.queueReady" || scope.row.type === "instance.closed"'
|
||||
placement='top')
|
||||
template(#content)
|
||||
location(v-if="scope.row.location" :location="scope.row.location" :hint="scope.row.worldName" :grouphint="scope.row.groupName" :link="false")
|
||||
span.x-link(v-text="$t('view.notification.filters.' + scope.row.type)" @click="showWorldDialog(scope.row.location)")
|
||||
el-tooltip(v-else-if="scope.row.link" placement="top" :content="scope.row.linkText" :disabled="hideTooltips")
|
||||
span.x-link(v-text="$t('view.notification.filters.' + scope.row.type)" @click="openNotificationLink(scope.row.link)")
|
||||
span(v-else v-text="$t('view.notification.filters.' + scope.row.type)")
|
||||
el-table-column(:label="$t('table.notification.user_group')" prop="senderUsername" width="150")
|
||||
template(#default="scope")
|
||||
template(v-if="scope.row.type === 'groupChange'")
|
||||
span.x-link(v-text="scope.row.senderUsername" @click="showGroupDialog(scope.row.senderUserId)")
|
||||
template(v-else-if="scope.row.senderUserId")
|
||||
span.x-link(v-text="scope.row.senderUsername" @click="showUserDialog(scope.row.senderUserId)")
|
||||
template(v-else-if="scope.row.link && scope.row.data?.groupName")
|
||||
span.x-link(v-text="scope.row.data?.groupName" @click="openNotificationLink(scope.row.link)")
|
||||
template(v-else-if="scope.row.link")
|
||||
span.x-link(v-text="scope.row.linkText" @click="openNotificationLink(scope.row.link)")
|
||||
el-table-column(:label="$t('table.notification.photo')" width="100" prop="photo")
|
||||
template(#default="scope")
|
||||
template(v-if="scope.row.details && scope.row.details.imageUrl")
|
||||
el-popover(placement="right" width="500px" trigger="click")
|
||||
img.x-link(slot="reference" v-lazy="scope.row.details.imageUrl" style="flex:none;height:50px;border-radius:4px")
|
||||
img.x-link(v-lazy="scope.row.details.imageUrl" style="width:500px" @click="showFullscreenImageDialog(scope.row.details.imageUrl)")
|
||||
template(v-else-if="scope.row.imageUrl")
|
||||
el-popover(placement="right" width="500px" trigger="click")
|
||||
img.x-link(slot="reference" v-lazy="scope.row.imageUrl" style="flex:none;height:50px;border-radius:4px")
|
||||
img.x-link(v-lazy="scope.row.imageUrl" style="width:500px" @click="showFullscreenImageDialog(scope.row.imageUrl)")
|
||||
el-table-column(:label="$t('table.notification.message')" prop="message")
|
||||
template(#default="scope")
|
||||
span.x-link(v-if="scope.row.type === 'invite'")
|
||||
location(v-if="scope.row.details" :location="scope.row.details.worldId" :hint="scope.row.details.worldName" :grouphint="scope.row.details.groupName" :link="true")
|
||||
location(
|
||||
v-if='scope.row.location'
|
||||
:location='scope.row.location'
|
||||
:hint='scope.row.worldName'
|
||||
:grouphint='scope.row.groupName'
|
||||
:link='false')
|
||||
span.x-link(
|
||||
v-text='$t("view.notification.filters." + scope.row.type)'
|
||||
@click='showWorldDialog(scope.row.location)')
|
||||
el-tooltip(
|
||||
v-else-if='scope.row.link'
|
||||
placement='top'
|
||||
:content='scope.row.linkText'
|
||||
:disabled='hideTooltips')
|
||||
span.x-link(
|
||||
v-text='$t("view.notification.filters." + scope.row.type)'
|
||||
@click='openNotificationLink(scope.row.link)')
|
||||
span(v-else v-text='$t("view.notification.filters." + scope.row.type)')
|
||||
el-table-column(:label='$t("table.notification.user_group")' prop='senderUsername' width='150')
|
||||
template(#default='scope')
|
||||
template(v-if='scope.row.type === "groupChange"')
|
||||
span.x-link(v-text='scope.row.senderUsername' @click='showGroupDialog(scope.row.senderUserId)')
|
||||
template(v-else-if='scope.row.senderUserId')
|
||||
span.x-link(v-text='scope.row.senderUsername' @click='showUserDialog(scope.row.senderUserId)')
|
||||
template(v-else-if='scope.row.link && scope.row.data?.groupName')
|
||||
span.x-link(v-text='scope.row.data?.groupName' @click='openNotificationLink(scope.row.link)')
|
||||
template(v-else-if='scope.row.link')
|
||||
span.x-link(v-text='scope.row.linkText' @click='openNotificationLink(scope.row.link)')
|
||||
el-table-column(:label='$t("table.notification.photo")' width='100' prop='photo')
|
||||
template(#default='scope')
|
||||
template(v-if='scope.row.details && scope.row.details.imageUrl')
|
||||
el-popover(placement='right' width='500px' trigger='click')
|
||||
img.x-link(
|
||||
slot='reference'
|
||||
v-lazy='scope.row.details.imageUrl'
|
||||
style='flex: none; height: 50px; border-radius: 4px')
|
||||
img.x-link(
|
||||
v-lazy='scope.row.details.imageUrl'
|
||||
style='width: 500px'
|
||||
@click='showFullscreenImageDialog(scope.row.details.imageUrl)')
|
||||
template(v-else-if='scope.row.imageUrl')
|
||||
el-popover(placement='right' width='500px' trigger='click')
|
||||
img.x-link(
|
||||
slot='reference'
|
||||
v-lazy='scope.row.imageUrl'
|
||||
style='flex: none; height: 50px; border-radius: 4px')
|
||||
img.x-link(
|
||||
v-lazy='scope.row.imageUrl'
|
||||
style='width: 500px'
|
||||
@click='showFullscreenImageDialog(scope.row.imageUrl)')
|
||||
el-table-column(:label='$t("table.notification.message")' prop='message')
|
||||
template(#default='scope')
|
||||
span.x-link(v-if='scope.row.type === "invite"')
|
||||
location(
|
||||
v-if='scope.row.details'
|
||||
:location='scope.row.details.worldId'
|
||||
:hint='scope.row.details.worldName'
|
||||
:grouphint='scope.row.details.groupName'
|
||||
:link='true')
|
||||
br
|
||||
span(v-if="scope.row.message && scope.row.message !== `This is a generated invite to ${scope.row.details?.worldName}`" v-text="scope.row.message")
|
||||
span(v-else-if='scope.row.details && scope.row.details.inviteMessage' v-text="scope.row.details.inviteMessage")
|
||||
span(v-else-if='scope.row.details && scope.row.details.requestMessage' v-text="scope.row.details.requestMessage")
|
||||
span(v-else-if='scope.row.details && scope.row.details.responseMessage' v-text="scope.row.details.responseMessage")
|
||||
el-table-column(:label="$t('table.notification.action')" width="100" align="right")
|
||||
template(#default="scope")
|
||||
template(v-if="scope.row.senderUserId !== API.currentUser.id && !scope.row.$isExpired")
|
||||
template(v-if="scope.row.type === 'friendRequest'")
|
||||
el-tooltip(placement="top" content="Accept" :disabled="hideTooltips")
|
||||
el-button(type="text" icon="el-icon-check" style="color:#67c23a" size="mini" @click="acceptFriendRequestNotification(scope.row)")
|
||||
template(v-else-if="scope.row.type === 'invite'")
|
||||
el-tooltip(placement="top" content="Decline with message" :disabled="hideTooltips")
|
||||
el-button(type="text" icon="el-icon-chat-line-square" size="mini" @click="showSendInviteResponseDialog(scope.row)")
|
||||
template(v-else-if="scope.row.type === 'requestInvite'")
|
||||
template(v-if="lastLocation.location && isGameRunning && checkCanInvite(lastLocation.location)")
|
||||
el-tooltip(placement="top" content="Invite" :disabled="hideTooltips")
|
||||
el-button(type="text" icon="el-icon-check" style="color:#67c23a" size="mini" @click="acceptRequestInvite(scope.row)")
|
||||
el-tooltip(placement="top" content="Decline with message" :disabled="hideTooltips")
|
||||
el-button(type="text" icon="el-icon-chat-line-square" size="mini" style="margin-left:5px" @click="showSendInviteRequestResponseDialog(scope.row)")
|
||||
template(v-if="scope.row.responses")
|
||||
template(v-for="response in scope.row.responses")
|
||||
el-tooltip(placement="top" :content="response.text" :disabled="hideTooltips")
|
||||
el-button(v-if="response.icon === 'check'" type="text" icon="el-icon-check" size="mini" style="margin-left:5px" @click="sendNotificationResponse(scope.row.id, scope.row.responses, response.type)")
|
||||
el-button(v-else-if="response.icon === 'cancel'" type="text" icon="el-icon-close" size="mini" style="margin-left:5px" @click="sendNotificationResponse(scope.row.id, scope.row.responses, response.type)")
|
||||
el-button(v-else-if="response.icon === 'ban'" type="text" icon="el-icon-circle-close" size="mini" style="margin-left:5px" @click="sendNotificationResponse(scope.row.id, scope.row.responses, response.type)")
|
||||
el-button(v-else-if="response.icon === 'bell-slash'" type="text" icon="el-icon-bell" size="mini" style="margin-left:5px" @click="sendNotificationResponse(scope.row.id, scope.row.responses, response.type)")
|
||||
el-button(v-else-if="response.icon === 'reply' && scope.row.type === 'boop'" type="text" icon="el-icon-chat-line-square" size="mini" style="margin-left:5px" @click="showSendBoopDialog(scope.row.senderUserId)")
|
||||
el-button(v-else-if="response.icon === 'reply'" type="text" icon="el-icon-chat-line-square" size="mini" style="margin-left:5px" @click="sendNotificationResponse(scope.row.id, scope.row.responses, response.type)")
|
||||
el-button(v-else type="text" icon="el-icon-collection-tag" size="mini" style="margin-left:5px" @click="sendNotificationResponse(scope.row.id, scope.row.responses, response.type)")
|
||||
template(v-if="scope.row.type !== 'requestInviteResponse' && scope.row.type !== 'inviteResponse' && scope.row.type !== 'message' && scope.row.type !== 'boop' && scope.row.type !== 'groupChange' && !scope.row.type.includes('group.') && !scope.row.type.includes('moderation.') && !scope.row.type.includes('instance.')")
|
||||
el-tooltip(placement="top" content="Decline" :disabled="hideTooltips")
|
||||
el-button(v-if="shiftHeld" style="color:#f56c6c;margin-left:5px" type="text" icon="el-icon-close" size="mini" @click="hideNotification(scope.row)")
|
||||
el-button(v-else type="text" icon="el-icon-close" size="mini" style="margin-left:5px" @click="hideNotificationPrompt(scope.row)")
|
||||
template(v-if="scope.row.type === 'group.queueReady'")
|
||||
el-tooltip(placement="top" content="Delete log" :disabled="hideTooltips")
|
||||
el-button(v-if="shiftHeld" style="color:#f56c6c;margin-left:5px" type="text" icon="el-icon-close" size="mini" @click="deleteNotificationLog(scope.row)")
|
||||
el-button(v-else type="text" icon="el-icon-delete" size="mini" style="margin-left:5px" @click="deleteNotificationLogPrompt(scope.row)")
|
||||
template(v-if="scope.row.type !== 'friendRequest' && scope.row.type !== 'ignoredFriendRequest' && !scope.row.type.includes('group.') && !scope.row.type.includes('moderation.')")
|
||||
el-tooltip(placement="top" content="Delete log" :disabled="hideTooltips")
|
||||
el-button(v-if="shiftHeld" style="color:#f56c6c;margin-left:5px" type="text" icon="el-icon-close" size="mini" @click="deleteNotificationLog(scope.row)")
|
||||
el-button(v-else type="text" icon="el-icon-delete" size="mini" style="margin-left:5px" @click="deleteNotificationLogPrompt(scope.row)")
|
||||
span(
|
||||
v-if='scope.row.message && scope.row.message !== `This is a generated invite to ${scope.row.details?.worldName}`'
|
||||
v-text='scope.row.message')
|
||||
span(
|
||||
v-else-if='scope.row.details && scope.row.details.inviteMessage'
|
||||
v-text='scope.row.details.inviteMessage')
|
||||
span(
|
||||
v-else-if='scope.row.details && scope.row.details.requestMessage'
|
||||
v-text='scope.row.details.requestMessage')
|
||||
span(
|
||||
v-else-if='scope.row.details && scope.row.details.responseMessage'
|
||||
v-text='scope.row.details.responseMessage')
|
||||
el-table-column(:label='$t("table.notification.action")' width='100' align='right')
|
||||
template(#default='scope')
|
||||
template(v-if='scope.row.senderUserId !== API.currentUser.id && !scope.row.$isExpired')
|
||||
template(v-if='scope.row.type === "friendRequest"')
|
||||
el-tooltip(placement='top' content='Accept' :disabled='hideTooltips')
|
||||
el-button(
|
||||
type='text'
|
||||
icon='el-icon-check'
|
||||
style='color: #67c23a'
|
||||
size='mini'
|
||||
@click='acceptFriendRequestNotification(scope.row)')
|
||||
template(v-else-if='scope.row.type === "invite"')
|
||||
el-tooltip(placement='top' content='Decline with message' :disabled='hideTooltips')
|
||||
el-button(
|
||||
type='text'
|
||||
icon='el-icon-chat-line-square'
|
||||
size='mini'
|
||||
@click='showSendInviteResponseDialog(scope.row)')
|
||||
template(v-else-if='scope.row.type === "requestInvite"')
|
||||
template(
|
||||
v-if='lastLocation.location && isGameRunning && checkCanInvite(lastLocation.location)')
|
||||
el-tooltip(placement='top' content='Invite' :disabled='hideTooltips')
|
||||
el-button(
|
||||
type='text'
|
||||
icon='el-icon-check'
|
||||
style='color: #67c23a'
|
||||
size='mini'
|
||||
@click='acceptRequestInvite(scope.row)')
|
||||
el-tooltip(placement='top' content='Decline with message' :disabled='hideTooltips')
|
||||
el-button(
|
||||
type='text'
|
||||
icon='el-icon-chat-line-square'
|
||||
size='mini'
|
||||
style='margin-left: 5px'
|
||||
@click='showSendInviteRequestResponseDialog(scope.row)')
|
||||
template(v-if='scope.row.responses')
|
||||
template(v-for='response in scope.row.responses')
|
||||
el-tooltip(placement='top' :content='response.text' :disabled='hideTooltips')
|
||||
el-button(
|
||||
v-if='response.icon === "check"'
|
||||
type='text'
|
||||
icon='el-icon-check'
|
||||
size='mini'
|
||||
style='margin-left: 5px'
|
||||
@click='sendNotificationResponse(scope.row.id, scope.row.responses, response.type)')
|
||||
el-button(
|
||||
v-else-if='response.icon === "cancel"'
|
||||
type='text'
|
||||
icon='el-icon-close'
|
||||
size='mini'
|
||||
style='margin-left: 5px'
|
||||
@click='sendNotificationResponse(scope.row.id, scope.row.responses, response.type)')
|
||||
el-button(
|
||||
v-else-if='response.icon === "ban"'
|
||||
type='text'
|
||||
icon='el-icon-circle-close'
|
||||
size='mini'
|
||||
style='margin-left: 5px'
|
||||
@click='sendNotificationResponse(scope.row.id, scope.row.responses, response.type)')
|
||||
el-button(
|
||||
v-else-if='response.icon === "bell-slash"'
|
||||
type='text'
|
||||
icon='el-icon-bell'
|
||||
size='mini'
|
||||
style='margin-left: 5px'
|
||||
@click='sendNotificationResponse(scope.row.id, scope.row.responses, response.type)')
|
||||
el-button(
|
||||
v-else-if='response.icon === "reply" && scope.row.type === "boop"'
|
||||
type='text'
|
||||
icon='el-icon-chat-line-square'
|
||||
size='mini'
|
||||
style='margin-left: 5px'
|
||||
@click='showSendBoopDialog(scope.row.senderUserId)')
|
||||
el-button(
|
||||
v-else-if='response.icon === "reply"'
|
||||
type='text'
|
||||
icon='el-icon-chat-line-square'
|
||||
size='mini'
|
||||
style='margin-left: 5px'
|
||||
@click='sendNotificationResponse(scope.row.id, scope.row.responses, response.type)')
|
||||
el-button(
|
||||
v-else
|
||||
type='text'
|
||||
icon='el-icon-collection-tag'
|
||||
size='mini'
|
||||
style='margin-left: 5px'
|
||||
@click='sendNotificationResponse(scope.row.id, scope.row.responses, response.type)')
|
||||
template(
|
||||
v-if='scope.row.type !== "requestInviteResponse" && scope.row.type !== "inviteResponse" && scope.row.type !== "message" && scope.row.type !== "boop" && scope.row.type !== "groupChange" && !scope.row.type.includes("group.") && !scope.row.type.includes("moderation.") && !scope.row.type.includes("instance.")')
|
||||
el-tooltip(placement='top' content='Decline' :disabled='hideTooltips')
|
||||
el-button(
|
||||
v-if='shiftHeld'
|
||||
style='color: #f56c6c; margin-left: 5px'
|
||||
type='text'
|
||||
icon='el-icon-close'
|
||||
size='mini'
|
||||
@click='hideNotification(scope.row)')
|
||||
el-button(
|
||||
v-else
|
||||
type='text'
|
||||
icon='el-icon-close'
|
||||
size='mini'
|
||||
style='margin-left: 5px'
|
||||
@click='hideNotificationPrompt(scope.row)')
|
||||
template(v-if='scope.row.type === "group.queueReady"')
|
||||
el-tooltip(placement='top' content='Delete log' :disabled='hideTooltips')
|
||||
el-button(
|
||||
v-if='shiftHeld'
|
||||
style='color: #f56c6c; margin-left: 5px'
|
||||
type='text'
|
||||
icon='el-icon-close'
|
||||
size='mini'
|
||||
@click='deleteNotificationLog(scope.row)')
|
||||
el-button(
|
||||
v-else
|
||||
type='text'
|
||||
icon='el-icon-delete'
|
||||
size='mini'
|
||||
style='margin-left: 5px'
|
||||
@click='deleteNotificationLogPrompt(scope.row)')
|
||||
template(
|
||||
v-if='scope.row.type !== "friendRequest" && scope.row.type !== "ignoredFriendRequest" && !scope.row.type.includes("group.") && !scope.row.type.includes("moderation.")')
|
||||
el-tooltip(placement='top' content='Delete log' :disabled='hideTooltips')
|
||||
el-button(
|
||||
v-if='shiftHeld'
|
||||
style='color: #f56c6c; margin-left: 5px'
|
||||
type='text'
|
||||
icon='el-icon-close'
|
||||
size='mini'
|
||||
@click='deleteNotificationLog(scope.row)')
|
||||
el-button(
|
||||
v-else
|
||||
type='text'
|
||||
icon='el-icon-delete'
|
||||
size='mini'
|
||||
style='margin-left: 5px'
|
||||
@click='deleteNotificationLogPrompt(scope.row)')
|
||||
|
||||
+428
-222
@@ -1,275 +1,481 @@
|
||||
mixin playerListTab()
|
||||
.x-container(v-show="$refs.menu && $refs.menu.activeIndex === 'playerList'" style="padding-top:5px")
|
||||
div(style="display:flex;flex-direction:column;height:100%")
|
||||
div(v-if="currentInstanceWorld.ref.id" style="display:flex")
|
||||
el-popover(placement="right" width="500px" trigger="click" style="height:120px")
|
||||
img.x-link(slot="reference" v-lazy="currentInstanceWorld.ref.thumbnailImageUrl" style="flex:none;width:160px;height:120px;border-radius:4px")
|
||||
img.x-link(v-lazy="currentInstanceWorld.ref.imageUrl" style="width:500px;height:375px" @click="showFullscreenImageDialog(currentInstanceWorld.ref.imageUrl)")
|
||||
div(style="margin-left:10px;display:flex;flex-direction:column;min-width:320px;width:100%")
|
||||
mixin playerListTab
|
||||
.x-container(v-show='$refs.menu && $refs.menu.activeIndex === \'playerList\'' style='padding-top: 5px')
|
||||
div(style='display: flex; flex-direction: column; height: 100%')
|
||||
div(v-if='currentInstanceWorld.ref.id' style='display: flex')
|
||||
el-popover(placement='right' width='500px' trigger='click' style='height: 120px')
|
||||
img.x-link(
|
||||
slot='reference'
|
||||
v-lazy='currentInstanceWorld.ref.thumbnailImageUrl'
|
||||
style='flex: none; width: 160px; height: 120px; border-radius: 4px')
|
||||
img.x-link(
|
||||
v-lazy='currentInstanceWorld.ref.imageUrl'
|
||||
style='width: 500px; height: 375px'
|
||||
@click='showFullscreenImageDialog(currentInstanceWorld.ref.imageUrl)')
|
||||
div(style='margin-left: 10px; display: flex; flex-direction: column; min-width: 320px; width: 100%')
|
||||
div
|
||||
span.x-link(@click="showWorldDialog(currentInstanceWorld.ref.id)" style="font-weight:bold;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1")
|
||||
| #[i.el-icon-s-home(v-show="API.currentUser.$homeLocation && API.currentUser.$homeLocation.worldId === currentInstanceWorld.ref.id" style="margin-right:5px")] {{ currentInstanceWorld.ref.name }}
|
||||
span.x-link(
|
||||
@click='showWorldDialog(currentInstanceWorld.ref.id)'
|
||||
style='font-weight: bold; overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 1')
|
||||
|#[i.el-icon-s-home(v-show='API.currentUser.$homeLocation && API.currentUser.$homeLocation.worldId === currentInstanceWorld.ref.id' style='margin-right: 5px')] {{ currentInstanceWorld.ref.name }}
|
||||
div
|
||||
span.x-link.x-grey(v-text="currentInstanceWorld.ref.authorName" @click="showUserDialog(currentInstanceWorld.ref.authorId)" style="font-family:monospace")
|
||||
div(style="margin-top:5px")
|
||||
el-tag(v-if="currentInstanceWorld.ref.$isLabs" type="primary" effect="plain" size="mini" style="margin-right:5px") {{ $t('dialog.world.tags.labs') }}
|
||||
el-tag(v-else-if="currentInstanceWorld.ref.releaseStatus === 'public'" type="success" effect="plain" size="mini" style="margin-right:5px") {{ $t('dialog.world.tags.public') }}
|
||||
el-tag(v-else-if="currentInstanceWorld.ref.releaseStatus === 'private'" type="danger" effect="plain" size="mini" style="margin-right:5px") {{ $t('dialog.world.tags.private') }}
|
||||
el-tag.x-tag-platform-pc(v-if="currentInstanceWorld.isPC" type="info" effect="plain" size="mini" style="margin-right:5px") PC
|
||||
span.x-grey(v-if="currentInstanceWorld.bundleSizes['standalonewindows']" style="margin-left:5px;border-left:inherit;padding-left:5px") {{ currentInstanceWorld.bundleSizes['standalonewindows'].fileSize }}
|
||||
el-tag.x-tag-platform-quest(v-if="currentInstanceWorld.isQuest" type="info" effect="plain" size="mini" style="margin-right:5px") Android
|
||||
span.x-grey(v-if="currentInstanceWorld.bundleSizes['android']" style="margin-left:5px;border-left:inherit;padding-left:5px") {{ currentInstanceWorld.bundleSizes['android'].fileSize }}
|
||||
el-tag.x-tag-platform-ios(v-if="currentInstanceWorld.isIOS" type="info" effect="plain" size="mini" style="margin-right:5px") iOS
|
||||
span.x-grey(v-if="currentInstanceWorld.bundleSizes['ios']" style="margin-left:5px;border-left:inherit;padding-left:5px") {{ currentInstanceWorld.bundleSizes['ios'].fileSize }}
|
||||
el-tag(v-if="currentInstanceWorld.avatarScalingDisabled" type="warning" effect="plain" size="mini" style="margin-right:5px;margin-top:5px") {{ $t('dialog.world.tags.avatar_scaling_disabled') }}
|
||||
el-tag(v-if="currentInstanceWorld.inCache" type="info" effect="plain" size="mini" style="margin-right:5px")
|
||||
span(v-text="currentInstanceWorld.cacheSize")
|
||||
| {{ $t('dialog.world.tags.cache') }}
|
||||
div(style="margin-top:5px")
|
||||
location-world(:locationobject="currentInstanceLocation" :currentuserid="API.currentUser.id")
|
||||
span(v-if="lastLocation.playerList.size > 0" style="margin-left:5px")
|
||||
span.x-link.x-grey(
|
||||
v-text='currentInstanceWorld.ref.authorName'
|
||||
@click='showUserDialog(currentInstanceWorld.ref.authorId)'
|
||||
style='font-family: monospace')
|
||||
div(style='margin-top: 5px')
|
||||
el-tag(
|
||||
v-if='currentInstanceWorld.ref.$isLabs'
|
||||
type='primary'
|
||||
effect='plain'
|
||||
size='mini'
|
||||
style='margin-right: 5px') {{ $t('dialog.world.tags.labs') }}
|
||||
el-tag(
|
||||
v-else-if='currentInstanceWorld.ref.releaseStatus === "public"'
|
||||
type='success'
|
||||
effect='plain'
|
||||
size='mini'
|
||||
style='margin-right: 5px') {{ $t('dialog.world.tags.public') }}
|
||||
el-tag(
|
||||
v-else-if='currentInstanceWorld.ref.releaseStatus === "private"'
|
||||
type='danger'
|
||||
effect='plain'
|
||||
size='mini'
|
||||
style='margin-right: 5px') {{ $t('dialog.world.tags.private') }}
|
||||
el-tag.x-tag-platform-pc(
|
||||
v-if='currentInstanceWorld.isPC'
|
||||
type='info'
|
||||
effect='plain'
|
||||
size='mini'
|
||||
style='margin-right: 5px') PC
|
||||
span.x-grey(
|
||||
v-if='currentInstanceWorld.bundleSizes["standalonewindows"]'
|
||||
style='margin-left: 5px; border-left: inherit; padding-left: 5px') {{ currentInstanceWorld.bundleSizes['standalonewindows'].fileSize }}
|
||||
el-tag.x-tag-platform-quest(
|
||||
v-if='currentInstanceWorld.isQuest'
|
||||
type='info'
|
||||
effect='plain'
|
||||
size='mini'
|
||||
style='margin-right: 5px') Android
|
||||
span.x-grey(
|
||||
v-if='currentInstanceWorld.bundleSizes["android"]'
|
||||
style='margin-left: 5px; border-left: inherit; padding-left: 5px') {{ currentInstanceWorld.bundleSizes['android'].fileSize }}
|
||||
el-tag.x-tag-platform-ios(
|
||||
v-if='currentInstanceWorld.isIOS'
|
||||
type='info'
|
||||
effect='plain'
|
||||
size='mini'
|
||||
style='margin-right: 5px') iOS
|
||||
span.x-grey(
|
||||
v-if='currentInstanceWorld.bundleSizes["ios"]'
|
||||
style='margin-left: 5px; border-left: inherit; padding-left: 5px') {{ currentInstanceWorld.bundleSizes['ios'].fileSize }}
|
||||
el-tag(
|
||||
v-if='currentInstanceWorld.avatarScalingDisabled'
|
||||
type='warning'
|
||||
effect='plain'
|
||||
size='mini'
|
||||
style='margin-right: 5px; margin-top: 5px') {{ $t('dialog.world.tags.avatar_scaling_disabled') }}
|
||||
el-tag(
|
||||
v-if='currentInstanceWorld.inCache'
|
||||
type='info'
|
||||
effect='plain'
|
||||
size='mini'
|
||||
style='margin-right: 5px')
|
||||
span(v-text='currentInstanceWorld.cacheSize')
|
||||
|
|
||||
| {{ $t('dialog.world.tags.cache') }}
|
||||
div(style='margin-top: 5px')
|
||||
location-world(
|
||||
:locationobject='currentInstanceLocation'
|
||||
:currentuserid='API.currentUser.id')
|
||||
span(v-if='lastLocation.playerList.size > 0' style='margin-left: 5px')
|
||||
| {{ lastLocation.playerList.size }}
|
||||
| #[template(v-if="lastLocation.friendList.size > 0") ({{ lastLocation.friendList.size }})]
|
||||
| ― #[timer(v-if="lastLocation.date" :epoch="lastLocation.date")]
|
||||
div(style="margin-top:5px")
|
||||
span(v-show="currentInstanceWorld.ref.name !== currentInstanceWorld.ref.description" v-text="currentInstanceWorld.ref.description" :style="{fontSize: '12px', overflow: 'hidden', textOverflow: 'ellipsis', display:'-webkit-box', WebkitBoxOrient: 'vertical', WebkitLineClamp: currentInstanceWorldDescriptionExpanded ? 'none' : '2'}")
|
||||
div(style="display:flex;justify-content:end")
|
||||
el-button(v-if="currentInstanceWorld.ref.description.length > 50 && !currentInstanceWorldDescriptionExpanded" type="text" size="mini" @click="currentInstanceWorldDescriptionExpanded = true") {{ !currentInstanceWorldDescriptionExpanded && 'Show more' }}
|
||||
div(style="display:flex;flex-direction:column;margin-left:20px")
|
||||
.x-friend-item(style="cursor:default")
|
||||
| #[template(v-if='lastLocation.friendList.size > 0') ({{ lastLocation.friendList.size }})]
|
||||
| ― #[timer(v-if='lastLocation.date' :epoch='lastLocation.date')]
|
||||
div(style='margin-top: 5px')
|
||||
span(
|
||||
v-show='currentInstanceWorld.ref.name !== currentInstanceWorld.ref.description'
|
||||
v-text='currentInstanceWorld.ref.description'
|
||||
:style='{ fontSize: "12px", overflow: "hidden", textOverflow: "ellipsis", display: "-webkit-box", WebkitBoxOrient: "vertical", WebkitLineClamp: currentInstanceWorldDescriptionExpanded ? "none" : "2" }')
|
||||
div(style='display: flex; justify-content: end')
|
||||
el-button(
|
||||
v-if='currentInstanceWorld.ref.description.length > 50 && !currentInstanceWorldDescriptionExpanded'
|
||||
type='text'
|
||||
size='mini'
|
||||
@click='currentInstanceWorldDescriptionExpanded = true') {{ !currentInstanceWorldDescriptionExpanded && 'Show more' }}
|
||||
div(style='display: flex; flex-direction: column; margin-left: 20px')
|
||||
.x-friend-item(style='cursor: default')
|
||||
.detail
|
||||
span.name {{ $t('dialog.world.info.capacity') }}
|
||||
span.extra {{ currentInstanceWorld.ref.recommendedCapacity | commaNumber }} ({{ currentInstanceWorld.ref.capacity | commaNumber }})
|
||||
.x-friend-item(style="cursor:default")
|
||||
.x-friend-item(style='cursor: default')
|
||||
.detail
|
||||
span.name {{ $t('dialog.world.info.last_updated') }}
|
||||
span.extra {{ currentInstanceWorld.lastUpdated | formatDate('long') }}
|
||||
.x-friend-item(style="cursor:default")
|
||||
.x-friend-item(style='cursor: default')
|
||||
.detail
|
||||
span.name {{ $t('dialog.world.info.created_at') }}
|
||||
span.extra {{ currentInstanceWorld.ref.created_at | formatDate('long') }}
|
||||
div.photon-event-table(v-if="photonLoggingEnabled")
|
||||
div(style="position:absolute;width:600px;margin-left:215px;z-index:1")
|
||||
el-select(v-model="photonEventTableTypeFilter" @change="photonEventTableFilterChange" multiple clearable collapse-tags style="flex:1;width:220px" :placeholder="$t('view.player_list.photon.filter_placeholder')")
|
||||
el-option(v-for="type in photonEventTableTypeFilterList" :key="type" :label="type" :value="type")
|
||||
el-input(v-model="photonEventTableFilter" @input="photonEventTableFilterChange" :placeholder="$t('view.player_list.photon.search_placeholder')" clearable style="width:150px;margin-left:10px")
|
||||
el-button(@click="showChatboxBlacklistDialog" style="margin-left:10px") {{ $t('view.player_list.photon.chatbox_blacklist') }}
|
||||
el-tooltip(placement="bottom" :content="$t('view.player_list.photon.status_tooltip')" :disabled="hideTooltips")
|
||||
div(style="display:inline-block;margin-left:15px;font-size:14px;vertical-align:text-top;margin-top:1px")
|
||||
span(v-if="ipcEnabled && !photonEventIcon") 🟢
|
||||
span(v-else-if="ipcEnabled") ⚪
|
||||
.photon-event-table(v-if='photonLoggingEnabled')
|
||||
div(style='position: absolute; width: 600px; margin-left: 215px; z-index: 1')
|
||||
el-select(
|
||||
v-model='photonEventTableTypeFilter'
|
||||
@change='photonEventTableFilterChange'
|
||||
multiple
|
||||
clearable
|
||||
collapse-tags
|
||||
style='flex: 1; width: 220px'
|
||||
:placeholder='$t("view.player_list.photon.filter_placeholder")')
|
||||
el-option(
|
||||
v-for='type in photonEventTableTypeFilterList'
|
||||
:key='type'
|
||||
:label='type'
|
||||
:value='type')
|
||||
el-input(
|
||||
v-model='photonEventTableFilter'
|
||||
@input='photonEventTableFilterChange'
|
||||
:placeholder='$t("view.player_list.photon.search_placeholder")'
|
||||
clearable
|
||||
style='width: 150px; margin-left: 10px')
|
||||
el-button(@click='showChatboxBlacklistDialog' style='margin-left: 10px') {{ $t('view.player_list.photon.chatbox_blacklist') }}
|
||||
el-tooltip(
|
||||
placement='bottom'
|
||||
:content='$t("view.player_list.photon.status_tooltip")'
|
||||
:disabled='hideTooltips')
|
||||
div(
|
||||
style='display: inline-block; margin-left: 15px; font-size: 14px; vertical-align: text-top; margin-top: 1px')
|
||||
span(v-if='ipcEnabled && !photonEventIcon') 🟢
|
||||
span(v-else-if='ipcEnabled') ⚪
|
||||
span(v-else) 🔴
|
||||
el-tabs(type="card")
|
||||
el-tab-pane(:label="$t('view.player_list.photon.current')")
|
||||
data-tables(v-bind="photonEventTable" style="margin-bottom:10px")
|
||||
el-table-column(:label="$t('table.playerList.date')" prop="created_at" width="120")
|
||||
template(#default="scope")
|
||||
el-tooltip(placement="right")
|
||||
el-tabs(type='card')
|
||||
el-tab-pane(:label='$t("view.player_list.photon.current")')
|
||||
data-tables(v-bind='photonEventTable' style='margin-bottom: 10px')
|
||||
el-table-column(:label='$t("table.playerList.date")' prop='created_at' width='120')
|
||||
template(#default='scope')
|
||||
el-tooltip(placement='right')
|
||||
template(#content)
|
||||
span {{ scope.row.created_at | formatDate('long') }}
|
||||
span {{ scope.row.created_at | formatDate('short') }}
|
||||
el-table-column(:label="$t('table.playerList.user')" prop="photonId" width="160")
|
||||
template(#default="scope")
|
||||
span.x-link(v-text="scope.row.displayName" @click="showUserFromPhotonId(scope.row.photonId)" style="padding-right:10px")
|
||||
el-table-column(:label="$t('table.playerList.type')" prop="type" width="140")
|
||||
el-table-column(:label="$t('table.playerList.detail')" prop="text")
|
||||
template(#default="scope")
|
||||
template(v-if="scope.row.type === 'ChangeAvatar'")
|
||||
span.x-link(v-text="scope.row.avatar.name" @click="showAvatarDialog(scope.row.avatar.id)")
|
||||
el-table-column(:label='$t("table.playerList.user")' prop='photonId' width='160')
|
||||
template(#default='scope')
|
||||
span.x-link(
|
||||
v-text='scope.row.displayName'
|
||||
@click='showUserFromPhotonId(scope.row.photonId)'
|
||||
style='padding-right: 10px')
|
||||
el-table-column(:label='$t("table.playerList.type")' prop='type' width='140')
|
||||
el-table-column(:label='$t("table.playerList.detail")' prop='text')
|
||||
template(#default='scope')
|
||||
template(v-if='scope.row.type === "ChangeAvatar"')
|
||||
span.x-link(
|
||||
v-text='scope.row.avatar.name'
|
||||
@click='showAvatarDialog(scope.row.avatar.id)')
|
||||
|
|
||||
span(v-if="!scope.row.inCache" style="color:#aaa") #[i.el-icon-download]
|
||||
span.avatar-info-public(v-if="scope.row.avatar.releaseStatus === 'public'") {{ $t('dialog.avatar.labels.public') }}
|
||||
span.avatar-info-own(v-else-if="scope.row.avatar.releaseStatus === 'private'") {{ $t('dialog.avatar.labels.private') }}
|
||||
template(v-if="scope.row.avatar.description && scope.row.avatar.name !== scope.row.avatar.description")
|
||||
| - {{ scope.row.avatar.description }}
|
||||
template(v-else-if="scope.row.type === 'ChangeStatus'")
|
||||
template(v-if="scope.row.status !== scope.row.previousStatus")
|
||||
el-tooltip(placement="top")
|
||||
span(v-if='!scope.row.inCache' style='color: #aaa') #[i.el-icon-download]
|
||||
span.avatar-info-public(v-if='scope.row.avatar.releaseStatus === "public"') {{ $t('dialog.avatar.labels.public') }}
|
||||
span.avatar-info-own(v-else-if='scope.row.avatar.releaseStatus === "private"') {{ $t('dialog.avatar.labels.private') }}
|
||||
template(
|
||||
v-if='scope.row.avatar.description && scope.row.avatar.name !== scope.row.avatar.description')
|
||||
|
|
||||
| - {{ scope.row.avatar.description }}
|
||||
template(v-else-if='scope.row.type === "ChangeStatus"')
|
||||
template(v-if='scope.row.status !== scope.row.previousStatus')
|
||||
el-tooltip(placement='top')
|
||||
template(#content)
|
||||
span(v-if="scope.row.previousStatus === 'active'") {{ $t('dialog.user.status.active') }}
|
||||
span(v-else-if="scope.row.previousStatus === 'join me'") {{ $t('dialog.user.status.join_me') }}
|
||||
span(v-else-if="scope.row.previousStatus === 'ask me'") {{ $t('dialog.user.status.ask_me') }}
|
||||
span(v-else-if="scope.row.previousStatus === 'busy'") {{ $t('dialog.user.status.busy') }}
|
||||
span(v-if='scope.row.previousStatus === "active"') {{ $t('dialog.user.status.active') }}
|
||||
span(v-else-if='scope.row.previousStatus === "join me"') {{ $t('dialog.user.status.join_me') }}
|
||||
span(v-else-if='scope.row.previousStatus === "ask me"') {{ $t('dialog.user.status.ask_me') }}
|
||||
span(v-else-if='scope.row.previousStatus === "busy"') {{ $t('dialog.user.status.busy') }}
|
||||
span(v-else) {{ $t('dialog.user.status.offline') }}
|
||||
i.x-user-status(:class="statusClass(scope.row.previousStatus)")
|
||||
i.x-user-status(:class='statusClass(scope.row.previousStatus)')
|
||||
span
|
||||
i.el-icon-right
|
||||
el-tooltip(placement="top")
|
||||
el-tooltip(placement='top')
|
||||
template(#content)
|
||||
span(v-if="scope.row.status === 'active'") {{ $t('dialog.user.status.active') }}
|
||||
span(v-else-if="scope.row.status === 'join me'") {{ $t('dialog.user.status.join_me') }}
|
||||
span(v-else-if="scope.row.status === 'ask me'") {{ $t('dialog.user.status.ask_me') }}
|
||||
span(v-else-if="scope.row.status === 'busy'") {{ $t('dialog.user.status.busy') }}
|
||||
span(v-if='scope.row.status === "active"') {{ $t('dialog.user.status.active') }}
|
||||
span(v-else-if='scope.row.status === "join me"') {{ $t('dialog.user.status.join_me') }}
|
||||
span(v-else-if='scope.row.status === "ask me"') {{ $t('dialog.user.status.ask_me') }}
|
||||
span(v-else-if='scope.row.status === "busy"') {{ $t('dialog.user.status.busy') }}
|
||||
span(v-else) {{ $t('dialog.user.status.offline') }}
|
||||
i.x-user-status(:class="statusClass(scope.row.status)" style="margin-right:5px")
|
||||
span(v-if="scope.row.statusDescription !== scope.row.previousStatusDescription" v-text="scope.row.statusDescription")
|
||||
template(v-else-if="scope.row.type === 'ChangeGroup'")
|
||||
span.x-link(v-if="scope.row.previousGroupName" v-text="scope.row.previousGroupName" @click="showGroupDialog(scope.row.previousGroupId)" style="margin-right:5px")
|
||||
span.x-link(v-else v-text="scope.row.previousGroupId" @click="showGroupDialog(scope.row.previousGroupId)" style="margin-right:5px")
|
||||
i.x-user-status(
|
||||
:class='statusClass(scope.row.status)'
|
||||
style='margin-right: 5px')
|
||||
span(
|
||||
v-if='scope.row.statusDescription !== scope.row.previousStatusDescription'
|
||||
v-text='scope.row.statusDescription')
|
||||
template(v-else-if='scope.row.type === "ChangeGroup"')
|
||||
span.x-link(
|
||||
v-if='scope.row.previousGroupName'
|
||||
v-text='scope.row.previousGroupName'
|
||||
@click='showGroupDialog(scope.row.previousGroupId)'
|
||||
style='margin-right: 5px')
|
||||
span.x-link(
|
||||
v-else
|
||||
v-text='scope.row.previousGroupId'
|
||||
@click='showGroupDialog(scope.row.previousGroupId)'
|
||||
style='margin-right: 5px')
|
||||
span
|
||||
i.el-icon-right
|
||||
span.x-link(v-if="scope.row.groupName" v-text="scope.row.groupName" @click="showGroupDialog(scope.row.groupId)" style="margin-left:5px")
|
||||
span.x-link(v-else v-text="scope.row.groupId" @click="showGroupDialog(scope.row.groupId)" style="margin-left:5px")
|
||||
span.x-link(v-else-if="scope.row.type === 'PortalSpawn'" @click="showWorldDialog(scope.row.location, scope.row.shortName)")
|
||||
location(:location="scope.row.location" :hint="scope.row.worldName" :grouphint="scope.row.groupName" :link="false")
|
||||
span(v-else-if="scope.row.type === 'ChatBoxMessage'" v-text="scope.row.text")
|
||||
span(v-else-if="scope.row.type === 'OnPlayerJoined'")
|
||||
span(v-if="scope.row.platform === 'Desktop'" style="color:#409eff") Desktop
|
||||
span(v-else-if="scope.row.platform === 'VR'" style="color:#409eff") VR
|
||||
span(v-else-if="scope.row.platform === 'Quest'" style="color:#67c23a") Android
|
||||
span.x-link(v-text="scope.row.avatar.name" @click="showAvatarDialog(scope.row.avatar.id)")
|
||||
span.x-link(
|
||||
v-if='scope.row.groupName'
|
||||
v-text='scope.row.groupName'
|
||||
@click='showGroupDialog(scope.row.groupId)'
|
||||
style='margin-left: 5px')
|
||||
span.x-link(
|
||||
v-else
|
||||
v-text='scope.row.groupId'
|
||||
@click='showGroupDialog(scope.row.groupId)'
|
||||
style='margin-left: 5px')
|
||||
span.x-link(
|
||||
v-else-if='scope.row.type === "PortalSpawn"'
|
||||
@click='showWorldDialog(scope.row.location, scope.row.shortName)')
|
||||
location(
|
||||
:location='scope.row.location'
|
||||
:hint='scope.row.worldName'
|
||||
:grouphint='scope.row.groupName'
|
||||
:link='false')
|
||||
span(v-else-if='scope.row.type === "ChatBoxMessage"' v-text='scope.row.text')
|
||||
span(v-else-if='scope.row.type === "OnPlayerJoined"')
|
||||
span(v-if='scope.row.platform === "Desktop"' style='color: #409eff') Desktop
|
||||
span(v-else-if='scope.row.platform === "VR"' style='color: #409eff') VR
|
||||
span(v-else-if='scope.row.platform === "Quest"' style='color: #67c23a') Android
|
||||
span.x-link(
|
||||
v-text='scope.row.avatar.name'
|
||||
@click='showAvatarDialog(scope.row.avatar.id)')
|
||||
|
|
||||
span(v-if="!scope.row.inCache" style="color:#aaa") #[i.el-icon-download]
|
||||
span.avatar-info-public(v-if="scope.row.avatar.releaseStatus === 'public'") {{ $t('dialog.avatar.labels.public') }}
|
||||
span.avatar-info-own(v-else-if="scope.row.avatar.releaseStatus === 'private'") {{ $t('dialog.avatar.labels.private') }}
|
||||
span(v-else-if="scope.row.type === 'SpawnEmoji'")
|
||||
span(v-if="scope.row.imageUrl")
|
||||
el-tooltip(placement="right")
|
||||
span(v-if='!scope.row.inCache' style='color: #aaa') #[i.el-icon-download]
|
||||
span.avatar-info-public(v-if='scope.row.avatar.releaseStatus === "public"') {{ $t('dialog.avatar.labels.public') }}
|
||||
span.avatar-info-own(v-else-if='scope.row.avatar.releaseStatus === "private"') {{ $t('dialog.avatar.labels.private') }}
|
||||
span(v-else-if='scope.row.type === "SpawnEmoji"')
|
||||
span(v-if='scope.row.imageUrl')
|
||||
el-tooltip(placement='right')
|
||||
template(#content)
|
||||
img.friends-list-avatar(v-lazy="scope.row.imageUrl" style="height:500px;cursor:pointer" @click="showFullscreenImageDialog(scope.row.imageUrl)")
|
||||
span(v-text="scope.row.fileId")
|
||||
span(v-else v-text="scope.row.text")
|
||||
span(v-else-if="scope.row.color === 'yellow'" v-text="scope.row.text" style="color:yellow")
|
||||
span(v-else v-text="scope.row.text")
|
||||
el-tab-pane(:label="$t('view.player_list.photon.previous')")
|
||||
data-tables(v-bind="photonEventTablePrevious" style="margin-bottom:10px")
|
||||
el-table-column(:label="$t('table.playerList.date')" prop="created_at" width="120")
|
||||
template(#default="scope")
|
||||
el-tooltip(placement="right")
|
||||
img.friends-list-avatar(
|
||||
v-lazy='scope.row.imageUrl'
|
||||
style='height: 500px; cursor: pointer'
|
||||
@click='showFullscreenImageDialog(scope.row.imageUrl)')
|
||||
span(v-text='scope.row.fileId')
|
||||
span(v-else v-text='scope.row.text')
|
||||
span(
|
||||
v-else-if='scope.row.color === "yellow"'
|
||||
v-text='scope.row.text'
|
||||
style='color: yellow')
|
||||
span(v-else v-text='scope.row.text')
|
||||
el-tab-pane(:label='$t("view.player_list.photon.previous")')
|
||||
data-tables(v-bind='photonEventTablePrevious' style='margin-bottom: 10px')
|
||||
el-table-column(:label='$t("table.playerList.date")' prop='created_at' width='120')
|
||||
template(#default='scope')
|
||||
el-tooltip(placement='right')
|
||||
template(#content)
|
||||
span {{ scope.row.created_at | formatDate('long') }}
|
||||
span {{ scope.row.created_at | formatDate('short') }}
|
||||
el-table-column(:label="$t('table.playerList.user')" prop="photonId" width="160")
|
||||
template(#default="scope")
|
||||
span.x-link(v-text="scope.row.displayName" @click="lookupUser(scope.row)" style="padding-right:10px")
|
||||
el-table-column(:label="$t('table.playerList.type')" prop="type" width="140")
|
||||
el-table-column(:label="$t('table.playerList.detail')" prop="text")
|
||||
template(#default="scope")
|
||||
template(v-if="scope.row.type === 'ChangeAvatar'")
|
||||
span.x-link(v-text="scope.row.avatar.name" @click="showAvatarDialog(scope.row.avatar.id)")
|
||||
el-table-column(:label='$t("table.playerList.user")' prop='photonId' width='160')
|
||||
template(#default='scope')
|
||||
span.x-link(
|
||||
v-text='scope.row.displayName'
|
||||
@click='lookupUser(scope.row)'
|
||||
style='padding-right: 10px')
|
||||
el-table-column(:label='$t("table.playerList.type")' prop='type' width='140')
|
||||
el-table-column(:label='$t("table.playerList.detail")' prop='text')
|
||||
template(#default='scope')
|
||||
template(v-if='scope.row.type === "ChangeAvatar"')
|
||||
span.x-link(
|
||||
v-text='scope.row.avatar.name'
|
||||
@click='showAvatarDialog(scope.row.avatar.id)')
|
||||
|
|
||||
span(v-if="!scope.row.inCache" style="color:#aaa") #[i.el-icon-download]
|
||||
span.avatar-info-public(v-if="scope.row.avatar.releaseStatus === 'public'") {{ $t('dialog.avatar.labels.public') }}
|
||||
span.avatar-info-own(v-else-if="scope.row.avatar.releaseStatus === 'private'") {{ $t('dialog.avatar.labels.private') }}
|
||||
template(v-if="scope.row.avatar.description && scope.row.avatar.name !== scope.row.avatar.description")
|
||||
| - {{ scope.row.avatar.description }}
|
||||
template(v-else-if="scope.row.type === 'ChangeStatus'")
|
||||
template(v-if="scope.row.status !== scope.row.previousStatus")
|
||||
el-tooltip(placement="top")
|
||||
span(v-if='!scope.row.inCache' style='color: #aaa') #[i.el-icon-download]
|
||||
span.avatar-info-public(v-if='scope.row.avatar.releaseStatus === "public"') {{ $t('dialog.avatar.labels.public') }}
|
||||
span.avatar-info-own(v-else-if='scope.row.avatar.releaseStatus === "private"') {{ $t('dialog.avatar.labels.private') }}
|
||||
template(
|
||||
v-if='scope.row.avatar.description && scope.row.avatar.name !== scope.row.avatar.description')
|
||||
|
|
||||
| - {{ scope.row.avatar.description }}
|
||||
template(v-else-if='scope.row.type === "ChangeStatus"')
|
||||
template(v-if='scope.row.status !== scope.row.previousStatus')
|
||||
el-tooltip(placement='top')
|
||||
template(#content)
|
||||
span(v-if="scope.row.previousStatus === 'active'") {{ $t('dialog.user.status.active') }}
|
||||
span(v-else-if="scope.row.previousStatus === 'join me'") {{ $t('dialog.user.status.join_me') }}
|
||||
span(v-else-if="scope.row.previousStatus === 'ask me'") {{ $t('dialog.user.status.ask_me') }}
|
||||
span(v-else-if="scope.row.previousStatus === 'busy'") {{ $t('dialog.user.status.busy') }}
|
||||
span(v-if='scope.row.previousStatus === "active"') {{ $t('dialog.user.status.active') }}
|
||||
span(v-else-if='scope.row.previousStatus === "join me"') {{ $t('dialog.user.status.join_me') }}
|
||||
span(v-else-if='scope.row.previousStatus === "ask me"') {{ $t('dialog.user.status.ask_me') }}
|
||||
span(v-else-if='scope.row.previousStatus === "busy"') {{ $t('dialog.user.status.busy') }}
|
||||
span(v-else) {{ $t('dialog.user.status.offline') }}
|
||||
i.x-user-status(:class="statusClass(scope.row.previousStatus)")
|
||||
i.x-user-status(:class='statusClass(scope.row.previousStatus)')
|
||||
span
|
||||
i.el-icon-right
|
||||
el-tooltip(placement="top")
|
||||
el-tooltip(placement='top')
|
||||
template(#content)
|
||||
span(v-if="scope.row.status === 'active'") {{ $t('dialog.user.status.active') }}
|
||||
span(v-else-if="scope.row.status === 'join me'") {{ $t('dialog.user.status.join_me') }}
|
||||
span(v-else-if="scope.row.status === 'ask me'") {{ $t('dialog.user.status.ask_me') }}
|
||||
span(v-else-if="scope.row.status === 'busy'") {{ $t('dialog.user.status.busy') }}
|
||||
span(v-if='scope.row.status === "active"') {{ $t('dialog.user.status.active') }}
|
||||
span(v-else-if='scope.row.status === "join me"') {{ $t('dialog.user.status.join_me') }}
|
||||
span(v-else-if='scope.row.status === "ask me"') {{ $t('dialog.user.status.ask_me') }}
|
||||
span(v-else-if='scope.row.status === "busy"') {{ $t('dialog.user.status.busy') }}
|
||||
span(v-else) {{ $t('dialog.user.status.offline') }}
|
||||
i.x-user-status(:class="statusClass(scope.row.status)" style="margin-right:5px")
|
||||
span(v-if="scope.row.statusDescription !== scope.row.previousStatusDescription" v-text="scope.row.statusDescription")
|
||||
template(v-else-if="scope.row.type === 'ChangeGroup'")
|
||||
span.x-link(v-if="scope.row.previousGroupName" v-text="scope.row.previousGroupName" @click="showGroupDialog(scope.row.previousGroupId)" style="margin-right:5px")
|
||||
span.x-link(v-else v-text="scope.row.previousGroupId" @click="showGroupDialog(scope.row.previousGroupId)" style="margin-right:5px")
|
||||
i.x-user-status(
|
||||
:class='statusClass(scope.row.status)'
|
||||
style='margin-right: 5px')
|
||||
span(
|
||||
v-if='scope.row.statusDescription !== scope.row.previousStatusDescription'
|
||||
v-text='scope.row.statusDescription')
|
||||
template(v-else-if='scope.row.type === "ChangeGroup"')
|
||||
span.x-link(
|
||||
v-if='scope.row.previousGroupName'
|
||||
v-text='scope.row.previousGroupName'
|
||||
@click='showGroupDialog(scope.row.previousGroupId)'
|
||||
style='margin-right: 5px')
|
||||
span.x-link(
|
||||
v-else
|
||||
v-text='scope.row.previousGroupId'
|
||||
@click='showGroupDialog(scope.row.previousGroupId)'
|
||||
style='margin-right: 5px')
|
||||
span
|
||||
i.el-icon-right
|
||||
span.x-link(v-if="scope.row.groupName" v-text="scope.row.groupName" @click="showGroupDialog(scope.row.groupId)" style="margin-left:5px")
|
||||
span.x-link(v-else v-text="scope.row.groupId" @click="showGroupDialog(scope.row.groupId)" style="margin-left:5px")
|
||||
span.x-link(v-else-if="scope.row.type === 'PortalSpawn'" @click="showWorldDialog(scope.row.location, scope.row.shortName)")
|
||||
location(:location="scope.row.location" :hint="scope.row.worldName" :grouphint="scope.row.groupName" :link="false")
|
||||
span(v-else-if="scope.row.type === 'ChatBoxMessage'" v-text="scope.row.text")
|
||||
span(v-else-if="scope.row.type === 'OnPlayerJoined'")
|
||||
span(v-if="scope.row.platform === 'Desktop'" style="color:#409eff") Desktop
|
||||
span(v-else-if="scope.row.platform === 'VR'" style="color:#409eff") VR
|
||||
span(v-else-if="scope.row.platform === 'Quest'" style="color:#67c23a") Android
|
||||
span.x-link(v-text="scope.row.avatar.name" @click="showAvatarDialog(scope.row.avatar.id)")
|
||||
span.x-link(
|
||||
v-if='scope.row.groupName'
|
||||
v-text='scope.row.groupName'
|
||||
@click='showGroupDialog(scope.row.groupId)'
|
||||
style='margin-left: 5px')
|
||||
span.x-link(
|
||||
v-else
|
||||
v-text='scope.row.groupId'
|
||||
@click='showGroupDialog(scope.row.groupId)'
|
||||
style='margin-left: 5px')
|
||||
span.x-link(
|
||||
v-else-if='scope.row.type === "PortalSpawn"'
|
||||
@click='showWorldDialog(scope.row.location, scope.row.shortName)')
|
||||
location(
|
||||
:location='scope.row.location'
|
||||
:hint='scope.row.worldName'
|
||||
:grouphint='scope.row.groupName'
|
||||
:link='false')
|
||||
span(v-else-if='scope.row.type === "ChatBoxMessage"' v-text='scope.row.text')
|
||||
span(v-else-if='scope.row.type === "OnPlayerJoined"')
|
||||
span(v-if='scope.row.platform === "Desktop"' style='color: #409eff') Desktop
|
||||
span(v-else-if='scope.row.platform === "VR"' style='color: #409eff') VR
|
||||
span(v-else-if='scope.row.platform === "Quest"' style='color: #67c23a') Android
|
||||
span.x-link(
|
||||
v-text='scope.row.avatar.name'
|
||||
@click='showAvatarDialog(scope.row.avatar.id)')
|
||||
|
|
||||
span(v-if="!scope.row.inCache" style="color:#aaa") #[i.el-icon-download]
|
||||
span.avatar-info-public(v-if="scope.row.avatar.releaseStatus === 'public'") {{ $t('dialog.avatar.labels.public') }}
|
||||
span.avatar-info-own(v-else-if="scope.row.avatar.releaseStatus === 'private'") {{ $t('dialog.avatar.labels.private') }}
|
||||
span(v-else-if="scope.row.type === 'SpawnEmoji'")
|
||||
span(v-if="scope.row.imageUrl")
|
||||
el-tooltip(placement="right")
|
||||
span(v-if='!scope.row.inCache' style='color: #aaa') #[i.el-icon-download]
|
||||
span.avatar-info-public(v-if='scope.row.avatar.releaseStatus === "public"') {{ $t('dialog.avatar.labels.public') }}
|
||||
span.avatar-info-own(v-else-if='scope.row.avatar.releaseStatus === "private"') {{ $t('dialog.avatar.labels.private') }}
|
||||
span(v-else-if='scope.row.type === "SpawnEmoji"')
|
||||
span(v-if='scope.row.imageUrl')
|
||||
el-tooltip(placement='right')
|
||||
template(#content)
|
||||
img.friends-list-avatar(v-lazy="scope.row.imageUrl" style="height:500px;cursor:pointer" @click="showFullscreenImageDialog(scope.row.imageUrl)")
|
||||
span(v-text="scope.row.fileId")
|
||||
span(v-else v-text="scope.row.text")
|
||||
span(v-else-if="scope.row.color === 'yellow'" v-text="scope.row.text" style="color:yellow")
|
||||
span(v-else v-text="scope.row.text")
|
||||
div.current-instance-table
|
||||
data-tables(v-bind="currentInstanceUserList" @row-click="selectCurrentInstanceRow" style="margin-top:10px;cursor:pointer")
|
||||
el-table-column(:label="$t('table.playerList.avatar')" width="70" prop="photo")
|
||||
template(#default="scope")
|
||||
template(v-if="userImage(scope.row.ref)")
|
||||
el-popover(placement="right" height="500px" trigger="hover")
|
||||
img.friends-list-avatar(slot="reference" v-lazy="userImage(scope.row.ref)")
|
||||
img.friends-list-avatar(v-lazy="userImageFull(scope.row.ref)" style="height:500px;cursor:pointer" @click="showFullscreenImageDialog(userImageFull(scope.row.ref))")
|
||||
el-table-column(:label="$t('table.playerList.timer')" width="80" prop="timer" sortable)
|
||||
template(#default="scope")
|
||||
timer(:epoch="scope.row.timer")
|
||||
el-table-column(v-if="photonLoggingEnabled" :label="$t('table.playerList.photonId')" width="110" prop="photonId" sortable)
|
||||
template(#default="scope")
|
||||
template(v-if="chatboxUserBlacklist.has(scope.row.ref.id)")
|
||||
el-tooltip(placement="left" content="Unblock chatbox messages")
|
||||
el-button(type="text" icon="el-icon-turn-off-microphone" size="mini" style="color:red;margin-right:5px" @click.stop="deleteChatboxUserBlacklist(scope.row.ref.id)")
|
||||
img.friends-list-avatar(
|
||||
v-lazy='scope.row.imageUrl'
|
||||
style='height: 500px; cursor: pointer'
|
||||
@click='showFullscreenImageDialog(scope.row.imageUrl)')
|
||||
span(v-text='scope.row.fileId')
|
||||
span(v-else v-text='scope.row.text')
|
||||
span(
|
||||
v-else-if='scope.row.color === "yellow"'
|
||||
v-text='scope.row.text'
|
||||
style='color: yellow')
|
||||
span(v-else v-text='scope.row.text')
|
||||
.current-instance-table
|
||||
data-tables(
|
||||
v-bind='currentInstanceUserList'
|
||||
@row-click='selectCurrentInstanceRow'
|
||||
style='margin-top: 10px; cursor: pointer')
|
||||
el-table-column(:label='$t("table.playerList.avatar")' width='70' prop='photo')
|
||||
template(#default='scope')
|
||||
template(v-if='userImage(scope.row.ref)')
|
||||
el-popover(placement='right' height='500px' trigger='hover')
|
||||
img.friends-list-avatar(slot='reference' v-lazy='userImage(scope.row.ref)')
|
||||
img.friends-list-avatar(
|
||||
v-lazy='userImageFull(scope.row.ref)'
|
||||
style='height: 500px; cursor: pointer'
|
||||
@click='showFullscreenImageDialog(userImageFull(scope.row.ref))')
|
||||
el-table-column(:label='$t("table.playerList.timer")' width='80' prop='timer' sortable)
|
||||
template(#default='scope')
|
||||
timer(:epoch='scope.row.timer')
|
||||
el-table-column(
|
||||
v-if='photonLoggingEnabled'
|
||||
:label='$t("table.playerList.photonId")'
|
||||
width='110'
|
||||
prop='photonId'
|
||||
sortable)
|
||||
template(#default='scope')
|
||||
template(v-if='chatboxUserBlacklist.has(scope.row.ref.id)')
|
||||
el-tooltip(placement='left' content='Unblock chatbox messages')
|
||||
el-button(
|
||||
type='text'
|
||||
icon='el-icon-turn-off-microphone'
|
||||
size='mini'
|
||||
style='color: red; margin-right: 5px'
|
||||
@click.stop='deleteChatboxUserBlacklist(scope.row.ref.id)')
|
||||
template(v-else)
|
||||
el-tooltip(placement="left" content="Block chatbox messages")
|
||||
el-button(type="text" icon="el-icon-microphone" size="mini" style="margin-right:5px" @click.stop="addChatboxUserBlacklist(scope.row.ref)")
|
||||
span(v-text="scope.row.photonId")
|
||||
el-table-column(:label="$t('table.playerList.icon')" prop="isMaster" width="70" align="center")
|
||||
template(#default="scope")
|
||||
el-tooltip(v-if="scope.row.isMaster" placement="left" content="Instance Master")
|
||||
el-tooltip(placement='left' content='Block chatbox messages')
|
||||
el-button(
|
||||
type='text'
|
||||
icon='el-icon-microphone'
|
||||
size='mini'
|
||||
style='margin-right: 5px'
|
||||
@click.stop='addChatboxUserBlacklist(scope.row.ref)')
|
||||
span(v-text='scope.row.photonId')
|
||||
el-table-column(:label='$t("table.playerList.icon")' prop='isMaster' width='70' align='center')
|
||||
template(#default='scope')
|
||||
el-tooltip(v-if='scope.row.isMaster' placement='left' content='Instance Master')
|
||||
span 👑
|
||||
el-tooltip(v-if="scope.row.isModerator" placement="left" content="Moderator")
|
||||
el-tooltip(v-if='scope.row.isModerator' placement='left' content='Moderator')
|
||||
span ⚔️
|
||||
el-tooltip(v-if="scope.row.isFriend" placement="left" content="Friend")
|
||||
el-tooltip(v-if='scope.row.isFriend' placement='left' content='Friend')
|
||||
span 💚
|
||||
el-tooltip(v-if="scope.row.timeoutTime" placement="left" content="Timeout")
|
||||
span(style="color:red") 🔴{{ scope.row.timeoutTime }}s
|
||||
el-table-column(:label="$t('table.playerList.platform')" prop="inVRMode" width="80")
|
||||
template(#default="scope")
|
||||
template(v-if="scope.row.ref.last_platform")
|
||||
span(v-if="scope.row.ref.last_platform === 'standalonewindows'" style="color:#409eff") PC
|
||||
span(v-else-if="scope.row.ref.last_platform === 'android'" style="color:#67c23a") A
|
||||
span(v-else-if="scope.row.ref.last_platform === 'ios'" style="color:#c7c7ce") iOS
|
||||
el-tooltip(v-if='scope.row.timeoutTime' placement='left' content='Timeout')
|
||||
span(style='color: red') 🔴{{ scope.row.timeoutTime }}s
|
||||
el-table-column(:label='$t("table.playerList.platform")' prop='inVRMode' width='80')
|
||||
template(#default='scope')
|
||||
template(v-if='scope.row.ref.last_platform')
|
||||
span(v-if='scope.row.ref.last_platform === "standalonewindows"' style='color: #409eff') PC
|
||||
span(v-else-if='scope.row.ref.last_platform === "android"' style='color: #67c23a') A
|
||||
span(v-else-if='scope.row.ref.last_platform === "ios"' style='color: #c7c7ce') iOS
|
||||
span(v-else) {{ scope.row.ref.last_platform }}
|
||||
template(v-if="scope.row.inVRMode !== null")
|
||||
span(v-if="scope.row.inVRMode") VR
|
||||
span(v-else-if="scope.row.ref.last_platform === 'android' || scope.row.ref.last_platform === 'ios'") M
|
||||
template(v-if='scope.row.inVRMode !== null')
|
||||
span(v-if='scope.row.inVRMode') VR
|
||||
span(
|
||||
v-else-if='scope.row.ref.last_platform === "android" || scope.row.ref.last_platform === "ios"') M
|
||||
span(v-else) D
|
||||
el-table-column(:label="$t('table.playerList.displayName')" min-width="140" prop="displayName" sortable="custom")
|
||||
template(#default="scope")
|
||||
span(v-if="randomUserColours" v-text="scope.row.ref.displayName" :style="{'color':scope.row.ref.$userColour}")
|
||||
span(v-else v-text="scope.row.ref.displayName")
|
||||
el-table-column(:label="$t('table.playerList.status')" min-width="180" prop="ref.status")
|
||||
template(#default="scope")
|
||||
template(v-if="scope.row.ref.status")
|
||||
i.x-user-status(:class="statusClass(scope.row.ref.status)")
|
||||
span
|
||||
span(v-text="scope.row.ref.statusDescription")
|
||||
el-table-column(
|
||||
:label='$t("table.playerList.displayName")'
|
||||
min-width='140'
|
||||
prop='displayName'
|
||||
sortable='custom')
|
||||
template(#default='scope')
|
||||
span(
|
||||
v-if='randomUserColours'
|
||||
v-text='scope.row.ref.displayName'
|
||||
:style='{ color: scope.row.ref.$userColour }')
|
||||
span(v-else v-text='scope.row.ref.displayName')
|
||||
el-table-column(:label='$t("table.playerList.status")' min-width='180' prop='ref.status')
|
||||
template(#default='scope')
|
||||
template(v-if='scope.row.ref.status')
|
||||
i.x-user-status(:class='statusClass(scope.row.ref.status)')
|
||||
span
|
||||
span(v-text='scope.row.ref.statusDescription')
|
||||
//- el-table-column(label="Group" min-width="180" prop="groupOnNameplate" sortable)
|
||||
//- template(v-once #default="scope")
|
||||
//- span(v-text="scope.row.groupOnNameplate")
|
||||
el-table-column(:label="$t('table.playerList.rank')" width="110" prop="$trustSortNum" sortable="custom")
|
||||
template(#default="scope")
|
||||
span.name(v-text="scope.row.ref.$trustLevel" :class="scope.row.ref.$trustClass")
|
||||
el-table-column(:label="$t('table.playerList.language')" width="100" prop="ref.$languages")
|
||||
template(#default="scope")
|
||||
el-tooltip(v-for="item in scope.row.ref.$languages" :key="item.key" placement="top")
|
||||
el-table-column(
|
||||
:label='$t("table.playerList.rank")'
|
||||
width='110'
|
||||
prop='$trustSortNum'
|
||||
sortable='custom')
|
||||
template(#default='scope')
|
||||
span.name(v-text='scope.row.ref.$trustLevel' :class='scope.row.ref.$trustClass')
|
||||
el-table-column(:label='$t("table.playerList.language")' width='100' prop='ref.$languages')
|
||||
template(#default='scope')
|
||||
el-tooltip(v-for='item in scope.row.ref.$languages' :key='item.key' placement='top')
|
||||
template(#content)
|
||||
span {{ item.value }} ({{ item.key }})
|
||||
span.flags(:class="languageClass(item.key)" style="display:inline-block;margin-right:5px")
|
||||
el-table-column(:label="$t('table.playerList.bioLink')" width="100" prop="ref.bioLinks")
|
||||
template(#default="scope")
|
||||
div(style="display:flex;align-items:center")
|
||||
el-tooltip(v-if="link" v-for="(link, index) in scope.row.ref.bioLinks" :key="index")
|
||||
span.flags(
|
||||
:class='languageClass(item.key)'
|
||||
style='display: inline-block; margin-right: 5px')
|
||||
el-table-column(:label='$t("table.playerList.bioLink")' width='100' prop='ref.bioLinks')
|
||||
template(#default='scope')
|
||||
div(style='display: flex; align-items: center')
|
||||
el-tooltip(v-if='link' v-for='(link, index) in scope.row.ref.bioLinks' :key='index')
|
||||
template(#content)
|
||||
span(v-text="link")
|
||||
img(:src="getFaviconUrl(link)" style="width:16px;height:16px;vertical-align:middle;margin-right:5px;cursor:pointer" @click.stop="openExternalLink(link)")
|
||||
|
||||
span(v-text='link')
|
||||
img(
|
||||
:src='getFaviconUrl(link)'
|
||||
style='width: 16px; height: 16px; vertical-align: middle; margin-right: 5px; cursor: pointer'
|
||||
@click.stop='openExternalLink(link)')
|
||||
|
||||
+339
-132
@@ -1,164 +1,371 @@
|
||||
mixin profileTab()
|
||||
.x-container(v-if="$refs.menu && $refs.menu.activeIndex === 'profile'")
|
||||
div.options-container(style="margin-top:0")
|
||||
mixin profileTab
|
||||
.x-container(v-if='$refs.menu && $refs.menu.activeIndex === "profile"')
|
||||
.options-container(style='margin-top: 0')
|
||||
span.header {{ $t('view.profile.profile.header') }}
|
||||
.x-friend-list(style="margin-top:10px")
|
||||
.x-friend-item(@click="showUserDialog(API.currentUser.id)")
|
||||
.x-friend-list(style='margin-top: 10px')
|
||||
.x-friend-item(@click='showUserDialog(API.currentUser.id)')
|
||||
.avatar
|
||||
img(v-lazy="userImage(API.currentUser)")
|
||||
img(v-lazy='userImage(API.currentUser)')
|
||||
.detail
|
||||
span.name(v-text="API.currentUser.displayName")
|
||||
span.extra(v-text="API.currentUser.username")
|
||||
.x-friend-item(style="cursor:default")
|
||||
span.name(v-text='API.currentUser.displayName')
|
||||
span.extra(v-text='API.currentUser.username')
|
||||
.x-friend-item(style='cursor: default')
|
||||
.detail
|
||||
span.name {{ $t('view.profile.profile.last_activity') }}
|
||||
span.extra {{ API.currentUser.last_activity | formatDate('long') }}
|
||||
.x-friend-item(style="cursor:default")
|
||||
.x-friend-item(style='cursor: default')
|
||||
.detail
|
||||
span.name {{ $t('view.profile.profile.two_factor') }}
|
||||
span.extra {{ API.currentUser.twoFactorAuthEnabled ? $t('view.profile.profile.two_factor_enabled') : $t('view.profile.profile.two_factor_disabled') }}
|
||||
.x-friend-item(@click="getVRChatCredits()")
|
||||
.x-friend-item(@click='getVRChatCredits()')
|
||||
.detail
|
||||
span.name {{ $t('view.profile.profile.vrchat_credits') }}
|
||||
span.extra {{ API.currentUser.$vrchatcredits ?? $t('view.profile.profile.refresh') }}
|
||||
div(style="margin-top:10px")
|
||||
el-button(size="small" type="danger" plain icon="el-icon-switch-button" @click="logout()" style="margin-left:0;margin-right:5px;margin-top:10px;") {{ $t('view.profile.profile.logout') }}
|
||||
el-button(size="small" icon="el-icon-picture-outline" @click="showGalleryDialog()" style="margin-left:0;margin-right:5px;margin-top:10px") {{ $t('view.profile.profile.manage_gallery_icon') }}
|
||||
el-button(size="small" icon="el-icon-chat-dot-round" @click="showDiscordNamesDialog()" style="margin-left:0;margin-right:5px;margin-top:10px") {{ $t('view.profile.profile.discord_names') }}
|
||||
el-button(size="small" icon="el-icon-printer" @click="showExportFriendsListDialog()" style="margin-left:0;margin-right:5px;margin-top:10px") {{ $t('view.profile.profile.export_friend_list') }}
|
||||
el-button(size="small" icon="el-icon-user" @click="showExportAvatarsListDialog()" style="margin-left:0;margin-right:5px;margin-top:10px") {{ $t('view.profile.profile.export_own_avatars') }}
|
||||
el-button(size="small" icon="el-icon-document-copy" @click="showNoteExportDialog()" style="margin-left:0;margin-right:5px;margin-top:10px") {{ $t('view.profile.profile.export_notes') }}
|
||||
div(style='margin-top: 10px')
|
||||
el-button(
|
||||
size='small'
|
||||
type='danger'
|
||||
plain
|
||||
icon='el-icon-switch-button'
|
||||
@click='logout()'
|
||||
style='margin-left: 0; margin-right: 5px; margin-top: 10px') {{ $t('view.profile.profile.logout') }}
|
||||
el-button(
|
||||
size='small'
|
||||
icon='el-icon-picture-outline'
|
||||
@click='showGalleryDialog()'
|
||||
style='margin-left: 0; margin-right: 5px; margin-top: 10px') {{ $t('view.profile.profile.manage_gallery_icon') }}
|
||||
el-button(
|
||||
size='small'
|
||||
icon='el-icon-chat-dot-round'
|
||||
@click='showDiscordNamesDialog()'
|
||||
style='margin-left: 0; margin-right: 5px; margin-top: 10px') {{ $t('view.profile.profile.discord_names') }}
|
||||
el-button(
|
||||
size='small'
|
||||
icon='el-icon-printer'
|
||||
@click='showExportFriendsListDialog()'
|
||||
style='margin-left: 0; margin-right: 5px; margin-top: 10px') {{ $t('view.profile.profile.export_friend_list') }}
|
||||
el-button(
|
||||
size='small'
|
||||
icon='el-icon-user'
|
||||
@click='showExportAvatarsListDialog()'
|
||||
style='margin-left: 0; margin-right: 5px; margin-top: 10px') {{ $t('view.profile.profile.export_own_avatars') }}
|
||||
el-button(
|
||||
size='small'
|
||||
icon='el-icon-document-copy'
|
||||
@click='showNoteExportDialog()'
|
||||
style='margin-left: 0; margin-right: 5px; margin-top: 10px') {{ $t('view.profile.profile.export_notes') }}
|
||||
|
||||
div.options-container
|
||||
.options-container
|
||||
span.header {{ $t('view.profile.game_info.header') }}
|
||||
.x-friend-list(style="margin-top:10px")
|
||||
.x-friend-list(style='margin-top: 10px')
|
||||
.x-friend-item
|
||||
.detail(@click="API.getVisits()")
|
||||
.detail(@click='API.getVisits()')
|
||||
span.name {{ $t('view.profile.game_info.online_users') }}
|
||||
span.extra(v-if="visits") {{ $t('view.profile.game_info.user_online', { count: visits }) }}
|
||||
span.extra(v-if='visits') {{ $t('view.profile.game_info.user_online', { count: visits }) }}
|
||||
span.extra(v-else) {{ $t('view.profile.game_info.refresh') }}
|
||||
div.options-container
|
||||
div.header-bar
|
||||
.options-container
|
||||
.header-bar
|
||||
span.header {{ $t('view.profile.vrc_sdk_downloads.header') }}
|
||||
el-tooltip(placement="top" :content="$t('view.profile.refresh_tooltip')" :disabled="hideTooltips")
|
||||
el-button(type="default" @click="API.getConfig()" size="mini" icon="el-icon-refresh" circle style="margin-left:5px")
|
||||
.x-friend-list(style="margin-top:10px")
|
||||
.x-friend-item(v-for="(link, item) in API.cachedConfig.downloadUrls" :key="item" placement="top")
|
||||
.detail(@click="openExternalLink(link)")
|
||||
span.name(v-text="item")
|
||||
span.extra(v-text="link")
|
||||
div.options-container
|
||||
el-tooltip(placement='top' :content='$t("view.profile.refresh_tooltip")' :disabled='hideTooltips')
|
||||
el-button(
|
||||
type='default'
|
||||
@click='API.getConfig()'
|
||||
size='mini'
|
||||
icon='el-icon-refresh'
|
||||
circle
|
||||
style='margin-left: 5px')
|
||||
.x-friend-list(style='margin-top: 10px')
|
||||
.x-friend-item(v-for='(link, item) in API.cachedConfig.downloadUrls' :key='item' placement='top')
|
||||
.detail(@click='openExternalLink(link)')
|
||||
span.name(v-text='item')
|
||||
span.extra(v-text='link')
|
||||
.options-container
|
||||
span.header {{ $t('view.profile.direct_access.header') }}
|
||||
div(style="margin-top:10px")
|
||||
div(style='margin-top: 10px')
|
||||
el-button-group
|
||||
el-button(size="small" @click="promptUsernameDialog()") {{ $t('view.profile.direct_access.username') }}
|
||||
el-button(size="small" @click="promptUserIdDialog()") {{ $t('view.profile.direct_access.user_id') }}
|
||||
el-button(size="small" @click="promptWorldDialog()") {{ $t('view.profile.direct_access.world_instance') }}
|
||||
el-button(size="small" @click="promptAvatarDialog()") {{ $t('view.profile.direct_access.avatar') }}
|
||||
div.options-container
|
||||
div.header-bar
|
||||
el-button(size='small' @click='promptUsernameDialog()') {{ $t('view.profile.direct_access.username') }}
|
||||
el-button(size='small' @click='promptUserIdDialog()') {{ $t('view.profile.direct_access.user_id') }}
|
||||
el-button(size='small' @click='promptWorldDialog()') {{ $t('view.profile.direct_access.world_instance') }}
|
||||
el-button(size='small' @click='promptAvatarDialog()') {{ $t('view.profile.direct_access.avatar') }}
|
||||
.options-container
|
||||
.header-bar
|
||||
span.header {{ $t('view.profile.invite_messages') }}
|
||||
el-tooltip(placement="top" :content="$t('view.profile.refresh_tooltip')" :disabled="hideTooltips")
|
||||
el-button(type="default" @click="inviteMessageTable.visible = true; refreshInviteMessageTable('message')" size="mini" icon="el-icon-refresh" circle style="margin-left:5px")
|
||||
el-tooltip(placement="top" :content="$t('view.profile.clear_results_tooltip')" :disabled="hideTooltips")
|
||||
el-button(type="default" @click="inviteMessageTable.visible = false" size="mini" icon="el-icon-delete" circle style="margin-left:5px")
|
||||
data-tables(v-if="inviteMessageTable.visible" v-bind="inviteMessageTable" style="margin-top:10px")
|
||||
el-table-column(:label="$t('table.profile.invite_messages.slot')" prop="slot" sortable="custom" width="70")
|
||||
el-table-column(:label="$t('table.profile.invite_messages.message')" prop="message")
|
||||
el-table-column(:label="$t('table.profile.invite_messages.cool_down')" prop="updatedAt" sortable="custom" width="110" align="right")
|
||||
template(#default="scope")
|
||||
countdown-timer(:datetime="scope.row.updatedAt" :hours="1")
|
||||
el-table-column(:label="$t('table.profile.invite_messages.action')" width="60" align="right")
|
||||
template(#default="scope")
|
||||
el-button(type="text" icon="el-icon-edit" size="mini" @click="showEditInviteMessageDialog('message', scope.row)")
|
||||
div.options-container
|
||||
div.header-bar
|
||||
el-tooltip(placement='top' :content='$t("view.profile.refresh_tooltip")' :disabled='hideTooltips')
|
||||
el-button(
|
||||
type='default'
|
||||
@click='inviteMessageTable.visible = true; refreshInviteMessageTable("message")'
|
||||
size='mini'
|
||||
icon='el-icon-refresh'
|
||||
circle
|
||||
style='margin-left: 5px')
|
||||
el-tooltip(
|
||||
placement='top'
|
||||
:content='$t("view.profile.clear_results_tooltip")'
|
||||
:disabled='hideTooltips')
|
||||
el-button(
|
||||
type='default'
|
||||
@click='inviteMessageTable.visible = false'
|
||||
size='mini'
|
||||
icon='el-icon-delete'
|
||||
circle
|
||||
style='margin-left: 5px')
|
||||
data-tables(v-if='inviteMessageTable.visible' v-bind='inviteMessageTable' style='margin-top: 10px')
|
||||
el-table-column(
|
||||
:label='$t("table.profile.invite_messages.slot")'
|
||||
prop='slot'
|
||||
sortable='custom'
|
||||
width='70')
|
||||
el-table-column(:label='$t("table.profile.invite_messages.message")' prop='message')
|
||||
el-table-column(
|
||||
:label='$t("table.profile.invite_messages.cool_down")'
|
||||
prop='updatedAt'
|
||||
sortable='custom'
|
||||
width='110'
|
||||
align='right')
|
||||
template(#default='scope')
|
||||
countdown-timer(:datetime='scope.row.updatedAt' :hours='1')
|
||||
el-table-column(:label='$t("table.profile.invite_messages.action")' width='60' align='right')
|
||||
template(#default='scope')
|
||||
el-button(
|
||||
type='text'
|
||||
icon='el-icon-edit'
|
||||
size='mini'
|
||||
@click='showEditInviteMessageDialog("message", scope.row)')
|
||||
.options-container
|
||||
.header-bar
|
||||
span.header {{ $t('view.profile.invite_response_messages') }}
|
||||
el-tooltip(placement="top" :content="$t('view.profile.refresh_tooltip')" :disabled="hideTooltips")
|
||||
el-button(type="default" @click="inviteResponseMessageTable.visible = true; refreshInviteMessageTable('response')" size="mini" icon="el-icon-refresh" circle style="margin-left:5px")
|
||||
el-tooltip(placement="top" :content="$t('view.profile.clear_results_tooltip')" :disabled="hideTooltips")
|
||||
el-button(type="default" @click="inviteResponseMessageTable.visible = false" size="mini" icon="el-icon-delete" circle style="margin-left:5px")
|
||||
data-tables(v-if="inviteResponseMessageTable.visible" v-bind="inviteResponseMessageTable" style="margin-top:10px")
|
||||
el-table-column(:label="$t('table.profile.invite_messages.slot')" prop="slot" sortable="custom" width="70")
|
||||
el-table-column(:label="$t('table.profile.invite_messages.message')" prop="message")
|
||||
el-table-column(:label="$t('table.profile.invite_messages.cool_down')" prop="updatedAt" sortable="custom" width="110" align="right")
|
||||
template(#default="scope")
|
||||
countdown-timer(:datetime="scope.row.updatedAt" :hours="1")
|
||||
el-table-column(:label="$t('table.profile.invite_messages.action')" width="60" align="right")
|
||||
template(#default="scope")
|
||||
el-button(type="text" icon="el-icon-edit" size="mini" @click="showEditInviteMessageDialog('response', scope.row)")
|
||||
div.options-container
|
||||
div.header-bar
|
||||
el-tooltip(placement='top' :content='$t("view.profile.refresh_tooltip")' :disabled='hideTooltips')
|
||||
el-button(
|
||||
type='default'
|
||||
@click='inviteResponseMessageTable.visible = true; refreshInviteMessageTable("response")'
|
||||
size='mini'
|
||||
icon='el-icon-refresh'
|
||||
circle
|
||||
style='margin-left: 5px')
|
||||
el-tooltip(
|
||||
placement='top'
|
||||
:content='$t("view.profile.clear_results_tooltip")'
|
||||
:disabled='hideTooltips')
|
||||
el-button(
|
||||
type='default'
|
||||
@click='inviteResponseMessageTable.visible = false'
|
||||
size='mini'
|
||||
icon='el-icon-delete'
|
||||
circle
|
||||
style='margin-left: 5px')
|
||||
data-tables(
|
||||
v-if='inviteResponseMessageTable.visible'
|
||||
v-bind='inviteResponseMessageTable'
|
||||
style='margin-top: 10px')
|
||||
el-table-column(
|
||||
:label='$t("table.profile.invite_messages.slot")'
|
||||
prop='slot'
|
||||
sortable='custom'
|
||||
width='70')
|
||||
el-table-column(:label='$t("table.profile.invite_messages.message")' prop='message')
|
||||
el-table-column(
|
||||
:label='$t("table.profile.invite_messages.cool_down")'
|
||||
prop='updatedAt'
|
||||
sortable='custom'
|
||||
width='110'
|
||||
align='right')
|
||||
template(#default='scope')
|
||||
countdown-timer(:datetime='scope.row.updatedAt' :hours='1')
|
||||
el-table-column(:label='$t("table.profile.invite_messages.action")' width='60' align='right')
|
||||
template(#default='scope')
|
||||
el-button(
|
||||
type='text'
|
||||
icon='el-icon-edit'
|
||||
size='mini'
|
||||
@click='showEditInviteMessageDialog("response", scope.row)')
|
||||
.options-container
|
||||
.header-bar
|
||||
span.header {{ $t('view.profile.invite_request_messages') }}
|
||||
el-tooltip(placement="top" :content="$t('view.profile.refresh_tooltip')" :disabled="hideTooltips")
|
||||
el-button(type="default" @click="inviteRequestMessageTable.visible = true; refreshInviteMessageTable('request')" size="mini" icon="el-icon-refresh" circle style="margin-left:5px")
|
||||
el-tooltip(placement="top" :content="$t('view.profile.clear_results_tooltip')" :disabled="hideTooltips")
|
||||
el-button(type="default" @click="inviteRequestMessageTable.visible = false" size="mini" icon="el-icon-delete" circle style="margin-left:5px")
|
||||
data-tables(v-if="inviteRequestMessageTable.visible" v-bind="inviteRequestMessageTable" style="margin-top:10px")
|
||||
el-table-column(:label="$t('table.profile.invite_messages.slot')" prop="slot" sortable="custom" width="70")
|
||||
el-table-column(:label="$t('table.profile.invite_messages.message')" prop="message")
|
||||
el-table-column(:label="$t('table.profile.invite_messages.cool_down')" prop="updatedAt" sortable="custom" width="110" align="right")
|
||||
template(#default="scope")
|
||||
countdown-timer(:datetime="scope.row.updatedAt" :hours="1")
|
||||
el-table-column(:label="$t('table.profile.invite_messages.action')" width="60" align="right")
|
||||
template(#default="scope")
|
||||
el-button(type="text" icon="el-icon-edit" size="mini" @click="showEditInviteMessageDialog('request', scope.row)")
|
||||
div.options-container
|
||||
div.header-bar
|
||||
el-tooltip(placement='top' :content='$t("view.profile.refresh_tooltip")' :disabled='hideTooltips')
|
||||
el-button(
|
||||
type='default'
|
||||
@click='inviteRequestMessageTable.visible = true; refreshInviteMessageTable("request")'
|
||||
size='mini'
|
||||
icon='el-icon-refresh'
|
||||
circle
|
||||
style='margin-left: 5px')
|
||||
el-tooltip(
|
||||
placement='top'
|
||||
:content='$t("view.profile.clear_results_tooltip")'
|
||||
:disabled='hideTooltips')
|
||||
el-button(
|
||||
type='default'
|
||||
@click='inviteRequestMessageTable.visible = false'
|
||||
size='mini'
|
||||
icon='el-icon-delete'
|
||||
circle
|
||||
style='margin-left: 5px')
|
||||
data-tables(
|
||||
v-if='inviteRequestMessageTable.visible'
|
||||
v-bind='inviteRequestMessageTable'
|
||||
style='margin-top: 10px')
|
||||
el-table-column(
|
||||
:label='$t("table.profile.invite_messages.slot")'
|
||||
prop='slot'
|
||||
sortable='custom'
|
||||
width='70')
|
||||
el-table-column(:label='$t("table.profile.invite_messages.message")' prop='message')
|
||||
el-table-column(
|
||||
:label='$t("table.profile.invite_messages.cool_down")'
|
||||
prop='updatedAt'
|
||||
sortable='custom'
|
||||
width='110'
|
||||
align='right')
|
||||
template(#default='scope')
|
||||
countdown-timer(:datetime='scope.row.updatedAt' :hours='1')
|
||||
el-table-column(:label='$t("table.profile.invite_messages.action")' width='60' align='right')
|
||||
template(#default='scope')
|
||||
el-button(
|
||||
type='text'
|
||||
icon='el-icon-edit'
|
||||
size='mini'
|
||||
@click='showEditInviteMessageDialog("request", scope.row)')
|
||||
.options-container
|
||||
.header-bar
|
||||
span.header {{ $t('view.profile.invite_request_response_messages') }}
|
||||
el-tooltip(placement="top" :content="$t('view.profile.refresh_tooltip')" :disabled="hideTooltips")
|
||||
el-button(type="default" @click="inviteRequestResponseMessageTable.visible = true; refreshInviteMessageTable('requestResponse')" size="mini" icon="el-icon-refresh" circle style="margin-left:5px")
|
||||
el-tooltip(placement="top" :content="$t('view.profile.clear_results_tooltip')" :disabled="hideTooltips")
|
||||
el-button(type="default" @click="inviteRequestResponseMessageTable.visible = false" size="mini" icon="el-icon-delete" circle style="margin-left:5px")
|
||||
data-tables(v-if="inviteRequestResponseMessageTable.visible" v-bind="inviteRequestResponseMessageTable" style="margin-top:10px")
|
||||
el-table-column(:label="$t('table.profile.invite_messages.slot')" prop="slot" sortable="custom" width="70")
|
||||
el-table-column(:label="$t('table.profile.invite_messages.message')" prop="message")
|
||||
el-table-column(:label="$t('table.profile.invite_messages.cool_down')" prop="updatedAt" sortable="custom" width="110" align="right")
|
||||
template(#default="scope")
|
||||
countdown-timer(:datetime="scope.row.updatedAt" :hours="1")
|
||||
el-table-column(:label="$t('table.profile.invite_messages.action')" width="60" align="right")
|
||||
template(#default="scope")
|
||||
el-button(type="text" icon="el-icon-edit" size="mini" @click="showEditInviteMessageDialog('requestResponse', scope.row)")
|
||||
div.options-container
|
||||
el-tooltip(placement='top' :content='$t("view.profile.refresh_tooltip")' :disabled='hideTooltips')
|
||||
el-button(
|
||||
type='default'
|
||||
@click='inviteRequestResponseMessageTable.visible = true; refreshInviteMessageTable("requestResponse")'
|
||||
size='mini'
|
||||
icon='el-icon-refresh'
|
||||
circle
|
||||
style='margin-left: 5px')
|
||||
el-tooltip(
|
||||
placement='top'
|
||||
:content='$t("view.profile.clear_results_tooltip")'
|
||||
:disabled='hideTooltips')
|
||||
el-button(
|
||||
type='default'
|
||||
@click='inviteRequestResponseMessageTable.visible = false'
|
||||
size='mini'
|
||||
icon='el-icon-delete'
|
||||
circle
|
||||
style='margin-left: 5px')
|
||||
data-tables(
|
||||
v-if='inviteRequestResponseMessageTable.visible'
|
||||
v-bind='inviteRequestResponseMessageTable'
|
||||
style='margin-top: 10px')
|
||||
el-table-column(
|
||||
:label='$t("table.profile.invite_messages.slot")'
|
||||
prop='slot'
|
||||
sortable='custom'
|
||||
width='70')
|
||||
el-table-column(:label='$t("table.profile.invite_messages.message")' prop='message')
|
||||
el-table-column(
|
||||
:label='$t("table.profile.invite_messages.cool_down")'
|
||||
prop='updatedAt'
|
||||
sortable='custom'
|
||||
width='110'
|
||||
align='right')
|
||||
template(#default='scope')
|
||||
countdown-timer(:datetime='scope.row.updatedAt' :hours='1')
|
||||
el-table-column(:label='$t("table.profile.invite_messages.action")' width='60' align='right')
|
||||
template(#default='scope')
|
||||
el-button(
|
||||
type='text'
|
||||
icon='el-icon-edit'
|
||||
size='mini'
|
||||
@click='showEditInviteMessageDialog("requestResponse", scope.row)')
|
||||
.options-container
|
||||
span.header {{ $t('view.profile.past_display_names') }}
|
||||
data-tables(v-bind="pastDisplayNameTable" style="margin-top:10px")
|
||||
el-table-column(:label="$t('table.profile.previous_display_name.date')" prop="updated_at" sortable="custom")
|
||||
template(#default="scope")
|
||||
data-tables(v-bind='pastDisplayNameTable' style='margin-top: 10px')
|
||||
el-table-column(
|
||||
:label='$t("table.profile.previous_display_name.date")'
|
||||
prop='updated_at'
|
||||
sortable='custom')
|
||||
template(#default='scope')
|
||||
span {{ scope.row.updated_at | formatDate('long') }}
|
||||
el-table-column(:label="$t('table.profile.previous_display_name.name')" prop="displayName")
|
||||
div.options-container
|
||||
div.header-bar
|
||||
el-table-column(:label='$t("table.profile.previous_display_name.name")' prop='displayName')
|
||||
.options-container
|
||||
.header-bar
|
||||
span.header {{ $t('view.profile.config_json') }}
|
||||
el-tooltip(placement="top" :content="$t('view.profile.refresh_tooltip')" :disabled="hideTooltips")
|
||||
el-button(type="default" @click="refreshConfigTreeData()" size="mini" icon="el-icon-refresh" circle style="margin-left:5px")
|
||||
el-tooltip(placement="top" :content="$t('view.profile.clear_results_tooltip')" :disabled="hideTooltips")
|
||||
el-button(type="default" @click="configTreeData = []" size="mini" icon="el-icon-delete" circle style="margin-left:5px")
|
||||
el-tree(v-if="configTreeData.length > 0" :data="configTreeData" style="margin-top:10px;font-size:12px")
|
||||
template(#default="scope")
|
||||
el-tooltip(placement='top' :content='$t("view.profile.refresh_tooltip")' :disabled='hideTooltips')
|
||||
el-button(
|
||||
type='default'
|
||||
@click='refreshConfigTreeData()'
|
||||
size='mini'
|
||||
icon='el-icon-refresh'
|
||||
circle
|
||||
style='margin-left: 5px')
|
||||
el-tooltip(
|
||||
placement='top'
|
||||
:content='$t("view.profile.clear_results_tooltip")'
|
||||
:disabled='hideTooltips')
|
||||
el-button(
|
||||
type='default'
|
||||
@click='configTreeData = []'
|
||||
size='mini'
|
||||
icon='el-icon-delete'
|
||||
circle
|
||||
style='margin-left: 5px')
|
||||
el-tree(v-if='configTreeData.length > 0' :data='configTreeData' style='margin-top: 10px; font-size: 12px')
|
||||
template(#default='scope')
|
||||
span
|
||||
span(v-text="scope.data.key" style="font-weight:bold;margin-right:5px")
|
||||
span(v-if="!scope.data.children" v-text="scope.data.value")
|
||||
div.options-container
|
||||
div.header-bar
|
||||
span(v-text='scope.data.key' style='font-weight: bold; margin-right: 5px')
|
||||
span(v-if='!scope.data.children' v-text='scope.data.value')
|
||||
.options-container
|
||||
.header-bar
|
||||
span.header {{ $t('view.profile.current_user_json') }}
|
||||
el-tooltip(placement="top" :content="$t('view.profile.refresh_tooltip')" :disabled="hideTooltips")
|
||||
el-button(type="default" @click="refreshCurrentUserTreeData()" size="mini" icon="el-icon-refresh" circle style="margin-left:5px")
|
||||
el-tooltip(placement="top" :content="$t('view.profile.clear_results_tooltip')" :disabled="hideTooltips")
|
||||
el-button(type="default" @click="currentUserTreeData = []" size="mini" icon="el-icon-delete" circle style="margin-left:5px")
|
||||
el-tree(v-if="currentUserTreeData.length > 0" :data="currentUserTreeData" style="margin-top:10px;font-size:12px")
|
||||
template(#default="scope")
|
||||
el-tooltip(placement='top' :content='$t("view.profile.refresh_tooltip")' :disabled='hideTooltips')
|
||||
el-button(
|
||||
type='default'
|
||||
@click='refreshCurrentUserTreeData()'
|
||||
size='mini'
|
||||
icon='el-icon-refresh'
|
||||
circle
|
||||
style='margin-left: 5px')
|
||||
el-tooltip(
|
||||
placement='top'
|
||||
:content='$t("view.profile.clear_results_tooltip")'
|
||||
:disabled='hideTooltips')
|
||||
el-button(
|
||||
type='default'
|
||||
@click='currentUserTreeData = []'
|
||||
size='mini'
|
||||
icon='el-icon-delete'
|
||||
circle
|
||||
style='margin-left: 5px')
|
||||
el-tree(
|
||||
v-if='currentUserTreeData.length > 0'
|
||||
:data='currentUserTreeData'
|
||||
style='margin-top: 10px; font-size: 12px')
|
||||
template(#default='scope')
|
||||
span
|
||||
span(v-text="scope.data.key" style="font-weight:bold;margin-right:5px")
|
||||
span(v-if="!scope.data.children" v-text="scope.data.value")
|
||||
div.options-container
|
||||
div.header-bar
|
||||
span(v-text='scope.data.key' style='font-weight: bold; margin-right: 5px')
|
||||
span(v-if='!scope.data.children' v-text='scope.data.value')
|
||||
.options-container
|
||||
.header-bar
|
||||
span.header {{ $t('view.profile.feedback') }}
|
||||
el-tooltip(placement="top" :content="$t('view.profile.refresh_tooltip')" :disabled="hideTooltips")
|
||||
el-button(type="default" @click="getCurrentUserFeedback()" size="mini" icon="el-icon-refresh" circle style="margin-left:5px")
|
||||
el-tooltip(placement="top" :content="$t('view.profile.clear_results_tooltip')" :disabled="hideTooltips")
|
||||
el-button(type="default" @click="currentUserFeedbackData = []" size="mini" icon="el-icon-delete" circle style="margin-left:5px")
|
||||
el-tree(v-if="currentUserFeedbackData.length > 0" :data="currentUserFeedbackData" style="margin-top:10px;font-size:12px")
|
||||
template(#default="scope")
|
||||
el-tooltip(placement='top' :content='$t("view.profile.refresh_tooltip")' :disabled='hideTooltips')
|
||||
el-button(
|
||||
type='default'
|
||||
@click='getCurrentUserFeedback()'
|
||||
size='mini'
|
||||
icon='el-icon-refresh'
|
||||
circle
|
||||
style='margin-left: 5px')
|
||||
el-tooltip(
|
||||
placement='top'
|
||||
:content='$t("view.profile.clear_results_tooltip")'
|
||||
:disabled='hideTooltips')
|
||||
el-button(
|
||||
type='default'
|
||||
@click='currentUserFeedbackData = []'
|
||||
size='mini'
|
||||
icon='el-icon-delete'
|
||||
circle
|
||||
style='margin-left: 5px')
|
||||
el-tree(
|
||||
v-if='currentUserFeedbackData.length > 0'
|
||||
:data='currentUserFeedbackData'
|
||||
style='margin-top: 10px; font-size: 12px')
|
||||
template(#default='scope')
|
||||
span
|
||||
span(v-text="scope.data.key" style="font-weight:bold;margin-right:5px")
|
||||
span(v-if="!scope.data.children" v-text="scope.data.value")
|
||||
span(v-text='scope.data.key' style='font-weight: bold; margin-right: 5px')
|
||||
span(v-if='!scope.data.children' v-text='scope.data.value')
|
||||
|
||||
+187
-80
@@ -1,93 +1,200 @@
|
||||
mixin searchTab()
|
||||
.x-container(v-show="$refs.menu && $refs.menu.activeIndex === 'search'")
|
||||
div(style="margin:0 0 10px;display:flex;align-items:center")
|
||||
el-input(v-model="searchText" :placeholder="$t('view.search.search_placeholder')" @keyup.native.13="search()" style="flex:1")
|
||||
el-tooltip(placement="bottom" :content="$t('view.search.clear_results_tooltip')" :disabled="hideTooltips")
|
||||
el-button(type="default" @click="clearSearch()" icon="el-icon-delete" circle style="flex:none;margin-left:10px")
|
||||
el-tabs(ref="searchTab" type="card" style="margin-top:15px" @tab-click="searchText = ''")
|
||||
el-tab-pane(:label="$t('view.search.user.header')" v-loading="isSearchUserLoading" style="min-height:60px")
|
||||
.x-friend-list(style="min-height:500px")
|
||||
.x-friend-item(v-for="user in searchUserResults" :key="user.id" @click="showUserDialog(user.id)")
|
||||
mixin searchTab
|
||||
.x-container(v-show='$refs.menu && $refs.menu.activeIndex === \'search\'')
|
||||
div(style='margin: 0 0 10px; display: flex; align-items: center')
|
||||
el-input(
|
||||
v-model='searchText'
|
||||
:placeholder='$t("view.search.search_placeholder")'
|
||||
@keyup.native.13='search()'
|
||||
style='flex: 1')
|
||||
el-tooltip(placement='bottom' :content='$t("view.search.clear_results_tooltip")' :disabled='hideTooltips')
|
||||
el-button(
|
||||
type='default'
|
||||
@click='clearSearch()'
|
||||
icon='el-icon-delete'
|
||||
circle
|
||||
style='flex: none; margin-left: 10px')
|
||||
el-tabs(ref='searchTab' type='card' style='margin-top: 15px' @tab-click='searchText = ""')
|
||||
el-tab-pane(:label='$t("view.search.user.header")' v-loading='isSearchUserLoading' style='min-height: 60px')
|
||||
.x-friend-list(style='min-height: 500px')
|
||||
.x-friend-item(v-for='user in searchUserResults' :key='user.id' @click='showUserDialog(user.id)')
|
||||
template
|
||||
.avatar
|
||||
img(v-lazy="userImage(user)")
|
||||
img(v-lazy='userImage(user)')
|
||||
.detail
|
||||
span.name(v-text="user.displayName")
|
||||
span.extra(v-if="randomUserColours" v-text="user.$trustLevel" :class="user.$trustClass")
|
||||
span.extra(v-else v-text="user.$trustLevel" :style="{'color':user.$userColour}")
|
||||
el-button-group(style="margin-top:15px" v-if="searchUserResults.length")
|
||||
el-button(:disabled="!searchUserParams.offset" @click="moreSearchUser(-1)" icon="el-icon-back" size="small") {{ $t('view.search.prev_page') }}
|
||||
el-button(:disabled="searchUserResults.length < 10" @click="moreSearchUser(1)" icon="el-icon-right" size="small") {{ $t('view.search.next_page') }}
|
||||
el-tab-pane(:label="$t('view.search.world.header')" v-loading="isSearchWorldLoading" style="min-height:60px")
|
||||
el-dropdown(@command="(row) => searchWorld(row)" size="small" trigger="click" style="margin-bottom:15px")
|
||||
el-button(size="small") {{ $t('view.search.world.category') }} #[i.el-icon-arrow-down.el-icon--right]
|
||||
el-dropdown-menu(#default="dropdown")
|
||||
el-dropdown-item(v-for="row in API.cachedConfig.dynamicWorldRows" :key="row.index" v-text="row.name" :command="row")
|
||||
el-checkbox(v-model="searchWorldLabs" style="margin-left:10px") {{ $t('view.search.world.community_lab') }}
|
||||
.x-friend-list(style="min-height:500px")
|
||||
.x-friend-item(v-for="world in searchWorldResults" :key="world.id" @click="showWorldDialog(world.id)")
|
||||
span.name(v-text='user.displayName')
|
||||
span.extra(
|
||||
v-if='randomUserColours'
|
||||
v-text='user.$trustLevel'
|
||||
:class='user.$trustClass')
|
||||
span.extra(v-else v-text='user.$trustLevel' :style='{ color: user.$userColour }')
|
||||
el-button-group(style='margin-top: 15px' v-if='searchUserResults.length')
|
||||
el-button(
|
||||
:disabled='!searchUserParams.offset'
|
||||
@click='moreSearchUser(-1)'
|
||||
icon='el-icon-back'
|
||||
size='small') {{ $t('view.search.prev_page') }}
|
||||
el-button(
|
||||
:disabled='searchUserResults.length < 10'
|
||||
@click='moreSearchUser(1)'
|
||||
icon='el-icon-right'
|
||||
size='small') {{ $t('view.search.next_page') }}
|
||||
el-tab-pane(
|
||||
:label='$t("view.search.world.header")'
|
||||
v-loading='isSearchWorldLoading'
|
||||
style='min-height: 60px')
|
||||
el-dropdown(
|
||||
@command='(row) => searchWorld(row)'
|
||||
size='small'
|
||||
trigger='click'
|
||||
style='margin-bottom: 15px')
|
||||
el-button(size='small') {{ $t('view.search.world.category') }} #[i.el-icon-arrow-down.el-icon--right]
|
||||
el-dropdown-menu(#default='dropdown')
|
||||
el-dropdown-item(
|
||||
v-for='row in API.cachedConfig.dynamicWorldRows'
|
||||
:key='row.index'
|
||||
v-text='row.name'
|
||||
:command='row')
|
||||
el-checkbox(v-model='searchWorldLabs' style='margin-left: 10px') {{ $t('view.search.world.community_lab') }}
|
||||
.x-friend-list(style='min-height: 500px')
|
||||
.x-friend-item(
|
||||
v-for='world in searchWorldResults'
|
||||
:key='world.id'
|
||||
@click='showWorldDialog(world.id)')
|
||||
template
|
||||
.avatar
|
||||
img(v-lazy="world.thumbnailImageUrl")
|
||||
img(v-lazy='world.thumbnailImageUrl')
|
||||
.detail
|
||||
span.name(v-text="world.name")
|
||||
span.extra(v-if="world.occupants") {{ world.authorName }} ({{ world.occupants }})
|
||||
span.extra(v-else v-text="world.authorName")
|
||||
el-button-group(style="margin-top:15px" v-if="searchWorldResults.length")
|
||||
el-button(:disabled="!searchWorldParams.offset" @click="moreSearchWorld(-1)" icon="el-icon-back" size="small") {{ $t('view.search.prev_page') }}
|
||||
el-button(:disabled="searchWorldResults.length < 10" @click="moreSearchWorld(1)" icon="el-icon-right" size="small") {{ $t('view.search.next_page') }}
|
||||
el-tab-pane(:label="$t('view.search.avatar.header')" v-loading="isSearchAvatarLoading" style="min-height:60px")
|
||||
div(style="display:flex;align-items:center;justify-content:space-between;")
|
||||
div(style="display:flex;align-items:center;")
|
||||
el-dropdown(v-if="avatarRemoteDatabaseProviderList.length > 1" trigger="click" @click.native.stop size="mini" style="margin-right:5px")
|
||||
el-button(size="small") {{ $t('view.search.avatar.search_provider') }} #[i.el-icon-arrow-down.el-icon--right]
|
||||
el-dropdown-menu(#default="dropdown")
|
||||
el-dropdown-item(v-for="provider in avatarRemoteDatabaseProviderList" :key="provider" @click.native="setAvatarProvider(provider)") #[i.el-icon-check.el-icon--left(v-if="provider === avatarRemoteDatabaseProvider")] {{ provider }}
|
||||
el-tooltip(placement="bottom" :content="$t('view.search.avatar.refresh_tooltip')" :disabled="hideTooltips")
|
||||
el-button(type="default" :loading="userDialog.isAvatarsLoading" @click="refreshUserDialogAvatars()" size="mini" icon="el-icon-refresh" circle)
|
||||
span(style="font-size:14px;margin-left:5px;margin-right:5px") {{ $t("view.search.avatar.result_count", { count: searchAvatarResults.length }) }}
|
||||
div(style="display:flex;align-items:center;")
|
||||
el-radio-group(v-model="searchAvatarFilter" size="mini" style="margin:5px;display:block" @change="searchAvatar")
|
||||
el-radio(label="all") {{ $t('view.search.avatar.all') }}
|
||||
el-radio(label="public") {{ $t('view.search.avatar.public') }}
|
||||
el-radio(label="private") {{ $t('view.search.avatar.private') }}
|
||||
el-divider(direction="vertical")
|
||||
el-radio-group(v-model="searchAvatarFilterRemote" size="mini" style="margin:5px;display:block" @change="searchAvatar")
|
||||
el-radio(label="all") {{ $t('view.search.avatar.all') }}
|
||||
el-radio(label="local") {{ $t('view.search.avatar.local') }}
|
||||
el-radio(label="remote" :disabled="!avatarRemoteDatabase") {{ $t('view.search.avatar.remote') }}
|
||||
div(style="display:flex;justify-content:end;")
|
||||
el-radio-group(:disabled="searchAvatarFilterRemote !== 'local'" v-model="searchAvatarSort" size="mini" style="margin:5px;display:block" @change="searchAvatar")
|
||||
el-radio(label="name") {{ $t('view.search.avatar.sort_name') }}
|
||||
el-radio(label="update") {{ $t('view.search.avatar.sort_update') }}
|
||||
el-radio(label="created") {{ $t('view.search.avatar.sort_created') }}
|
||||
.x-friend-list(style="margin-top:20px;min-height:500px")
|
||||
.x-friend-item(v-for="avatar in searchAvatarPage" :key="avatar.id" @click="showAvatarDialog(avatar.id)")
|
||||
span.name(v-text='world.name')
|
||||
span.extra(v-if='world.occupants') {{ world.authorName }} ({{ world.occupants }})
|
||||
span.extra(v-else v-text='world.authorName')
|
||||
el-button-group(style='margin-top: 15px' v-if='searchWorldResults.length')
|
||||
el-button(
|
||||
:disabled='!searchWorldParams.offset'
|
||||
@click='moreSearchWorld(-1)'
|
||||
icon='el-icon-back'
|
||||
size='small') {{ $t('view.search.prev_page') }}
|
||||
el-button(
|
||||
:disabled='searchWorldResults.length < 10'
|
||||
@click='moreSearchWorld(1)'
|
||||
icon='el-icon-right'
|
||||
size='small') {{ $t('view.search.next_page') }}
|
||||
el-tab-pane(
|
||||
:label='$t("view.search.avatar.header")'
|
||||
v-loading='isSearchAvatarLoading'
|
||||
style='min-height: 60px')
|
||||
div(style='display: flex; align-items: center; justify-content: space-between')
|
||||
div(style='display: flex; align-items: center')
|
||||
el-dropdown(
|
||||
v-if='avatarRemoteDatabaseProviderList.length > 1'
|
||||
trigger='click'
|
||||
@click.native.stop
|
||||
size='mini'
|
||||
style='margin-right: 5px')
|
||||
el-button(size='small') {{ $t('view.search.avatar.search_provider') }} #[i.el-icon-arrow-down.el-icon--right]
|
||||
el-dropdown-menu(#default='dropdown')
|
||||
el-dropdown-item(
|
||||
v-for='provider in avatarRemoteDatabaseProviderList'
|
||||
:key='provider'
|
||||
@click.native='setAvatarProvider(provider)') #[i.el-icon-check.el-icon--left(v-if='provider === avatarRemoteDatabaseProvider')] {{ provider }}
|
||||
el-tooltip(
|
||||
placement='bottom'
|
||||
:content='$t("view.search.avatar.refresh_tooltip")'
|
||||
:disabled='hideTooltips')
|
||||
el-button(
|
||||
type='default'
|
||||
:loading='userDialog.isAvatarsLoading'
|
||||
@click='refreshUserDialogAvatars()'
|
||||
size='mini'
|
||||
icon='el-icon-refresh'
|
||||
circle)
|
||||
span(style='font-size: 14px; margin-left: 5px; margin-right: 5px') {{ $t('view.search.avatar.result_count', { count: searchAvatarResults.length }) }}
|
||||
div(style='display: flex; align-items: center')
|
||||
el-radio-group(
|
||||
v-model='searchAvatarFilter'
|
||||
size='mini'
|
||||
style='margin: 5px; display: block'
|
||||
@change='searchAvatar')
|
||||
el-radio(label='all') {{ $t('view.search.avatar.all') }}
|
||||
el-radio(label='public') {{ $t('view.search.avatar.public') }}
|
||||
el-radio(label='private') {{ $t('view.search.avatar.private') }}
|
||||
el-divider(direction='vertical')
|
||||
el-radio-group(
|
||||
v-model='searchAvatarFilterRemote'
|
||||
size='mini'
|
||||
style='margin: 5px; display: block'
|
||||
@change='searchAvatar')
|
||||
el-radio(label='all') {{ $t('view.search.avatar.all') }}
|
||||
el-radio(label='local') {{ $t('view.search.avatar.local') }}
|
||||
el-radio(label='remote' :disabled='!avatarRemoteDatabase') {{ $t('view.search.avatar.remote') }}
|
||||
div(style='display: flex; justify-content: end')
|
||||
el-radio-group(
|
||||
:disabled='searchAvatarFilterRemote !== "local"'
|
||||
v-model='searchAvatarSort'
|
||||
size='mini'
|
||||
style='margin: 5px; display: block'
|
||||
@change='searchAvatar')
|
||||
el-radio(label='name') {{ $t('view.search.avatar.sort_name') }}
|
||||
el-radio(label='update') {{ $t('view.search.avatar.sort_update') }}
|
||||
el-radio(label='created') {{ $t('view.search.avatar.sort_created') }}
|
||||
.x-friend-list(style='margin-top: 20px; min-height: 500px')
|
||||
.x-friend-item(
|
||||
v-for='avatar in searchAvatarPage'
|
||||
:key='avatar.id'
|
||||
@click='showAvatarDialog(avatar.id)')
|
||||
template
|
||||
.avatar
|
||||
img(v-if="avatar.thumbnailImageUrl" v-lazy="avatar.thumbnailImageUrl")
|
||||
img(v-else-if="avatar.imageUrl" v-lazy="avatar.imageUrl")
|
||||
img(v-if='avatar.thumbnailImageUrl' v-lazy='avatar.thumbnailImageUrl')
|
||||
img(v-else-if='avatar.imageUrl' v-lazy='avatar.imageUrl')
|
||||
.detail
|
||||
span.name(v-text="avatar.name")
|
||||
span.extra(v-text="avatar.releaseStatus" v-if="avatar.releaseStatus === 'public'" style="color: #67c23a;")
|
||||
span.extra(v-text="avatar.releaseStatus" v-else-if="avatar.releaseStatus === 'private'" style="color: #f56c6c;")
|
||||
span.extra(v-text="avatar.releaseStatus" v-else)
|
||||
span.extra(v-text="avatar.authorName")
|
||||
el-button-group(style="margin-top:15px" v-if="searchAvatarPage.length")
|
||||
el-button(:disabled="!searchAvatarPageNum" @click="moreSearchAvatar(-1)" icon="el-icon-back" size="small") {{ $t('view.search.prev_page') }}
|
||||
el-button(:disabled="searchAvatarResults.length < 10 || (searchAvatarPageNum + 1) * 10 >= searchAvatarResults.length" @click="moreSearchAvatar(1)" icon="el-icon-right" size="small") {{ $t('view.search.next_page') }}
|
||||
el-tab-pane(:label="$t('view.search.group.header')" v-loading="isSearchGroupLoading" style="min-height:60px")
|
||||
.x-friend-list(style="min-height:500px")
|
||||
.x-friend-item(v-for="group in searchGroupResults" :key="group.id" @click="showGroupDialog(group.id)")
|
||||
span.name(v-text='avatar.name')
|
||||
span.extra(
|
||||
v-text='avatar.releaseStatus'
|
||||
v-if='avatar.releaseStatus === "public"'
|
||||
style='color: #67c23a')
|
||||
span.extra(
|
||||
v-text='avatar.releaseStatus'
|
||||
v-else-if='avatar.releaseStatus === "private"'
|
||||
style='color: #f56c6c')
|
||||
span.extra(v-text='avatar.releaseStatus' v-else)
|
||||
span.extra(v-text='avatar.authorName')
|
||||
el-button-group(style='margin-top: 15px' v-if='searchAvatarPage.length')
|
||||
el-button(
|
||||
:disabled='!searchAvatarPageNum'
|
||||
@click='moreSearchAvatar(-1)'
|
||||
icon='el-icon-back'
|
||||
size='small') {{ $t('view.search.prev_page') }}
|
||||
el-button(
|
||||
:disabled='searchAvatarResults.length < 10 || (searchAvatarPageNum + 1) * 10 >= searchAvatarResults.length'
|
||||
@click='moreSearchAvatar(1)'
|
||||
icon='el-icon-right'
|
||||
size='small') {{ $t('view.search.next_page') }}
|
||||
el-tab-pane(
|
||||
:label='$t("view.search.group.header")'
|
||||
v-loading='isSearchGroupLoading'
|
||||
style='min-height: 60px')
|
||||
.x-friend-list(style='min-height: 500px')
|
||||
.x-friend-item(
|
||||
v-for='group in searchGroupResults'
|
||||
:key='group.id'
|
||||
@click='showGroupDialog(group.id)')
|
||||
template
|
||||
.avatar
|
||||
img(v-lazy="group.iconUrl")
|
||||
img(v-lazy='group.iconUrl')
|
||||
.detail
|
||||
span.name
|
||||
span(v-text="group.name")
|
||||
span(style="margin-left:5px;font-weight:normal") ({{ group.memberCount }})
|
||||
span(style="margin-left:5px;color:#909399;font-weight:normal;font-family:monospace;font-size:12px") {{ group.shortCode }}.{{ group.discriminator }}
|
||||
span.extra(v-text="group.description")
|
||||
el-button-group(style="margin-top:15px" v-if="searchGroupResults.length")
|
||||
el-button(:disabled="!searchGroupParams.offset" @click="moreSearchGroup(-1)" icon="el-icon-back" size="small") {{ $t('view.search.prev_page') }}
|
||||
el-button(:disabled="searchGroupResults.length < 10" @click="moreSearchGroup(1)" icon="el-icon-right" size="small") {{ $t('view.search.next_page') }}
|
||||
span(v-text='group.name')
|
||||
span(style='margin-left: 5px; font-weight: normal') ({{ group.memberCount }})
|
||||
span(
|
||||
style='margin-left: 5px; color: #909399; font-weight: normal; font-family: monospace; font-size: 12px') {{ group.shortCode }}.{{ group.discriminator }}
|
||||
span.extra(v-text='group.description')
|
||||
el-button-group(style='margin-top: 15px' v-if='searchGroupResults.length')
|
||||
el-button(
|
||||
:disabled='!searchGroupParams.offset'
|
||||
@click='moreSearchGroup(-1)'
|
||||
icon='el-icon-back'
|
||||
size='small') {{ $t('view.search.prev_page') }}
|
||||
el-button(
|
||||
:disabled='searchGroupResults.length < 10'
|
||||
@click='moreSearchGroup(1)'
|
||||
icon='el-icon-right'
|
||||
size='small') {{ $t('view.search.next_page') }}
|
||||
|
||||
+899
-410
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user