mirror of
https://github.com/DSpace/dspace-angular.git
synced 2025-10-07 01:54:15 +00:00
@@ -1,10 +1,10 @@
|
||||
<td>
|
||||
<div class="metadata-field">
|
||||
<div *ngIf="!(editable | async)">
|
||||
<span>{{metadata?.key?.split('.').join('.​')}}</span>
|
||||
<span >{{metadata?.key?.split('.').join('.​')}}</span>
|
||||
</div>
|
||||
<div *ngIf="(editable | async)" class="field-container">
|
||||
<ds-validation-suggestions [suggestions]="(metadataFieldSuggestions | async)"
|
||||
<ds-validation-suggestions [disable]="fieldUpdate.changeType != 1" [suggestions]="(metadataFieldSuggestions | async)"
|
||||
[(ngModel)]="metadata.key"
|
||||
[url]="this.url"
|
||||
[metadata]="this.metadata"
|
||||
|
@@ -463,4 +463,43 @@ describe('EditInPlaceFieldComponent', () => {
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
describe('canEditMetadataField', () => {
|
||||
describe('when the fieldUpdate\'s changeType is currently ADD', () => {
|
||||
beforeEach(() => {
|
||||
objectUpdatesService.isEditable.and.returnValue(observableOf(true));
|
||||
comp.fieldUpdate.changeType = FieldChangeType.ADD;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
it('can edit metadata field', () => {
|
||||
const disabledMetadataField = fixture.debugElement.query(By.css('ds-validation-suggestions'))
|
||||
.componentInstance.disable;
|
||||
expect(disabledMetadataField).toBe(false);
|
||||
});
|
||||
});
|
||||
describe('when the fieldUpdate\'s changeType is currently REMOVE', () => {
|
||||
beforeEach(() => {
|
||||
objectUpdatesService.isEditable.and.returnValue(observableOf(true));
|
||||
comp.fieldUpdate.changeType = FieldChangeType.REMOVE;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
it('can edit metadata field', () => {
|
||||
const disabledMetadataField = fixture.debugElement.query(By.css('ds-validation-suggestions'))
|
||||
.componentInstance.disable;
|
||||
expect(disabledMetadataField).toBe(true);
|
||||
});
|
||||
});
|
||||
describe('when the fieldUpdate\'s changeType is currently UPDATE', () => {
|
||||
beforeEach(() => {
|
||||
objectUpdatesService.isEditable.and.returnValue(observableOf(true));
|
||||
comp.fieldUpdate.changeType = FieldChangeType.UPDATE;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
it('can edit metadata field', () => {
|
||||
const disabledMetadataField = fixture.debugElement.query(By.css('ds-validation-suggestions'))
|
||||
.componentInstance.disable;
|
||||
expect(disabledMetadataField).toBe(true);
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
@@ -3,7 +3,7 @@
|
||||
(keydown.arrowdown)="shiftFocusDown($event)"
|
||||
(keydown.arrowup)="shiftFocusUp($event)" (keydown.esc)="close()"
|
||||
(dsClickOutside)="checkIfValidInput(form);close();">
|
||||
<input #inputField type="text" formControlName="metadataNameField" attr.aria-labelledby="fieldName" [(ngModel)]="value" id="name" [name]="name"
|
||||
<input [readonly]="disable" #inputField type="text" formControlName="metadataNameField" attr.aria-labelledby="fieldName" [(ngModel)]="value" id="name" [name]="name"
|
||||
class="form-control suggestion_input"
|
||||
[ngClass]="{'is-invalid': !valid}"
|
||||
[dsDebounce]="debounceTime" (onDebounce)="find($event)"
|
||||
|
@@ -60,4 +60,30 @@ describe('ValidationSuggestionsComponent', () => {
|
||||
expect(comp.onClickSuggestion).toHaveBeenCalledWith(suggestions[clickedIndex].value);
|
||||
});
|
||||
});
|
||||
describe('can edit input', () => {
|
||||
describe('test input field readonly property when input disable is true', () => {
|
||||
beforeEach(() => {
|
||||
comp.disable = true;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
it('it should be true', () => {
|
||||
fixture.detectChanges();
|
||||
const input = fixture.debugElement.query(By.css('input'));
|
||||
const element = input.nativeElement;
|
||||
expect(element.readOnly).toBe(true);
|
||||
});
|
||||
});
|
||||
describe('test input field readonly property when input disable is false', () => {
|
||||
beforeEach(() => {
|
||||
comp.disable = false;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
it('it should be true', () => {
|
||||
fixture.detectChanges();
|
||||
const input = fixture.debugElement.query(By.css('input'));
|
||||
const element = input.nativeElement;
|
||||
expect(element.readOnly).toBe(false);
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
@@ -42,7 +42,10 @@ export class ValidationSuggestionsComponent extends InputSuggestionsComponent im
|
||||
* The suggestions that should be shown
|
||||
*/
|
||||
@Input() suggestions: InputSuggestion[] = [];
|
||||
|
||||
/**
|
||||
* The possibility to edit metadata
|
||||
*/
|
||||
@Input() disable;
|
||||
constructor(private metadataFieldValidator: MetadataFieldValidator,
|
||||
private objectUpdatesService: ObjectUpdatesService) {
|
||||
super();
|
||||
|
Reference in New Issue
Block a user