mirror of
https://github.com/MrUnknownDE/VRCX.git
synced 2026-04-29 11:43:48 +02:00
refactor: resolve lag issues when opening the world dialog in the favorites worlds tab (#1156) (#1168)
* refactor: resolve lag issues when opening the world dialog in the favorite world tab (#1156) * fix
This commit is contained in:
@@ -123,7 +123,7 @@ mixin previousInstances
|
||||
size='mini'
|
||||
@click='deleteGameLogWorldInstancePrompt(scope.row)')
|
||||
|
||||
previous-instance-info(
|
||||
previous-instance-info-dialog(
|
||||
:visible.sync='previousInstanceInfoDialogVisible'
|
||||
:instance-id='previousInstanceInfoDialogInstanceId'
|
||||
:game-log-is-friend='gameLogIsFriend'
|
||||
|
||||
@@ -1,453 +1,20 @@
|
||||
mixin worldDialog
|
||||
el-dialog.x-dialog.x-world-dialog(
|
||||
:before-close='beforeDialogClose'
|
||||
@mousedown.native='dialogMouseDown'
|
||||
@mouseup.native='dialogMouseUp'
|
||||
ref='worldDialog'
|
||||
:visible.sync='worldDialog.visible'
|
||||
:show-close='false'
|
||||
width='770px')
|
||||
div(v-loading='worldDialog.loading')
|
||||
div(style='display: flex')
|
||||
el-popover(placement='right' width='500px' trigger='click')
|
||||
img.x-link(
|
||||
slot='reference'
|
||||
v-lazy='worldDialog.ref.thumbnailImageUrl'
|
||||
style='flex: none; width: 160px; height: 120px; border-radius: 12px')
|
||||
img.x-link(
|
||||
v-lazy='worldDialog.ref.imageUrl'
|
||||
style='width: 500px; height: 375px'
|
||||
@click='showFullscreenImageDialog(worldDialog.ref.imageUrl)')
|
||||
div(style='flex: 1; display: flex; align-items: center; margin-left: 15px')
|
||||
div(style='flex: 1')
|
||||
div
|
||||
i.el-icon-s-home(
|
||||
v-show='API.currentUser.$homeLocation && API.currentUser.$homeLocation.worldId === worldDialog.id'
|
||||
style='margin-right: 5px')
|
||||
span.dialog-title(v-text='worldDialog.ref.name')
|
||||
div(style='margin-top: 5px')
|
||||
span.x-link.x-grey(
|
||||
v-text='worldDialog.ref.authorName'
|
||||
@click='showUserDialog(worldDialog.ref.authorId)'
|
||||
style='font-family: monospace')
|
||||
div
|
||||
el-tag(
|
||||
v-if='worldDialog.ref.$isLabs'
|
||||
type='primary'
|
||||
effect='plain'
|
||||
size='mini'
|
||||
style='margin-right: 5px; margin-top: 5px') {{ $t('dialog.world.tags.labs') }}
|
||||
el-tag(
|
||||
v-else-if='worldDialog.ref.releaseStatus === "public"'
|
||||
type='success'
|
||||
effect='plain'
|
||||
size='mini'
|
||||
style='margin-right: 5px; margin-top: 5px') {{ $t('dialog.world.tags.public') }}
|
||||
el-tag(
|
||||
v-else
|
||||
type='danger'
|
||||
effect='plain'
|
||||
size='mini'
|
||||
style='margin-right: 5px; margin-top: 5px') {{ $t('dialog.world.tags.private') }}
|
||||
el-tag.x-tag-platform-pc(
|
||||
v-if='worldDialog.isPC'
|
||||
type='info'
|
||||
effect='plain'
|
||||
size='mini'
|
||||
style='margin-right: 5px; margin-top: 5px') PC
|
||||
span.x-grey(
|
||||
v-if='worldDialog.bundleSizes["standalonewindows"]'
|
||||
style='margin-left: 5px; border-left: inherit; padding-left: 5px') {{ worldDialog.bundleSizes['standalonewindows'].fileSize }}
|
||||
el-tag.x-tag-platform-quest(
|
||||
v-if='worldDialog.isQuest'
|
||||
type='info'
|
||||
effect='plain'
|
||||
size='mini'
|
||||
style='margin-right: 5px; margin-top: 5px') Android
|
||||
span.x-grey(
|
||||
v-if='worldDialog.bundleSizes["android"]'
|
||||
style='margin-left: 5px; border-left: inherit; padding-left: 5px') {{ worldDialog.bundleSizes['android'].fileSize }}
|
||||
el-tag.x-tag-platform-ios(
|
||||
v-if='worldDialog.isIos'
|
||||
type='info'
|
||||
effect='plain'
|
||||
size='mini'
|
||||
style='margin-right: 5px; margin-top: 5px') iOS
|
||||
span.x-grey(
|
||||
v-if='worldDialog.bundleSizes["ios"]'
|
||||
style='margin-left: 5px; border-left: inherit; padding-left: 5px') {{ worldDialog.bundleSizes['ios'].fileSize }}
|
||||
el-tag(
|
||||
v-if='worldDialog.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='worldDialog.focusViewDisabled'
|
||||
type='warning'
|
||||
effect='plain'
|
||||
size='mini'
|
||||
style='margin-right: 5px; margin-top: 5px') {{ $t('dialog.world.tags.focus_view_disabled') }}
|
||||
el-tag(
|
||||
v-if='worldDialog.stickersDisabled'
|
||||
type='warning'
|
||||
effect='plain'
|
||||
size='mini'
|
||||
style='margin-right: 5px; margin-top: 5px') {{ $t('dialog.world.tags.stickers_disabled') }}
|
||||
el-tag(
|
||||
v-if='worldDialog.ref.unityPackageUrl'
|
||||
type='success'
|
||||
effect='plain'
|
||||
size='mini'
|
||||
style='margin-right: 5px; margin-top: 5px') {{ $t('dialog.world.tags.future_proofing') }}
|
||||
el-tag.x-link(
|
||||
v-if='worldDialog.inCache'
|
||||
type='info'
|
||||
effect='plain'
|
||||
size='mini'
|
||||
style='margin-right: 5px; margin-top: 5px'
|
||||
@click='openFolderGeneric(worldDialog.cachePath)')
|
||||
span(v-text='worldDialog.cacheSize')
|
||||
| {{ $t('dialog.world.tags.cache') }}
|
||||
div
|
||||
template(v-for='tag in worldDialog.ref.tags')
|
||||
el-tag(
|
||||
v-if='tag.startsWith("content_")'
|
||||
:key='tag'
|
||||
effect='plain'
|
||||
size='mini'
|
||||
style='margin-right: 5px; margin-top: 5px')
|
||||
template(v-if='tag === "content_horror"') {{ $t('dialog.world.tags.content_horror') }}
|
||||
template(v-else-if='tag === "content_gore"') {{ $t('dialog.world.tags.content_gore') }}
|
||||
template(v-else-if='tag === "content_violence"') {{ $t('dialog.world.tags.content_violence') }}
|
||||
template(v-else-if='tag === "content_adult"') {{ $t('dialog.world.tags.content_adult') }}
|
||||
template(v-else-if='tag === "content_sex"') {{ $t('dialog.world.tags.content_sex') }}
|
||||
template(v-else) {{ tag.replace('content_', '') }}
|
||||
div(style='margin-top: 5px')
|
||||
span(
|
||||
v-show='worldDialog.ref.name !== worldDialog.ref.description'
|
||||
v-text='worldDialog.ref.description'
|
||||
style='font-size: 12px')
|
||||
div(style='flex: none; margin-left: 10px')
|
||||
el-tooltip(
|
||||
v-if='worldDialog.inCache'
|
||||
placement='top'
|
||||
:content='$t("dialog.world.actions.delete_cache_tooltip")'
|
||||
:disabled='hideTooltips')
|
||||
el-button(
|
||||
icon='el-icon-delete'
|
||||
circle
|
||||
@click='deleteVRChatCache(worldDialog.ref)'
|
||||
:disabled='isGameRunning && worldDialog.cacheLocked')
|
||||
el-tooltip(
|
||||
v-if='worldDialog.isFavorite'
|
||||
placement='top'
|
||||
:content='$t("dialog.world.actions.favorites_tooltip")'
|
||||
:disabled='hideTooltips')
|
||||
el-button(
|
||||
type='default'
|
||||
icon='el-icon-star-on'
|
||||
circle
|
||||
@click='worldDialogCommand("Add Favorite")'
|
||||
style='margin-left: 5px')
|
||||
el-tooltip(
|
||||
v-else
|
||||
placement='top'
|
||||
:content='$t("dialog.world.actions.favorites_tooltip")'
|
||||
:disabled='hideTooltips')
|
||||
el-button(
|
||||
type='default'
|
||||
icon='el-icon-star-off'
|
||||
circle
|
||||
@click='worldDialogCommand("Add Favorite")'
|
||||
style='margin-left: 5px')
|
||||
el-dropdown(
|
||||
trigger='click'
|
||||
@command='worldDialogCommand'
|
||||
size='small'
|
||||
style='margin-left: 5px')
|
||||
el-button(type='default' icon='el-icon-more' circle)
|
||||
el-dropdown-menu(#default='dropdown')
|
||||
el-dropdown-item(icon='el-icon-refresh' command='Refresh') {{ $t('dialog.world.actions.refresh') }}
|
||||
el-dropdown-item(icon='el-icon-share' command='Share') {{ $t('dialog.world.actions.share') }}
|
||||
el-dropdown-item(icon='el-icon-s-flag' command='New Instance' divided) {{ $t('dialog.world.actions.new_instance') }}
|
||||
el-dropdown-item(icon='el-icon-message' command='New Instance and Self Invite') {{ $t('dialog.world.actions.new_instance_and_self_invite') }}
|
||||
el-dropdown-item(
|
||||
v-if='API.currentUser.$homeLocation && API.currentUser.$homeLocation.worldId === worldDialog.id'
|
||||
icon='el-icon-magic-stick'
|
||||
command='Reset Home'
|
||||
divided) {{ $t('dialog.world.actions.reset_home') }}
|
||||
el-dropdown-item(v-else icon='el-icon-s-home' command='Make Home' divided) {{ $t('dialog.world.actions.make_home') }}
|
||||
el-dropdown-item(icon='el-icon-tickets' command='Previous Instances') {{ $t('dialog.world.actions.show_previous_instances') }}
|
||||
template(v-if='API.currentUser.id !== worldDialog.ref.authorId')
|
||||
el-dropdown-item(icon='el-icon-picture-outline' command='Previous Images') {{ $t('dialog.world.actions.show_previous_images') }}
|
||||
el-dropdown-item(
|
||||
:disabled='!worldDialog.hasPersistData'
|
||||
icon='el-icon-upload'
|
||||
command='Delete Persistent Data') {{ $t('dialog.world.actions.delete_persistent_data') }}
|
||||
template(v-else)
|
||||
el-dropdown-item(icon='el-icon-edit' command='Rename') {{ $t('dialog.world.actions.rename') }}
|
||||
el-dropdown-item(icon='el-icon-edit' command='Change Description') {{ $t('dialog.world.actions.change_description') }}
|
||||
el-dropdown-item(icon='el-icon-edit' command='Change Capacity') {{ $t('dialog.world.actions.change_capacity') }}
|
||||
el-dropdown-item(icon='el-icon-edit' command='Change Recommended Capacity') {{ $t('dialog.world.actions.change_recommended_capacity') }}
|
||||
el-dropdown-item(icon='el-icon-edit' command='Change YouTube Preview') {{ $t('dialog.world.actions.change_preview') }}
|
||||
el-dropdown-item(icon='el-icon-edit' command='Change Tags') {{ $t('dialog.world.actions.change_tags') }}
|
||||
el-dropdown-item(icon='el-icon-edit' command='Change Allowed Domains') {{ $t('dialog.world.actions.change_allowed_video_player_domains') }}
|
||||
el-dropdown-item(icon='el-icon-picture-outline' command='Change Image') {{ $t('dialog.world.actions.change_image') }}
|
||||
el-dropdown-item(
|
||||
v-if='worldDialog.ref.unityPackageUrl'
|
||||
icon='el-icon-download'
|
||||
command='Download Unity Package') {{ $t('dialog.world.actions.download_package') }}
|
||||
el-dropdown-item(
|
||||
v-if='worldDialog.ref.tags.includes("system_approved") || worldDialog.ref.tags.includes("system_labs")'
|
||||
icon='el-icon-view'
|
||||
command='Unpublish'
|
||||
divided) {{ $t('dialog.world.actions.unpublish') }}
|
||||
el-dropdown-item(v-else icon='el-icon-view' command='Publish' divided) {{ $t('dialog.world.actions.publish_to_labs') }}
|
||||
el-dropdown-item(
|
||||
:disabled='!worldDialog.hasPersistData'
|
||||
icon='el-icon-upload'
|
||||
command='Delete Persistent Data') {{ $t('dialog.world.actions.delete_persistent_data') }}
|
||||
el-dropdown-item(icon='el-icon-delete' command='Delete' style='color: #f56c6c') {{ $t('dialog.world.actions.delete') }}
|
||||
el-tabs
|
||||
el-tab-pane(:label='$t("dialog.world.instances.header")')
|
||||
div.
|
||||
#[i.el-icon-user] {{ $t('dialog.world.instances.public_count', { count: worldDialog.ref.publicOccupants }) }}
|
||||
#[i.el-icon-user-solid(style='margin-left: 10px')] {{ $t('dialog.world.instances.private_count', { count: worldDialog.ref.privateOccupants }) }}
|
||||
#[i.el-icon-check(style='margin-left: 10px')] {{ $t('dialog.world.instances.capacity_count', { count: worldDialog.ref.recommendedCapacity, max: worldDialog.ref.capacity }) }}
|
||||
div(v-for='room in worldDialog.rooms' :key='room.id')
|
||||
div(style='margin: 5px 0')
|
||||
location-world(
|
||||
:locationobject='room.$location'
|
||||
:currentuserid='API.currentUser.id'
|
||||
:worlddialogshortname='worldDialog.$location.shortName'
|
||||
@show-launch-dialog='showLaunchDialog')
|
||||
launch(
|
||||
:location='room.tag'
|
||||
@show-launch-dialog='showLaunchDialog'
|
||||
style='margin-left: 5px')
|
||||
el-tooltip(
|
||||
placement='top'
|
||||
:content='$t("dialog.world.instances.self_invite_tooltip")'
|
||||
:disabled='hideTooltips')
|
||||
invite-yourself(
|
||||
:location='room.$location.tag'
|
||||
:shortname='room.$location.shortName'
|
||||
style='margin-left: 5px')
|
||||
el-tooltip(
|
||||
placement='top'
|
||||
:content='$t("dialog.world.instances.refresh_instance_info")'
|
||||
:disabled='hideTooltips')
|
||||
el-button(
|
||||
@click='refreshInstancePlayerCount(room.tag)'
|
||||
size='mini'
|
||||
icon='el-icon-refresh'
|
||||
style='margin-left: 5px'
|
||||
circle)
|
||||
el-tooltip(
|
||||
v-if='instanceJoinHistory.get(room.$location.tag)'
|
||||
placement='top'
|
||||
:content='$t("dialog.previous_instances.info")'
|
||||
:disabled='hideTooltips')
|
||||
el-button(
|
||||
@click='showPreviousInstanceInfoDialog(room.location)'
|
||||
size='mini'
|
||||
icon='el-icon-s-data'
|
||||
style='margin-left: 5px'
|
||||
plain
|
||||
circle)
|
||||
last-join(:location='room.$location.tag' :currentlocation='lastLocation.location')
|
||||
instance-info(
|
||||
:location='room.tag'
|
||||
:instance='room.ref'
|
||||
:friendcount='room.friendCount'
|
||||
:updateelement='updateInstanceInfo')
|
||||
.x-friend-list(
|
||||
style='margin: 10px 0; max-height: unset'
|
||||
v-if='room.$location.userId || room.users.length')
|
||||
.x-friend-item.x-friend-item-border(
|
||||
v-if='room.$location.userId'
|
||||
@click='showUserDialog(room.$location.userId)')
|
||||
template(v-if='room.$location.user')
|
||||
.avatar(:class='userStatusClass(room.$location.user)')
|
||||
img(v-lazy='userImage(room.$location.user)')
|
||||
.detail
|
||||
span.name(
|
||||
v-text='room.$location.user.displayName'
|
||||
:style='{ color: room.$location.user.$userColour }')
|
||||
span.extra {{ $t('dialog.world.instances.instance_creator') }}
|
||||
span(v-else v-text='room.$location.userId')
|
||||
.x-friend-item.x-friend-item-border(
|
||||
v-for='user in room.users'
|
||||
:key='user.id'
|
||||
@click='showUserDialog(user.id)')
|
||||
.avatar(:class='userStatusClass(user)')
|
||||
img(v-lazy='userImage(user)')
|
||||
.detail
|
||||
span.name(v-text='user.displayName' :style='{ color: user.$userColour }')
|
||||
span.extra(v-if='user.location === "traveling"')
|
||||
i.el-icon-loading(style='margin-right: 5px')
|
||||
timer(:epoch='user.$travelingToTime')
|
||||
span.extra(v-else)
|
||||
timer(:epoch='user.$location_at')
|
||||
el-tab-pane(:label='$t("dialog.world.info.header")' lazy)
|
||||
.x-friend-list(style='max-height: none')
|
||||
.x-friend-item(style='width: 100%; cursor: default')
|
||||
.detail
|
||||
span.name {{ $t('dialog.world.info.memo') }}
|
||||
el-input.extra(
|
||||
v-model='worldDialog.memo'
|
||||
@change='onWorldMemoChange'
|
||||
type='textarea'
|
||||
:rows='2'
|
||||
:autosize='{ minRows: 1, maxRows: 20 }'
|
||||
:placeholder='$t("dialog.world.info.memo_placeholder")'
|
||||
size='mini'
|
||||
resize='none')
|
||||
div(style='width: 100%; display: flex')
|
||||
.x-friend-item(style='width: 100%; cursor: default')
|
||||
.detail
|
||||
span.name {{ $t('dialog.world.info.id') }}
|
||||
span.extra {{ worldDialog.id }}
|
||||
el-tooltip(
|
||||
placement='top'
|
||||
:content='$t("dialog.world.info.id_tooltip")'
|
||||
:disabled='hideTooltips')
|
||||
el-dropdown(
|
||||
trigger='click'
|
||||
@click.native.stop
|
||||
size='mini'
|
||||
style='margin-left: 5px')
|
||||
el-button(type='default' icon='el-icon-s-order' size='mini' circle)
|
||||
el-dropdown-menu(#default='dropdown')
|
||||
el-dropdown-item(@click.native='copyWorldId(worldDialog.id)') {{ $t('dialog.world.info.copy_id') }}
|
||||
el-dropdown-item(@click.native='copyWorldUrl(worldDialog.id)') {{ $t('dialog.world.info.copy_url') }}
|
||||
el-dropdown-item(
|
||||
@click.native='copyWorldName(worldDialog.ref.name)') {{ $t('dialog.world.info.copy_name') }}
|
||||
.x-friend-item(
|
||||
v-if='worldDialog.ref.previewYoutubeId'
|
||||
style='width: 350px'
|
||||
@click='openExternalLink(`https://www.youtube.com/watch?v=${worldDialog.ref.previewYoutubeId}`)')
|
||||
.detail
|
||||
span.name {{ $t('dialog.world.info.youtube_preview') }}
|
||||
span.extra https://www.youtube.com/watch?v={{ worldDialog.ref.previewYoutubeId }}
|
||||
.x-friend-item(style='width: 100%; cursor: default')
|
||||
.detail
|
||||
span.name {{ $t('dialog.world.info.author_tags') }}
|
||||
span.extra(
|
||||
v-if='worldDialog.ref.tags?.filter((tag) => tag.startsWith("author_tag")).length > 0') {{ worldDialog.ref.tags.filter((tag) => tag.startsWith('author_tag')).map((tag) => tag.replace('author_tag_', '')).join(', ') }}
|
||||
span.extra(v-else) -
|
||||
.x-friend-item(style='cursor: default')
|
||||
.detail
|
||||
span.name {{ $t('dialog.world.info.players') }}
|
||||
span.extra {{ worldDialog.ref.occupants | commaNumber }}
|
||||
.x-friend-item(style='cursor: default')
|
||||
.detail
|
||||
span.name {{ $t('dialog.world.info.favorites') }}
|
||||
span.extra {{ worldDialog.ref.favorites | commaNumber }}
|
||||
| #[span.extra(v-if='worldDialog.ref.favorites > 0 && worldDialog.ref.visits > 0') ({{ Math.round((((worldDialog.ref.favorites - worldDialog.ref.visits) / worldDialog.ref.visits) * 100 + 100) * 100) / 100 }}%)]
|
||||
.x-friend-item(style='cursor: default')
|
||||
.detail
|
||||
span.name {{ $t('dialog.world.info.visits') }}
|
||||
span.extra {{ worldDialog.ref.visits | commaNumber }}
|
||||
.x-friend-item(style='cursor: default')
|
||||
.detail
|
||||
span.name {{ $t('dialog.world.info.capacity') }}
|
||||
span.extra {{ worldDialog.ref.recommendedCapacity | commaNumber }} ({{ worldDialog.ref.capacity | commaNumber }})
|
||||
.x-friend-item(style='cursor: default')
|
||||
.detail
|
||||
span.name {{ $t('dialog.world.info.created_at') }}
|
||||
span.extra {{ worldDialog.ref.created_at | formatDate('long') }}
|
||||
.x-friend-item(style='cursor: default')
|
||||
.detail
|
||||
span.name {{ $t('dialog.world.info.last_updated') }}
|
||||
span.extra(v-if='worldDialog.lastUpdated') {{ worldDialog.lastUpdated | formatDate('long') }}
|
||||
span.extra(v-else) {{ worldDialog.ref.updated_at | formatDate('long') }}
|
||||
.x-friend-item(v-if='worldDialog.ref.labsPublicationDate !== "none"' style='cursor: default')
|
||||
.detail
|
||||
span.name {{ $t('dialog.world.info.labs_publication_date') }}
|
||||
span.extra {{ worldDialog.ref.labsPublicationDate | formatDate('long') }}
|
||||
.x-friend-item(v-if='worldDialog.ref.publicationDate !== "none"' style='cursor: default')
|
||||
.detail
|
||||
span.name {{ $t('dialog.world.info.publication_date') }}
|
||||
el-tooltip(
|
||||
v-if='worldDialog.ref.publicationDate && worldDialog.ref.publicationDate !== "none" && worldDialog.ref.labsPublicationDate && worldDialog.ref.labsPublicationDate !== "none"'
|
||||
placement='top'
|
||||
style='margin-left: 5px')
|
||||
template(#content)
|
||||
span {{ $t('dialog.world.info.time_in_labs') }} {{ timeToText(new Date(worldDialog.ref.publicationDate) - new Date(worldDialog.ref.labsPublicationDate)) }}
|
||||
i.el-icon-arrow-down
|
||||
span.extra {{ worldDialog.ref.publicationDate | formatDate('long') }}
|
||||
.x-friend-item(style='cursor: default')
|
||||
.detail
|
||||
span.name {{ $t('dialog.world.info.version') }}
|
||||
span.extra(v-text='worldDialog.ref.version')
|
||||
.x-friend-item(style='cursor: default')
|
||||
.detail
|
||||
span.name {{ $t('dialog.world.info.heat') }}
|
||||
span.extra {{ worldDialog.ref.heat | commaNumber }} {{ '🔥'.repeat(worldDialog.ref.heat) }}
|
||||
.x-friend-item(style='cursor: default')
|
||||
.detail
|
||||
span.name {{ $t('dialog.world.info.popularity') }}
|
||||
span.extra {{ worldDialog.ref.popularity | commaNumber }} {{ '💖'.repeat(worldDialog.ref.popularity) }}
|
||||
.x-friend-item(style='width: 100%; cursor: default')
|
||||
.detail
|
||||
span.name {{ $t('dialog.world.info.platform') }}
|
||||
span.extra(v-text='worldDialogPlatform')
|
||||
.x-friend-item(style='cursor: default')
|
||||
.detail
|
||||
span.name {{ $t('dialog.world.info.last_visited') }}
|
||||
el-tooltip(
|
||||
v-if='!hideTooltips'
|
||||
placement='top'
|
||||
style='margin-left: 5px'
|
||||
:content='$t("dialog.world.info.accuracy_notice")')
|
||||
i.el-icon-warning
|
||||
span.extra {{ worldDialog.lastVisit | formatDate('long') }}
|
||||
el-tooltip(
|
||||
:disabled='hideTooltips'
|
||||
placement='top'
|
||||
:content='$t("dialog.user.info.open_previouse_instance")')
|
||||
.x-friend-item(@click='showPreviousInstancesWorldDialog(worldDialog.ref)')
|
||||
.detail
|
||||
span.name {{ $t('dialog.world.info.visit_count') }}
|
||||
el-tooltip(
|
||||
v-if='!hideTooltips'
|
||||
placement='top'
|
||||
style='margin-left: 5px'
|
||||
:content='$t("dialog.world.info.accuracy_notice")')
|
||||
i.el-icon-warning
|
||||
span.extra(v-text='worldDialog.visitCount')
|
||||
.x-friend-item(style='cursor: default')
|
||||
.detail
|
||||
span.name {{ $t('dialog.world.info.time_spent') }}
|
||||
el-tooltip(
|
||||
v-if='!hideTooltips'
|
||||
placement='top'
|
||||
style='margin-left: 5px'
|
||||
:content='$t("dialog.world.info.accuracy_notice")')
|
||||
i.el-icon-warning
|
||||
span.extra(v-if='worldDialog.timeSpent === 0') -
|
||||
span.extra(v-else) {{ timeToText(worldDialog.timeSpent) }}
|
||||
el-tab-pane(:label='$t("dialog.world.json.header")' lazy)
|
||||
el-button(
|
||||
type='default'
|
||||
@click='refreshWorldDialogTreeData()'
|
||||
size='mini'
|
||||
icon='el-icon-refresh'
|
||||
circle)
|
||||
el-button(
|
||||
type='default'
|
||||
@click='downloadAndSaveJson(worldDialog.id, worldDialog.ref)'
|
||||
size='mini'
|
||||
icon='el-icon-download'
|
||||
circle
|
||||
style='margin-left: 5px')
|
||||
el-tree(:data='worldDialog.treeData' style='margin-top: 5px; 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')
|
||||
world-dialog(
|
||||
:world-dialog='worldDialog'
|
||||
:hide-tooltips='hideTooltips'
|
||||
:is-game-running='isGameRunning'
|
||||
:last-location='lastLocation'
|
||||
:instance-join-history='instanceJoinHistory'
|
||||
:update-instance-info='updateInstanceInfo'
|
||||
@show-fullscreen-image-dialog='showFullscreenImageDialog'
|
||||
@open-folder-generic='openFolderGeneric'
|
||||
@delete-vrchat-cache='deleteVRChatCache'
|
||||
@world-dialog-command='worldDialogCommand'
|
||||
@show-launch-dialog='showLaunchDialog'
|
||||
@refresh-instance-player-count='refreshInstancePlayerCount'
|
||||
@show-previous-instance-info-dialog='showPreviousInstanceInfoDialog'
|
||||
@show-previous-instances-world-dialog='showPreviousInstancesWorldDialog'
|
||||
@download-and-save-json='downloadAndSaveJson')
|
||||
|
||||
//- dialog: change Allowed Video Player Domains
|
||||
el-dialog.x-dialog(
|
||||
|
||||
@@ -16,7 +16,7 @@ mixin favoritesTab
|
||||
size='small'
|
||||
icon='el-icon-refresh'
|
||||
circle)
|
||||
el-tabs(type='card' v-loading='API.isFavoriteLoading' style='height: 100%' @tab-click='onFavTabClick')
|
||||
el-tabs(type='card' v-loading='API.isFavoriteLoading' style='height: 100%')
|
||||
el-tab-pane(:label='$t("view.favorite.friends.header")' lazy)
|
||||
div(style='display: flex; align-items: center; justify-content: space-between')
|
||||
div
|
||||
@@ -132,302 +132,28 @@ mixin favoritesTab
|
||||
style='padding-top: 25px; width: 100%; display: flex; align-items: center; justify-content: center; color: rgb(144, 147, 153)')
|
||||
span No Data
|
||||
el-tab-pane(:label='$t("view.favorite.worlds.header")' lazy)
|
||||
div(style='display: flex; align-items: center; justify-content: space-between')
|
||||
div
|
||||
el-button(size='small' @click='showWorldExportDialog') {{ $t('view.favorite.export') }}
|
||||
el-button(size='small' @click='showWorldImportDialog' style='margin-left: 5px') {{ $t('view.favorite.import') }}
|
||||
div(style='display: flex; align-items: center; font-size: 13px; margin-right: 10px')
|
||||
span.name(style='margin-right: 5px; line-height: 10px') {{ $t('view.favorite.sort_by') }}
|
||||
el-radio-group(
|
||||
v-model='sortFavorites'
|
||||
@change='saveSortFavoritesOption'
|
||||
style='margin-right: 12px')
|
||||
el-radio(:label='false') {{ $t('view.settings.appearance.appearance.sort_favorite_by_name') }}
|
||||
el-radio(:label='true') {{ $t('view.settings.appearance.appearance.sort_favorite_by_date') }}
|
||||
el-input(
|
||||
v-model='worldFavoriteSearch'
|
||||
@input='searchWorldFavorites'
|
||||
clearable
|
||||
size='mini'
|
||||
:placeholder='$t("view.favorite.worlds.search")'
|
||||
style='width: 200px')
|
||||
.x-friend-list(style='margin-top: 10px')
|
||||
div(
|
||||
style='display: inline-block; width: 300px; margin-right: 15px'
|
||||
v-for='favorite in worldFavoriteSearchResults'
|
||||
:key='favorite.id'
|
||||
@click='showWorldDialog(favorite.id)')
|
||||
.x-friend-item
|
||||
template(v-if='favorite.name')
|
||||
.avatar
|
||||
img(v-lazy='favorite.thumbnailImageUrl')
|
||||
.detail
|
||||
span.name(v-text='favorite.name')
|
||||
span.extra(v-if='favorite.occupants') {{ favorite.authorName }} ({{ favorite.occupants }})
|
||||
span.extra(v-else v-text='favorite.authorName')
|
||||
template(v-else)
|
||||
.avatar
|
||||
.detail
|
||||
span(v-text='favorite.id')
|
||||
span(style='display: block; margin-top: 20px') {{ $t('view.favorite.worlds.vrchat_favorites') }}
|
||||
el-collapse(style='border: 0')
|
||||
el-collapse-item(v-for='group in API.favoriteWorldGroups' :key='group.name')
|
||||
template(slot='title')
|
||||
div(style='display: flex; align-items: center')
|
||||
span(
|
||||
v-text='group.displayName'
|
||||
style='font-weight: bold; font-size: 14px; margin-left: 10px')
|
||||
el-tag(
|
||||
style='margin: 1px 0 0 5px'
|
||||
size='mini'
|
||||
:type='userFavoriteWorldsStatusForFavTab(group.visibility)'
|
||||
effect='plain') {{ group.visibility.charAt(0).toUpperCase() + group.visibility.slice(1) }}
|
||||
span(style='color: #909399; font-size: 12px; margin-left: 10px') {{ group.count }}/{{ group.capacity }}
|
||||
el-dropdown(trigger='click' @click.native.stop size='mini' style='margin-left: 10px')
|
||||
el-tooltip(
|
||||
placement='top'
|
||||
:content='$t("view.favorite.visibility_tooltip")'
|
||||
:disabled='hideTooltips')
|
||||
el-button(type='default' icon='el-icon-view' size='mini' circle)
|
||||
el-dropdown-menu(#default='dropdown')
|
||||
el-dropdown-item(
|
||||
v-if='group.visibility !== visibility'
|
||||
v-for='visibility in worldGroupVisibilityOptions'
|
||||
:key='visibility'
|
||||
style='display: block; margin: 10px 0'
|
||||
v-text='visibility.charAt(0).toUpperCase() + visibility.slice(1)'
|
||||
@click.native='changeWorldGroupVisibility(group.name, visibility)')
|
||||
el-tooltip(
|
||||
placement='top'
|
||||
:content='$t("view.favorite.rename_tooltip")'
|
||||
:disabled='hideTooltips')
|
||||
el-button(
|
||||
@click.stop='changeFavoriteGroupName(group)'
|
||||
size='mini'
|
||||
icon='el-icon-edit'
|
||||
circle
|
||||
style='margin-left: 5px')
|
||||
el-tooltip(
|
||||
placement='right'
|
||||
:content='$t("view.favorite.clear_tooltip")'
|
||||
:disabled='hideTooltips')
|
||||
el-button(
|
||||
@click.stop='clearFavoriteGroup(group)'
|
||||
size='mini'
|
||||
icon='el-icon-delete'
|
||||
circle
|
||||
style='margin-left: 5px')
|
||||
.x-friend-list(v-if='group.count' style='margin-top: 10px')
|
||||
div(
|
||||
style='display: inline-block; width: 300px; margin-right: 15px'
|
||||
v-for='favorite in groupedByGroupKeyFavoriteWorlds[group.key]'
|
||||
:key='favorite.id'
|
||||
@click='showWorldDialog(favorite.id)')
|
||||
.x-friend-item
|
||||
template(v-if='favorite.ref')
|
||||
.avatar
|
||||
img(v-lazy='favorite.ref.thumbnailImageUrl')
|
||||
.detail
|
||||
span.name(v-text='favorite.ref.name')
|
||||
span.extra(v-if='favorite.ref.occupants') {{ favorite.ref.authorName }} ({{ favorite.ref.occupants }})
|
||||
span.extra(v-else v-text='favorite.ref.authorName')
|
||||
template(v-if='editFavoritesMode')
|
||||
el-dropdown(
|
||||
trigger='click'
|
||||
@click.native.stop
|
||||
size='mini'
|
||||
style='margin-left: 5px')
|
||||
el-tooltip(
|
||||
placement='left'
|
||||
:content='$t("view.favorite.move_tooltip")'
|
||||
:disabled='hideTooltips')
|
||||
el-button(type='default' icon='el-icon-back' size='mini' circle)
|
||||
el-dropdown-menu(#default='dropdown')
|
||||
template(
|
||||
v-if='groupAPI.name !== group.name'
|
||||
v-for='groupAPI in API.favoriteWorldGroups')
|
||||
el-dropdown-item(
|
||||
:key='groupAPI.name'
|
||||
style='display: block; margin: 10px 0'
|
||||
@click.native='moveFavorite(favorite.ref, groupAPI, "world")'
|
||||
:disabled='groupAPI.count >= groupAPI.capacity') {{ groupAPI.displayName }} ({{ groupAPI.count }} / {{ groupAPI.capacity }})
|
||||
el-button(type='text' size='mini' @click.stop style='margin-left: 5px')
|
||||
el-checkbox(v-model='favorite.$selected')
|
||||
template(v-else)
|
||||
el-tooltip(
|
||||
v-if='favorite.deleted'
|
||||
placement='left'
|
||||
:content='$t("view.favorite.unavailable_tooltip")')
|
||||
i.el-icon-warning(style='color: #f56c6c; margin-left: 5px')
|
||||
el-tooltip(
|
||||
v-if='favorite.ref.releaseStatus === "private"'
|
||||
placement='left'
|
||||
:content='$t("view.favorite.private")')
|
||||
i.el-icon-warning(style='color: #e6a23c; margin-left: 5px')
|
||||
el-tooltip(
|
||||
placement='left'
|
||||
:content='$t("view.favorite.self_invite_tooltip")'
|
||||
:disabled='hideTooltips')
|
||||
el-button(
|
||||
@click.stop='newInstanceSelfInvite(favorite.id)'
|
||||
size='mini'
|
||||
icon='el-icon-message'
|
||||
circle
|
||||
style='margin-left: 5px')
|
||||
el-tooltip(
|
||||
placement='right'
|
||||
:content='$t("view.favorite.unfavorite_tooltip")'
|
||||
:disabled='hideTooltips')
|
||||
el-button(
|
||||
v-if='shiftHeld'
|
||||
@click.stop='deleteFavorite(favorite.id)'
|
||||
size='mini'
|
||||
icon='el-icon-close'
|
||||
circle
|
||||
style='color: #f56c6c; margin-left: 5px')
|
||||
el-button(
|
||||
v-else
|
||||
@click.stop='showFavoriteDialog("world", favorite.id)'
|
||||
type='default'
|
||||
icon='el-icon-star-on'
|
||||
size='mini'
|
||||
circle
|
||||
style='margin-left: 5px')
|
||||
template(v-else)
|
||||
.avatar
|
||||
.detail
|
||||
span(v-text='favorite.name || favorite.id')
|
||||
el-tooltip(
|
||||
v-if='favorite.deleted'
|
||||
placement='left'
|
||||
:content='$t("view.favorite.unavailable_tooltip")')
|
||||
i.el-icon-warning(style='color: #f56c6c; margin-left: 5px')
|
||||
el-button(
|
||||
type='text'
|
||||
icon='el-icon-close'
|
||||
size='mini'
|
||||
@click.stop='deleteFavorite(favorite.id)'
|
||||
style='margin-left: 5px')
|
||||
div(
|
||||
v-else
|
||||
style='padding-top: 25px; width: 100%; display: flex; align-items: center; justify-content: center; color: rgb(144, 147, 153)')
|
||||
span No Data
|
||||
span(style='display: block; margin-top: 20px') {{ $t('view.favorite.worlds.local_favorites') }}
|
||||
br
|
||||
el-button(size='small' @click='promptNewLocalWorldFavoriteGroup') {{ $t('view.favorite.worlds.new_group') }}
|
||||
el-button(
|
||||
v-if='!refreshingLocalFavorites'
|
||||
size='small'
|
||||
@click='refreshLocalWorldFavorites'
|
||||
style='margin-left: 5px') {{ $t('view.favorite.worlds.refresh') }}
|
||||
el-button(v-else size='small' @click='refreshingLocalFavorites = false' style='margin-left: 5px')
|
||||
i.el-icon-loading(style='margin-right: 5px')
|
||||
span {{ $t('view.favorite.worlds.cancel_refresh') }}
|
||||
el-collapse-item(
|
||||
v-for='group in localWorldFavoriteGroups'
|
||||
v-if='localWorldFavorites[group]'
|
||||
:key='group')
|
||||
template(slot='title')
|
||||
span(v-text='group' style='font-weight: bold; font-size: 14px; margin-left: 10px')
|
||||
span(style='color: #909399; font-size: 12px; margin-left: 10px') {{ getLocalWorldFavoriteGroupLength(group) }}
|
||||
el-tooltip(
|
||||
placement='top'
|
||||
:content='$t("view.favorite.rename_tooltip")'
|
||||
:disabled='hideTooltips')
|
||||
el-button(
|
||||
@click.stop='promptLocalWorldFavoriteGroupRename(group)'
|
||||
size='mini'
|
||||
icon='el-icon-edit'
|
||||
circle
|
||||
style='margin-left: 10px')
|
||||
el-tooltip(
|
||||
placement='right'
|
||||
:content='$t("view.favorite.delete_tooltip")'
|
||||
:disabled='hideTooltips')
|
||||
el-button(
|
||||
@click.stop='promptLocalWorldFavoriteGroupDelete(group)'
|
||||
size='mini'
|
||||
icon='el-icon-delete'
|
||||
circle
|
||||
style='margin-left: 5px')
|
||||
.x-friend-list(
|
||||
style='margin-top: 10px'
|
||||
v-if='localFavoriteShowDelayedContent[0] && localWorldFavorites[group].length')
|
||||
div(
|
||||
style='display: inline-block; width: 300px; margin-right: 15px'
|
||||
v-for='favorite in localWorldFavorites[group]'
|
||||
:key='favorite.id'
|
||||
@click='showWorldDialog(favorite.id)')
|
||||
.x-friend-item
|
||||
template(v-if='favorite.name')
|
||||
.avatar
|
||||
img(v-lazy='favorite.thumbnailImageUrl')
|
||||
.detail
|
||||
span.name(v-text='favorite.name')
|
||||
span.extra(v-if='favorite.occupants') {{ favorite.authorName }} ({{ favorite.occupants }})
|
||||
span.extra(v-else v-text='favorite.authorName')
|
||||
template(v-if='editFavoritesMode')
|
||||
el-dropdown(
|
||||
trigger='click'
|
||||
@click.native.stop
|
||||
size='mini'
|
||||
style='margin-left: 5px')
|
||||
el-tooltip(
|
||||
placement='left'
|
||||
:content='$t("view.favorite.copy_tooltip")'
|
||||
:disabled='hideTooltips')
|
||||
el-button(type='default' icon='el-icon-back' size='mini' circle)
|
||||
el-dropdown-menu(#default='dropdown')
|
||||
template(v-for='groupAPI in API.favoriteWorldGroups')
|
||||
el-dropdown-item(
|
||||
:key='groupAPI.name'
|
||||
style='display: block; margin: 10px 0'
|
||||
@click.native='addFavoriteWorld(favorite, groupAPI, true)'
|
||||
:disabled='groupAPI.count >= groupAPI.capacity') {{ groupAPI.displayName }} ({{ groupAPI.count }} / {{ groupAPI.capacity }})
|
||||
template(v-else)
|
||||
el-tooltip(
|
||||
placement='left'
|
||||
:content='$t("view.favorite.self_invite_tooltip")'
|
||||
:disabled='hideTooltips')
|
||||
el-button(
|
||||
@click.stop='newInstanceSelfInvite(favorite.id)'
|
||||
size='mini'
|
||||
icon='el-icon-message'
|
||||
circle
|
||||
style='margin-left: 5px')
|
||||
el-tooltip(
|
||||
placement='right'
|
||||
:content='$t("view.favorite.unfavorite_tooltip")'
|
||||
:disabled='hideTooltips')
|
||||
el-button(
|
||||
v-if='shiftHeld'
|
||||
@click.stop='removeLocalWorldFavorite(favorite.id, group)'
|
||||
size='mini'
|
||||
icon='el-icon-close'
|
||||
circle
|
||||
style='color: #f56c6c; margin-left: 5px')
|
||||
el-button(
|
||||
v-else
|
||||
@click.stop='showFavoriteDialog("world", favorite.id)'
|
||||
type='default'
|
||||
icon='el-icon-star-on'
|
||||
size='mini'
|
||||
circle
|
||||
style='margin-left: 5px')
|
||||
template(v-else)
|
||||
.avatar
|
||||
.detail
|
||||
span(v-text='favorite.id')
|
||||
el-button(
|
||||
type='text'
|
||||
icon='el-icon-close'
|
||||
size='mini'
|
||||
@click.stop='removeLocalWorldFavorite(favorite.id, group)'
|
||||
style='margin-left: 5px')
|
||||
div(
|
||||
v-else
|
||||
style='padding-top: 25px; width: 100%; display: flex; align-items: center; justify-content: center; color: rgb(144, 147, 153)')
|
||||
span No Data
|
||||
favorites-world-tab(
|
||||
@show-world-export-dialog='showWorldExportDialog'
|
||||
@show-world-import-dialog='showWorldImportDialog'
|
||||
@save-sort-favorites-option='saveSortFavoritesOption'
|
||||
@show-world-dialog='showWorldDialog'
|
||||
@change-favorite-group-name='changeFavoriteGroupName'
|
||||
@clear-favorite-group='clearFavoriteGroup'
|
||||
@new-instance-self-invite='newInstanceSelfInvite'
|
||||
@show-favorite-dialog='showFavoriteDialog'
|
||||
@refresh-local-world-favorite='refreshLocalWorldFavorites'
|
||||
@delete-local-world-favorite-group='deleteLocalWorldFavoriteGroup'
|
||||
@search-world-favorites='searchWorldFavorites'
|
||||
@remove-local-world-favorite='removeLocalWorldFavorite'
|
||||
:sort-favorites.sync='sortFavorites'
|
||||
:world-favorite-search-results='worldFavoriteSearchResults'
|
||||
:hide-tooltips='hideTooltips'
|
||||
:favorite-worlds='favoriteWorlds'
|
||||
:edit-favorites-mode='editFavoritesMode'
|
||||
:shift-held='shiftHeld'
|
||||
:refresh-local-world-favorites='refreshLocalWorldFavorites'
|
||||
:local-world-favorite-groups='localWorldFavoriteGroups'
|
||||
:local-world-favorites='localWorldFavorites')
|
||||
el-tab-pane(:label='$t("view.favorite.avatars.header")' lazy)
|
||||
div(style='display: flex; align-items: center; justify-content: space-between')
|
||||
div
|
||||
@@ -681,9 +407,7 @@ mixin favoritesTab
|
||||
icon='el-icon-delete'
|
||||
circle
|
||||
style='margin-left: 5px')
|
||||
.x-friend-list(
|
||||
style='margin-top: 10px'
|
||||
v-if='localFavoriteShowDelayedContent[1] && localAvatarFavorites[group].length')
|
||||
.x-friend-list(style='margin-top: 10px' v-if='localAvatarFavorites[group].length')
|
||||
div(
|
||||
style='display: inline-block; width: 300px; margin-right: 15px'
|
||||
v-for='favorite in localAvatarFavorites[group]'
|
||||
|
||||
@@ -105,7 +105,7 @@ mixin notificationsTab
|
||||
@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"')
|
||||
span.x-link(v-if='scope.row.type === "invite"' style='display: flex')
|
||||
location(
|
||||
v-if='scope.row.details'
|
||||
:location='scope.row.details.worldId'
|
||||
|
||||
Reference in New Issue
Block a user