Skip to content

Commit dfad3f3

Browse files
committed
[DURACOM-191] Fix issue with admin workflow page
1 parent ddd0131 commit dfad3f3

12 files changed

Lines changed: 48 additions & 41 deletions
Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
import { SearchResult } from '../../../shared/search/models/search-result.model';
2-
import { searchResultFor } from '../../../shared/search/search-result-element-decorator';
32
import { AdminNotifyMessage } from './admin-notify-message.model';
43

5-
@searchResultFor(AdminNotifyMessage)
64
export class AdminNotifySearchResult extends SearchResult<AdminNotifyMessage> {
75
}

src/app/admin/admin-workflow-page/admin-workflow-search-results/admin-workflow-search-result-list-element/workflow-item/workflow-item-search-result-admin-workflow-list-element.component.ts

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,10 @@ import {
88
OnInit,
99
} from '@angular/core';
1010
import { TranslateModule } from '@ngx-translate/core';
11-
import { Observable } from 'rxjs';
11+
import {
12+
BehaviorSubject,
13+
Observable,
14+
} from 'rxjs';
1215

1316
import {
1417
APP_CONFIG,
@@ -20,7 +23,7 @@ import { RemoteData } from '../../../../../core/data/remote-data';
2023
import { Context } from '../../../../../core/shared/context.model';
2124
import { Item } from '../../../../../core/shared/item.model';
2225
import {
23-
getAllSucceededRemoteData,
26+
getFirstCompletedRemoteData,
2427
getRemoteDataPayload,
2528
} from '../../../../../core/shared/operators';
2629
import { ViewMode } from '../../../../../core/shared/view-mode.model';
@@ -49,7 +52,7 @@ export class WorkflowItemSearchResultAdminWorkflowListElementComponent extends S
4952
/**
5053
* The item linked to the workflow item
5154
*/
52-
public item$: Observable<Item>;
55+
public item$: BehaviorSubject<Item> = new BehaviorSubject<Item>(undefined);
5356

5457
constructor(private linkService: LinkService,
5558
protected truncatableService: TruncatableService,
@@ -65,6 +68,11 @@ export class WorkflowItemSearchResultAdminWorkflowListElementComponent extends S
6568
ngOnInit(): void {
6669
super.ngOnInit();
6770
this.dso = this.linkService.resolveLink(this.dso, followLink('item'));
68-
this.item$ = (this.dso.item as Observable<RemoteData<Item>>).pipe(getAllSucceededRemoteData(), getRemoteDataPayload());
71+
(this.dso.item as Observable<RemoteData<Item>>).pipe(
72+
getFirstCompletedRemoteData(),
73+
getRemoteDataPayload())
74+
.subscribe((item: Item) => {
75+
this.item$.next(item);
76+
});
6977
}
7078
}

src/app/admin/admin-workflow-page/admin-workflow-search-results/admin-workflow-search-result-list-element/workspace-item/workspace-item-search-result-admin-workflow-list-element.component.ts

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ import { Context } from '../../../../../core/shared/context.model';
3131
import { DSpaceObject } from '../../../../../core/shared/dspace-object.model';
3232
import { Item } from '../../../../../core/shared/item.model';
3333
import {
34-
getAllSucceededRemoteData,
3534
getFirstCompletedRemoteData,
3635
getRemoteDataPayload,
3736
} from '../../../../../core/shared/operators';
@@ -63,7 +62,7 @@ export class WorkspaceItemSearchResultAdminWorkflowListElementComponent extends
6362
/**
6463
* The item linked to the workflow item
6564
*/
66-
public item$: Observable<Item>;
65+
public item$: BehaviorSubject<Item> = new BehaviorSubject<Item>(undefined);
6766

6867
/**
6968
* The id of the item linked to the workflow item
@@ -90,11 +89,14 @@ export class WorkspaceItemSearchResultAdminWorkflowListElementComponent extends
9089
ngOnInit(): void {
9190
super.ngOnInit();
9291
this.dso = this.linkService.resolveLink(this.dso, followLink('item'));
93-
this.item$ = (this.dso.item as Observable<RemoteData<Item>>).pipe(getAllSucceededRemoteData(), getRemoteDataPayload());
92+
const item$ = (this.dso.item as Observable<RemoteData<Item>>).pipe(getFirstCompletedRemoteData(), getRemoteDataPayload());
9493

95-
this.item$.pipe(
94+
item$.pipe(
9695
take(1),
97-
tap((item: Item) => this.itemId = item.id),
96+
tap((item: Item) => {
97+
this.item$.next(item);
98+
this.itemId = item.id;
99+
}),
98100
mergeMap((item: Item) => this.retrieveSupervisorOrders(item.id)),
99101
).subscribe((supervisionOrderList: SupervisionOrder[]) => {
100102
this.supervisionOrder$.next(supervisionOrderList);

src/app/app-routes.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import { COMMUNITY_MODULE_PATH } from './community-page/community-page-routing-p
2626
import { AuthBlockingGuard } from './core/auth/auth-blocking.guard';
2727
import { AuthenticatedGuard } from './core/auth/authenticated.guard';
2828
import { GroupAdministratorGuard } from './core/data/feature-authorization/feature-authorization-guard/group-administrator.guard';
29+
import { SiteAdministratorGuard } from './core/data/feature-authorization/feature-authorization-guard/site-administrator.guard';
2930
import { SiteRegisterGuard } from './core/data/feature-authorization/feature-authorization-guard/site-register.guard';
3031
import { EndUserAgreementCurrentUserGuard } from './core/end-user-agreement/end-user-agreement-current-user.guard';
3132
import { ReloadGuard } from './core/reload/reload.guard';
@@ -155,7 +156,7 @@ export const APP_ROUTES: Route[] = [
155156
path: ADMIN_MODULE_PATH,
156157
loadChildren: () => import('./admin/admin-routes')
157158
.then((m) => m.ROUTES),
158-
canActivate: [EndUserAgreementCurrentUserGuard],
159+
canActivate: [SiteAdministratorGuard, EndUserAgreementCurrentUserGuard],
159160
},
160161
{
161162
path: NOTIFICATIONS_MODULE_PATH,
Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
11
import { ClaimedTask } from '../../../core/tasks/models/claimed-task-object.model';
22
import { SearchResult } from '../../search/models/search-result.model';
3-
import { searchResultFor } from '../../search/search-result-element-decorator';
43

54
/**
65
* Represents a search result object of a ClaimedTask object
76
*/
8-
@searchResultFor(ClaimedTask)
97
export class ClaimedTaskSearchResult extends SearchResult<ClaimedTask> {
108
}
Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
import { Collection } from '../../../core/shared/collection.model';
22
import { SearchResult } from '../../search/models/search-result.model';
3-
import { searchResultFor } from '../../search/search-result-element-decorator';
43

5-
@searchResultFor(Collection)
64
export class CollectionSearchResult extends SearchResult<Collection> {
75
}
Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
import { Community } from '../../../core/shared/community.model';
22
import { SearchResult } from '../../search/models/search-result.model';
3-
import { searchResultFor } from '../../search/search-result-element-decorator';
43

5-
@searchResultFor(Community)
64
export class CommunitySearchResult extends SearchResult<Community> {
75
}

src/app/shared/object-collection/shared/item-search-result.model.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,8 @@ import { GenericConstructor } from '../../../core/shared/generic-constructor';
22
import { Item } from '../../../core/shared/item.model';
33
import { inheritEquatable } from '../../../core/utilities/equals.decorators';
44
import { SearchResult } from '../../search/models/search-result.model';
5-
import { searchResultFor } from '../../search/search-result-element-decorator';
65
import { ListableObject } from './listable-object.model';
76

8-
@searchResultFor(Item)
97
@inheritEquatable(SearchResult)
108
export class ItemSearchResult extends SearchResult<Item> {
119

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
11
import { PoolTask } from '../../../core/tasks/models/pool-task-object.model';
22
import { SearchResult } from '../../search/models/search-result.model';
3-
import { searchResultFor } from '../../search/search-result-element-decorator';
43

54
/**
65
* Represents a search result object of a PoolTask object
76
*/
8-
@searchResultFor(PoolTask)
97
export class PoolTaskSearchResult extends SearchResult<PoolTask> {
108
}
Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
11
import { WorkflowItem } from '../../../core/submission/models/workflowitem.model';
22
import { SearchResult } from '../../search/models/search-result.model';
3-
import { searchResultFor } from '../../search/search-result-element-decorator';
43

54
/**
65
* Represents a search result object of a WorkflowItem object
76
*/
8-
@searchResultFor(WorkflowItem)
97
export class WorkflowItemSearchResult extends SearchResult<WorkflowItem> {
108
}

0 commit comments

Comments
 (0)