From 3bd119416ceba26d2f99e8c25c8b4758248484b6 Mon Sep 17 00:00:00 2001 From: 10G Meow <10gmeow@gmail.com> Date: Sat, 26 Nov 2022 12:48:41 +0200 Subject: [PATCH] Room description editable --- src/assets/css/chat.scss | 4 ++++ src/assets/translations/bo.json | 3 ++- src/assets/translations/de.json | 3 ++- src/assets/translations/en.json | 3 ++- src/assets/translations/es.json | 3 ++- src/assets/translations/fi.json | 3 ++- src/assets/translations/fr.json | 3 ++- src/assets/translations/it.json | 3 ++- src/assets/translations/nb_NO.json | 3 ++- src/assets/translations/pt_BR.json | 3 ++- src/assets/translations/ro.json | 3 ++- src/assets/translations/ug.json | 3 ++- src/assets/translations/zh_Hans.json | 3 ++- src/components/RoomInfo.vue | 29 +++++++++++++++++++++++--- src/components/RoomInfoBottomSheet.vue | 4 ++-- src/components/roomInfoMixin.js | 25 ++++++++++++++++++---- 16 files changed, 77 insertions(+), 21 deletions(-) diff --git a/src/assets/css/chat.scss b/src/assets/css/chat.scss index 0bf6092..f949b52 100644 --- a/src/assets/css/chat.scss +++ b/src/assets/css/chat.scss @@ -808,6 +808,10 @@ $admin-fg: white; .topic { font-family: "Inter", sans-serif; font-size: 16px; + + input { + text-align: center; + } } .created-by { diff --git a/src/assets/translations/bo.json b/src/assets/translations/bo.json index 9f51dbc..84158ae 100644 --- a/src/assets/translations/bo.json +++ b/src/assets/translations/bo.json @@ -140,7 +140,8 @@ "purge_removing_members": "ཚོགས་མི་ཁག་ཕྱིར་འདོན།", "purge_redacting_events": "ཁ་བརྡ་གཙང་གསུབ།", "purge_set_room_state": "ཁ་བརྡ་ཁང་གི་རྣམ་པ་སྒྲིག་འགོད།", - "room_name_required": "" + "room_name_required": "", + "room_topic_required": "" }, "message": { "users_are_typing": "{count} ཚོགས་མི་ཡིས་གཏགས་བཞིན་འདུག", diff --git a/src/assets/translations/de.json b/src/assets/translations/de.json index e1bad16..5064496 100644 --- a/src/assets/translations/de.json +++ b/src/assets/translations/de.json @@ -72,7 +72,8 @@ "purge_removing_members": "Entfernen von Mitgliedern", "purge_failed": "Fehler beim Bereinigen des Raums!", "room_list_rooms": "Räume", - "room_name_required": "" + "room_name_required": "", + "room_topic_required": "" }, "room_welcome": { "info": "Herzlich willkommen! Hier sind ein paar Dinge, die du über deinen Raum wissen solltest:", diff --git a/src/assets/translations/en.json b/src/assets/translations/en.json index 6d516db..c71e254 100644 --- a/src/assets/translations/en.json +++ b/src/assets/translations/en.json @@ -83,7 +83,8 @@ "purge_failed": "Failed to purge room!", "room_list_invites": "Invites", "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_welcome": { "info": "Welcome! Here are a few things to know about your room:", diff --git a/src/assets/translations/es.json b/src/assets/translations/es.json index ee06b1f..74b8edf 100644 --- a/src/assets/translations/es.json +++ b/src/assets/translations/es.json @@ -151,7 +151,8 @@ "purge_removing_members": "Eliminar miembros", "purge_failed": "¡Fallo en la purga de la sala!", "room_list_rooms": "Salas", - "room_name_required": "" + "room_name_required": "", + "room_topic_required": "" }, "message": { "user_powerlevel_change_from_to": "{user} de {powerOld} a {powerNew}", diff --git a/src/assets/translations/fi.json b/src/assets/translations/fi.json index 0401285..b1eb50a 100644 --- a/src/assets/translations/fi.json +++ b/src/assets/translations/fi.json @@ -113,7 +113,8 @@ "room": { "leave": "Poistu", "room_list_rooms": "Huoneet", - "room_name_required": "" + "room_name_required": "", + "room_topic_required": "" }, "room_welcome": { "room_history_is": "Huoneen historia on {type}.", diff --git a/src/assets/translations/fr.json b/src/assets/translations/fr.json index b61bec8..039b4be 100644 --- a/src/assets/translations/fr.json +++ b/src/assets/translations/fr.json @@ -72,7 +72,8 @@ "room_list_invites": "Invitations", "room_list_rooms": "Salons", "purge_redacting_events": "Rédaction des évènements", - "room_name_required": "" + "room_name_required": "", + "room_topic_required": "" }, "room_welcome": { "info": "Bienvenue ! Voici quelques informations à connaître sur votre salon :", diff --git a/src/assets/translations/it.json b/src/assets/translations/it.json index 10fe765..f0ebd12 100644 --- a/src/assets/translations/it.json +++ b/src/assets/translations/it.json @@ -53,7 +53,8 @@ "purge_failed": "Impossibile pulire la stanza!", "room_list_invites": "Inviti", "room_list_rooms": "Stanze", - "room_name_required": "" + "room_name_required": "", + "room_topic_required": "" }, "menu": { "reply": "Risposta", diff --git a/src/assets/translations/nb_NO.json b/src/assets/translations/nb_NO.json index e2a1dd1..605675e 100644 --- a/src/assets/translations/nb_NO.json +++ b/src/assets/translations/nb_NO.json @@ -138,7 +138,8 @@ "room_list_invites": "Invitasjoner", "purge_set_room_state": "Setter romtilstand", "leave": "Forlat", - "room_name_required": "" + "room_name_required": "", + "room_topic_required": "" }, "purge_room": { "n_seconds": "{seconds} sekunder", diff --git a/src/assets/translations/pt_BR.json b/src/assets/translations/pt_BR.json index 56509ac..d990ce2 100644 --- a/src/assets/translations/pt_BR.json +++ b/src/assets/translations/pt_BR.json @@ -96,7 +96,8 @@ "room_list_invites": "Convites", "room_list_rooms": "Salas", "invitations": "Você não tem convites | Você tem 1 convite | Você tem {count} convites", - "room_name_required": "" + "room_name_required": "", + "room_topic_required": "" }, "room_welcome": { "info": "Bem-vindo! Aqui estão algumas coisas que você deve saber sobre a sua sala:", diff --git a/src/assets/translations/ro.json b/src/assets/translations/ro.json index c13c893..c6b6bee 100644 --- a/src/assets/translations/ro.json +++ b/src/assets/translations/ro.json @@ -195,7 +195,8 @@ "purge_set_room_state": "Setarea stării camerei", "leave": "Lăsați", "members": "fără membri | 1 membru | {count} membri", - "room_name_required": "" + "room_name_required": "", + "room_topic_required": "" }, "message": { "user_changed_guest_access_open": "{user} a permis oaspeților să intre în cameră", diff --git a/src/assets/translations/ug.json b/src/assets/translations/ug.json index 7309460..7e9abdf 100644 --- a/src/assets/translations/ug.json +++ b/src/assets/translations/ug.json @@ -104,7 +104,8 @@ "purge_set_room_state": "مۇنازىرەخانىنىڭ شەرتىنى قۇرۇش", "leave": "كېتىش", "members": "ئەزالار يوق | بىر ئەزا | [نەپەر] ئەزا", - "room_name_required": "" + "room_name_required": "", + "room_topic_required": "" }, "leave": { "text_public_lastroom": "ئەگەر بۇ ئۆيگە يەنە قوشۇلماقچى بولسىڭىز ، يېڭى سالاھىيەت ئاستىدا قاتناشسىڭىز بولىدۇ. {ئىشلەتكۈچى} ، {ھەرىكەت} نى ساقلاش.", diff --git a/src/assets/translations/zh_Hans.json b/src/assets/translations/zh_Hans.json index 39d0bcc..f176619 100644 --- a/src/assets/translations/zh_Hans.json +++ b/src/assets/translations/zh_Hans.json @@ -76,7 +76,8 @@ "purge_removing_members": "移除成员", "purge_redacting_events": "编辑事件", "purge_set_room_state": "设置聊天室状态", - "room_name_required": "" + "room_name_required": "", + "room_topic_required": "" }, "message": { "you": "您", diff --git a/src/components/RoomInfo.vue b/src/components/RoomInfo.vue index 3b44fc8..52fb29a 100644 --- a/src/components/RoomInfo.vue +++ b/src/components/RoomInfo.vue @@ -27,12 +27,13 @@
{{ roomName }}
-
{{ roomTopic }}
+
+ + {{ roomTopic }} + + + +
{{ $t("room_info.created_by", { user: creator }) }}
diff --git a/src/components/RoomInfoBottomSheet.vue b/src/components/RoomInfoBottomSheet.vue index 12ed076..bc529c7 100644 --- a/src/components/RoomInfoBottomSheet.vue +++ b/src/components/RoomInfoBottomSheet.vue @@ -10,7 +10,7 @@
{{$t('room_info_sheet.this_room')}}
{{ roomName }} @@ -26,7 +26,7 @@ counter="50" background-color="white" autofocus - v-if="isEditMode" + v-if="isRoomNameEditMode" maxlength="50" @blur="updateRoomName()" @keyup.enter="updateRoomName()" diff --git a/src/components/roomInfoMixin.js b/src/components/roomInfoMixin.js index b9d17ca..cb420f5 100644 --- a/src/components/roomInfoMixin.js +++ b/src/components/roomInfoMixin.js @@ -5,8 +5,11 @@ export default { userCanChangeJoinRule: false, userCanPurgeRoom: false, editedRoomName: "", - isEditMode: false, - roomNameErrorMessage: null + isRoomNameEditMode: false, + roomNameErrorMessage: null, + editedRoomTopic: "", + isRoomTopicEditMode: false, + roomTopicErrorMessage: null, } }, mounted() { @@ -93,18 +96,32 @@ export default { methods: { onRoomNameClicked() { if(this.userCanPurgeRoom) { - this.isEditMode = !this.isEditMode; + this.isRoomNameEditMode = !this.isRoomNameEditMode; this.editedRoomName = this.roomName; } }, updateRoomName() { if(this.editedRoomName) { this.$matrix.matrixClient.setRoomName(this.room.roomId, this.editedRoomName); - this.isEditMode = !this.isEditMode; + this.isRoomNameEditMode = !this.isRoomNameEditMode; } else { this.$refs.editedRoomName.focus(); } }, + onRoomTopicClicked() { + if(this.userCanPurgeRoom) { + this.isRoomTopicEditMode = !this.isRoomTopicEditMode; + this.editedRoomTopic = this.roomTopic; + } + }, + updateRoomTopic() { + if(this.editedRoomTopic) { + this.$matrix.matrixClient.setRoomTopic(this.room.roomId, this.editedRoomTopic); + this.isRoomTopicEditMode = !this.isRoomTopicEditMode; + } else { + this.$refs.editedRoomTopic.focus(); + } + }, setRoomJoinRule(ignoredJoinRule) { // Do nothing in the general mixin, override in RoomInfo.vue },