Files
phabricator/webroot/rsrc/js/core/DropdownMenuItem.js

57 lines
1.0 KiB
JavaScript
Raw Normal View History

/**
* @requires javelin-install
* javelin-dom
* @provides phabricator-menu-item
* @javelin
*/
JX.install('PhabricatorMenuItem', {
construct : function(name, action, href) {
this.setName(name);
this.setHref(href || '#');
this._action = action;
},
members : {
_action : null,
render : function() {
var classes = [];
classes.push('dropdown-menu-item');
if (this.getSelected()) {
classes.push('dropdown-menu-item-selected');
}
if (this.getDisabled()) {
classes.push('dropdown-menu-item-disabled');
}
var attrs = {
href: this.getHref(),
meta: { item: this },
className: classes.join(' ')
};
if (this.getDisabled()) {
return JX.$N('span', attrs, this.getName());
} else {
return JX.$N('a', attrs, this.getName());
}
},
select : function() {
this._action();
}
},
properties : {
name: '',
href: '',
disabled: false,
selected: false
}
});