mirror of
https://github.com/DSpace/dspace-angular.git
synced 2025-10-07 18:14:17 +00:00
[DURACOM-191] fix item submission
This commit is contained in:
@@ -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: [
|
||||||
|
@@ -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[],
|
||||||
|
@@ -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);
|
||||||
|
@@ -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>
|
||||||
|
@@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -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 {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -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];
|
||||||
}
|
}
|
||||||
|
@@ -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 {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Reference in New Issue
Block a user