mirror of
https://github.com/flarum/core.git
synced 2025-10-18 18:26:07 +02:00
58 lines
1.5 KiB
JavaScript
58 lines
1.5 KiB
JavaScript
import Ember from 'ember';
|
|
|
|
import TaggedArray from '../../utils/tagged-array';
|
|
import { PositionEnum } from '../../controllers/composer';
|
|
|
|
var precompileTemplate = Ember.Handlebars.compile;
|
|
|
|
export default Ember.Component.extend(Ember.Evented, {
|
|
layoutName: 'components/discussions/composer-body',
|
|
|
|
submitLabel: 'Post Discussion',
|
|
titlePlaceholder: 'Discussion Title',
|
|
placeholder: '',
|
|
title: '',
|
|
content: '',
|
|
submit: null,
|
|
loading: false,
|
|
|
|
disabled: Ember.computed.equal('composer.position', PositionEnum.MINIMIZED),
|
|
|
|
didInsertElement: function() {
|
|
var controls = TaggedArray.create();
|
|
this.trigger('populateControls', controls);
|
|
this.set('controls', controls);
|
|
},
|
|
|
|
populateControls: function(controls) {
|
|
var title = Ember.Component.create({
|
|
tagName: 'h3',
|
|
layout: precompileTemplate('{{ui/controls/text-input value=component.title class="form-control" placeholder=component.titlePlaceholder disabled=component.disabled}}'),
|
|
component: this
|
|
});
|
|
controls.pushObjectWithTag(title, 'title');
|
|
},
|
|
|
|
actions: {
|
|
submit: function(content) {
|
|
this.get('submit')({
|
|
title: this.get('title'),
|
|
content: content
|
|
});
|
|
},
|
|
|
|
willExit: function(abort) {
|
|
// If the user has typed something, prompt them before exiting
|
|
// this composer state.
|
|
if ((this.get('title') || this.get('content')) && !confirm('You have not posted your discussion. Do you wish to discard it?')) {
|
|
abort();
|
|
}
|
|
},
|
|
|
|
reset: function() {
|
|
this.set('loading', false);
|
|
this.set('content', '');
|
|
}
|
|
}
|
|
});
|