/** This view handles rendering of a button with an associated drop down @class DropdownButtonView @extends Discourse.View @namespace Discourse @module Discourse **/ Discourse.DropdownButtonView = Discourse.View.extend({ classNameBindings: [':btn-group', 'hidden'], shouldRerender: Discourse.View.renderIfChanged('text', 'longDescription'), didInsertElement: function() { var self = this; // If there's a click handler, call it if (self.clicked) { self.$('ul li').on('click.dropdown-button', function(e) { e.preventDefault(); if ($(e.currentTarget).data('id') !== self.get('activeItem')) self.clicked($(e.currentTarget).data('id')); return false; }); } }, willDestroyElement: function() { this.$('ul li').off('click.dropdown-button'); }, render: function(buffer) { var self = this; var descriptionKey = self.get('descriptionKey') || 'description'; buffer.push("

" + self.get('title') + "

"); buffer.push(""); buffer.push(""); var desc = self.get('longDescription'); if (desc) { buffer.push("

"); buffer.push(desc); buffer.push("

"); } } });