mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-03-13 04:00:21 +00:00
Fixing bug that caused references to stale DOM objects to be kept and used by Panels service
Was causing panels to break when used in conjuction with ng-repeat + filters
This commit is contained in:
@@ -1,14 +1,16 @@
|
||||
angular.module("admin.indexUtils").factory 'Panels', ->
|
||||
new class Panels
|
||||
panels: []
|
||||
all: []
|
||||
|
||||
register: (ctrl, object, selected=null) ->
|
||||
if ctrl? && object?
|
||||
@panels.push { ctrl: ctrl, object: object, selected: selected }
|
||||
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 = @findPanelByObject(object)
|
||||
panel = @panelFor(object)
|
||||
if panel.selected == name
|
||||
@select(panel, null) unless state == "open"
|
||||
else
|
||||
@@ -18,5 +20,5 @@ angular.module("admin.indexUtils").factory 'Panels', ->
|
||||
panel.selected = name
|
||||
panel.ctrl.select(name)
|
||||
|
||||
findPanelByObject: (object) ->
|
||||
(panel for panel in @panels when panel.object == object)[0]
|
||||
panelFor: (object) ->
|
||||
(@all.filter (panel) -> panel.object == object)[0]
|
||||
|
||||
Reference in New Issue
Block a user