mirror of
https://github.com/MrUnknownDE/VRCX.git
synced 2026-04-18 22:33:50 +02:00
37
src/app.js
37
src/app.js
@@ -3199,6 +3199,7 @@ console.log(`isLinux: ${LINUX}`);
|
||||
console.error(err);
|
||||
}
|
||||
this.expireFavorites();
|
||||
this.cachedFavoriteGroupsByTypeName.clear();
|
||||
this.bulk({
|
||||
fn: 'getFavorites',
|
||||
N: -1,
|
||||
@@ -7168,9 +7169,16 @@ console.log(`isLinux: ${LINUX}`);
|
||||
if (!objectId) {
|
||||
return;
|
||||
}
|
||||
this.favoriteDialog.visible = true;
|
||||
API.deleteFavorite({
|
||||
objectId
|
||||
});
|
||||
})
|
||||
.then(() => {
|
||||
this.favoriteDialog.visible = false;
|
||||
})
|
||||
.finally(() => {
|
||||
this.favoriteDialog.loading = false;
|
||||
});
|
||||
};
|
||||
|
||||
$app.methods.clearFavoriteGroup = function (ctx) {
|
||||
@@ -12627,11 +12635,15 @@ console.log(`isLinux: ${LINUX}`);
|
||||
favoriteId: D.objectId,
|
||||
tags: group.name
|
||||
})
|
||||
.then(() => {
|
||||
D.visible = false;
|
||||
new Noty({
|
||||
type: 'success',
|
||||
text: 'Favorite added'
|
||||
}).show();
|
||||
})
|
||||
.finally(() => {
|
||||
D.loading = false;
|
||||
})
|
||||
.then((args) => {
|
||||
return args;
|
||||
});
|
||||
};
|
||||
|
||||
@@ -19653,9 +19665,22 @@ console.log(`isLinux: ${LINUX}`);
|
||||
if (!date) {
|
||||
return '-';
|
||||
}
|
||||
var dt = new Date(date);
|
||||
const dt = new Date(date);
|
||||
if (format === 'long') {
|
||||
return dt.toISOString();
|
||||
const formatDate = (date) => {
|
||||
const padZero = (num) => String(num).padStart(2, '0');
|
||||
|
||||
const year = date.getFullYear();
|
||||
const month = padZero(date.getMonth() + 1);
|
||||
const day = padZero(date.getDate());
|
||||
const hours = padZero(date.getHours());
|
||||
const minutes = padZero(date.getMinutes());
|
||||
const seconds = padZero(date.getSeconds());
|
||||
|
||||
return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
|
||||
};
|
||||
|
||||
return formatDate(dt);
|
||||
} else if (format === 'short') {
|
||||
return dt
|
||||
.toLocaleDateString('en-nz', {
|
||||
|
||||
@@ -956,3 +956,12 @@ i.x-status-icon.red {
|
||||
padding: 2px 2px;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
// FIXME
|
||||
// Something changed the CSS of element-ui
|
||||
// The other parts are the same
|
||||
// It feels like can't fundamentally modify it
|
||||
// And can only fix it bit by bit by overriding
|
||||
.el-switch__core:after {
|
||||
top: 1.5px;
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,348 +1,744 @@
|
||||
|
||||
mixin groupDialog()
|
||||
el-dialog.x-dialog.x-group-dialog(:before-close="beforeDialogClose" @mousedown.native="dialogMouseDown" @mouseup.native="dialogMouseUp" ref="groupDialog" :visible.sync="groupDialog.visible" :show-close="false" width="770px")
|
||||
mixin groupDialog
|
||||
el-dialog.x-dialog.x-group-dialog(
|
||||
:before-close='beforeDialogClose'
|
||||
@mousedown.native='dialogMouseDown'
|
||||
@mouseup.native='dialogMouseUp'
|
||||
ref='groupDialog'
|
||||
:visible.sync='groupDialog.visible'
|
||||
:show-close='false'
|
||||
width='770px'
|
||||
top='10vh')
|
||||
.group-banner-image
|
||||
el-popover(placement="right" width="500px" trigger="click")
|
||||
img.x-link(slot="reference" v-lazy="groupDialog.ref.bannerUrl" style="flex:none;width:100%;aspect-ratio:6/1;object-fit:cover;border-radius:4px")
|
||||
img.x-link(v-lazy="groupDialog.ref.bannerUrl" style="width:854px;height:480px" @click="showFullscreenImageDialog(groupDialog.ref.bannerUrl)")
|
||||
.group-body(v-loading="groupDialog.loading")
|
||||
div(style="display:flex")
|
||||
el-popover(placement="right" width="500px" trigger="click")
|
||||
img.x-link(slot="reference" v-lazy="groupDialog.ref.iconUrl" style="flex:none;width:120px;height:120px;border-radius:12px")
|
||||
img.x-link(v-lazy="groupDialog.ref.iconUrl" style="width:500px;height:500px" @click="showFullscreenImageDialog(groupDialog.ref.iconUrl)")
|
||||
div(style="flex:1;display:flex;align-items:center;margin-left:15px")
|
||||
.group-header(style="flex:1")
|
||||
span(v-if="groupDialog.ref.ownerId === API.currentUser.id" style="margin-right:5px") 👑
|
||||
span.dialog-title(v-text="groupDialog.ref.name" style="margin-right:5px")
|
||||
span.group-discriminator.x-grey(style="font-family:monospace;font-size:12px;margin-right:5px") {{ groupDialog.ref.shortCode }}.{{ groupDialog.ref.discriminator }}
|
||||
el-tooltip(v-for="item in groupDialog.ref.$languages" :key="item.key" placement="top")
|
||||
el-popover(placement='right' width='500px' trigger='click')
|
||||
img.x-link(
|
||||
slot='reference'
|
||||
v-lazy='groupDialog.ref.bannerUrl'
|
||||
style='flex: none; width: 100%; aspect-ratio: 6/1; object-fit: cover; border-radius: 4px')
|
||||
img.x-link(
|
||||
v-lazy='groupDialog.ref.bannerUrl'
|
||||
style='width: 854px; height: 480px'
|
||||
@click='showFullscreenImageDialog(groupDialog.ref.bannerUrl)')
|
||||
.group-body(v-loading='groupDialog.loading')
|
||||
div(style='display: flex')
|
||||
el-popover(placement='right' width='500px' trigger='click')
|
||||
img.x-link(
|
||||
slot='reference'
|
||||
v-lazy='groupDialog.ref.iconUrl'
|
||||
style='flex: none; width: 120px; height: 120px; border-radius: 12px')
|
||||
img.x-link(
|
||||
v-lazy='groupDialog.ref.iconUrl'
|
||||
style='width: 500px; height: 500px'
|
||||
@click='showFullscreenImageDialog(groupDialog.ref.iconUrl)')
|
||||
div(style='flex: 1; display: flex; align-items: center; margin-left: 15px')
|
||||
.group-header(style='flex: 1')
|
||||
span(v-if='groupDialog.ref.ownerId === API.currentUser.id' style='margin-right: 5px') 👑
|
||||
span.dialog-title(v-text='groupDialog.ref.name' style='margin-right: 5px')
|
||||
span.group-discriminator.x-grey(style='font-family: monospace; font-size: 12px; margin-right: 5px') {{ groupDialog.ref.shortCode }}.{{ groupDialog.ref.discriminator }}
|
||||
el-tooltip(v-for='item in groupDialog.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")
|
||||
div(style="margin-top:5px")
|
||||
span.x-link.x-grey(v-text="groupDialog.ownerDisplayName" @click="showUserDialog(groupDialog.ref.ownerId)" style="font-family:monospace")
|
||||
span.flags(:class='languageClass(item.key)' style='display: inline-block; margin-right: 5px')
|
||||
div(style='margin-top: 5px')
|
||||
span.x-link.x-grey(
|
||||
v-text='groupDialog.ownerDisplayName'
|
||||
@click='showUserDialog(groupDialog.ref.ownerId)'
|
||||
style='font-family: monospace')
|
||||
.group-tags
|
||||
el-tag(v-if="groupDialog.ref.isVerified" type="info" effect="plain" size="mini" style="margin-right:5px;margin-top:5px") {{ $t('dialog.group.tags.verified') }}
|
||||
el-tag(
|
||||
v-if='groupDialog.ref.isVerified'
|
||||
type='info'
|
||||
effect='plain'
|
||||
size='mini'
|
||||
style='margin-right: 5px; margin-top: 5px') {{ $t('dialog.group.tags.verified') }}
|
||||
|
||||
el-tag(v-if="groupDialog.ref.privacy === 'private'" type="danger" effect="plain" size="mini" style="margin-right:5px;margin-top:5px") {{ $t('dialog.group.tags.private') }}
|
||||
el-tag(v-if="groupDialog.ref.privacy === 'default'" type="success" effect="plain" size="mini" style="margin-right:5px;margin-top:5px") {{ $t('dialog.group.tags.public') }}
|
||||
el-tag(
|
||||
v-if='groupDialog.ref.privacy === "private"'
|
||||
type='danger'
|
||||
effect='plain'
|
||||
size='mini'
|
||||
style='margin-right: 5px; margin-top: 5px') {{ $t('dialog.group.tags.private') }}
|
||||
el-tag(
|
||||
v-if='groupDialog.ref.privacy === "default"'
|
||||
type='success'
|
||||
effect='plain'
|
||||
size='mini'
|
||||
style='margin-right: 5px; margin-top: 5px') {{ $t('dialog.group.tags.public') }}
|
||||
|
||||
el-tag(v-if="groupDialog.ref.joinState === 'open'" type="success" effect="plain" size="mini" style="margin-right:5px;margin-top:5px") {{ $t('dialog.group.tags.open') }}
|
||||
el-tag(v-else-if="groupDialog.ref.joinState === 'request'" type="warning" effect="plain" size="mini" style="margin-right:5px;margin-top:5px") {{ $t('dialog.group.tags.request') }}
|
||||
el-tag(v-else-if="groupDialog.ref.joinState === 'invite'" type="danger" effect="plain" size="mini" style="margin-right:5px;margin-top:5px") {{ $t('dialog.group.tags.invite') }}
|
||||
el-tag(v-else-if="groupDialog.ref.joinState === 'closed'" type="danger" effect="plain" size="mini" style="margin-right:5px;margin-top:5px") {{ $t('dialog.group.tags.closed') }}
|
||||
el-tag(
|
||||
v-if='groupDialog.ref.joinState === "open"'
|
||||
type='success'
|
||||
effect='plain'
|
||||
size='mini'
|
||||
style='margin-right: 5px; margin-top: 5px') {{ $t('dialog.group.tags.open') }}
|
||||
el-tag(
|
||||
v-else-if='groupDialog.ref.joinState === "request"'
|
||||
type='warning'
|
||||
effect='plain'
|
||||
size='mini'
|
||||
style='margin-right: 5px; margin-top: 5px') {{ $t('dialog.group.tags.request') }}
|
||||
el-tag(
|
||||
v-else-if='groupDialog.ref.joinState === "invite"'
|
||||
type='danger'
|
||||
effect='plain'
|
||||
size='mini'
|
||||
style='margin-right: 5px; margin-top: 5px') {{ $t('dialog.group.tags.invite') }}
|
||||
el-tag(
|
||||
v-else-if='groupDialog.ref.joinState === "closed"'
|
||||
type='danger'
|
||||
effect='plain'
|
||||
size='mini'
|
||||
style='margin-right: 5px; margin-top: 5px') {{ $t('dialog.group.tags.closed') }}
|
||||
|
||||
el-tag(v-if="groupDialog.inGroup" type="info" effect="plain" size="mini" style="margin-right:5px;margin-top:5px") {{ $t('dialog.group.tags.joined') }}
|
||||
el-tag(v-if="groupDialog.ref.myMember && groupDialog.ref.myMember.bannedAt" type="danger" effect="plain" size="mini" style="margin-right:5px;margin-top:5px") {{ $t('dialog.group.tags.banned') }}
|
||||
el-tag(
|
||||
v-if='groupDialog.inGroup'
|
||||
type='info'
|
||||
effect='plain'
|
||||
size='mini'
|
||||
style='margin-right: 5px; margin-top: 5px') {{ $t('dialog.group.tags.joined') }}
|
||||
el-tag(
|
||||
v-if='groupDialog.ref.myMember && groupDialog.ref.myMember.bannedAt'
|
||||
type='danger'
|
||||
effect='plain'
|
||||
size='mini'
|
||||
style='margin-right: 5px; margin-top: 5px') {{ $t('dialog.group.tags.banned') }}
|
||||
|
||||
template(v-if="groupDialog.inGroup && groupDialog.ref.myMember")
|
||||
el-tag(v-if="groupDialog.ref.myMember.visibility === 'visible'" type="info" effect="plain" size="mini" style="margin-right:5px;margin-top:5px") {{ $t('dialog.group.tags.visible') }}
|
||||
el-tag(v-else-if="groupDialog.ref.myMember.visibility === 'friends'" type="info" effect="plain" size="mini" style="margin-right:5px;margin-top:5px") {{ $t('dialog.group.tags.friends') }}
|
||||
el-tag(v-else-if="groupDialog.ref.myMember.visibility === 'hidden'" type="info" effect="plain" size="mini" style="margin-right:5px;margin-top:5px") {{ $t('dialog.group.tags.hidden') }}
|
||||
el-tag(v-if="groupDialog.ref.myMember.isSubscribedToAnnouncements" type="info" effect="plain" size="mini" style="margin-right:5px;margin-top:5px") {{ $t('dialog.group.tags.subscribed') }}
|
||||
template(v-if='groupDialog.inGroup && groupDialog.ref.myMember')
|
||||
el-tag(
|
||||
v-if='groupDialog.ref.myMember.visibility === "visible"'
|
||||
type='info'
|
||||
effect='plain'
|
||||
size='mini'
|
||||
style='margin-right: 5px; margin-top: 5px') {{ $t('dialog.group.tags.visible') }}
|
||||
el-tag(
|
||||
v-else-if='groupDialog.ref.myMember.visibility === "friends"'
|
||||
type='info'
|
||||
effect='plain'
|
||||
size='mini'
|
||||
style='margin-right: 5px; margin-top: 5px') {{ $t('dialog.group.tags.friends') }}
|
||||
el-tag(
|
||||
v-else-if='groupDialog.ref.myMember.visibility === "hidden"'
|
||||
type='info'
|
||||
effect='plain'
|
||||
size='mini'
|
||||
style='margin-right: 5px; margin-top: 5px') {{ $t('dialog.group.tags.hidden') }}
|
||||
el-tag(
|
||||
v-if='groupDialog.ref.myMember.isSubscribedToAnnouncements'
|
||||
type='info'
|
||||
effect='plain'
|
||||
size='mini'
|
||||
style='margin-right: 5px; margin-top: 5px') {{ $t('dialog.group.tags.subscribed') }}
|
||||
|
||||
.group-description(style="margin-top:5px")
|
||||
span(v-show="groupDialog.ref.name !== groupDialog.ref.description" v-text="groupDialog.ref.description" style="font-size:12px")
|
||||
div(style="flex:none;margin-left:10px")
|
||||
template(v-if="groupDialog.inGroup && groupDialog.ref?.myMember")
|
||||
el-tooltip(v-if="groupDialog.ref.myMember?.isRepresenting" placement="top" :content="$t('dialog.group.actions.unrepresent_tooltip')" :disabled="hideTooltips")
|
||||
el-button(type="warning" icon="el-icon-star-on" circle @click="clearGroupRepresentation(groupDialog.id)" style="margin-left:5px")
|
||||
el-tooltip(v-else placement="top" :content="$t('dialog.group.actions.represent_tooltip')" :disabled="hideTooltips")
|
||||
.group-description(style='margin-top: 5px')
|
||||
span(
|
||||
v-show='groupDialog.ref.name !== groupDialog.ref.description'
|
||||
v-text='groupDialog.ref.description'
|
||||
style='font-size: 12px')
|
||||
div(style='flex: none; margin-left: 10px')
|
||||
template(v-if='groupDialog.inGroup && groupDialog.ref?.myMember')
|
||||
el-tooltip(
|
||||
v-if='groupDialog.ref.myMember?.isRepresenting'
|
||||
placement='top'
|
||||
:content='$t("dialog.group.actions.unrepresent_tooltip")'
|
||||
:disabled='hideTooltips')
|
||||
el-button(
|
||||
type='warning'
|
||||
icon='el-icon-star-on'
|
||||
circle
|
||||
@click='clearGroupRepresentation(groupDialog.id)'
|
||||
style='margin-left: 5px')
|
||||
el-tooltip(
|
||||
v-else
|
||||
placement='top'
|
||||
:content='$t("dialog.group.actions.represent_tooltip")'
|
||||
:disabled='hideTooltips')
|
||||
span
|
||||
el-button(type="default" icon="el-icon-star-off" circle @click="setGroupRepresentation(groupDialog.id)" style="margin-left:5px" :disabled="groupDialog.ref.privacy === 'private'")
|
||||
template(v-else-if="groupDialog.ref.myMember?.membershipStatus === 'requested'")
|
||||
el-tooltip(placement="top" :content="$t('dialog.group.actions.cancel_join_request_tooltip')" :disabled="hideTooltips")
|
||||
el-button(
|
||||
type='default'
|
||||
icon='el-icon-star-off'
|
||||
circle
|
||||
@click='setGroupRepresentation(groupDialog.id)'
|
||||
style='margin-left: 5px'
|
||||
:disabled='groupDialog.ref.privacy === "private"')
|
||||
template(v-else-if='groupDialog.ref.myMember?.membershipStatus === "requested"')
|
||||
el-tooltip(
|
||||
placement='top'
|
||||
:content='$t("dialog.group.actions.cancel_join_request_tooltip")'
|
||||
:disabled='hideTooltips')
|
||||
span
|
||||
el-button(type="default" icon="el-icon-close" circle @click="cancelGroupRequest(groupDialog.id)" style="margin-left:5px")
|
||||
template(v-else-if="groupDialog.ref.myMember?.membershipStatus === 'invited'")
|
||||
el-tooltip(placement="top" :content="$t('dialog.group.actions.pending_request_tooltip')" :disabled="hideTooltips")
|
||||
el-button(
|
||||
type='default'
|
||||
icon='el-icon-close'
|
||||
circle
|
||||
@click='cancelGroupRequest(groupDialog.id)'
|
||||
style='margin-left: 5px')
|
||||
template(v-else-if='groupDialog.ref.myMember?.membershipStatus === "invited"')
|
||||
el-tooltip(
|
||||
placement='top'
|
||||
:content='$t("dialog.group.actions.pending_request_tooltip")'
|
||||
:disabled='hideTooltips')
|
||||
span
|
||||
el-button(type="default" icon="el-icon-check" circle @click="joinGroup(groupDialog.id)" style="margin-left:5px")
|
||||
el-button(
|
||||
type='default'
|
||||
icon='el-icon-check'
|
||||
circle
|
||||
@click='joinGroup(groupDialog.id)'
|
||||
style='margin-left: 5px')
|
||||
template(v-else)
|
||||
el-tooltip(v-if="groupDialog.ref.joinState === 'request'" placement="top" :content="$t('dialog.group.actions.request_join_tooltip')" :disabled="hideTooltips")
|
||||
el-button(type="default" icon="el-icon-message" circle @click="joinGroup(groupDialog.id)" style="margin-left:5px")
|
||||
el-tooltip(v-if="groupDialog.ref.joinState === 'invite'" placement="top" :content="$t('dialog.group.actions.invite_required_tooltip')" :disabled="hideTooltips")
|
||||
el-tooltip(
|
||||
v-if='groupDialog.ref.joinState === "request"'
|
||||
placement='top'
|
||||
:content='$t("dialog.group.actions.request_join_tooltip")'
|
||||
:disabled='hideTooltips')
|
||||
el-button(
|
||||
type='default'
|
||||
icon='el-icon-message'
|
||||
circle
|
||||
@click='joinGroup(groupDialog.id)'
|
||||
style='margin-left: 5px')
|
||||
el-tooltip(
|
||||
v-if='groupDialog.ref.joinState === "invite"'
|
||||
placement='top'
|
||||
:content='$t("dialog.group.actions.invite_required_tooltip")'
|
||||
:disabled='hideTooltips')
|
||||
span
|
||||
el-button(type="default" icon="el-icon-message" disabled circle style="margin-left:5px")
|
||||
el-tooltip(v-if="groupDialog.ref.joinState === 'open'" placement="top" :content="$t('dialog.group.actions.join_group_tooltip')" :disabled="hideTooltips")
|
||||
el-button(type="default" icon="el-icon-check" circle @click="joinGroup(groupDialog.id)" style="margin-left:5px")
|
||||
el-dropdown(trigger="click" @command="groupDialogCommand" size="small" style="margin-left:5px")
|
||||
el-button(:type="groupDialog.ref.membershipStatus === 'userblocked' ? 'danger' : 'default'" icon="el-icon-more" circle)
|
||||
el-dropdown-menu(#default="dropdown")
|
||||
el-dropdown-item(icon="el-icon-refresh" command="Refresh") {{ $t('dialog.group.actions.refresh') }}
|
||||
el-dropdown-item(icon="el-icon-share" command="Share") {{ $t('dialog.group.actions.share') }}
|
||||
template(v-if="groupDialog.inGroup")
|
||||
template(v-if="groupDialog.ref.myMember")
|
||||
el-dropdown-item(v-if="groupDialog.ref.myMember.isSubscribedToAnnouncements" icon="el-icon-close" command="Unsubscribe To Announcements" divided) {{ $t('dialog.group.actions.unsubscribe') }}
|
||||
el-dropdown-item(v-else icon="el-icon-check" command="Subscribe To Announcements" divided) {{ $t('dialog.group.actions.subscribe') }}
|
||||
el-dropdown-item(v-if="hasGroupPermission(groupDialog.ref, 'group-invites-manage')" icon="el-icon-message" command="Invite To Group") {{ $t('dialog.group.actions.invite_to_group') }}
|
||||
template(v-if="hasGroupPermission(groupDialog.ref, 'group-announcement-manage')")
|
||||
el-dropdown-item(icon="el-icon-tickets" command="Create Post") {{ $t('dialog.group.actions.create_post') }}
|
||||
el-button(
|
||||
type='default'
|
||||
icon='el-icon-message'
|
||||
disabled
|
||||
circle
|
||||
style='margin-left: 5px')
|
||||
el-tooltip(
|
||||
v-if='groupDialog.ref.joinState === "open"'
|
||||
placement='top'
|
||||
:content='$t("dialog.group.actions.join_group_tooltip")'
|
||||
:disabled='hideTooltips')
|
||||
el-button(
|
||||
type='default'
|
||||
icon='el-icon-check'
|
||||
circle
|
||||
@click='joinGroup(groupDialog.id)'
|
||||
style='margin-left: 5px')
|
||||
el-dropdown(trigger='click' @command='groupDialogCommand' size='small' style='margin-left: 5px')
|
||||
el-button(
|
||||
:type='groupDialog.ref.membershipStatus === "userblocked" ? "danger" : "default"'
|
||||
icon='el-icon-more'
|
||||
circle)
|
||||
el-dropdown-menu(#default='dropdown')
|
||||
el-dropdown-item(icon='el-icon-refresh' command='Refresh') {{ $t('dialog.group.actions.refresh') }}
|
||||
el-dropdown-item(icon='el-icon-share' command='Share') {{ $t('dialog.group.actions.share') }}
|
||||
template(v-if='groupDialog.inGroup')
|
||||
template(v-if='groupDialog.ref.myMember')
|
||||
el-dropdown-item(
|
||||
v-if='groupDialog.ref.myMember.isSubscribedToAnnouncements'
|
||||
icon='el-icon-close'
|
||||
command='Unsubscribe To Announcements'
|
||||
divided) {{ $t('dialog.group.actions.unsubscribe') }}
|
||||
el-dropdown-item(
|
||||
v-else
|
||||
icon='el-icon-check'
|
||||
command='Subscribe To Announcements'
|
||||
divided) {{ $t('dialog.group.actions.subscribe') }}
|
||||
el-dropdown-item(
|
||||
v-if='hasGroupPermission(groupDialog.ref, "group-invites-manage")'
|
||||
icon='el-icon-message'
|
||||
command='Invite To Group') {{ $t('dialog.group.actions.invite_to_group') }}
|
||||
template(v-if='hasGroupPermission(groupDialog.ref, "group-announcement-manage")')
|
||||
el-dropdown-item(icon='el-icon-tickets' command='Create Post') {{ $t('dialog.group.actions.create_post') }}
|
||||
//- template(v-if="hasGroupPermission(groupDialog.ref, 'group-members-manage')")
|
||||
el-dropdown-item(icon="el-icon-s-operation" command="Moderation Tools") {{ $t('dialog.group.actions.moderation_tools') }}
|
||||
template(v-if="groupDialog.ref.myMember && groupDialog.ref.privacy === 'default'")
|
||||
el-dropdown-item(icon="el-icon-view" command="Visibility Everyone" divided) #[i.el-icon-check(v-if="groupDialog.ref.myMember.visibility === 'visible'")] {{ $t('dialog.group.actions.visibility_everyone') }}
|
||||
el-dropdown-item(icon="el-icon-view" command="Visibility Friends") #[i.el-icon-check(v-if="groupDialog.ref.myMember.visibility === 'friends'")] {{ $t('dialog.group.actions.visibility_friends') }}
|
||||
el-dropdown-item(icon="el-icon-view" command="Visibility Hidden") #[i.el-icon-check(v-if="groupDialog.ref.myMember.visibility === 'hidden'")] {{ $t('dialog.group.actions.visibility_hidden') }}
|
||||
el-dropdown-item(icon="el-icon-delete" command="Leave Group" style="color:#F56C6C" divided) {{ $t('dialog.group.actions.leave') }}
|
||||
el-dropdown-item(icon='el-icon-s-operation' command='Moderation Tools') {{ $t('dialog.group.actions.moderation_tools') }}
|
||||
template(v-if='groupDialog.ref.myMember && groupDialog.ref.privacy === "default"')
|
||||
el-dropdown-item(icon='el-icon-view' command='Visibility Everyone' divided) #[i.el-icon-check(v-if='groupDialog.ref.myMember.visibility === "visible"')] {{ $t('dialog.group.actions.visibility_everyone') }}
|
||||
el-dropdown-item(icon='el-icon-view' command='Visibility Friends') #[i.el-icon-check(v-if='groupDialog.ref.myMember.visibility === "friends"')] {{ $t('dialog.group.actions.visibility_friends') }}
|
||||
el-dropdown-item(icon='el-icon-view' command='Visibility Hidden') #[i.el-icon-check(v-if='groupDialog.ref.myMember.visibility === "hidden"')] {{ $t('dialog.group.actions.visibility_hidden') }}
|
||||
el-dropdown-item(
|
||||
icon='el-icon-delete'
|
||||
command='Leave Group'
|
||||
style='color: #f56c6c'
|
||||
divided) {{ $t('dialog.group.actions.leave') }}
|
||||
template(v-else)
|
||||
el-dropdown-item(v-if="groupDialog.ref.membershipStatus === 'userblocked'" icon="el-icon-circle-check" command="Unblock Group" style="color:#F56C6C" divided) {{ $t('dialog.group.actions.unblock') }}
|
||||
el-dropdown-item(v-else icon="el-icon-circle-close" command="Block Group" divided) {{ $t('dialog.group.actions.block') }}
|
||||
el-tabs(ref="groupDialogTabs" @tab-click="groupDialogTabClick")
|
||||
el-tab-pane(:label="$t('dialog.group.info.header')")
|
||||
el-dropdown-item(
|
||||
v-if='groupDialog.ref.membershipStatus === "userblocked"'
|
||||
icon='el-icon-circle-check'
|
||||
command='Unblock Group'
|
||||
style='color: #f56c6c'
|
||||
divided) {{ $t('dialog.group.actions.unblock') }}
|
||||
el-dropdown-item(v-else icon='el-icon-circle-close' command='Block Group' divided) {{ $t('dialog.group.actions.block') }}
|
||||
el-tabs(ref='groupDialogTabs' @tab-click='groupDialogTabClick')
|
||||
el-tab-pane(:label='$t("dialog.group.info.header")')
|
||||
.group-banner-image-info
|
||||
el-popover(placement="right" width="500px" trigger="click")
|
||||
img.x-link(slot="reference" v-lazy="groupDialog.ref.bannerUrl" style="flex:none;width:100%;aspect-ratio:6/1;object-fit:cover;border-radius:4px")
|
||||
img.x-link(v-lazy="groupDialog.ref.bannerUrl" style="width:854px;height:480px" @click="showFullscreenImageDialog(groupDialog.ref.bannerUrl)")
|
||||
.x-friend-list(style="max-height:none")
|
||||
span(v-if="groupDialog.instances.length" style="font-size:12px;font-weight:bold;margin:5px") {{ $t('dialog.group.info.instances') }}
|
||||
div(v-for="room in groupDialog.instances" :key="room.tag" style="width:100%")
|
||||
div(style="margin:5px 0")
|
||||
location(:location="room.tag")
|
||||
el-tooltip(placement="top" content="Invite yourself" :disabled="hideTooltips")
|
||||
invite-yourself(:location="room.tag" style="margin-left:5px")
|
||||
el-tooltip(placement="top" content="Refresh player count" :disabled="hideTooltips")
|
||||
el-button(@click="refreshInstancePlayerCount(room.tag)" size="mini" icon="el-icon-refresh" style="margin-left:5px" circle)
|
||||
last-join(:location="room.tag" :currentlocation="lastLocation.location")
|
||||
instance-info(:location="room.tag" :instance="room.ref" :friendcount="room.friendCount" :updateelement="updateInstanceInfo")
|
||||
.x-friend-list(style="margin:10px 0;padding:0;max-height:unset" v-if="room.users.length")
|
||||
.x-friend-item(v-for="user in room.users" :key="user.id" @click="showUserDialog(user.id)" class="x-friend-item-border")
|
||||
.avatar(:class="userStatusClass(user)")
|
||||
img(v-lazy="userImage(user)")
|
||||
el-popover(placement='right' width='500px' trigger='click')
|
||||
img.x-link(
|
||||
slot='reference'
|
||||
v-lazy='groupDialog.ref.bannerUrl'
|
||||
style='flex: none; width: 100%; aspect-ratio: 6/1; object-fit: cover; border-radius: 4px')
|
||||
img.x-link(
|
||||
v-lazy='groupDialog.ref.bannerUrl'
|
||||
style='width: 854px; height: 480px'
|
||||
@click='showFullscreenImageDialog(groupDialog.ref.bannerUrl)')
|
||||
.x-friend-list(style='max-height: none')
|
||||
span(v-if='groupDialog.instances.length' style='font-size: 12px; font-weight: bold; margin: 5px') {{ $t('dialog.group.info.instances') }}
|
||||
div(v-for='room in groupDialog.instances' :key='room.tag' style='width: 100%')
|
||||
div(style='margin: 5px 0')
|
||||
location(:location='room.tag')
|
||||
el-tooltip(placement='top' content='Invite yourself' :disabled='hideTooltips')
|
||||
invite-yourself(:location='room.tag' style='margin-left: 5px')
|
||||
el-tooltip(placement='top' content='Refresh player count' :disabled='hideTooltips')
|
||||
el-button(
|
||||
@click='refreshInstancePlayerCount(room.tag)'
|
||||
size='mini'
|
||||
icon='el-icon-refresh'
|
||||
style='margin-left: 5px'
|
||||
circle)
|
||||
last-join(:location='room.tag' :currentlocation='lastLocation.location')
|
||||
instance-info(
|
||||
:location='room.tag'
|
||||
:instance='room.ref'
|
||||
:friendcount='room.friendCount'
|
||||
:updateelement='updateInstanceInfo')
|
||||
.x-friend-list(style='margin: 10px 0; padding: 0; max-height: unset' v-if='room.users.length')
|
||||
.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.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")
|
||||
.x-friend-item(style="width:100%;cursor:default")
|
||||
timer(:epoch='user.$location_at')
|
||||
.x-friend-item(style='width: 100%; cursor: default')
|
||||
.detail
|
||||
span.name {{ $t('dialog.group.info.announcement') }}
|
||||
span(style="display:block" v-text="groupDialog.announcement.title")
|
||||
div(v-if="groupDialog.announcement.imageUrl" style="display:inline-block;margin-right:5px")
|
||||
el-popover(placement="right" width="500px" trigger="click")
|
||||
img.x-link(slot="reference" v-lazy="groupDialog.announcement.imageUrl" style="flex:none;width:60px;height:60px;border-radius:4px;object-fit:cover")
|
||||
img.x-link(v-lazy="groupDialog.announcement.imageUrl" style="height:500px" @click="showFullscreenImageDialog(groupDialog.announcement.imageUrl)")
|
||||
pre.extra(style="display:inline-block;vertical-align:top;font-family:inherit;font-size:12px;white-space:pre-wrap;margin:0") {{ groupDialog.announcement.text || '-' }}
|
||||
span(style='display: block' v-text='groupDialog.announcement.title')
|
||||
div(
|
||||
v-if='groupDialog.announcement.imageUrl'
|
||||
style='display: inline-block; margin-right: 5px')
|
||||
el-popover(placement='right' width='500px' trigger='click')
|
||||
img.x-link(
|
||||
slot='reference'
|
||||
v-lazy='groupDialog.announcement.imageUrl'
|
||||
style='flex: none; width: 60px; height: 60px; border-radius: 4px; object-fit: cover')
|
||||
img.x-link(
|
||||
v-lazy='groupDialog.announcement.imageUrl'
|
||||
style='height: 500px'
|
||||
@click='showFullscreenImageDialog(groupDialog.announcement.imageUrl)')
|
||||
pre.extra(
|
||||
style='display: inline-block; vertical-align: top; font-family: inherit; font-size: 12px; white-space: pre-wrap; margin: 0') {{ groupDialog.announcement.text || '-' }}
|
||||
br
|
||||
.extra(v-if="groupDialog.announcement.id" style="float:right;margin-left:5px")
|
||||
el-tooltip(v-if="groupDialog.announcement.roleIds.length" placement="top")
|
||||
.extra(v-if='groupDialog.announcement.id' style='float: right; margin-left: 5px')
|
||||
el-tooltip(v-if='groupDialog.announcement.roleIds.length' placement='top')
|
||||
template(#content)
|
||||
span {{ $t('dialog.group.posts.visibility') }}
|
||||
br
|
||||
template(v-for="roleId in groupDialog.announcement.roleIds" :key="roleId")
|
||||
span(v-for="(role, rIndex) in groupDialog.ref.roles" :key="rIndex" v-if="role.id === roleId" v-text="role.name")
|
||||
span(v-if="groupDialog.announcement.roleIds.indexOf(roleId) < groupDialog.announcement.roleIds.length - 1") ,
|
||||
i.el-icon-view(style="margin-right:5px")
|
||||
display-name(:userid="groupDialog.announcement.authorId" style="margin-right:5px")
|
||||
span(v-if="groupDialog.announcement.editorId" style="margin-right:5px") ({{ $t('dialog.group.posts.edited_by') }} #[display-name(:userid="groupDialog.announcement.editorId")])
|
||||
el-tooltip(placement="bottom")
|
||||
template(v-for='roleId in groupDialog.announcement.roleIds' :key='roleId')
|
||||
span(
|
||||
v-for='(role, rIndex) in groupDialog.ref.roles'
|
||||
:key='rIndex'
|
||||
v-if='role.id === roleId'
|
||||
v-text='role.name')
|
||||
span(
|
||||
v-if='groupDialog.announcement.roleIds.indexOf(roleId) < groupDialog.announcement.roleIds.length - 1') ,
|
||||
i.el-icon-view(style='margin-right: 5px')
|
||||
display-name(:userid='groupDialog.announcement.authorId' style='margin-right: 5px')
|
||||
span(v-if='groupDialog.announcement.editorId' style='margin-right: 5px') ({{ $t('dialog.group.posts.edited_by') }} #[display-name(:userid='groupDialog.announcement.editorId')])
|
||||
el-tooltip(placement='bottom')
|
||||
template(#content)
|
||||
span {{ $t('dialog.group.posts.created_at') }} {{ groupDialog.announcement.createdAt | formatDate('long') }}
|
||||
template(v-if="groupDialog.announcement.updatedAt !== groupDialog.announcement.createdAt")
|
||||
template(
|
||||
v-if='groupDialog.announcement.updatedAt !== groupDialog.announcement.createdAt')
|
||||
br
|
||||
span {{ $t('dialog.group.posts.edited_at') }} {{ groupDialog.announcement.updatedAt | formatDate('long') }}
|
||||
timer(:epoch="Date.parse(groupDialog.announcement.updatedAt)")
|
||||
template(v-if="hasGroupPermission(groupDialog.ref, 'group-announcement-manage')")
|
||||
el-tooltip(placement="top" :content="$t('dialog.group.posts.edit_tooltip')" :disabled="hideTooltips")
|
||||
el-button(type="text" icon="el-icon-edit" size="mini" style="margin-left:5px" @click="showGroupPostEditDialog(groupDialog.id, groupDialog.announcement)")
|
||||
el-tooltip(placement="top" :content="$t('dialog.group.posts.delete_tooltip')" :disabled="hideTooltips")
|
||||
el-button(type="text" icon="el-icon-delete" size="mini" style="margin-left:5px" @click="confirmDeleteGroupPost(groupDialog.announcement)")
|
||||
.x-friend-item(style="width:100%;cursor:default")
|
||||
timer(:epoch='Date.parse(groupDialog.announcement.updatedAt)')
|
||||
template(v-if='hasGroupPermission(groupDialog.ref, "group-announcement-manage")')
|
||||
el-tooltip(
|
||||
placement='top'
|
||||
:content='$t("dialog.group.posts.edit_tooltip")'
|
||||
:disabled='hideTooltips')
|
||||
el-button(
|
||||
type='text'
|
||||
icon='el-icon-edit'
|
||||
size='mini'
|
||||
style='margin-left: 5px'
|
||||
@click='showGroupPostEditDialog(groupDialog.id, groupDialog.announcement)')
|
||||
el-tooltip(
|
||||
placement='top'
|
||||
:content='$t("dialog.group.posts.delete_tooltip")'
|
||||
:disabled='hideTooltips')
|
||||
el-button(
|
||||
type='text'
|
||||
icon='el-icon-delete'
|
||||
size='mini'
|
||||
style='margin-left: 5px'
|
||||
@click='confirmDeleteGroupPost(groupDialog.announcement)')
|
||||
.x-friend-item(style='width: 100%; cursor: default')
|
||||
.detail
|
||||
span.name {{ $t('dialog.group.info.rules') }}
|
||||
pre.extra(style="font-family:inherit;font-size:12px;white-space:pre-wrap;margin:0 0.5em 0 0") {{ groupDialog.ref.rules || '-' }}
|
||||
.x-friend-item(style="cursor:default")
|
||||
pre.extra(
|
||||
style='font-family: inherit; font-size: 12px; white-space: pre-wrap; margin: 0 0.5em 0 0') {{ groupDialog.ref.rules || '-' }}
|
||||
.x-friend-item(style='cursor: default')
|
||||
.detail
|
||||
span.name {{ $t('dialog.group.info.members') }}
|
||||
.extra {{ groupDialog.ref.memberCount }} ({{ groupDialog.ref.onlineMemberCount }})
|
||||
.x-friend-item(style="cursor:default")
|
||||
.x-friend-item(style='cursor: default')
|
||||
.detail
|
||||
span.name {{ $t('dialog.group.info.created_at') }}
|
||||
span.extra {{ groupDialog.ref.createdAt | formatDate('long') }}
|
||||
.x-friend-item(style="cursor:default")
|
||||
.x-friend-item(style='cursor: default')
|
||||
.detail
|
||||
span.name {{ $t('dialog.group.info.links') }}
|
||||
div(v-if="groupDialog.ref.links && groupDialog.ref.links.length > 0" style="margin-top:5px")
|
||||
el-tooltip(v-if="link" v-for="(link, index) in groupDialog.ref.links" :key="index")
|
||||
div(
|
||||
v-if='groupDialog.ref.links && groupDialog.ref.links.length > 0'
|
||||
style='margin-top: 5px')
|
||||
el-tooltip(v-if='link' v-for='(link, index) in groupDialog.ref.links' :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)')
|
||||
.extra(v-else) -
|
||||
.x-friend-item(style="width:350px;cursor:default")
|
||||
.x-friend-item(style='width: 350px; cursor: default')
|
||||
.detail
|
||||
span.name {{ $t('dialog.group.info.url') }}
|
||||
span.extra {{ groupDialog.ref.$url }}
|
||||
el-tooltip(placement="top" :content="$t('dialog.group.info.url_tooltip')" :disabled="hideTooltips")
|
||||
el-button(type="default" @click="copyGroupUrl(groupDialog.ref.$url)" size="mini" icon="el-icon-s-order" circle style="margin-left:5px")
|
||||
.x-friend-item(style="width:350px;cursor:default")
|
||||
el-tooltip(
|
||||
placement='top'
|
||||
:content='$t("dialog.group.info.url_tooltip")'
|
||||
:disabled='hideTooltips')
|
||||
el-button(
|
||||
type='default'
|
||||
@click='copyGroupUrl(groupDialog.ref.$url)'
|
||||
size='mini'
|
||||
icon='el-icon-s-order'
|
||||
circle
|
||||
style='margin-left: 5px')
|
||||
.x-friend-item(style='width: 350px; cursor: default')
|
||||
.detail
|
||||
span.name {{ $t('dialog.group.info.id') }}
|
||||
span.extra {{ groupDialog.id }}
|
||||
el-tooltip(placement="top" :content="$t('dialog.group.info.id_tooltip')" :disabled="hideTooltips")
|
||||
el-button(type="default" @click="copyGroupId(groupDialog.id)" size="mini" icon="el-icon-s-order" circle style="margin-left:5px")
|
||||
div(v-if="groupDialog.ref.membershipStatus === 'member'" style="width:100%;margin-top:10px;border-top:1px solid #e4e7ed14")
|
||||
div(style="width:100%;display:flex;margin-top:10px")
|
||||
.x-friend-item(style="cursor:default")
|
||||
el-tooltip(
|
||||
placement='top'
|
||||
:content='$t("dialog.group.info.id_tooltip")'
|
||||
:disabled='hideTooltips')
|
||||
el-button(
|
||||
type='default'
|
||||
@click='copyGroupId(groupDialog.id)'
|
||||
size='mini'
|
||||
icon='el-icon-s-order'
|
||||
circle
|
||||
style='margin-left: 5px')
|
||||
div(
|
||||
v-if='groupDialog.ref.membershipStatus === "member"'
|
||||
style='width: 100%; margin-top: 10px; border-top: 1px solid #e4e7ed14')
|
||||
div(style='width: 100%; display: flex; margin-top: 10px')
|
||||
.x-friend-item(style='cursor: default')
|
||||
.detail
|
||||
span.name {{ $t('dialog.group.info.joined_at') }}
|
||||
span.extra {{ groupDialog.ref.myMember.joinedAt | formatDate('long') }}
|
||||
.x-friend-item(style="cursor:default")
|
||||
.x-friend-item(style='cursor: default')
|
||||
.detail
|
||||
span.name {{ $t('dialog.group.info.roles') }}
|
||||
span.extra(v-if="groupDialog.memberRoles.length === 0") -
|
||||
span.extra(v-if='groupDialog.memberRoles.length === 0') -
|
||||
span.extra(v-else)
|
||||
template(v-for="(role, rIndex) in groupDialog.memberRoles" :key="rIndex")
|
||||
el-tooltip(placement="top")
|
||||
template(v-for='(role, rIndex) in groupDialog.memberRoles' :key='rIndex')
|
||||
el-tooltip(placement='top')
|
||||
template(#content)
|
||||
span {{ $t('dialog.group.info.role') }} {{ role.name }}
|
||||
br
|
||||
span {{ $t('dialog.group.info.role_description') }} {{ role.description }}
|
||||
br
|
||||
span(v-if="role.updatedAt") {{ $t('dialog.group.info.role_updated_at') }} {{ role.updatedAt | formatDate('long') }}
|
||||
span(v-if='role.updatedAt') {{ $t('dialog.group.info.role_updated_at') }} {{ role.updatedAt | formatDate('long') }}
|
||||
span(v-else) {{ $t('dialog.group.info.role_created_at') }} {{ role.createdAt | formatDate('long') }}
|
||||
br
|
||||
span {{ $t('dialog.group.info.role_permissions') }}
|
||||
br
|
||||
template(v-for="(permission, pIndex) in role.permissions" :key="pIndex")
|
||||
template(
|
||||
v-for='(permission, pIndex) in role.permissions'
|
||||
:key='pIndex')
|
||||
span {{ permission }}
|
||||
br
|
||||
span {{ role.name }}{{ rIndex < groupDialog.memberRoles.length - 1 ? ', ' : '' }}
|
||||
el-tab-pane(:label="$t('dialog.group.posts.header')")
|
||||
template(v-if="groupDialog.visible")
|
||||
span(style="margin-right:10px") {{ $t('dialog.group.posts.posts_count') }} {{ groupDialog.posts.length }}
|
||||
el-input(v-model="groupDialog.postsSearch" @input="updateGroupPostSearch" clearable size="mini" :placeholder="$t('dialog.group.posts.search_placeholder')" style="width:89%;margin-bottom:10px")
|
||||
el-tab-pane(:label='$t("dialog.group.posts.header")')
|
||||
template(v-if='groupDialog.visible')
|
||||
span(style='margin-right: 10px') {{ $t('dialog.group.posts.posts_count') }} {{ groupDialog.posts.length }}
|
||||
el-input(
|
||||
v-model='groupDialog.postsSearch'
|
||||
@input='updateGroupPostSearch'
|
||||
clearable
|
||||
size='mini'
|
||||
:placeholder='$t("dialog.group.posts.search_placeholder")'
|
||||
style='width: 89%; margin-bottom: 10px')
|
||||
.x-friend-list
|
||||
.x-friend-item(v-for="post in groupDialog.postsFiltered" :key="post.id" style="width:100%;cursor:default")
|
||||
.x-friend-item(
|
||||
v-for='post in groupDialog.postsFiltered'
|
||||
:key='post.id'
|
||||
style='width: 100%; cursor: default')
|
||||
.detail
|
||||
span(style="display:block" v-text="post.title")
|
||||
div(v-if="post.imageUrl" style="display:inline-block;margin-right:5px")
|
||||
el-popover(placement="right" width="500px" trigger="click")
|
||||
img.x-link(slot="reference" v-lazy="post.imageUrl" style="flex:none;width:60px;height:60px;border-radius:4px;object-fit:cover")
|
||||
img.x-link(v-lazy="post.imageUrl" style="height:500px" @click="showFullscreenImageDialog(post.imageUrl)")
|
||||
pre.extra(style="display:inline-block;vertical-align:top;font-family:inherit;font-size:12px;white-space:pre-wrap;margin:0") {{ post.text || '-' }}
|
||||
span(style='display: block' v-text='post.title')
|
||||
div(v-if='post.imageUrl' style='display: inline-block; margin-right: 5px')
|
||||
el-popover(placement='right' width='500px' trigger='click')
|
||||
img.x-link(
|
||||
slot='reference'
|
||||
v-lazy='post.imageUrl'
|
||||
style='flex: none; width: 60px; height: 60px; border-radius: 4px; object-fit: cover')
|
||||
img.x-link(
|
||||
v-lazy='post.imageUrl'
|
||||
style='height: 500px'
|
||||
@click='showFullscreenImageDialog(post.imageUrl)')
|
||||
pre.extra(
|
||||
style='display: inline-block; vertical-align: top; font-family: inherit; font-size: 12px; white-space: pre-wrap; margin: 0') {{ post.text || '-' }}
|
||||
br
|
||||
.extra(v-if="post.authorId" style="float:right;margin-left:5px")
|
||||
el-tooltip(v-if="post.roleIds.length" placement="top")
|
||||
.extra(v-if='post.authorId' style='float: right; margin-left: 5px')
|
||||
el-tooltip(v-if='post.roleIds.length' placement='top')
|
||||
template(#content)
|
||||
span {{ $t('dialog.group.posts.visibility') }}
|
||||
br
|
||||
template(v-for="roleId in post.roleIds" :key="roleId")
|
||||
span(v-for="(role, rIndex) in groupDialog.ref.roles" :key="rIndex" v-if="role.id === roleId" v-text="role.name")
|
||||
span(v-if="post.roleIds.indexOf(roleId) < post.roleIds.length - 1") ,
|
||||
i.el-icon-view(style="margin-right:5px")
|
||||
display-name(:userid="post.authorId" style="margin-right:5px")
|
||||
span(v-if="post.editorId" style="margin-right:5px") ({{ $t('dialog.group.posts.edited_by') }} #[display-name(:userid="post.editorId")])
|
||||
el-tooltip(placement="bottom")
|
||||
template(v-for='roleId in post.roleIds' :key='roleId')
|
||||
span(
|
||||
v-for='(role, rIndex) in groupDialog.ref.roles'
|
||||
:key='rIndex'
|
||||
v-if='role.id === roleId'
|
||||
v-text='role.name')
|
||||
span(v-if='post.roleIds.indexOf(roleId) < post.roleIds.length - 1') ,
|
||||
i.el-icon-view(style='margin-right: 5px')
|
||||
display-name(:userid='post.authorId' style='margin-right: 5px')
|
||||
span(v-if='post.editorId' style='margin-right: 5px') ({{ $t('dialog.group.posts.edited_by') }} #[display-name(:userid='post.editorId')])
|
||||
el-tooltip(placement='bottom')
|
||||
template(#content)
|
||||
span {{ $t('dialog.group.posts.created_at') }} {{ post.createdAt | formatDate('long') }}
|
||||
template(v-if="post.updatedAt !== post.createdAt")
|
||||
template(v-if='post.updatedAt !== post.createdAt')
|
||||
br
|
||||
span {{ $t('dialog.group.posts.edited_at') }} {{ post.updatedAt | formatDate('long') }}
|
||||
timer(:epoch="Date.parse(post.updatedAt)")
|
||||
template(v-if="hasGroupPermission(groupDialog.ref, 'group-announcement-manage')")
|
||||
el-tooltip(placement="top" :content="$t('dialog.group.posts.edit_tooltip')" :disabled="hideTooltips")
|
||||
el-button(type="text" icon="el-icon-edit" size="mini" style="margin-left:5px" @click="showGroupPostEditDialog(groupDialog.id, post)")
|
||||
el-tooltip(placement="top" :content="$t('dialog.group.posts.delete_tooltip')" :disabled="hideTooltips")
|
||||
el-button(type="text" icon="el-icon-delete" size="mini" style="margin-left:5px" @click="confirmDeleteGroupPost(post)")
|
||||
el-tab-pane(:label="$t('dialog.group.members.header')")
|
||||
template(v-if="groupDialog.visible")
|
||||
span(v-if="hasGroupPermission(groupDialog.ref, 'group-members-viewall')" style="font-weight:bold;font-size:16px") {{ $t('dialog.group.members.all_members') }}
|
||||
span(v-else style="font-weight:bold;font-size:16px") {{ $t('dialog.group.members.friends_only') }}
|
||||
div(style="margin-top:10px")
|
||||
el-button(type="default" @click="loadAllGroupMembers" size="mini" icon="el-icon-refresh" :loading="isGroupMembersLoading" circle)
|
||||
el-button(type="default" @click="downloadAndSaveJson(`${groupDialog.id}_members`, groupDialog.members)" size="mini" icon="el-icon-download" circle style="margin-left:5px")
|
||||
span(v-if="groupDialog.memberSearch.length" style="font-size:14px;margin-left:5px;margin-right:5px") {{ groupDialog.memberSearchResults.length }}/{{ groupDialog.ref.memberCount }}
|
||||
span(v-else style="font-size:14px;margin-left:5px;margin-right:5px") {{ groupDialog.members.length }}/{{ groupDialog.ref.memberCount }}
|
||||
div(v-if="hasGroupPermission(groupDialog.ref, 'group-members-manage')" style="float:right")
|
||||
span(style="margin-right:5px") {{ $t('dialog.group.members.sort_by') }}
|
||||
el-dropdown(@click.native.stop trigger="click" size="small" style="margin-right:5px" :disabled="isGroupMembersLoading || groupDialog.memberSearch.length")
|
||||
el-button(size="mini")
|
||||
timer(:epoch='Date.parse(post.updatedAt)')
|
||||
template(
|
||||
v-if='hasGroupPermission(groupDialog.ref, "group-announcement-manage")')
|
||||
el-tooltip(
|
||||
placement='top'
|
||||
:content='$t("dialog.group.posts.edit_tooltip")'
|
||||
:disabled='hideTooltips')
|
||||
el-button(
|
||||
type='text'
|
||||
icon='el-icon-edit'
|
||||
size='mini'
|
||||
style='margin-left: 5px'
|
||||
@click='showGroupPostEditDialog(groupDialog.id, post)')
|
||||
el-tooltip(
|
||||
placement='top'
|
||||
:content='$t("dialog.group.posts.delete_tooltip")'
|
||||
:disabled='hideTooltips')
|
||||
el-button(
|
||||
type='text'
|
||||
icon='el-icon-delete'
|
||||
size='mini'
|
||||
style='margin-left: 5px'
|
||||
@click='confirmDeleteGroupPost(post)')
|
||||
el-tab-pane(:label='$t("dialog.group.members.header")')
|
||||
template(v-if='groupDialog.visible')
|
||||
span(
|
||||
v-if='hasGroupPermission(groupDialog.ref, "group-members-viewall")'
|
||||
style='font-weight: bold; font-size: 16px') {{ $t('dialog.group.members.all_members') }}
|
||||
span(v-else style='font-weight: bold; font-size: 16px') {{ $t('dialog.group.members.friends_only') }}
|
||||
div(style='margin-top: 10px')
|
||||
el-button(
|
||||
type='default'
|
||||
@click='loadAllGroupMembers'
|
||||
size='mini'
|
||||
icon='el-icon-refresh'
|
||||
:loading='isGroupMembersLoading'
|
||||
circle)
|
||||
el-button(
|
||||
type='default'
|
||||
@click='downloadAndSaveJson(`${groupDialog.id}_members`, groupDialog.members)'
|
||||
size='mini'
|
||||
icon='el-icon-download'
|
||||
circle
|
||||
style='margin-left: 5px')
|
||||
span(
|
||||
v-if='groupDialog.memberSearch.length'
|
||||
style='font-size: 14px; margin-left: 5px; margin-right: 5px') {{ groupDialog.memberSearchResults.length }}/{{ groupDialog.ref.memberCount }}
|
||||
span(v-else style='font-size: 14px; margin-left: 5px; margin-right: 5px') {{ groupDialog.members.length }}/{{ groupDialog.ref.memberCount }}
|
||||
div(v-if='hasGroupPermission(groupDialog.ref, "group-members-manage")' style='float: right')
|
||||
span(style='margin-right: 5px') {{ $t('dialog.group.members.sort_by') }}
|
||||
el-dropdown(
|
||||
@click.native.stop
|
||||
trigger='click'
|
||||
size='small'
|
||||
style='margin-right: 5px'
|
||||
:disabled='isGroupMembersLoading || groupDialog.memberSearch.length')
|
||||
el-button(size='mini')
|
||||
span {{ groupDialog.memberSortOrder.name }} #[i.el-icon-arrow-down.el-icon--right]
|
||||
el-dropdown-menu(#default="dropdown")
|
||||
el-dropdown-item(v-for="(item) in groupDialogSortingOptions" v-text="item.name" @click.native="setGroupMemberSortOrder(item)")
|
||||
span(style="margin-right:5px") {{ $t('dialog.group.members.filter') }}
|
||||
el-dropdown(@click.native.stop trigger="click" size="small" style="margin-right:5px" :disabled="isGroupMembersLoading || groupDialog.memberSearch.length")
|
||||
el-button(size="mini")
|
||||
el-dropdown-menu(#default='dropdown')
|
||||
el-dropdown-item(
|
||||
v-for='item in groupDialogSortingOptions'
|
||||
v-text='item.name'
|
||||
@click.native='setGroupMemberSortOrder(item)')
|
||||
span(style='margin-right: 5px') {{ $t('dialog.group.members.filter') }}
|
||||
el-dropdown(
|
||||
@click.native.stop
|
||||
trigger='click'
|
||||
size='small'
|
||||
style='margin-right: 5px'
|
||||
:disabled='isGroupMembersLoading || groupDialog.memberSearch.length')
|
||||
el-button(size='mini')
|
||||
span {{ groupDialog.memberFilter.name }} #[i.el-icon-arrow-down.el-icon--right]
|
||||
el-dropdown-menu(#default="dropdown")
|
||||
el-dropdown-item(v-for="(item) in groupDialogFilterOptions" v-text="item.name" @click.native="setGroupMemberFilter(item)")
|
||||
el-dropdown-item(v-for="(item) in groupDialog.ref.roles" v-if="!item.defaultRole" v-text="item.name" @click.native="setGroupMemberFilter(item)")
|
||||
el-input(v-model="groupDialog.memberSearch" @input="groupMembersSearch" clearable size="mini" :placeholder="$t('dialog.group.members.search')" style="margin-top:10px;margin-bottom:10px")
|
||||
.x-friend-list(v-if="groupDialog.memberSearch.length" v-loading="isGroupMembersLoading" style="margin-top:10px;overflow:auto;max-height:250px;min-width:130px")
|
||||
.x-friend-item(v-for="user in groupDialog.memberSearchResults" :key="user.id" @click="showUserDialog(user.userId)" class="x-friend-item-border")
|
||||
el-dropdown-menu(#default='dropdown')
|
||||
el-dropdown-item(
|
||||
v-for='item in groupDialogFilterOptions'
|
||||
v-text='item.name'
|
||||
@click.native='setGroupMemberFilter(item)')
|
||||
el-dropdown-item(
|
||||
v-for='item in groupDialog.ref.roles'
|
||||
v-if='!item.defaultRole'
|
||||
v-text='item.name'
|
||||
@click.native='setGroupMemberFilter(item)')
|
||||
el-input(
|
||||
v-model='groupDialog.memberSearch'
|
||||
@input='groupMembersSearch'
|
||||
clearable
|
||||
size='mini'
|
||||
:placeholder='$t("dialog.group.members.search")'
|
||||
style='margin-top: 10px; margin-bottom: 10px')
|
||||
.x-friend-list(
|
||||
v-if='groupDialog.memberSearch.length'
|
||||
v-loading='isGroupMembersLoading'
|
||||
style='margin-top: 10px; overflow: auto; max-height: 250px; min-width: 130px')
|
||||
.x-friend-item.x-friend-item-border(
|
||||
v-for='user in groupDialog.memberSearchResults'
|
||||
:key='user.id'
|
||||
@click='showUserDialog(user.userId)')
|
||||
.avatar
|
||||
img(v-lazy="userImage(user.user)")
|
||||
img(v-lazy='userImage(user.user)')
|
||||
.detail
|
||||
span.name(v-text="user.user.displayName" :style="{'color':user.user.$userColour}")
|
||||
span.name(v-text='user.user.displayName' :style='{ color: user.user.$userColour }')
|
||||
span.extra
|
||||
template(v-if="hasGroupPermission(groupDialog.ref, 'group-members-manage')")
|
||||
el-tooltip(v-if="user.isRepresenting" placement="top" :content="$t('dialog.group.members.representing')")
|
||||
i.el-icon-collection-tag(style="margin-right:5px")
|
||||
el-tooltip(v-if="user.visibility !== 'visible'" placement="top")
|
||||
template(v-if='hasGroupPermission(groupDialog.ref, "group-members-manage")')
|
||||
el-tooltip(
|
||||
v-if='user.isRepresenting'
|
||||
placement='top'
|
||||
:content='$t("dialog.group.members.representing")')
|
||||
i.el-icon-collection-tag(style='margin-right: 5px')
|
||||
el-tooltip(v-if='user.visibility !== "visible"' placement='top')
|
||||
template(#content)
|
||||
span {{ $t('dialog.group.members.visibility') }} {{ user.visibility }}
|
||||
i.el-icon-view(style="margin-right:5px")
|
||||
el-tooltip(v-if="!user.isSubscribedToAnnouncements" placement="top" :content="$t('dialog.group.members.unsubscribed_announcements')")
|
||||
i.el-icon-chat-line-square(style="margin-right:5px")
|
||||
el-tooltip(v-if="user.managerNotes" placement="top")
|
||||
i.el-icon-view(style='margin-right: 5px')
|
||||
el-tooltip(
|
||||
v-if='!user.isSubscribedToAnnouncements'
|
||||
placement='top'
|
||||
:content='$t("dialog.group.members.unsubscribed_announcements")')
|
||||
i.el-icon-chat-line-square(style='margin-right: 5px')
|
||||
el-tooltip(v-if='user.managerNotes' placement='top')
|
||||
template(#content)
|
||||
span {{ $t('dialog.group.members.manager_notes') }}
|
||||
br
|
||||
span {{ user.managerNotes }}
|
||||
i.el-icon-edit-outline(style="margin-right:5px")
|
||||
template(v-for="roleId in user.roleIds" :key="roleId")
|
||||
span(v-for="(role, rIndex) in groupDialog.ref.roles" :key="rIndex" v-if="role.id === roleId" v-text="role.name")
|
||||
span(v-if="user.roleIds.indexOf(roleId) < user.roleIds.length - 1") ,
|
||||
ul.infinite-list.x-friend-list(v-else-if="groupDialog.members.length > 0" v-infinite-scroll="loadMoreGroupMembers" style="margin-top:10px;overflow:auto;max-height:250px;min-width:130px")
|
||||
li.infinite-list-item.x-friend-item(v-for="user in groupDialog.members" :key="user.id" @click="showUserDialog(user.userId)" class="x-friend-item-border")
|
||||
i.el-icon-edit-outline(style='margin-right: 5px')
|
||||
template(v-for='roleId in user.roleIds' :key='roleId')
|
||||
span(
|
||||
v-for='(role, rIndex) in groupDialog.ref.roles'
|
||||
:key='rIndex'
|
||||
v-if='role.id === roleId'
|
||||
v-text='role.name')
|
||||
span(v-if='user.roleIds.indexOf(roleId) < user.roleIds.length - 1') ,
|
||||
ul.infinite-list.x-friend-list(
|
||||
v-else-if='groupDialog.members.length > 0'
|
||||
v-infinite-scroll='loadMoreGroupMembers'
|
||||
style='margin-top: 10px; overflow: auto; max-height: 250px; min-width: 130px')
|
||||
li.infinite-list-item.x-friend-item.x-friend-item-border(
|
||||
v-for='user in groupDialog.members'
|
||||
:key='user.id'
|
||||
@click='showUserDialog(user.userId)')
|
||||
.avatar
|
||||
img(v-lazy="userImage(user.user)")
|
||||
img(v-lazy='userImage(user.user)')
|
||||
.detail
|
||||
span.name(v-text="user.user.displayName" :style="{'color':user.user.$userColour}")
|
||||
span.name(v-text='user.user.displayName' :style='{ color: user.user.$userColour }')
|
||||
span.extra
|
||||
template(v-if="hasGroupPermission(groupDialog.ref, 'group-members-manage')")
|
||||
el-tooltip(v-if="user.isRepresenting" placement="top" :content="$t('dialog.group.members.representing')")
|
||||
i.el-icon-collection-tag(style="margin-right:5px")
|
||||
el-tooltip(v-if="user.visibility !== 'visible'" placement="top")
|
||||
template(v-if='hasGroupPermission(groupDialog.ref, "group-members-manage")')
|
||||
el-tooltip(
|
||||
v-if='user.isRepresenting'
|
||||
placement='top'
|
||||
:content='$t("dialog.group.members.representing")')
|
||||
i.el-icon-collection-tag(style='margin-right: 5px')
|
||||
el-tooltip(v-if='user.visibility !== "visible"' placement='top')
|
||||
template(#content)
|
||||
span {{ $t('dialog.group.members.visibility') }} {{ user.visibility }}
|
||||
i.el-icon-view(style="margin-right:5px")
|
||||
el-tooltip(v-if="!user.isSubscribedToAnnouncements" placement="top" :content="$t('dialog.group.members.unsubscribed_announcements')")
|
||||
i.el-icon-chat-line-square(style="margin-right:5px")
|
||||
el-tooltip(v-if="user.managerNotes" placement="top")
|
||||
i.el-icon-view(style='margin-right: 5px')
|
||||
el-tooltip(
|
||||
v-if='!user.isSubscribedToAnnouncements'
|
||||
placement='top'
|
||||
:content='$t("dialog.group.members.unsubscribed_announcements")')
|
||||
i.el-icon-chat-line-square(style='margin-right: 5px')
|
||||
el-tooltip(v-if='user.managerNotes' placement='top')
|
||||
template(#content)
|
||||
span {{ $t('dialog.group.members.manager_notes') }}
|
||||
br
|
||||
span {{ user.managerNotes }}
|
||||
i.el-icon-edit-outline(style="margin-right:5px")
|
||||
template(v-for="roleId in user.roleIds" :key="roleId")
|
||||
span(v-for="(role, rIndex) in groupDialog.ref.roles" :key="rIndex" v-if="role.id === roleId" v-text="role.name")
|
||||
span(v-if="user.roleIds.indexOf(roleId) < user.roleIds.length - 1") ,
|
||||
.x-friend-item(v-if="!isGroupMembersDone" v-loading="isGroupMembersLoading" style="width:100%;height:45px;text-align:center" @click="loadMoreGroupMembers")
|
||||
.detail(v-if="!isGroupMembersLoading")
|
||||
i.el-icon-edit-outline(style='margin-right: 5px')
|
||||
template(v-for='roleId in user.roleIds' :key='roleId')
|
||||
span(
|
||||
v-for='(role, rIndex) in groupDialog.ref.roles'
|
||||
:key='rIndex'
|
||||
v-if='role.id === roleId'
|
||||
v-text='role.name')
|
||||
span(v-if='user.roleIds.indexOf(roleId) < user.roleIds.length - 1') ,
|
||||
.x-friend-item(
|
||||
v-if='!isGroupMembersDone'
|
||||
v-loading='isGroupMembersLoading'
|
||||
style='width: 100%; height: 45px; text-align: center'
|
||||
@click='loadMoreGroupMembers')
|
||||
.detail(v-if='!isGroupMembersLoading')
|
||||
span.name {{ $t('dialog.group.members.load_more') }}
|
||||
el-tab-pane(:label="$t('dialog.group.gallery.header')")
|
||||
el-button(type="default" size="mini" icon="el-icon-refresh" @click="getGroupGalleries" :loading="isGroupGalleryLoading" circle)
|
||||
el-tabs(type="card" v-loading="isGroupGalleryLoading" ref="groupDialogGallery" style="margin-top:10px")
|
||||
template(v-for="(gallery, index) in groupDialog.ref.galleries")
|
||||
el-tab-pane(:label='$t("dialog.group.gallery.header")')
|
||||
el-button(
|
||||
type='default'
|
||||
size='mini'
|
||||
icon='el-icon-refresh'
|
||||
@click='getGroupGalleries'
|
||||
:loading='isGroupGalleryLoading'
|
||||
circle)
|
||||
el-tabs(
|
||||
type='card'
|
||||
v-loading='isGroupGalleryLoading'
|
||||
ref='groupDialogGallery'
|
||||
style='margin-top: 10px')
|
||||
template(v-for='(gallery, index) in groupDialog.ref.galleries')
|
||||
el-tab-pane
|
||||
span(slot="label")
|
||||
span(v-text="gallery.name" style="font-weight:bold;font-size:16px")
|
||||
i.x-status-icon(style="margin-left:5px" :class="groupGalleryStatus(gallery)")
|
||||
span(style="color:#909399;font-size:12px;margin-left:5px") {{ groupDialog.galleries[gallery.id] ? groupDialog.galleries[gallery.id].length : 0 }}
|
||||
span(v-text="gallery.description" style="color:#c7c7c7;padding:10px")
|
||||
el-carousel(:interval="0" height="600px" style="margin-top:10px")
|
||||
el-carousel-item(v-for="image in groupDialog.galleries[gallery.id]" :key="image.id")
|
||||
el-popover(placement="top" width="700px" trigger="click")
|
||||
img.x-link(slot="reference" v-lazy="image.imageUrl" style="width:100%;height:100%;object-fit:contain")
|
||||
img.x-link(v-lazy="image.imageUrl" style="height:700px" @click="showFullscreenImageDialog(image.imageUrl)")
|
||||
el-tab-pane(:label="$t('dialog.group.json.header')")
|
||||
el-button(type="default" @click="refreshGroupDialogTreeData()" size="mini" icon="el-icon-refresh" circle)
|
||||
el-button(type="default" @click="downloadAndSaveJson(groupDialog.id, groupDialog.ref)" size="mini" icon="el-icon-download" circle style="margin-left:5px")
|
||||
el-tree(:data="groupDialog.treeData" style="margin-top:5px;font-size:12px")
|
||||
template(#default="scope")
|
||||
span(slot='label')
|
||||
span(v-text='gallery.name' style='font-weight: bold; font-size: 16px')
|
||||
i.x-status-icon(style='margin-left: 5px' :class='groupGalleryStatus(gallery)')
|
||||
span(style='color: #909399; font-size: 12px; margin-left: 5px') {{ groupDialog.galleries[gallery.id] ? groupDialog.galleries[gallery.id].length : 0 }}
|
||||
span(v-text='gallery.description' style='color: #c7c7c7; padding: 10px')
|
||||
el-carousel(:interval='0' height='600px' style='margin-top: 10px')
|
||||
el-carousel-item(
|
||||
v-for='image in groupDialog.galleries[gallery.id]'
|
||||
:key='image.id')
|
||||
el-popover(placement='top' width='700px' trigger='click')
|
||||
img.x-link(
|
||||
slot='reference'
|
||||
v-lazy='image.imageUrl'
|
||||
style='width: 100%; height: 100%; object-fit: contain')
|
||||
img.x-link(
|
||||
v-lazy='image.imageUrl'
|
||||
style='height: 700px'
|
||||
@click='showFullscreenImageDialog(image.imageUrl)')
|
||||
el-tab-pane(:label='$t("dialog.group.json.header")')
|
||||
el-button(
|
||||
type='default'
|
||||
@click='refreshGroupDialogTreeData()'
|
||||
size='mini'
|
||||
icon='el-icon-refresh'
|
||||
circle)
|
||||
el-button(
|
||||
type='default'
|
||||
@click='downloadAndSaveJson(groupDialog.id, groupDialog.ref)'
|
||||
size='mini'
|
||||
icon='el-icon-download'
|
||||
circle
|
||||
style='margin-left: 5px')
|
||||
el-tree(:data='groupDialog.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")
|
||||
span(v-text='scope.data.key' style='font-weight: bold; margin-right: 5px')
|
||||
span(v-if='!scope.data.children' v-text='scope.data.value')
|
||||
|
||||
@@ -1,75 +1,165 @@
|
||||
mixin previousInstances()
|
||||
mixin previousInstances
|
||||
//- dialog Table: Previous Instances User
|
||||
el-dialog.x-dialog(:before-close="beforeDialogClose" @mousedown.native="dialogMouseDown" @mouseup.native="dialogMouseUp" ref="previousInstancesUserDialog" :visible.sync="previousInstancesUserDialog.visible" :title="$t('dialog.previous_instances.header')" width="1000px")
|
||||
span(v-text="previousInstancesUserDialog.userRef.displayName" style="font-size:14px")
|
||||
el-input(v-model="previousInstancesUserDialogTable.filters[0].value" :placeholder="$t('dialog.previous_instances.search_placeholder')" style="display:block;width:150px;margin-top:15px")
|
||||
data-tables(v-if="previousInstancesUserDialog.visible" v-bind="previousInstancesUserDialogTable" v-loading="previousInstancesUserDialog.loading" style="margin-top:10px")
|
||||
el-table-column(:label="$t('table.previous_instances.date')" prop="created_at" sortable width="170")
|
||||
template(#default="scope")
|
||||
el-dialog.x-dialog(
|
||||
:before-close='beforeDialogClose'
|
||||
@mousedown.native='dialogMouseDown'
|
||||
@mouseup.native='dialogMouseUp'
|
||||
ref='previousInstancesUserDialog'
|
||||
:visible.sync='previousInstancesUserDialog.visible'
|
||||
:title='$t("dialog.previous_instances.header")'
|
||||
width='1000px')
|
||||
span(v-text='previousInstancesUserDialog.userRef.displayName' style='font-size: 14px')
|
||||
el-input(
|
||||
v-model='previousInstancesUserDialogTable.filters[0].value'
|
||||
:placeholder='$t("dialog.previous_instances.search_placeholder")'
|
||||
style='display: block; width: 150px; margin-top: 15px')
|
||||
data-tables(
|
||||
v-if='previousInstancesUserDialog.visible'
|
||||
v-bind='previousInstancesUserDialogTable'
|
||||
v-loading='previousInstancesUserDialog.loading'
|
||||
style='margin-top: 10px')
|
||||
el-table-column(:label='$t("table.previous_instances.date")' prop='created_at' sortable width='170')
|
||||
template(#default='scope')
|
||||
span {{ scope.row.created_at | formatDate('long') }}
|
||||
el-table-column(:label="$t('table.previous_instances.world')" prop="name" sortable)
|
||||
template(#default="scope")
|
||||
location(:location="scope.row.location" :hint="scope.row.worldName" :grouphint="scope.row.groupName")
|
||||
el-table-column(:label="$t('table.previous_instances.instance_creator')" prop="location" width="170")
|
||||
template(#default="scope")
|
||||
display-name(:userid="scope.row.$location.userId" :location="scope.row.$location.tag" :key="previousInstancesUserDialog.forceUpdate")
|
||||
el-table-column(:label="$t('table.previous_instances.time')" prop="time" width="100" sortable)
|
||||
template(#default="scope")
|
||||
span(v-text="scope.row.timer")
|
||||
el-table-column(:label="$t('table.previous_instances.action')" width="90" align="right")
|
||||
template(#default="scope")
|
||||
el-button(type="text" icon="el-icon-info" size="mini" @click="showLaunchDialog(scope.row.location)")
|
||||
el-button(type="text" icon="el-icon-tickets" size="mini" @click="showPreviousInstanceInfoDialog(scope.row.location)")
|
||||
el-button(v-if="shiftHeld" style="color:#f56c6c" type="text" icon="el-icon-close" size="mini" @click="deleteGameLogUserInstance(scope.row)")
|
||||
el-button(v-else type="text" icon="el-icon-close" size="mini" @click="deleteGameLogUserInstancePrompt(scope.row)")
|
||||
el-table-column(:label='$t("table.previous_instances.world")' prop='name' sortable)
|
||||
template(#default='scope')
|
||||
location(
|
||||
:location='scope.row.location'
|
||||
:hint='scope.row.worldName'
|
||||
:grouphint='scope.row.groupName')
|
||||
el-table-column(:label='$t("table.previous_instances.instance_creator")' prop='location' width='170')
|
||||
template(#default='scope')
|
||||
display-name(
|
||||
:userid='scope.row.$location.userId'
|
||||
:location='scope.row.$location.tag'
|
||||
:key='previousInstancesUserDialog.forceUpdate')
|
||||
el-table-column(:label='$t("table.previous_instances.time")' prop='time' width='100' sortable)
|
||||
template(#default='scope')
|
||||
span(v-text='scope.row.timer')
|
||||
el-table-column(:label='$t("table.previous_instances.action")' width='90' align='right')
|
||||
template(#default='scope')
|
||||
el-button(
|
||||
type='text'
|
||||
icon='el-icon-info'
|
||||
size='mini'
|
||||
@click='showLaunchDialog(scope.row.location)')
|
||||
el-button(
|
||||
type='text'
|
||||
icon='el-icon-tickets'
|
||||
size='mini'
|
||||
@click='showPreviousInstanceInfoDialog(scope.row.location)')
|
||||
el-button(
|
||||
v-if='shiftHeld'
|
||||
style='color: #f56c6c'
|
||||
type='text'
|
||||
icon='el-icon-close'
|
||||
size='mini'
|
||||
@click='deleteGameLogUserInstance(scope.row)')
|
||||
el-button(
|
||||
v-else
|
||||
type='text'
|
||||
icon='el-icon-close'
|
||||
size='mini'
|
||||
@click='deleteGameLogUserInstancePrompt(scope.row)')
|
||||
|
||||
//- dialog Table: Previous Instances World
|
||||
el-dialog.x-dialog(:before-close="beforeDialogClose" @mousedown.native="dialogMouseDown" @mouseup.native="dialogMouseUp" ref="previousInstancesWorldDialog" :visible.sync="previousInstancesWorldDialog.visible" :title="$t('dialog.previous_instances.header')" width="1000px")
|
||||
span(v-text="previousInstancesWorldDialog.worldRef.name" style="font-size:14px")
|
||||
el-input(v-model="previousInstancesWorldDialogTable.filters[0].value" :placeholder="$t('dialog.previous_instances.search_placeholder')" style="display:block;width:150px;margin-top:15px")
|
||||
data-tables(v-if="previousInstancesWorldDialog.visible" v-bind="previousInstancesWorldDialogTable" v-loading="previousInstancesWorldDialog.loading" style="margin-top:10px")
|
||||
el-table-column(:label="$t('table.previous_instances.date')" prop="created_at" sortable width="170")
|
||||
template(#default="scope")
|
||||
el-dialog.x-dialog(
|
||||
:before-close='beforeDialogClose'
|
||||
@mousedown.native='dialogMouseDown'
|
||||
@mouseup.native='dialogMouseUp'
|
||||
ref='previousInstancesWorldDialog'
|
||||
:visible.sync='previousInstancesWorldDialog.visible'
|
||||
:title='$t("dialog.previous_instances.header")'
|
||||
width='1000px')
|
||||
span(v-text='previousInstancesWorldDialog.worldRef.name' style='font-size: 14px')
|
||||
el-input(
|
||||
v-model='previousInstancesWorldDialogTable.filters[0].value'
|
||||
:placeholder='$t("dialog.previous_instances.search_placeholder")'
|
||||
style='display: block; width: 150px; margin-top: 15px')
|
||||
data-tables(
|
||||
v-if='previousInstancesWorldDialog.visible'
|
||||
v-bind='previousInstancesWorldDialogTable'
|
||||
v-loading='previousInstancesWorldDialog.loading'
|
||||
style='margin-top: 10px')
|
||||
el-table-column(:label='$t("table.previous_instances.date")' prop='created_at' sortable width='170')
|
||||
template(#default='scope')
|
||||
span {{ scope.row.created_at | formatDate('long') }}
|
||||
el-table-column(:label="$t('table.previous_instances.instance_name')" prop="name")
|
||||
template(#default="scope")
|
||||
location-world(:locationobject="scope.row.$location" :grouphint="scope.row.groupName" :currentuserid="API.currentUser.id")
|
||||
el-table-column(:label="$t('table.previous_instances.instance_creator')" prop="location")
|
||||
template(#default="scope")
|
||||
display-name(:userid="scope.row.$location.userId" :location="scope.row.$location.tag" :key="previousInstancesWorldDialog.forceUpdate")
|
||||
el-table-column(:label="$t('table.previous_instances.time')" prop="time" width="100" sortable)
|
||||
template(#default="scope")
|
||||
span(v-text="scope.row.timer")
|
||||
el-table-column(:label="$t('table.previous_instances.action')" width="90" align="right")
|
||||
template(#default="scope")
|
||||
el-button(type="text" icon="el-icon-tickets" size="mini" @click="showPreviousInstanceInfoDialog(scope.row.location)")
|
||||
el-button(v-if="shiftHeld" style="color:#f56c6c" type="text" icon="el-icon-close" size="mini" @click="deleteGameLogWorldInstance(scope.row)")
|
||||
el-button(v-else type="text" icon="el-icon-close" size="mini" @click="deleteGameLogWorldInstancePrompt(scope.row)")
|
||||
el-table-column(:label='$t("table.previous_instances.instance_name")' prop='name')
|
||||
template(#default='scope')
|
||||
location-world(
|
||||
:locationobject='scope.row.$location'
|
||||
:grouphint='scope.row.groupName'
|
||||
:currentuserid='API.currentUser.id')
|
||||
el-table-column(:label='$t("table.previous_instances.instance_creator")' prop='location')
|
||||
template(#default='scope')
|
||||
display-name(
|
||||
:userid='scope.row.$location.userId'
|
||||
:location='scope.row.$location.tag'
|
||||
:key='previousInstancesWorldDialog.forceUpdate')
|
||||
el-table-column(:label='$t("table.previous_instances.time")' prop='time' width='100' sortable)
|
||||
template(#default='scope')
|
||||
span(v-text='scope.row.timer')
|
||||
el-table-column(:label='$t("table.previous_instances.action")' width='90' align='right')
|
||||
template(#default='scope')
|
||||
el-button(
|
||||
type='text'
|
||||
icon='el-icon-tickets'
|
||||
size='mini'
|
||||
@click='showPreviousInstanceInfoDialog(scope.row.location)')
|
||||
el-button(
|
||||
v-if='shiftHeld'
|
||||
style='color: #f56c6c'
|
||||
type='text'
|
||||
icon='el-icon-close'
|
||||
size='mini'
|
||||
@click='deleteGameLogWorldInstance(scope.row)')
|
||||
el-button(
|
||||
v-else
|
||||
type='text'
|
||||
icon='el-icon-close'
|
||||
size='mini'
|
||||
@click='deleteGameLogWorldInstancePrompt(scope.row)')
|
||||
|
||||
//- dialog Table: Previous Instance Info
|
||||
el-dialog.x-dialog(:before-close="beforeDialogClose" @mousedown.native="dialogMouseDown" @mouseup.native="dialogMouseUp" ref="previousInstanceInfoDialog" :visible.sync="previousInstanceInfoDialog.visible" :title="$t('dialog.previous_instances.info')" width="800px")
|
||||
location(:location="previousInstanceInfoDialog.$location.tag" style="font-size:14px")
|
||||
el-input(v-model="previousInstanceInfoDialogTable.filters[0].value" :placeholder="$t('dialog.previous_instances.search_placeholder')" style="display:block;width:150px;margin-top:15px" clearable)
|
||||
data-tables(v-if="previousInstanceInfoDialog.visible" v-bind="previousInstanceInfoDialogTable" v-loading="previousInstanceInfoDialog.loading" style="margin-top:10px")
|
||||
el-table-column(:label="$t('table.previous_instances.date')" prop="created_at" sortable width="110")
|
||||
template(v-once #default="scope")
|
||||
el-tooltip(placement="left")
|
||||
el-dialog.x-dialog(
|
||||
:before-close='beforeDialogClose'
|
||||
@mousedown.native='dialogMouseDown'
|
||||
@mouseup.native='dialogMouseUp'
|
||||
ref='previousInstanceInfoDialog'
|
||||
:visible.sync='previousInstanceInfoDialog.visible'
|
||||
:title='$t("dialog.previous_instances.info")'
|
||||
width='800px')
|
||||
div(style='display: flex; align-items: center; justify-content: space-between')
|
||||
location(:location='previousInstanceInfoDialog.$location.tag' style='font-size: 14px')
|
||||
el-input(
|
||||
v-model='previousInstanceInfoDialogTable.filters[0].value'
|
||||
:placeholder='$t("dialog.previous_instances.search_placeholder")'
|
||||
style='width: 150px'
|
||||
clearable)
|
||||
data-tables(
|
||||
v-if='previousInstanceInfoDialog.visible'
|
||||
v-bind='previousInstanceInfoDialogTable'
|
||||
v-loading='previousInstanceInfoDialog.loading'
|
||||
style='margin-top: 10px')
|
||||
el-table-column(:label='$t("table.previous_instances.date")' prop='created_at' sortable width='110')
|
||||
template(v-once #default='scope')
|
||||
el-tooltip(placement='left')
|
||||
template(#content)
|
||||
span {{ scope.row.created_at | formatDate('long') }}
|
||||
span {{ scope.row.created_at | formatDate('short') }}
|
||||
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.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.previous_instances.display_name')" prop="displayName" sortable)
|
||||
template(#default="scope")
|
||||
span.x-link(v-text="scope.row.displayName" @click="lookupUser(scope.row)")
|
||||
el-table-column(:label="$t('table.previous_instances.time')" prop="time" width="100" sortable)
|
||||
template(#default="scope")
|
||||
span(v-text="scope.row.timer")
|
||||
el-table-column(:label="$t('table.previous_instances.count')" prop="count" width="100" sortable)
|
||||
template(#default="scope")
|
||||
span(v-text="scope.row.count")
|
||||
el-table-column(:label='$t("table.previous_instances.display_name")' prop='displayName' sortable)
|
||||
template(#default='scope')
|
||||
span.x-link(v-text='scope.row.displayName' @click='lookupUser(scope.row)')
|
||||
el-table-column(:label='$t("table.previous_instances.time")' prop='time' width='100' sortable)
|
||||
template(#default='scope')
|
||||
span(v-text='scope.row.timer')
|
||||
el-table-column(:label='$t("table.previous_instances.count")' prop='count' width='100' sortable)
|
||||
template(#default='scope')
|
||||
span(v-text='scope.row.count')
|
||||
|
||||
@@ -1,54 +1,128 @@
|
||||
mixin screenshotMetadata()
|
||||
el-dialog.x-dialog(:before-close="beforeDialogClose" @mousedown.native="dialogMouseDown" @mouseup.native="dialogMouseUp" ref="screenshotMetadataDialog" :visible.sync="screenshotMetadataDialog.visible" :title="$t('dialog.screenshot_metadata.header')" width="1050px")
|
||||
div(v-if="screenshotMetadataDialog.visible" v-loading="screenshotMetadataDialog.loading" @dragover.prevent @dragenter.prevent @drop="handleDrop" style="-webkit-app-region: drag")
|
||||
span(style="margin-left:5px;color:#909399;font-family:monospace") {{ $t('dialog.screenshot_metadata.drag') }}
|
||||
mixin screenshotMetadata
|
||||
el-dialog.x-dialog(
|
||||
:before-close='beforeDialogClose'
|
||||
@mousedown.native='dialogMouseDown'
|
||||
@mouseup.native='dialogMouseUp'
|
||||
ref='screenshotMetadataDialog'
|
||||
:visible.sync='screenshotMetadataDialog.visible'
|
||||
:title='$t("dialog.screenshot_metadata.header")'
|
||||
width='1050px'
|
||||
top='10vh')
|
||||
div(
|
||||
v-if='screenshotMetadataDialog.visible'
|
||||
v-loading='screenshotMetadataDialog.loading'
|
||||
@dragover.prevent
|
||||
@dragenter.prevent
|
||||
@drop='handleDrop'
|
||||
style='-webkit-app-region: drag')
|
||||
span(style='margin-left: 5px; color: #909399; font-family: monospace') {{ $t('dialog.screenshot_metadata.drag') }}
|
||||
br
|
||||
br
|
||||
el-button(size="small" icon="el-icon-folder-opened" @click="getAndDisplayScreenshotFromFile()") {{ $t('dialog.screenshot_metadata.browse') }}
|
||||
el-button(size="small" icon="el-icon-picture-outline" @click="getAndDisplayLastScreenshot()") {{ $t('dialog.screenshot_metadata.last_screenshot') }}
|
||||
el-button(size="small" icon="el-icon-copy-document" @click="copyImageToClipboard(screenshotMetadataDialog.metadata.filePath)") {{ $t('dialog.screenshot_metadata.copy_image') }}
|
||||
el-button(size="small" icon="el-icon-folder" @click="openImageFolder(screenshotMetadataDialog.metadata.filePath)") {{ $t('dialog.screenshot_metadata.open_folder') }}
|
||||
el-button(v-if="API.currentUser.$isVRCPlus && screenshotMetadataDialog.metadata.filePath" size="small" icon="el-icon-upload2" @click="uploadScreenshotToGallery") {{ $t('dialog.screenshot_metadata.upload') }}
|
||||
el-button(size='small' icon='el-icon-folder-opened' @click='getAndDisplayScreenshotFromFile()') {{ $t('dialog.screenshot_metadata.browse') }}
|
||||
el-button(size='small' icon='el-icon-picture-outline' @click='getAndDisplayLastScreenshot()') {{ $t('dialog.screenshot_metadata.last_screenshot') }}
|
||||
el-button(
|
||||
size='small'
|
||||
icon='el-icon-copy-document'
|
||||
@click='copyImageToClipboard(screenshotMetadataDialog.metadata.filePath)') {{ $t('dialog.screenshot_metadata.copy_image') }}
|
||||
el-button(
|
||||
size='small'
|
||||
icon='el-icon-folder'
|
||||
@click='openImageFolder(screenshotMetadataDialog.metadata.filePath)') {{ $t('dialog.screenshot_metadata.open_folder') }}
|
||||
el-button(
|
||||
v-if='API.currentUser.$isVRCPlus && screenshotMetadataDialog.metadata.filePath'
|
||||
size='small'
|
||||
icon='el-icon-upload2'
|
||||
@click='uploadScreenshotToGallery') {{ $t('dialog.screenshot_metadata.upload') }}
|
||||
br
|
||||
br
|
||||
//- Search bar input
|
||||
el-input(v-model="screenshotMetadataDialog.search" size="small" placeholder="Search" clearable style="width:200px" @input="screenshotMetadataSearch")
|
||||
el-input(
|
||||
v-model='screenshotMetadataDialog.search'
|
||||
size='small'
|
||||
placeholder='Search'
|
||||
clearable
|
||||
style='width: 200px'
|
||||
@input='screenshotMetadataSearch')
|
||||
//- Search index/total label
|
||||
template(v-if="screenshotMetadataDialog.searchIndex != null")
|
||||
span(style="white-space:pre-wrap;font-size:12px;margin-left:10px") {{ (screenshotMetadataDialog.searchIndex + 1) + "/" + screenshotMetadataDialog.searchResults.length }}
|
||||
template(v-if='screenshotMetadataDialog.searchIndex != null')
|
||||
span(style='white-space: pre-wrap; font-size: 12px; margin-left: 10px') {{ screenshotMetadataDialog.searchIndex + 1 + '/' + screenshotMetadataDialog.searchResults.length }}
|
||||
//- Search type dropdown
|
||||
el-select(v-model="screenshotMetadataDialog.searchType" size="small" placeholder="Search Type" style="width:150px;margin-left:10px" @change="screenshotMetadataSearch")
|
||||
el-option(v-for="type in screenshotMetadataDialog.searchTypes" :key="type" :label="type" :value="type")
|
||||
el-select(
|
||||
v-model='screenshotMetadataDialog.searchType'
|
||||
size='small'
|
||||
placeholder='Search Type'
|
||||
style='width: 150px; margin-left: 10px'
|
||||
@change='screenshotMetadataSearch')
|
||||
el-option(v-for='type in screenshotMetadataDialog.searchTypes' :key='type' :label='type' :value='type')
|
||||
br
|
||||
br
|
||||
span(v-text="screenshotMetadataDialog.metadata.fileName")
|
||||
span(v-text='screenshotMetadataDialog.metadata.fileName')
|
||||
br
|
||||
template(v-if="screenshotMetadataDialog.metadata.note")
|
||||
span(v-text="screenshotMetadataDialog.metadata.note")
|
||||
template(v-if='screenshotMetadataDialog.metadata.note')
|
||||
span(v-text='screenshotMetadataDialog.metadata.note')
|
||||
br
|
||||
span(v-if="screenshotMetadataDialog.metadata.dateTime" style="margin-right:5px") {{ screenshotMetadataDialog.metadata.dateTime | formatDate('long') }}
|
||||
span(v-if="screenshotMetadataDialog.metadata.fileResolution" v-text="screenshotMetadataDialog.metadata.fileResolution" style="margin-right:5px")
|
||||
el-tag(v-if="screenshotMetadataDialog.metadata.fileSize" type="info" effect="plain" size="mini" v-text="screenshotMetadataDialog.metadata.fileSize")
|
||||
span(v-if='screenshotMetadataDialog.metadata.dateTime' style='margin-right: 5px') {{ screenshotMetadataDialog.metadata.dateTime | formatDate('long') }}
|
||||
span(
|
||||
v-if='screenshotMetadataDialog.metadata.fileResolution'
|
||||
v-text='screenshotMetadataDialog.metadata.fileResolution'
|
||||
style='margin-right: 5px')
|
||||
el-tag(
|
||||
v-if='screenshotMetadataDialog.metadata.fileSize'
|
||||
type='info'
|
||||
effect='plain'
|
||||
size='mini'
|
||||
v-text='screenshotMetadataDialog.metadata.fileSize')
|
||||
br
|
||||
location(v-if="screenshotMetadataDialog.metadata.world" :location="screenshotMetadataDialog.metadata.world.instanceId" :hint="screenshotMetadataDialog.metadata.world.name")
|
||||
location(
|
||||
v-if='screenshotMetadataDialog.metadata.world'
|
||||
:location='screenshotMetadataDialog.metadata.world.instanceId'
|
||||
:hint='screenshotMetadataDialog.metadata.world.name')
|
||||
br
|
||||
display-name(v-if="screenshotMetadataDialog.metadata.author" :userid="screenshotMetadataDialog.metadata.author.id" :hint="screenshotMetadataDialog.metadata.author.displayName" style="color:#909399;font-family:monospace")
|
||||
display-name(
|
||||
v-if='screenshotMetadataDialog.metadata.author'
|
||||
:userid='screenshotMetadataDialog.metadata.author.id'
|
||||
:hint='screenshotMetadataDialog.metadata.author.displayName'
|
||||
style='color: #909399; font-family: monospace')
|
||||
br
|
||||
el-carousel(ref="screenshotMetadataCarousel" :interval="0" initial-index="1" indicator-position="none" arrow="always" height="600px" style="margin-top:10px" @change="screenshotMetadataCarouselChange")
|
||||
el-carousel(
|
||||
ref='screenshotMetadataCarousel'
|
||||
:interval='0'
|
||||
initial-index='1'
|
||||
indicator-position='none'
|
||||
arrow='always'
|
||||
height='600px'
|
||||
style='margin-top: 10px'
|
||||
@change='screenshotMetadataCarouselChange')
|
||||
el-carousel-item
|
||||
span(placement="top" width="700px" trigger="click")
|
||||
img.x-link(slot="reference" :src="screenshotMetadataDialog.metadata.previousFilePath" style="width:100%;height:100%;object-fit:contain")
|
||||
span(placement='top' width='700px' trigger='click')
|
||||
img.x-link(
|
||||
slot='reference'
|
||||
:src='screenshotMetadataDialog.metadata.previousFilePath'
|
||||
style='width: 100%; height: 100%; object-fit: contain')
|
||||
el-carousel-item
|
||||
span(placement="top" width="700px" trigger="click" @click="showFullscreenImageDialog(screenshotMetadataDialog.metadata.filePath)")
|
||||
img.x-link(slot="reference" :src="screenshotMetadataDialog.metadata.filePath" style="width:100%;height:100%;object-fit:contain")
|
||||
span(
|
||||
placement='top'
|
||||
width='700px'
|
||||
trigger='click'
|
||||
@click='showFullscreenImageDialog(screenshotMetadataDialog.metadata.filePath)')
|
||||
img.x-link(
|
||||
slot='reference'
|
||||
:src='screenshotMetadataDialog.metadata.filePath'
|
||||
style='width: 100%; height: 100%; object-fit: contain')
|
||||
el-carousel-item
|
||||
span(placement="top" width="700px" trigger="click")
|
||||
img.x-link(slot="reference" :src="screenshotMetadataDialog.metadata.nextFilePath" style="width:100%;height:100%;object-fit:contain")
|
||||
span(placement='top' width='700px' trigger='click')
|
||||
img.x-link(
|
||||
slot='reference'
|
||||
:src='screenshotMetadataDialog.metadata.nextFilePath'
|
||||
style='width: 100%; height: 100%; object-fit: contain')
|
||||
br
|
||||
template(v-if="screenshotMetadataDialog.metadata.error")
|
||||
pre(v-text="screenshotMetadataDialog.metadata.error" style="white-space:pre-wrap;font-size:12px")
|
||||
template(v-if='screenshotMetadataDialog.metadata.error')
|
||||
pre(v-text='screenshotMetadataDialog.metadata.error' style='white-space: pre-wrap; font-size: 12px')
|
||||
br
|
||||
span(v-for="user in screenshotMetadataDialog.metadata.players" style="margin-top:5px")
|
||||
span.x-link(v-text="user.displayName" @click="lookupUser(user)")
|
||||
span(v-if="user.pos" v-text="'('+user.pos.x+', '+user.pos.y+', '+user.pos.z+')'" style="margin-left:5px;color:#909399;font-family:monospace")
|
||||
span(v-for='user in screenshotMetadataDialog.metadata.players' style='margin-top: 5px')
|
||||
span.x-link(v-text='user.displayName' @click='lookupUser(user)')
|
||||
span(
|
||||
v-if='user.pos'
|
||||
v-text='"(" + user.pos.x + ", " + user.pos.y + ", " + user.pos.z + ")"'
|
||||
style='margin-left: 5px; color: #909399; font-family: monospace')
|
||||
br
|
||||
|
||||
@@ -1,83 +1,178 @@
|
||||
mixin settings()
|
||||
mixin settings
|
||||
//- dialog: VRChat Config JSON
|
||||
el-dialog.x-dialog(:before-close="beforeDialogClose" @mousedown.native="dialogMouseDown" @mouseup.native="dialogMouseUp" ref="VRChatConfigDialog" :visible.sync="VRChatConfigDialog.visible" :title="$t('dialog.config_json.header')" width="420px")
|
||||
div(style='font-size:12px;word-break:keep-all')
|
||||
el-dialog.x-dialog(
|
||||
:before-close='beforeDialogClose'
|
||||
@mousedown.native='dialogMouseDown'
|
||||
@mouseup.native='dialogMouseUp'
|
||||
ref='VRChatConfigDialog'
|
||||
:visible.sync='VRChatConfigDialog.visible'
|
||||
:title='$t("dialog.config_json.header")'
|
||||
width='420px'
|
||||
top='10vh')
|
||||
div(style='font-size: 12px; word-break: keep-all')
|
||||
| {{ $t('dialog.config_json.description1') }} #[br]
|
||||
| {{ $t('dialog.config_json.description2') }}
|
||||
br
|
||||
span(style="margin-right:5px") {{ $t('dialog.config_json.cache_size') }}
|
||||
span(v-text="VRChatUsedCacheSize")
|
||||
span(style='margin-right: 5px') {{ $t('dialog.config_json.cache_size') }}
|
||||
span(v-text='VRChatUsedCacheSize')
|
||||
span /
|
||||
span(v-text="VRChatTotalCacheSize")
|
||||
span(v-text='VRChatTotalCacheSize')
|
||||
span GB
|
||||
el-tooltip(placement="top" :content="$t('dialog.config_json.refresh')" :disabled="hideTooltips")
|
||||
el-button(type="default" :loading="VRChatCacheSizeLoading" @click="getVRChatCacheSize" size="small" icon="el-icon-refresh" circle style="margin-left:5px")
|
||||
div(style="margin-top:10px")
|
||||
span(style="margin-right:5px") {{ $t('dialog.config_json.delete_all_cache') }}
|
||||
el-button(size="small" style="margin-left:5px" icon="el-icon-delete" @click="showDeleteAllVRChatCacheConfirm()") {{ $t('dialog.config_json.delete_cache') }}
|
||||
div(style="margin-top:10px")
|
||||
span(style="margin-right:5px") {{ $t('dialog.config_json.delete_old_cache') }}
|
||||
el-button(size="small" style="margin-left:5px" icon="el-icon-folder-delete" @click="sweepVRChatCache()") {{ $t('dialog.config_json.sweep_cache') }}
|
||||
div(style="display:inline-block;margin-top:10px" v-for="(item, value) in VRChatConfigList" :key="value")
|
||||
span(v-text="item.name" style="word-break:keep-all")
|
||||
|:
|
||||
el-input(v-model="VRChatConfigFile[value]" :placeholder="item.default" size="mini" :type="item.type?item.type:'text'" :min="item.min" :max="item.max" style="margin-top:5px")
|
||||
el-tooltip(placement='top' :content='$t("dialog.config_json.refresh")' :disabled='hideTooltips')
|
||||
el-button(
|
||||
type='default'
|
||||
:loading='VRChatCacheSizeLoading'
|
||||
@click='getVRChatCacheSize'
|
||||
size='small'
|
||||
icon='el-icon-refresh'
|
||||
circle
|
||||
style='margin-left: 5px')
|
||||
div(style='margin-top: 10px')
|
||||
span(style='margin-right: 5px') {{ $t('dialog.config_json.delete_all_cache') }}
|
||||
el-button(
|
||||
size='small'
|
||||
style='margin-left: 5px'
|
||||
icon='el-icon-delete'
|
||||
@click='showDeleteAllVRChatCacheConfirm()') {{ $t('dialog.config_json.delete_cache') }}
|
||||
div(style='margin-top: 10px')
|
||||
span(style='margin-right: 5px') {{ $t('dialog.config_json.delete_old_cache') }}
|
||||
el-button(size='small' style='margin-left: 5px' icon='el-icon-folder-delete' @click='sweepVRChatCache()') {{ $t('dialog.config_json.sweep_cache') }}
|
||||
div(style='display: inline-block; margin-top: 10px' v-for='(item, value) in VRChatConfigList' :key='value')
|
||||
span(v-text='item.name' style='word-break: keep-all')
|
||||
| :
|
||||
el-input(
|
||||
v-model='VRChatConfigFile[value]'
|
||||
:placeholder='item.default'
|
||||
size='mini'
|
||||
:type='item.type ? item.type : "text"'
|
||||
:min='item.min'
|
||||
:max='item.max'
|
||||
style='margin-top: 5px')
|
||||
br
|
||||
div(style="display:inline-block;margin-top:10px")
|
||||
div(style='display: inline-block; margin-top: 10px')
|
||||
span {{ $t('dialog.config_json.camera_resolution') }}
|
||||
br
|
||||
el-dropdown(@command="(command) => setVRChatCameraResolution(command)" size="small" trigger="click" style="margin-top:5px")
|
||||
el-button(size="small")
|
||||
span #[span(v-text="getVRChatCameraResolution()")] #[i.el-icon-arrow-down.el-icon--right]
|
||||
el-dropdown-menu(#default="dropdown")
|
||||
el-dropdown-item(v-for="row in VRChatCameraResolutions" :key="row.index" v-text="row.name" :command="row")
|
||||
el-dropdown(
|
||||
@command='(command) => setVRChatCameraResolution(command)'
|
||||
size='small'
|
||||
trigger='click'
|
||||
style='margin-top: 5px')
|
||||
el-button(size='small')
|
||||
span #[span(v-text='getVRChatCameraResolution()')] #[i.el-icon-arrow-down.el-icon--right]
|
||||
el-dropdown-menu(#default='dropdown')
|
||||
el-dropdown-item(
|
||||
v-for='row in VRChatCameraResolutions'
|
||||
:key='row.index'
|
||||
v-text='row.name'
|
||||
:command='row')
|
||||
br
|
||||
div(style="display:inline-block;margin-top:10px")
|
||||
div(style='display: inline-block; margin-top: 10px')
|
||||
span {{ $t('dialog.config_json.spout_resolution') }}
|
||||
br
|
||||
el-dropdown(@command="(command) => setVRChatSpoutResolution(command)" size="small" trigger="click" style="margin-top:5px")
|
||||
el-button(size="small")
|
||||
span #[span(v-text="getVRChatSpoutResolution()")] #[i.el-icon-arrow-down.el-icon--right]
|
||||
el-dropdown-menu(#default="dropdown")
|
||||
el-dropdown-item(v-for="row in VRChatScreenshotResolutions" :key="row.index" v-text="row.name" :command="row")
|
||||
el-dropdown(
|
||||
@command='(command) => setVRChatSpoutResolution(command)'
|
||||
size='small'
|
||||
trigger='click'
|
||||
style='margin-top: 5px')
|
||||
el-button(size='small')
|
||||
span #[span(v-text='getVRChatSpoutResolution()')] #[i.el-icon-arrow-down.el-icon--right]
|
||||
el-dropdown-menu(#default='dropdown')
|
||||
el-dropdown-item(
|
||||
v-for='row in VRChatScreenshotResolutions'
|
||||
:key='row.index'
|
||||
v-text='row.name'
|
||||
:command='row')
|
||||
br
|
||||
div(style="display:inline-block;margin-top:10px")
|
||||
div(style='display: inline-block; margin-top: 10px')
|
||||
span {{ $t('dialog.config_json.screenshot_resolution') }}
|
||||
br
|
||||
el-dropdown(@command="(command) => setVRChatScreenshotResolution(command)" size="small" trigger="click" style="margin-top:5px")
|
||||
el-button(size="small")
|
||||
span #[span(v-text="getVRChatScreenshotResolution()")] #[i.el-icon-arrow-down.el-icon--right]
|
||||
el-dropdown-menu(#default="dropdown")
|
||||
el-dropdown-item(v-for="row in VRChatScreenshotResolutions" :key="row.index" v-text="row.name" :command="row")
|
||||
el-checkbox(v-model="VRChatConfigFile.picture_output_split_by_date" style="margin-top:5px;display:block" :checked="true") {{ $t('dialog.config_json.picture_sort_by_date') }}
|
||||
el-checkbox(v-model="VRChatConfigFile.disableRichPresence" style="margin-top:5px;display:block") {{ $t('dialog.config_json.disable_discord_presence') }}
|
||||
el-dropdown(
|
||||
@command='(command) => setVRChatScreenshotResolution(command)'
|
||||
size='small'
|
||||
trigger='click'
|
||||
style='margin-top: 5px')
|
||||
el-button(size='small')
|
||||
span #[span(v-text='getVRChatScreenshotResolution()')] #[i.el-icon-arrow-down.el-icon--right]
|
||||
el-dropdown-menu(#default='dropdown')
|
||||
el-dropdown-item(
|
||||
v-for='row in VRChatScreenshotResolutions'
|
||||
:key='row.index'
|
||||
v-text='row.name'
|
||||
:command='row')
|
||||
el-checkbox(
|
||||
v-model='VRChatConfigFile.picture_output_split_by_date'
|
||||
style='margin-top: 5px; display: block'
|
||||
:checked='true') {{ $t('dialog.config_json.picture_sort_by_date') }}
|
||||
el-checkbox(v-model='VRChatConfigFile.disableRichPresence' style='margin-top: 5px; display: block') {{ $t('dialog.config_json.disable_discord_presence') }}
|
||||
template(#footer)
|
||||
div(style="display:flex;align-items:center;justify-content:space-between")
|
||||
div(style='display: flex; align-items: center; justify-content: space-between')
|
||||
div
|
||||
el-button(size="small" @click="openExternalLink('https://docs.vrchat.com/docs/configuration-file')") {{ $t('dialog.config_json.vrchat_docs') }}
|
||||
el-button(
|
||||
size='small'
|
||||
@click='openExternalLink("https://docs.vrchat.com/docs/configuration-file")') {{ $t('dialog.config_json.vrchat_docs') }}
|
||||
div
|
||||
el-button(size="small" @click="VRChatConfigDialog.visible = false") {{ $t('dialog.config_json.cancel') }}
|
||||
el-button(size="small" type="primary" :disabled="VRChatConfigDialog.loading" @click="saveVRChatConfigFile") {{ $t('dialog.config_json.save') }}
|
||||
el-button(size='small' @click='VRChatConfigDialog.visible = false') {{ $t('dialog.config_json.cancel') }}
|
||||
el-button(
|
||||
size='small'
|
||||
type='primary'
|
||||
:disabled='VRChatConfigDialog.loading'
|
||||
@click='saveVRChatConfigFile') {{ $t('dialog.config_json.save') }}
|
||||
|
||||
//- dialog: YouTube Api Dialog
|
||||
el-dialog.x-dialog(:before-close="beforeDialogClose" @mousedown.native="dialogMouseDown" @mouseup.native="dialogMouseUp" ref="youTubeApiDialog" :visible.sync="youTubeApiDialog.visible" :title="$t('dialog.youtube_api.header')" width="400px")
|
||||
div(style='font-size:12px;')
|
||||
el-dialog.x-dialog(
|
||||
:before-close='beforeDialogClose'
|
||||
@mousedown.native='dialogMouseDown'
|
||||
@mouseup.native='dialogMouseUp'
|
||||
ref='youTubeApiDialog'
|
||||
:visible.sync='youTubeApiDialog.visible'
|
||||
:title='$t("dialog.youtube_api.header")'
|
||||
width='400px')
|
||||
div(style='font-size: 12px')
|
||||
| {{ $t('dialog.youtube_api.description') }} #[br]
|
||||
el-input(type="textarea" v-model="youTubeApiKey" :placeholder="$t('dialog.youtube_api.placeholder')" maxlength="39" show-word-limit style="display:block;margin-top:10px")
|
||||
el-input(
|
||||
type='textarea'
|
||||
v-model='youTubeApiKey'
|
||||
:placeholder='$t("dialog.youtube_api.placeholder")'
|
||||
maxlength='39'
|
||||
show-word-limit
|
||||
style='display: block; margin-top: 10px')
|
||||
template(#footer)
|
||||
div(style="display:flex")
|
||||
el-button(size="small" @click="openExternalLink('https://rapidapi.com/blog/how-to-get-youtube-api-key/')") {{ $t('dialog.youtube_api.guide') }}
|
||||
el-button(type="primary" size="small" @click="testYouTubeApiKey" style="margin-left:auto") {{ $t('dialog.youtube_api.save') }}
|
||||
div(style='display: flex')
|
||||
el-button(
|
||||
size='small'
|
||||
@click='openExternalLink("https://rapidapi.com/blog/how-to-get-youtube-api-key/")') {{ $t('dialog.youtube_api.guide') }}
|
||||
el-button(type='primary' size='small' @click='testYouTubeApiKey' style='margin-left: auto') {{ $t('dialog.youtube_api.save') }}
|
||||
|
||||
//- dialog: Discord username list
|
||||
el-dialog.x-dialog(:before-close="beforeDialogClose" @mousedown.native="dialogMouseDown" @mouseup.native="dialogMouseUp" :visible.sync="discordNamesDialogVisible" :title="$t('dialog.discord_names.header')" width="650px")
|
||||
div(style='font-size:12px;')
|
||||
el-dialog.x-dialog(
|
||||
:before-close='beforeDialogClose'
|
||||
@mousedown.native='dialogMouseDown'
|
||||
@mouseup.native='dialogMouseUp'
|
||||
:visible.sync='discordNamesDialogVisible'
|
||||
:title='$t("dialog.discord_names.header")'
|
||||
width='650px')
|
||||
div(style='font-size: 12px')
|
||||
| {{ $t('dialog.discord_names.description') }}
|
||||
el-input(type="textarea" v-if="discordNamesDialogVisible" v-model="discordNamesContent" size="mini" rows="15" resize="none" readonly style="margin-top:15px")
|
||||
el-input(
|
||||
type='textarea'
|
||||
v-if='discordNamesDialogVisible'
|
||||
v-model='discordNamesContent'
|
||||
size='mini'
|
||||
rows='15'
|
||||
resize='none'
|
||||
readonly
|
||||
style='margin-top: 15px')
|
||||
|
||||
//- dialog: Note export dialog
|
||||
el-dialog.x-dialog(:before-close="beforeDialogClose" @mousedown.native="dialogMouseDown" @mouseup.native="dialogMouseUp" ref="noteExportDialog" :visible.sync="noteExportDialog.visible" :title="$t('dialog.note_export.header')" width="1000px")
|
||||
div(style="font-size:12px")
|
||||
el-dialog.x-dialog(
|
||||
:before-close='beforeDialogClose'
|
||||
@mousedown.native='dialogMouseDown'
|
||||
@mouseup.native='dialogMouseUp'
|
||||
ref='noteExportDialog'
|
||||
:visible.sync='noteExportDialog.visible'
|
||||
:title='$t("dialog.note_export.header")'
|
||||
width='1000px')
|
||||
div(style='font-size: 12px')
|
||||
| {{ $t('dialog.note_export.description1') }} #[br]
|
||||
| {{ $t('dialog.note_export.description2') }} #[br]
|
||||
| {{ $t('dialog.note_export.description3') }} #[br]
|
||||
@@ -86,126 +181,260 @@ mixin settings()
|
||||
| {{ $t('dialog.note_export.description6') }} #[br]
|
||||
| {{ $t('dialog.note_export.description7') }} #[br]
|
||||
| {{ $t('dialog.note_export.description8') }} #[br]
|
||||
el-button(size="small" @click="updateNoteExportDialog" :disabled="noteExportDialog.loading" style="margin-top:10px") {{ $t('dialog.note_export.refresh') }}
|
||||
el-button(size="small" @click="exportNoteExport" :disabled="noteExportDialog.loading" style="margin-top:10px") {{ $t('dialog.note_export.export') }}
|
||||
el-button(v-if="noteExportDialog.loading" size="small" @click="cancelNoteExport" style="margin-top:10px") {{ $t('dialog.note_export.cancel') }}
|
||||
span(v-if="noteExportDialog.loading" style="margin:10px") #[i.el-icon-loading(style="margin-right:5px")] {{ $t('dialog.note_export.progress') }} {{ noteExportDialog.progress }}/{{ noteExportDialog.progressTotal }}
|
||||
template(v-if="noteExportDialog.errors")
|
||||
el-button(size="small" @click="noteExportDialog.errors = ''") {{ $t('dialog.note_export.clear_errors') }}
|
||||
h2(style="font-weight:bold;margin:0") {{ $t('dialog.note_export.errors') }}
|
||||
pre(v-text="noteExportDialog.errors" style="white-space:pre-wrap;font-size:12px")
|
||||
data-tables(v-if="noteExportDialog.visible" v-bind="noteExportTable" v-loading="noteExportDialog.loading" style="margin-top:10px")
|
||||
el-table-column(:label="$t('table.import.image')" width="70" prop="currentAvatarThumbnailImageUrl")
|
||||
template(#default="scope")
|
||||
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.import.name')" width="170" prop="name")
|
||||
template(#default="scope")
|
||||
span.x-link(v-text="scope.row.name" @click="showUserDialog(scope.row.id)")
|
||||
el-table-column(:label="$t('table.import.note')" prop="memo")
|
||||
template(#default="scope")
|
||||
el-input(v-model="scope.row.memo" type="textarea" maxlength="256" show-word-limit :rows="2" :autosize="{ minRows: 1, maxRows: 10 }" size="mini" resize="none")
|
||||
el-table-column(:label="$t('table.import.skip_export')" width="90" align="right")
|
||||
template(#default="scope")
|
||||
el-button(type="text" icon="el-icon-close" size="mini" @click="removeFromNoteExportTable(scope.row)")
|
||||
el-button(
|
||||
size='small'
|
||||
@click='updateNoteExportDialog'
|
||||
:disabled='noteExportDialog.loading'
|
||||
style='margin-top: 10px') {{ $t('dialog.note_export.refresh') }}
|
||||
el-button(size='small' @click='exportNoteExport' :disabled='noteExportDialog.loading' style='margin-top: 10px') {{ $t('dialog.note_export.export') }}
|
||||
el-button(v-if='noteExportDialog.loading' size='small' @click='cancelNoteExport' style='margin-top: 10px') {{ $t('dialog.note_export.cancel') }}
|
||||
span(v-if='noteExportDialog.loading' style='margin: 10px') #[i.el-icon-loading(style='margin-right: 5px')] {{ $t('dialog.note_export.progress') }} {{ noteExportDialog.progress }}/{{ noteExportDialog.progressTotal }}
|
||||
template(v-if='noteExportDialog.errors')
|
||||
el-button(size='small' @click='noteExportDialog.errors = ""') {{ $t('dialog.note_export.clear_errors') }}
|
||||
h2(style='font-weight: bold; margin: 0') {{ $t('dialog.note_export.errors') }}
|
||||
pre(v-text='noteExportDialog.errors' style='white-space: pre-wrap; font-size: 12px')
|
||||
data-tables(
|
||||
v-if='noteExportDialog.visible'
|
||||
v-bind='noteExportTable'
|
||||
v-loading='noteExportDialog.loading'
|
||||
style='margin-top: 10px')
|
||||
el-table-column(:label='$t("table.import.image")' width='70' prop='currentAvatarThumbnailImageUrl')
|
||||
template(#default='scope')
|
||||
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.import.name")' width='170' prop='name')
|
||||
template(#default='scope')
|
||||
span.x-link(v-text='scope.row.name' @click='showUserDialog(scope.row.id)')
|
||||
el-table-column(:label='$t("table.import.note")' prop='memo')
|
||||
template(#default='scope')
|
||||
el-input(
|
||||
v-model='scope.row.memo'
|
||||
type='textarea'
|
||||
maxlength='256'
|
||||
show-word-limit
|
||||
:rows='2'
|
||||
:autosize='{ minRows: 1, maxRows: 10 }'
|
||||
size='mini'
|
||||
resize='none')
|
||||
el-table-column(:label='$t("table.import.skip_export")' width='90' align='right')
|
||||
template(#default='scope')
|
||||
el-button(
|
||||
type='text'
|
||||
icon='el-icon-close'
|
||||
size='mini'
|
||||
@click='removeFromNoteExportTable(scope.row)')
|
||||
|
||||
//- dialog: chatbox blacklist
|
||||
el-dialog.x-dialog(:before-close="beforeDialogClose" @mousedown.native="dialogMouseDown" @mouseup.native="dialogMouseUp" ref="chatboxBlacklistDialog" :visible.sync="chatboxBlacklistDialog.visible" :title="$t('dialog.chatbox_blacklist.header')" width="600px")
|
||||
div(v-loading="chatboxBlacklistDialog.loading" v-if="chatboxBlacklistDialog.visible")
|
||||
el-dialog.x-dialog(
|
||||
:before-close='beforeDialogClose'
|
||||
@mousedown.native='dialogMouseDown'
|
||||
@mouseup.native='dialogMouseUp'
|
||||
ref='chatboxBlacklistDialog'
|
||||
:visible.sync='chatboxBlacklistDialog.visible'
|
||||
:title='$t("dialog.chatbox_blacklist.header")'
|
||||
width='600px')
|
||||
div(v-loading='chatboxBlacklistDialog.loading' v-if='chatboxBlacklistDialog.visible')
|
||||
h2 {{ $t('dialog.chatbox_blacklist.keyword_blacklist') }}
|
||||
el-input(v-for="(item, index) in chatboxBlacklist" :key="index" :value="item" v-model="chatboxBlacklist[index]" size="small" style="margin-top:5px" @change="saveChatboxBlacklist")
|
||||
el-button(slot="append" icon="el-icon-delete" @click="chatboxBlacklist.splice(index, 1); saveChatboxBlacklist()")
|
||||
el-button(@click="chatboxBlacklist.push('')" size="mini" style="margin-top:5px") {{ $t('dialog.chatbox_blacklist.add_item') }}
|
||||
el-input(
|
||||
v-for='(item, index) in chatboxBlacklist'
|
||||
:key='index'
|
||||
:value='item'
|
||||
v-model='chatboxBlacklist[index]'
|
||||
size='small'
|
||||
style='margin-top: 5px'
|
||||
@change='saveChatboxBlacklist')
|
||||
el-button(
|
||||
slot='append'
|
||||
icon='el-icon-delete'
|
||||
@click='chatboxBlacklist.splice(index, 1); saveChatboxBlacklist()')
|
||||
el-button(@click='chatboxBlacklist.push("")' size='mini' style='margin-top: 5px') {{ $t('dialog.chatbox_blacklist.add_item') }}
|
||||
br
|
||||
h2 {{ $t('dialog.chatbox_blacklist.user_blacklist') }}
|
||||
el-tag(v-for="user in chatboxUserBlacklist" type="info" disable-transitions="true" :key="user[0]" style="margin-right:5px;margin-top:5px" closable @close="deleteChatboxUserBlacklist(user[0])")
|
||||
span {{user[1]}}
|
||||
el-tag(
|
||||
v-for='user in chatboxUserBlacklist'
|
||||
type='info'
|
||||
disable-transitions='true'
|
||||
:key='user[0]'
|
||||
style='margin-right: 5px; margin-top: 5px'
|
||||
closable
|
||||
@close='deleteChatboxUserBlacklist(user[0])')
|
||||
span {{ user[1] }}
|
||||
|
||||
//- dialog: Notification position
|
||||
el-dialog.x-dialog(:before-close="beforeDialogClose" @mousedown.native="dialogMouseDown" @mouseup.native="dialogMouseUp" ref="notificationPositionDialog" :visible.sync="notificationPositionDialog.visible" :title="$t('dialog.notification_position.header')" width="400px")
|
||||
div(style='font-size:12px;')
|
||||
el-dialog.x-dialog(
|
||||
:before-close='beforeDialogClose'
|
||||
@mousedown.native='dialogMouseDown'
|
||||
@mouseup.native='dialogMouseUp'
|
||||
ref='notificationPositionDialog'
|
||||
:visible.sync='notificationPositionDialog.visible'
|
||||
:title='$t("dialog.notification_position.header")'
|
||||
width='400px')
|
||||
div(style='font-size: 12px')
|
||||
| {{ $t('dialog.notification_position.description') }}
|
||||
svg.notification-position(version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 300 200" style="margin-top:15px;" xml:space="preserve")
|
||||
path(style="fill:black;" d="M291.89,5A3.11,3.11,0,0,1,295,8.11V160.64a3.11,3.11,0,0,1-3.11,3.11H8.11A3.11,3.11,0,0,1,5,160.64V8.11A3.11,3.11,0,0,1,8.11,5H291.89m0-5H8.11A8.11,8.11,0,0,0,0,8.11V160.64a8.11,8.11,0,0,0,8.11,8.11H291.89a8.11,8.11,0,0,0,8.11-8.11V8.11A8.11,8.11,0,0,0,291.89,0Z")
|
||||
rect(style="fill:#c4c4c4;" x="5" y="5" width="290" height="158.75" rx="2.5")
|
||||
el-radio-group(v-model="notificationPosition" size="mini" @change="changeNotificationPosition")
|
||||
el-radio(label="topLeft" v-model="notificationPosition" style="margin:0;position:absolute;left:35px;top:120px;")
|
||||
el-radio(label="top" v-model="notificationPosition" style="margin:0;position:absolute;left:195px;top:120px;")
|
||||
el-radio(label="topRight" v-model="notificationPosition" style="margin:0;position:absolute;right:25px;top:120px;")
|
||||
el-radio(label="centerLeft" v-model="notificationPosition" style="margin:0;position:absolute;left:35px;top:200px;")
|
||||
el-radio(label="center" v-model="notificationPosition" style="margin:0;position:absolute;left:195px;top:200px;")
|
||||
el-radio(label="centerRight" v-model="notificationPosition" style="margin:0;position:absolute;right:25px;top:200px;")
|
||||
el-radio(label="bottomLeft" v-model="notificationPosition" style="margin:0;position:absolute;left:35px;top:280px;")
|
||||
el-radio(label="bottom" v-model="notificationPosition" style="margin:0;position:absolute;left:195px;top:280px;")
|
||||
el-radio(label="bottomRight" v-model="notificationPosition" style="margin:0;position:absolute;right:25px;top:280px;")
|
||||
svg.notification-position(
|
||||
version='1.1'
|
||||
xmlns='http://www.w3.org/2000/svg'
|
||||
xmlns:xlink='http://www.w3.org/1999/xlink'
|
||||
x='0px'
|
||||
y='0px'
|
||||
viewBox='0 0 300 200'
|
||||
style='margin-top: 15px'
|
||||
xml:space='preserve')
|
||||
path(
|
||||
style='fill: black'
|
||||
d='M291.89,5A3.11,3.11,0,0,1,295,8.11V160.64a3.11,3.11,0,0,1-3.11,3.11H8.11A3.11,3.11,0,0,1,5,160.64V8.11A3.11,3.11,0,0,1,8.11,5H291.89m0-5H8.11A8.11,8.11,0,0,0,0,8.11V160.64a8.11,8.11,0,0,0,8.11,8.11H291.89a8.11,8.11,0,0,0,8.11-8.11V8.11A8.11,8.11,0,0,0,291.89,0Z')
|
||||
rect(style='fill: #c4c4c4' x='5' y='5' width='290' height='158.75' rx='2.5')
|
||||
el-radio-group(v-model='notificationPosition' size='mini' @change='changeNotificationPosition')
|
||||
el-radio(
|
||||
label='topLeft'
|
||||
v-model='notificationPosition'
|
||||
style='margin: 0; position: absolute; left: 35px; top: 120px')
|
||||
el-radio(
|
||||
label='top'
|
||||
v-model='notificationPosition'
|
||||
style='margin: 0; position: absolute; left: 195px; top: 120px')
|
||||
el-radio(
|
||||
label='topRight'
|
||||
v-model='notificationPosition'
|
||||
style='margin: 0; position: absolute; right: 25px; top: 120px')
|
||||
el-radio(
|
||||
label='centerLeft'
|
||||
v-model='notificationPosition'
|
||||
style='margin: 0; position: absolute; left: 35px; top: 200px')
|
||||
el-radio(
|
||||
label='center'
|
||||
v-model='notificationPosition'
|
||||
style='margin: 0; position: absolute; left: 195px; top: 200px')
|
||||
el-radio(
|
||||
label='centerRight'
|
||||
v-model='notificationPosition'
|
||||
style='margin: 0; position: absolute; right: 25px; top: 200px')
|
||||
el-radio(
|
||||
label='bottomLeft'
|
||||
v-model='notificationPosition'
|
||||
style='margin: 0; position: absolute; left: 35px; top: 280px')
|
||||
el-radio(
|
||||
label='bottom'
|
||||
v-model='notificationPosition'
|
||||
style='margin: 0; position: absolute; left: 195px; top: 280px')
|
||||
el-radio(
|
||||
label='bottomRight'
|
||||
v-model='notificationPosition'
|
||||
style='margin: 0; position: absolute; right: 25px; top: 280px')
|
||||
template(#footer)
|
||||
div(style="display:flex")
|
||||
el-button(type="primary" size="small" style="margin-left:auto" @click="notificationPositionDialog.visible = false") {{ $t('dialog.notification_position.ok') }}
|
||||
div(style='display: flex')
|
||||
el-button(
|
||||
type='primary'
|
||||
size='small'
|
||||
style='margin-left: auto'
|
||||
@click='notificationPositionDialog.visible = false') {{ $t('dialog.notification_position.ok') }}
|
||||
|
||||
//- dialog: avatar database provider
|
||||
el-dialog.x-dialog(:before-close="beforeDialogClose" @mousedown.native="dialogMouseDown" @mouseup.native="dialogMouseUp" ref="avatarProviderDialog" :visible.sync="avatarProviderDialog.visible" :title="$t('dialog.avatar_database_provider.header')" width="600px")
|
||||
el-dialog.x-dialog(
|
||||
:before-close='beforeDialogClose'
|
||||
@mousedown.native='dialogMouseDown'
|
||||
@mouseup.native='dialogMouseUp'
|
||||
ref='avatarProviderDialog'
|
||||
:visible.sync='avatarProviderDialog.visible'
|
||||
:title='$t("dialog.avatar_database_provider.header")'
|
||||
width='600px')
|
||||
div
|
||||
el-input(v-for="(provider, index) in avatarRemoteDatabaseProviderList" :key="index" :value="provider" v-model="avatarRemoteDatabaseProviderList[index]" @change="saveAvatarProviderList" size="small" style="margin-top:5px")
|
||||
el-button(slot="append" icon="el-icon-delete" @click="removeAvatarProvider(provider)")
|
||||
el-button(@click="avatarRemoteDatabaseProviderList.push('')" size="mini" style="margin-top:5px") {{ $t('dialog.avatar_database_provider.add_provider') }}
|
||||
el-input(
|
||||
v-for='(provider, index) in avatarRemoteDatabaseProviderList'
|
||||
:key='index'
|
||||
:value='provider'
|
||||
v-model='avatarRemoteDatabaseProviderList[index]'
|
||||
@change='saveAvatarProviderList'
|
||||
size='small'
|
||||
style='margin-top: 5px')
|
||||
el-button(slot='append' icon='el-icon-delete' @click='removeAvatarProvider(provider)')
|
||||
el-button(@click='avatarRemoteDatabaseProviderList.push("")' size='mini' style='margin-top: 5px') {{ $t('dialog.avatar_database_provider.add_provider') }}
|
||||
|
||||
//- dialog: Registry Auto Backup
|
||||
el-dialog.x-dialog(:before-close="beforeDialogClose" @closed="clearVrcRegistryDialog" @mousedown.native="dialogMouseDown" @mouseup.native="dialogMouseUp" ref="registryBackupDialog" :visible.sync="registryBackupDialog.visible" :title="$t('dialog.registry_backup.header')" width="600px")
|
||||
div(v-if="registryBackupDialog.visible" style="margin-top:10px")
|
||||
div.options-container(style="padding:0")
|
||||
div.options-container-item(style="display:flex;align-items:center;justify-content:space-between")
|
||||
span.name(style="margin-right:24px") {{ $t('dialog.registry_backup.auto_backup') }}
|
||||
el-switch(v-model="vrcRegistryAutoBackup" @change="saveVrcRegistryAutoBackup")
|
||||
data-tables(v-bind="registryBackupTable" style="margin-top:10px")
|
||||
el-table-column(:label="$t('dialog.registry_backup.name')" prop="name")
|
||||
el-table-column(:label="$t('dialog.registry_backup.date')" prop="date")
|
||||
template(#default="scope")
|
||||
el-dialog.x-dialog(
|
||||
:before-close='beforeDialogClose'
|
||||
@closed='clearVrcRegistryDialog'
|
||||
@mousedown.native='dialogMouseDown'
|
||||
@mouseup.native='dialogMouseUp'
|
||||
ref='registryBackupDialog'
|
||||
:visible.sync='registryBackupDialog.visible'
|
||||
:title='$t("dialog.registry_backup.header")'
|
||||
width='600px')
|
||||
div(v-if='registryBackupDialog.visible' style='margin-top: 10px')
|
||||
div(style='display: flex; align-items: center; justify-content: space-between; font-size: 12px')
|
||||
span.name(style='margin-right: 24px') {{ $t('dialog.registry_backup.auto_backup') }}
|
||||
el-switch(v-model='vrcRegistryAutoBackup' @change='saveVrcRegistryAutoBackup')
|
||||
data-tables(v-bind='registryBackupTable' style='margin-top: 10px')
|
||||
el-table-column(:label='$t("dialog.registry_backup.name")' prop='name')
|
||||
el-table-column(:label='$t("dialog.registry_backup.date")' prop='date')
|
||||
template(#default='scope')
|
||||
span {{ scope.row.date | formatDate('long') }}
|
||||
el-table-column(:label="$t('dialog.registry_backup.action')" width="90" align="right")
|
||||
template(#default="scope")
|
||||
el-tooltip(placement="top" :content="$t('dialog.registry_backup.restore')" :disabled="hideTooltips")
|
||||
el-button(type="text" icon="el-icon-upload2" size="mini" @click="restoreVrcRegistryBackup(scope.row)")
|
||||
el-tooltip(placement="top" :content="$t('dialog.registry_backup.save_to_file')" :disabled="hideTooltips")
|
||||
el-button(type="text" icon="el-icon-download" size="mini" @click="saveVrcRegistryBackupToFile(scope.row)")
|
||||
el-tooltip(placement="top" :content="$t('dialog.registry_backup.delete')" :disabled="hideTooltips")
|
||||
el-button(type="text" icon="el-icon-delete" size="mini" @click="deleteVrcRegistryBackup(scope.row)")
|
||||
div(style="display:flex;align-items:center;justify-content:space-between;margin-top:10px")
|
||||
el-button(type="danger" @click="deleteVrcRegistry" size="small") {{ $t('dialog.registry_backup.reset') }}
|
||||
el-table-column(:label='$t("dialog.registry_backup.action")' width='90' align='right')
|
||||
template(#default='scope')
|
||||
el-tooltip(
|
||||
placement='top'
|
||||
:content='$t("dialog.registry_backup.restore")'
|
||||
:disabled='hideTooltips')
|
||||
el-button(
|
||||
type='text'
|
||||
icon='el-icon-upload2'
|
||||
size='mini'
|
||||
@click='restoreVrcRegistryBackup(scope.row)')
|
||||
el-tooltip(
|
||||
placement='top'
|
||||
:content='$t("dialog.registry_backup.save_to_file")'
|
||||
:disabled='hideTooltips')
|
||||
el-button(
|
||||
type='text'
|
||||
icon='el-icon-download'
|
||||
size='mini'
|
||||
@click='saveVrcRegistryBackupToFile(scope.row)')
|
||||
el-tooltip(
|
||||
placement='top'
|
||||
:content='$t("dialog.registry_backup.delete")'
|
||||
:disabled='hideTooltips')
|
||||
el-button(
|
||||
type='text'
|
||||
icon='el-icon-delete'
|
||||
size='mini'
|
||||
@click='deleteVrcRegistryBackup(scope.row)')
|
||||
div(style='display: flex; align-items: center; justify-content: space-between; margin-top: 10px')
|
||||
el-button(type='danger' @click='deleteVrcRegistry' size='small') {{ $t('dialog.registry_backup.reset') }}
|
||||
div
|
||||
el-button(@click="promptVrcRegistryBackupName" size="small") {{ $t('dialog.registry_backup.backup') }}
|
||||
el-button(@click="restoreVrcRegistryFromFile" size="small") {{ $t('dialog.registry_backup.restore_from_file') }}
|
||||
|
||||
el-button(@click='promptVrcRegistryBackupName' size='small') {{ $t('dialog.registry_backup.backup') }}
|
||||
el-button(@click='restoreVrcRegistryFromFile' size='small') {{ $t('dialog.registry_backup.restore_from_file') }}
|
||||
|
||||
//- dialog: Enable primary password
|
||||
el-dialog.x-dialog(
|
||||
:visible.sync="enablePrimaryPasswordDialog.visible"
|
||||
:before-close="enablePrimaryPasswordDialog.beforeClose"
|
||||
ref="primaryPasswordDialog"
|
||||
:close-on-click-modal="false"
|
||||
:title="$t('dialog.primary_password.header')"
|
||||
width="400px"
|
||||
)
|
||||
:visible.sync='enablePrimaryPasswordDialog.visible'
|
||||
:before-close='enablePrimaryPasswordDialog.beforeClose'
|
||||
ref='primaryPasswordDialog'
|
||||
:close-on-click-modal='false'
|
||||
:title='$t("dialog.primary_password.header")'
|
||||
width='400px')
|
||||
el-input(
|
||||
v-model="enablePrimaryPasswordDialog.password"
|
||||
:placeholder="$t('dialog.primary_password.password_placeholder')"
|
||||
type="password"
|
||||
size="mini"
|
||||
maxlength="32"
|
||||
v-model='enablePrimaryPasswordDialog.password'
|
||||
:placeholder='$t("dialog.primary_password.password_placeholder")'
|
||||
type='password'
|
||||
size='mini'
|
||||
maxlength='32'
|
||||
show-password
|
||||
autofocus
|
||||
)
|
||||
autofocus)
|
||||
el-input(
|
||||
v-model="enablePrimaryPasswordDialog.rePassword"
|
||||
:placeholder="$t('dialog.primary_password.re_input_placeholder')"
|
||||
type="password"
|
||||
style="margin-top:5px"
|
||||
size="mini"
|
||||
maxlength="32"
|
||||
show-password
|
||||
)
|
||||
v-model='enablePrimaryPasswordDialog.rePassword'
|
||||
:placeholder='$t("dialog.primary_password.re_input_placeholder")'
|
||||
type='password'
|
||||
style='margin-top: 5px'
|
||||
size='mini'
|
||||
maxlength='32'
|
||||
show-password)
|
||||
template(#footer)
|
||||
el-button(
|
||||
type="primary" size="small" @click="setPrimaryPassword"
|
||||
:disabled="enablePrimaryPasswordDialog.password.length===0||enablePrimaryPasswordDialog.password!==enablePrimaryPasswordDialog.rePassword"
|
||||
) {{ $t('dialog.primary_password.ok') }}
|
||||
type='primary'
|
||||
size='small'
|
||||
@click='setPrimaryPassword'
|
||||
:disabled='enablePrimaryPasswordDialog.password.length === 0 || enablePrimaryPasswordDialog.password !== enablePrimaryPasswordDialog.rePassword') {{ $t('dialog.primary_password.ok') }}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,24 +1,54 @@
|
||||
mixin friendLogTab()
|
||||
.x-container(v-if="$refs.menu && $refs.menu.activeIndex === 'friendLog'")
|
||||
data-tables(v-bind="friendLogTable" ref="friendLogTableRef")
|
||||
mixin friendLogTab
|
||||
.x-container(v-if='$refs.menu && $refs.menu.activeIndex === "friendLog"')
|
||||
data-tables(v-bind='friendLogTable' ref='friendLogTableRef')
|
||||
template(#tool)
|
||||
div(style="margin:0 0 10px;display:flex;align-items:center")
|
||||
el-select(v-model="friendLogTable.filters[0].value" @change="saveTableFilters" multiple clearable style="flex:1" :placeholder="$t('view.friend_log.filter_placeholder')")
|
||||
el-option(v-for="type in ['Friend', 'Unfriend', 'FriendRequest', 'CancelFriendRequest', 'DisplayName', 'TrustLevel']" :key="type" :label="$t('view.friend_log.filters.' + type)" :value="type")
|
||||
el-input(v-model="friendLogTable.filters[1].value" :placeholder="$t('view.friend_log.search_placeholder')" style="flex:none;width:150px;margin-left:10px")
|
||||
el-table-column(:label="$t('table.friendLog.date')" prop="created_at" sortable="custom" width="200")
|
||||
template(#default="scope")
|
||||
span {{ scope.row.created_at | formatDate('long') }}
|
||||
el-table-column(:label="$t('table.friendLog.type')" prop="type" width="150")
|
||||
template(#default="scope")
|
||||
span(v-text="$t('view.friend_log.filters.' + scope.row.type)")
|
||||
el-table-column(:label="$t('table.friendLog.user')" prop="displayName")
|
||||
template(#default="scope")
|
||||
span(v-if="scope.row.type === 'DisplayName'") {{ scope.row.previousDisplayName }} #[i.el-icon-right]
|
||||
span.x-link(v-text="scope.row.displayName || scope.row.userId" @click="showUserDialog(scope.row.userId)" style="padding-right:10px")
|
||||
template(v-if="scope.row.type === 'TrustLevel'")
|
||||
span ({{ scope.row.previousTrustLevel }} #[i.el-icon-right] {{ scope.row.trustLevel }})
|
||||
el-table-column(:label="$t('table.friendLog.action')" width="80" align="right")
|
||||
template(#default="scope")
|
||||
el-button(v-if="shiftHeld" style="color:#f56c6c" type="text" icon="el-icon-close" size="mini" @click="deleteFriendLog(scope.row)")
|
||||
el-button(v-else type="text" icon="el-icon-delete" size="mini" @click="deleteFriendLogPrompt(scope.row)")
|
||||
div(style='margin: 0 0 10px; display: flex; align-items: center')
|
||||
el-select(
|
||||
v-model='friendLogTable.filters[0].value'
|
||||
@change='saveTableFilters'
|
||||
multiple
|
||||
clearable
|
||||
style='flex: 1'
|
||||
:placeholder='$t("view.friend_log.filter_placeholder")')
|
||||
el-option(
|
||||
v-for='type in ["Friend", "Unfriend", "FriendRequest", "CancelFriendRequest", "DisplayName", "TrustLevel"]'
|
||||
:key='type'
|
||||
:label='$t("view.friend_log.filters." + type)'
|
||||
:value='type')
|
||||
el-input(
|
||||
v-model='friendLogTable.filters[1].value'
|
||||
:placeholder='$t("view.friend_log.search_placeholder")'
|
||||
style='flex: none; width: 150px; margin-left: 10px')
|
||||
el-table-column(:label='$t("table.friendLog.date")' prop='created_at' sortable='custom' width='200')
|
||||
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.friendLog.type")' prop='type' width='150')
|
||||
template(#default='scope')
|
||||
span(v-text='$t("view.friend_log.filters." + scope.row.type)')
|
||||
el-table-column(:label='$t("table.friendLog.user")' prop='displayName')
|
||||
template(#default='scope')
|
||||
span(v-if='scope.row.type === "DisplayName"') {{ scope.row.previousDisplayName }} #[i.el-icon-right]
|
||||
span.x-link(
|
||||
v-text='scope.row.displayName || scope.row.userId'
|
||||
@click='showUserDialog(scope.row.userId)'
|
||||
style='padding-right: 10px')
|
||||
template(v-if='scope.row.type === "TrustLevel"')
|
||||
span ({{ scope.row.previousTrustLevel }} #[i.el-icon-right] {{ scope.row.trustLevel }})
|
||||
el-table-column(:label='$t("table.friendLog.action")' width='80' align='right')
|
||||
template(#default='scope')
|
||||
el-button(
|
||||
v-if='shiftHeld'
|
||||
style='color: #f56c6c'
|
||||
type='text'
|
||||
icon='el-icon-close'
|
||||
size='mini'
|
||||
@click='deleteFriendLog(scope.row)')
|
||||
el-button(
|
||||
v-else
|
||||
type='text'
|
||||
icon='el-icon-delete'
|
||||
size='mini'
|
||||
@click='deleteFriendLogPrompt(scope.row)')
|
||||
|
||||
@@ -24,10 +24,11 @@ mixin profileTab()
|
||||
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-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-document-copy" @click="showNoteExportDialog()" style="margin-left:0;margin-right:5px;margin-top:10px") {{ $t('view.profile.profile.export_notes') }}
|
||||
|
||||
div.options-container
|
||||
span.header {{ $t('view.profile.game_info.header') }}
|
||||
.x-friend-list(style="margin-top:10px")
|
||||
|
||||
@@ -413,3 +413,7 @@ button {
|
||||
.x-grey {
|
||||
color: #b3b3b3;
|
||||
}
|
||||
|
||||
.el-color-picker__panel {
|
||||
background-color: #222;
|
||||
}
|
||||
|
||||
@@ -53,8 +53,9 @@ body,
|
||||
font-stretch: 100%;
|
||||
src: url(https://fonts.gstatic.com/s/encodesans/v19/LDIhapOFNxEwR-Bd1O9uYNmnUQomAgE25imKSbHLRsA6WQw.woff2)
|
||||
format('woff2');
|
||||
unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF,
|
||||
U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
|
||||
unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F,
|
||||
U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F,
|
||||
U+A720-A7FF;
|
||||
}
|
||||
|
||||
/* latin */
|
||||
@@ -65,9 +66,9 @@ body,
|
||||
font-stretch: 100%;
|
||||
src: url(https://fonts.gstatic.com/s/encodesans/v19/LDIhapOFNxEwR-Bd1O9uYNmnUQomAgE25imKSbHLSMA6.woff2)
|
||||
format('woff2');
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
|
||||
U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122,
|
||||
U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6,
|
||||
U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC,
|
||||
U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
||||
}
|
||||
|
||||
body,
|
||||
@@ -692,3 +693,6 @@ i[class='el-icon-star-off']:not(.el-menu-item div.el-tooltip i) {
|
||||
border: transparent;
|
||||
background-color: var(--dv_bg-bot);
|
||||
}
|
||||
.el-color-picker__panel {
|
||||
background-color: var(--dv_bg-top);
|
||||
}
|
||||
|
||||
@@ -1468,6 +1468,9 @@ img.x-link.el-popover__reference {
|
||||
[style='flex: 1 1 0%; display: flex; align-items: center; margin-left: 15px;']
|
||||
> :last-child {
|
||||
width: 40px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
}
|
||||
[style='flex: 0 0 auto; margin-left: 10px;'] > .el-dropdown {
|
||||
margin: 0 !important;
|
||||
|
||||
Reference in New Issue
Block a user