From e0fb98d86c13d22ca6fda3429dff77e94cc404fe Mon Sep 17 00:00:00 2001 From: Natsumi Date: Thu, 19 Nov 2020 06:44:03 +1300 Subject: [PATCH] Request invites and friend requests --- html/src/vr.js | 40 ++++++++++++++++++++++++++++++++++++++++ html/src/vr.pug | 20 ++++++++++++++++++++ 2 files changed, 60 insertions(+) diff --git a/html/src/vr.js b/html/src/vr.js index 232d6503..3b80085a 100644 --- a/html/src/vr.js +++ b/html/src/vr.js @@ -678,6 +678,18 @@ import webApiService from './service/webapi.js'; map[feed.senderUsername] = feed.created_at; } } + else if (feed.type === 'requestInvite') { + if (!map[feed.senderUsername] || + map[feed.senderUsername] < feed.created_at) { + map[feed.senderUsername] = feed.created_at; + } + } + else if (feed.type === 'friendRequest') { + if (!map[feed.senderUsername] || + map[feed.senderUsername] < feed.created_at) { + map[feed.senderUsername] = feed.created_at; + } + } }); // disable notification on busy if (this.currentUserStatus === 'busy') { @@ -710,6 +722,20 @@ import webApiService from './service/webapi.js'; notys.push(feed); } } + else if (feed.type === 'requestInvite') { + if (!map[feed.senderUsername] || + map[feed.senderUsername] < feed.created_at) { + map[feed.senderUsername] = feed.created_at; + notys.push(feed); + } + } + else if (feed.type === 'friendRequest') { + if (!map[feed.senderUsername] || + map[feed.senderUsername] < feed.created_at) { + map[feed.senderUsername] = feed.created_at; + notys.push(feed); + } + } }); var bias = new Date(Date.now() - 60000).toJSON(); var theme = 'relax'; @@ -754,6 +780,20 @@ import webApiService from './service/webapi.js'; text: `${noty.senderUsername} has invited you to ${noty.details.worldName}` }).show(); break; + case 'requestInvite': + new Noty({ + type: 'alert', + theme: theme, + text: `${noty.senderUsername} has requested an invite` + }).show(); + break; + case 'friendRequest': + new Noty({ + type: 'alert', + theme: theme, + text: `${noty.senderUsername} has sent you a friend request` + }).show(); + break; } } }); diff --git a/html/src/vr.pug b/html/src/vr.pug index 45f1b655..ba1e177c 100644 --- a/html/src/vr.pug +++ b/html/src/vr.pug @@ -58,6 +58,16 @@ html span.time {{ feed.created_at | formatDate('HH:MI') }} | 📨 #[span.name(v-text="feed.senderUsername")] | #[span(v-text="feed.details.worldName")] + div(v-else-if="feed.type === 'requestInvite'" class="x-friend-item" :class="{ friend: feed.isFriend, favorite: feed.isFavorite }") + .detail + span.extra + span.time {{ feed.created_at | formatDate('HH:MI') }} + | 📩 #[span.name(v-text="feed.senderUsername")] + div(v-else-if="feed.type === 'friendRequest'" class="x-friend-item" :class="{ friend: feed.isFriend, favorite: feed.isFavorite }") + .detail + span.extra + span.time {{ feed.created_at | formatDate('HH:MI') }} + | 💚 #[span.name(v-text="feed.senderUsername")] template(v-else) template(v-for="feed in feeds") .x-friend-item(v-if="feed.type === 'GPS'" :class="{ friend: feed.isFriend, favorite: feed.isFavorite }") @@ -101,6 +111,16 @@ html span.time {{ feed.created_at | formatDate('HH:MI') }} | #[span.name(v-text="feed.senderUsername")] has invited you to | #[span(v-text="feed.details.worldName")] + div(v-else-if="feed.type === 'requestInvite'" class="x-friend-item" :class="{ friend: feed.isFriend, favorite: feed.isFavorite }") + .detail + span.extra + span.time {{ feed.created_at | formatDate('HH:MI') }} + | #[span.name(v-text="feed.senderUsername")] has requested an invite + div(v-else-if="feed.type === 'friendRequest'" class="x-friend-item" :class="{ friend: feed.isFriend, favorite: feed.isFavorite }") + .detail + span.extra + span.time {{ feed.created_at | formatDate('HH:MI') }} + | #[span.name(v-text="feed.senderUsername")] has sent you a friend request .x-container div(style="display:flex;flex-direction:row") template(v-if="devices.length")