1
0
mirror of https://github.com/flarum/core.git synced 2025-08-09 01:46:35 +02:00

Update for composer branch

This commit is contained in:
Toby Zerner
2015-10-11 22:54:48 +10:30
parent 5d9d04d2ab
commit 5486cc3ed8
25 changed files with 389 additions and 228 deletions

View File

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

View File

@@ -2,6 +2,6 @@ var gulp = require('flarum-gulp');
gulp({
modules: {
'approval': 'src/**/*.js'
'flarum/approval': 'src/**/*.js'
}
});

View File

@@ -0,0 +1,34 @@
System.register('flarum/approval/main', ['flarum/extend', 'flarum/app', 'flarum/components/PermissionGrid'], function (_export) {
'use strict';
var extend, app, PermissionGrid;
return {
setters: [function (_flarumExtend) {
extend = _flarumExtend.extend;
}, function (_flarumApp) {
app = _flarumApp['default'];
}, function (_flarumComponentsPermissionGrid) {
PermissionGrid = _flarumComponentsPermissionGrid['default'];
}],
execute: function () {
app.initializers.add('approval', function () {
extend(PermissionGrid.prototype, 'replyItems', function (items) {
items.add('replyWithoutApproval', {
icon: 'check',
label: 'Reply without approval',
permission: 'discussion.replyWithoutApproval'
}, 95);
});
extend(PermissionGrid.prototype, 'moderateItems', function (items) {
items.add('approvePosts', {
icon: 'check',
label: 'Approve posts',
permission: 'discussion.approvePosts'
}, 65);
});
});
}
};
});

View File

@@ -2,6 +2,6 @@ var gulp = require('flarum-gulp');
gulp({
modules: {
'approval': 'src/**/*.js'
'flarum/approval': 'src/**/*.js'
}
});

View File

@@ -0,0 +1,74 @@
System.register('flarum/approval/main', ['flarum/extend', 'flarum/app', 'flarum/models/Discussion', 'flarum/models/Post', 'flarum/components/DiscussionListItem', 'flarum/components/CommentPost', 'flarum/components/Button', 'flarum/utils/PostControls'], function (_export) {
'use strict';
var extend, override, app, Discussion, Post, DiscussionListItem, CommentPost, Button, PostControls;
return {
setters: [function (_flarumExtend) {
extend = _flarumExtend.extend;
override = _flarumExtend.override;
}, function (_flarumApp) {
app = _flarumApp['default'];
}, function (_flarumModelsDiscussion) {
Discussion = _flarumModelsDiscussion['default'];
}, function (_flarumModelsPost) {
Post = _flarumModelsPost['default'];
}, function (_flarumComponentsDiscussionListItem) {
DiscussionListItem = _flarumComponentsDiscussionListItem['default'];
}, function (_flarumComponentsCommentPost) {
CommentPost = _flarumComponentsCommentPost['default'];
}, function (_flarumComponentsButton) {
Button = _flarumComponentsButton['default'];
}, function (_flarumUtilsPostControls) {
PostControls = _flarumUtilsPostControls['default'];
}],
execute: function () {
app.initializers.add('flarum-approval', function () {
Discussion.prototype.isApproved = Discussion.attribute('isApproved');
Post.prototype.isApproved = Post.attribute('isApproved');
Post.prototype.canApprove = Post.attribute('canApprove');
extend(DiscussionListItem.prototype, 'attrs', function (attrs) {
if (!this.props.discussion.isApproved()) {
attrs.className += ' DiscussionListItem--unapproved';
}
});
extend(CommentPost.prototype, 'attrs', function (attrs) {
if (!this.props.post.isApproved() && !this.props.post.isHidden()) {
attrs.className += ' CommentPost--unapproved';
}
});
extend(CommentPost.prototype, 'headerItems', function (items) {
if (!this.props.post.isApproved() && !this.props.post.isHidden()) {
items.add('unapproved', 'Awaiting Approval');
}
});
override(CommentPost.prototype, 'flagReason', function (original, flag) {
if (flag.type() === 'approval') {
return 'Awaiting approval';
}
return original(flag);
});
extend(PostControls, 'destructiveControls', function (items, post) {
if (!post.isApproved() && post.canApprove()) {
items.add('approve', m(
Button,
{ icon: 'check', onclick: PostControls.approveAction.bind(post) },
'Approve'
), 10);
}
});
PostControls.approveAction = function () {
this.save({ isApproved: true });
};
}, -10); // set initializer priority to run after reports
}
};
});

View File

@@ -7,7 +7,7 @@ import CommentPost from 'flarum/components/CommentPost';
import Button from 'flarum/components/Button';
import PostControls from 'flarum/utils/PostControls';
app.initializers.add('approval', () => {
app.initializers.add('flarum-approval', () => {
Discussion.prototype.isApproved = Discussion.attribute('isApproved');
Post.prototype.isApproved = Post.attribute('isApproved');