framework/extensions/flags/js/forum/dist/extension.js

686 lines
24 KiB
JavaScript
Raw Normal View History

2016-03-18 07:02:41 +08:00
'use strict';
2015-10-11 16:21:25 +08:00
2016-03-18 07:02:41 +08:00
System.register('flarum/flags/addFlagControl', ['flarum/extend', 'flarum/app', 'flarum/utils/PostControls', 'flarum/components/Button', 'flarum/flags/components/FlagPostModal'], function (_export, _context) {
2015-10-11 16:21:25 +08:00
var extend, app, PostControls, Button, FlagPostModal;
2016-03-18 07:02:41 +08:00
_export('default', function () {
extend(PostControls, 'userControls', function (items, post) {
if (post.isHidden() || post.contentType() !== 'comment' || !post.canFlag() || post.user() === app.session.user) return;
items.add('flag', m(
Button,
{ icon: 'flag', onclick: function onclick() {
return app.modal.show(new FlagPostModal({ post: post }));
} },
app.translator.trans('flarum-flags.forum.post_controls.flag_button')
));
});
});
2015-10-11 16:21:25 +08:00
return {
setters: [function (_flarumExtend) {
extend = _flarumExtend.extend;
}, function (_flarumApp) {
2016-03-18 07:02:41 +08:00
app = _flarumApp.default;
2015-10-11 16:21:25 +08:00
}, function (_flarumUtilsPostControls) {
2016-03-18 07:02:41 +08:00
PostControls = _flarumUtilsPostControls.default;
2015-10-11 16:21:25 +08:00
}, function (_flarumComponentsButton) {
2016-03-18 07:02:41 +08:00
Button = _flarumComponentsButton.default;
2015-10-11 16:21:25 +08:00
}, function (_flarumFlagsComponentsFlagPostModal) {
2016-03-18 07:02:41 +08:00
FlagPostModal = _flarumFlagsComponentsFlagPostModal.default;
2015-10-11 16:21:25 +08:00
}],
2016-03-18 07:02:41 +08:00
execute: function () {}
2015-10-11 16:21:25 +08:00
};
2015-11-03 07:33:08 +08:00
});;
2016-03-18 07:02:41 +08:00
'use strict';
2015-10-11 16:21:25 +08:00
2016-03-18 07:02:41 +08:00
System.register('flarum/flags/addFlagsDropdown', ['flarum/extend', 'flarum/app', 'flarum/components/HeaderSecondary', 'flarum/flags/components/FlagsDropdown'], function (_export, _context) {
2015-10-11 16:21:25 +08:00
var extend, app, HeaderSecondary, FlagsDropdown;
2016-03-18 07:02:41 +08:00
_export('default', function () {
extend(HeaderSecondary.prototype, 'items', function (items) {
if (app.forum.attribute('canViewFlags')) {
items.add('flags', m(FlagsDropdown, null), 15);
}
});
});
2015-10-11 16:21:25 +08:00
return {
setters: [function (_flarumExtend) {
extend = _flarumExtend.extend;
}, function (_flarumApp) {
2016-03-18 07:02:41 +08:00
app = _flarumApp.default;
2015-10-11 16:21:25 +08:00
}, function (_flarumComponentsHeaderSecondary) {
2016-03-18 07:02:41 +08:00
HeaderSecondary = _flarumComponentsHeaderSecondary.default;
2015-10-11 16:21:25 +08:00
}, function (_flarumFlagsComponentsFlagsDropdown) {
2016-03-18 07:02:41 +08:00
FlagsDropdown = _flarumFlagsComponentsFlagsDropdown.default;
2015-10-11 16:21:25 +08:00
}],
2016-03-18 07:02:41 +08:00
execute: function () {}
2015-10-11 16:21:25 +08:00
};
2015-11-03 07:33:08 +08:00
});;
2016-03-18 07:02:41 +08:00
'use strict';
2015-10-11 16:21:25 +08:00
2016-03-18 07:02:41 +08:00
System.register('flarum/flags/addFlagsToPosts', ['flarum/extend', 'flarum/app', 'flarum/components/CommentPost', 'flarum/components/Button', 'flarum/helpers/punctuate', 'flarum/helpers/username', 'flarum/utils/ItemList', 'flarum/utils/PostControls'], function (_export, _context) {
2015-10-11 16:21:25 +08:00
var extend, app, CommentPost, Button, punctuate, username, ItemList, PostControls;
2016-03-18 07:02:41 +08:00
_export('default', function () {
extend(CommentPost.prototype, 'attrs', function (attrs) {
if (this.props.post.flags().length) {
attrs.className += ' Post--flagged';
}
});
2015-10-11 16:21:25 +08:00
2016-03-18 07:02:41 +08:00
CommentPost.prototype.dismissFlag = function (data) {
var post = this.props.post;
2015-10-11 16:21:25 +08:00
2016-03-18 07:02:41 +08:00
delete post.data.relationships.flags;
2015-10-11 16:21:25 +08:00
2016-03-18 07:02:41 +08:00
this.subtree.invalidate();
2015-10-11 16:21:25 +08:00
2016-03-18 07:02:41 +08:00
if (app.cache.flags) {
app.cache.flags.some(function (flag, i) {
if (flag.post() === post) {
app.cache.flags.splice(i, 1);
2015-10-11 16:21:25 +08:00
2016-03-18 07:02:41 +08:00
if (app.cache.flagIndex === post) {
var next = app.cache.flags[i];
2015-10-11 16:21:25 +08:00
2016-03-18 07:02:41 +08:00
if (!next) next = app.cache.flags[0];
2015-10-11 16:21:25 +08:00
2016-03-18 07:02:41 +08:00
if (next) {
var nextPost = next.post();
app.cache.flagIndex = nextPost;
m.route(app.route.post(nextPost));
2015-10-11 16:21:25 +08:00
}
2016-03-18 07:02:41 +08:00
}
return true;
2015-10-11 16:21:25 +08:00
}
2016-03-18 07:02:41 +08:00
});
}
2015-10-11 16:21:25 +08:00
2016-03-18 07:02:41 +08:00
return app.request({
url: app.forum.attribute('apiUrl') + post.apiEndpoint() + '/flags',
method: 'DELETE',
data: data
});
};
2015-10-11 16:21:25 +08:00
2016-03-18 07:02:41 +08:00
CommentPost.prototype.flagActionItems = function () {
var _this = this;
2015-10-11 16:21:25 +08:00
2016-03-18 07:02:41 +08:00
var items = new ItemList();
2015-10-11 16:21:25 +08:00
2016-03-18 07:02:41 +08:00
var controls = PostControls.destructiveControls(this.props.post);
2015-10-11 16:21:25 +08:00
2016-03-18 07:02:41 +08:00
Object.keys(controls.items).forEach(function (k) {
var props = controls.get(k).props;
2015-10-11 16:21:25 +08:00
2016-03-18 07:02:41 +08:00
props.className = 'Button';
2015-10-11 16:21:25 +08:00
2016-03-18 07:02:41 +08:00
extend(props, 'onclick', function () {
return _this.dismissFlag();
});
});
2015-10-11 16:21:25 +08:00
2016-03-18 07:02:41 +08:00
items.merge(controls);
2015-10-11 16:21:25 +08:00
2016-03-18 07:02:41 +08:00
items.add('dismiss', m(Button, { className: 'Button Button--icon Button--link', icon: 'times', onclick: this.dismissFlag.bind(this), title: app.translator.trans('flarum-flags.forum.post.dismiss_flag_tooltip') }), -100);
2015-10-11 16:21:25 +08:00
2016-03-18 07:02:41 +08:00
return items;
};
2015-10-11 16:21:25 +08:00
2016-03-18 07:02:41 +08:00
extend(CommentPost.prototype, 'content', function (vdom) {
var _this2 = this;
2015-10-11 16:21:25 +08:00
2016-03-18 07:02:41 +08:00
var post = this.props.post;
var flags = post.flags();
2015-10-11 16:21:25 +08:00
2016-03-18 07:02:41 +08:00
if (!flags.length) return;
2015-10-11 16:21:25 +08:00
2016-03-18 07:02:41 +08:00
if (post.isHidden()) this.revealContent = true;
2015-10-11 16:21:25 +08:00
2016-03-18 07:02:41 +08:00
vdom.unshift(m(
'div',
{ className: 'Post-flagged' },
m(
'div',
{ className: 'Post-flagged-flags' },
flags.map(function (flag) {
return m(
2015-10-11 16:21:25 +08:00
'div',
2016-03-18 07:02:41 +08:00
{ className: 'Post-flagged-flag' },
_this2.flagReason(flag)
);
})
),
m(
'div',
{ className: 'Post-flagged-actions' },
this.flagActionItems().toArray()
)
));
});
CommentPost.prototype.flagReason = function (flag) {
if (flag.type() === 'user') {
var user = flag.user();
var reason = flag.reason();
var detail = flag.reasonDetail();
return [app.translator.trans(reason ? 'flarum-flags.forum.post.flagged_by_with_reason_text' : 'flarum-flags.forum.post.flagged_by_text', { user: user, reason: reason }), detail ? m(
'span',
{ className: 'Post-flagged-detail' },
detail
) : ''];
}
};
});
2015-10-11 16:21:25 +08:00
2016-03-18 07:02:41 +08:00
return {
setters: [function (_flarumExtend) {
extend = _flarumExtend.extend;
}, function (_flarumApp) {
app = _flarumApp.default;
}, function (_flarumComponentsCommentPost) {
CommentPost = _flarumComponentsCommentPost.default;
}, function (_flarumComponentsButton) {
Button = _flarumComponentsButton.default;
}, function (_flarumHelpersPunctuate) {
punctuate = _flarumHelpersPunctuate.default;
}, function (_flarumHelpersUsername) {
username = _flarumHelpersUsername.default;
}, function (_flarumUtilsItemList) {
ItemList = _flarumUtilsItemList.default;
}, function (_flarumUtilsPostControls) {
PostControls = _flarumUtilsPostControls.default;
}],
execute: function () {}
2015-10-11 16:21:25 +08:00
};
2015-11-03 07:33:08 +08:00
});;
2016-03-18 07:02:41 +08:00
'use strict';
2015-10-11 16:21:25 +08:00
2016-03-18 07:02:41 +08:00
System.register('flarum/flags/components/FlagList', ['flarum/Component', 'flarum/components/LoadingIndicator', 'flarum/helpers/avatar', 'flarum/helpers/username', 'flarum/helpers/icon', 'flarum/helpers/humanTime'], function (_export, _context) {
2015-10-11 16:21:25 +08:00
var Component, LoadingIndicator, avatar, username, icon, humanTime, FlagList;
return {
setters: [function (_flarumComponent) {
2016-03-18 07:02:41 +08:00
Component = _flarumComponent.default;
2015-10-11 16:21:25 +08:00
}, function (_flarumComponentsLoadingIndicator) {
2016-03-18 07:02:41 +08:00
LoadingIndicator = _flarumComponentsLoadingIndicator.default;
2015-10-11 16:21:25 +08:00
}, function (_flarumHelpersAvatar) {
2016-03-18 07:02:41 +08:00
avatar = _flarumHelpersAvatar.default;
2015-10-11 16:21:25 +08:00
}, function (_flarumHelpersUsername) {
2016-03-18 07:02:41 +08:00
username = _flarumHelpersUsername.default;
2015-10-11 16:21:25 +08:00
}, function (_flarumHelpersIcon) {
2016-03-18 07:02:41 +08:00
icon = _flarumHelpersIcon.default;
2015-10-11 16:21:25 +08:00
}, function (_flarumHelpersHumanTime) {
2016-03-18 07:02:41 +08:00
humanTime = _flarumHelpersHumanTime.default;
2015-10-11 16:21:25 +08:00
}],
execute: function () {
2016-03-18 07:02:41 +08:00
FlagList = function (_Component) {
2015-10-11 16:21:25 +08:00
babelHelpers.inherits(FlagList, _Component);
function FlagList() {
babelHelpers.classCallCheck(this, FlagList);
2016-03-18 07:02:41 +08:00
return babelHelpers.possibleConstructorReturn(this, Object.getPrototypeOf(FlagList).apply(this, arguments));
2015-10-11 16:21:25 +08:00
}
babelHelpers.createClass(FlagList, [{
2015-10-27 09:46:28 +08:00
key: 'init',
value: function init() {
/**
* Whether or not the notifications are loading.
*
* @type {Boolean}
*/
this.loading = false;
}
}, {
2015-10-11 16:21:25 +08:00
key: 'view',
value: function view() {
var flags = app.cache.flags || [];
return m(
'div',
{ className: 'NotificationList FlagList' },
m(
'div',
{ className: 'NotificationList-header' },
m(
'h4',
{ className: 'App-titleControl App-titleControl--text' },
2015-10-27 10:08:24 +08:00
app.translator.trans('flarum-flags.forum.flagged_posts.title')
2015-10-11 16:21:25 +08:00
)
),
m(
'div',
{ className: 'NotificationList-content' },
m(
'ul',
{ className: 'NotificationGroup-content' },
flags.length ? flags.map(function (flag) {
var post = flag.post();
return m(
'li',
null,
m(
'a',
2016-03-18 07:02:41 +08:00
{ href: app.route.post(post), className: 'Notification Flag', config: function config(element, isInitialized) {
2015-10-11 16:21:25 +08:00
m.route.apply(this, arguments);
if (!isInitialized) $(element).on('click', function () {
return app.cache.flagIndex = post;
});
} },
avatar(post.user()),
icon('flag', { className: 'Notification-icon' }),
m(
'span',
{ className: 'Notification-content' },
username(post.user()),
' in ',
m(
'em',
null,
post.discussion().title()
)
),
humanTime(flag.time()),
m(
'div',
{ className: 'Notification-excerpt' },
post.contentPlain()
)
)
);
}) : !this.loading ? m(
'div',
{ className: 'NotificationList-empty' },
2015-10-27 10:08:24 +08:00
app.translator.trans('flarum-flags.forum.flagged_posts.empty_text')
2015-10-11 16:21:25 +08:00
) : LoadingIndicator.component({ className: 'LoadingIndicator--block' })
)
)
);
}
}, {
key: 'load',
value: function load() {
2016-03-18 07:02:41 +08:00
var _this2 = this;
2015-10-11 16:21:25 +08:00
2015-10-27 09:46:28 +08:00
if (app.cache.flags && !app.session.user.attribute('newFlagsCount')) {
2015-10-11 16:21:25 +08:00
return;
}
this.loading = true;
m.redraw();
app.store.find('flags').then(function (flags) {
2015-10-27 09:46:28 +08:00
app.session.user.pushAttributes({ newFlagsCount: 0 });
2015-10-11 16:21:25 +08:00
app.cache.flags = flags.sort(function (a, b) {
return b.time() - a.time();
});
2016-03-18 07:02:41 +08:00
}).catch(function () {}).then(function () {
_this2.loading = false;
2015-10-11 16:21:25 +08:00
m.redraw();
});
}
}]);
return FlagList;
2016-03-18 07:02:41 +08:00
}(Component);
2015-10-11 16:21:25 +08:00
_export('default', FlagList);
}
};
2015-11-03 07:33:08 +08:00
});;
2016-03-18 07:02:41 +08:00
'use strict';
2015-10-11 16:21:25 +08:00
2016-03-18 07:02:41 +08:00
System.register('flarum/flags/components/FlagPostModal', ['flarum/components/Modal', 'flarum/components/Button'], function (_export, _context) {
2015-10-11 16:21:25 +08:00
var Modal, Button, FlagPostModal;
return {
setters: [function (_flarumComponentsModal) {
2016-03-18 07:02:41 +08:00
Modal = _flarumComponentsModal.default;
2015-10-11 16:21:25 +08:00
}, function (_flarumComponentsButton) {
2016-03-18 07:02:41 +08:00
Button = _flarumComponentsButton.default;
2015-10-11 16:21:25 +08:00
}],
execute: function () {
2016-03-18 07:02:41 +08:00
FlagPostModal = function (_Modal) {
2015-10-11 16:21:25 +08:00
babelHelpers.inherits(FlagPostModal, _Modal);
function FlagPostModal() {
babelHelpers.classCallCheck(this, FlagPostModal);
2016-03-18 07:02:41 +08:00
return babelHelpers.possibleConstructorReturn(this, Object.getPrototypeOf(FlagPostModal).apply(this, arguments));
2015-10-11 16:21:25 +08:00
}
babelHelpers.createClass(FlagPostModal, [{
2015-10-27 09:46:28 +08:00
key: 'init',
value: function init() {
babelHelpers.get(Object.getPrototypeOf(FlagPostModal.prototype), 'init', this).call(this);
2015-11-05 14:11:01 +08:00
this.success = false;
2015-10-27 09:46:28 +08:00
this.reason = m.prop('');
this.reasonDetail = m.prop('');
}
}, {
2015-10-11 16:21:25 +08:00
key: 'className',
value: function className() {
return 'FlagPostModal Modal--small';
}
}, {
key: 'title',
value: function title() {
2015-10-27 10:08:24 +08:00
return app.translator.trans('flarum-flags.forum.flag_post.title');
2015-10-11 16:21:25 +08:00
}
}, {
key: 'content',
value: function content() {
2015-11-05 14:11:01 +08:00
if (this.success) {
return m(
'div',
{ className: 'Modal-body' },
m(
'div',
{ className: 'Form Form--centered' },
m(
'p',
{ className: 'helpText' },
app.translator.trans('flarum-flags.forum.flag_post.confirmation_message')
),
m(
'div',
{ className: 'Form-group' },
m(
Button,
{ className: 'Button Button--primary Button--block', onclick: this.hide.bind(this) },
app.translator.trans('flarum-flags.forum.flag_post.dismiss_button')
)
)
)
);
}
var guidelinesUrl = app.forum.attribute('guidelinesUrl');
2015-10-11 16:21:25 +08:00
return m(
'div',
{ className: 'Modal-body' },
m(
'div',
2015-11-05 14:11:01 +08:00
{ className: 'Form Form--centered' },
2015-10-11 16:21:25 +08:00
m(
'div',
{ className: 'Form-group' },
m(
'div',
null,
m(
'label',
{ className: 'checkbox' },
m('input', { type: 'radio', name: 'reason', checked: this.reason() === 'off_topic', value: 'off_topic', onclick: m.withAttr('value', this.reason) }),
2015-11-05 14:11:01 +08:00
m(
'strong',
null,
app.translator.trans('flarum-flags.forum.flag_post.reason_off_topic_label')
),
app.translator.trans('flarum-flags.forum.flag_post.reason_off_topic_text')
2015-10-11 16:21:25 +08:00
),
m(
'label',
{ className: 'checkbox' },
m('input', { type: 'radio', name: 'reason', checked: this.reason() === 'inappropriate', value: 'inappropriate', onclick: m.withAttr('value', this.reason) }),
2015-11-05 14:11:01 +08:00
m(
'strong',
null,
app.translator.trans('flarum-flags.forum.flag_post.reason_inappropriate_label')
),
app.translator.trans('flarum-flags.forum.flag_post.reason_inappropriate_text', {
a: guidelinesUrl ? m('a', { href: guidelinesUrl, target: '_blank' }) : undefined
})
2015-10-11 16:21:25 +08:00
),
m(
'label',
{ className: 'checkbox' },
m('input', { type: 'radio', name: 'reason', checked: this.reason() === 'spam', value: 'spam', onclick: m.withAttr('value', this.reason) }),
2015-11-05 14:11:01 +08:00
m(
'strong',
null,
app.translator.trans('flarum-flags.forum.flag_post.reason_spam_label')
),
app.translator.trans('flarum-flags.forum.flag_post.reason_spam_text')
2015-10-11 16:21:25 +08:00
),
m(
'label',
{ className: 'checkbox' },
m('input', { type: 'radio', name: 'reason', checked: this.reason() === 'other', value: 'other', onclick: m.withAttr('value', this.reason) }),
2015-11-05 14:11:01 +08:00
m(
'strong',
null,
app.translator.trans('flarum-flags.forum.flag_post.reason_other_label')
),
2015-10-11 16:21:25 +08:00
this.reason() === 'other' ? m('textarea', { className: 'FormControl', value: this.reasonDetail(), oninput: m.withAttr('value', this.reasonDetail) }) : ''
)
)
),
m(
'div',
{ className: 'Form-group' },
m(
Button,
{
2015-11-05 14:11:01 +08:00
className: 'Button Button--primary Button--block',
2015-10-11 16:21:25 +08:00
type: 'submit',
loading: this.loading,
disabled: !this.reason() },
2015-10-27 10:08:24 +08:00
app.translator.trans('flarum-flags.forum.flag_post.submit_button')
2015-10-11 16:21:25 +08:00
)
)
)
);
}
}, {
key: 'onsubmit',
value: function onsubmit(e) {
2016-03-18 07:02:41 +08:00
var _this2 = this;
2015-10-11 16:21:25 +08:00
e.preventDefault();
this.loading = true;
app.store.createRecord('flags').save({
reason: this.reason() === 'other' ? null : this.reason(),
reasonDetail: this.reasonDetail(),
relationships: {
user: app.session.user,
post: this.props.post
}
}).then(function () {
2016-03-18 07:02:41 +08:00
return _this2.success = true;
}).catch(function () {}).then(this.loaded.bind(this));
2015-10-11 16:21:25 +08:00
}
}]);
return FlagPostModal;
2016-03-18 07:02:41 +08:00
}(Modal);
2015-10-11 16:21:25 +08:00
_export('default', FlagPostModal);
}
};
2015-11-03 07:33:08 +08:00
});;
2016-03-18 07:02:41 +08:00
'use strict';
2015-10-11 16:21:25 +08:00
2016-03-18 07:02:41 +08:00
System.register('flarum/flags/components/FlagsDropdown', ['flarum/components/NotificationsDropdown', 'flarum/flags/components/FlagList'], function (_export, _context) {
2015-10-11 16:21:25 +08:00
var NotificationsDropdown, FlagList, FlagsDropdown;
return {
setters: [function (_flarumComponentsNotificationsDropdown) {
2016-03-18 07:02:41 +08:00
NotificationsDropdown = _flarumComponentsNotificationsDropdown.default;
2015-10-11 16:21:25 +08:00
}, function (_flarumFlagsComponentsFlagList) {
2016-03-18 07:02:41 +08:00
FlagList = _flarumFlagsComponentsFlagList.default;
2015-10-11 16:21:25 +08:00
}],
execute: function () {
2016-03-18 07:02:41 +08:00
FlagsDropdown = function (_NotificationsDropdow) {
babelHelpers.inherits(FlagsDropdown, _NotificationsDropdow);
2015-10-11 16:21:25 +08:00
function FlagsDropdown() {
babelHelpers.classCallCheck(this, FlagsDropdown);
2016-03-18 07:02:41 +08:00
return babelHelpers.possibleConstructorReturn(this, Object.getPrototypeOf(FlagsDropdown).apply(this, arguments));
2015-10-11 16:21:25 +08:00
}
babelHelpers.createClass(FlagsDropdown, [{
2015-10-27 09:46:28 +08:00
key: 'init',
value: function init() {
babelHelpers.get(Object.getPrototypeOf(FlagsDropdown.prototype), 'init', this).call(this);
this.list = new FlagList();
}
}, {
2015-10-11 16:21:25 +08:00
key: 'goToRoute',
value: function goToRoute() {
m.route(app.route('flags'));
}
}, {
key: 'getUnreadCount',
value: function getUnreadCount() {
2015-10-27 09:46:28 +08:00
return app.cache.flags ? app.cache.flags.length : app.forum.attribute('flagsCount');
2015-10-11 16:21:25 +08:00
}
}, {
key: 'getNewCount',
value: function getNewCount() {
2015-10-27 09:46:28 +08:00
return app.session.user.attribute('newFlagsCount');
}
}], [{
key: 'initProps',
value: function initProps(props) {
2015-10-27 10:08:24 +08:00
props.label = props.label || app.translator.trans('flarum-flags.forum.flagged_posts.tooltip');
2015-10-27 09:46:28 +08:00
props.icon = props.icon || 'flag';
babelHelpers.get(Object.getPrototypeOf(FlagsDropdown), 'initProps', this).call(this, props);
2015-10-11 16:21:25 +08:00
}
}]);
return FlagsDropdown;
2016-03-18 07:02:41 +08:00
}(NotificationsDropdown);
2015-10-11 16:21:25 +08:00
_export('default', FlagsDropdown);
}
};
2015-11-03 07:33:08 +08:00
});;
2016-03-18 07:02:41 +08:00
'use strict';
2015-10-11 16:21:25 +08:00
2016-03-18 07:02:41 +08:00
System.register('flarum/flags/components/FlagsPage', ['flarum/components/Page', 'flarum/flags/components/FlagList'], function (_export, _context) {
2015-10-11 16:21:25 +08:00
var Page, FlagList, FlagsPage;
return {
setters: [function (_flarumComponentsPage) {
2016-03-18 07:02:41 +08:00
Page = _flarumComponentsPage.default;
2015-10-11 16:21:25 +08:00
}, function (_flarumFlagsComponentsFlagList) {
2016-03-18 07:02:41 +08:00
FlagList = _flarumFlagsComponentsFlagList.default;
2015-10-11 16:21:25 +08:00
}],
execute: function () {
2016-03-18 07:02:41 +08:00
FlagsPage = function (_Page) {
2015-10-11 16:21:25 +08:00
babelHelpers.inherits(FlagsPage, _Page);
function FlagsPage() {
babelHelpers.classCallCheck(this, FlagsPage);
2016-03-18 07:02:41 +08:00
return babelHelpers.possibleConstructorReturn(this, Object.getPrototypeOf(FlagsPage).apply(this, arguments));
2015-10-27 09:46:28 +08:00
}
2015-10-11 16:21:25 +08:00
2015-10-27 09:46:28 +08:00
babelHelpers.createClass(FlagsPage, [{
key: 'init',
value: function init() {
babelHelpers.get(Object.getPrototypeOf(FlagsPage.prototype), 'init', this).call(this);
2015-10-11 16:21:25 +08:00
2015-10-27 09:46:28 +08:00
app.history.push('flags');
2015-10-11 16:21:25 +08:00
2015-10-27 09:46:28 +08:00
this.list = new FlagList();
this.list.load();
2015-10-11 16:21:25 +08:00
2015-10-27 09:46:28 +08:00
this.bodyClass = 'App--flags';
}
}, {
2015-10-11 16:21:25 +08:00
key: 'view',
value: function view() {
return m(
'div',
{ className: 'FlagsPage' },
this.list.render()
);
}
}]);
return FlagsPage;
2016-03-18 07:02:41 +08:00
}(Page);
2015-10-11 16:21:25 +08:00
_export('default', FlagsPage);
}
};
2015-11-03 07:33:08 +08:00
});;
2016-03-18 07:02:41 +08:00
'use strict';
2015-11-03 07:33:08 +08:00
2016-03-18 07:02:41 +08:00
System.register('flarum/flags/main', ['flarum/app', 'flarum/Model', 'flarum/flags/models/Flag', 'flarum/flags/components/FlagsPage', 'flarum/flags/addFlagControl', 'flarum/flags/addFlagsDropdown', 'flarum/flags/addFlagsToPosts'], function (_export, _context) {
2015-11-03 07:33:08 +08:00
var app, Model, Flag, FlagsPage, addFlagControl, addFlagsDropdown, addFlagsToPosts;
return {
setters: [function (_flarumApp) {
2016-03-18 07:02:41 +08:00
app = _flarumApp.default;
2015-11-03 07:33:08 +08:00
}, function (_flarumModel) {
2016-03-18 07:02:41 +08:00
Model = _flarumModel.default;
2015-11-03 07:33:08 +08:00
}, function (_flarumFlagsModelsFlag) {
2016-03-18 07:02:41 +08:00
Flag = _flarumFlagsModelsFlag.default;
2015-11-03 07:33:08 +08:00
}, function (_flarumFlagsComponentsFlagsPage) {
2016-03-18 07:02:41 +08:00
FlagsPage = _flarumFlagsComponentsFlagsPage.default;
2015-11-03 07:33:08 +08:00
}, function (_flarumFlagsAddFlagControl) {
2016-03-18 07:02:41 +08:00
addFlagControl = _flarumFlagsAddFlagControl.default;
2015-11-03 07:33:08 +08:00
}, function (_flarumFlagsAddFlagsDropdown) {
2016-03-18 07:02:41 +08:00
addFlagsDropdown = _flarumFlagsAddFlagsDropdown.default;
2015-11-03 07:33:08 +08:00
}, function (_flarumFlagsAddFlagsToPosts) {
2016-03-18 07:02:41 +08:00
addFlagsToPosts = _flarumFlagsAddFlagsToPosts.default;
2015-11-03 07:33:08 +08:00
}],
execute: function () {
app.initializers.add('flarum-flags', function () {
app.store.models.posts.prototype.flags = Model.hasMany('flags');
app.store.models.posts.prototype.canFlag = Model.attribute('canFlag');
app.store.models.flags = Flag;
app.routes.flags = { path: '/flags', component: m(FlagsPage, null) };
addFlagControl();
addFlagsDropdown();
addFlagsToPosts();
});
}
};
});;
2016-03-18 07:02:41 +08:00
'use strict';
2015-10-11 16:21:25 +08:00
2016-03-18 07:02:41 +08:00
System.register('flarum/flags/models/Flag', ['flarum/Model', 'flarum/utils/mixin'], function (_export, _context) {
2015-10-11 16:21:25 +08:00
var Model, mixin, Flag;
return {
setters: [function (_flarumModel) {
2016-03-18 07:02:41 +08:00
Model = _flarumModel.default;
2015-10-11 16:21:25 +08:00
}, function (_flarumUtilsMixin) {
2016-03-18 07:02:41 +08:00
mixin = _flarumUtilsMixin.default;
2015-10-11 16:21:25 +08:00
}],
execute: function () {
2016-03-18 07:02:41 +08:00
Flag = function (_Model) {
2015-10-11 16:21:25 +08:00
babelHelpers.inherits(Flag, _Model);
function Flag() {
babelHelpers.classCallCheck(this, Flag);
2016-03-18 07:02:41 +08:00
return babelHelpers.possibleConstructorReturn(this, Object.getPrototypeOf(Flag).apply(this, arguments));
2015-10-11 16:21:25 +08:00
}
return Flag;
2016-03-18 07:02:41 +08:00
}(Model);
2015-10-11 16:21:25 +08:00
2016-03-18 07:02:41 +08:00
babelHelpers.extends(Flag.prototype, {
2015-10-11 16:21:25 +08:00
type: Model.attribute('type'),
reason: Model.attribute('reason'),
reasonDetail: Model.attribute('reasonDetail'),
time: Model.attribute('time', Model.transformDate),
post: Model.hasOne('post'),
user: Model.hasOne('user')
});
_export('default', Flag);
}
};
});