mirror of
https://github.com/DSpace/dspace-angular.git
synced 2025-10-07 01:54:15 +00:00
added create-from functionality
This commit is contained in:
@@ -0,0 +1,90 @@
|
||||
import { Component, EventEmitter, Input, OnInit, Output, Optional } from '@angular/core';
|
||||
import { ProcessParameter } from '../../../processes/process-parameter.model';
|
||||
import { ScriptParameter } from '../../../scripts/script-parameter.model';
|
||||
import { hasNoValue } from '../../../../shared/empty.util';
|
||||
import { ControlContainer, NgForm } from '@angular/forms';
|
||||
import { controlContainerFactory } from '../../process-form.component';
|
||||
|
||||
/**
|
||||
* Component to select a single parameter for a process
|
||||
*/
|
||||
@Component({
|
||||
selector: 'ds-parameter-select',
|
||||
templateUrl: './parameter-select.component.html',
|
||||
styleUrls: ['./parameter-select.component.scss'],
|
||||
viewProviders: [{
|
||||
provide: ControlContainer,
|
||||
useFactory: controlContainerFactory,
|
||||
deps: [[new Optional(), NgForm]]
|
||||
}]
|
||||
})
|
||||
export class ParameterSelectComponent {
|
||||
@Input() index: number;
|
||||
|
||||
/**
|
||||
* The current parameter value of the selected parameter
|
||||
*/
|
||||
@Input() parameterValue: ProcessParameter = new ProcessParameter();
|
||||
|
||||
/**
|
||||
* The available script parameters for the script
|
||||
*/
|
||||
@Input() parameters: ScriptParameter[];
|
||||
|
||||
/**
|
||||
* Whether or not this selected parameter can be removed from the list
|
||||
*/
|
||||
@Input() removable: boolean;
|
||||
|
||||
/**
|
||||
* Emits the parameter value when it's removed
|
||||
*/
|
||||
@Output() removeParameter: EventEmitter<ProcessParameter> = new EventEmitter<ProcessParameter>();
|
||||
|
||||
/**
|
||||
* Emits the updated parameter value when it changes
|
||||
*/
|
||||
@Output() changeParameter: EventEmitter<ProcessParameter> = new EventEmitter<ProcessParameter>();
|
||||
|
||||
/**
|
||||
* Returns the script parameter based on the currently selected name
|
||||
*/
|
||||
get selectedScriptParameter(): ScriptParameter {
|
||||
return this.parameters.find((parameter: ScriptParameter) => parameter.name === this.selectedParameter);
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the currently selected parameter name
|
||||
*/
|
||||
get selectedParameter(): string {
|
||||
return this.parameterValue ? this.parameterValue.name : undefined;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the currently selected parameter based on the provided parameter name
|
||||
* Emits the new value from the changeParameter output
|
||||
* @param value The parameter name to set
|
||||
*/
|
||||
set selectedParameter(value: string) {
|
||||
this.parameterValue.name = value;
|
||||
this.selectedParameterValue = undefined;
|
||||
this.changeParameter.emit(this.parameterValue);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the currently selected parameter value
|
||||
*/
|
||||
get selectedParameterValue(): any {
|
||||
return this.parameterValue ? this.parameterValue.value : undefined;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the currently selected value for the parameter
|
||||
* Emits the new value from the changeParameter output
|
||||
* @param value The parameter value to set
|
||||
*/
|
||||
set selectedParameterValue(value: any) {
|
||||
this.parameterValue.value = value;
|
||||
this.changeParameter.emit(this.parameterValue);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user