/**
 * An element which displays a single layer representing an image in the image view.
 */
angular.module('quay').directive('imageViewLayer', function () {
  var directiveDefinitionObject = {
    priority: 0,
    templateUrl: '/static/directives/image-view-layer.html',
    replace: false,
    transclude: true,
    restrict: 'C',
    scope: {
      'repository': '=repository',
      'image': '=image',
      'images': '=images'
    },
    controller: function($scope, $element) {
      $scope.getDockerfileCommand = function(command) {
        if (!command) { return ''; }

        // ["/bin/sh", "-c", "#(nop) RUN foo"]
        var commandPrefix = '#(nop)'

        if (command.length != 3) { return  ''; }
        if (command[0] != '/bin/sh' || command[1] != '-c') { return ''; }

        var cmd = command[2];
        if (cmd.substring(0, commandPrefix.length) != commandPrefix) {
          return 'RUN ' + cmd;
        }

        return command[2].substr(commandPrefix.length + 1);
      };

      $scope.getClass = function() {
        var index = $.inArray($scope.image, $scope.images);
        if (index  < 0) {
          return 'first';
        }

        if (index == $scope.images.length - 1) {
          return 'last';
        }

        return '';
      };
    }
  };
  return directiveDefinitionObject;
});