mirror of
https://github.com/DSpace/dspace-angular.git
synced 2025-10-08 10:34:15 +00:00
Fix subscriptions
This commit is contained in:
@@ -11,6 +11,7 @@ import { NotificationsService } from '../../shared/notifications/notifications.s
|
|||||||
import { TranslateService } from '@ngx-translate/core';
|
import { TranslateService } from '@ngx-translate/core';
|
||||||
import { SubmissionObject } from '../../core/submission/models/submission-object.model';
|
import { SubmissionObject } from '../../core/submission/models/submission-object.model';
|
||||||
import { Collection } from '../../core/shared/collection.model';
|
import { Collection } from '../../core/shared/collection.model';
|
||||||
|
import { flatMap, tap } from 'rxjs/operators';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'ds-submission-edit',
|
selector: 'ds-submission-edit',
|
||||||
@@ -40,28 +41,24 @@ export class SubmissionEditComponent implements OnDestroy, OnInit {
|
|||||||
}
|
}
|
||||||
|
|
||||||
ngOnInit() {
|
ngOnInit() {
|
||||||
this.subs.push(this.route.paramMap
|
this.subs.push(this.route.paramMap.pipe(
|
||||||
.subscribe((params: ParamMap) => {
|
tap((params: ParamMap) => this.submissionId = params.get('id')),
|
||||||
this.submissionId = params.get('id');
|
flatMap((params: ParamMap) => this.submissionService.retrieveSubmission(params.get('id')))
|
||||||
this.subs.push(
|
).subscribe((submissionObject: SubmissionObject) => {
|
||||||
this.submissionService.retrieveSubmission(this.submissionId)
|
// NOTE new submission is retrieved on the browser side only
|
||||||
.subscribe((submissionObject: SubmissionObject) => {
|
if (isNotNull(submissionObject)) {
|
||||||
// NOTE new submission is retrieved on the browser side only
|
if (isEmpty(submissionObject)) {
|
||||||
if (isNotNull(submissionObject)) {
|
this.notificationsService.info(null, this.translate.get('submission.general.cannot_submit'));
|
||||||
if (isEmpty(submissionObject)) {
|
this.router.navigate(['/mydspace']);
|
||||||
this.notificationsService.info(null, this.translate.get('submission.general.cannot_submit'));
|
} else {
|
||||||
this.router.navigate(['/mydspace']);
|
this.collectionId = (submissionObject.collection as Collection).id;
|
||||||
} else {
|
this.selfUrl = submissionObject.self;
|
||||||
this.collectionId = (submissionObject.collection as Collection).id;
|
this.sections = submissionObject.sections;
|
||||||
this.selfUrl = submissionObject.self;
|
this.submissionDefinition = (submissionObject.submissionDefinition as SubmissionDefinitionsModel);
|
||||||
this.sections = submissionObject.sections;
|
this.changeDetectorRef.detectChanges();
|
||||||
this.submissionDefinition = (submissionObject.submissionDefinition as SubmissionDefinitionsModel);
|
}
|
||||||
this.changeDetectorRef.detectChanges();
|
}
|
||||||
}
|
}));
|
||||||
}
|
|
||||||
})
|
|
||||||
)
|
|
||||||
}));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -1,11 +1,13 @@
|
|||||||
import { Component, Input, OnChanges, SimpleChanges } from '@angular/core';
|
import { Component, Input, OnChanges, SimpleChanges } from '@angular/core';
|
||||||
|
|
||||||
import { Observable, of as observableOf } from 'rxjs';
|
import { Observable, of as observableOf } from 'rxjs';
|
||||||
|
import { map } from 'rxjs/operators';
|
||||||
import { NgbModal } from '@ng-bootstrap/ng-bootstrap';
|
import { NgbModal } from '@ng-bootstrap/ng-bootstrap';
|
||||||
|
|
||||||
import { SubmissionRestService } from '../../submission-rest.service';
|
import { SubmissionRestService } from '../../submission-rest.service';
|
||||||
import { SubmissionService } from '../../submission.service';
|
import { SubmissionService } from '../../submission.service';
|
||||||
import { SubmissionScopeType } from '../../../core/submission/submission-scope-type';
|
import { SubmissionScopeType } from '../../../core/submission/submission-scope-type';
|
||||||
|
import { isNotEmpty } from '../../../shared/empty.util';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'ds-submission-form-footer',
|
selector: 'ds-submission-form-footer',
|
||||||
@@ -19,7 +21,7 @@ export class SubmissionFormFooterComponent implements OnChanges {
|
|||||||
public processingDepositStatus: Observable<boolean>;
|
public processingDepositStatus: Observable<boolean>;
|
||||||
public processingSaveStatus: Observable<boolean>;
|
public processingSaveStatus: Observable<boolean>;
|
||||||
public showDepositAndDiscard: Observable<boolean>;
|
public showDepositAndDiscard: Observable<boolean>;
|
||||||
private submissionIsInvalid = true;
|
private submissionIsInvalid: Observable<boolean> = observableOf(true);
|
||||||
|
|
||||||
constructor(private modalService: NgbModal,
|
constructor(private modalService: NgbModal,
|
||||||
private restService: SubmissionRestService,
|
private restService: SubmissionRestService,
|
||||||
@@ -27,11 +29,10 @@ export class SubmissionFormFooterComponent implements OnChanges {
|
|||||||
}
|
}
|
||||||
|
|
||||||
ngOnChanges(changes: SimpleChanges) {
|
ngOnChanges(changes: SimpleChanges) {
|
||||||
if (!!this.submissionId) {
|
if (isNotEmpty(this.submissionId)) {
|
||||||
this.submissionService.getSubmissionStatus(this.submissionId)
|
this.submissionIsInvalid = this.submissionService.getSubmissionStatus(this.submissionId).pipe(
|
||||||
.subscribe((isValid) => {
|
map((isValid: boolean) => isValid === false)
|
||||||
this.submissionIsInvalid = isValid === false;
|
);
|
||||||
});
|
|
||||||
|
|
||||||
this.processingSaveStatus = this.submissionService.getSubmissionSaveProcessingStatus(this.submissionId);
|
this.processingSaveStatus = this.submissionService.getSubmissionSaveProcessingStatus(this.submissionId);
|
||||||
this.processingDepositStatus = this.submissionService.getSubmissionDepositProcessingStatus(this.submissionId);
|
this.processingDepositStatus = this.submissionService.getSubmissionDepositProcessingStatus(this.submissionId);
|
||||||
|
Reference in New Issue
Block a user