mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-01-24 20:36:49 +00:00
25 lines
792 B
CoffeeScript
25 lines
792 B
CoffeeScript
angular.module("admin.indexUtils").factory 'Panels', ->
|
|
new class Panels
|
|
all: []
|
|
|
|
register: (ctrl, object, selected=null) ->
|
|
if ctrl? && object?
|
|
existing = @panelFor(object)
|
|
newPanel = { ctrl: ctrl, object: object, selected: selected }
|
|
if existing then angular.extend(existing, newPanel) else @all.push(newPanel)
|
|
ctrl.select(selected) if selected?
|
|
|
|
toggle: (object, name, state=null) ->
|
|
panel = @panelFor(object)
|
|
if panel.selected == name
|
|
@select(panel, null) unless state == "open"
|
|
else
|
|
@select(panel, name) unless state == "closed"
|
|
|
|
select: (panel, name) ->
|
|
panel.selected = name
|
|
panel.ctrl.select(name)
|
|
|
|
panelFor: (object) ->
|
|
(@all.filter (panel) -> panel.object == object)[0]
|