/**
 * An element which displays sidebar information for a image. Primarily used in the repo view.
 */
angular.module('quay').directive('imageInfoSidebar', function () {
  var directiveDefinitionObject = {
    priority: 0,
    templateUrl: '/static/directives/image-info-sidebar.html',
    replace: false,
    transclude: true,
    restrict: 'C',
    scope: {
      'tracker': '=tracker',
      'image': '=image',
      'imageLoader': '=imageLoader',

      'tagSelected': '&tagSelected',
      'addTagRequested': '&addTagRequested'
    },
    controller: function($scope, $element, ImageMetadataService) {
      $scope.$watch('image', function(image) {
        if (!image || !$scope.tracker) { return; }
        $scope.imageData = $scope.tracker.lookupImage(image);
      });

      $scope.parseDate = function(dateString) {
        return Date.parse(dateString);
      };

      $scope.getTags = function(imageData) {
        return $scope.imageLoader.getTagsForImage(imageData);
      };

      $scope.getFormattedCommand = ImageMetadataService.getFormattedCommand;
    }
  };
  return directiveDefinitionObject;
});