Files
openfoodnetwork/app/assets/javascripts/darkswarm/services/tabsets.js.coffee
Rob Harrington ed5c650456 Writing a new tabset component for front-end tabs
Modeled on back-end 'panels' infrastructure
2017-09-23 14:58:32 +10:00

23 lines
658 B
CoffeeScript

Darkswarm.factory 'Tabsets', ->
new class Tabsets
tabsets: []
register: (ctrl, id, selected=null) ->
if ctrl? && id?
@tabsets.push { ctrl: ctrl, id: id, selected: selected }
ctrl.select(selected) if selected?
toggle: (id, name, state=null) ->
tabset = @findTabsetByObject(id)
if tabset.selected == name
@select(tabset, null) unless state == "open"
else
@select(tabset, name) unless state == "closed"
select: (tabset, name) ->
tabset.selected = name
tabset.ctrl.select(name)
findTabsetByObject: (id) ->
(tabset for tabset in @tabsets when tabset.id == id)[0]