mirror of
https://github.com/flarum/core.git
synced 2025-07-30 21:20:24 +02:00
Use component prototypes instead of instances
This means the component instance is created in the template, meaning properties can be overridden in the view helper. It also just makes more sense - a view instance doesn’t need to exist until it is rendered in the template.
This commit is contained in:
@@ -16,7 +16,7 @@ export default ComposerBody.extend({
|
||||
title: '',
|
||||
|
||||
populateControls: function(items) {
|
||||
var title = Ember.Component.create({
|
||||
var title = Ember.Component.extend({
|
||||
tagName: 'h3',
|
||||
layout: precompileTemplate('{{ui/text-input value=component.title class="form-control" placeholder=component.titlePlaceholder disabled=component.disabled autoGrow=true}}'),
|
||||
component: this
|
||||
|
@@ -15,7 +15,7 @@ export default ComposerBody.extend({
|
||||
originalContent: Ember.computed.oneWay('post.content'),
|
||||
|
||||
populateControls: function(controls) {
|
||||
var title = Ember.Component.create({
|
||||
var title = Ember.Component.extend({
|
||||
tagName: 'h3',
|
||||
layout: precompileTemplate('Editing Post #{{component.post.number}} in <em>{{discussion.title}}</em>'),
|
||||
discussion: this.get('post.discussion'),
|
||||
|
@@ -12,7 +12,7 @@ export default ComposerBody.extend({
|
||||
submitLabel: 'Post Reply',
|
||||
|
||||
populateControls: function(items) {
|
||||
var title = Ember.Component.create({
|
||||
var title = Ember.Component.extend({
|
||||
tagName: 'h3',
|
||||
layout: precompileTemplate('Replying to <em>{{component.discussion.title}}</em>'),
|
||||
component: this
|
||||
|
@@ -49,10 +49,10 @@ export default Ember.Component.extend(FadeIn, HasItemLists, UseComposer, {
|
||||
|
||||
populateHeader: function(items) {
|
||||
var properties = this.getProperties('post');
|
||||
items.pushObjectWithTag(PostHeaderUser.create(properties), 'user');
|
||||
items.pushObjectWithTag(PostHeaderMeta.create(properties), 'meta');
|
||||
items.pushObjectWithTag(PostHeaderEdited.create(properties), 'edited');
|
||||
items.pushObjectWithTag(PostHeaderToggle.create(properties, {parent: this}), 'toggle');
|
||||
items.pushObjectWithTag(PostHeaderUser.extend(properties), 'user');
|
||||
items.pushObjectWithTag(PostHeaderMeta.extend(properties), 'meta');
|
||||
items.pushObjectWithTag(PostHeaderEdited.extend(properties), 'edited');
|
||||
items.pushObjectWithTag(PostHeaderToggle.extend(properties, {parent: this}), 'toggle');
|
||||
},
|
||||
|
||||
savePost: function(post, data) {
|
||||
|
@@ -64,7 +64,8 @@ export default Ember.Component.extend(FadeIn, HasItemLists, {
|
||||
layoutName: 'components/index/discussion-info/terminal-post',
|
||||
discussion: Ember.computed.alias('parent.discussion'),
|
||||
displayLastPost: Ember.computed.alias('parent.displayLastPost'),
|
||||
}).create({parent: this}), 'terminalPost');
|
||||
parent: this
|
||||
}), 'terminalPost');
|
||||
},
|
||||
|
||||
actions: {
|
||||
|
@@ -14,7 +14,7 @@ export default Ember.Component.extend({
|
||||
return [];
|
||||
}
|
||||
items.forEach(function(item) {
|
||||
item.set('isListItem', item.get('tagName') === 'li');
|
||||
item.reopenClass({isListItem: item.proto().tagName === 'li'});
|
||||
});
|
||||
return items;
|
||||
})
|
||||
|
@@ -22,7 +22,7 @@ export default Ember.Component.extend(HasItemLists, {
|
||||
},
|
||||
|
||||
populateControls: function(items) {
|
||||
this.addActionItem(items, 'submit', this.get('submitLabel')).set('className', 'btn btn-primary');
|
||||
this.addActionItem(items, 'submit', this.get('submitLabel')).reopen({className: 'btn btn-primary'});
|
||||
},
|
||||
|
||||
actions: {
|
||||
|
Reference in New Issue
Block a user