                   saveDatum(info, v) if r
                   return
               else if !isNaN(v = parseInt(value, 10))
-                if v != info.d.id
+                if v != info.d?.id
                   setRecord(info, volume.records[v])
               return
             when 'metric'

              for ri, r of volume.records
                if r.category == c.id && (!info.row.list(info.c).some((d) -> d.id == ri) || ri == editInput.value)
                  editScope.options[ri] = r.displayName
              # detect special cases: singleton or unitary records
              for mi of Data[c.id]
                mm = constants.metric[mi]
                if !m
                  m = mm
                else if mm
                  m = null
                  break
              if m == undefined && Object.keys(editScope.options).length > 2
                # singleton: id only, existing record(s)
                delete editScope.options['new']
              else if m && m.options
                # unitary: single metric with options
                delete editScope.options['new']
                for o in m.options
                  found = false
                  for ri, r of volume.records
                    if r.category == c.id && r.measures[m.id] == o
                      found = true
                      break
                  editScope.options['add_'+m.id+'_'+o] = o unless found
            when 'category'
              editScope.type = 'metric'
              editInput.value = undefined

                $location.url(info.slot.editRoute({asset:info.d.id}))
                return
              return if info.slot?.id == volume.top.id
              if info.metric.name == 'indicator'
                # trash/bullet: remove
                setRecord(info, null) if info.category != Key
                return
              return if info.metric.readonly
              editScope.type = info.metric.type
              m = info.metric.id
              if info.c == 'slot'
                v = info.slot?[m]
                v += '' if m == 'release'
