mirror of
https://github.com/DSpace/dspace-angular.git
synced 2025-10-07 10:04:11 +00:00
fixes and adjustments
This commit is contained in:
@@ -8,6 +8,7 @@ import { CommonModule } from '@angular/common';
|
||||
|
||||
import { StoreModule } from '@ngrx/store';
|
||||
import { EffectsModule } from '@ngrx/effects';
|
||||
import { DynamicFormLayoutService, DynamicFormService, DynamicFormValidationService } from '@ng-dynamic-forms/core';
|
||||
|
||||
import { coreEffects } from './core.effects';
|
||||
import { coreReducers } from './core.reducers';
|
||||
@@ -21,6 +22,8 @@ import { DebugResponseParsingService } from './data/debug-response-parsing.servi
|
||||
import { DSOResponseParsingService } from './data/dso-response-parsing.service';
|
||||
import { SearchResponseParsingService } from './data/search-response-parsing.service';
|
||||
import { DSpaceRESTv2Service } from './dspace-rest-v2/dspace-rest-v2.service';
|
||||
import { FormBuilderService } from '../shared/form/builder/form-builder.service';
|
||||
import { FormService } from '../shared/form/form.service';
|
||||
import { HostWindowService } from '../shared/host-window.service';
|
||||
import { ItemDataService } from './data/item-data.service';
|
||||
import { MetadataService } from './metadata/metadata.service';
|
||||
@@ -39,6 +42,8 @@ import { RouteService } from '../shared/route.service';
|
||||
import { SubmissionDefinitionsConfigService } from './config/submission-definitions-config.service';
|
||||
import { SubmissionFormsConfigService } from './config/submission-forms-config.service';
|
||||
import { SubmissionSectionsConfigService } from './config/submission-sections-config.service';
|
||||
import { AuthorityService } from './integration/authority.service';
|
||||
import { IntegrationResponseParsingService } from './integration/integration-response-parsing.service';
|
||||
import { UUIDService } from './shared/uuid.service';
|
||||
import { HALEndpointService } from './shared/hal-endpoint.service';
|
||||
import { FacetValueResponseParsingService } from './data/facet-value-response-parsing.service';
|
||||
@@ -66,6 +71,11 @@ const PROVIDERS = [
|
||||
CollectionDataService,
|
||||
DSOResponseParsingService,
|
||||
DSpaceRESTv2Service,
|
||||
DynamicFormLayoutService,
|
||||
DynamicFormService,
|
||||
DynamicFormValidationService,
|
||||
FormBuilderService,
|
||||
FormService,
|
||||
HALEndpointService,
|
||||
HostWindowService,
|
||||
ItemDataService,
|
||||
@@ -89,6 +99,8 @@ const PROVIDERS = [
|
||||
SubmissionDefinitionsConfigService,
|
||||
SubmissionFormsConfigService,
|
||||
SubmissionSectionsConfigService,
|
||||
AuthorityService,
|
||||
IntegrationResponseParsingService,
|
||||
UploaderService,
|
||||
UUIDService,
|
||||
{ provide: NativeWindowService, useFactory: NativeWindowFactory }
|
||||
|
@@ -27,7 +27,7 @@ export class ConfigResponseParsingService extends BaseResponseParsingService imp
|
||||
}
|
||||
|
||||
parse(request: RestRequest, data: DSpaceRESTV2Response): RestResponse {
|
||||
if (isNotEmpty(data.payload) && isNotEmpty(data.payload._links) && data.statusCode === '200') {
|
||||
if (isNotEmpty(data.payload) && isNotEmpty(data.payload._links) && (data.statusCode === '201' || data.statusCode === '200' || data.statusCode === 'OK')) {
|
||||
const configDefinition = this.process<ConfigObject,ConfigType>(data.payload, request.href);
|
||||
return new ConfigSuccessResponse(configDefinition[Object.keys(configDefinition)[0]], data.statusCode, this.processPageInfo(data.payload));
|
||||
} else {
|
||||
|
@@ -93,8 +93,10 @@
|
||||
[ngClass]="getClass('element', 'control', checkboxModel)">
|
||||
<input type="checkbox" ngbButton
|
||||
[checked]="checkboxModel.checked"
|
||||
[id]="bindId && checkboxModel.id"
|
||||
[dynamicId]="bindId && checkboxModel.id"
|
||||
[formControlName]="checkboxModel.id"
|
||||
[indeterminate]="checkboxModel.indeterminate"
|
||||
[name]="checkboxModel.name"
|
||||
[required]="checkboxModel.required"
|
||||
[tabindex]="checkboxModel.tabIndex"
|
||||
@@ -165,14 +167,18 @@
|
||||
<!-- INPUT ------------------------------------------------------------------------------------------------>
|
||||
<div *ngSwitchCase="7" [class.input-group]="model.prefix || model.suffix">
|
||||
|
||||
<div *ngIf="model.prefix" class="input-group-addon" [innerHTML]="model.prefix"></div>
|
||||
<div *ngIf="model.prefix" class="input-group-prepend">
|
||||
<span class="input-group-text" [innerHTML]="model.prefix"></span>
|
||||
</div>
|
||||
|
||||
<ng-container *ngTemplateOutlet="inputTemplate;
|
||||
context:{bindId: bindId, model: model, showErrorMessages: showErrorMessages}">
|
||||
|
||||
</ng-container>
|
||||
|
||||
<div *ngIf="model.suffix" class="input-group-addon" [innerHTML]="model.suffix"></div>
|
||||
<div *ngIf="model.suffix" class="input-group-append">
|
||||
<span class="input-group-text" [innerHTML]="model.suffix"></span>
|
||||
</div>
|
||||
|
||||
<datalist *ngIf="model.list" [id]="model.listId">
|
||||
<option *ngFor="let option of model.list" [value]="option">
|
||||
@@ -181,7 +187,7 @@
|
||||
</div>
|
||||
|
||||
<!-- RADIO GROUP ------------------------------------------------------------------------------------------>
|
||||
<div *ngSwitchCase="8" ngbRadioGroup class="btn-group" role="radiogroup"
|
||||
<div *ngSwitchCase="8" ngbRadioGroup class="btn-group btn-group-toggle" role="radiogroup"
|
||||
[dynamicId]="bindId && model.id"
|
||||
[formControlName]="model.id"
|
||||
[ngClass]="getClass('element', 'control')"
|
||||
@@ -191,19 +197,19 @@
|
||||
<legend *ngIf="model.legend" [innerHTML]="model.legend"></legend>
|
||||
|
||||
<label *ngFor="let option of model.options$ | async" ngbButtonLabel
|
||||
[ngClass]="[getClass('element', 'option'), getClass('grid', 'option')]">
|
||||
[ngClass]="[getClass('element', 'option'), getClass('grid', 'option')]">
|
||||
|
||||
<input type="radio" ngbButton
|
||||
[disabled]="option.disabled"
|
||||
[name]="model.name"
|
||||
[value]="option.value"
|
||||
(blur)="onBlur($event)"
|
||||
(focus)="onFocus($event)"/><span [innerHTML]="option.label"></span>
|
||||
(blur)="onBlur($event)"
|
||||
(focus)="onFocus($event)"/><span [innerHTML]="option.label"></span>
|
||||
</label>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<!-- SELECT ----------------------------------------------------------------------------------------------->
|
||||
<ng-container *ngSwitchCase="9">
|
||||
<ng-container *ngTemplateOutlet="selectTemplate;
|
||||
context:{bindId: bindId, model: model, showErrorMessages: showErrorMessages}">
|
||||
|
@@ -34,8 +34,8 @@ import {
|
||||
import { DYNAMIC_FORM_CONTROL_TYPE_TYPEAHEAD } from './models/typeahead/dynamic-typeahead.model';
|
||||
import { DYNAMIC_FORM_CONTROL_TYPE_SCROLLABLE_DROPDOWN } from './models/scrollable-dropdown/dynamic-scrollable-dropdown.model';
|
||||
import { DYNAMIC_FORM_CONTROL_TYPE_TAG } from './models/tag/dynamic-tag.model';
|
||||
import { DYNAMIC_FORM_CONTROL_TYPE_RELATION } from './models/ds-dynamic-group/dynamic-group.model';
|
||||
import { DYNAMIC_FORM_CONTROL_TYPE_DSDATEPICKER } from './models/ds-date-picker/ds-date-picker.model';
|
||||
import { DYNAMIC_FORM_CONTROL_TYPE_RELATION } from './models/dynamic-group/dynamic-group.model';
|
||||
import { DYNAMIC_FORM_CONTROL_TYPE_DSDATEPICKER } from './models/date-picker/date-picker.model';
|
||||
import { DYNAMIC_FORM_CONTROL_TYPE_LOOKUP } from './models/lookup/dynamic-lookup.model';
|
||||
import { DynamicListCheckboxGroupModel } from './models/list/dynamic-list-checkbox-group.model';
|
||||
import { DynamicListRadioGroupModel } from './models/list/dynamic-list-radio-group.model';
|
||||
|
@@ -1,13 +1,13 @@
|
||||
import { Component, EventEmitter, Inject, Input, OnInit, Output } from '@angular/core';
|
||||
import { FormGroup } from '@angular/forms';
|
||||
import { DynamicDsDatePickerModel } from './ds-date-picker.model';
|
||||
import { DynamicDsDatePickerModel } from './date-picker.model';
|
||||
|
||||
export const DS_DATE_PICKER_SEPARATOR = '-';
|
||||
|
||||
@Component({
|
||||
selector: 'ds-date-picker',
|
||||
styleUrls: ['./ds-date-picker.component.scss'],
|
||||
templateUrl: './ds-date-picker.component.html',
|
||||
styleUrls: ['./date-picker.component.scss'],
|
||||
templateUrl: './date-picker.component.html',
|
||||
})
|
||||
|
||||
export class DsDatePickerComponent implements OnInit {
|
@@ -63,7 +63,6 @@ export class DsDynamicGroupComponent implements OnDestroy, OnInit {
|
||||
}
|
||||
|
||||
ngOnInit() {
|
||||
console.log(this.model.hasErrorMessages);
|
||||
const config = {rows: this.model.formConfiguration} as SubmissionFormsModel;
|
||||
if (isNotEmpty(this.model.value)) {
|
||||
this.formCollapsed = Observable.of(true);
|
@@ -12,12 +12,12 @@ import {
|
||||
} from '@ng-dynamic-forms/core';
|
||||
import { mergeWith } from 'lodash';
|
||||
|
||||
import { isEmpty, isNotEmpty, isNotNull, isNull } from '../../empty.util';
|
||||
import { isEmpty, isNotEmpty, isNotNull, isNotUndefined, isNull } from '../../empty.util';
|
||||
import { DynamicComboboxModel } from './ds-dynamic-form-ui/models/ds-dynamic-combobox.model';
|
||||
import { SubmissionFormsModel } from '../../../core/shared/config/config-submission-forms.model';
|
||||
import { DynamicConcatModel } from './ds-dynamic-form-ui/models/ds-dynamic-concat.model';
|
||||
import { DynamicListCheckboxGroupModel } from './ds-dynamic-form-ui/models/list/dynamic-list-checkbox-group.model';
|
||||
import { DynamicGroupModel } from './ds-dynamic-form-ui/models/ds-dynamic-group/dynamic-group.model';
|
||||
import { DynamicGroupModel } from './ds-dynamic-form-ui/models/dynamic-group/dynamic-group.model';
|
||||
import { DynamicTagModel } from './ds-dynamic-form-ui/models/tag/dynamic-tag.model';
|
||||
import { DynamicListRadioGroupModel } from './ds-dynamic-form-ui/models/list/dynamic-list-radio-group.model';
|
||||
import { RowParser } from './parsers/row-parser';
|
||||
@@ -135,7 +135,7 @@ export class FormBuilderService extends DynamicFormService {
|
||||
controlId = controlModel.name;
|
||||
}
|
||||
|
||||
const controlValue = (controlModel as any).value || null;
|
||||
const controlValue = isNotUndefined((controlModel as any).value) ? (controlModel as any).value : null;
|
||||
if (controlId && iterateResult.hasOwnProperty(controlId) && isNotNull(iterateResult[controlId])) {
|
||||
iterateResult[controlId].push(controlValue);
|
||||
} else {
|
||||
@@ -151,7 +151,7 @@ export class FormBuilderService extends DynamicFormService {
|
||||
return result;
|
||||
}
|
||||
|
||||
modelFromConfiguration(json: string | SubmissionFormsModel, scopeUUID: string, initFormValues: any, submissionScope?: string, readOnly = false): DynamicFormControlModel[] | never {
|
||||
modelFromConfiguration(json: string | SubmissionFormsModel, scopeUUID: string, initFormValues: any = {}, submissionScope?: string, readOnly = false): DynamicFormControlModel[] | never {
|
||||
let rows: DynamicFormControlModel[] = [];
|
||||
const rawData = typeof json === 'string' ? JSON.parse(json, JSONUtils.parseReviver) : json;
|
||||
|
||||
|
@@ -1,9 +1,9 @@
|
||||
import { FieldParser } from './field-parser';
|
||||
import { DynamicDatePickerModelConfig } from '@ng-dynamic-forms/core';
|
||||
import { FormFieldModel } from '../models/form-field.model';
|
||||
import { DynamicDsDatePickerModel } from '../ds-dynamic-form-ui/models/ds-date-picker/ds-date-picker.model';
|
||||
import { DynamicDsDatePickerModel } from '../ds-dynamic-form-ui/models/date-picker/date-picker.model';
|
||||
import { isNotEmpty } from '../../../empty.util';
|
||||
import { DS_DATE_PICKER_SEPARATOR } from '../ds-dynamic-form-ui/models/ds-date-picker/ds-date-picker.component';
|
||||
import { DS_DATE_PICKER_SEPARATOR } from '../ds-dynamic-form-ui/models/date-picker/date-picker.component';
|
||||
|
||||
export class DateFieldParser extends FieldParser {
|
||||
|
||||
|
@@ -4,7 +4,7 @@ import { FormFieldModel } from '../models/form-field.model';
|
||||
import {
|
||||
DynamicGroupModel,
|
||||
DynamicGroupModelConfig, PLACEHOLDER_PARENT_METADATA
|
||||
} from '../ds-dynamic-form-ui/models/ds-dynamic-group/dynamic-group.model';
|
||||
} from '../ds-dynamic-form-ui/models/dynamic-group/dynamic-group.model';
|
||||
import { isNotEmpty } from '../../../empty.util';
|
||||
import { FormRowModel } from '../../../../core/shared/config/config-submission-forms.model';
|
||||
|
||||
|
@@ -11,7 +11,7 @@ import { TagFieldParser } from './tag-field-parser';
|
||||
import { TextareaFieldParser } from './textarea-field-parser';
|
||||
import { GroupFieldParser } from './group-field-parser';
|
||||
import { IntegrationSearchOptions } from '../../../../core/integration/models/integration-options.model';
|
||||
import { DynamicGroupModel } from '../ds-dynamic-form-ui/models/ds-dynamic-group/dynamic-group.model';
|
||||
import { DynamicGroupModel } from '../ds-dynamic-form-ui/models/dynamic-group/dynamic-group.model';
|
||||
import { DynamicRowGroupModel } from '../ds-dynamic-form-ui/models/ds-dynamic-row-group-model';
|
||||
import { isEmpty } from '../../../empty.util';
|
||||
import { LookupFieldParser } from './lookup-field-parser';
|
||||
|
@@ -5,6 +5,7 @@
|
||||
[formId]="formId"
|
||||
[formGroup]="formGroup"
|
||||
[formModel]="formModel"
|
||||
[formLayout]="formLayout"
|
||||
(dfBlur)="onBlur($event)"
|
||||
(dfChange)="onChange($event)"
|
||||
(dfFocus)="onFocus($event)">
|
||||
|
@@ -5,7 +5,7 @@ import {
|
||||
DynamicFormArrayModel,
|
||||
DynamicFormControlEvent,
|
||||
DynamicFormControlModel,
|
||||
DynamicFormGroupModel,
|
||||
DynamicFormGroupModel, DynamicFormLayout,
|
||||
} from '@ng-dynamic-forms/core';
|
||||
import { Store } from '@ngrx/store';
|
||||
|
||||
@@ -49,6 +49,7 @@ export class FormComponent implements OnDestroy, OnInit {
|
||||
@Input() formModel: DynamicFormControlModel[];
|
||||
@Input() parentFormModel: DynamicFormGroupModel | DynamicFormGroupModel[];
|
||||
@Input() formGroup: FormGroup;
|
||||
@Input() formLayout: DynamicFormLayout = null;
|
||||
|
||||
/* tslint:disable:no-output-rename */
|
||||
@Output('dfBlur') blur: EventEmitter<DynamicFormControlEvent> = new EventEmitter<DynamicFormControlEvent>();
|
||||
@@ -205,6 +206,7 @@ export class FormComponent implements OnDestroy, OnInit {
|
||||
}
|
||||
|
||||
onChange(event) {
|
||||
console.log(event, this.formGroup);
|
||||
const action: FormChangeAction = new FormChangeAction(this.formId, this.formBuilderService.getValueFromModel(this.formModel));
|
||||
|
||||
this.store.dispatch(action);
|
||||
|
@@ -61,10 +61,10 @@ import { UploaderComponent } from './uploader/uploader.component';
|
||||
import { ChipsComponent } from './chips/chips.component';
|
||||
import { DsDynamicTagComponent } from './form/builder/ds-dynamic-form-ui/models/tag/dynamic-tag.component';
|
||||
import { DsDynamicListComponent } from './form/builder/ds-dynamic-form-ui/models/list/dynamic-list.component';
|
||||
import { DsDynamicGroupComponent } from './form/builder/ds-dynamic-form-ui/models/ds-dynamic-group/dynamic-group.components';
|
||||
import { DsDynamicGroupComponent } from './form/builder/ds-dynamic-form-ui/models/dynamic-group/dynamic-group.components';
|
||||
import { SortablejsModule } from 'angular-sortablejs';
|
||||
import { NumberPickerComponent } from './number-picker/number-picker.component';
|
||||
import { DsDatePickerComponent } from './form/builder/ds-dynamic-form-ui/models/ds-date-picker/ds-date-picker.component';
|
||||
import { DsDatePickerComponent } from './form/builder/ds-dynamic-form-ui/models/date-picker/date-picker.component';
|
||||
import { DsDynamicLookupComponent } from './form/builder/ds-dynamic-form-ui/models/lookup/dynamic-lookup.component';
|
||||
|
||||
const MODULES = [
|
||||
|
@@ -17,6 +17,10 @@ module.exports = {
|
||||
whitelist: [
|
||||
/@angular/,
|
||||
/@ng/,
|
||||
/angular2-text-mask/,
|
||||
/ng2-file-upload/,
|
||||
/angular-sortablejs/,
|
||||
/sortablejs/,
|
||||
/ngx/]
|
||||
})],
|
||||
}
|
||||
|
Reference in New Issue
Block a user