       x instanceof Array and x.length == 0
 
     fetchAllUnpaginated = (field, action, opts = {}) ->
+      # make sure to add the querying indicator
+      $scope.querying[field] = true
       # fetch the field
       Restangular.all(field).getList( opts.query || {} ).then(
         (data) ->
           # if we have a result, process it
           console.log "fetched #{field} (no pagination)"
+          # end the querying indicator
+          delete $scope.querying[field]
+          # process the action
           action(data)
         , () ->
           # otherwise we have a fetch error
           fetchError("fetch #{field} (no pagination)")
+          # end the querying indicator
+          delete $scope.querying[field]
         )
 
     fetchAllPaginated = (field, action, opts = {})->
       stop_when = opts.stop_when || isEmptyArray
       page = opts.page || 1
       limit = opts.limit || 50
+      # make sure to add the querying indicator
+      $scope.querying[field] = true
       # construct a query for pagination
       query = _.merge(
         {page: page, limit: limit},

            return fetchAllUnpaginated(field, action, opts)
          # otherwise we have a fetch error
          fetchError("fetch #{field} on page #{page}, limit #{limit}")
        )

    $scope.fetchNodes = (page = 1)->

    $scope.node = {}
    $scope.package = {}
    $scope.packageByName = {}
    $scope.querying = {}

    $scope.show = {}
    $scope.nodeVisible = {}
