[CSTPER-3620] Workflow Actions refresh entire MyDSpace page instead of just WorkflowItem

Task Service implementation.
ReloadableAction abstraction.
This commit is contained in:
Alessandro Martelli
2020-12-22 13:28:44 +01:00
parent e32c86f127
commit 8013260f78
5 changed files with 294 additions and 155 deletions

View File

@@ -15,7 +15,7 @@ import { SearchService } from '../../core/shared/search/search.service';
import { Observable} from 'rxjs/internal/Observable';
import { of} from 'rxjs/internal/observable/of';
import { ProcessTaskResponse } from '../../core/tasks/models/process-task-response';
import { getFirstSucceededRemoteDataPayload } from '../../core/shared/operators';
import { getFirstCompletedRemoteData } from '../../core/shared/operators';
import { getSearchResultFor } from '../search/search-result-element-decorator';
import { MyDSpaceActionsComponent } from './mydspace-actions';
@@ -128,9 +128,13 @@ export abstract class MyDSpaceReloadableActionsComponent<T extends DSpaceObject,
private _reloadObject(): Observable<DSpaceObject> {
return this.reloadObjectExecution().pipe(
switchMap((res) => {
return res instanceof RemoteData ? of(res).pipe(getFirstSucceededRemoteDataPayload()) : of(res)
if (res instanceof RemoteData) {
return of(res).pipe(getFirstCompletedRemoteData(), map((completed) => completed.payload))
} else {
return of(res);
}
})).pipe(map((dso) => {
return this.convertReloadedObject(dso);
return dso ? this.convertReloadedObject(dso) : dso;
}))
}