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