mirror of
https://github.com/flarum/core.git
synced 2025-08-01 14:10:37 +02:00
Initial commit
This commit is contained in:
3
extensions/akismet/js/.gitignore
vendored
Normal file
3
extensions/akismet/js/.gitignore
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
bower_components
|
||||
node_modules
|
||||
dist
|
7
extensions/akismet/js/admin/Gulpfile.js
Normal file
7
extensions/akismet/js/admin/Gulpfile.js
Normal file
@@ -0,0 +1,7 @@
|
||||
var gulp = require('flarum-gulp');
|
||||
|
||||
gulp({
|
||||
modules: {
|
||||
'akismet': 'src/**/*.js'
|
||||
}
|
||||
});
|
7
extensions/akismet/js/admin/package.json
Normal file
7
extensions/akismet/js/admin/package.json
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"private": true,
|
||||
"devDependencies": {
|
||||
"gulp": "^3.8.11",
|
||||
"flarum-gulp": "^0.1.0"
|
||||
}
|
||||
}
|
@@ -0,0 +1,57 @@
|
||||
import Modal from 'flarum/components/Modal';
|
||||
import Button from 'flarum/components/Button';
|
||||
import saveConfig from 'flarum/utils/saveConfig';
|
||||
|
||||
export default class AkismetSettingsModal extends Modal {
|
||||
constructor(...args) {
|
||||
super(...args);
|
||||
|
||||
this.apiKey = m.prop(app.config['akismet.api_key'] || '');
|
||||
}
|
||||
|
||||
className() {
|
||||
return 'AkismetSettingsModal Modal--small';
|
||||
}
|
||||
|
||||
title() {
|
||||
return 'Akismet Settings';
|
||||
}
|
||||
|
||||
content() {
|
||||
return (
|
||||
<div className="Modal-body">
|
||||
<div className="Form">
|
||||
<div className="Form-group">
|
||||
<label>API Key</label>
|
||||
<input className="FormControl" value={this.apiKey()} oninput={m.withAttr('value', this.apiKey)}/>
|
||||
</div>
|
||||
|
||||
<div className="Form-group">
|
||||
{Button.component({
|
||||
type: 'submit',
|
||||
className: 'Button Button--primary AkismetSettingsModal-save',
|
||||
loading: this.loading,
|
||||
children: 'Save Changes'
|
||||
})}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
onsubmit(e) {
|
||||
e.preventDefault();
|
||||
|
||||
this.loading = true;
|
||||
|
||||
saveConfig({
|
||||
'akismet.api_key': this.apiKey()
|
||||
}).then(
|
||||
() => this.hide(),
|
||||
() => {
|
||||
this.loading = false;
|
||||
m.redraw();
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
8
extensions/akismet/js/admin/src/main.js
Normal file
8
extensions/akismet/js/admin/src/main.js
Normal file
@@ -0,0 +1,8 @@
|
||||
import { extend } from 'flarum/extend';
|
||||
import app from 'flarum/app';
|
||||
|
||||
import AkismetSettingsModal from 'akismet/components/AkismetSettingsModal';
|
||||
|
||||
app.initializers.add('akismet', () => {
|
||||
app.extensionSettings.akismet = () => app.modal.show(new AkismetSettingsModal());
|
||||
});
|
7
extensions/akismet/js/forum/Gulpfile.js
Normal file
7
extensions/akismet/js/forum/Gulpfile.js
Normal file
@@ -0,0 +1,7 @@
|
||||
var gulp = require('flarum-gulp');
|
||||
|
||||
gulp({
|
||||
modules: {
|
||||
'akismet': 'src/**/*.js'
|
||||
}
|
||||
});
|
7
extensions/akismet/js/forum/package.json
Normal file
7
extensions/akismet/js/forum/package.json
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"private": true,
|
||||
"devDependencies": {
|
||||
"gulp": "^3.8.11",
|
||||
"flarum-gulp": "^0.1.0"
|
||||
}
|
||||
}
|
24
extensions/akismet/js/forum/src/main.js
Normal file
24
extensions/akismet/js/forum/src/main.js
Normal file
@@ -0,0 +1,24 @@
|
||||
import { extend } from 'flarum/extend';
|
||||
import app from 'flarum/app';
|
||||
|
||||
import Button from 'flarum/components/Button';
|
||||
import CommentPost from 'flarum/components/CommentPost';
|
||||
import PostControls from 'flarum/utils/PostControls';
|
||||
|
||||
app.initializers.add('akismet', () => {
|
||||
extend(CommentPost.prototype, 'reportActionItems', function(items) {
|
||||
if (this.props.post.reports()[0].reporter() === 'Akismet') {
|
||||
items.add('notSpam',
|
||||
<Button className="Button"
|
||||
icon="check"
|
||||
onclick={() => {
|
||||
this.dismissReport({akismet: 'ham'}).then(
|
||||
() => PostControls.restoreAction.apply(this.props.post)
|
||||
);
|
||||
}}>
|
||||
Not Spam
|
||||
</Button>
|
||||
);
|
||||
}
|
||||
});
|
||||
}, -10); // set initializer priority to run after reports
|
Reference in New Issue
Block a user