1
0
mirror of https://github.com/flarum/core.git synced 2025-08-01 14:10:37 +02:00

Initial commit

This commit is contained in:
Toby Zerner
2015-09-04 12:44:02 +09:30
commit 2762cf5f99
23 changed files with 658 additions and 0 deletions

3
extensions/akismet/js/.gitignore vendored Normal file
View File

@@ -0,0 +1,3 @@
bower_components
node_modules
dist

View File

@@ -0,0 +1,7 @@
var gulp = require('flarum-gulp');
gulp({
modules: {
'akismet': 'src/**/*.js'
}
});

View File

@@ -0,0 +1,7 @@
{
"private": true,
"devDependencies": {
"gulp": "^3.8.11",
"flarum-gulp": "^0.1.0"
}
}

View File

@@ -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();
}
);
}
}

View 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());
});

View File

@@ -0,0 +1,7 @@
var gulp = require('flarum-gulp');
gulp({
modules: {
'akismet': 'src/**/*.js'
}
});

View File

@@ -0,0 +1,7 @@
{
"private": true,
"devDependencies": {
"gulp": "^3.8.11",
"flarum-gulp": "^0.1.0"
}
}

View 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