mirror of
https://github.com/DSpace/dspace-angular.git
synced 2025-10-07 10:04:11 +00:00
@@ -1,10 +1,10 @@
|
|||||||
<td>
|
<td>
|
||||||
<div class="metadata-field">
|
<div class="metadata-field">
|
||||||
<div *ngIf="!(editable | async)">
|
<div *ngIf="!(editable | async)">
|
||||||
<span>{{metadata?.key?.split('.').join('.​')}}</span>
|
<span >{{metadata?.key?.split('.').join('.​')}}</span>
|
||||||
</div>
|
</div>
|
||||||
<div *ngIf="(editable | async)" class="field-container">
|
<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"
|
[(ngModel)]="metadata.key"
|
||||||
[url]="this.url"
|
[url]="this.url"
|
||||||
[metadata]="this.metadata"
|
[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.arrowdown)="shiftFocusDown($event)"
|
||||||
(keydown.arrowup)="shiftFocusUp($event)" (keydown.esc)="close()"
|
(keydown.arrowup)="shiftFocusUp($event)" (keydown.esc)="close()"
|
||||||
(dsClickOutside)="checkIfValidInput(form);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"
|
class="form-control suggestion_input"
|
||||||
[ngClass]="{'is-invalid': !valid}"
|
[ngClass]="{'is-invalid': !valid}"
|
||||||
[dsDebounce]="debounceTime" (onDebounce)="find($event)"
|
[dsDebounce]="debounceTime" (onDebounce)="find($event)"
|
||||||
|
@@ -60,4 +60,30 @@ describe('ValidationSuggestionsComponent', () => {
|
|||||||
expect(comp.onClickSuggestion).toHaveBeenCalledWith(suggestions[clickedIndex].value);
|
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
|
* The suggestions that should be shown
|
||||||
*/
|
*/
|
||||||
@Input() suggestions: InputSuggestion[] = [];
|
@Input() suggestions: InputSuggestion[] = [];
|
||||||
|
/**
|
||||||
|
* The possibility to edit metadata
|
||||||
|
*/
|
||||||
|
@Input() disable;
|
||||||
constructor(private metadataFieldValidator: MetadataFieldValidator,
|
constructor(private metadataFieldValidator: MetadataFieldValidator,
|
||||||
private objectUpdatesService: ObjectUpdatesService) {
|
private objectUpdatesService: ObjectUpdatesService) {
|
||||||
super();
|
super();
|
||||||
|
Reference in New Issue
Block a user