Expand reason descriptions and add configurable link to community guidelines

This commit is contained in:
Toby Zerner
2015-11-04 12:59:29 +10:30
parent 39b8f0ad7a
commit 379b1f0831
5 changed files with 67 additions and 7 deletions

View File

@ -0,0 +1,20 @@
import SettingsModal from 'flarum/components/SettingsModal';
export default class FlagsSettingsModal extends SettingsModal {
className() {
return 'FlagsSettingsModal Modal--small';
}
title() {
return app.translator.trans('flarum-flags.admin.settings.title');
}
form() {
return [
<div className="Form-group">
<label>{app.translator.trans('flarum-flags.admin.settings.guidelines_url_label')}</label>
<input className="FormControl" bidi={this.setting('flarum-flags.guidelines_url')}/>
</div>
];
}
}

View File

@ -2,7 +2,11 @@ import { extend } from 'flarum/extend';
import app from 'flarum/app';
import PermissionGrid from 'flarum/components/PermissionGrid';
import FlagsSettingsModal from 'flarum/flags/components/FlagsSettingsModal';
app.initializers.add('flarum-flags', () => {
app.extensionSettings['flarum-flags'] = () => app.modal.show(new FlagsSettingsModal());
extend(PermissionGrid.prototype, 'moderateItems', items => {
items.add('viewFlags', {
icon: 'flag',

View File

@ -18,30 +18,36 @@ export default class FlagPostModal extends Modal {
}
content() {
const guidelinesUrl = app.forum.attribute('guidelinesUrl');
return (
<div className="Modal-body">
<div className="Form">
<div className="Form Form--centered">
<div className="Form-group">
<label>{app.translator.trans('flarum-flags.forum.flag_post.reason_heading')}</label>
<div>
<label className="checkbox">
<input type="radio" name="reason" checked={this.reason() === 'off_topic'} value="off_topic" onclick={m.withAttr('value', this.reason)}/>
{app.translator.trans('flarum-flags.forum.flag_post.reason_off_topic_label')}
<strong>{app.translator.trans('flarum-flags.forum.flag_post.reason_off_topic_label')}</strong>
{app.translator.trans('flarum-flags.forum.flag_post.reason_off_topic_text')}
</label>
<label className="checkbox">
<input type="radio" name="reason" checked={this.reason() === 'inappropriate'} value="inappropriate" onclick={m.withAttr('value', this.reason)}/>
{app.translator.trans('flarum-flags.forum.flag_post.reason_inappropriate_label')}
<strong>{app.translator.trans('flarum-flags.forum.flag_post.reason_inappropriate_label')}</strong>
{app.translator.trans('flarum-flags.forum.flag_post.reason_inappropriate_text', {
a: guidelinesUrl ? <a href={guidelinesUrl} target="_blank"/> : undefined
})}
</label>
<label className="checkbox">
<input type="radio" name="reason" checked={this.reason() === 'spam'} value="spam" onclick={m.withAttr('value', this.reason)}/>
{app.translator.trans('flarum-flags.forum.flag_post.reason_spam_label')}
<strong>{app.translator.trans('flarum-flags.forum.flag_post.reason_spam_label')}</strong>
{app.translator.trans('flarum-flags.forum.flag_post.reason_spam_text')}
</label>
<label className="checkbox">
<input type="radio" name="reason" checked={this.reason() === 'other'} value="other" onclick={m.withAttr('value', this.reason)}/>
{app.translator.trans('flarum-flags.forum.flag_post.reason_other_label')}
<strong>{app.translator.trans('flarum-flags.forum.flag_post.reason_other_label')}</strong>
{this.reason() === 'other' ? (
<textarea className="FormControl" value={this.reasonDetail()} oninput={m.withAttr('value', this.reasonDetail)}></textarea>
) : ''}
@ -51,7 +57,7 @@ export default class FlagPostModal extends Modal {
<div className="Form-group">
<Button
className="Button Button--primary"
className="Button Button--primary Button--block"
type="submit"
loading={this.loading}
disabled={!this.reason()}>