app.initializers.add('flarum-suspend', () => { User.prototype.canSuspend = Model.attribute('canSuspend'); User.prototype.suspendUntil = Model.attribute('suspendUntil', Model.transformDate); extend(UserControls, 'moderationControls', (items, user) => { if (user.canSuspend()) { items.add('suspend', Button.component({ children: 'Suspend', icon: 'ban', onclick: () => app.modal.show(new SuspendUserModal({user})) })); } }); extend(User.prototype, 'badges', function(items) { const until = this.suspendUntil(); if (new Date() < until) { items.add('suspended', Badge.component({ icon: 'ban', type: 'suspended', label: 'Suspended' })); } }); });
app.initializers.add('flarum-sticky', () => { app.postComponents.discussionStickied = DiscussionStickiedPost; Discussion.prototype.isSticky = Model.attribute('isSticky'); Discussion.prototype.canSticky = Model.attribute('canSticky'); addStickyBadge(); addStickyControl(); addStickyExcerpt(); });
app.initializers.add('davis-split', app => { app.store.models.discussions.prototype.canSplit = Model.attribute('canSplit'); //extendDiscussionPage(); var splitController = new SplitController(); addSplitControl(splitController); });
app.initializers.add('subscriptions', function() { app.notificationComponents.newPost = NewPostNotification; Discussion.prototype.subscription = Model.attribute('subscription'); addSubscriptionBadge(); addSubscriptionControls(); addSubscriptionFilter(); addSubscriptionSettings(); extend(NotificationGrid.prototype, 'notificationTypes', function(items) { items.add('newPost', { name: 'newPost', icon: 'star', label: app.translator.trans('flarum-subscriptions.forum.settings.notify_new_post_label') }); }); });
app.initializers.add('flarum-tags', function(app) { app.routes.tags = {path: '/tags', component: TagsPage.component()}; app.routes.tag = {path: '/t/:tags', component: IndexPage.component()}; app.route.tag = tag => app.route('tag', {tags: tag.slug()}); app.postComponents.discussionTagged = DiscussionTaggedPost; app.store.models.tags = Tag; Discussion.prototype.tags = Model.hasMany('tags'); Discussion.prototype.canTag = Model.attribute('canTag'); addTagList(); addTagFilter(); addTagLabels(); addTagControl(); addTagComposer(); });
app.initializers.add('pingxx-account', () => { app.store.models.users.prototype.create_from = Model.attribute('create_from'); app.store.models.users.prototype.suspend_until = Model.attribute('suspendUntil'); app.store.models.users.prototype.ask_count = Model.attribute('ask_count'); app.store.models.users.prototype.answer_count = Model.attribute('answer_count'); app.store.models.users.prototype.praise_count = Model.attribute('praise_count'); app.store.models.users.prototype.agree_count = Model.attribute('agree_count'); app.store.models.tags = Tag; addUsersPane(); addTopsPane(); addTagTop(); });
app.initializers.add('jordanjay29-reactions', () => { //#DEBUG app.notificationComponents.postLiked = PostLikedNotification; app.notificationComponents.postReactedTo = PostReactionsNotification; //#DEBUG Post.prototype.canLike = Model.attribute('canLike'); Post.prototype.canReactTo = Model.attribute('canReactTo'); //#DEBUG Post.prototype.likes = Model.hasMany('likes'); Post.prototype.reactions = Model.hasMany('reactions'); //#DEBUG addLikeAction(); addReaction(); //#DEBUG addLikesList(); addReactionsList(); extend(NotificationGrid.prototype, 'notificationTypes', function (items) { //#DEBUG items.add('postLiked', { items.add('postReactdTo', { //#DEBUG name: 'postLiked', name: 'postReactedTo', icon: 'thumbs-o-up', label: app.translator.trans('flarum-likes.forum.settings.notify_post_liked_label') }); }); });
import { extend, notificationType } 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 DiscussionStickiedPost from 'sticky/components/DiscussionStickiedPost'; import DiscussionStickiedNotification from 'sticky/components/DiscussionStickiedNotification'; import addStickyBadge from 'sticky/addStickyBadge'; import addStickyControl from 'sticky/addStickyControl'; import addStickyExcerpt from 'sticky/addStickyExcerpt'; app.postComponents.discussionStickied = DiscussionStickiedPost; app.notificationComponents.discussionStickied = DiscussionStickiedNotification; Discussion.prototype.isSticky = Model.attribute('isSticky'); Discussion.prototype.canSticky = Model.attribute('canSticky'); addStickyBadge(); addStickyControl(); addStickyExcerpt(); extend(NotificationGrid.prototype, 'notificationTypes', function(items) { items.add('discussionStickied', { name: 'discussionStickied', icon: 'thumb-tack', label: app.trans('sticky.notify_discussion_stickied') }); });
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 DiscussionLockedPost from 'lock/components/DiscussionLockedPost'; import DiscussionLockedNotification from 'lock/components/DiscussionLockedNotification'; import addLockBadge from 'lock/addLockBadge'; import addLockControl from 'lock/addLockControl'; app.postComponents.discussionLocked = DiscussionLockedPost; app.notificationComponents.discussionLocked = DiscussionLockedNotification; Discussion.prototype.isLocked = Model.attribute('isLocked'); Discussion.prototype.canLock = Model.attribute('canLock'); addLockBadge(); addLockControl(); extend(NotificationGrid.prototype, 'notificationTypes', function(items) { items.add('discussionLocked', { name: 'discussionLocked', icon: 'lock', label: app.trans('lock.notify_discussion_locked') }); });