mirror of
https://github.com/MrUnknownDE/VRCX.git
synced 2026-05-02 21:16:07 +02:00
Fixes, add group posts
This commit is contained in:
Vendored
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"i18n-ally.localesPaths": ["html/src/localization/strings"],
|
"i18n-ally.localesPaths": ["html/src/localization"],
|
||||||
"i18n-ally.keystyle": "nested",
|
"i18n-ally.keystyle": "nested",
|
||||||
"i18n-ally.sourceLanguage": "en",
|
"i18n-ally.sourceLanguage": "en",
|
||||||
"editor.defaultFormatter": "esbenp.prettier-vscode",
|
"editor.defaultFormatter": "esbenp.prettier-vscode",
|
||||||
|
|||||||
+119
-38
@@ -1241,7 +1241,6 @@ speechSynthesis.getVoices();
|
|||||||
template:
|
template:
|
||||||
'<span @click="showUserDialog" class="x-link">{{ username }}</span>',
|
'<span @click="showUserDialog" class="x-link">{{ username }}</span>',
|
||||||
props: {
|
props: {
|
||||||
username: String,
|
|
||||||
userid: String,
|
userid: String,
|
||||||
location: String,
|
location: String,
|
||||||
key: Number
|
key: Number
|
||||||
@@ -13792,7 +13791,7 @@ speechSynthesis.getVoices();
|
|||||||
filter.value.some((v) => v === row.type)
|
filter.value.some((v) => v === row.type)
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
prop: 'senderUsername',
|
prop: ['senderUsername', 'message'],
|
||||||
value: ''
|
value: ''
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
@@ -26523,14 +26522,14 @@ speechSynthesis.getVoices();
|
|||||||
);
|
);
|
||||||
ref.$msgBox.message = `You are in position ${ref.position} of ${ref.queueSize} in the queue for ${displayLocation} `;
|
ref.$msgBox.message = `You are in position ${ref.position} of ${ref.queueSize} in the queue for ${displayLocation} `;
|
||||||
API.queuedInstances.set(instanceId, ref);
|
API.queuedInstances.set(instanceId, ref);
|
||||||
workerTimers.setTimeout(this.instanceQueueTimeout, 900000); // 15mins
|
workerTimers.setTimeout(this.instanceQueueTimeout, 3600000);
|
||||||
};
|
};
|
||||||
|
|
||||||
$app.methods.instanceQueueTimeout = function () {
|
$app.methods.instanceQueueTimeout = function () {
|
||||||
// remove instance from queue after 15mins of inactivity
|
// remove instance from queue after 1hour of inactivity
|
||||||
API.queuedInstances.forEach((ref) => {
|
API.queuedInstances.forEach((ref) => {
|
||||||
// 14mins
|
// 59mins
|
||||||
if (Date.now() - ref.updatedAt > 840000) {
|
if (Date.now() - ref.updatedAt > 3540000) {
|
||||||
ref.$msgBox.close();
|
ref.$msgBox.close();
|
||||||
API.queuedInstances.delete(ref.location);
|
API.queuedInstances.delete(ref.location);
|
||||||
}
|
}
|
||||||
@@ -26868,19 +26867,66 @@ speechSynthesis.getVoices();
|
|||||||
groupId: string
|
groupId: string
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
API.getGroupAnnouncement = function (params) {
|
// API.getGroupAnnouncement = function (params) {
|
||||||
return this.call(`groups/${params.groupId}/announcement`, {
|
// return this.call(`groups/${params.groupId}/announcement`, {
|
||||||
method: 'GET'
|
// method: 'GET'
|
||||||
|
// }).then((json) => {
|
||||||
|
// var args = {
|
||||||
|
// json,
|
||||||
|
// params
|
||||||
|
// };
|
||||||
|
// this.$emit('GROUP:ANNOUNCEMENT', args);
|
||||||
|
// return args;
|
||||||
|
// });
|
||||||
|
// };
|
||||||
|
|
||||||
|
/*
|
||||||
|
params: {
|
||||||
|
groupId: string,
|
||||||
|
n: number,
|
||||||
|
offset: number
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
API.getGroupPosts = function (params) {
|
||||||
|
return this.call(`groups/${params.groupId}/posts`, {
|
||||||
|
method: 'GET',
|
||||||
|
params
|
||||||
}).then((json) => {
|
}).then((json) => {
|
||||||
var args = {
|
var args = {
|
||||||
json,
|
json,
|
||||||
params
|
params
|
||||||
};
|
};
|
||||||
this.$emit('GROUP:ANNOUNCEMENT', args);
|
this.$emit('GROUP:POSTS', args);
|
||||||
return args;
|
return args;
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
params: {
|
||||||
|
groupId: string
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
API.getAllGroupPosts = async function (params) {
|
||||||
|
var posts = [];
|
||||||
|
var offset = 0;
|
||||||
|
var n = 100;
|
||||||
|
var total = 0;
|
||||||
|
do {
|
||||||
|
var args = await this.getGroupPosts({
|
||||||
|
groupId: params.groupId,
|
||||||
|
n,
|
||||||
|
offset
|
||||||
|
});
|
||||||
|
posts = posts.concat(args.json.posts);
|
||||||
|
total = args.json.total;
|
||||||
|
offset += n;
|
||||||
|
} while (offset < total);
|
||||||
|
return {
|
||||||
|
posts,
|
||||||
|
params
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
params: {
|
params: {
|
||||||
groupId: string,
|
groupId: string,
|
||||||
@@ -27263,14 +27309,16 @@ speechSynthesis.getVoices();
|
|||||||
id: '',
|
id: '',
|
||||||
inGroup: false,
|
inGroup: false,
|
||||||
ownerDisplayName: '',
|
ownerDisplayName: '',
|
||||||
announcementDisplayName: '',
|
|
||||||
ref: {},
|
ref: {},
|
||||||
announcement: {},
|
announcement: {},
|
||||||
|
posts: [],
|
||||||
|
postsFiltered: [],
|
||||||
members: [],
|
members: [],
|
||||||
instances: [],
|
instances: [],
|
||||||
memberRoles: [],
|
memberRoles: [],
|
||||||
memberFilter: $app.data.groupDialogFilterOptions.everyone,
|
memberFilter: $app.data.groupDialogFilterOptions.everyone,
|
||||||
memberSortOrder: $app.data.groupDialogSortingOptions.joinedAtDesc,
|
memberSortOrder: $app.data.groupDialogSortingOptions.joinedAtDesc,
|
||||||
|
postsSearch: '',
|
||||||
galleries: {}
|
galleries: {}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -27285,9 +27333,10 @@ speechSynthesis.getVoices();
|
|||||||
D.id = groupId;
|
D.id = groupId;
|
||||||
D.inGroup = false;
|
D.inGroup = false;
|
||||||
D.ownerDisplayName = '';
|
D.ownerDisplayName = '';
|
||||||
D.announcementDisplayName = '';
|
|
||||||
D.treeData = [];
|
D.treeData = [];
|
||||||
D.announcement = {};
|
D.announcement = {};
|
||||||
|
D.posts = [];
|
||||||
|
D.postsFiltered = [];
|
||||||
D.instances = [];
|
D.instances = [];
|
||||||
D.memberRoles = [];
|
D.memberRoles = [];
|
||||||
if (this.groupDialogLastGallery !== groupId) {
|
if (this.groupDialogLastGallery !== groupId) {
|
||||||
@@ -27348,30 +27397,23 @@ speechSynthesis.getVoices();
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (D.inGroup) {
|
if (D.inGroup) {
|
||||||
API.getGroupAnnouncement({
|
API.getAllGroupPosts({
|
||||||
groupId
|
groupId
|
||||||
}).then((args2) => {
|
}).then((args2) => {
|
||||||
if (groupId === args2.json.groupId) {
|
if (groupId === args2.params.groupId) {
|
||||||
D.announcement = args2.json;
|
for (var post of args2.posts) {
|
||||||
if (D.announcement.id) {
|
post.title = this.replaceBioSymbols(
|
||||||
D.announcement.title =
|
post.title
|
||||||
this.replaceBioSymbols(
|
);
|
||||||
D.announcement.title
|
post.text = this.replaceBioSymbols(
|
||||||
);
|
post.text
|
||||||
D.announcement.text =
|
);
|
||||||
this.replaceBioSymbols(
|
|
||||||
D.announcement.text
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
if (D.announcement && D.announcement.authorId) {
|
if (args2.posts.length > 0) {
|
||||||
API.getCachedUser({
|
D.announcement = args2.posts[0];
|
||||||
userId: D.announcement.authorId
|
|
||||||
}).then((args3) => {
|
|
||||||
D.announcementDisplayName =
|
|
||||||
args3.ref.displayName;
|
|
||||||
return args3;
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
D.posts = args2.posts;
|
||||||
|
this.updateGroupPostSearch();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
API.getGroupInstances({
|
API.getGroupInstances({
|
||||||
@@ -27385,19 +27427,34 @@ speechSynthesis.getVoices();
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
if (this.$refs.groupDialogTabs.currentName === '0') {
|
if (this.$refs.groupDialogTabs.currentName === '0') {
|
||||||
this.groupDialogLastActiveTab = 'Info';
|
this.groupDialogLastActiveTab = $t(
|
||||||
|
'dialog.group.info.header'
|
||||||
|
);
|
||||||
} else if (this.$refs.groupDialogTabs.currentName === '1') {
|
} else if (this.$refs.groupDialogTabs.currentName === '1') {
|
||||||
this.groupDialogLastActiveTab = 'Members';
|
this.groupDialogLastActiveTab = $t(
|
||||||
|
'dialog.group.posts.header'
|
||||||
|
);
|
||||||
|
} else if (this.$refs.groupDialogTabs.currentName === '2') {
|
||||||
|
this.groupDialogLastActiveTab = $t(
|
||||||
|
'dialog.group.members.header'
|
||||||
|
);
|
||||||
if (this.groupDialogLastMembers !== groupId) {
|
if (this.groupDialogLastMembers !== groupId) {
|
||||||
this.groupDialogLastMembers = groupId;
|
this.groupDialogLastMembers = groupId;
|
||||||
this.getGroupDialogGroupMembers();
|
this.getGroupDialogGroupMembers();
|
||||||
}
|
}
|
||||||
} else if (this.$refs.groupDialogTabs.currentName === '2') {
|
} else if (this.$refs.groupDialogTabs.currentName === '3') {
|
||||||
this.groupDialogLastActiveTab = 'Gallery';
|
this.groupDialogLastActiveTab = $t(
|
||||||
|
'dialog.group.gallery.header'
|
||||||
|
);
|
||||||
if (this.groupDialogLastGallery !== groupId) {
|
if (this.groupDialogLastGallery !== groupId) {
|
||||||
this.groupDialogLastGallery = groupId;
|
this.groupDialogLastGallery = groupId;
|
||||||
this.getGroupGalleries();
|
this.getGroupGalleries();
|
||||||
}
|
}
|
||||||
|
} else if (this.$refs.groupDialogTabs.currentName === '4') {
|
||||||
|
this.groupDialogLastActiveTab = $t(
|
||||||
|
'dialog.group.json.header'
|
||||||
|
);
|
||||||
|
this.refreshGroupDialogTreeData();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return args1;
|
return args1;
|
||||||
@@ -27446,7 +27503,11 @@ speechSynthesis.getVoices();
|
|||||||
if (this.groupDialogLastActiveTab === obj.label) {
|
if (this.groupDialogLastActiveTab === obj.label) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (obj.label === $t('dialog.group.members.header')) {
|
if (obj.label === $t('dialog.group.info.header')) {
|
||||||
|
//
|
||||||
|
} else if (obj.label === $t('dialog.group.posts.header')) {
|
||||||
|
//
|
||||||
|
} else if (obj.label === $t('dialog.group.members.header')) {
|
||||||
if (this.groupDialogLastMembers !== groupId) {
|
if (this.groupDialogLastMembers !== groupId) {
|
||||||
this.groupDialogLastMembers = groupId;
|
this.groupDialogLastMembers = groupId;
|
||||||
this.getGroupDialogGroupMembers();
|
this.getGroupDialogGroupMembers();
|
||||||
@@ -27466,7 +27527,7 @@ speechSynthesis.getVoices();
|
|||||||
var D = this.groupDialog;
|
var D = this.groupDialog;
|
||||||
D.treeData = buildTreeData({
|
D.treeData = buildTreeData({
|
||||||
group: D.ref,
|
group: D.ref,
|
||||||
announcement: D.announcement,
|
posts: D.posts,
|
||||||
instances: D.instances,
|
instances: D.instances,
|
||||||
members: D.members,
|
members: D.members,
|
||||||
galleries: D.galleries
|
galleries: D.galleries
|
||||||
@@ -27588,6 +27649,26 @@ speechSynthesis.getVoices();
|
|||||||
API.currentUserGroups.delete(groupId);
|
API.currentUserGroups.delete(groupId);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// group posts
|
||||||
|
|
||||||
|
$app.methods.updateGroupPostSearch = function () {
|
||||||
|
var D = this.groupDialog;
|
||||||
|
var search = D.postsSearch.toLowerCase();
|
||||||
|
D.postsFiltered = D.posts.filter((post) => {
|
||||||
|
if (search === '') {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (post.title.toLowerCase().includes(search)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (post.text.toLowerCase().includes(search)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
// group members
|
// group members
|
||||||
|
|
||||||
$app.data.isGroupMembersLoading = false;
|
$app.data.isGroupMembersLoading = false;
|
||||||
|
|||||||
+65
-7
@@ -481,7 +481,14 @@ html
|
|||||||
img(v-lazy="group.iconUrl")
|
img(v-lazy="group.iconUrl")
|
||||||
.detail
|
.detail
|
||||||
span.name(v-text="group.name")
|
span.name(v-text="group.name")
|
||||||
span.extra ({{ group.memberCount }})
|
span.extra
|
||||||
|
el-tooltip(v-if="group.isRepresenting" placement="top" :content="$t('dialog.group.members.representing')")
|
||||||
|
i.el-icon-collection-tag(style="margin-right:5px")
|
||||||
|
el-tooltip(v-if="group.memberVisibility !== 'visible'" placement="top")
|
||||||
|
template(#content)
|
||||||
|
span {{ $t('dialog.group.members.visibility') }} {{ group.memberVisibility }}
|
||||||
|
i.el-icon-view(style="margin-right:5px")
|
||||||
|
span ({{ group.memberCount }})
|
||||||
template(v-if="userGroups.mutualGroups.length > 0")
|
template(v-if="userGroups.mutualGroups.length > 0")
|
||||||
span(style="font-weight:bold;font-size:16px") {{ $t('dialog.user.groups.mutual_groups') }}
|
span(style="font-weight:bold;font-size:16px") {{ $t('dialog.user.groups.mutual_groups') }}
|
||||||
span(style="color:#909399;font-size:12px;margin-left:5px") {{ userGroups.mutualGroups.length }}
|
span(style="color:#909399;font-size:12px;margin-left:5px") {{ userGroups.mutualGroups.length }}
|
||||||
@@ -491,7 +498,14 @@ html
|
|||||||
img(v-lazy="group.iconUrl")
|
img(v-lazy="group.iconUrl")
|
||||||
.detail
|
.detail
|
||||||
span.name(v-text="group.name")
|
span.name(v-text="group.name")
|
||||||
span.extra ({{ group.memberCount }})
|
span.extra
|
||||||
|
el-tooltip(v-if="group.isRepresenting" placement="top" :content="$t('dialog.group.members.representing')")
|
||||||
|
i.el-icon-collection-tag(style="margin-right:5px")
|
||||||
|
el-tooltip(v-if="group.memberVisibility !== 'visible'" placement="top")
|
||||||
|
template(#content)
|
||||||
|
span {{ $t('dialog.group.members.visibility') }} {{ group.memberVisibility }}
|
||||||
|
i.el-icon-view(style="margin-right:5px")
|
||||||
|
span ({{ group.memberCount }})
|
||||||
template(v-if="userGroups.remainingGroups.length > 0")
|
template(v-if="userGroups.remainingGroups.length > 0")
|
||||||
span(style="font-weight:bold;font-size:16px") {{ $t('dialog.user.groups.groups') }}
|
span(style="font-weight:bold;font-size:16px") {{ $t('dialog.user.groups.groups') }}
|
||||||
span(style="color:#909399;font-size:12px;margin-left:5px") {{ userGroups.remainingGroups.length }}
|
span(style="color:#909399;font-size:12px;margin-left:5px") {{ userGroups.remainingGroups.length }}
|
||||||
@@ -501,7 +515,14 @@ html
|
|||||||
img(v-lazy="group.iconUrl")
|
img(v-lazy="group.iconUrl")
|
||||||
.detail
|
.detail
|
||||||
span.name(v-text="group.name")
|
span.name(v-text="group.name")
|
||||||
span.extra ({{ group.memberCount }})
|
span.extra
|
||||||
|
el-tooltip(v-if="group.isRepresenting" placement="top" :content="$t('dialog.group.members.representing')")
|
||||||
|
i.el-icon-collection-tag(style="margin-right:5px")
|
||||||
|
el-tooltip(v-if="group.memberVisibility !== 'visible'" placement="top")
|
||||||
|
template(#content)
|
||||||
|
span {{ $t('dialog.group.members.visibility') }} {{ group.memberVisibility }}
|
||||||
|
i.el-icon-view(style="margin-right:5px")
|
||||||
|
span ({{ group.memberCount }})
|
||||||
el-tab-pane(:label="$t('dialog.user.worlds.header')")
|
el-tab-pane(:label="$t('dialog.user.worlds.header')")
|
||||||
el-button(type="default" :loading="userDialog.isWorldsLoading" @click="refreshUserDialogWorlds()" size="mini" icon="el-icon-refresh" circle)
|
el-button(type="default" :loading="userDialog.isWorldsLoading" @click="refreshUserDialogWorlds()" size="mini" icon="el-icon-refresh" circle)
|
||||||
span(style="margin-left:5px") {{ $t('dialog.user.worlds.total_count', { count: userDialog.worlds.length }) }}
|
span(style="margin-left:5px") {{ $t('dialog.user.worlds.total_count', { count: userDialog.worlds.length }) }}
|
||||||
@@ -1000,12 +1021,20 @@ html
|
|||||||
pre.extra(style="display:inline-block;vertical-align:top;font-family:inherit;font-size:12px;white-space:pre-wrap;margin:0") {{ groupDialog.announcement.text || '-' }}
|
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
|
br
|
||||||
.extra(v-if="groupDialog.announcement.id" style="float:right;margin-left:5px")
|
.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")
|
el-tooltip(placement="bottom")
|
||||||
template(#content)
|
template(#content)
|
||||||
span {{ groupDialog.announcement.updatedAt | formatDate('long') }}
|
span {{ groupDialog.announcement.updatedAt | formatDate('long') }}
|
||||||
span(@click="showUserDialog(groupDialog.announcement.authorId)" style="cursor:pointer")
|
timer(:epoch="Date.parse(groupDialog.announcement.updatedAt)")
|
||||||
span(v-text="groupDialog.announcementDisplayName" style="margin-right:5px")
|
|
||||||
timer(:epoch="Date.parse(groupDialog.announcement.updatedAt)")
|
|
||||||
.x-friend-item(style="width:100%;cursor:default")
|
.x-friend-item(style="width:100%;cursor:default")
|
||||||
.detail
|
.detail
|
||||||
span.name {{ $t('dialog.group.info.rules') }}
|
span.name {{ $t('dialog.group.info.rules') }}
|
||||||
@@ -1065,6 +1094,35 @@ html
|
|||||||
span {{ permission }}
|
span {{ permission }}
|
||||||
br
|
br
|
||||||
span {{ role.name }}{{ rIndex < groupDialog.memberRoles.length - 1 ? ', ' : '' }}
|
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")
|
||||||
|
.x-friend-list
|
||||||
|
.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 || '-' }}
|
||||||
|
br
|
||||||
|
.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(#content)
|
||||||
|
span {{ post.updatedAt | formatDate('long') }}
|
||||||
|
timer(:epoch="Date.parse(post.updatedAt)")
|
||||||
el-tab-pane(:label="$t('dialog.group.members.header')")
|
el-tab-pane(:label="$t('dialog.group.members.header')")
|
||||||
template(v-if="groupDialog.visible")
|
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-if="hasGroupPermission(groupDialog.ref, 'group-members-viewall')" style="font-weight:bold;font-size:16px") {{ $t('dialog.group.members.all_members') }}
|
||||||
@@ -1111,7 +1169,7 @@ html
|
|||||||
span.name {{ $t('dialog.group.members.load_more') }}
|
span.name {{ $t('dialog.group.members.load_more') }}
|
||||||
el-tab-pane(:label="$t('dialog.group.gallery.header')")
|
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-button(type="default" size="mini" icon="el-icon-refresh" @click="getGroupGalleries" :loading="isGroupGalleryLoading" circle)
|
||||||
el-tabs(type="card" v-loading="isGroupGalleryLoading" ref="groupDialogGallery")
|
el-tabs(type="card" v-loading="isGroupGalleryLoading" ref="groupDialogGallery" style="margin-top:10px")
|
||||||
template(v-for="(gallery, index) in groupDialog.ref.galleries")
|
template(v-for="(gallery, index) in groupDialog.ref.galleries")
|
||||||
el-tab-pane
|
el-tab-pane
|
||||||
span(slot="label")
|
span(slot="label")
|
||||||
|
|||||||
@@ -824,6 +824,13 @@
|
|||||||
"role_created_at": "Created At:",
|
"role_created_at": "Created At:",
|
||||||
"role_permissions": "Permissions:"
|
"role_permissions": "Permissions:"
|
||||||
},
|
},
|
||||||
|
"posts": {
|
||||||
|
"header": "Posts",
|
||||||
|
"visibility": "Visibility:",
|
||||||
|
"edited_by": "Edited by:",
|
||||||
|
"search_placeholder": "Search",
|
||||||
|
"posts_count": "Posts: "
|
||||||
|
},
|
||||||
"members": {
|
"members": {
|
||||||
"header": "Members",
|
"header": "Members",
|
||||||
"all_members": "All Members",
|
"all_members": "All Members",
|
||||||
|
|||||||
Reference in New Issue
Block a user