rebuilt
This commit is contained in:
@@ -121,6 +121,7 @@ class InfoView extends React.Component {
|
||||
this.onSubsUpdated = this.onSubsUpdated.bind(this);
|
||||
this.handleImageChanged = this.handleImageChanged.bind(this);
|
||||
this.handleMuted = this.handleMuted.bind(this);
|
||||
this.handleUnarchive = this.handleUnarchive.bind(this);
|
||||
this.handlePermissionsChanged = this.handlePermissionsChanged.bind(this);
|
||||
this.handleLaunchPermissionsEditor = this.handleLaunchPermissionsEditor.bind(this);
|
||||
this.handleShowAddMembers = this.handleShowAddMembers.bind(this);
|
||||
@@ -210,6 +211,7 @@ class InfoView extends React.Component {
|
||||
avatar: makeImageUrl(topic.public ? topic.public.photo : null),
|
||||
trustedBadges: badges,
|
||||
private: _clip(topic.private ? topic.private.comment : null, MAX_TITLE_LENGTH),
|
||||
archived: topic.isArchived(),
|
||||
address: topic.name,
|
||||
groupTopic: topic.isGroupType(),
|
||||
channel: topic.isChannelType() || topic.chan,
|
||||
@@ -267,6 +269,10 @@ class InfoView extends React.Component {
|
||||
this.props.onChangePermissions(this.props.topic, checked ? '-P' : '+P');
|
||||
}
|
||||
|
||||
handleUnarchive(ignored, ignored2) {
|
||||
this.props.onTopicUnArchive(this.props.topic);
|
||||
}
|
||||
|
||||
handlePermissionsChanged(which, perm) {
|
||||
switch (which) {
|
||||
case 'auth':
|
||||
@@ -569,6 +575,17 @@ class InfoView extends React.Component {
|
||||
</label>
|
||||
<CheckBox name="P" checked={this.state.muted} onChange={this.handleMuted} />
|
||||
</div>
|
||||
{this.state.archived ?
|
||||
<div className="panel-form-row">
|
||||
<label>
|
||||
<FormattedMessage id="label_unarchive_topic" defaultMessage="Archived:"
|
||||
description="Label for unarchiving the topic" />
|
||||
</label>
|
||||
<CheckBox name="archived" checked={true} onChange={this.handleUnarchive} />
|
||||
</div>
|
||||
:
|
||||
null
|
||||
}
|
||||
<div className="hr" />
|
||||
<div className="panel-form-row">
|
||||
<a href="#" className="flat-button" onClick={(e) => {e.preventDefault(); this.props.onNavigate('security');}}>
|
||||
|
||||
@@ -12,7 +12,8 @@ export default class PasswordResetView extends React.PureComponent {
|
||||
|
||||
this.state = {
|
||||
email: '',
|
||||
password: ''
|
||||
password: '',
|
||||
sent: false
|
||||
};
|
||||
|
||||
this.handleSubmit = this.handleSubmit.bind(this);
|
||||
@@ -21,7 +22,7 @@ export default class PasswordResetView extends React.PureComponent {
|
||||
}
|
||||
|
||||
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});
|
||||
}
|
||||
|
||||
@@ -29,8 +30,14 @@ export default class PasswordResetView extends React.PureComponent {
|
||||
e.preventDefault();
|
||||
if (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 {
|
||||
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() {
|
||||
let reset = (this.state.token && this.state.scheme);
|
||||
return (
|
||||
<form id="password-reset-form" onSubmit={this.handleSubmit}>
|
||||
{reset ?
|
||||
{(this.state.token && this.state.scheme) ?
|
||||
<FormattedMessage id="new_password_placeholder" defaultMessage="Enter new password"
|
||||
description="Placeholder for entering new password">{
|
||||
(placeholder) => <VisiblePassword
|
||||
@@ -56,7 +62,17 @@ export default class PasswordResetView extends React.PureComponent {
|
||||
required={true} autoFocus={true}
|
||||
onChange={this.handlePasswordChange} />
|
||||
}</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">
|
||||
<FormattedMessage id="label_reset_password"
|
||||
@@ -75,8 +91,13 @@ export default class PasswordResetView extends React.PureComponent {
|
||||
</>
|
||||
}
|
||||
<div className="dialog-buttons">
|
||||
<button className="primary" type="submit">{reset ?
|
||||
<FormattedMessage id="button_reset" defaultMessage="Reset" description="Button [Reset]" /> :
|
||||
<button className="primary" type="submit">{
|
||||
(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"
|
||||
description="Button [Send request]" />
|
||||
}</button>
|
||||
|
||||
@@ -245,8 +245,8 @@ class SidepanelView extends React.Component {
|
||||
view === 'reset' ?
|
||||
<PasswordResetView
|
||||
onRequest={this.props.onPasswordResetRequest}
|
||||
onReset={this.props.onResetPassword} /> :
|
||||
|
||||
onReset={this.props.onResetPassword}
|
||||
onCancel={this.props.onCancel} /> :
|
||||
null}
|
||||
</div>
|
||||
);
|
||||
|
||||
@@ -120,6 +120,7 @@ class TinodeWeb extends React.Component {
|
||||
this.handleStartTopicRequest = this.handleStartTopicRequest.bind(this);
|
||||
this.handleNewTopicCreated = this.handleNewTopicCreated.bind(this);
|
||||
this.handleTopicUpdateRequest = this.handleTopicUpdateRequest.bind(this);
|
||||
this.handleUnarchive = this.handleUnarchive.bind(this);
|
||||
this.handleChangePermissions = this.handleChangePermissions.bind(this);
|
||||
this.handleTagsUpdateRequest = this.handleTagsUpdateRequest.bind(this);
|
||||
this.handleLogout = this.handleLogout.bind(this);
|
||||
@@ -1238,7 +1239,8 @@ class TinodeWeb extends React.Component {
|
||||
}
|
||||
params.public = pub;
|
||||
}
|
||||
if (priv) {
|
||||
|
||||
if (typeof priv == 'string') {
|
||||
params.private = (priv === Tinode.DEL_CHAR) ?
|
||||
Tinode.DEL_CHAR : {comment: priv};
|
||||
}
|
||||
@@ -1251,6 +1253,13 @@ class TinodeWeb extends React.Component {
|
||||
}
|
||||
}
|
||||
|
||||
handleUnarchive(topicName) {
|
||||
const topic = this.tinode.getTopic(topicName);
|
||||
if (topic) {
|
||||
topic.archive(false);
|
||||
}
|
||||
}
|
||||
|
||||
handleUpdatePasswordRequest(password) {
|
||||
this.handleError();
|
||||
|
||||
@@ -1433,7 +1442,7 @@ class TinodeWeb extends React.Component {
|
||||
subscribed && deleter ? 'messages_clear_hard' : null,
|
||||
muted ? (blocked ? null : 'topic_unmute') : 'topic_mute',
|
||||
self_blocked ? 'topic_unblock' : 'topic_block',
|
||||
!archived ? 'topic_restore' : 'topic_archive',
|
||||
archived ? 'topic_restore' : 'topic_archive',
|
||||
'topic_delete'
|
||||
];
|
||||
}
|
||||
@@ -1521,7 +1530,7 @@ class TinodeWeb extends React.Component {
|
||||
|
||||
handlePasswordResetRequest(method, value) {
|
||||
// If already connected, connnect() will return a resolved promise.
|
||||
this.tinode.connect()
|
||||
return this.tinode.connect()
|
||||
.then(() => {
|
||||
return this.tinode.requestResetAuthSecret('basic', method, value);
|
||||
})
|
||||
@@ -1708,6 +1717,7 @@ class TinodeWeb extends React.Component {
|
||||
onReportTopic={this.handleReportTopic}
|
||||
onAddMember={this.handleManageGroupMembers}
|
||||
onTopicTagsUpdateRequest={this.handleTagsUpdateRequest}
|
||||
onTopicUnArchive={this.handleUnarchive}
|
||||
onInitFind={this.tnInitFind}
|
||||
onError={this.handleError}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user