mirror of
https://github.com/flarum/core.git
synced 2025-08-06 16:36:47 +02:00
Prompt for nickname on registration (#4)
Allow users to set a nickname while registering, controlled by settings. Also, add a setting to hide the username input entirely and randomly generate the username. Co-authored-by: Sami Mazouz <sychocouldy@gmail.com>
This commit is contained in:
committed by
GitHub
parent
745de66d23
commit
3c5229610f
5784
extensions/nicknames/js/package-lock.json
generated
5784
extensions/nicknames/js/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -15,6 +15,17 @@ app.initializers.add('flarum/nicknames', () => {
|
||||
</div>
|
||||
);
|
||||
})
|
||||
.registerSetting({
|
||||
setting: 'flarum-nicknames.set_on_registration',
|
||||
type: 'boolean',
|
||||
label: app.translator.trans('flarum-nicknames.admin.settings.set_on_registration_label')
|
||||
})
|
||||
.registerSetting({
|
||||
setting: 'flarum-nicknames.random_username',
|
||||
type: 'boolean',
|
||||
label: app.translator.trans('flarum-nicknames.admin.settings.random_username_label'),
|
||||
help: app.translator.trans('flarum-nicknames.admin.settings.random_username_help')
|
||||
})
|
||||
.registerSetting({
|
||||
setting: 'flarum-nicknames.unique',
|
||||
type: 'boolean',
|
||||
|
@@ -1,6 +1,7 @@
|
||||
import { extend } from 'flarum/common/extend';
|
||||
import Button from 'flarum/common/components/Button';
|
||||
import EditUserModal from 'flarum/common/components/EditUserModal';
|
||||
import SignUpModal from 'flarum/forum/components/SignUpModal';
|
||||
import SettingsPage from 'flarum/forum/components/SettingsPage';
|
||||
import Model from 'flarum/common/Model';
|
||||
import User from 'flarum/common/models/User';
|
||||
@@ -50,5 +51,60 @@ app.initializers.add('flarum/nicknames', () => {
|
||||
}
|
||||
});
|
||||
|
||||
extend(SignUpModal.prototype, 'oninit', function () {
|
||||
if (app.forum.attribute('displayNameDriver') !== 'nickname') return;
|
||||
|
||||
this.nickname = Stream(this.attrs.username || '');
|
||||
|
||||
});
|
||||
|
||||
|
||||
extend(SignUpModal.prototype, 'onready', function () {
|
||||
if (app.forum.attribute('displayNameDriver') !== 'nickname') return;
|
||||
|
||||
if (app.forum.attribute('setNicknameOnRegistration') && app.forum.attribute('randomizeUsernameOnRegistration')) {
|
||||
this.$('[name=nickname]').select();
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
extend(SignUpModal.prototype, 'fields', function (items) {
|
||||
if (app.forum.attribute('displayNameDriver') !== 'nickname') return;
|
||||
|
||||
if (app.forum.attribute('setNicknameOnRegistration')) {
|
||||
items.add(
|
||||
'nickname',
|
||||
<div className="Form-group">
|
||||
<input
|
||||
className="FormControl"
|
||||
name="nickname"
|
||||
type="text"
|
||||
placeholder={extractText(app.translator.trans('flarum-nicknames.forum.sign_up.nickname_placeholder'))}
|
||||
bidi={this.nickname}
|
||||
disabled={this.loading || this.isProvided('nickname')}
|
||||
required={app.forum.attribute('randomizeUsernameOnRegistration')}
|
||||
/>
|
||||
</div>,
|
||||
25
|
||||
);
|
||||
|
||||
if (app.forum.attribute('randomizeUsernameOnRegistration')) {
|
||||
items.remove('username');
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
extend(SignUpModal.prototype, 'submitData', function (data) {
|
||||
if (app.forum.attribute('displayNameDriver') !== 'nickname') return;
|
||||
|
||||
if (app.forum.attribute('setNicknameOnRegistration')) {
|
||||
data.nickname = this.nickname();
|
||||
if (app.forum.attribute('randomizeUsernameOnRegistration')) {
|
||||
const arr = new Uint32Array(2);
|
||||
crypto.getRandomValues(arr);
|
||||
data.username = arr.join('');
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
|
Reference in New Issue
Block a user