import type { IController } from 'angular'; import { module } from 'angular'; import type { IApplicationNameValidationResult } from './ApplicationNameValidator'; import { ApplicationNameValidator } from './ApplicationNameValidator'; /** * This directive is responsible for rendering error and warning messages to the screen when creating a new application. * It does NOT set the validity of the form field - that is handled by the validateApplicationName directive. */ class ApplicationNameValidationMessagesController implements IController { public name: string; public cloudProviders: string[]; public messages: IApplicationNameValidationResult; public $onChanges(): void { ApplicationNameValidator.validate(this.name, this.cloudProviders).then((r) => (this.messages = r)); } } const applicationNameValidationMessagesComponent: ng.IComponentOptions = { bindings: { name: '<', cloudProviders: '<', }, controller: ApplicationNameValidationMessagesController, template: `
`, }; export const APPLICATION_NAME_VALIDATION_MESSAGES = 'spinnaker.core.application.applicationNameValidationMessages'; module(APPLICATION_NAME_VALIDATION_MESSAGES, []).component( 'applicationNameValidationMessages', applicationNameValidationMessagesComponent, );