es6 migration and fixes

This commit is contained in:
Sam 2015-12-02 11:15:22 +11:00
parent ddd4500d7a
commit fbffe28772
20 changed files with 73 additions and 56 deletions

View file

@ -1,4 +1,5 @@
import StringBuffer from 'discourse/mixins/string-buffer';
import UserAction from "discourse/models/user-action";
export default Ember.Component.extend(StringBuffer, {
tagName: 'li',
@ -27,9 +28,9 @@ export default Ember.Component.extend(StringBuffer, {
typeKey: function() {
const actionType = this.get('content.action_type');
if (actionType === Discourse.UserAction.TYPES.messages_received) { return ""; }
if (actionType === UserAction.TYPES.messages_received) { return ""; }
const result = Discourse.UserAction.TYPES_INVERTED[actionType];
const result = UserAction.TYPES_INVERTED[actionType];
if (!result) { return ""; }
// We like our URLS to have hyphens, not underscores
@ -55,11 +56,11 @@ export default Ember.Component.extend(StringBuffer, {
icon: function() {
switch(parseInt(this.get('content.action_type'), 10)) {
case Discourse.UserAction.TYPES.likes_received: return "heart";
case Discourse.UserAction.TYPES.bookmarks: return "bookmark";
case Discourse.UserAction.TYPES.edits: return "pencil";
case Discourse.UserAction.TYPES.replies: return "reply";
case Discourse.UserAction.TYPES.mentions: return "at";
case UserAction.TYPES.likes_received: return "heart";
case UserAction.TYPES.bookmarks: return "bookmark";
case UserAction.TYPES.edits: return "pencil";
case UserAction.TYPES.replies: return "reply";
case UserAction.TYPES.mentions: return "at";
}
}.property("content.action_type")
});

View file

@ -2,6 +2,7 @@ import ComboboxView from 'discourse/components/combo-box';
import { categoryBadgeHTML } from 'discourse/helpers/category-link';
import computed from 'ember-addons/ember-computed-decorators';
import { observes, on } from 'ember-addons/ember-computed-decorators';
import PermissionType from 'discourse/models/permission-type';
export default ComboboxView.extend({
classNames: ['combobox category-combobox'],
@ -22,7 +23,7 @@ export default ComboboxView.extend({
if (scopedCategoryId && c.get('id') !== scopedCategoryId && c.get('parent_category_id') !== scopedCategoryId) { return false; }
if (c.get('isUncategorizedCategory')) { return false; }
if (c.get('contains_messages')) { return false; }
return c.get('permission') === Discourse.PermissionType.FULL;
return c.get('permission') === PermissionType.FULL;
});
},

View file

@ -1,4 +1,5 @@
import { buildCategoryPanel } from 'discourse/components/edit-category-panel';
import PermissionType from 'discourse/models/permission-type';
export default buildCategoryPanel('security', {
editingPermissions: false,
@ -16,7 +17,7 @@ export default buildCategoryPanel('security', {
if (!this.get('category.is_special')) {
this.get('category').addPermission({
group_name: group + "",
permission: Discourse.PermissionType.create({id})
permission: PermissionType.create({id})
});
}
},

View file

@ -1,6 +1,8 @@
import { exportUserArchive } from 'discourse/lib/export-csv';
import CanCheckEmails from 'discourse/mixins/can-check-emails';
import computed from 'ember-addons/ember-computed-decorators';
import UserAction from 'discourse/models/user-action';
import User from 'discourse/models/user';
export default Ember.Controller.extend(CanCheckEmails, {
indexStream: false,
@ -10,7 +12,7 @@ export default Ember.Controller.extend(CanCheckEmails, {
@computed("content.username")
viewingSelf(username) {
return username === Discourse.User.currentProp('username');
return username === User.currentProp('username');
},
@computed('indexStream', 'viewingSelf', 'forceExpand')
@ -39,13 +41,13 @@ export default Ember.Controller.extend(CanCheckEmails, {
@computed("userActionType")
privateMessageView(userActionType) {
return (userActionType === Discourse.UserAction.TYPES.messages_sent) ||
(userActionType === Discourse.UserAction.TYPES.messages_received);
return (userActionType === UserAction.TYPES.messages_sent) ||
(userActionType === UserAction.TYPES.messages_received);
},
@computed()
canInviteToForum() {
return Discourse.User.currentProp('can_invite_to_forum');
return User.currentProp('can_invite_to_forum');
},
canDeleteUser: Ember.computed.and("model.can_be_deleted", "model.can_delete_all_posts"),
@ -72,7 +74,9 @@ export default Ember.Controller.extend(CanCheckEmails, {
},
adminDelete() {
Discourse.AdminUser.find(this.get('model.username').toLowerCase())
// I really want this deferred, don't want to bring in all this code till used
const AdminUser = require('admin/models/admin-user').default;
AdminUser.find(this.get('model.username').toLowerCase())
.then(user => user.destroy({deletePosts: true}));
},

View file

@ -1,5 +1,6 @@
import RestModel from 'discourse/models/rest';
import { on } from 'ember-addons/ember-computed-decorators';
import PermissionType from 'discourse/models/permission-type';
const Category = RestModel.extend({
@ -15,16 +16,16 @@ const Category = RestModel.extend({
availableGroups.removeObject(elem.group_name);
return {
group_name: elem.group_name,
permission: Discourse.PermissionType.create({id: elem.permission_type})
permission: PermissionType.create({id: elem.permission_type})
};
}));
}
},
availablePermissions: function(){
return [ Discourse.PermissionType.create({id: Discourse.PermissionType.FULL}),
Discourse.PermissionType.create({id: Discourse.PermissionType.CREATE_POST}),
Discourse.PermissionType.create({id: Discourse.PermissionType.READONLY})
return [ PermissionType.create({id: PermissionType.FULL}),
PermissionType.create({id: PermissionType.CREATE_POST}),
PermissionType.create({id: PermissionType.READONLY})
];
}.property(),
@ -117,9 +118,9 @@ const Category = RestModel.extend({
permissions: function(){
return Em.A([
{group_name: "everyone", permission: Discourse.PermissionType.create({id: 1})},
{group_name: "admins", permission: Discourse.PermissionType.create({id: 2}) },
{group_name: "crap", permission: Discourse.PermissionType.create({id: 3}) }
{group_name: "everyone", permission: PermissionType.create({id: 1})},
{group_name: "admins", permission: PermissionType.create({id: 2}) },
{group_name: "crap", permission: PermissionType.create({id: 3}) }
]);
}.property(),

View file

@ -1,5 +1,4 @@
Discourse.PermissionType = Discourse.Model.extend({
const PermissionType = Discourse.Model.extend({
description: function(){
var key = "";
@ -18,6 +17,8 @@ Discourse.PermissionType = Discourse.Model.extend({
}.property("id")
});
Discourse.PermissionType.FULL = 1;
Discourse.PermissionType.CREATE_POST = 2;
Discourse.PermissionType.READONLY = 3;
PermissionType.FULL = 1;
PermissionType.CREATE_POST = 2;
PermissionType.READONLY = 3;
export default PermissionType;

View file

@ -1,12 +1,7 @@
/**
A data model representing a group of UserActions
@class UserActionGroup
@extends Discourse.Model
@namespace Discourse
@module Discourse
**/
Discourse.UserActionGroup = Discourse.Model.extend({
export default Discourse.Model.extend({
push: function(item) {
if (!this.items) {
this.items = [];

View file

@ -2,6 +2,7 @@ import RestModel from 'discourse/models/rest';
import { url } from 'discourse/lib/computed';
import { on } from 'ember-addons/ember-computed-decorators';
import computed from 'ember-addons/ember-computed-decorators';
import UserActionGroup from 'discourse/models/user-action-group';
const UserActionTypes = {
likes_given: 1,
@ -35,7 +36,7 @@ const UserAction = RestModel.extend({
@computed("action_type")
descriptionKey(action) {
if (action === null || Discourse.UserAction.TO_SHOW.indexOf(action) >= 0) {
if (action === null || UserAction.TO_SHOW.indexOf(action) >= 0) {
if (this.get('isPM')) {
return this.get('sameUser') ? 'sent_by_you' : 'sent_by_user';
} else {
@ -111,10 +112,10 @@ const UserAction = RestModel.extend({
let groups = this.get("childGroups");
if (!groups) {
groups = {
likes: Discourse.UserActionGroup.create({ icon: "fa fa-heart" }),
stars: Discourse.UserActionGroup.create({ icon: "fa fa-star" }),
edits: Discourse.UserActionGroup.create({ icon: "fa fa-pencil" }),
bookmarks: Discourse.UserActionGroup.create({ icon: "fa fa-bookmark" })
likes: UserActionGroup.create({ icon: "fa fa-heart" }),
stars: UserActionGroup.create({ icon: "fa fa-star" }),
edits: UserActionGroup.create({ icon: "fa fa-pencil" }),
bookmarks: UserActionGroup.create({ icon: "fa fa-bookmark" })
};
}
this.set("childGroups", groups);
@ -171,7 +172,7 @@ UserAction.reopenClass({
if (found === void 0) {
let current;
if (Discourse.UserAction.TO_COLLAPSE.indexOf(item.action_type) >= 0) {
if (UserAction.TO_COLLAPSE.indexOf(item.action_type) >= 0) {
current = UserAction.create(item);
item.switchToActing();
current.addChild(item);

View file

@ -1,5 +1,6 @@
import { url } from 'discourse/lib/computed';
import RestModel from 'discourse/models/rest';
import UserAction from 'discourse/models/user-action';
export default RestModel.extend({
loaded: false,
@ -11,13 +12,13 @@ export default RestModel.extend({
filterParam: function() {
const filter = this.get('filter');
if (filter === Discourse.UserAction.TYPES.replies) {
return [Discourse.UserAction.TYPES.replies,
Discourse.UserAction.TYPES.quotes].join(",");
return [UserAction.TYPES.replies,
UserAction.TYPES.quotes].join(",");
}
if(!filter) {
return [Discourse.UserAction.TYPES.topics,
Discourse.UserAction.TYPES.posts].join(",");
return [UserAction.TYPES.topics,
UserAction.TYPES.posts].join(",");
}
return filter;
@ -70,10 +71,10 @@ export default RestModel.extend({
const copy = Em.A();
result.user_actions.forEach(function(action) {
action.title = Discourse.Emoji.unescape(Handlebars.Utils.escapeExpression(action.title));
copy.pushObject(Discourse.UserAction.create(action));
copy.pushObject(UserAction.create(action));
});
self.get('content').pushObjects(Discourse.UserAction.collapseStream(copy));
self.get('content').pushObjects(UserAction.collapseStream(copy));
self.setProperties({
loaded: true,
itemsLoaded: self.get('itemsLoaded') + result.user_actions.length

View file

@ -1,6 +1,7 @@
import { filterQueryParams, findTopicList } from 'discourse/routes/build-topic-route';
import { queryParams } from 'discourse/controllers/discovery-sortable';
import TopicList from 'discourse/models/topic-list';
import PermissionType from 'discourse/models/permission-type';
// A helper function to create a category route with parameters
export default (filter, params) => {
@ -68,7 +69,7 @@ export default (filter, params) => {
const topics = this.get('topics'),
category = model.category,
canCreateTopic = topics.get('can_create_topic'),
canCreateTopicOnCategory = category.get('permission') === Discourse.PermissionType.FULL;
canCreateTopicOnCategory = category.get('permission') === PermissionType.FULL;
this.controllerFor('navigation/category').setProperties({
canCreateTopicOnCategory: canCreateTopicOnCategory,

View file

@ -1,5 +1,6 @@
import UserActivityStreamRoute from "discourse/routes/user-activity-stream";
import UserAction from "discourse/models/user-action";
export default UserActivityStreamRoute.extend({
userActionType: Discourse.UserAction.TYPES["bookmarks"]
userActionType: UserAction.TYPES["bookmarks"]
});

View file

@ -1,5 +1,6 @@
import UserActivityStreamRoute from "discourse/routes/user-activity-stream";
import UserAction from "discourse/models/user-action";
export default UserActivityStreamRoute.extend({
userActionType: Discourse.UserAction.TYPES["edits"]
userActionType: UserAction.TYPES["edits"]
});

View file

@ -1,5 +1,6 @@
import UserActivityStreamRoute from "discourse/routes/user-activity-stream";
import UserAction from "discourse/models/user-action";
export default UserActivityStreamRoute.extend({
userActionType: Discourse.UserAction.TYPES["likes_given"]
userActionType: UserAction.TYPES["likes_given"]
});

View file

@ -1,5 +1,6 @@
import UserActivityStreamRoute from "discourse/routes/user-activity-stream";
import UserAction from "discourse/models/user-action";
export default UserActivityStreamRoute.extend({
userActionType: Discourse.UserAction.TYPES["likes_received"]
userActionType: UserAction.TYPES["likes_received"]
});

View file

@ -1,5 +1,6 @@
import UserActivityStreamRoute from "discourse/routes/user-activity-stream";
import UserAction from "discourse/models/user-action";
export default UserActivityStreamRoute.extend({
userActionType: Discourse.UserAction.TYPES["mentions"]
userActionType: UserAction.TYPES["mentions"]
});

View file

@ -1,5 +1,6 @@
import UserActivityStreamRoute from "discourse/routes/user-activity-stream";
import UserAction from "discourse/models/user-action";
export default UserActivityStreamRoute.extend({
userActionType: Discourse.UserAction.TYPES.pending
userActionType: UserAction.TYPES.pending
});

View file

@ -1,5 +1,6 @@
import UserActivityStreamRoute from "discourse/routes/user-activity-stream";
import UserAction from "discourse/models/user-action";
export default UserActivityStreamRoute.extend({
userActionType: Discourse.UserAction.TYPES["posts"]
userActionType: UserAction.TYPES["posts"]
});

View file

@ -1,5 +1,6 @@
import UserActivityStreamRoute from "discourse/routes/user-activity-stream";
import UserAction from "discourse/models/user-action";
export default UserActivityStreamRoute.extend({
userActionType: Discourse.UserAction.TYPES["replies"]
userActionType: UserAction.TYPES["replies"]
});

View file

@ -1,7 +1,8 @@
import UserTopicListRoute from "discourse/routes/user-topic-list";
import UserAction from "discourse/models/user-action";
export default UserTopicListRoute.extend({
userActionType: Discourse.UserAction.TYPES.topics,
userActionType: UserAction.TYPES.topics,
model: function() {
return this.store.findFiltered('topicList', {filter: 'topics/created-by/' + this.modelFor('user').get('username_lower') });

View file

@ -24,9 +24,12 @@
//= require ./discourse/lib/eyeline
//= require ./discourse/helpers/register-unbound
//= require ./discourse/mixins/scrolling
//= require ./discourse/models/model
//= require ./discourse/models/rest
//= require ./discourse/models/badge-grouping
//= require ./discourse/models/badge
//= require ./discourse/models/permission-type
//= require ./discourse/models/user-action-group
//= require ./discourse/models/category
//= require ./discourse/lib/ajax-error
//= require ./discourse/lib/markdown
@ -38,8 +41,6 @@
//= require ./discourse/lib/debounce
//= require ./discourse/lib/safari-hacks
//= require_tree ./discourse/adapters
//= require ./discourse/models/rest
//= require ./discourse/models/model
//= require ./discourse/models/result-set
//= require ./discourse/models/store
//= require ./discourse/models/post-action-type