/**
 * An element which displays an input box for creating a namespace.
 */
angular.module('quay').directive('namespaceInput', function () {
  var directiveDefinitionObject = {
    priority: 0,
    templateUrl: '/static/directives/namespace-input.html',
    replace: false,
    transclude: true,
    restrict: 'C',
    scope: {
      'binding': '=binding',
      'isBackIncompat': '=isBackIncompat',
      'hasExternalError': '=?hasExternalError',

      'namespaceTitle': '@namespaceTitle',
    },
    controller: function($scope, $element) {
      $scope.USERNAME_PATTERN = USERNAME_PATTERN;
      $scope.usernamePattern = new RegExp(USERNAME_PATTERN);

      $scope.$watch('binding', function(binding) {
        if (!binding) {
          $scope.isBackIncompat = false;
          return;
        }

        $scope.isBackIncompat = (binding.indexOf('-') > 0 || binding.indexOf('.') > 0);
      })
    }
  };
  return directiveDefinitionObject;
});