Basic room upgrade prompt
This commit is contained in:
parent
c36deef7e2
commit
07362384aa
3 changed files with 54 additions and 2 deletions
|
|
@ -50,7 +50,8 @@
|
||||||
"user_revoke_moderator": "Revoke moderator",
|
"user_revoke_moderator": "Revoke moderator",
|
||||||
"pin": "Pin post",
|
"pin": "Pin post",
|
||||||
"unpin": "Unpin post",
|
"unpin": "Unpin post",
|
||||||
"cancel_knock": "Cancel knock"
|
"cancel_knock": "Cancel knock",
|
||||||
|
"upgrade": "Upgrade"
|
||||||
},
|
},
|
||||||
"message": {
|
"message": {
|
||||||
"you": "You",
|
"you": "You",
|
||||||
|
|
@ -134,7 +135,9 @@
|
||||||
"room_list_new_messages": "{count} new messages",
|
"room_list_new_messages": "{count} new messages",
|
||||||
"room_list_rooms": "Rooms",
|
"room_list_rooms": "Rooms",
|
||||||
"room_name_required": "Room name is required",
|
"room_name_required": "Room name is required",
|
||||||
"room_topic_required": "Room description is required"
|
"room_topic_required": "Room description is required",
|
||||||
|
"needs_upgrade": "This room needs to be upgraded to a new room version",
|
||||||
|
"upgrading": "Upgrading room version"
|
||||||
},
|
},
|
||||||
"room_welcome": {
|
"room_welcome": {
|
||||||
"info": "Welcome! Here are a few things to know about your room:",
|
"info": "Welcome! Here are a few things to know about your room:",
|
||||||
|
|
|
||||||
|
|
@ -26,6 +26,8 @@
|
||||||
<VoiceRecorder class="audio-layout" v-if="useVoiceMode" :micButtonRef="$refs.mic_button" :ptt="showRecorderPTT" :show="showRecorder"
|
<VoiceRecorder class="audio-layout" v-if="useVoiceMode" :micButtonRef="$refs.mic_button" :ptt="showRecorderPTT" :show="showRecorder"
|
||||||
v-on:close="showRecorder = false" v-on:file="onVoiceRecording" :sendTypingIndicators="useVoiceMode" />
|
v-on:close="showRecorder = false" v-on:file="onVoiceRecording" :sendTypingIndicators="useVoiceMode" />
|
||||||
|
|
||||||
|
<RoomUpgradePrompt v-if="roomUpgradeInfo" :roomId="roomId" :urgent="roomUpgradeInfo.urgent" :version="roomUpgradeInfo.version" />
|
||||||
|
|
||||||
<SendAttachmentsLayout
|
<SendAttachmentsLayout
|
||||||
v-if="room && useFileModeNonAdmin"
|
v-if="room && useFileModeNonAdmin"
|
||||||
:room="room"
|
:room="room"
|
||||||
|
|
@ -318,6 +320,7 @@ import WelcomeHeaderChannelUser from "./welcome_headers/WelcomeHeaderChannelUser
|
||||||
import NoHistoryRoomWelcomeHeader from "./NoHistoryRoomWelcomeHeader.vue";
|
import NoHistoryRoomWelcomeHeader from "./NoHistoryRoomWelcomeHeader.vue";
|
||||||
import StickerPickerBottomSheet from "./StickerPickerBottomSheet";
|
import StickerPickerBottomSheet from "./StickerPickerBottomSheet";
|
||||||
import UserProfileDialog from "./UserProfileDialog.vue"
|
import UserProfileDialog from "./UserProfileDialog.vue"
|
||||||
|
import RoomUpgradePrompt from "./messages/composition/RoomUpgradePrompt.vue";
|
||||||
import BottomSheet from "./BottomSheet.vue";
|
import BottomSheet from "./BottomSheet.vue";
|
||||||
import CreatePollDialog from "./CreatePollDialog.vue";
|
import CreatePollDialog from "./CreatePollDialog.vue";
|
||||||
import chatMixin, { ROOM_READ_MARKER_EVENT_PLACEHOLDER } from "./chatMixin";
|
import chatMixin, { ROOM_READ_MARKER_EVENT_PLACEHOLDER } from "./chatMixin";
|
||||||
|
|
@ -390,6 +393,7 @@ export default {
|
||||||
MessageOperationsChannel,
|
MessageOperationsChannel,
|
||||||
RoomExport,
|
RoomExport,
|
||||||
EmojiPicker,
|
EmojiPicker,
|
||||||
|
RoomUpgradePrompt
|
||||||
},
|
},
|
||||||
|
|
||||||
data() {
|
data() {
|
||||||
|
|
@ -403,6 +407,7 @@ export default {
|
||||||
typingMembers: [],
|
typingMembers: [],
|
||||||
timelineSet: null,
|
timelineSet: null,
|
||||||
timelineWindow: null,
|
timelineWindow: null,
|
||||||
|
roomUpgradeInfo: undefined,
|
||||||
|
|
||||||
/** true if we are currently paginating */
|
/** true if we are currently paginating */
|
||||||
timelineWindowPaginating: false,
|
timelineWindowPaginating: false,
|
||||||
|
|
@ -1000,6 +1005,12 @@ export default {
|
||||||
|
|
||||||
this.reverseOrder = (this.room && this.roomDisplayType == ROOM_TYPE_CHANNEL);
|
this.reverseOrder = (this.room && this.roomDisplayType == ROOM_TYPE_CHANNEL);
|
||||||
this.room["displayType"] = this.roomDisplayType;
|
this.room["displayType"] = this.roomDisplayType;
|
||||||
|
this.roomUpgradeInfo = undefined;
|
||||||
|
if (this.room.userMayUpgradeRoom(this.$matrix.currentUserId)) {
|
||||||
|
this.room.getRecommendedVersion().then((info) => {
|
||||||
|
this.roomUpgradeInfo = info;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
// Listen to events
|
// Listen to events
|
||||||
this.$matrix.on("Room.timeline", this.onEvent);
|
this.$matrix.on("Room.timeline", this.onEvent);
|
||||||
|
|
|
||||||
38
src/components/messages/composition/RoomUpgradePrompt.vue
Normal file
38
src/components/messages/composition/RoomUpgradePrompt.vue
Normal file
|
|
@ -0,0 +1,38 @@
|
||||||
|
<template>
|
||||||
|
<div class="statusEvent">
|
||||||
|
{{ upgrading ? $t("room.upgrading") : $t("room.needs_upgrade") }}
|
||||||
|
<v-btn :loading="upgrading" v-on:click="upgradeRoom">{{ $t("menu.upgrade") }}</v-btn>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup lang="ts">
|
||||||
|
import { inject, Ref, ref } from 'vue';
|
||||||
|
|
||||||
|
|
||||||
|
type RoomUpgradePromptProps = {
|
||||||
|
version: string;
|
||||||
|
urgent: boolean;
|
||||||
|
roomId: string;
|
||||||
|
};
|
||||||
|
|
||||||
|
const props = defineProps<RoomUpgradePromptProps>();
|
||||||
|
const $matrix: any = inject('globalMatrix');
|
||||||
|
|
||||||
|
const upgrading: Ref<boolean> = ref(false);
|
||||||
|
|
||||||
|
const upgradeRoom = () => {
|
||||||
|
upgrading.value = true;
|
||||||
|
$matrix.matrixClient.upgradeRoom(props.roomId, props.version).then((r: {replacement_room: string}) => {
|
||||||
|
upgrading.value = false;
|
||||||
|
})
|
||||||
|
};
|
||||||
|
|
||||||
|
if (props.urgent) {
|
||||||
|
upgradeRoom();
|
||||||
|
}
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss">
|
||||||
|
@use "@/assets/css/chat.scss" as *;
|
||||||
|
</style>
|
||||||
Loading…
Add table
Add a link
Reference in a new issue