47 lines
1.4 KiB
JavaScript
47 lines
1.4 KiB
JavaScript
import DiscourseController from 'discourse/controllers/controller';
|
|
|
|
export default DiscourseController.extend({
|
|
poll: null,
|
|
showResults: Em.computed.oneWay('poll.closed'),
|
|
disableRadio: Em.computed.any('poll.closed', 'loading'),
|
|
showToggleClosePoll: function() {
|
|
return this.get('poll.post.topic.details.can_edit') && !Discourse.SiteSettings.allow_user_locale;
|
|
}.property('poll.post.topic.details.can_edit'),
|
|
|
|
actions: {
|
|
selectOption: function(option) {
|
|
if (this.get('disableRadio')) {
|
|
return;
|
|
}
|
|
|
|
if (!this.get('currentUser.id')) {
|
|
this.get('postController').send('showLogin');
|
|
return;
|
|
}
|
|
|
|
this.set('loading', true);
|
|
this.get('poll').saveVote(option).then(function() {
|
|
this.set('loading', false);
|
|
this.set('showResults', true);
|
|
}.bind(this));
|
|
},
|
|
|
|
toggleShowResults: function() {
|
|
this.set('showResults', !this.get('showResults'));
|
|
},
|
|
|
|
toggleClosePoll: function() {
|
|
this.set('loading', true);
|
|
return Discourse.ajax("/poll/toggle_close", {
|
|
type: "PUT",
|
|
data: {post_id: this.get('poll.post.id')}
|
|
}).then(function(topicJson) {
|
|
this.set('poll.post.topic.title', topicJson.basic_topic.title);
|
|
this.set('poll.post.topic.fancy_title', topicJson.basic_topic.title);
|
|
this.set('loading', false);
|
|
}.bind(this));
|
|
}
|
|
}
|
|
});
|
|
|