39 lines
No EOL
950 B
JavaScript
39 lines
No EOL
950 B
JavaScript
/**
|
|
* An element which displays an edit box for regular expressions.
|
|
*/
|
|
angular.module('quay').directive('regexEditor', function () {
|
|
var directiveDefinitionObject = {
|
|
priority: 0,
|
|
templateUrl: '/static/directives/regex-editor.html',
|
|
replace: false,
|
|
transclude: true,
|
|
restrict: 'C',
|
|
scope: {
|
|
'placeholder': '@placeholder',
|
|
'optional': '=optional',
|
|
'binding': '=binding'
|
|
},
|
|
controller: function($scope, $element) {
|
|
}
|
|
};
|
|
return directiveDefinitionObject;
|
|
});
|
|
|
|
angular.module('quay').directive('requireValidRegex', function() {
|
|
return {
|
|
require: 'ngModel',
|
|
link: function(scope, element, attr, ctrl) {
|
|
function validator(value) {
|
|
try {
|
|
new RegExp(value)
|
|
ctrl.$setValidity('regex', true);
|
|
} catch (e) {
|
|
ctrl.$setValidity('regex', false);
|
|
}
|
|
return value;
|
|
}
|
|
|
|
ctrl.$parsers.push(validator);
|
|
}
|
|
};
|
|
}); |