mirror of
https://github.com/flarum/core.git
synced 2025-08-14 04:14:06 +02:00
@@ -1,10 +0,0 @@
|
||||
import app from 'flarum/app';
|
||||
|
||||
app.initializers.add('lock', () => {
|
||||
app.extensionData.for('flarum-lock')
|
||||
.registerPermission({
|
||||
icon: 'fas fa-lock',
|
||||
label: app.translator.trans('flarum-lock.admin.permissions.lock_discussions_label'),
|
||||
permission: 'discussion.lock'
|
||||
}, 'moderate', 95);
|
||||
});
|
13
extensions/lock/js/src/admin/index.ts
Normal file
13
extensions/lock/js/src/admin/index.ts
Normal file
@@ -0,0 +1,13 @@
|
||||
import app from 'flarum/admin/app';
|
||||
|
||||
app.initializers.add('lock', () => {
|
||||
app.extensionData.for('flarum-lock').registerPermission(
|
||||
{
|
||||
icon: 'fas fa-lock',
|
||||
label: app.translator.trans('flarum-lock.admin.permissions.lock_discussions_label'),
|
||||
permission: 'discussion.lock',
|
||||
},
|
||||
'moderate',
|
||||
95
|
||||
);
|
||||
});
|
@@ -1,15 +1,19 @@
|
||||
import { extend } from 'flarum/extend';
|
||||
import Discussion from 'flarum/models/Discussion';
|
||||
import Badge from 'flarum/components/Badge';
|
||||
import app from 'flarum/forum/app';
|
||||
import { extend } from 'flarum/common/extend';
|
||||
import Discussion from 'flarum/common/models/Discussion';
|
||||
import Badge from 'flarum/common/components/Badge';
|
||||
|
||||
export default function addLockBadge() {
|
||||
extend(Discussion.prototype, 'badges', function(badges) {
|
||||
extend(Discussion.prototype, 'badges', function (badges) {
|
||||
if (this.isLocked()) {
|
||||
badges.add('locked', Badge.component({
|
||||
type: 'locked',
|
||||
label: app.translator.trans('flarum-lock.forum.badge.locked_tooltip'),
|
||||
icon: 'fas fa-lock'
|
||||
}));
|
||||
badges.add(
|
||||
'locked',
|
||||
Badge.component({
|
||||
type: 'locked',
|
||||
label: app.translator.trans('flarum-lock.forum.badge.locked_tooltip'),
|
||||
icon: 'fas fa-lock',
|
||||
})
|
||||
);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
@@ -1,20 +1,29 @@
|
||||
import { extend } from 'flarum/extend';
|
||||
import DiscussionControls from 'flarum/utils/DiscussionControls';
|
||||
import DiscussionPage from 'flarum/components/DiscussionPage';
|
||||
import Button from 'flarum/components/Button';
|
||||
import app from 'flarum/forum/app';
|
||||
import { extend } from 'flarum/common/extend';
|
||||
import DiscussionControls from 'flarum/forum/utils/DiscussionControls';
|
||||
import DiscussionPage from 'flarum/forum/components/DiscussionPage';
|
||||
import Button from 'flarum/common/components/Button';
|
||||
|
||||
export default function addLockControl() {
|
||||
extend(DiscussionControls, 'moderationControls', function(items, discussion) {
|
||||
extend(DiscussionControls, 'moderationControls', function (items, discussion) {
|
||||
if (discussion.canLock()) {
|
||||
items.add('lock', Button.component({
|
||||
icon: 'fas fa-lock',
|
||||
onclick: this.lockAction.bind(discussion)
|
||||
}, app.translator.trans(discussion.isLocked() ? 'flarum-lock.forum.discussion_controls.unlock_button' : 'flarum-lock.forum.discussion_controls.lock_button')));
|
||||
items.add(
|
||||
'lock',
|
||||
Button.component(
|
||||
{
|
||||
icon: 'fas fa-lock',
|
||||
onclick: this.lockAction.bind(discussion),
|
||||
},
|
||||
app.translator.trans(
|
||||
discussion.isLocked() ? 'flarum-lock.forum.discussion_controls.unlock_button' : 'flarum-lock.forum.discussion_controls.lock_button'
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
});
|
||||
|
||||
DiscussionControls.lockAction = function() {
|
||||
this.save({isLocked: !this.isLocked()}).then(() => {
|
||||
DiscussionControls.lockAction = function () {
|
||||
this.save({ isLocked: !this.isLocked() }).then(() => {
|
||||
if (app.current.matches(DiscussionPage)) {
|
||||
app.current.get('stream').update();
|
||||
}
|
||||
|
@@ -1,4 +1,5 @@
|
||||
import Notification from 'flarum/components/Notification';
|
||||
import app from 'flarum/forum/app';
|
||||
import Notification from 'flarum/forum/components/Notification';
|
||||
|
||||
export default class DiscussionLockedNotification extends Notification {
|
||||
icon() {
|
||||
@@ -12,6 +13,6 @@ export default class DiscussionLockedNotification extends Notification {
|
||||
}
|
||||
|
||||
content() {
|
||||
return app.translator.trans('flarum-lock.forum.notifications.discussion_locked_text', {user: this.attrs.notification.fromUser()});
|
||||
return app.translator.trans('flarum-lock.forum.notifications.discussion_locked_text', { user: this.attrs.notification.fromUser() });
|
||||
}
|
||||
}
|
||||
|
@@ -1,10 +1,8 @@
|
||||
import EventPost from 'flarum/components/EventPost';
|
||||
import EventPost from 'flarum/forum/components/EventPost';
|
||||
|
||||
export default class DiscussionLockedPost extends EventPost {
|
||||
icon() {
|
||||
return this.attrs.post.content().locked
|
||||
? 'fas fa-lock'
|
||||
: 'fas fa-unlock';
|
||||
return this.attrs.post.content().locked ? 'fas fa-lock' : 'fas fa-unlock';
|
||||
}
|
||||
|
||||
descriptionKey() {
|
||||
|
@@ -1,8 +1,8 @@
|
||||
import { extend } from 'flarum/extend';
|
||||
import app from 'flarum/app';
|
||||
import Model from 'flarum/Model';
|
||||
import Discussion from 'flarum/models/Discussion';
|
||||
import NotificationGrid from 'flarum/components/NotificationGrid';
|
||||
import { extend } from 'flarum/common/extend';
|
||||
import app from 'flarum/forum/app';
|
||||
import Model from 'flarum/common/Model';
|
||||
import Discussion from 'flarum/common/models/Discussion';
|
||||
import NotificationGrid from 'flarum/forum/components/NotificationGrid';
|
||||
|
||||
import DiscussionLockedPost from './components/DiscussionLockedPost';
|
||||
import DiscussionLockedNotification from './components/DiscussionLockedNotification';
|
||||
@@ -23,7 +23,7 @@ app.initializers.add('flarum-lock', () => {
|
||||
items.add('discussionLocked', {
|
||||
name: 'discussionLocked',
|
||||
icon: 'fas fa-lock',
|
||||
label: app.translator.trans('flarum-lock.forum.settings.notify_discussion_locked_label')
|
||||
label: app.translator.trans('flarum-lock.forum.settings.notify_discussion_locked_label'),
|
||||
});
|
||||
});
|
||||
});
|
||||
|
Reference in New Issue
Block a user