FEATURE: Site setting for words to censor in posts
This commit is contained in:
@@ -28,7 +28,7 @@
|
||||
</div>
|
||||
|
||||
<div class="site-settings-detail pull-left">
|
||||
{{ outlet }}
|
||||
{{outlet}}
|
||||
</div>
|
||||
|
||||
<div class="clearfix"></div>
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
</div>
|
||||
<div class="setting-value">
|
||||
{{list-setting settingValue=value choices=choices settingName=setting}}
|
||||
<div class='desc'>{{unbound description}}</div>
|
||||
<div class='desc'>{{{unbound description}}}</div>
|
||||
</div>
|
||||
{{#if dirty}}
|
||||
<div class='setting-controls'>
|
||||
|
||||
@@ -14,10 +14,10 @@ Discourse.SiteSettingView = Discourse.View.extend(Discourse.ScrollTop, {
|
||||
if (this.get('content.type') === 'bool') return 'admin/templates/site_settings/setting_bool';
|
||||
|
||||
// If we're editing an enum field, show a dropdown
|
||||
if (this.get('content.type') === 'enum' ) return 'admin/templates/site_settings/setting_enum';
|
||||
if (this.get('content.type') === 'enum') return 'admin/templates/site_settings/setting_enum';
|
||||
|
||||
// If we're editing a list, show a list editor
|
||||
if (this.get('content.type') === 'list' ) return 'admin/templates/site_settings/setting_list';
|
||||
if (this.get('content.type') === 'list') return 'admin/templates/site_settings/setting_list';
|
||||
|
||||
// Default to string editor
|
||||
return 'admin/templates/site_settings/setting_string';
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
var censorRegexp;
|
||||
|
||||
Discourse.Dialect.addPreProcessor(function(text) {
|
||||
var censored = Discourse.SiteSettings.censored_words;
|
||||
if (censored && censored.length) {
|
||||
if (!censorRegexp) {
|
||||
var split = censored.split("|");
|
||||
if (split && split.length) {
|
||||
censorRegexp = new RegExp(split.map(function (t) { return "(" + t.replace(/[-/\\^$*+?.()|[\]{}]/g, '\\$&') + ")"; }).join("|"), "ig");
|
||||
}
|
||||
}
|
||||
|
||||
if (censorRegexp) {
|
||||
var m = censorRegexp.exec(text);
|
||||
while (m && m[0]) {
|
||||
var replacement = new Array(m[0].length+1).join('■');
|
||||
text = text.replace(m[0], replacement);
|
||||
m = censorRegexp.exec(text);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
return text;
|
||||
});
|
||||
Reference in New Issue
Block a user