mirror of
https://github.com/flarum/core.git
synced 2025-08-09 18:07:02 +02:00
update: forum/components/EditUserModal
This commit is contained in:
committed by
Franz Liedke
parent
0172dfd79c
commit
3e79c3e3ff
@@ -9,22 +9,22 @@ import ItemList from '../../common/utils/ItemList';
|
|||||||
* The `EditUserModal` component displays a modal dialog with a login form.
|
* The `EditUserModal` component displays a modal dialog with a login form.
|
||||||
*/
|
*/
|
||||||
export default class EditUserModal extends Modal {
|
export default class EditUserModal extends Modal {
|
||||||
init() {
|
oninit(vnode) {
|
||||||
super.init();
|
super.oninit(vnode);
|
||||||
|
|
||||||
const user = this.props.user;
|
const user = this.attrs.user;
|
||||||
|
|
||||||
this.username = m.prop(user.username() || '');
|
this.username = m.stream(user.username() || '');
|
||||||
this.email = m.prop(user.email() || '');
|
this.email = m.stream(user.email() || '');
|
||||||
this.isEmailConfirmed = m.prop(user.isEmailConfirmed() || false);
|
this.isEmailConfirmed = m.stream(user.isEmailConfirmed() || false);
|
||||||
this.setPassword = m.prop(false);
|
this.setPassword = m.stream(false);
|
||||||
this.password = m.prop(user.password() || '');
|
this.password = m.stream(user.password() || '');
|
||||||
this.groups = {};
|
this.groups = {};
|
||||||
|
|
||||||
app.store
|
app.store
|
||||||
.all('groups')
|
.all('groups')
|
||||||
.filter((group) => [Group.GUEST_ID, Group.MEMBER_ID].indexOf(group.id()) === -1)
|
.filter((group) => [Group.GUEST_ID, Group.MEMBER_ID].indexOf(group.id()) === -1)
|
||||||
.forEach((group) => (this.groups[group.id()] = m.prop(user.groups().indexOf(group) !== -1)));
|
.forEach((group) => (this.groups[group.id()] = m.stream(user.groups().indexOf(group) !== -1)));
|
||||||
}
|
}
|
||||||
|
|
||||||
className() {
|
className() {
|
||||||
@@ -55,7 +55,7 @@ export default class EditUserModal extends Modal {
|
|||||||
40
|
40
|
||||||
);
|
);
|
||||||
|
|
||||||
if (app.session.user !== this.props.user) {
|
if (app.session.user !== this.attrs.user) {
|
||||||
items.add(
|
items.add(
|
||||||
'email',
|
'email',
|
||||||
<div className="Form-group">
|
<div className="Form-group">
|
||||||
@@ -65,12 +65,14 @@ export default class EditUserModal extends Modal {
|
|||||||
</div>
|
</div>
|
||||||
{!this.isEmailConfirmed() ? (
|
{!this.isEmailConfirmed() ? (
|
||||||
<div>
|
<div>
|
||||||
{Button.component({
|
{Button.component(
|
||||||
className: 'Button Button--block',
|
{
|
||||||
children: app.translator.trans('core.forum.edit_user.activate_button'),
|
className: 'Button Button--block',
|
||||||
loading: this.loading,
|
loading: this.loading,
|
||||||
onclick: this.activate.bind(this),
|
onclick: this.activate.bind(this),
|
||||||
})}
|
},
|
||||||
|
app.translator.trans('core.forum.edit_user.activate_button')
|
||||||
|
)}
|
||||||
</div>
|
</div>
|
||||||
) : (
|
) : (
|
||||||
''
|
''
|
||||||
@@ -89,9 +91,9 @@ export default class EditUserModal extends Modal {
|
|||||||
type="checkbox"
|
type="checkbox"
|
||||||
onchange={(e) => {
|
onchange={(e) => {
|
||||||
this.setPassword(e.target.checked);
|
this.setPassword(e.target.checked);
|
||||||
m.redraw(true);
|
m.redraw.sync();
|
||||||
if (e.target.checked) this.$('[name=password]').select();
|
if (e.target.checked) this.$('[name=password]').select();
|
||||||
m.redraw.strategy('none');
|
e.redraw = false;
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
{app.translator.trans('core.forum.edit_user.set_password_label')}
|
{app.translator.trans('core.forum.edit_user.set_password_label')}
|
||||||
@@ -125,7 +127,7 @@ export default class EditUserModal extends Modal {
|
|||||||
<input
|
<input
|
||||||
type="checkbox"
|
type="checkbox"
|
||||||
bidi={this.groups[group.id()]}
|
bidi={this.groups[group.id()]}
|
||||||
disabled={this.props.user.id() === '1' && group.id() === Group.ADMINISTRATOR_ID}
|
disabled={this.attrs.user.id() === '1' && group.id() === Group.ADMINISTRATOR_ID}
|
||||||
/>
|
/>
|
||||||
{GroupBadge.component({ group, label: '' })} {group.nameSingular()}
|
{GroupBadge.component({ group, label: '' })} {group.nameSingular()}
|
||||||
</label>
|
</label>
|
||||||
@@ -138,12 +140,14 @@ export default class EditUserModal extends Modal {
|
|||||||
items.add(
|
items.add(
|
||||||
'submit',
|
'submit',
|
||||||
<div className="Form-group">
|
<div className="Form-group">
|
||||||
{Button.component({
|
{Button.component(
|
||||||
className: 'Button Button--primary',
|
{
|
||||||
type: 'submit',
|
className: 'Button Button--primary',
|
||||||
loading: this.loading,
|
type: 'submit',
|
||||||
children: app.translator.trans('core.forum.edit_user.submit_button'),
|
loading: this.loading,
|
||||||
})}
|
},
|
||||||
|
app.translator.trans('core.forum.edit_user.submit_button')
|
||||||
|
)}
|
||||||
</div>,
|
</div>,
|
||||||
-10
|
-10
|
||||||
);
|
);
|
||||||
@@ -157,7 +161,7 @@ export default class EditUserModal extends Modal {
|
|||||||
username: this.username(),
|
username: this.username(),
|
||||||
isEmailConfirmed: true,
|
isEmailConfirmed: true,
|
||||||
};
|
};
|
||||||
this.props.user
|
this.attrs.user
|
||||||
.save(data, { errorHandler: this.onerror.bind(this) })
|
.save(data, { errorHandler: this.onerror.bind(this) })
|
||||||
.then(() => {
|
.then(() => {
|
||||||
this.isEmailConfirmed(true);
|
this.isEmailConfirmed(true);
|
||||||
@@ -180,7 +184,7 @@ export default class EditUserModal extends Modal {
|
|||||||
relationships: { groups },
|
relationships: { groups },
|
||||||
};
|
};
|
||||||
|
|
||||||
if (app.session.user !== this.props.user) {
|
if (app.session.user !== this.attrs.user) {
|
||||||
data.email = this.email();
|
data.email = this.email();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -196,7 +200,7 @@ export default class EditUserModal extends Modal {
|
|||||||
|
|
||||||
this.loading = true;
|
this.loading = true;
|
||||||
|
|
||||||
this.props.user
|
this.attrs.user
|
||||||
.save(this.data(), { errorHandler: this.onerror.bind(this) })
|
.save(this.data(), { errorHandler: this.onerror.bind(this) })
|
||||||
.then(this.hide.bind(this))
|
.then(this.hide.bind(this))
|
||||||
.catch(() => {
|
.catch(() => {
|
||||||
|
Reference in New Issue
Block a user