Exemple #1
0
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'
      }));
    }
  });
});
Exemple #2
0
app.initializers.add('flarum-sticky', () => {
  app.postComponents.discussionStickied = DiscussionStickiedPost;

  Discussion.prototype.isSticky = Model.attribute('isSticky');
  Discussion.prototype.canSticky = Model.attribute('canSticky');

  addStickyBadge();
  addStickyControl();
  addStickyExcerpt();
});
Exemple #3
0
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')
    });
  });
});
Exemple #5
0
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();
});
Exemple #6
0
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();
});
Exemple #7
0
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')
    });
  });
});
Exemple #8
0
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')
  });
});
Exemple #9
0
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')
  });
});