mirror of
https://github.com/MrUnknownDE/VRCX.git
synced 2026-05-02 21:16:07 +02:00
User dialog world sorting
This commit is contained in:
+57
-21
@@ -2155,7 +2155,7 @@ speechSynthesis.getVoices();
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
var array = Array.from(map.values());
|
var array = Array.from(map.values());
|
||||||
$app.sortUserDialogWorlds(array);
|
$app.userDialog.worlds = array;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -9022,6 +9022,7 @@ speechSynthesis.getVoices();
|
|||||||
$app.feedSessionTable = [];
|
$app.feedSessionTable = [];
|
||||||
$app.friendLogInitStatus = false;
|
$app.friendLogInitStatus = false;
|
||||||
await database.initUserTables(args.json.id);
|
await database.initUserTables(args.json.id);
|
||||||
|
$app.$refs.menu.activeIndex = 'feed';
|
||||||
// eslint-disable-next-line require-atomic-updates
|
// eslint-disable-next-line require-atomic-updates
|
||||||
$app.gameLogTable.data = await database.lookupGameLogDatabase(
|
$app.gameLogTable.data = await database.lookupGameLogDatabase(
|
||||||
$app.gameLogTable.search,
|
$app.gameLogTable.search,
|
||||||
@@ -12303,6 +12304,7 @@ speechSynthesis.getVoices();
|
|||||||
this.lastLocation$ = L;
|
this.lastLocation$ = L;
|
||||||
}
|
}
|
||||||
var hidePrivate = false;
|
var hidePrivate = false;
|
||||||
|
// (L.accessType === 'group' && !L.groupAccessType) || L.groupAccessType === 'member')
|
||||||
if (
|
if (
|
||||||
this.discordHideInvite &&
|
this.discordHideInvite &&
|
||||||
(L.accessType === 'invite' || L.accessType === 'invite+')
|
(L.accessType === 'invite' || L.accessType === 'invite+')
|
||||||
@@ -15590,6 +15592,36 @@ speechSynthesis.getVoices();
|
|||||||
// #endregion
|
// #endregion
|
||||||
// #region | App: User Dialog
|
// #region | App: User Dialog
|
||||||
|
|
||||||
|
$app.data.userDialogWorldSortingOptions = {
|
||||||
|
updated: {
|
||||||
|
name: $t('dialog.user.worlds.sorting.updated'),
|
||||||
|
value: 'updated'
|
||||||
|
},
|
||||||
|
created: {
|
||||||
|
name: $t('dialog.user.worlds.sorting.created'),
|
||||||
|
value: 'created'
|
||||||
|
},
|
||||||
|
favorites: {
|
||||||
|
name: $t('dialog.user.worlds.sorting.favorites'),
|
||||||
|
value: 'favorites'
|
||||||
|
},
|
||||||
|
popularity: {
|
||||||
|
name: $t('dialog.user.worlds.sorting.popularity'),
|
||||||
|
value: 'popularity'
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
$app.data.userDialogWorldOrderOptions = {
|
||||||
|
descending: {
|
||||||
|
name: $t('dialog.user.worlds.order.descending'),
|
||||||
|
value: 'descending'
|
||||||
|
},
|
||||||
|
ascending: {
|
||||||
|
name: $t('dialog.user.worlds.order.ascending'),
|
||||||
|
value: 'ascending'
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
$app.data.userDialog = {
|
$app.data.userDialog = {
|
||||||
visible: false,
|
visible: false,
|
||||||
loading: false,
|
loading: false,
|
||||||
@@ -15620,7 +15652,8 @@ speechSynthesis.getVoices();
|
|||||||
isAvatarsLoading: false,
|
isAvatarsLoading: false,
|
||||||
isGroupsLoading: false,
|
isGroupsLoading: false,
|
||||||
|
|
||||||
worldSorting: 'update',
|
worldSorting: $app.data.userDialogWorldSortingOptions.updated,
|
||||||
|
worldOrder: $app.data.userDialogWorldOrderOptions.descending,
|
||||||
avatarSorting: 'update',
|
avatarSorting: 'update',
|
||||||
avatarReleaseStatus: 'all',
|
avatarReleaseStatus: 'all',
|
||||||
|
|
||||||
@@ -15665,6 +15698,24 @@ speechSynthesis.getVoices();
|
|||||||
this.saveMemo(D.id, D.memo);
|
this.saveMemo(D.id, D.memo);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
$app.methods.setUserDialogWorldSorting = async function (sortOrder) {
|
||||||
|
var D = this.userDialog;
|
||||||
|
if (D.worldSorting === sortOrder) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
D.worldSorting = sortOrder;
|
||||||
|
await this.refreshUserDialogWorlds();
|
||||||
|
};
|
||||||
|
|
||||||
|
$app.methods.setUserDialogWorldOrder = async function (order) {
|
||||||
|
var D = this.userDialog;
|
||||||
|
if (D.worldOrder === order) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
D.worldOrder = order;
|
||||||
|
await this.refreshUserDialogWorlds();
|
||||||
|
};
|
||||||
|
|
||||||
$app.methods.getFaviconUrl = function (resource) {
|
$app.methods.getFaviconUrl = function (resource) {
|
||||||
try {
|
try {
|
||||||
var url = new URL(resource);
|
var url = new URL(resource);
|
||||||
@@ -16553,17 +16604,7 @@ speechSynthesis.getVoices();
|
|||||||
worlds.push(ref);
|
worlds.push(ref);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
this.sortUserDialogWorlds(worlds);
|
$app.userDialog.worlds = worlds;
|
||||||
};
|
|
||||||
|
|
||||||
$app.methods.sortUserDialogWorlds = function (array) {
|
|
||||||
var D = this.userDialog;
|
|
||||||
if (D.worldSorting === 'update') {
|
|
||||||
array.sort(compareByUpdatedAt);
|
|
||||||
} else {
|
|
||||||
array.sort(compareByName);
|
|
||||||
}
|
|
||||||
D.worlds = array;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
$app.methods.setUserDialogAvatars = function (userId) {
|
$app.methods.setUserDialogAvatars = function (userId) {
|
||||||
@@ -16728,8 +16769,8 @@ speechSynthesis.getVoices();
|
|||||||
var params = {
|
var params = {
|
||||||
n: 50,
|
n: 50,
|
||||||
offset: 0,
|
offset: 0,
|
||||||
sort: 'updated',
|
sort: this.userDialog.worldSorting.value,
|
||||||
order: 'descending',
|
order: this.userDialog.worldOrder.value,
|
||||||
// user: 'friends',
|
// user: 'friends',
|
||||||
userId: D.id,
|
userId: D.id,
|
||||||
releaseStatus: 'public'
|
releaseStatus: 'public'
|
||||||
@@ -16759,7 +16800,7 @@ speechSynthesis.getVoices();
|
|||||||
done: () => {
|
done: () => {
|
||||||
if (D.id === params.userId) {
|
if (D.id === params.userId) {
|
||||||
var array = Array.from(map.values());
|
var array = Array.from(map.values());
|
||||||
this.sortUserDialogWorlds(array);
|
$app.userDialog.worlds = array;
|
||||||
}
|
}
|
||||||
D.isWorldsLoading = false;
|
D.isWorldsLoading = false;
|
||||||
}
|
}
|
||||||
@@ -17045,11 +17086,6 @@ speechSynthesis.getVoices();
|
|||||||
D.treeData = buildTreeData(D.ref);
|
D.treeData = buildTreeData(D.ref);
|
||||||
};
|
};
|
||||||
|
|
||||||
$app.methods.changeUserDialogWorldSorting = function () {
|
|
||||||
var D = this.userDialog;
|
|
||||||
this.sortUserDialogWorlds(D.worlds);
|
|
||||||
};
|
|
||||||
|
|
||||||
$app.methods.changeUserDialogAvatarSorting = function () {
|
$app.methods.changeUserDialogAvatarSorting = function () {
|
||||||
var D = this.userDialog;
|
var D = this.userDialog;
|
||||||
this.sortUserDialogAvatars(D.avatars);
|
this.sortUserDialogAvatars(D.avatars);
|
||||||
|
|||||||
+17
-6
@@ -43,6 +43,7 @@ html
|
|||||||
+menuitem('settings', "{{ $t('nav_tooltip.settings') }}", 'el-icon-s-tools')
|
+menuitem('settings', "{{ $t('nav_tooltip.settings') }}", 'el-icon-s-tools')
|
||||||
|
|
||||||
//- ### Tabs ##
|
//- ### Tabs ##
|
||||||
|
template(v-if="API.isLoggedIn")
|
||||||
|
|
||||||
//- feed
|
//- feed
|
||||||
include ./mixins/tabs/feed.pug
|
include ./mixins/tabs/feed.pug
|
||||||
@@ -319,7 +320,7 @@ html
|
|||||||
el-tooltip(placement="top" :content="$t('dialog.user.info.launch_invite_tooltip')" :disabled="hideTooltips")
|
el-tooltip(placement="top" :content="$t('dialog.user.info.launch_invite_tooltip')" :disabled="hideTooltips")
|
||||||
launch(:location="userDialog.$location.tag")
|
launch(:location="userDialog.$location.tag")
|
||||||
el-tooltip(placement="top" :content="$t('dialog.user.info.self_invite_tooltip')" :disabled="hideTooltips")
|
el-tooltip(placement="top" :content="$t('dialog.user.info.self_invite_tooltip')" :disabled="hideTooltips")
|
||||||
invite-yourself(:location="userDialog.$location.tag" :shortname="userDialog.$location.shortName" style="margin-left:5px" :disabled="typeof userDialog.instance.ref?.canRequestInvite !== 'undefined' && !userDialog.instance.ref.canRequestInvite")
|
invite-yourself(:location="userDialog.$location.tag" :shortname="userDialog.$location.shortName" style="margin-left:5px")
|
||||||
el-tooltip(placement="top" :content="$t('dialog.user.info.refresh_instance_info')" :disabled="hideTooltips")
|
el-tooltip(placement="top" :content="$t('dialog.user.info.refresh_instance_info')" :disabled="hideTooltips")
|
||||||
el-button(@click="refreshInstancePlayerCount(userDialog.$location.tag)" size="mini" icon="el-icon-refresh" style="margin-left:5px" circle)
|
el-button(@click="refreshInstancePlayerCount(userDialog.$location.tag)" size="mini" icon="el-icon-refresh" style="margin-left:5px" circle)
|
||||||
instance-info(:location="userDialog.$location.tag" :instance="userDialog.instance.ref" :friendcount="userDialog.instance.friendCount" :updateelement="updateInstanceInfo")
|
instance-info(:location="userDialog.$location.tag" :instance="userDialog.instance.ref" :friendcount="userDialog.instance.friendCount" :updateelement="updateInstanceInfo")
|
||||||
@@ -494,9 +495,19 @@ html
|
|||||||
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 }) }}
|
||||||
el-radio-group(v-model="userDialog.worldSorting" size="mini" style="margin-left:30px" @change="changeUserDialogWorldSorting")
|
div(style="float:right")
|
||||||
el-radio(label="name") {{ $t('dialog.user.worlds.sort_by_name') }}
|
span(style="margin-right:5px") {{ $t('dialog.user.worlds.sort_by') }}
|
||||||
el-radio(label="update") {{ $t('dialog.user.worlds.sort_by_update') }}
|
el-dropdown(@click.native.stop trigger="click" size="small" style="margin-right:5px" :disabled="userDialog.isWorldsLoading")
|
||||||
|
el-button(size="mini")
|
||||||
|
span {{ userDialog.worldSorting.name }} #[i.el-icon-arrow-down.el-icon--right]
|
||||||
|
el-dropdown-menu(#default="dropdown")
|
||||||
|
el-dropdown-item(v-for="(item) in userDialogWorldSortingOptions" v-text="item.name" @click.native="setUserDialogWorldSorting(item)")
|
||||||
|
span(style="margin-right:5px") {{ $t('dialog.user.worlds.order_by') }}
|
||||||
|
el-dropdown(@click.native.stop trigger="click" size="small" style="margin-right:5px" :disabled="userDialog.isWorldsLoading")
|
||||||
|
el-button(size="mini")
|
||||||
|
span {{ userDialog.worldOrder.name }} #[i.el-icon-arrow-down.el-icon--right]
|
||||||
|
el-dropdown-menu(#default="dropdown")
|
||||||
|
el-dropdown-item(v-for="(item) in userDialogWorldOrderOptions" v-text="item.name" @click.native="setUserDialogWorldOrder(item)")
|
||||||
.x-friend-list(v-loading="userDialog.isWorldsLoading" style="margin-top:10px;min-height:60px")
|
.x-friend-list(v-loading="userDialog.isWorldsLoading" style="margin-top:10px;min-height:60px")
|
||||||
.x-friend-item(v-for="world in userDialog.worlds" :key="world.id" @click="showWorldDialog(world.id)" class="x-friend-item-border")
|
.x-friend-item(v-for="world in userDialog.worlds" :key="world.id" @click="showWorldDialog(world.id)" class="x-friend-item-border")
|
||||||
.avatar
|
.avatar
|
||||||
@@ -615,7 +626,7 @@ html
|
|||||||
div(style="margin:5px 0")
|
div(style="margin:5px 0")
|
||||||
location-world(:locationobject="room.$location" :currentuserid="API.currentUser.id" :worlddialogshortname="worldDialog.$location.shortName")
|
location-world(:locationobject="room.$location" :currentuserid="API.currentUser.id" :worlddialogshortname="worldDialog.$location.shortName")
|
||||||
el-tooltip(placement="top" :content="$t('dialog.world.instances.self_invite_tooltip')" :disabled="hideTooltips")
|
el-tooltip(placement="top" :content="$t('dialog.world.instances.self_invite_tooltip')" :disabled="hideTooltips")
|
||||||
invite-yourself(:location="room.$location.tag" :shortname="room.$location.shortName" style="margin-left:5px" :disabled="typeof room.ref?.canRequestInvite !== 'undefined' && !room.ref.canRequestInvite")
|
invite-yourself(:location="room.$location.tag" :shortname="room.$location.shortName" style="margin-left:5px")
|
||||||
el-tooltip(placement="top" :content="$t('dialog.world.instances.refresh_instance_info')" :disabled="hideTooltips")
|
el-tooltip(placement="top" :content="$t('dialog.world.instances.refresh_instance_info')" :disabled="hideTooltips")
|
||||||
el-button(@click="refreshInstancePlayerCount(room.tag)" size="mini" icon="el-icon-refresh" style="margin-left:5px" circle)
|
el-button(@click="refreshInstancePlayerCount(room.tag)" size="mini" icon="el-icon-refresh" style="margin-left:5px" circle)
|
||||||
instance-info(:location="room.tag" :instance="room.ref" :friendcount="room.friendCount" :updateelement="updateInstanceInfo")
|
instance-info(:location="room.tag" :instance="room.ref" :friendcount="room.friendCount" :updateelement="updateInstanceInfo")
|
||||||
@@ -916,7 +927,7 @@ html
|
|||||||
div(style="margin:5px 0")
|
div(style="margin:5px 0")
|
||||||
location(:location="room.tag")
|
location(:location="room.tag")
|
||||||
el-tooltip(placement="top" content="Invite yourself" :disabled="hideTooltips")
|
el-tooltip(placement="top" content="Invite yourself" :disabled="hideTooltips")
|
||||||
invite-yourself(:location="room.tag" style="margin-left:5px" :disabled="typeof room.ref?.canRequestInvite !== 'undefined' && !room.ref.canRequestInvite")
|
invite-yourself(:location="room.tag" style="margin-left:5px")
|
||||||
el-tooltip(placement="top" content="Refresh player count" :disabled="hideTooltips")
|
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)
|
el-button(@click="refreshInstancePlayerCount(room.tag)" size="mini" icon="el-icon-refresh" style="margin-left:5px" circle)
|
||||||
instance-info(:location="room.tag" :instance="room.ref" :friendcount="room.friendCount" :updateelement="updateInstanceInfo")
|
instance-info(:location="room.tag" :instance="room.ref" :friendcount="room.friendCount" :updateelement="updateInstanceInfo")
|
||||||
|
|||||||
@@ -600,8 +600,18 @@
|
|||||||
"worlds": {
|
"worlds": {
|
||||||
"header": "Worlds",
|
"header": "Worlds",
|
||||||
"total_count": "Total {count}",
|
"total_count": "Total {count}",
|
||||||
"sort_by_name": "Sort by name",
|
"sort_by": "Sort by:",
|
||||||
"sort_by_update": "Sort by update"
|
"order_by": "Order by:",
|
||||||
|
"sorting": {
|
||||||
|
"updated": "Updated",
|
||||||
|
"created": "Created",
|
||||||
|
"favorites": "Favorites",
|
||||||
|
"popularity": "Popularity"
|
||||||
|
},
|
||||||
|
"order": {
|
||||||
|
"descending": "Descending",
|
||||||
|
"ascending": "Ascending"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"favorite_worlds": {
|
"favorite_worlds": {
|
||||||
"header": "Favorite Worlds"
|
"header": "Favorite Worlds"
|
||||||
|
|||||||
Reference in New Issue
Block a user