Merge branch 'dev'
This commit is contained in:
commit
bf633c44a9
38 changed files with 146 additions and 58 deletions
|
|
@ -487,6 +487,8 @@ $admin-fg: white;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
margin: 20px;
|
margin: 20px;
|
||||||
user-select: text;
|
user-select: text;
|
||||||
|
overflow-wrap: break-word;
|
||||||
|
word-break: break-word;
|
||||||
}
|
}
|
||||||
|
|
||||||
.notice {
|
.notice {
|
||||||
|
|
|
||||||
|
|
@ -47,7 +47,8 @@
|
||||||
"password_required": "གསང་ཚིག་དགོས་ཀྱི་ཡོད།",
|
"password_required": "གསང་ཚིག་དགོས་ཀྱི་ཡོད།",
|
||||||
"username_required": "སྤྱོད་མིང་དགོས་ཀྱི་ཡོད།",
|
"username_required": "སྤྱོད་མིང་དགོས་ཀྱི་ཡོད།",
|
||||||
"create_room": "ཐོ་འགོད་དང་ཁ་བརྡ་ཁང་གསར་སྐྲུན།",
|
"create_room": "ཐོ་འགོད་དང་ཁ་བརྡ་ཁང་གསར་སྐྲུན།",
|
||||||
"or": "ཡང་ན།"
|
"or": "ཡང་ན།",
|
||||||
|
"invalid_message": ""
|
||||||
},
|
},
|
||||||
"new_room": {
|
"new_room": {
|
||||||
"next": "རྗེས་མ།",
|
"next": "རྗེས་མ།",
|
||||||
|
|
|
||||||
|
|
@ -110,7 +110,8 @@
|
||||||
"password_required": "Das Passwort ist erforderlich",
|
"password_required": "Das Passwort ist erforderlich",
|
||||||
"login": "Anmelden",
|
"login": "Anmelden",
|
||||||
"create_room": "Registrieren und Raum erstellen",
|
"create_room": "Registrieren und Raum erstellen",
|
||||||
"or": "ODER"
|
"or": "ODER",
|
||||||
|
"invalid_message": ""
|
||||||
},
|
},
|
||||||
"profile": {
|
"profile": {
|
||||||
"title": "Mein Profil",
|
"title": "Mein Profil",
|
||||||
|
|
|
||||||
|
|
@ -115,7 +115,8 @@
|
||||||
"password_required": "Password is required",
|
"password_required": "Password is required",
|
||||||
"login": "Login",
|
"login": "Login",
|
||||||
"create_room": "Register & Create Room",
|
"create_room": "Register & Create Room",
|
||||||
"or": "OR"
|
"or": "OR",
|
||||||
|
"invalid_message": "Invalid username or password"
|
||||||
},
|
},
|
||||||
"profile": {
|
"profile": {
|
||||||
"title": "My Profile",
|
"title": "My Profile",
|
||||||
|
|
|
||||||
|
|
@ -76,7 +76,8 @@
|
||||||
"username": "Nombre de Usuario",
|
"username": "Nombre de Usuario",
|
||||||
"title": "Iniciar sesión",
|
"title": "Iniciar sesión",
|
||||||
"create_room": "",
|
"create_room": "",
|
||||||
"or": ""
|
"or": "",
|
||||||
|
"invalid_message": ""
|
||||||
},
|
},
|
||||||
"device_list": {
|
"device_list": {
|
||||||
"not_verified": "No ha sido Verificado",
|
"not_verified": "No ha sido Verificado",
|
||||||
|
|
|
||||||
|
|
@ -60,7 +60,8 @@
|
||||||
"login": "Kirjaudu sisään",
|
"login": "Kirjaudu sisään",
|
||||||
"password": "Anna salasana",
|
"password": "Anna salasana",
|
||||||
"password_required": "Salasana vaaditaan",
|
"password_required": "Salasana vaaditaan",
|
||||||
"create_room": "Rekisteröidy ja luo huone"
|
"create_room": "Rekisteröidy ja luo huone",
|
||||||
|
"invalid_message": ""
|
||||||
},
|
},
|
||||||
"join": {
|
"join": {
|
||||||
"joining_as": "Liityt jäsenenä:",
|
"joining_as": "Liityt jäsenenä:",
|
||||||
|
|
|
||||||
|
|
@ -110,7 +110,8 @@
|
||||||
"password_required": "Le mot de passe est obligatoire",
|
"password_required": "Le mot de passe est obligatoire",
|
||||||
"create_room": "S’inscrire et créer un salon",
|
"create_room": "S’inscrire et créer un salon",
|
||||||
"or": "OU",
|
"or": "OU",
|
||||||
"login": "Se connecter"
|
"login": "Se connecter",
|
||||||
|
"invalid_message": ""
|
||||||
},
|
},
|
||||||
"profile": {
|
"profile": {
|
||||||
"temporary_identity": "Cette identité est temporaire. Définissez un mot de passe pour l’utiliser à nouveau",
|
"temporary_identity": "Cette identité est temporaire. Définissez un mot de passe pour l’utiliser à nouveau",
|
||||||
|
|
|
||||||
|
|
@ -109,7 +109,8 @@
|
||||||
"login": "Accedi",
|
"login": "Accedi",
|
||||||
"create_room": "Registrati e crea una stanza",
|
"create_room": "Registrati e crea una stanza",
|
||||||
"or": "O",
|
"or": "O",
|
||||||
"username_required": "Il nome utente è richiesto"
|
"username_required": "Il nome utente è richiesto",
|
||||||
|
"invalid_message": ""
|
||||||
},
|
},
|
||||||
"profile": {
|
"profile": {
|
||||||
"title": "Il mio profilo",
|
"title": "Il mio profilo",
|
||||||
|
|
|
||||||
|
|
@ -102,7 +102,8 @@
|
||||||
"password": "Passord",
|
"password": "Passord",
|
||||||
"username": "Brukernavn",
|
"username": "Brukernavn",
|
||||||
"create_room": "",
|
"create_room": "",
|
||||||
"or": ""
|
"or": "",
|
||||||
|
"invalid_message": ""
|
||||||
},
|
},
|
||||||
"new_room": {
|
"new_room": {
|
||||||
"add_people": "Legg til folk",
|
"add_people": "Legg til folk",
|
||||||
|
|
|
||||||
|
|
@ -128,7 +128,8 @@
|
||||||
"password_required": "A senha é obrigatória",
|
"password_required": "A senha é obrigatória",
|
||||||
"login": "Entrar",
|
"login": "Entrar",
|
||||||
"create_room": "Cadastre-se e crie uma sala",
|
"create_room": "Cadastre-se e crie uma sala",
|
||||||
"or": "OU"
|
"or": "OU",
|
||||||
|
"invalid_message": ""
|
||||||
},
|
},
|
||||||
"profile": {
|
"profile": {
|
||||||
"title": "Meu perfil",
|
"title": "Meu perfil",
|
||||||
|
|
|
||||||
|
|
@ -135,7 +135,8 @@
|
||||||
"username": "Nume utilizator (ex: marta)",
|
"username": "Nume utilizator (ex: marta)",
|
||||||
"title": "Autentificare",
|
"title": "Autentificare",
|
||||||
"create_room": "",
|
"create_room": "",
|
||||||
"or": ""
|
"or": "",
|
||||||
|
"invalid_message": ""
|
||||||
},
|
},
|
||||||
"device_list": {
|
"device_list": {
|
||||||
"not_verified": "Nu a fost verificat",
|
"not_verified": "Nu a fost verificat",
|
||||||
|
|
|
||||||
|
|
@ -23,5 +23,8 @@
|
||||||
"download_progress": "{percentage}% බාගත වී ඇත",
|
"download_progress": "{percentage}% බාගත වී ඇත",
|
||||||
"file_prefix": "ගොනුව: ",
|
"file_prefix": "ගොනුව: ",
|
||||||
"you": "ඔබ"
|
"you": "ඔබ"
|
||||||
|
},
|
||||||
|
"login": {
|
||||||
|
"invalid_message": ""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -221,7 +221,8 @@
|
||||||
"username": "قوللانغۇچى ئىسمى (مەسىلەن: marta)",
|
"username": "قوللانغۇچى ئىسمى (مەسىلەن: marta)",
|
||||||
"title": "كىرىش",
|
"title": "كىرىش",
|
||||||
"create_room": "",
|
"create_room": "",
|
||||||
"or": ""
|
"or": "",
|
||||||
|
"invalid_message": ""
|
||||||
},
|
},
|
||||||
"device_list": {
|
"device_list": {
|
||||||
"not_verified": "دەلىللەنمىدى",
|
"not_verified": "دەلىللەنمىدى",
|
||||||
|
|
|
||||||
|
|
@ -50,7 +50,8 @@
|
||||||
"username_required": "需要用户名",
|
"username_required": "需要用户名",
|
||||||
"username": "用户名 (如: marta)",
|
"username": "用户名 (如: marta)",
|
||||||
"create_room": "",
|
"create_room": "",
|
||||||
"or": ""
|
"or": "",
|
||||||
|
"invalid_message": ""
|
||||||
},
|
},
|
||||||
"device_list": {
|
"device_list": {
|
||||||
"title": "设备",
|
"title": "设备",
|
||||||
|
|
|
||||||
|
|
@ -122,6 +122,7 @@
|
||||||
<v-container v-if="room" fluid class="input-area-outer">
|
<v-container v-if="room" fluid class="input-area-outer">
|
||||||
<!-- "Scroll to end"-button -->
|
<!-- "Scroll to end"-button -->
|
||||||
<v-btn
|
<v-btn
|
||||||
|
id="btn-scroll-to-end"
|
||||||
class="scroll-to-end"
|
class="scroll-to-end"
|
||||||
v-show="showScrollToEnd"
|
v-show="showScrollToEnd"
|
||||||
fab
|
fab
|
||||||
|
|
@ -150,6 +151,7 @@
|
||||||
<v-row class="input-area-inner align-center">
|
<v-row class="input-area-inner align-center">
|
||||||
<v-col class="flex-grow-1 flex-shrink-1 ma-0 pa-0">
|
<v-col class="flex-grow-1 flex-shrink-1 ma-0 pa-0">
|
||||||
<v-textarea
|
<v-textarea
|
||||||
|
id="message-input"
|
||||||
height="undefined"
|
height="undefined"
|
||||||
ref="messageInput"
|
ref="messageInput"
|
||||||
full-width
|
full-width
|
||||||
|
|
@ -174,6 +176,7 @@
|
||||||
v-if="editedEvent || replyToEvent"
|
v-if="editedEvent || replyToEvent"
|
||||||
>
|
>
|
||||||
<v-btn
|
<v-btn
|
||||||
|
id="btn-cancel-reply"
|
||||||
fab
|
fab
|
||||||
small
|
small
|
||||||
elevation="0"
|
elevation="0"
|
||||||
|
|
@ -189,6 +192,7 @@
|
||||||
v-if="!currentInput || currentInput.length == 0 || showRecorder"
|
v-if="!currentInput || currentInput.length == 0 || showRecorder"
|
||||||
>
|
>
|
||||||
<v-btn
|
<v-btn
|
||||||
|
id="btn-microphone"
|
||||||
v-if="canRecordAudio"
|
v-if="canRecordAudio"
|
||||||
class="mic-button"
|
class="mic-button"
|
||||||
ref="mic_button"
|
ref="mic_button"
|
||||||
|
|
@ -203,6 +207,7 @@
|
||||||
</v-btn>
|
</v-btn>
|
||||||
<v-btn
|
<v-btn
|
||||||
v-else
|
v-else
|
||||||
|
id="btn-microphone"
|
||||||
class="mic-button"
|
class="mic-button"
|
||||||
ref="mic_button"
|
ref="mic_button"
|
||||||
fab
|
fab
|
||||||
|
|
@ -221,6 +226,7 @@
|
||||||
v-else
|
v-else
|
||||||
>
|
>
|
||||||
<v-btn
|
<v-btn
|
||||||
|
id="btn-send"
|
||||||
fab
|
fab
|
||||||
small
|
small
|
||||||
elevation="0"
|
elevation="0"
|
||||||
|
|
@ -239,6 +245,7 @@
|
||||||
class="input-area-button text-center flex-grow-0 flex-shrink-1"
|
class="input-area-button text-center flex-grow-0 flex-shrink-1"
|
||||||
>
|
>
|
||||||
<v-btn
|
<v-btn
|
||||||
|
id="btn-stickers"
|
||||||
v-if="!showRecorder"
|
v-if="!showRecorder"
|
||||||
icon
|
icon
|
||||||
large
|
large
|
||||||
|
|
@ -254,6 +261,7 @@
|
||||||
<label icon flat ref="attachmentLabel">
|
<label icon flat ref="attachmentLabel">
|
||||||
<v-btn
|
<v-btn
|
||||||
v-if="!showRecorder"
|
v-if="!showRecorder"
|
||||||
|
id="btn-attach"
|
||||||
icon
|
icon
|
||||||
large
|
large
|
||||||
color="black"
|
color="black"
|
||||||
|
|
@ -263,6 +271,7 @@
|
||||||
<v-icon x-large>add_circle_outline</v-icon>
|
<v-icon x-large>add_circle_outline</v-icon>
|
||||||
</v-btn>
|
</v-btn>
|
||||||
<input
|
<input
|
||||||
|
id="attachment-picker"
|
||||||
ref="attachment"
|
ref="attachment"
|
||||||
type="file"
|
type="file"
|
||||||
name="attachment"
|
name="attachment"
|
||||||
|
|
@ -339,10 +348,11 @@
|
||||||
<v-divider></v-divider>
|
<v-divider></v-divider>
|
||||||
<v-card-actions>
|
<v-card-actions>
|
||||||
<v-spacer></v-spacer>
|
<v-spacer></v-spacer>
|
||||||
<v-btn color="primary" text @click="cancelSendAttachment">{{
|
<v-btn color="primary" text @click="cancelSendAttachment" id="btn-attachment-cancel">{{
|
||||||
$t("menu.cancel")
|
$t("menu.cancel")
|
||||||
}}</v-btn>
|
}}</v-btn>
|
||||||
<v-btn
|
<v-btn
|
||||||
|
id="btn-attachment-send"
|
||||||
color="primary"
|
color="primary"
|
||||||
text
|
text
|
||||||
@click="sendAttachment"
|
@click="sendAttachment"
|
||||||
|
|
@ -419,6 +429,7 @@
|
||||||
<v-card-actions>
|
<v-card-actions>
|
||||||
<v-spacer></v-spacer>
|
<v-spacer></v-spacer>
|
||||||
<v-btn
|
<v-btn
|
||||||
|
id="btn-ok"
|
||||||
color="primary"
|
color="primary"
|
||||||
text
|
text
|
||||||
@click="showNoRecordingAvailableDialog = false"
|
@click="showNoRecordingAvailableDialog = false"
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@
|
||||||
@click.stop="onHeaderClicked"
|
@click.stop="onHeaderClicked"
|
||||||
>
|
>
|
||||||
<v-avatar size="40" class="me-2">
|
<v-avatar size="40" class="me-2">
|
||||||
<v-img :src="room.avatar" />
|
<v-img :src="room.avatar || memberAvatar" />
|
||||||
</v-avatar>
|
</v-avatar>
|
||||||
</v-col>
|
</v-col>
|
||||||
|
|
||||||
|
|
@ -24,7 +24,7 @@
|
||||||
<div class="num-members">{{ $tc("room.members", memberCount) }}</div>
|
<div class="num-members">{{ $tc("room.members", memberCount) }}</div>
|
||||||
</v-col>
|
</v-col>
|
||||||
<v-col cols="auto" class="text-end ma-0 pa-0">
|
<v-col cols="auto" class="text-end ma-0 pa-0">
|
||||||
<v-btn text class="leave-button" @click.stop="leaveRoom">{{
|
<v-btn id="btn-leave-room" text class="leave-button" @click.stop="leaveRoom">{{
|
||||||
$t("room.leave")
|
$t("room.leave")
|
||||||
}}</v-btn>
|
}}</v-btn>
|
||||||
</v-col>
|
</v-col>
|
||||||
|
|
@ -88,8 +88,27 @@ export default {
|
||||||
room() {
|
room() {
|
||||||
return this.$matrix.currentRoom;
|
return this.$matrix.currentRoom;
|
||||||
},
|
},
|
||||||
|
memberAvatar() {
|
||||||
|
let roomMember;
|
||||||
|
if (this.room) {
|
||||||
|
this.room.getMembers().forEach(member => {
|
||||||
|
if(this.room.name === member.name) {
|
||||||
|
roomMember = member;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
if (roomMember) {
|
||||||
|
return roomMember.getAvatarUrl(
|
||||||
|
this.$matrix.matrixClient.getHomeserverUrl(),
|
||||||
|
40,
|
||||||
|
40,
|
||||||
|
"scale",
|
||||||
|
true
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
watch: {
|
watch: {
|
||||||
room: {
|
room: {
|
||||||
handler(newVal, ignoredOldVal) {
|
handler(newVal, ignoredOldVal) {
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@
|
||||||
<v-container fluid>
|
<v-container fluid>
|
||||||
<div class="room-name no-upper">{{ $t("new_room.new_room") }}</div>
|
<div class="room-name no-upper">{{ $t("new_room.new_room") }}</div>
|
||||||
<v-btn
|
<v-btn
|
||||||
|
id="btn-back"
|
||||||
text
|
text
|
||||||
class="header-button-left"
|
class="header-button-left"
|
||||||
v-show="$navigation && $navigation.canPop()"
|
v-show="$navigation && $navigation.canPop()"
|
||||||
|
|
@ -67,6 +68,7 @@
|
||||||
</template>
|
</template>
|
||||||
</v-select>
|
</v-select>
|
||||||
<v-checkbox
|
<v-checkbox
|
||||||
|
id="chk-remember-me"
|
||||||
class="mt-0"
|
class="mt-0"
|
||||||
v-model="rememberMe"
|
v-model="rememberMe"
|
||||||
:label="$t('join.remember_me')"
|
:label="$t('join.remember_me')"
|
||||||
|
|
@ -104,6 +106,7 @@
|
||||||
:disabled="step > steps.INITIAL"
|
:disabled="step > steps.INITIAL"
|
||||||
></v-text-field>
|
></v-text-field>
|
||||||
<v-btn
|
<v-btn
|
||||||
|
id="btn-room-create"
|
||||||
color="black"
|
color="black"
|
||||||
depressed
|
depressed
|
||||||
class="filled-button"
|
class="filled-button"
|
||||||
|
|
@ -201,6 +204,7 @@
|
||||||
<!-- </div> -->
|
<!-- </div> -->
|
||||||
</v-fade-transition>
|
</v-fade-transition>
|
||||||
<input
|
<input
|
||||||
|
id="room-avatar-picker"
|
||||||
ref="avatar"
|
ref="avatar"
|
||||||
type="file"
|
type="file"
|
||||||
name="avatar"
|
name="avatar"
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@
|
||||||
<div class="mt-2" v-if="roomJoinRule == 'public'">
|
<div class="mt-2" v-if="roomJoinRule == 'public'">
|
||||||
<i18n path="room_welcome.join_public" tag="span">
|
<i18n path="room_welcome.join_public" tag="span">
|
||||||
<template v-slot:link>
|
<template v-slot:link>
|
||||||
<a :href="publicRoomLink">{{ publicRoomLink }}</a>
|
<a :href="publicRoomLink" class="text-break">{{ publicRoomLink }}</a>
|
||||||
</template>
|
</template>
|
||||||
</i18n>
|
</i18n>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -19,7 +19,7 @@
|
||||||
{{ roomHistoryDescription }}
|
{{ roomHistoryDescription }}
|
||||||
</div>
|
</div>
|
||||||
<div class="text-right">
|
<div class="text-right">
|
||||||
<v-btn text @click.stop="$emit('close')" style="text-transform: none">{{
|
<v-btn id="btn-got-it" text @click.stop="$emit('close')" style="text-transform: none">{{
|
||||||
$t("room_welcome.got_it")
|
$t("room_welcome.got_it")
|
||||||
}}</v-btn>
|
}}</v-btn>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@
|
||||||
<div class="flex-grow-0 flex-shrink-0">
|
<div class="flex-grow-0 flex-shrink-0">
|
||||||
<div class="room-name">{{$t('invite.title')}}</div>
|
<div class="room-name">{{$t('invite.title')}}</div>
|
||||||
<v-btn
|
<v-btn
|
||||||
|
id="btn-invite-done"
|
||||||
:loading="loading"
|
:loading="loading"
|
||||||
text
|
text
|
||||||
class="header-button-right"
|
class="header-button-right"
|
||||||
|
|
|
||||||
|
|
@ -27,7 +27,7 @@
|
||||||
@click.native.stop="{}"
|
@click.native.stop="{}"
|
||||||
v-model="selectedProfile.name"
|
v-model="selectedProfile.name"
|
||||||
></v-text-field>
|
></v-text-field>
|
||||||
<v-checkbox class="mt-0" v-model="rememberMe" :label="$t('join.remember_me')" />
|
<v-checkbox id="chk-remember-me" class="mt-0" v-model="rememberMe" :label="$t('join.remember_me')" />
|
||||||
</v-col>
|
</v-col>
|
||||||
<v-col cols="2" sm="5">
|
<v-col cols="2" sm="5">
|
||||||
<v-avatar @click="showAvatarPickerList">
|
<v-avatar @click="showAvatarPickerList">
|
||||||
|
|
@ -51,6 +51,7 @@
|
||||||
</v-row>
|
</v-row>
|
||||||
|
|
||||||
<v-btn
|
<v-btn
|
||||||
|
id="btn-join"
|
||||||
class="btn-dark"
|
class="btn-dark"
|
||||||
large
|
large
|
||||||
@click.stop="handleJoin"
|
@click.stop="handleJoin"
|
||||||
|
|
@ -59,6 +60,7 @@
|
||||||
>{{ $t("join.enter_room") }}</v-btn
|
>{{ $t("join.enter_room") }}</v-btn
|
||||||
>
|
>
|
||||||
<v-btn
|
<v-btn
|
||||||
|
id="btn-join"
|
||||||
class="btn-dark"
|
class="btn-dark"
|
||||||
large
|
large
|
||||||
block
|
block
|
||||||
|
|
@ -80,6 +82,7 @@
|
||||||
</v-col>
|
</v-col>
|
||||||
<v-col>
|
<v-col>
|
||||||
<v-btn
|
<v-btn
|
||||||
|
id="btn-select-language"
|
||||||
class="language-more"
|
class="language-more"
|
||||||
@click="showSelectLanguageDialog = true"
|
@click="showSelectLanguageDialog = true"
|
||||||
>
|
>
|
||||||
|
|
|
||||||
|
|
@ -43,6 +43,7 @@
|
||||||
<v-row cols="12">
|
<v-row cols="12">
|
||||||
<v-col cols="6">
|
<v-col cols="6">
|
||||||
<v-btn
|
<v-btn
|
||||||
|
id="btn-back"
|
||||||
depressed
|
depressed
|
||||||
text
|
text
|
||||||
block
|
block
|
||||||
|
|
@ -53,6 +54,7 @@
|
||||||
</v-col>
|
</v-col>
|
||||||
<v-col cols="6" align="center">
|
<v-col cols="6" align="center">
|
||||||
<v-btn
|
<v-btn
|
||||||
|
id="btn-leave"
|
||||||
color="red"
|
color="red"
|
||||||
depressed
|
depressed
|
||||||
block
|
block
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@
|
||||||
<div class="room-name no-upper">{{ $t("login.title") }}</div>
|
<div class="room-name no-upper">{{ $t("login.title") }}</div>
|
||||||
</v-col>
|
</v-col>
|
||||||
<v-col class="text-right">
|
<v-col class="text-right">
|
||||||
<v-btn text v-if="showCloseButton" @click.stop="$navigation.pop">
|
<v-btn id="btn-close" text v-if="showCloseButton" @click.stop="$navigation.pop">
|
||||||
<v-icon>close</v-icon>
|
<v-icon>close</v-icon>
|
||||||
</v-btn>
|
</v-btn>
|
||||||
</v-col>
|
</v-col>
|
||||||
|
|
@ -37,6 +37,7 @@
|
||||||
:error-messages="userErrorMessage"
|
:error-messages="userErrorMessage"
|
||||||
required
|
required
|
||||||
v-on:keyup.enter="$refs.password.focus()"
|
v-on:keyup.enter="$refs.password.focus()"
|
||||||
|
v-on:keydown="hasError=false"
|
||||||
></v-text-field>
|
></v-text-field>
|
||||||
<v-text-field
|
<v-text-field
|
||||||
prepend-inner-icon="$vuetify.icons.password"
|
prepend-inner-icon="$vuetify.icons.password"
|
||||||
|
|
@ -51,6 +52,7 @@
|
||||||
:error="passErrorMessage != null"
|
:error="passErrorMessage != null"
|
||||||
:error-messages="passErrorMessage"
|
:error-messages="passErrorMessage"
|
||||||
required
|
required
|
||||||
|
v-on:keydown="hasError=false"
|
||||||
v-on:keyup.enter="
|
v-on:keyup.enter="
|
||||||
() => {
|
() => {
|
||||||
if (isValid && !loading) {
|
if (isValid && !loading) {
|
||||||
|
|
@ -59,12 +61,15 @@
|
||||||
}
|
}
|
||||||
"
|
"
|
||||||
></v-text-field>
|
></v-text-field>
|
||||||
|
<div class="error--text" v-if="hasError">{{ this.message }}</div>
|
||||||
<v-checkbox
|
<v-checkbox
|
||||||
|
id="chk-remember-me"
|
||||||
class="mt-0"
|
class="mt-0"
|
||||||
v-model="rememberMe"
|
v-model="rememberMe"
|
||||||
:label="$t('join.remember_me')"
|
:label="$t('join.remember_me')"
|
||||||
/>
|
/>
|
||||||
<v-btn
|
<v-btn
|
||||||
|
id="btn-login"
|
||||||
:disabled="!isValid || loading"
|
:disabled="!isValid || loading"
|
||||||
color="black"
|
color="black"
|
||||||
depressed
|
depressed
|
||||||
|
|
@ -76,6 +81,7 @@
|
||||||
>
|
>
|
||||||
<div class="mt-2 overline">{{ $t("login.or") }}</div>
|
<div class="mt-2 overline">{{ $t("login.or") }}</div>
|
||||||
<v-btn
|
<v-btn
|
||||||
|
id="btn-create-room"
|
||||||
color="primary"
|
color="primary"
|
||||||
depressed
|
depressed
|
||||||
block
|
block
|
||||||
|
|
@ -102,6 +108,7 @@ export default {
|
||||||
message: "",
|
message: "",
|
||||||
userErrorMessage: null,
|
userErrorMessage: null,
|
||||||
passErrorMessage: null,
|
passErrorMessage: null,
|
||||||
|
hasError: false
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
|
|
@ -142,19 +149,7 @@ export default {
|
||||||
this.passErrorMessage = null;
|
this.passErrorMessage = null;
|
||||||
},
|
},
|
||||||
deep: true,
|
deep: true,
|
||||||
},
|
}
|
||||||
message() {
|
|
||||||
if (this.message && this.message.toLowerCase().includes("user")) {
|
|
||||||
this.userErrorMessage = this.message;
|
|
||||||
} else {
|
|
||||||
this.userErrorMessage = null;
|
|
||||||
}
|
|
||||||
if (this.message && this.message.toLowerCase().includes("pass")) {
|
|
||||||
this.passErrorMessage = this.message;
|
|
||||||
} else {
|
|
||||||
this.passErrorMessage = null;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
handleLogin() {
|
handleLogin() {
|
||||||
|
|
@ -189,6 +184,10 @@ export default {
|
||||||
(error.data && error.data.error) ||
|
(error.data && error.data.error) ||
|
||||||
error.message ||
|
error.message ||
|
||||||
error.toString();
|
error.toString();
|
||||||
|
if(error.data.errcode ==='M_FORBIDDEN') {
|
||||||
|
this.message = this.$i18n.messages[this.$i18n.locale].login.invalid_message;
|
||||||
|
this.hasError = true;
|
||||||
|
}
|
||||||
console.log("Message set to ", this.message);
|
console.log("Message set to ", this.message);
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@
|
||||||
<v-container fluid>
|
<v-container fluid>
|
||||||
<div class="room-name no-upper">{{ $t("profile.title") }}</div>
|
<div class="room-name no-upper">{{ $t("profile.title") }}</div>
|
||||||
<v-btn
|
<v-btn
|
||||||
|
id="btn-close"
|
||||||
text
|
text
|
||||||
class="header-button-right"
|
class="header-button-right"
|
||||||
v-show="$navigation && $navigation.canPop()"
|
v-show="$navigation && $navigation.canPop()"
|
||||||
|
|
@ -26,6 +27,7 @@
|
||||||
<img v-if="userAvatar" :src="userAvatar" />
|
<img v-if="userAvatar" :src="userAvatar" />
|
||||||
<span v-else class="white--text">{{ userAvatarLetter }}</span>
|
<span v-else class="white--text">{{ userAvatarLetter }}</span>
|
||||||
<input
|
<input
|
||||||
|
id="avatar-picker"
|
||||||
ref="avatar"
|
ref="avatar"
|
||||||
type="file"
|
type="file"
|
||||||
name="avatar"
|
name="avatar"
|
||||||
|
|
@ -41,7 +43,7 @@
|
||||||
<!-- <div v-if="$matrix.currentUser.is_guest">
|
<!-- <div v-if="$matrix.currentUser.is_guest">
|
||||||
{{ $t("profile.temporary_identity") }}
|
{{ $t("profile.temporary_identity") }}
|
||||||
</div> -->
|
</div> -->
|
||||||
<v-btn depressed block class="outlined-button" @click.stop="logout">{{
|
<v-btn id="btn-logout" depressed block class="outlined-button" @click.stop="logout">{{
|
||||||
$t("menu.logout")
|
$t("menu.logout")
|
||||||
}}</v-btn>
|
}}</v-btn>
|
||||||
</v-col>
|
</v-col>
|
||||||
|
|
@ -101,10 +103,11 @@
|
||||||
<v-divider></v-divider>
|
<v-divider></v-divider>
|
||||||
<v-card-actions>
|
<v-card-actions>
|
||||||
<v-spacer></v-spacer>
|
<v-spacer></v-spacer>
|
||||||
<v-btn text @click="closeEditPasswordDialog">{{
|
<v-btn id="btn-password-cancel" text @click="closeEditPasswordDialog">{{
|
||||||
$t("menu.cancel")
|
$t("menu.cancel")
|
||||||
}}</v-btn>
|
}}</v-btn>
|
||||||
<v-btn
|
<v-btn
|
||||||
|
id="btn-password-set"
|
||||||
:disabled="!passwordsMatch"
|
:disabled="!passwordsMatch"
|
||||||
color="primary"
|
color="primary"
|
||||||
text
|
text
|
||||||
|
|
@ -136,10 +139,11 @@
|
||||||
<v-divider></v-divider>
|
<v-divider></v-divider>
|
||||||
<v-card-actions>
|
<v-card-actions>
|
||||||
<v-spacer></v-spacer>
|
<v-spacer></v-spacer>
|
||||||
<v-btn text @click="showEditDisplaynameDialog = false">{{
|
<v-btn id="btn-displayname-cancel" text @click="showEditDisplaynameDialog = false">{{
|
||||||
$t("menu.cancel")
|
$t("menu.cancel")
|
||||||
}}</v-btn>
|
}}</v-btn>
|
||||||
<v-btn
|
<v-btn
|
||||||
|
id="btn-displayname-set"
|
||||||
color="primary"
|
color="primary"
|
||||||
text
|
text
|
||||||
@click="
|
@click="
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,6 @@
|
||||||
v-model="showDialog"
|
v-model="showDialog"
|
||||||
content-class="profile-info-popup"
|
content-class="profile-info-popup"
|
||||||
class="ma-0 pa-0"
|
class="ma-0 pa-0"
|
||||||
:width="$vuetify.breakpoint.smAndUp ? '940px' : '95%'"
|
|
||||||
>
|
>
|
||||||
<v-card flat>
|
<v-card flat>
|
||||||
<v-card-text>
|
<v-card-text>
|
||||||
|
|
@ -31,7 +30,7 @@
|
||||||
class="avatar-32"
|
class="avatar-32"
|
||||||
size="32"
|
size="32"
|
||||||
color="#e0e0e0"
|
color="#e0e0e0"
|
||||||
@click.stop="showProfileInfo = true"
|
@click.stop="viewProfile"
|
||||||
>
|
>
|
||||||
<img v-if="userAvatar" :src="userAvatar" />
|
<img v-if="userAvatar" :src="userAvatar" />
|
||||||
<span v-else class="white--text">{{ userAvatarLetter }}</span>
|
<span v-else class="white--text">{{ userAvatarLetter }}</span>
|
||||||
|
|
@ -67,7 +66,7 @@
|
||||||
style="position: relative; width: 100%; height: 40px"
|
style="position: relative; width: 100%; height: 40px"
|
||||||
class="text-end"
|
class="text-end"
|
||||||
>
|
>
|
||||||
<v-btn class="new_room" text @click="createRoom">{{
|
<v-btn id="btn-new-room" class="new_room" text @click="createRoom">{{
|
||||||
$t("profile_info_popup.new_room")
|
$t("profile_info_popup.new_room")
|
||||||
}}</v-btn>
|
}}</v-btn>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -149,6 +148,8 @@ export default {
|
||||||
left: 10px;
|
left: 10px;
|
||||||
}
|
}
|
||||||
border-radius: 40px;
|
border-radius: 40px;
|
||||||
|
width: 95%;
|
||||||
|
|
||||||
&::before {
|
&::before {
|
||||||
content: "▲";
|
content: "▲";
|
||||||
position: fixed;
|
position: fixed;
|
||||||
|
|
@ -183,12 +184,18 @@ export default {
|
||||||
font-size: 13 * $chat-text-size !important;
|
font-size: 13 * $chat-text-size !important;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@media #{map-get($display-breakpoints, 'sm-and-up')} {
|
||||||
|
width: 70%;
|
||||||
|
}
|
||||||
|
|
||||||
@media #{map-get($display-breakpoints, 'lg-and-up')} {
|
@media #{map-get($display-breakpoints, 'lg-and-up')} {
|
||||||
overflow: unset;
|
overflow: unset;
|
||||||
width: $main-desktop-width;;
|
width: $main-desktop-width;;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 70px;
|
top: 70px;
|
||||||
right: unset;
|
right: unset;
|
||||||
|
width: $dialog-desktop-width;
|
||||||
|
|
||||||
&::before {
|
&::before {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,14 @@
|
||||||
<template>
|
<template>
|
||||||
<v-dialog v-model="showDialog" v-show="room" class="ma-0 pa-0" width="80%">
|
<v-dialog
|
||||||
|
v-model="showDialog"
|
||||||
|
v-show="room" class="ma-0 pa-0"
|
||||||
|
:width="$vuetify.breakpoint.smAndUp ? '940px' : '95%'"
|
||||||
|
>
|
||||||
<div v-if="timeout == -1" class="dialog-content text-center">
|
<div v-if="timeout == -1" class="dialog-content text-center">
|
||||||
<template>
|
<template>
|
||||||
<v-img contain height="28" src="@/assets/icons/trash_black.svg" />
|
<v-img contain height="28" src="@/assets/icons/trash_black.svg" />
|
||||||
<h2 class="dialog-title">{{ $t("purge_room.title") }}</h2>
|
<h2 class="dialog-title">{{ $t("purge_room.title") }}</h2>
|
||||||
<div class="dialog-text">
|
<div class="dialog-text text-center">
|
||||||
{{ $t("purge_room.info") }}
|
{{ $t("purge_room.info") }}
|
||||||
</div>
|
</div>
|
||||||
<div class="dialog-text">
|
<div class="dialog-text">
|
||||||
|
|
@ -15,6 +19,7 @@
|
||||||
<v-row cols="12">
|
<v-row cols="12">
|
||||||
<v-col cols="6">
|
<v-col cols="6">
|
||||||
<v-btn
|
<v-btn
|
||||||
|
id="btn-purge-room-cancel"
|
||||||
depressed
|
depressed
|
||||||
text
|
text
|
||||||
block
|
block
|
||||||
|
|
@ -26,6 +31,7 @@
|
||||||
</v-col>
|
</v-col>
|
||||||
<v-col cols="6" align="center">
|
<v-col cols="6" align="center">
|
||||||
<v-btn
|
<v-btn
|
||||||
|
id="btn-purge-room"
|
||||||
color="red"
|
color="red"
|
||||||
depressed
|
depressed
|
||||||
block
|
block
|
||||||
|
|
@ -60,6 +66,7 @@
|
||||||
<v-row cols="12">
|
<v-row cols="12">
|
||||||
<v-col cols="12">
|
<v-col cols="12">
|
||||||
<v-btn
|
<v-btn
|
||||||
|
id="btn-purge-room-undo"
|
||||||
depressed
|
depressed
|
||||||
text
|
text
|
||||||
block
|
block
|
||||||
|
|
|
||||||
|
|
@ -28,6 +28,7 @@
|
||||||
|
|
||||||
<v-btn
|
<v-btn
|
||||||
v-if="joinedToAnyRoom"
|
v-if="joinedToAnyRoom"
|
||||||
|
id="btn-goodbye-view-other"
|
||||||
color="white"
|
color="white"
|
||||||
text
|
text
|
||||||
class="close"
|
class="close"
|
||||||
|
|
@ -36,6 +37,7 @@
|
||||||
>
|
>
|
||||||
<v-btn
|
<v-btn
|
||||||
v-else
|
v-else
|
||||||
|
id="btn-goodbye-close"
|
||||||
color="white"
|
color="white"
|
||||||
text
|
text
|
||||||
class="close"
|
class="close"
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@
|
||||||
<v-container fluid>
|
<v-container fluid>
|
||||||
<div class="room-name no-upper">{{ $t("room_info.title") }}</div>
|
<div class="room-name no-upper">{{ $t("room_info.title") }}</div>
|
||||||
<v-btn
|
<v-btn
|
||||||
|
id="btn-back"
|
||||||
text
|
text
|
||||||
class="header-button-left"
|
class="header-button-left"
|
||||||
v-show="$navigation && $navigation.canPop()"
|
v-show="$navigation && $navigation.canPop()"
|
||||||
|
|
@ -13,6 +14,7 @@
|
||||||
<span>{{ $t("menu.back") }}</span>
|
<span>{{ $t("menu.back") }}</span>
|
||||||
</v-btn>
|
</v-btn>
|
||||||
<v-btn
|
<v-btn
|
||||||
|
id="btn-leave-room"
|
||||||
color="black"
|
color="black"
|
||||||
depressed
|
depressed
|
||||||
class="header-button-right filled-button me-3"
|
class="header-button-right filled-button me-3"
|
||||||
|
|
@ -55,6 +57,7 @@
|
||||||
<v-col align="center" class="mt-0 pt-0">
|
<v-col align="center" class="mt-0 pt-0">
|
||||||
<v-btn
|
<v-btn
|
||||||
v-if="publicRoomLinkCopied"
|
v-if="publicRoomLinkCopied"
|
||||||
|
id="btn-copy-room-link"
|
||||||
color="#DEE6FF"
|
color="#DEE6FF"
|
||||||
depressed
|
depressed
|
||||||
class="filled-button link-copied-in-place"
|
class="filled-button link-copied-in-place"
|
||||||
|
|
@ -63,6 +66,7 @@
|
||||||
>
|
>
|
||||||
<v-btn
|
<v-btn
|
||||||
v-else
|
v-else
|
||||||
|
id="btn-copy-room-link"
|
||||||
color="black"
|
color="black"
|
||||||
depressed
|
depressed
|
||||||
class="filled-button"
|
class="filled-button"
|
||||||
|
|
@ -166,6 +170,7 @@
|
||||||
<!-- PURGE ROOM -->
|
<!-- PURGE ROOM -->
|
||||||
<div class="members ma-3 pa-3 text-center">
|
<div class="members ma-3 pa-3 text-center">
|
||||||
<v-btn
|
<v-btn
|
||||||
|
id="btn-purge-room"
|
||||||
v-if="userCanPurgeRoom"
|
v-if="userCanPurgeRoom"
|
||||||
color="red"
|
color="red"
|
||||||
depressed
|
depressed
|
||||||
|
|
|
||||||
|
|
@ -14,6 +14,7 @@
|
||||||
<div class="h4">{{$t('room_info_sheet.this_room')}}</div>
|
<div class="h4">{{$t('room_info_sheet.this_room')}}</div>
|
||||||
<div class="h2">{{ roomName }}</div>
|
<div class="h2">{{ roomName }}</div>
|
||||||
<v-btn
|
<v-btn
|
||||||
|
id="btn-room-details"
|
||||||
height="20px"
|
height="20px"
|
||||||
color="black"
|
color="black"
|
||||||
class="filled-button"
|
class="filled-button"
|
||||||
|
|
|
||||||
|
|
@ -26,6 +26,7 @@
|
||||||
</v-list-item-content>
|
</v-list-item-content>
|
||||||
<v-list-item-action>
|
<v-list-item-action>
|
||||||
<v-btn
|
<v-btn
|
||||||
|
id="btn-accept"
|
||||||
class="filled-button"
|
class="filled-button"
|
||||||
depressed
|
depressed
|
||||||
color="black"
|
color="black"
|
||||||
|
|
@ -33,6 +34,7 @@
|
||||||
>{{ $t("menu.join") }}</v-btn
|
>{{ $t("menu.join") }}</v-btn
|
||||||
>
|
>
|
||||||
<v-btn
|
<v-btn
|
||||||
|
id="btn-reject"
|
||||||
class="filled-button"
|
class="filled-button"
|
||||||
color="black"
|
color="black"
|
||||||
@click.stop="rejectInvitation(room)"
|
@click.stop="rejectInvitation(room)"
|
||||||
|
|
|
||||||
|
|
@ -28,6 +28,7 @@
|
||||||
</v-card-text>
|
</v-card-text>
|
||||||
<v-card-actions>
|
<v-card-actions>
|
||||||
<v-btn
|
<v-btn
|
||||||
|
id="btn-done"
|
||||||
color="black"
|
color="black"
|
||||||
depressed
|
depressed
|
||||||
block
|
block
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,7 @@
|
||||||
<v-col cols="4" align="center">
|
<v-col cols="4" align="center">
|
||||||
<v-btn
|
<v-btn
|
||||||
v-if="state == states.RECORDING"
|
v-if="state == states.RECORDING"
|
||||||
|
id="btn-pause"
|
||||||
style="background-color: white; padding: 30px"
|
style="background-color: white; padding: 30px"
|
||||||
icon
|
icon
|
||||||
@click.stop="pauseRecording"
|
@click.stop="pauseRecording"
|
||||||
|
|
@ -24,6 +25,7 @@
|
||||||
</v-btn>
|
</v-btn>
|
||||||
<v-btn
|
<v-btn
|
||||||
v-else-if="state == states.RECORDED"
|
v-else-if="state == states.RECORDED"
|
||||||
|
id="btn-send"
|
||||||
style="background-color: #3ae17d; padding: 30px"
|
style="background-color: #3ae17d; padding: 30px"
|
||||||
icon
|
icon
|
||||||
:disabled="!recordedFile"
|
:disabled="!recordedFile"
|
||||||
|
|
@ -33,6 +35,7 @@
|
||||||
</v-btn>
|
</v-btn>
|
||||||
<v-btn
|
<v-btn
|
||||||
v-else
|
v-else
|
||||||
|
id="btn-record"
|
||||||
style="background-color: red; padding: 30px"
|
style="background-color: red; padding: 30px"
|
||||||
icon
|
icon
|
||||||
@click.stop="startRecording"
|
@click.stop="startRecording"
|
||||||
|
|
@ -41,7 +44,7 @@
|
||||||
</v-btn>
|
</v-btn>
|
||||||
</v-col>
|
</v-col>
|
||||||
<v-col cols="4" align="center">
|
<v-col cols="4" align="center">
|
||||||
<v-btn icon @click.stop="cancelRecording">
|
<v-btn id="btn-record-cancel" icon @click.stop="cancelRecording">
|
||||||
<v-icon color="white">close</v-icon>
|
<v-icon color="white">close</v-icon>
|
||||||
</v-btn>
|
</v-btn>
|
||||||
</v-col>
|
</v-col>
|
||||||
|
|
@ -97,12 +100,12 @@
|
||||||
</div>
|
</div>
|
||||||
</v-col>
|
</v-col>
|
||||||
<v-col cols="3">
|
<v-col cols="3">
|
||||||
<v-btn @click.stop="cancelRecording" text class="swipe-info">{{
|
<v-btn id="btn-record-cancel" @click.stop="cancelRecording" text class="swipe-info">{{
|
||||||
$t("menu.cancel")
|
$t("menu.cancel")
|
||||||
}}</v-btn>
|
}}</v-btn>
|
||||||
</v-col>
|
</v-col>
|
||||||
<v-col cols="3">
|
<v-col cols="3">
|
||||||
<v-btn @click.stop="stopRecording" icon class="swipe-info"
|
<v-btn id="btn-record-stop" @click.stop="stopRecording" icon class="swipe-info"
|
||||||
><v-icon color="white">stop</v-icon></v-btn
|
><v-icon color="white">stop</v-icon></v-btn
|
||||||
>
|
>
|
||||||
</v-col>
|
</v-col>
|
||||||
|
|
@ -124,7 +127,7 @@
|
||||||
</div>
|
</div>
|
||||||
</v-col>
|
</v-col>
|
||||||
<v-col align="right">
|
<v-col align="right">
|
||||||
<v-btn icon @click.stop="cancelRecording">
|
<v-btn id="btn-record-cancel" icon @click.stop="cancelRecording">
|
||||||
<v-icon color="white">close</v-icon>
|
<v-icon color="white">close</v-icon>
|
||||||
</v-btn>
|
</v-btn>
|
||||||
</v-col>
|
</v-col>
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,7 @@
|
||||||
</template>
|
</template>
|
||||||
</i18n>
|
</i18n>
|
||||||
</span>
|
</span>
|
||||||
<v-avatar color="#e0e0e0" right @click.stop="showProfileInfo = true">
|
<v-avatar color="#e0e0e0" right @click.stop="viewProfile">
|
||||||
<img v-if="userAvatar" :src="userAvatar" />
|
<img v-if="userAvatar" :src="userAvatar" />
|
||||||
<span v-else class="white--text">{{ userAvatarLetter }}</span>
|
<span v-else class="white--text">{{ userAvatarLetter }}</span>
|
||||||
</v-avatar>
|
</v-avatar>
|
||||||
|
|
|
||||||
|
|
@ -3,10 +3,10 @@
|
||||||
<audio ref="player" :src="src" @durationchange="updateDuration">
|
<audio ref="player" :src="src" @durationchange="updateDuration">
|
||||||
<slot></slot>
|
<slot></slot>
|
||||||
</audio>
|
</audio>
|
||||||
<v-btn v-if="playing" @click.stop="pause" icon
|
<v-btn v-if="playing" id="btn-pause" @click.stop="pause" icon
|
||||||
><v-icon size="20">pause</v-icon></v-btn
|
><v-icon size="20">pause</v-icon></v-btn
|
||||||
>
|
>
|
||||||
<v-btn v-else @click.stop="play" icon
|
<v-btn v-else id="btn-play" @click.stop="play" icon
|
||||||
><v-icon size="20">play_arrow</v-icon></v-btn
|
><v-icon size="20">play_arrow</v-icon></v-btn
|
||||||
>
|
>
|
||||||
<div class="play-time" style="flex: 1 0 80px">
|
<div class="play-time" style="flex: 1 0 80px">
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@
|
||||||
outgoing: !incoming,
|
outgoing: !incoming,
|
||||||
}"
|
}"
|
||||||
>
|
>
|
||||||
<v-btn v-if="incoming" text @click.stop="startPrivateChat" class="ma-0 pa-0"
|
<v-btn id="btn-private-chat" v-if="incoming" text @click.stop="startPrivateChat" class="ma-0 pa-0"
|
||||||
>{{ $t("menu.start_private_chat") }}</v-btn
|
>{{ $t("menu.start_private_chat") }}</v-btn
|
||||||
>
|
>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@
|
||||||
<!-- SLOT FOR CONTENT -->
|
<!-- SLOT FOR CONTENT -->
|
||||||
<slot></slot>
|
<slot></slot>
|
||||||
<div class="op-button" ref="opbutton">
|
<div class="op-button" ref="opbutton">
|
||||||
<v-btn icon @click.stop="showContextMenu($refs.opbutton)"
|
<v-btn id="btn-more" icon @click.stop="showContextMenu($refs.opbutton)"
|
||||||
><v-icon>more_vert</v-icon></v-btn
|
><v-icon>more_vert</v-icon></v-btn
|
||||||
>
|
>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,14 @@
|
||||||
<template>
|
<template>
|
||||||
<div :class="{'message-operations':true,'incoming':incoming,'outgoing':!incoming}">
|
<div :class="{'message-operations':true,'incoming':incoming,'outgoing':!incoming}">
|
||||||
<template v-for="(item,index) in emojis">
|
<template v-for="(item,index) in emojis">
|
||||||
<v-btn v-if="index < maxRecents" :key="item.data" icon @click.stop="addQuickReaction(item.data)" class="ma-0 pa-0" dense>
|
<v-btn v-if="index < maxRecents" :key="item.data" id="btn-quick-reaction" icon @click.stop="addQuickReaction(item.data)" class="ma-0 pa-0" dense>
|
||||||
<span class="recent-emoji">{{ item.data }}</span>
|
<span class="recent-emoji">{{ item.data }}</span>
|
||||||
</v-btn>
|
</v-btn>
|
||||||
</template>
|
</template>
|
||||||
<v-btn v-if="incoming" icon @click.stop="addReply" class="ma-0 pa-0" large>
|
<v-btn v-if="incoming" id="btn-reply" icon @click.stop="addReply" class="ma-0 pa-0" large>
|
||||||
<v-icon>reply</v-icon>
|
<v-icon>reply</v-icon>
|
||||||
</v-btn>
|
</v-btn>
|
||||||
<v-btn icon @click.stop="more" class="ma-0 pa-0" large>
|
<v-btn id="btn-more" icon @click.stop="more" class="ma-0 pa-0" large>
|
||||||
<v-icon>more_horiz</v-icon>
|
<v-icon>more_horiz</v-icon>
|
||||||
</v-btn> </div>
|
</v-btn> </div>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
||||||
|
|
@ -9,25 +9,25 @@
|
||||||
<v-container fluid>
|
<v-container fluid>
|
||||||
<v-row>
|
<v-row>
|
||||||
<v-col v-if="incoming">
|
<v-col v-if="incoming">
|
||||||
<v-btn icon @click.stop="addReply" class="ma-0 pa-0">
|
<v-btn id="btn-add-reply" icon @click.stop="addReply" class="ma-0 pa-0">
|
||||||
<v-icon>reply</v-icon>
|
<v-icon>reply</v-icon>
|
||||||
</v-btn>
|
</v-btn>
|
||||||
<div>{{$t('menu.reply')}}</div>
|
<div>{{$t('menu.reply')}}</div>
|
||||||
</v-col>
|
</v-col>
|
||||||
<v-col v-if="isEditable">
|
<v-col v-if="isEditable">
|
||||||
<v-btn icon @click.stop="edit" class="ma-0 pa-0">
|
<v-btn id="btn-edit" icon @click.stop="edit" class="ma-0 pa-0">
|
||||||
<v-icon>edit</v-icon>
|
<v-icon>edit</v-icon>
|
||||||
</v-btn>
|
</v-btn>
|
||||||
<div>{{$t('menu.edit')}}</div>
|
<div>{{$t('menu.edit')}}</div>
|
||||||
</v-col>
|
</v-col>
|
||||||
<v-col v-if="isRedactable">
|
<v-col v-if="isRedactable">
|
||||||
<v-btn icon @click.stop="redact" class="ma-0 pa-0">
|
<v-btn id="btn-redact" icon @click.stop="redact" class="ma-0 pa-0">
|
||||||
<v-icon>delete</v-icon>
|
<v-icon>delete</v-icon>
|
||||||
</v-btn>
|
</v-btn>
|
||||||
<div>{{$t('menu.delete')}}</div>
|
<div>{{$t('menu.delete')}}</div>
|
||||||
</v-col>
|
</v-col>
|
||||||
<v-col v-if="isDownloadable">
|
<v-col v-if="isDownloadable">
|
||||||
<v-btn icon @click.stop="download" class="ma-0 pa-0">
|
<v-btn id="btn-download" icon @click.stop="download" class="ma-0 pa-0">
|
||||||
<v-icon>get_app</v-icon>
|
<v-icon>get_app</v-icon>
|
||||||
</v-btn>
|
</v-btn>
|
||||||
<div>{{$t('menu.download')}}</div>
|
<div>{{$t('menu.download')}}</div>
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@
|
||||||
|
|
||||||
<QuickReactions :event="event" :reactions="reactions" />
|
<QuickReactions :event="event" :reactions="reactions" />
|
||||||
<div class="op-button" ref="opbutton">
|
<div class="op-button" ref="opbutton">
|
||||||
<v-btn icon @click.stop="showContextMenu($refs.opbutton)"
|
<v-btn id="btn-show-menu" icon @click.stop="showContextMenu($refs.opbutton)"
|
||||||
><v-icon>more_vert</v-icon></v-btn
|
><v-icon>more_vert</v-icon></v-btn
|
||||||
>
|
>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue