44 lines
1 KiB
JavaScript
44 lines
1 KiB
JavaScript
app.views.AspectsDropdown = app.views.Base.extend({
|
|
templateName : "aspects-dropdown",
|
|
events : {
|
|
"click .dropdown-menu a" : "setVisibility"
|
|
},
|
|
|
|
postRenderTemplate : function(){
|
|
this.setVisibility({target : this.$("a[data-visibility='all-aspects']").first()})
|
|
},
|
|
|
|
setVisibility : function(evt){
|
|
var link = $(evt.target)
|
|
, visibilityCallbacks = {
|
|
'public' : setPublic,
|
|
'all-aspects' : setPrivate,
|
|
'custom' : setCustom
|
|
}
|
|
|
|
visibilityCallbacks[link.data("visibility")].call(this)
|
|
|
|
function setPublic (){
|
|
this.setAspectIds("public")
|
|
this.setDropdownText(link.text())
|
|
}
|
|
|
|
function setPrivate (){
|
|
this.setAspectIds("all_aspects")
|
|
this.setDropdownText(link.text())
|
|
}
|
|
|
|
function setCustom (){
|
|
this.setAspectIds(link.data("aspect-id"))
|
|
this.setDropdownText(link.text())
|
|
}
|
|
},
|
|
|
|
setDropdownText : function(text){
|
|
$.trim(this.$(".dropdown-toggle .text").text(text))
|
|
},
|
|
|
|
setAspectIds : function(val){
|
|
this.$("input.aspect_ids").val(val)
|
|
}
|
|
})
|