Changeset - ad3775ffb622
[Not reviewed]
default
0 1 0
drewp@bigasterisk.com - 7 years ago 2018-06-08 10:43:07
drewp@bigasterisk.com
detect some corrupt ActiveSettings cases
Ignore-this: a2bf37b332337decaedc609719d04539
1 file changed with 4 insertions and 0 deletions:
0 comments (0 inline, 0 general)
light9/web/live/live.coffee
Show inline comments
 
@@ -184,24 +184,28 @@ class ActiveSettings
 
    # The settings we're showing (or would like to but the widget
 
    # isn't registered yet):
 
    # dev+attr : {setting: Uri, onChangeFunc: f, jsValue: str_or_float}
 
    @settings = new Map()
 
    @keyForSetting = new Map() # setting uri str -> dev+attr
 

	
 
    # Registered graphValueChanged funcs, by dev+attr. Kept even when
 
    # settings are deleted.
 
    @onChanged = new Map()
 

	
 
  addSettingsRow: (device, deviceAttr, setting, value) ->
 
    key = device.value + " " + deviceAttr.value
 
    if @settings.has(key)
 
      throw new Error("repeated setting on "+key)
 
    if @keyForSetting.has(setting.value)
 
      throw new Error("repeated keyForSetting on "+setting.value)
 
    @settings.set(key, {
 
      setting: setting,
 
      onChangeFunc: @onChanged[key],
 
      jsValue: value
 
    })
 
    @keyForSetting.set(setting.value, key)
 
    if @onChanged[key]?
 
      @onChanged[key](value)
 

	
 
  has: (setting) ->
 
    @keyForSetting.has(setting.value)
 

	
0 comments (0 inline, 0 general)