class Discussion extends Model { unreadCount() { var user = app.session.user(); if (user && user.readTime() < this.lastTime()) { return Math.max(0, this.lastPostNumber() - (this.readNumber() || 0)) } return 0; } badges() { return new ItemList(); } } Discussion.prototype.id = Model.prop('id'); Discussion.prototype.title = Model.prop('title'); Discussion.prototype.slug = computed('title', title => title.toLowerCase().replace(/[^a-z0-9]/gi, '-').replace(/-+/g, '-').replace(/-$|^-/g, '') || '-'); Discussion.prototype.startTime = Model.prop('startTime', Model.date); Discussion.prototype.startUser = Model.one('startUser'); Discussion.prototype.startPost = Model.one('startPost'); Discussion.prototype.lastTime = Model.prop('lastTime', Model.date); Discussion.prototype.lastUser = Model.one('lastUser'); Discussion.prototype.lastPost = Model.one('lastPost'); Discussion.prototype.lastPostNumber = Model.prop('lastPostNumber'); Discussion.prototype.canReply = Model.prop('canReply'); Discussion.prototype.canEdit = Model.prop('canEdit'); Discussion.prototype.canDelete = Model.prop('canDelete');
import Model from 'flarum/model'; class Activity extends Model {} Activity.prototype.id = Model.prop('id'); Activity.prototype.contentType = Model.prop('contentType'); Activity.prototype.content = Model.prop('content'); Activity.prototype.time = Model.prop('time', Model.date); Activity.prototype.user = Model.one('user'); Activity.prototype.subject = Model.one('subject'); export default Activity;
import Model from 'flarum/model'; import computed from 'flarum/utils/computed'; class Post extends Model {} Post.prototype.id = Model.prop('id'); Post.prototype.number = Model.prop('number'); Post.prototype.discussion = Model.one('discussion'); Post.prototype.time = Model.prop('time'); Post.prototype.user = Model.one('user'); Post.prototype.contentType = Model.prop('contentType'); Post.prototype.content = Model.prop('content'); Post.prototype.contentHtml = Model.prop('contentHtml'); Post.prototype.editTime = Model.prop('editTime', Model.date); Post.prototype.editUser = Model.one('editUser'); Post.prototype.isEdited = computed('editTime', editTime => !!editTime); Post.prototype.hideTime = Model.prop('hideTime', Model.date); Post.prototype.hideUser = Model.one('hideUser'); Post.prototype.isHidden = computed('hideTime', hideTime => !!hideTime); Post.prototype.canEdit = Model.prop('canEdit'); Post.prototype.canDelete = Model.prop('canDelete'); export default Post;