mirror of
https://github.com/DSpace/dspace-angular.git
synced 2025-10-13 04:53:06 +00:00
Merged submission module code
This commit is contained in:
74
src/app/submission/edit/submission-edit.component.ts
Normal file
74
src/app/submission/edit/submission-edit.component.ts
Normal file
@@ -0,0 +1,74 @@
|
||||
import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';
|
||||
import { ActivatedRoute, ParamMap, Router } from '@angular/router';
|
||||
|
||||
import { Subscription } from 'rxjs/Subscription';
|
||||
|
||||
import { WorkspaceitemSectionsObject } from '../../core/submission/models/workspaceitem-sections.model';
|
||||
import { hasValue, isEmpty, isNotNull } from '../../shared/empty.util';
|
||||
import { SubmissionDefinitionsModel } from '../../core/shared/config/config-submission-definitions.model';
|
||||
import { SubmissionService } from '../submission.service';
|
||||
import { NotificationsService } from '../../shared/notifications/notifications.service';
|
||||
import { TranslateService } from '@ngx-translate/core';
|
||||
import { SubmissionObject } from '../../core/submission/models/submission-object.model';
|
||||
|
||||
@Component({
|
||||
selector: 'ds-submission-edit',
|
||||
styleUrls: ['./submission-edit.component.scss'],
|
||||
templateUrl: './submission-edit.component.html'
|
||||
})
|
||||
|
||||
export class SubmissionEditComponent implements OnDestroy, OnInit {
|
||||
public collectionId: string;
|
||||
public sections: WorkspaceitemSectionsObject;
|
||||
public selfUrl: string;
|
||||
public submissionDefinition: SubmissionDefinitionsModel;
|
||||
public submissionId: string;
|
||||
|
||||
/**
|
||||
* Array to track all subscriptions and unsubscribe them onDestroy
|
||||
* @type {Array}
|
||||
*/
|
||||
private subs: Subscription[] = [];
|
||||
|
||||
constructor(private changeDetectorRef: ChangeDetectorRef,
|
||||
private notificationsService: NotificationsService,
|
||||
private route: ActivatedRoute,
|
||||
private router: Router,
|
||||
private submissionService: SubmissionService,
|
||||
private translate: TranslateService) {
|
||||
}
|
||||
|
||||
ngOnInit() {
|
||||
this.subs.push(this.route.paramMap
|
||||
.subscribe((params: ParamMap) => {
|
||||
this.submissionId = params.get('id');
|
||||
this.subs.push(
|
||||
this.submissionService.retrieveSubmission(this.submissionId)
|
||||
.subscribe((submissionObject: SubmissionObject) => {
|
||||
// NOTE new submission is retrieved on the browser side only
|
||||
if (isNotNull(submissionObject)) {
|
||||
if (isEmpty(submissionObject)) {
|
||||
this.notificationsService.info(null, this.translate.get('submission.general.cannot_submit'));
|
||||
this.router.navigate(['/mydspace']);
|
||||
} else {
|
||||
this.collectionId = submissionObject.collection[0].id;
|
||||
this.selfUrl = submissionObject.self;
|
||||
this.sections = submissionObject.sections;
|
||||
this.submissionDefinition = submissionObject.submissionDefinition[0];
|
||||
this.changeDetectorRef.detectChanges();
|
||||
}
|
||||
}
|
||||
})
|
||||
)
|
||||
}));
|
||||
}
|
||||
|
||||
/**
|
||||
* Method provided by Angular. Invoked when the instance is destroyed.
|
||||
*/
|
||||
ngOnDestroy() {
|
||||
this.subs
|
||||
.filter((sub) => hasValue(sub))
|
||||
.forEach((sub) => sub.unsubscribe());
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user