Merge branch 'devel' into features

This commit is contained in:
aforge
2021-08-22 14:43:24 +03:00
18 changed files with 117 additions and 36 deletions
+7
View File
@@ -373,6 +373,10 @@ div.alert .content {
color: #2196f3; /* blue 500 */ color: #2196f3; /* blue 500 */
} }
.green {
color: #388e3c; /* green 700 */
}
.red { .red {
color: #D32F2F; /* red 700 */ color: #D32F2F; /* red 700 */
} }
@@ -1936,6 +1940,9 @@ ul.tabbar li.active > a {
.material-icons.big { .material-icons.big {
font-size: 2.4rem; font-size: 2.4rem;
} }
.material-icons.huge {
font-size: 4rem;
}
#self-avatar .material-icons { #self-avatar .material-icons {
font-size: 2.4rem; font-size: 2.4rem;
+1 -1
View File
File diff suppressed because one or more lines are too long
+2 -1
View File
@@ -176,5 +176,6 @@
"drafty_attachment": "Dateianhang", "drafty_attachment": "Dateianhang",
"drafty_form": "Formular:", "drafty_form": "Formular:",
"drafty_image": "Bild", "drafty_image": "Bild",
"topic_delete": "Chat löschen" "topic_delete": "Chat löschen",
"password_reset_email_sent": "Eine E-Mail wurde an {email} gesendet. Folgen Sie den Anweisungen in der E-Mail, um Ihr Passwort zurückzusetzen."
} }
+1
View File
@@ -120,6 +120,7 @@
"numeric_confirmation_code_prompt": "Numbers only", "numeric_confirmation_code_prompt": "Numbers only",
"online_now": "online now", "online_now": "online now",
"password_prompt": "Password", "password_prompt": "Password",
"password_reset_email_sent": "An email has been sent to {email}. Follow the directions in the email to reset your password.",
"password_unchanged_prompt": "Unchanged", "password_unchanged_prompt": "Unchanged",
"peers_messaging_disabled": "Peer's messaging is disabled.", "peers_messaging_disabled": "Peer's messaging is disabled.",
"permission_admin": "Approve ({val})", "permission_admin": "Approve ({val})",
+2 -1
View File
@@ -176,5 +176,6 @@
"drafty_attachment": "Archivo", "drafty_attachment": "Archivo",
"drafty_form": "Formulario:", "drafty_form": "Formulario:",
"drafty_image": "Imagen", "drafty_image": "Imagen",
"topic_delete": "Eliminar chat" "topic_delete": "Eliminar chat",
"password_reset_email_sent": "Se ha enviado un correo electrónico a {email}. Siga las instrucciones del correo electrónico para restablecer su contraseña."
} }
+4
View File
@@ -481,6 +481,10 @@
"defaultMessage": "Password", "defaultMessage": "Password",
"description": "Placeholder/prompt for entering password" "description": "Placeholder/prompt for entering password"
}, },
"password_reset_email_sent": {
"defaultMessage": "An email has been sent to {email}. Follow the directions in the email to reset your password.",
"description": "Notification that the email with password reset instructions has been sent"
},
"password_unchanged_prompt": { "password_unchanged_prompt": {
"defaultMessage": "Unchanged", "defaultMessage": "Unchanged",
"description": "Message in editor while password is unchanged" "description": "Message in editor while password is unchanged"
+2 -1
View File
@@ -179,5 +179,6 @@
"drafty_attachment": "부착", "drafty_attachment": "부착",
"drafty_form": "형태:", "drafty_form": "형태:",
"drafty_image": "이미지", "drafty_image": "이미지",
"topic_delete": "채팅 삭제" "topic_delete": "채팅 삭제",
"password_reset_email_sent": "이메일이 {email}(으)로 전송되었습니다. 이메일의 지침에 따라 비밀번호를 재설정하세요."
} }
+2 -1
View File
@@ -176,5 +176,6 @@
"drafty_attachment": "Atasament", "drafty_attachment": "Atasament",
"drafty_form": "Formă:", "drafty_form": "Formă:",
"drafty_image": "Imagine", "drafty_image": "Imagine",
"topic_delete": "Ștergeți Chat" "topic_delete": "Ștergeți Chat",
"password_reset_email_sent": "Un e-mail a fost trimis către {email}. Urmați instrucțiunile din e-mail pentru a vă reseta parola."
} }
+2 -1
View File
@@ -176,5 +176,6 @@
"drafty_attachment": "Аттачмент", "drafty_attachment": "Аттачмент",
"drafty_form": "Форма:", "drafty_form": "Форма:",
"drafty_image": "Картинка", "drafty_image": "Картинка",
"topic_delete": "Удалить чат" "topic_delete": "Удалить чат",
"password_reset_email_sent": "Сообщение было отправлено на адрес {email}. Следуйте инструкциям в сообщении, чтобы изменить пароль."
} }
+2 -1
View File
@@ -176,5 +176,6 @@
"upload_finishing": "正在完成...", "upload_finishing": "正在完成...",
"user_not_found": "找不到", "user_not_found": "找不到",
"validate_credential_action": "確認", "validate_credential_action": "確認",
"topic_delete": "刪除聊天" "topic_delete": "刪除聊天",
"password_reset_email_sent": "一封電子郵件已發送至 {email}。按照電子郵件中的說明重置密碼。"
} }
+2 -1
View File
@@ -176,5 +176,6 @@
"drafty_attachment": "附件", "drafty_attachment": "附件",
"drafty_form": "形式:", "drafty_form": "形式:",
"drafty_image": "图像", "drafty_image": "图像",
"topic_delete": "删除聊天" "topic_delete": "删除聊天",
"password_reset_email_sent": "一封电子邮件已发送至 {email}。按照电子邮件中的说明重置密码。"
} }
+15 -7
View File
@@ -177,7 +177,8 @@
"drafty_attachment": "Dateianhang", "drafty_attachment": "Dateianhang",
"drafty_form": "Formular:", "drafty_form": "Formular:",
"drafty_image": "Bild", "drafty_image": "Bild",
"topic_delete": "Chat löschen" "topic_delete": "Chat löschen",
"password_reset_email_sent": "Eine E-Mail wurde an {email} gesendet. Folgen Sie den Anweisungen in der E-Mail, um Ihr Passwort zurückzusetzen."
}, },
"en": { "en": {
"action_block_contact": "Block Contact", "action_block_contact": "Block Contact",
@@ -302,6 +303,7 @@
"numeric_confirmation_code_prompt": "Numbers only", "numeric_confirmation_code_prompt": "Numbers only",
"online_now": "online now", "online_now": "online now",
"password_prompt": "Password", "password_prompt": "Password",
"password_reset_email_sent": "An email has been sent to {email}. Follow the directions in the email to reset your password.",
"password_unchanged_prompt": "Unchanged", "password_unchanged_prompt": "Unchanged",
"peers_messaging_disabled": "Peer's messaging is disabled.", "peers_messaging_disabled": "Peer's messaging is disabled.",
"permission_admin": "Approve ({val})", "permission_admin": "Approve ({val})",
@@ -538,7 +540,8 @@
"drafty_attachment": "Archivo", "drafty_attachment": "Archivo",
"drafty_form": "Formulario:", "drafty_form": "Formulario:",
"drafty_image": "Imagen", "drafty_image": "Imagen",
"topic_delete": "Eliminar chat" "topic_delete": "Eliminar chat",
"password_reset_email_sent": "Se ha enviado un correo electrónico a {email}. Siga las instrucciones del correo electrónico para restablecer su contraseña."
}, },
"ko": { "ko": {
"validate_credential_action": "확인", "validate_credential_action": "확인",
@@ -718,7 +721,8 @@
"drafty_attachment": "부착", "drafty_attachment": "부착",
"drafty_form": "형태:", "drafty_form": "형태:",
"drafty_image": "이미지", "drafty_image": "이미지",
"topic_delete": "채팅 삭제" "topic_delete": "채팅 삭제",
"password_reset_email_sent": "이메일이 {email}(으)로 전송되었습니다. 이메일의 지침에 따라 비밀번호를 재설정하세요."
}, },
"ro": { "ro": {
"validate_credential_action": "confirmă", "validate_credential_action": "confirmă",
@@ -898,7 +902,8 @@
"drafty_attachment": "Atasament", "drafty_attachment": "Atasament",
"drafty_form": "Formă:", "drafty_form": "Formă:",
"drafty_image": "Imagine", "drafty_image": "Imagine",
"topic_delete": "Ștergeți Chat" "topic_delete": "Ștergeți Chat",
"password_reset_email_sent": "Un e-mail a fost trimis către {email}. Urmați instrucțiunile din e-mail pentru a vă reseta parola."
}, },
"ru": { "ru": {
"contacts_not_found": "Чатов нет<br />¯∖_(ツ)_/¯", "contacts_not_found": "Чатов нет<br />¯∖_(ツ)_/¯",
@@ -1078,7 +1083,8 @@
"drafty_attachment": "Аттачмент", "drafty_attachment": "Аттачмент",
"drafty_form": "Форма:", "drafty_form": "Форма:",
"drafty_image": "Картинка", "drafty_image": "Картинка",
"topic_delete": "Удалить чат" "topic_delete": "Удалить чат",
"password_reset_email_sent": "Сообщение было отправлено на адрес {email}. Следуйте инструкциям в сообщении, чтобы изменить пароль."
}, },
"zh-TW": { "zh-TW": {
"action_block_contact": "封鎖聯絡人", "action_block_contact": "封鎖聯絡人",
@@ -1258,7 +1264,8 @@
"upload_finishing": "正在完成...", "upload_finishing": "正在完成...",
"user_not_found": "找不到", "user_not_found": "找不到",
"validate_credential_action": "確認", "validate_credential_action": "確認",
"topic_delete": "刪除聊天" "topic_delete": "刪除聊天",
"password_reset_email_sent": "一封電子郵件已發送至 {email}。按照電子郵件中的說明重置密碼。"
}, },
"zh": { "zh": {
"archived_contacts": "已归档联系人 ({count})", "archived_contacts": "已归档联系人 ({count})",
@@ -1438,6 +1445,7 @@
"drafty_attachment": "附件", "drafty_attachment": "附件",
"drafty_form": "形式:", "drafty_form": "形式:",
"drafty_image": "图像", "drafty_image": "图像",
"topic_delete": "删除聊天" "topic_delete": "删除聊天",
"password_reset_email_sent": "一封电子邮件已发送至 {email}。按照电子邮件中的说明重置密码。"
} }
} }
+29 -8
View File
@@ -12,7 +12,8 @@ export default class PasswordResetView extends React.PureComponent {
this.state = { this.state = {
email: '', email: '',
password: '' password: '',
sent: false
}; };
this.handleSubmit = this.handleSubmit.bind(this); this.handleSubmit = this.handleSubmit.bind(this);
@@ -21,7 +22,7 @@ export default class PasswordResetView extends React.PureComponent {
} }
componentDidMount() { componentDidMount() {
let parsed = HashNavigation.parseUrlHash(window.location.hash); const parsed = HashNavigation.parseUrlHash(window.location.hash);
this.setState({token: parsed.params.token, scheme: parsed.params.scheme}); this.setState({token: parsed.params.token, scheme: parsed.params.scheme});
} }
@@ -29,8 +30,14 @@ export default class PasswordResetView extends React.PureComponent {
e.preventDefault(); e.preventDefault();
if (this.state.token) { if (this.state.token) {
this.props.onReset(this.state.scheme, this.state.password.trim(), this.state.token); this.props.onReset(this.state.scheme, this.state.password.trim(), this.state.token);
} else if (this.state.sent) {
this.props.onCancel();
} else { } else {
this.props.onRequest('email', this.state.email.trim()); const email = this.state.email.trim();
this.setState({email: email});
this.props.onRequest('email', email).then(() => {
this.setState({sent: true});
});
} }
} }
@@ -43,10 +50,9 @@ export default class PasswordResetView extends React.PureComponent {
} }
render() { render() {
let reset = (this.state.token && this.state.scheme);
return ( return (
<form id="password-reset-form" onSubmit={this.handleSubmit}> <form id="password-reset-form" onSubmit={this.handleSubmit}>
{reset ? {(this.state.token && this.state.scheme) ?
<FormattedMessage id="new_password_placeholder" defaultMessage="Enter new password" <FormattedMessage id="new_password_placeholder" defaultMessage="Enter new password"
description="Placeholder for entering new password">{ description="Placeholder for entering new password">{
(placeholder) => <VisiblePassword (placeholder) => <VisiblePassword
@@ -56,7 +62,17 @@ export default class PasswordResetView extends React.PureComponent {
required={true} autoFocus={true} required={true} autoFocus={true}
onChange={this.handlePasswordChange} /> onChange={this.handlePasswordChange} />
}</FormattedMessage> }</FormattedMessage>
: : this.state.sent ?
<>
<br/>
<center><i className="material-icons huge green">task_alt</i></center>
<br/>
<center><FormattedMessage id="password_reset_email_sent"
defaultMessage="An email has been sent to {email}. Follow the directions in the email to reset your password."
values={{ email: <tt>{this.state.email}</tt> }}
description="Notification that the email with password reset instructions has been sent" /></center>
</>
:
<> <>
<label htmlFor="inputEmail"> <label htmlFor="inputEmail">
<FormattedMessage id="label_reset_password" <FormattedMessage id="label_reset_password"
@@ -75,8 +91,13 @@ export default class PasswordResetView extends React.PureComponent {
</> </>
} }
<div className="dialog-buttons"> <div className="dialog-buttons">
<button className="primary" type="submit">{reset ? <button className="primary" type="submit">{
<FormattedMessage id="button_reset" defaultMessage="Reset" description="Button [Reset]" /> : (this.state.token && this.state.scheme) ?
<FormattedMessage id="button_reset" defaultMessage="Reset" description="Button [Reset]" />
: this.state.sent ?
<FormattedMessage id="button_ok" defaultMessage="OK"
description="Button [OK]" />
:
<FormattedMessage id="button_send_request" defaultMessage="Send request" <FormattedMessage id="button_send_request" defaultMessage="Send request"
description="Button [Send request]" /> description="Button [Send request]" />
}</button> }</button>
+1 -1
View File
@@ -1496,7 +1496,7 @@ class TinodeWeb extends React.Component {
handlePasswordResetRequest(method, value) { handlePasswordResetRequest(method, value) {
// If already connected, connnect() will return a resolved promise. // If already connected, connnect() will return a resolved promise.
this.tinode.connect() return this.tinode.connect()
.then(() => { .then(() => {
return this.tinode.requestResetAuthSecret('basic', method, value); return this.tinode.requestResetAuthSecret('basic', method, value);
}) })
+42 -9
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long