mirror of
https://github.com/MrUnknownDE/VRCX.git
synced 2026-04-12 19:33:50 +02:00
445 lines
24 KiB
Plaintext
445 lines
24 KiB
Plaintext
mixin currentUser
|
|
//- dialog: social status
|
|
el-dialog.x-dialog(
|
|
:before-close='beforeDialogClose'
|
|
@mousedown.native='dialogMouseDown'
|
|
@mouseup.native='dialogMouseUp'
|
|
ref='socialStatusDialog'
|
|
:visible.sync='socialStatusDialog.visible'
|
|
:title='$t("dialog.social_status.header")'
|
|
width='400px')
|
|
div(v-loading='socialStatusDialog.loading')
|
|
el-collapse(style='border: 0')
|
|
el-collapse-item
|
|
template(slot='title')
|
|
span(style='font-size: 16px') {{ $t('dialog.social_status.history') }}
|
|
data-tables(
|
|
v-bind='socialStatusHistoryTable'
|
|
@row-click='setSocialStatusFromHistory'
|
|
style='cursor: pointer')
|
|
el-table-column(:label='$t("table.social_status.no")' prop='no' width='50')
|
|
el-table-column(:label='$t("table.social_status.status")' prop='status')
|
|
el-select(v-model='socialStatusDialog.status' style='display: block; margin-top: 10px')
|
|
el-option(:label='$t("dialog.user.status.join_me")' value='join me').
|
|
#[i.x-user-status.joinme] {{ $t('dialog.user.status.join_me') }}
|
|
el-option(:label='$t("dialog.user.status.online")' value='active').
|
|
#[i.x-user-status.online] {{ $t('dialog.user.status.online') }}
|
|
el-option(:label='$t("dialog.user.status.ask_me")' value='ask me').
|
|
#[i.x-user-status.askme] {{ $t('dialog.user.status.ask_me') }}
|
|
el-option(:label='$t("dialog.user.status.busy")' value='busy').
|
|
#[i.x-user-status.busy] {{ $t('dialog.user.status.busy') }}
|
|
el-option(
|
|
v-if='API.currentUser.$isModerator'
|
|
:label='$t("dialog.user.status.offline")'
|
|
value='offline').
|
|
#[i.x-user-status.offline] {{ $t('dialog.user.status.offline') }}
|
|
el-input(
|
|
v-model='socialStatusDialog.statusDescription'
|
|
:placeholder='$t("dialog.social_status.status_placeholder")'
|
|
maxlength='32'
|
|
show-word-limit
|
|
style='display: block; margin-top: 10px')
|
|
template(#footer)
|
|
el-button(type='primary' size='small' :disabled='socialStatusDialog.loading' @click='saveSocialStatus') {{ $t('dialog.social_status.update') }}
|
|
|
|
//- dialog: language
|
|
el-dialog.x-dialog(
|
|
:before-close='beforeDialogClose'
|
|
@mousedown.native='dialogMouseDown'
|
|
@mouseup.native='dialogMouseUp'
|
|
ref='languageDialog'
|
|
:visible.sync='languageDialog.visible'
|
|
:title='$t("dialog.language.header")'
|
|
width='400px')
|
|
div(v-loading='languageDialog.loading')
|
|
div(style='margin: 6px 0' v-for='item in API.currentUser.$languages' :key='item.key')
|
|
el-tag(
|
|
size='small'
|
|
type='info'
|
|
effect='plain'
|
|
closable
|
|
@close='removeUserLanguage(item.key)'
|
|
style='margin-right: 5px')
|
|
span.flags(:class='languageClass(item.key)' style='display: inline-block; margin-right: 5px')
|
|
| {{ item.value }} ({{ item.key.toUpperCase() }})
|
|
el-select(
|
|
value=''
|
|
:disabled='languageDialog.loading || (API.currentUser.$languages && API.currentUser.$languages.length === 3)'
|
|
:placeholder='$t("dialog.language.select_language")'
|
|
@change='addUserLanguage'
|
|
style='margin-top: 14px')
|
|
el-option(
|
|
v-for='item in languageDialog.languages'
|
|
:key='item.key'
|
|
:value='item.key'
|
|
:label='item.value')
|
|
span.flags(:class='languageClass(item.key)' style='display: inline-block; margin-right: 5px')
|
|
| {{ item.value }} ({{ item.key.toUpperCase() }})
|
|
//- dialog: bio
|
|
el-dialog.x-dialog(
|
|
:before-close='beforeDialogClose'
|
|
@mousedown.native='dialogMouseDown'
|
|
@mouseup.native='dialogMouseUp'
|
|
ref='bioDialog'
|
|
:visible.sync='bioDialog.visible'
|
|
:title='$t("dialog.bio.header")'
|
|
width='600px')
|
|
div(v-loading='bioDialog.loading')
|
|
el-input(
|
|
type='textarea'
|
|
v-model='bioDialog.bio'
|
|
size='mini'
|
|
maxlength='512'
|
|
show-word-limit
|
|
:autosize='{ minRows: 5, maxRows: 20 }'
|
|
:placeholder='$t("dialog.bio.bio_placeholder")'
|
|
style='margin-bottom: 10px')
|
|
el-input(
|
|
v-for='(link, index) in bioDialog.bioLinks'
|
|
:key='index'
|
|
:value='link'
|
|
v-model='bioDialog.bioLinks[index]'
|
|
size='small'
|
|
style='margin-top: 5px')
|
|
img(slot='prepend' :src='getFaviconUrl(link)' style='width: 16px; height: 16px')
|
|
el-button(slot='append' icon='el-icon-delete' @click='bioDialog.bioLinks.splice(index, 1)')
|
|
el-button(
|
|
@click='bioDialog.bioLinks.push("")'
|
|
:disabled='bioDialog.bioLinks.length >= 3'
|
|
size='mini'
|
|
style='margin-top: 5px') {{ $t('dialog.bio.add_link') }}
|
|
template(#footer)
|
|
el-button(type='primary' size='small' :disabled='bioDialog.loading' @click='saveBio') {{ $t('dialog.bio.update') }}
|
|
|
|
//- dialog: pronouns
|
|
el-dialog.x-dialog(
|
|
:before-close='beforeDialogClose'
|
|
@mousedown.native='dialogMouseDown'
|
|
@mouseup.native='dialogMouseUp'
|
|
ref='pronounsDialog'
|
|
:visible.sync='pronounsDialog.visible'
|
|
:title='$t("dialog.pronouns.header")'
|
|
width='600px')
|
|
div(v-loading='pronounsDialog.loading')
|
|
el-input(
|
|
type='textarea'
|
|
v-model='pronounsDialog.pronouns'
|
|
size='mini'
|
|
maxlength='32'
|
|
show-word-limit
|
|
:autosize='{ minRows: 2, maxRows: 5 }'
|
|
:placeholder='$t("dialog.pronouns.pronouns_placeholder")')
|
|
template(#footer)
|
|
el-button(type='primary' size='small' :disabled='pronounsDialog.loading' @click='savePronouns') {{ $t('dialog.pronouns.update') }}
|
|
|
|
//- dialog: Gallery/VRCPlusIcons
|
|
el-dialog.x-dialog(
|
|
:before-close='beforeDialogClose'
|
|
@mousedown.native='dialogMouseDown'
|
|
@mouseup.native='dialogMouseUp'
|
|
ref='galleryDialog'
|
|
:visible.sync='galleryDialogVisible'
|
|
:title='$t("dialog.gallery_icons.header")'
|
|
width='97vw'
|
|
top='5vh'
|
|
destroy-on-close)
|
|
el-tabs(type='card' ref='galleryTabs')
|
|
el-tab-pane(v-if='galleryDialogVisible' v-loading='galleryDialogGalleryLoading')
|
|
span(slot='label') {{ $t('dialog.gallery_icons.gallery') }}
|
|
span(style='color: #909399; font-size: 12px; margin-left: 5px') {{ galleryTable.length }}/64
|
|
input#GalleryUploadButton(
|
|
type='file'
|
|
accept='image/*'
|
|
@change='onFileChangeGallery'
|
|
style='display: none')
|
|
span {{ $t('dialog.gallery_icons.recommended_image_size') }}: 1200x900px (4:3)
|
|
br
|
|
br
|
|
el-button-group
|
|
el-button(type='default' size='small' @click='refreshGalleryTable' icon='el-icon-refresh') {{ $t('dialog.gallery_icons.refresh') }}
|
|
el-button(
|
|
type='default'
|
|
size='small'
|
|
@click='displayGalleryUpload'
|
|
icon='el-icon-upload2'
|
|
:disabled='!API.currentUser.$isVRCPlus') {{ $t('dialog.gallery_icons.upload') }}
|
|
el-button(
|
|
type='default'
|
|
size='small'
|
|
@click='setProfilePicOverride("")'
|
|
icon='el-icon-close'
|
|
:disabled='!API.currentUser.profilePicOverride') {{ $t('dialog.gallery_icons.clear') }}
|
|
br
|
|
.x-friend-item(
|
|
v-if='image.versions && image.versions.length > 0'
|
|
v-for='image in galleryTable'
|
|
:key='image.id'
|
|
style='display: inline-block; margin-top: 10px; width: unset; cursor: default')
|
|
.vrcplus-icon(
|
|
v-if='image.versions[image.versions.length - 1].file.url'
|
|
@click='setProfilePicOverride(image.id)'
|
|
:class='{ "current-vrcplus-icon": compareCurrentProfilePic(image.id) }')
|
|
img.avatar(v-lazy='image.versions[image.versions.length - 1].file.url')
|
|
div(style='float: right; margin-top: 5px')
|
|
el-button(
|
|
type='default'
|
|
@click='showFullscreenImageDialog(image.versions[image.versions.length - 1].file.url)'
|
|
size='mini'
|
|
icon='el-icon-picture-outline'
|
|
circle)
|
|
el-button(
|
|
type='default'
|
|
@click='deleteGalleryImage(image.id)'
|
|
size='mini'
|
|
icon='el-icon-delete'
|
|
circle
|
|
style='margin-left: 5px')
|
|
el-tab-pane(v-if='galleryDialogVisible' v-loading='galleryDialogIconsLoading' lazy)
|
|
span(slot='label') {{ $t('dialog.gallery_icons.icons') }}
|
|
span(style='color: #909399; font-size: 12px; margin-left: 5px') {{ VRCPlusIconsTable.length }}/64
|
|
input#VRCPlusIconUploadButton(
|
|
type='file'
|
|
accept='image/*'
|
|
@change='onFileChangeVRCPlusIcon'
|
|
style='display: none')
|
|
span {{ $t('dialog.gallery_icons.recommended_image_size') }}: 2048x2048px (1:1)
|
|
br
|
|
br
|
|
el-button-group
|
|
el-button(type='default' size='small' @click='refreshVRCPlusIconsTable' icon='el-icon-refresh') {{ $t('dialog.gallery_icons.refresh') }}
|
|
el-button(
|
|
type='default'
|
|
size='small'
|
|
@click='displayVRCPlusIconUpload'
|
|
icon='el-icon-upload2'
|
|
:disabled='!API.currentUser.$isVRCPlus') {{ $t('dialog.gallery_icons.upload') }}
|
|
el-button(
|
|
type='default'
|
|
size='small'
|
|
@click='setVRCPlusIcon("")'
|
|
icon='el-icon-close'
|
|
:disabled='!API.currentUser.userIcon') {{ $t('dialog.gallery_icons.clear') }}
|
|
br
|
|
.x-friend-item(
|
|
v-if='image.versions && image.versions.length > 0'
|
|
v-for='image in VRCPlusIconsTable'
|
|
:key='image.id'
|
|
style='display: inline-block; margin-top: 10px; width: unset; cursor: default')
|
|
.vrcplus-icon(
|
|
v-if='image.versions[image.versions.length - 1].file.url'
|
|
@click='setVRCPlusIcon(image.id)'
|
|
:class='{ "current-vrcplus-icon": compareCurrentVRCPlusIcon(image.id) }')
|
|
img.avatar(v-lazy='image.versions[image.versions.length - 1].file.url')
|
|
div(style='float: right; margin-top: 5px')
|
|
el-button(
|
|
type='default'
|
|
@click='showFullscreenImageDialog(image.versions[image.versions.length - 1].file.url)'
|
|
size='mini'
|
|
icon='el-icon-picture-outline'
|
|
circle)
|
|
el-button(
|
|
type='default'
|
|
@click='deleteVRCPlusIcon(image.id)'
|
|
size='mini'
|
|
icon='el-icon-delete'
|
|
circle
|
|
style='margin-left: 5px')
|
|
el-tab-pane(v-if='galleryDialogVisible' v-loading='galleryDialogEmojisLoading' lazy)
|
|
span(slot='label') {{ $t('dialog.gallery_icons.emojis') }}
|
|
span(style='color: #909399; font-size: 12px; margin-left: 5px') {{ emojiTable.length }}/9
|
|
input#EmojiUploadButton(type='file' accept='image/*' @change='onFileChangeEmoji' style='display: none')
|
|
span {{ $t('dialog.gallery_icons.recommended_image_size') }}: 1024x1024px (1:1)
|
|
br
|
|
br
|
|
div(style='display: flex; align-items: center')
|
|
el-button-group(style='margin-right: 10px')
|
|
el-button(type='default' size='small' @click='refreshEmojiTable' icon='el-icon-refresh') {{ $t('dialog.gallery_icons.refresh') }}
|
|
el-button(
|
|
type='default'
|
|
size='small'
|
|
@click='displayEmojiUpload'
|
|
icon='el-icon-upload2'
|
|
:disabled='!API.currentUser.$isVRCPlus') {{ $t('dialog.gallery_icons.upload') }}
|
|
el-select(v-model='emojiAnimationStyle' popper-class='max-height-el-select')
|
|
el-option-group {{ $t('dialog.gallery_icons.emoji_animation_styles') }}
|
|
el-option.x-friend-item(
|
|
v-for='(fileName, styleName) in emojiAnimationStyleList'
|
|
:key='styleName'
|
|
:label='styleName'
|
|
:value='styleName'
|
|
style='height: auto')
|
|
.avatar(style='width: 200px; height: 200px')
|
|
img(v-lazy='`${emojiAnimationStyleUrl}${fileName}`')
|
|
.detail
|
|
span.name(v-text='styleName' style='margin-right: 100px')
|
|
el-checkbox(v-model='emojiAnimType' style='margin-left: 10px; margin-right: 10px')
|
|
span {{ $t('dialog.gallery_icons.emoji_animation_type') }}
|
|
template(v-if='emojiAnimType')
|
|
span(style='margin-right: 10px') {{ $t('dialog.gallery_icons.emoji_animation_fps') }}
|
|
el-input-number(
|
|
size='small'
|
|
v-model='emojiAnimFps'
|
|
:min='1'
|
|
:max='64'
|
|
style='margin-right: 10px; width: 112px')
|
|
span(style='margin-right: 10px') {{ $t('dialog.gallery_icons.emoji_animation_frame_count') }}
|
|
el-input-number(
|
|
size='small'
|
|
v-model='emojiAnimFrameCount'
|
|
:min='2'
|
|
:max='64'
|
|
style='margin-right: 10px; width: 112px')
|
|
el-checkbox(v-model='emojiAnimLoopPingPong' style='margin-left: 10px; margin-right: 10px')
|
|
span {{ $t('dialog.gallery_icons.emoji_loop_pingpong') }}
|
|
br
|
|
br
|
|
span {{ $t('dialog.gallery_icons.flipbook_info') }}
|
|
br
|
|
.x-friend-item(
|
|
v-if='image.versions && image.versions.length > 0'
|
|
v-for='image in emojiTable'
|
|
:key='image.id'
|
|
style='display: inline-block; margin-top: 10px; width: unset; cursor: default')
|
|
.vrcplus-icon(
|
|
v-if='image.versions[image.versions.length - 1].file.url'
|
|
style='overflow: hidden'
|
|
@click='showFullscreenImageDialog(image.versions[image.versions.length - 1].file.url, getEmojiFileName(image))')
|
|
template(v-if='image.frames')
|
|
.avatar(
|
|
:style='generateEmojiStyle(image.versions[image.versions.length - 1].file.url, image.framesOverTime, image.frames, image.loopStyle)')
|
|
template(v-else)
|
|
img.avatar(v-lazy='image.versions[image.versions.length - 1].file.url')
|
|
div(style='display: inline-block; margin: 5px')
|
|
span(v-if='image.loopStyle === "pingpong"') #[i.el-icon-refresh.el-icon--left]
|
|
span(style='margin-right: 5px') {{ image.animationStyle }}
|
|
span(v-if='image.framesOverTime' style='margin-right: 5px') {{ image.framesOverTime }}fps
|
|
span(v-if='image.frames' style='margin-right: 5px') {{ image.frames }}frames
|
|
br
|
|
div(style='float: right; margin-top: 5px')
|
|
el-button(
|
|
type='default'
|
|
@click='showFullscreenImageDialog(image.versions[image.versions.length - 1].file.url, getEmojiFileName(image))'
|
|
size='mini'
|
|
icon='el-icon-picture-outline'
|
|
circle)
|
|
el-button(
|
|
type='default'
|
|
@click='deleteEmoji(image.id)'
|
|
size='mini'
|
|
icon='el-icon-delete'
|
|
circle
|
|
style='margin-left: 5px')
|
|
el-tab-pane(v-if='galleryDialogVisible' v-loading='galleryDialogStickersLoading' lazy)
|
|
span(slot='label') {{ $t('dialog.gallery_icons.stickers') }}
|
|
span(style='color: #909399; font-size: 12px; margin-left: 5px') {{ stickerTable.length }}/9
|
|
input#StickerUploadButton(
|
|
type='file'
|
|
accept='image/*'
|
|
@change='onFileChangeSticker'
|
|
style='display: none')
|
|
span {{ $t('dialog.gallery_icons.recommended_image_size') }}: 1024x1024px (1:1)
|
|
br
|
|
br
|
|
el-button-group
|
|
el-button(type='default' size='small' @click='refreshStickerTable' icon='el-icon-refresh') {{ $t('dialog.gallery_icons.refresh') }}
|
|
el-button(
|
|
type='default'
|
|
size='small'
|
|
@click='displayStickerUpload'
|
|
icon='el-icon-upload2'
|
|
:disabled='!API.currentUser.$isVRCPlus') {{ $t('dialog.gallery_icons.upload') }}
|
|
br
|
|
.x-friend-item(
|
|
v-if='image.versions && image.versions.length > 0'
|
|
v-for='image in stickerTable'
|
|
:key='image.id'
|
|
style='display: inline-block; margin-top: 10px; width: unset; cursor: default')
|
|
.vrcplus-icon(
|
|
v-if='image.versions[image.versions.length - 1].file.url'
|
|
style='overflow: hidden'
|
|
@click='showFullscreenImageDialog(image.versions[image.versions.length - 1].file.url)')
|
|
img.avatar(v-lazy='image.versions[image.versions.length - 1].file.url')
|
|
div(style='float: right; margin-top: 5px')
|
|
el-button(
|
|
type='default'
|
|
@click='showFullscreenImageDialog(image.versions[image.versions.length - 1].file.url)'
|
|
size='mini'
|
|
icon='el-icon-picture-outline'
|
|
circle)
|
|
el-button(
|
|
type='default'
|
|
@click='deleteSticker(image.id)'
|
|
size='mini'
|
|
icon='el-icon-delete'
|
|
circle
|
|
style='margin-left: 5px')
|
|
el-tab-pane(v-if='galleryDialogVisible' v-loading='galleryDialogPrintsLoading' lazy)
|
|
span(slot='label') {{ $t('dialog.gallery_icons.prints') }}
|
|
span(style='color: #909399; font-size: 12px; margin-left: 5px') {{ printTable.length }}/64
|
|
input#PrintUploadButton(type='file' accept='image/*' @change='onFileChangePrint' style='display: none')
|
|
span {{ $t('dialog.gallery_icons.recommended_image_size') }}: 1920x1080px (16:9)
|
|
br
|
|
br
|
|
div(style='display: flex; align-items: center')
|
|
el-button-group
|
|
el-button(type='default' size='small' @click='refreshPrintTable' icon='el-icon-refresh') {{ $t('dialog.gallery_icons.refresh') }}
|
|
el-button(
|
|
type='default'
|
|
size='small'
|
|
@click='displayPrintUpload'
|
|
icon='el-icon-upload2'
|
|
:disabled='!API.currentUser.$isVRCPlus') {{ $t('dialog.gallery_icons.upload') }}
|
|
el-input(
|
|
type='textarea'
|
|
v-model='printUploadNote'
|
|
size='mini'
|
|
rows='1'
|
|
resize='none'
|
|
maxlength='32'
|
|
style='margin-left: 10px; width: 300px'
|
|
:placeholder='$t("dialog.gallery_icons.note")')
|
|
el-checkbox(v-model='printCropBorder' style='margin-left: 10px; margin-right: 10px')
|
|
span {{ $t('dialog.gallery_icons.crop_print_border') }}
|
|
br
|
|
.x-friend-item(
|
|
v-for='image in printTable'
|
|
:key='image.id'
|
|
style='display: inline-block; margin-top: 10px; width: unset; cursor: default')
|
|
.vrcplus-icon(
|
|
style='overflow: hidden'
|
|
@click='showFullscreenImageDialog(image.files.image, getPrintFileName(image))')
|
|
img.avatar(v-lazy='image.files.image')
|
|
div(style='margin-top: 5px; width: 208px')
|
|
span.x-ellipsis(v-if='image.note' v-text='image.note' style='display: block')
|
|
span(v-else style='display: block')
|
|
location.x-ellipsis(
|
|
v-if='image.worldId'
|
|
:location='image.worldId'
|
|
:hint='image.worldName'
|
|
style='display: block')
|
|
span(v-else style='display: block')
|
|
display-name.x-ellipsis(
|
|
v-if='image.authorId'
|
|
:userid='image.authorId'
|
|
:hint='image.authorName'
|
|
style='color: #909399; font-family: monospace; display: block')
|
|
span(v-else style='font-family: monospace; display: block')
|
|
span.x-ellipsis(
|
|
v-if='image.createdAt'
|
|
style='color: #909399; font-family: monospace; font-size: 11px; display: block') {{ image.createdAt | formatDate('long') }}
|
|
span(v-else style='display: block')
|
|
div(style='float: right')
|
|
el-button(
|
|
type='default'
|
|
@click='showFullscreenImageDialog(image.files.image, getPrintFileName(image))'
|
|
size='mini'
|
|
icon='el-icon-picture-outline'
|
|
circle)
|
|
el-button(
|
|
type='default'
|
|
@click='deletePrint(image.id)'
|
|
size='mini'
|
|
icon='el-icon-delete'
|
|
circle
|
|
style='margin-left: 5px')
|