1
0
mirror of https://github.com/flarum/core.git synced 2025-07-18 23:31:17 +02:00

Move EditUserModal fields into an ItemList to make more extendable (#1593)

This commit is contained in:
David Sevilla Martín
2018-11-13 16:30:43 -05:00
committed by Toby Zerner
parent 0f05ecbbc6
commit 90bb012ab8

View File

@@ -3,6 +3,7 @@ import Button from '../../common/components/Button';
import GroupBadge from '../../common/components/GroupBadge';
import Group from '../../common/models/Group';
import extractText from '../../common/utils/extractText';
import ItemList from '../../common/utils/ItemList';
/**
* The `EditUserModal` component displays a modal dialog with a login form.
@@ -37,17 +38,27 @@ export default class EditUserModal extends Modal {
return (
<div className="Modal-body">
<div className="Form">
<div className="Form-group">
{this.fields().toArray()}
</div>
</div>
);
}
fields() {
const items = new ItemList();
items.add('username', <div className="Form-group">
<label>{app.translator.trans('core.forum.edit_user.username_heading')}</label>
<input className="FormControl" placeholder={extractText(app.translator.trans('core.forum.edit_user.username_label'))}
bidi={this.username} />
</div>
</div>, 40);
{app.session.user !== this.props.user ? [
<div className="Form-group">
if (app.session.user !== this.props.user) {
items.add('email', <div className="Form-group">
<label>{app.translator.trans('core.forum.edit_user.email_heading')}</label>
<div>
<input className="FormControl" placeholder={extractText(app.translator.trans('core.forum.edit_user.email_label'))}
<input className="FormControl"
placeholder={extractText(app.translator.trans('core.forum.edit_user.email_label'))}
bidi={this.email}/>
</div>
{!this.isEmailConfirmed() ? (
@@ -60,13 +71,13 @@ export default class EditUserModal extends Modal {
})}
</div>
) : ''}
</div>,
</div>, 30);
<div className="Form-group">
items.add('password', <div className="Form-group">
<label>{app.translator.trans('core.forum.edit_user.password_heading')}</label>
<div>
<label className="checkbox">
<input type="checkbox" checked={this.setPassword()} onchange={e => {
<input type="checkbox" checked={this.setPassword()} onChange={e => {
this.setPassword(e.target.checked);
m.redraw(true);
if (e.target.checked) this.$('[name=password]').select();
@@ -75,14 +86,16 @@ export default class EditUserModal extends Modal {
{app.translator.trans('core.forum.edit_user.set_password_label')}
</label>
{this.setPassword() ? (
<input className="FormControl" type="password" name="password" placeholder={extractText(app.translator.trans('core.forum.edit_user.password_label'))}
<input className="FormControl" type="password" name="password"
placeholder={extractText(app.translator.trans('core.forum.edit_user.password_label'))}
bidi={this.password}/>
) : ''}
</div>
</div>
] : ''}
</div>, 20);
<div className="Form-group EditUserModal-groups">
}
items.add('groups', <div className="Form-group EditUserModal-groups">
<label>{app.translator.trans('core.forum.edit_user.groups_heading')}</label>
<div>
{Object.keys(this.groups)
@@ -96,19 +109,18 @@ export default class EditUserModal extends Modal {
</label>
))}
</div>
</div>
</div>, 10);
<div className="Form-group">
items.add('submit', <div className="Form-group">
{Button.component({
className: 'Button Button--primary',
type: 'submit',
loading: this.loading,
children: app.translator.trans('core.forum.edit_user.submit_button')
})}
</div>
</div>
</div>
);
</div>, -10);
return items;
}
activate() {