diff --git a/html/src/app.js b/html/src/app.js index 0c35bece..b5eb0ec6 100644 --- a/html/src/app.js +++ b/html/src/app.js @@ -2805,45 +2805,49 @@ speechSynthesis.getVoices(); API.refreshNotifications = async function () { this.isNotificationsLoading = true; - this.expireFriendRequestNotifications(); - var params = { - n: 100, - offset: 0 - }; - var count = 50; // 5000 max - for (var i = 0; i < count; i++) { - var args = await this.getNotifications(params); - $app.unseenNotifications = []; - params.offset += 100; - if (args.json.length < 100) { - break; + try { + this.expireFriendRequestNotifications(); + var params = { + n: 100, + offset: 0 + }; + var count = 50; // 5000 max + for (var i = 0; i < count; i++) { + var args = await this.getNotifications(params); + $app.unseenNotifications = []; + params.offset += 100; + if (args.json.length < 100) { + break; + } } - } - var params = { - n: 100, - offset: 0 - }; - var count = 50; // 5000 max - for (var i = 0; i < count; i++) { - var args = await this.getNotificationsV2(params); - $app.unseenNotifications = []; - params.offset += 100; - if (args.json.length < 100) { - break; + var params = { + n: 100, + offset: 0 + }; + var count = 50; // 5000 max + for (var i = 0; i < count; i++) { + var args = await this.getNotificationsV2(params); + $app.unseenNotifications = []; + params.offset += 100; + if (args.json.length < 100) { + break; + } } - } - var params = { - n: 100, - offset: 0 - }; - var count = 50; // 5000 max - for (var i = 0; i < count; i++) { - var args = await this.getHiddenFriendRequests(params); - $app.unseenNotifications = []; - params.offset += 100; - if (args.json.length < 100) { - break; + var params = { + n: 100, + offset: 0 + }; + var count = 50; // 5000 max + for (var i = 0; i < count; i++) { + var args = await this.getHiddenFriendRequests(params); + $app.unseenNotifications = []; + params.offset += 100; + if (args.json.length < 100) { + break; + } } + } catch (err) { + console.error(err); } this.isNotificationsLoading = false; }; @@ -2933,6 +2937,28 @@ speechSynthesis.getVoices(); }); }); + API.$on('NOTIFICATION:V2:UPDATE', function (args) { + var notificationId = args.params.notificationId; + var json = args.json; + if (!json) { + return; + } + json.id = notificationId; + this.$emit('NOTIFICATION', { + json, + params: { + notificationId + } + }); + if (json.seen) { + this.$emit('NOTIFICATION:SEE', { + params: { + notificationId + } + }); + } + }); + /* params: { notificationId: string, @@ -4183,6 +4209,16 @@ speechSynthesis.getVoices(); } break; + case 'notification-v2-update': + console.log('notification-v2-update', content); + this.$emit('NOTIFICATION:V2:UPDATE', { + json: content.updates, + params: { + notificationId: content.id + } + }); + break; + case 'see-notification': this.$emit('NOTIFICATION:SEE', { params: { @@ -11161,6 +11197,9 @@ speechSynthesis.getVoices(); var partyId = `${L.worldId}:${L.instanceName}`; var partySize = this.lastLocation.playerList.size; var partyMaxSize = L.worldCapacity; + if (partySize > partyMaxSize) { + partyMaxSize = partySize; + } var buttonText = 'Join'; var buttonUrl = L.joinUrl; if (!this.discordJoinButton) { diff --git a/html/src/index.pug b/html/src/index.pug index 217c48c9..76dde4cb 100644 --- a/html/src/index.pug +++ b/html/src/index.pug @@ -776,11 +776,11 @@ html template(v-once #default="scope") template(v-if="scope.row.details && scope.row.details.imageUrl") el-popover(placement="right" width="500px" trigger="click") - img.x-link(slot="reference" v-lazy="scope.row.details.imageUrl" style="flex:none;width:90px;border-radius:4px") + img.x-link(slot="reference" v-lazy="scope.row.details.imageUrl" style="flex:none;height:50px;border-radius:4px") img.x-link(v-lazy="scope.row.details.imageUrl" style="width:500px" @click="downloadAndSaveImage(scope.row.details.imageUrl)") template(v-else-if="scope.row.imageUrl") el-popover(placement="right" width="500px" trigger="click") - img.x-link(slot="reference" v-lazy="scope.row.imageUrl" style="flex:none;width:90px;border-radius:4px") + img.x-link(slot="reference" v-lazy="scope.row.imageUrl" style="flex:none;height:50px;border-radius:4px") img.x-link(v-lazy="scope.row.imageUrl" style="width:500px" @click="downloadAndSaveImage(scope.row.imageUrl)") el-table-column(:label="$t('table.notification.message')" prop="message") template(v-once #default="scope") diff --git a/html/src/vr.js b/html/src/vr.js index 4eff4194..ab48a3e7 100644 --- a/html/src/vr.js +++ b/html/src/vr.js @@ -393,14 +393,21 @@ Vue.component('marquee-text', MarqueeText); if (!this.config.hideDevicesFromFeed) { AppApi.GetVRDevices().then((devices) => { + var deviceList = []; + var baseStations = 0; devices.forEach((device) => { device[2] = parseInt(device[2], 10); + if (device[0] === 'base' && device[1] === 'connected') { + baseStations++; + } else { + deviceList.unshift(device); + } }); - devices.sort((a, b) => { + deviceList.sort((a, b) => { if (a[0] === b[0]) { return 0; } - if (a[0] === 'base') { + if (a[0] === 'tracker' || a[0] === 'base') { return 1; } if (a[0].toLowerCase().includes('controller')) { @@ -408,7 +415,7 @@ Vue.component('marquee-text', MarqueeText); } return 0; }); - devices.sort((a, b) => { + deviceList.sort((a, b) => { if (a[1] === b[1]) { return 0; } @@ -420,7 +427,10 @@ Vue.component('marquee-text', MarqueeText); } return 0; }); - this.devices = devices; + if (baseStations > 0) { + deviceList.push(['base', 'connected', baseStations]); + } + this.devices = deviceList; }); } else { this.devices = []; diff --git a/html/src/vr.pug b/html/src/vr.pug index c309db29..c1890028 100644 --- a/html/src/vr.pug +++ b/html/src/vr.pug @@ -437,6 +437,7 @@ html template(v-else-if="device[0] === 'base'") img(v-if="device[1] !== 'connected'" src="images/base_status_off.png" class="tracker-device") img(v-else src="images/base_status_ready.png" class="tracker-device") + span(v-if="device[2] !== 100") {{ device[2] }}x template(v-else) img(v-if="device[1] !== 'connected'" src="images/other_status_off.png" class="tracker-device") img(v-else-if="device[2] < 20" src="images/other_status_ready_low.png" class="tracker-device")