disable add button when no valid ID is provided #1591 (#1747)

* disable add button when no valid ID is provided #1591

* fix test
This commit is contained in:
Eugenio Romano 2017-03-23 09:56:10 +00:00 committed by Denys Vuika
parent f3c9ffab8d
commit 2f3aeb84a1
3 changed files with 87 additions and 8 deletions

View File

@ -13,7 +13,7 @@
<input class="mdl-textfield__input tag-input" type="text" id="new-tag-text" (keypress)="cleanErrorMsg()" [(ngModel)]="newTagName"/>
<label class="mdl-textfield__label" for="new-tag-text" > {{'TAG.LABEL.NEWTAG' | translate }}</label>
<span class="mdl-textfield__error">{{errorMsg}}</span>
<button id="add-tag" class="mdl-button mdl-js-button mdl-button--raised button" (click)="addTag()">
<button id="add-tag" class="mdl-button mdl-js-button mdl-button--raised button" (click)="addTag()" [disabled]="disableAddTag">
{{'TAG.BUTTON.ADD' | translate }}
</button>
</div>
@ -33,7 +33,7 @@
<input class="mdl-textfield__input tag-input" type="text" id="new-tag-text" (keypress)="cleanErrorMsg()" [(ngModel)]="newTagName"/>
<label class="mdl-textfield__label" for="new-tag-text" > {{'TAG.LABEL.NEWTAG' | translate }}</label>
<span *ngIf="errorMsg" class="mdl-textfield__error">{{errorMsg}}</span>
<button id="add-tag" class="mdl-button mdl-js-button mdl-button--raised button" (click)="addTag()">
<button id="add-tag" class="mdl-button mdl-js-button mdl-button--raised button" (click)="addTag()" [disabled]="disableAddTag">
{{'TAG.BUTTON.ADD' | translate }}
</button>
</div>

View File

@ -146,12 +146,25 @@ describe('Test ng2-alfresco-tag Tag actions list', () => {
done();
});
let addButton: any = element.querySelector('#add-tag');
addButton.click();
component.resultsEmitter.subscribe(() => {
fixture.detectChanges();
let addButton: any = element.querySelector('#add-tag');
addButton.click();
jasmine.Ajax.requests.mostRecent().respondWith({
status: 200
});
});
component.ngOnChanges();
jasmine.Ajax.requests.mostRecent().respondWith({
status: 200
status: 200,
contentType: 'json',
responseText: dataTag
});
});
it('The input box should be cleared after add tag', (done) => {
@ -165,11 +178,70 @@ describe('Test ng2-alfresco-tag Tag actions list', () => {
done();
});
let addButton: any = element.querySelector('#add-tag');
addButton.click();
component.resultsEmitter.subscribe(() => {
fixture.detectChanges();
let addButton: any = element.querySelector('#add-tag');
addButton.click();
jasmine.Ajax.requests.mostRecent().respondWith({
status: 200
});
});
component.ngOnChanges();
jasmine.Ajax.requests.mostRecent().respondWith({
status: 200
status: 200,
contentType: 'json',
responseText: dataTag
});
});
it('Add tag should be disabled by default', (done) => {
component.nodeId = 'fake-node-id';
component.newTagName = 'fake-tag-name';
let addButton: any = element.querySelector('#add-tag');
expect(addButton.disabled).toEqual(true);
done();
});
it('Add tag should be disabled if the node id is not a correct node', (done) => {
component.nodeId = 'fake-node-id';
component.newTagName = 'fake-tag-name';
component.resultsEmitter.subscribe(() => {
let addButton: any = element.querySelector('#add-tag');
expect(addButton.disabled).toEqual(true);
done();
});
component.ngOnChanges();
jasmine.Ajax.requests.mostRecent().respondWith({
status: 404
});
});
it('Add tag should be enable if the node id is a correct node', (done) => {
component.nodeId = 'fake-node-id';
component.newTagName = 'fake-tag-name';
component.resultsEmitter.subscribe(() => {
fixture.detectChanges();
let addButton: any = element.querySelector('#add-tag');
expect(addButton.disabled).toEqual(false);
done();
});
component.ngOnChanges();
jasmine.Ajax.requests.mostRecent().respondWith({
status: 200,
contentType: 'json',
responseText: dataTag
});
});
});

View File

@ -52,6 +52,8 @@ export class TagActionsComponent {
errorMsg: string;
disableAddTag: boolean = true;
constructor(private tagService: TagService, private translateService: AlfrescoTranslationService) {
if (translateService) {
translateService.addTranslationFolder('ng2-alfresco-tag', 'node_modules/ng2-alfresco-tag/src');
@ -65,6 +67,11 @@ export class TagActionsComponent {
refreshTag() {
this.tagService.getTagsByNodeId(this.nodeId).subscribe((data) => {
this.tagsEntries = data.list.entries;
this.disableAddTag = false;
this.resultsEmitter.emit(this.tagsEntries);
}, () => {
this.tagsEntries = null;
this.disableAddTag = true;
this.resultsEmitter.emit(this.tagsEntries);
});
}