Fix validation on project editing

Signed-off-by: Anna Shumilova <ashumilo@redhat.com>
6.19.x
Anna Shumilova 2018-05-10 13:31:30 +03:00
parent 1efafe771a
commit 89db5899c5
5 changed files with 20 additions and 10 deletions

View File

@ -42,6 +42,8 @@ export class EditProjectController {
*/
private projectOnRemove: () => void;
private editProjectForm: ng.IFormController;
/**
* Default constructor that is using resource injection
*/
@ -84,4 +86,12 @@ export class EditProjectController {
return this.editProjectService.checkEditingProgress() === null;
}
/**
* Returns <code>true</code> if input data is invalid.
*
* @returns {boolean}
*/
isInvalid(): boolean {
return this.editProjectForm && Object.keys(this.editProjectForm.$error).length > 0;
}
}

View File

@ -1,8 +1,9 @@
<ng-form name="editProjectForm"
<ng-form name="editProjectController.editProjectForm"
class="edit-project">
<project-metadata template="editProjectController.projectTemplate"
template-name="{{editProjectController.projectTemplate.name}}"
project-form="editProjectController.editProjectForm"
is-project-name-unique="editProjectController.isProjectNameUnique({name: name})"></project-metadata>
<md-divider></md-divider>
@ -21,7 +22,7 @@
ng-click="editProjectController.projectTemplateOnCancel()"></che-button-cancel-flat>
<che-button-primary che-button-title="Save"
name="saveButton"
ng-disabled="editProjectForm.$invalid || editProjectController.disableSaveAndCancelButtons()"
ng-disabled="editProjectController.isInvalid() || editProjectController.disableSaveAndCancelButtons()"
ng-click="editProjectController.projectTemplateOnSave()"></che-button-primary>
</div>
</div>

View File

@ -46,6 +46,8 @@ export class ProjectMetadataController {
*/
/* tslint:disable */
private templateName: string;
private projectForm: ng.IFormController;
/* tslint:enable */
/**
* Callback to check uniqueness of project name.

View File

@ -36,7 +36,8 @@ export class ProjectMetadata implements ng.IDirective {
this.scope = {
origTemplate: '=template',
templateName: '@',
isProjectNameUnique: '&'
isProjectNameUnique: '&',
projectForm: '='
};
}

View File

@ -1,8 +1,6 @@
<div class="project-metadata">
<form name="projectMetadataForm">
<!-- Project name -->
<che-input-box che-form="projectMetadataForm"
<che-input-box che-form="projectMetadataController.projectForm"
che-name="projectName"
che-label-name="Project Name"
che-place-holder="Name of the project"
@ -22,7 +20,7 @@
</che-input-box>
<!-- Project description -->
<che-input-box che-form="projectMetadataForm"
<che-input-box che-form="projectMetadataController.projectForm"
che-name="projectDescription"
che-label-name="Description"
che-place-holder="Description of the project"
@ -37,7 +35,7 @@
<!-- Git URL -->
<div ng-if="projectMetadataController.template.source.type==='git'">
<che-input-box che-form="projectMetadataForm"
<che-input-box che-form="projectMetadataController.projectForm"
che-name="projectGitURL"
che-label-name="Repository URL"
che-place-holder="Url of the git repository"
@ -65,6 +63,4 @@
required>
</che-input-box>
</div>
</form>
</div>