Merge branch '362-room-creation-validation-fixes' into 'dev'

CreateRoom validation improvements

Closes #362

See merge request keanuapp/keanuapp-weblite!115
This commit is contained in:
N Pex 2022-11-07 15:15:19 +00:00
commit 150d22c451
13 changed files with 41 additions and 18 deletions

View file

@ -70,7 +70,8 @@
"name_room": "ཁ་བརྡ་ཁང་ལ་མིང་ཐོགས།", "name_room": "ཁ་བརྡ་ཁང་ལ་མིང་ཐོགས།",
"room_topic": "གལ་ཏེ་འདོད་པ་ཡོད་ན། ཚོགས་པའི་སྐོར་གྱི་འགྲེལ་བཤད་ཐུང་ངུ་ཞིག་འབྲི་ཆོག", "room_topic": "གལ་ཏེ་འདོད་པ་ཡོད་ན། ཚོགས་པའི་སྐོར་གྱི་འགྲེལ་བཤད་ཐུང་ངུ་ཞིག་འབྲི་ཆོག",
"create": "བཟོས།", "create": "བཟོས།",
"room_name_limit_error_msg": "" "room_name_limit_error_msg": "",
"colon_not_allowed": ""
}, },
"menu": { "menu": {
"logout": "ཕྱིར་ཐོན།", "logout": "ཕྱིར་ཐོན།",

View file

@ -96,7 +96,8 @@
"next": "Nächste", "next": "Nächste",
"name_room": "Raum benennen", "name_room": "Raum benennen",
"room_topic": "Füge eine Beschreibung hinzu, wenn du möchtest", "room_topic": "Füge eine Beschreibung hinzu, wenn du möchtest",
"room_name_limit_error_msg": "" "room_name_limit_error_msg": "",
"colon_not_allowed": ""
}, },
"device_list": { "device_list": {
"title": "GERÄTE", "title": "GERÄTE",

View file

@ -106,7 +106,8 @@
"status_creating": "Creating room", "status_creating": "Creating room",
"status_avatar_total": "Uploading avatar: {count} of {total}", "status_avatar_total": "Uploading avatar: {count} of {total}",
"status_avatar": "Uploading avatar: {count}", "status_avatar": "Uploading avatar: {count}",
"room_name_limit_error_msg": "Maximum 50 characters allowed" "room_name_limit_error_msg": "Maximum 50 characters allowed",
"colon_not_allowed": "Colon is not allowed"
}, },
"device_list": { "device_list": {
"title": "DEVICES", "title": "DEVICES",

View file

@ -122,7 +122,8 @@
"new_room": "Nueva Sala", "new_room": "Nueva Sala",
"create": "Crear", "create": "Crear",
"room_topic": "Añade una descripción si quieres", "room_topic": "Añade una descripción si quieres",
"room_name_limit_error_msg": "" "room_name_limit_error_msg": "",
"colon_not_allowed": ""
}, },
"room_welcome": { "room_welcome": {
"join_public": "Cualquiera puede unirse abriendo este vínculo: {link}", "join_public": "Cualquiera puede unirse abriendo este vínculo: {link}",

View file

@ -28,7 +28,8 @@
"add_people": "Lisää ihmisiä", "add_people": "Lisää ihmisiä",
"link_copied": "Linkki kopioitu!", "link_copied": "Linkki kopioitu!",
"public_info": "Kuka tahansa, jolla on linkki", "public_info": "Kuka tahansa, jolla on linkki",
"room_name_limit_error_msg": "" "room_name_limit_error_msg": "",
"colon_not_allowed": ""
}, },
"purge_room": { "purge_room": {
"n_seconds": "{seconds} sekuntia", "n_seconds": "{seconds} sekuntia",

View file

@ -96,7 +96,8 @@
"public_info": "Quiconque avec un lien", "public_info": "Quiconque avec un lien",
"join_permissions_info": "Ces autorisations déterminent comment les personnes peuvent rejoindre le salon et avec quelle facilité dautres personnes peuvent être invitées. Elles peuvent être modifiées à tout moment.", "join_permissions_info": "Ces autorisations déterminent comment les personnes peuvent rejoindre le salon et avec quelle facilité dautres personnes peuvent être invitées. Elles peuvent être modifiées à tout moment.",
"status_creating": "Création du salon", "status_creating": "Création du salon",
"room_name_limit_error_msg": "" "room_name_limit_error_msg": "",
"colon_not_allowed": ""
}, },
"device_list": { "device_list": {
"title": "APPAREILS", "title": "APPAREILS",

View file

@ -95,7 +95,8 @@
"invite_info": "Solo le persone aggiunte", "invite_info": "Solo le persone aggiunte",
"join_permissions_info": "Questi permessi determinano come le persone possono entrare nella stanza e quanto facilmente gli altri possono essere invitati. Possono essere cambiati in qualsiasi momento.", "join_permissions_info": "Questi permessi determinano come le persone possono entrare nella stanza e quanto facilmente gli altri possono essere invitati. Possono essere cambiati in qualsiasi momento.",
"public_info": "Chiunque abbia un collegamento", "public_info": "Chiunque abbia un collegamento",
"room_name_limit_error_msg": "" "room_name_limit_error_msg": "",
"colon_not_allowed": ""
}, },
"device_list": { "device_list": {
"title": "DISPOSITIVI", "title": "DISPOSITIVI",

View file

@ -115,7 +115,8 @@
"next": "Neste", "next": "Neste",
"create": "Opprett", "create": "Opprett",
"new_room": "Nytt rom", "new_room": "Nytt rom",
"room_name_limit_error_msg": "" "room_name_limit_error_msg": "",
"colon_not_allowed": ""
}, },
"room_welcome": { "room_welcome": {
"room_history_is": "Romhistorikken er {type}.", "room_history_is": "Romhistorikken er {type}.",

View file

@ -119,7 +119,8 @@
"status_creating": "Criando a sala", "status_creating": "Criando a sala",
"status_avatar_total": "Enviando o avatar: {count} de {total}", "status_avatar_total": "Enviando o avatar: {count} de {total}",
"status_avatar": "Enviando avatar: {count}", "status_avatar": "Enviando avatar: {count}",
"room_name_limit_error_msg": "O máximo de 50 caracteres são permitidos" "room_name_limit_error_msg": "O máximo de 50 caracteres são permitidos",
"colon_not_allowed": ""
}, },
"device_list": { "device_list": {
"title": "DISPOSITIVOS", "title": "DISPOSITIVOS",

View file

@ -167,7 +167,8 @@
"next": "Următorul", "next": "Următorul",
"create": "Creați", "create": "Creați",
"new_room": "Cameră nouă", "new_room": "Cameră nouă",
"room_name_limit_error_msg": "" "room_name_limit_error_msg": "",
"colon_not_allowed": ""
}, },
"room_welcome": { "room_welcome": {
"got_it": "L-am prins", "got_it": "L-am prins",

View file

@ -84,7 +84,8 @@
"next": "كېيىنكى", "next": "كېيىنكى",
"create": "قۇرۇش", "create": "قۇرۇش",
"new_room": "يېڭى مۇنازىرەخانا", "new_room": "يېڭى مۇنازىرەخانا",
"room_name_limit_error_msg": "" "room_name_limit_error_msg": "",
"colon_not_allowed": ""
}, },
"room": { "room": {
"purge_failed": "مۇنازىرەخانىنى يۇيۇش مەغلۇب بولدى!", "purge_failed": "مۇنازىرەخانىنى يۇيۇش مەغلۇب بولدى!",

View file

@ -217,7 +217,8 @@
"new_room": "新的聊天室", "new_room": "新的聊天室",
"room_topic": "如果您愿意,请添加说明", "room_topic": "如果您愿意,请添加说明",
"create": "创建", "create": "创建",
"room_name_limit_error_msg": "" "room_name_limit_error_msg": "",
"colon_not_allowed": ""
}, },
"room_welcome": { "room_welcome": {
"got_it": "知道了", "got_it": "知道了",

View file

@ -52,6 +52,7 @@
:disabled="step > steps.INITIAL" :disabled="step > steps.INITIAL"
autofocus autofocus
solo solo
@update:error="updateErrorState"
></v-text-field> ></v-text-field>
<div class="text-left font-weight-light" v-show="roomName.length> 0">{{ $t("new_room.room_topic") }}</div> <div class="text-left font-weight-light" v-show="roomName.length> 0">{{ $t("new_room.room_topic") }}</div>
<v-text-field <v-text-field
@ -63,13 +64,14 @@
:disabled="step > steps.INITIAL" :disabled="step > steps.INITIAL"
solo solo
></v-text-field> ></v-text-field>
<div class="error--text" v-if="roomCreationErrorMsg"> {{roomCreationErrorMsg}}</div>
<v-btn <v-btn
id="btn-room-create" id="btn-room-create"
color="black" color="black"
depressed depressed
class="filled-button" class="filled-button"
@click.stop="onCreate" @click.stop="onCreate"
:disabled="status ? true : roomName.length === 0 || roomName.length > 50" :disabled="isDisabled"
> >
<div v-if="status && !enterRoomDialog" class="text-center"> <div v-if="status && !enterRoomDialog" class="text-center">
{{ status }} {{ status }}
@ -298,7 +300,12 @@ export default {
name: "" name: ""
}, },
enterRoomDialog: false, enterRoomDialog: false,
roomNamerules: [v => v.length <= 50 || this.$t("new_room.room_name_limit_error_msg")], roomNamerules: [
v => v.length <= 50 || this.$t("new_room.room_name_limit_error_msg"),
v => !v.includes(':') || this.$t("new_room.colon_not_allowed")
],
roomNameHasError: false,
roomCreationErrorMsg: ""
}; };
}, },
@ -318,6 +325,9 @@ export default {
}, },
}, },
computed: { computed: {
isDisabled() {
return this.status ? true : this.roomName.length === 0 || this.roomName.length > 50 || this.roomNameHasError
},
roomAvatarLetter() { roomAvatarLetter() {
if (!this.roomName) { if (!this.roomName) {
return null; return null;
@ -337,6 +347,9 @@ export default {
}, },
methods: { methods: {
updateErrorState(errorState) {
this.roomNameHasError = errorState
},
goBack() { goBack() {
if (this.step == steps.NAME_SET) { if (this.step == steps.NAME_SET) {
this.step = steps.INITIAL; this.step = steps.INITIAL;
@ -578,10 +591,8 @@ export default {
return roomId; return roomId;
}) })
.catch((error) => { .catch((error) => {
this.status = this.status = ""
(error.data && error.data.error) || this.roomCreationErrorMsg = (error.data && error.data.error) || error.message || error.toString();
error.message ||
error.toString();
this.step = steps.INITIAL; // revert this.step = steps.INITIAL; // revert
return null; return null;
}); });