diff --git a/html/src/app.js b/html/src/app.js
index 5d79885e..2e3d5f8d 100644
--- a/html/src/app.js
+++ b/html/src/app.js
@@ -1944,6 +1944,8 @@ speechSynthesis.getVoices();
Object.assign(ref, json);
}
ref.$isLabs = ref.tags.includes('system_labs');
+ ref.name = $app.replaceBioSymbols(ref.name);
+ ref.description = $app.replaceBioSymbols(ref.description);
return ref;
};
@@ -2499,6 +2501,8 @@ speechSynthesis.getVoices();
} else {
Object.assign(ref, json);
}
+ ref.name = $app.replaceBioSymbols(ref.name);
+ ref.description = $app.replaceBioSymbols(ref.description);
return ref;
};
@@ -4159,6 +4163,22 @@ speechSynthesis.getVoices();
});
break;
+ case 'notification-v2-delete':
+ console.log('notification-v2-delete', content);
+ for (var id of content.ids) {
+ this.$emit('NOTIFICATION:HIDE', {
+ params: {
+ notificationId: id
+ }
+ });
+ this.$emit('NOTIFICATION:SEE', {
+ params: {
+ notificationId: id
+ }
+ });
+ }
+ break;
+
case 'see-notification':
this.$emit('NOTIFICATION:SEE', {
params: {
@@ -4337,6 +4357,19 @@ speechSynthesis.getVoices();
case 'group-left':
// content.groupId
break;
+ case 'group-member-updated':
+ // content {
+ // groupId: string,
+ // id: string,
+ // isRepresenting: boolean,
+ // isSubscribedToAnnouncements: boolean,
+ // joinedAt: string,
+ // membershipStatus: string,
+ // roleIds: string[],
+ // userId: string,
+ // visibility: string
+ // }
+ break;
default:
console.log('Unknown pipeline type', args.json);
@@ -8073,8 +8106,15 @@ speechSynthesis.getVoices();
$app.methods.quickSearchChange = function (value) {
if (value) {
if (value.startsWith('search:')) {
- this.friendsListSearch = value.substr(7);
- this.$refs.menu.activeIndex = 'friendsList';
+ var searchText = value.substr(7);
+ if (this.quickSearchItems.length > 1 && searchText.length) {
+ this.friendsListSearch = searchText;
+ this.$refs.menu.activeIndex = 'friendsList';
+ } else {
+ this.$refs.menu.activeIndex = 'search';
+ this.searchText = searchText;
+ this.lookupUser({displayName: searchText});
+ }
} else {
this.showUserDialog(value);
}
@@ -8166,6 +8206,17 @@ speechSynthesis.getVoices();
return true;
}
return false;
+ case 'Bio':
+ if (String(row.displayName).toUpperCase().includes(value)) {
+ return true;
+ }
+ if (String(row.bio).toUpperCase().includes(value)) {
+ return true;
+ }
+ if (String(row.previousBio).toUpperCase().includes(value)) {
+ return true;
+ }
+ return false;
}
return true;
};
@@ -17314,6 +17365,7 @@ speechSynthesis.getVoices();
message: 'VRCPlus required',
type: 'error'
});
+ return;
}
var userIcon = '';
if (fileId) {
@@ -19294,7 +19346,7 @@ speechSynthesis.getVoices();
var imageName = args.json.name;
var avatarNameRegex = /Avatar - (.*) - Image -/g.exec(imageName);
if (avatarNameRegex) {
- avatarName = avatarNameRegex[1];
+ avatarName = this.replaceBioSymbols(avatarNameRegex[1]);
}
var ownerId = args.json.ownerId;
var avatarInfo = {
@@ -20265,6 +20317,7 @@ speechSynthesis.getVoices();
message: 'VRCPlus required',
type: 'error'
});
+ return;
}
var profilePicOverride = '';
if (fileId) {
@@ -23972,6 +24025,10 @@ speechSynthesis.getVoices();
if (!url) {
return;
}
+ this.$message({
+ message: 'Downloading image...',
+ type: 'info'
+ });
try {
var response = await webApiService.execute({
url,
diff --git a/html/src/index.pug b/html/src/index.pug
index 2668560e..fa8091d5 100644
--- a/html/src/index.pug
+++ b/html/src/index.pug
@@ -1180,7 +1180,7 @@ html
el-switch(v-model="orderFriendsGroup2" inactive-text="alphabetical" active-text="online for" @change="saveOrderFriendGroup")
div.options-container-item
span.name Offline
- el-switch(v-model="orderFriendsGroup3" inactive-text="alphabetical" active-text="online for" @change="saveOrderFriendGroup")
+ el-switch(v-model="orderFriendsGroup3" inactive-text="alphabetical" active-text="offline for" @change="saveOrderFriendGroup")
span.sub-header Width
div.options-container-item
el-slider(v-model="asideWidth" @input="setAsideWidth" :show-tooltip="false" :marks="{236: ''}" :min="141" :max="500" style="width:300px")
@@ -2728,7 +2728,7 @@ html
el-dialog.x-dialog(:before-close="beforeDialogClose" @mousedown.native="dialogMouseDown" @mouseup.native="dialogMouseUp" ref="notificationPositionDialog" :visible.sync="notificationPositionDialog.visible" title="Notification Position" width="400px")
div(style='font-size:12px;')
| Choose a notification position.
- svg(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")
+ .notification-position.svg(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")
@@ -3330,7 +3330,7 @@ html
.vrcplus-icon(v-if="image.versions[image.versions.length - 1].file.url" @click="setProfilePicOverride(image.id)" :class="{ 'current-vrcplus-icon': compareCurrentProfilePic(image.id) }")
img.avatar(v-lazy="image.versions[image.versions.length - 1].file.url")
div(style="float:right;margin-top:5px")
- el-button(type="default" @click="downloadAndSaveImage(image.versions[image.versions.length - 1].file.url)" size="mini" icon="el-icon-paperclip" circle)
+ el-button(type="default" @click="downloadAndSaveImage(image.versions[image.versions.length - 1].file.url)" size="mini" icon="el-icon-download" circle)
el-button(type="default" @click="deleteGalleryImage(image.id)" size="mini" icon="el-icon-delete" circle style="margin-left:5px")
el-tab-pane(v-if="galleryDialogVisible" v-loading="galleryDialogIconsLoading")
span(slot="label") Icons
@@ -3345,7 +3345,7 @@ html
.vrcplus-icon(v-if="image.versions[image.versions.length - 1].file.url" @click="setVRCPlusIcon(image.id)" :class="{ 'current-vrcplus-icon': compareCurrentVRCPlusIcon(image.id) }")
img.avatar(v-lazy="image.versions[image.versions.length - 1].file.url")
div(style="float:right;margin-top:5px")
- el-button(type="default" @click="downloadAndSaveImage(image.versions[image.versions.length - 1].file.url)" size="mini" icon="el-icon-paperclip" circle)
+ el-button(type="default" @click="downloadAndSaveImage(image.versions[image.versions.length - 1].file.url)" size="mini" icon="el-icon-download" circle)
el-button(type="default" @click="deleteVRCPlusIcon(image.id)" size="mini" icon="el-icon-delete" circle style="margin-left:5px")
//- dialog Table: Previous Instances User