     ###
     applyLocking: () ->
       rowName = @getRowName()
+
+      # no point of checking locking for nameless row
+      if rowName is null
+        return
+
       isLockable = @isLockable()
 
       if (isRowLocked(@ngScope.rawSurvey, rowName))

    getRawType: ->
      return @model.get('type').get('typeId')

    getRowName: ->
      return @model.getValue('name') or @model.getValue('$autoname')

    hasRestriction: (restrictionName) ->
      return hasRowRestriction(@ngScope.rawSurvey, @getRowName(), restrictionName)

    # go all levels deep
    ###
    applyLocking: ->
      rowName = @getRowName()

      # no point of checking locking for nameless row
      if rowName is null
        return

      isLockable = @isLockable()

      if (isRowLocked(@ngScope.rawSurvey, rowName))
        # build Locked Features settings tab
        if (isRowLocked(@ngScope.rawSurvey, rowName))
          @$('*[data-card-settings-tab-id="locked-features"]').removeClass(LOCKING_UI_CLASSNAMES.HIDDEN)
          @$lockedFeaturesContent = @$('.js-card-settings-locked-features');
          @$lockedFeaturesContent.removeClass(LOCKING_UI_CLASSNAMES.HIDDEN)
          lockedFeatures = $($viewTemplates.row.lockedFeatures(
            getGroupFeatures(@ngScope.rawSurvey, rowName)
          ))
          @$lockedFeaturesContent.html(lockedFeatures)

