[DURACOM-191] fix item submission

This commit is contained in:
Andrea Barbasso
2024-01-12 15:52:35 +01:00
parent 6313d42937
commit 061ff519d7
8 changed files with 23 additions and 11 deletions

View File

@@ -36,6 +36,7 @@ import { metadataRepresentations } from './core/provide-metadata-representation'
import { renderStartsWith } from './core/provide-render-starts-with'; import { renderStartsWith } from './core/provide-render-starts-with';
import { renderBrowseBy } from './core/provide-render-browse-by'; import { renderBrowseBy } from './core/provide-render-browse-by';
import { renderAuthMethod } from './core/provide-render-auth-method'; import { renderAuthMethod } from './core/provide-render-auth-method';
import { NgxMaskModule } from 'ngx-mask';
export function getConfig() { export function getConfig() {
return environment; return environment;
@@ -119,6 +120,7 @@ const PROVIDERS = [
imports: [ imports: [
BrowserModule.withServerTransition({appId: 'dspace-angular'}), BrowserModule.withServerTransition({appId: 'dspace-angular'}),
...IMPORTS, ...IMPORTS,
NgxMaskModule.forRoot(),
ThemedRootComponent ThemedRootComponent
], ],
providers: [ providers: [

View File

@@ -24,7 +24,7 @@ import { DYNAMIC_FORM_CONTROL_TYPE_RELATION_GROUP } from './ds-dynamic-form-cons
* Service to manage type binding for submission input fields * Service to manage type binding for submission input fields
* Any form component with the typeBindRelations DynamicFormControlRelation property can be controlled this way * Any form component with the typeBindRelations DynamicFormControlRelation property can be controlled this way
*/ */
@Injectable() @Injectable({providedIn: 'root'})
export class DsDynamicTypeBindRelationService { export class DsDynamicTypeBindRelationService {
constructor(@Optional() @Inject(DYNAMIC_MATCHERS) private dynamicMatchers: DynamicFormControlMatcher[], constructor(@Optional() @Inject(DYNAMIC_MATCHERS) private dynamicMatchers: DynamicFormControlMatcher[],

View File

@@ -30,7 +30,8 @@ import { DsDynamicFormControlContainerComponent } from '../../ds-dynamic-form-co
CdkDrag, CdkDrag,
CdkDragHandle, CdkDragHandle,
forwardRef(() => DsDynamicFormControlContainerComponent), forwardRef(() => DsDynamicFormControlContainerComponent),
NgTemplateOutlet NgTemplateOutlet,
DsDynamicFormControlContainerComponent
], ],
standalone: true standalone: true
}) })
@@ -82,7 +83,7 @@ export class DsDynamicFormArrayComponent extends DynamicFormArrayComponent {
update(event: any, index: number) { update(event: any, index: number) {
const $event = Object.assign({}, event, { const $event = Object.assign({}, event, {
context: { index: index - 1} context: {index: index - 1}
}); });
this.onChange($event); this.onChange($event);

View File

@@ -43,7 +43,7 @@
[type]="AlertTypeEnum.Error" (close)="sectionRef.removeError(i)"></ds-alert> [type]="AlertTypeEnum.Error" (close)="sectionRef.removeError(i)"></ds-alert>
</div> </div>
<div id="sectionContent_{{sectionData.id}}" (click)="sectionRef.setFocus($event)"> <div id="sectionContent_{{sectionData.id}}" (click)="sectionRef.setFocus($event)">
<ng-container *ngComponentOutlet="getSectionContent(); injector: objectInjector;"></ng-container> <ng-container *ngComponentOutlet="(getSectionContent() | async); injector: objectInjector;"></ng-container>
</div> </div>
</ng-template> </ng-template>
</ngb-panel> </ngb-panel>

View File

@@ -103,7 +103,7 @@ export class SubmissionSectionContainerComponent implements OnInit {
/** /**
* Find the correct component based on the section's type * Find the correct component based on the section's type
*/ */
getSectionContent(): string { getSectionContent() {
return rendersSectionType(this.sectionData.sectionType); return rendersSectionType(this.sectionData.sectionType);
} }
} }

View File

@@ -30,7 +30,7 @@ import { DynamicRowArrayModel } from '../../../shared/form/builder/ds-dynamic-fo
/** /**
* The service handling all form section operations * The service handling all form section operations
*/ */
@Injectable() @Injectable({providedIn: 'root'})
export class SectionFormOperationsService { export class SectionFormOperationsService {
/** /**

View File

@@ -1,16 +1,25 @@
import { SectionsType } from './sections-type'; import { SectionsType } from './sections-type';
import { defer } from 'rxjs';
const submissionSectionsMap = new Map(); const submissionSectionsMap = {
[SectionsType.AccessesCondition]: defer(() => import('./accesses/section-accesses.component').then(m => m.SubmissionSectionAccessesComponent)),
[SectionsType.License]: defer(() => import('./license/section-license.component').then(m => m.SubmissionSectionLicenseComponent)),
[SectionsType.CcLicense]: defer(() => import('./cc-license/submission-section-cc-licenses.component').then(m => m.SubmissionSectionCcLicensesComponent)),
[SectionsType.SherpaPolicies]: defer(() => import('./sherpa-policies/section-sherpa-policies.component').then(m => m.SubmissionSectionSherpaPoliciesComponent)),
[SectionsType.Upload]: defer(() => import('./upload/file/section-upload-file.component').then(m => m.SubmissionSectionUploadFileComponent)),
[SectionsType.SubmissionForm]: defer(() => import('./form/section-form.component').then(m => m.SubmissionSectionFormComponent)),
[SectionsType.Identifiers]: defer(() => import('./identifiers/section-identifiers.component').then(m => m.SubmissionSectionIdentifiersComponent))
};
export function renderSectionFor(sectionType: SectionsType) { export function renderSectionFor(sectionType: SectionsType) {
return function decorator(objectElement: any) { return function decorator(objectElement: any) {
if (!objectElement) { if (!objectElement) {
return; return;
} }
submissionSectionsMap.set(sectionType, objectElement); // submissionSectionsMap.set(sectionType, objectElement);
}; };
} }
export function rendersSectionType(sectionType: SectionsType) { export function rendersSectionType(sectionType: SectionsType) {
return submissionSectionsMap.get(sectionType); return submissionSectionsMap[sectionType];
} }

View File

@@ -17,7 +17,7 @@ import { WorkspaceitemSectionUploadFileObject } from '../../../core/submission/m
/** /**
* A service that provides methods to handle submission's bitstream state. * A service that provides methods to handle submission's bitstream state.
*/ */
@Injectable() @Injectable({providedIn: 'root'})
export class SectionUploadService { export class SectionUploadService {
/** /**