Removed a bunch of bindings.

This commit is contained in:
Robin Ward 2013-05-24 11:22:17 -04:00
parent 56764f817b
commit e9f1e28322
14 changed files with 42 additions and 33 deletions

View File

@ -73,11 +73,14 @@ Discourse = Ember.Application.createWithMixins({
user.set('unread_notifications', data.unread_notifications);
user.set('unread_private_messages', data.unread_private_messages);
}), user.notification_channel_position);
bus.subscribe("/categories", function(data){
Discourse.get('site').set('categories', data.categories.map(function(c){
return Discourse.Category.create(c);
}));
var site = Discourse.Site.instance();
data.categories.each(function(c){
site.updateCategory(c)
});
});
}
}.observes('currentUser'),

View File

@ -13,9 +13,9 @@ Discourse.Archetype = Discourse.Model.extend({
return this.get('options').length > 0;
}).property('options.@each'),
isDefault: (function() {
return this.get('id') === Discourse.get('site.default_archetype');
}).property('id')
isDefault: function() {
return this.get('id') === Discourse.Site.instance().get('default_archetype');
}.property('id')
});

View File

@ -70,6 +70,11 @@ Discourse.Category = Discourse.Model.extend({
});
Discourse.Category.reopenClass({
list: function() {
return Discourse.Site.instance().get('categories');
},
findBySlugOrId: function(slugOrId) {
return Discourse.ajax("/categories/" + slugOrId + ".json").then(function (result) {
return Discourse.Category.create(result.category);

View File

@ -22,15 +22,18 @@ EDIT = 'edit';
REPLY_AS_NEW_TOPIC_KEY = "reply_as_new_topic";
Discourse.Composer = Discourse.Model.extend({
archetypesBinding: 'Discourse.site.archetypes',
init: function() {
this._super();
var val = Discourse.KeyValueStore.get('composer.showPreview') || 'true';
this.set('showPreview', val === 'true');
this.set('archetypeId', Discourse.get('site.default_archetype'));
this.set('archetypeId', Discourse.Site.instance().get('default_archetype'));
},
archetypes: function() {
return Discourse.Site.instance().get('archetypes');
}.property(),
creatingTopic: function() {
return this.get('action') === CREATE_TOPIC;
}.property('action'),
@ -238,7 +241,7 @@ Discourse.Composer = Discourse.Model.extend({
}
this.set('categoryName', opts.categoryName || this.get('topic.category.name'));
this.set('archetypeId', opts.archetypeId || Discourse.get('site.default_archetype'));
this.set('archetypeId', opts.archetypeId || Discourse.Site.instance().get('default_archetype'));
this.set('metaData', opts.metaData ? Em.Object.create(opts.metaData) : null);
this.set('reply', opts.reply || this.get("reply") || "");
if (opts.postId) {
@ -354,7 +357,7 @@ Discourse.Composer = Discourse.Model.extend({
user_id: currentUser.get('id'),
metaData: this.get('metaData'),
archetype: this.get('archetypeId'),
post_type: Discourse.get('site.post_types.regular'),
post_type: Discourse.Site.instance().get('post_types.regular'),
target_usernames: this.get('targetUsernames'),
actions_summary: Em.A(),
moderator: currentUser.get('moderator'),

View File

@ -19,8 +19,7 @@ Discourse.Notification = Discourse.Model.extend({
}.property(),
rendered: function() {
var notificationName;
notificationName = Discourse.get('site.notificationLookup')[this.notification_type];
var notificationName = Discourse.Site.instance().get('notificationLookup')[this.notification_type];
return Em.String.i18n("notifications." + notificationName, {
username: this.data.display_username,
link: "<a href='" + (this.get('url')) + "'>" + this.data.topic_title + "</a>"

View File

@ -124,7 +124,7 @@ Discourse.Post = Discourse.Model.extend({
flagsAvailable: function() {
var _this = this;
var flags = Discourse.get('site.flagTypes').filter(function(item) {
var flags = Discourse.Site.instance().get('flagTypes').filter(function(item) {
return _this.get("actionByName." + (item.get('name_key')) + ".can_act");
});
return flags;
@ -153,7 +153,7 @@ Discourse.Post = Discourse.Model.extend({
}
}).then(function(result) {
// If we received a category update, update it
if (result.category) Discourse.get('site').updateCategory(result.category);
if (result.category) Discourse.Site.instance().updateCategory(result.category);
if (complete) complete(Discourse.Post.create(result.post));
}, function(result) {
// Post failed to update

View File

@ -8,21 +8,17 @@
**/
Discourse.Site = Discourse.Model.extend({
notificationLookup: (function() {
var result;
result = [];
notificationLookup: function() {
var result = [];
Object.keys(this.get('notification_types'), function(k, v) {
result[v] = k;
});
return result;
}).property('notification_types'),
}.property('notification_types'),
flagTypes: function() {
var postActionTypes;
postActionTypes = this.get('post_action_types');
if (!postActionTypes) {
return [];
}
var postActionTypes = this.get('post_action_types');
if (!postActionTypes) return [];
return postActionTypes.filterProperty('is_flag', true);
}.property('post_action_types.@each'),

View File

@ -130,9 +130,9 @@ Discourse.Topic = Discourse.Model.extend({
return null;
}.property('views'),
archetypeObject: (function() {
return Discourse.get('site.archetypes').findProperty('id', this.get('archetype'));
}).property('archetype'),
archetypeObject: function() {
return Discourse.Site.instance().get('archetypes').findProperty('id', this.get('archetype'));
}.property('archetype'),
isPrivateMessage: (function() {
return this.get('archetype') === 'private_message';

View File

@ -92,7 +92,7 @@ Discourse.User = Discourse.Model.extend({
@type {Integer}
**/
trustLevel: function() {
return Discourse.get('site.trust_levels').findProperty('id', this.get('trust_level'));
return Discourse.Site.instance().get('trust_levels').findProperty('id', this.get('trust_level'));
}.property('trust_level'),
/**

View File

@ -9,10 +9,9 @@
Discourse.ListCategoryRoute = Discourse.FilteredListRoute.extend({
model: function(params) {
var categories = Discourse.Site.instance().get('categories');
var categories = Discourse.Category.list();
var slug = Em.get(params, 'slug');
var category = categories.findProperty('slug', Em.get(params, 'slug'))
// In case the slug didn't work, try to find it by id instead.

View File

@ -97,7 +97,7 @@ Discourse.EditCategoryView = Discourse.ModalBodyView.extend({
// We need the topic_count to be correct, so get the most up-to-date info about this category from the server.
Discourse.Category.findBySlugOrId( this.get('category.slug') || this.get('category.id') ).then( function(cat) {
categoryView.set('category', cat);
Discourse.get('site').updateCategory(cat);
Discourse.Site.instance().updateCategory(cat);
categoryView.set('id', categoryView.get('category.slug'));
categoryView.set('loading', false);
});

View File

@ -47,7 +47,7 @@ Discourse.FlagView = Discourse.ModalBodyView.extend({
var action = this.get('selected');
var postAction = this.get('post.actionByName.' + (action.get('name_key')));
var actionType = Discourse.get('site').postActionTypeById(this.get('postActionTypeId'));
var actionType = Discourse.Site.instance().postActionTypeById(this.get('postActionTypeId'));
if (postAction) {
postAction.act({
message: action.get('message')

View File

@ -8,11 +8,15 @@
**/
Discourse.LoginView = Discourse.ModalBodyView.extend({
templateName: 'modal/login',
siteBinding: 'Discourse.site',
title: Em.String.i18n('login.title'),
authenticate: null,
loggingIn: false,
site: function() {
return Discourse.Site.instance();
}.property(),
showView: function(view) {
return this.get('controller').show(view);
},

View File

@ -29,7 +29,7 @@ Discourse.PostView = Discourse.View.extend({
}.property('parentView'),
postTypeClass: function() {
return this.get('post.post_type') === Discourse.get('site.post_types.moderator_action') ? 'moderator' : 'regular';
return this.get('post.post_type') === Discourse.Site.instance().get('post_types.moderator_action') ? 'moderator' : 'regular';
}.property('post.post_type'),
// If the cooked content changed, add the quote controls