/**
A button to display pinned options.
@class PinnedButton
@extends Discourse.DropdownButtonView
@namespace Discourse
@module Discourse
**/
Discourse.PinnedButton = Discourse.DropdownButtonView.extend({
descriptionKey: 'help',
classNames: ['pinned-options'],
title: '',
longDescription: function(){
var topic = this.get('topic');
var globally = topic.get('pinned_globally') ? '_globally' : '';
var key = 'topic_statuses.' + (topic.get('pinned') ? 'pinned' + globally : 'unpinned') + '.help';
return I18n.t(key);
}.property('topic.pinned'),
topic: Em.computed.alias('controller.model'),
target: Em.computed.alias('topic'),
hidden: function(){
var topic = this.get('topic');
return topic.get('deleted') || (!topic.get('pinned') && !topic.get('unpinned'));
}.property('topic.pinned', 'topic.deleted', 'topic.unpinned'),
activeItem: function(){
return this.get('topic.pinned') ? 'pinned' : 'unpinned';
}.property('topic.pinned'),
dropDownContent: function() {
var globally = this.get('topic.pinned_globally') ? '_globally' : '';
return [
{id: 'pinned',
title: I18n.t('topic_statuses.pinned' + globally + '.title'),
description: I18n.t('topic_statuses.pinned' + globally + '.help'),
styleClasses: 'fa fa-thumb-tack' },
{id: 'unpinned',
title: I18n.t('topic_statuses.unpinned.title'),
description: I18n.t('topic_statuses.unpinned.help'),
styleClasses: 'fa fa-thumb-tack unpinned' }
];
}.property(),
text: function() {
var globally = this.get('topic.pinned_globally') ? '_globally' : '';
var state = this.get('topic.pinned') ? 'pinned' + globally : 'unpinned';
return ' ' +
I18n.t('topic_statuses.' + state + '.title') + "";
}.property('topic.pinned', 'topic.unpinned'),
clicked: function(id) {
var topic = this.get('topic');
if(id==='unpinned'){
topic.clearPin();
} else {
topic.rePin();
}
}
});