Skip to content
Snippets Groups Projects
Commit 6b041e88 authored by Florent Poittevin's avatar Florent Poittevin
Browse files

Get shared resource only when needed

parent 9174aca0
No related branches found
No related tags found
1 merge request!20Fpo/fix access errors
...@@ -41,8 +41,6 @@ export class AppComponent extends BaseDirective implements OnInit { ...@@ -41,8 +41,6 @@ export class AppComponent extends BaseDirective implements OnInit {
} }
ngOnInit(): void { ngOnInit(): void {
// TO FIX Should be in app.state init action but it's not detected in shared state...
this.store.dispatch(new GetAllResources());
} }
useLanguage(language: LanguagesEnum): void { useLanguage(language: LanguagesEnum): void {
......
...@@ -24,6 +24,27 @@ import {StringUtil} from "@app/shared/utils/string.util"; ...@@ -24,6 +24,27 @@ import {StringUtil} from "@app/shared/utils/string.util";
const state = StateEnum.deposit; const state = StateEnum.deposit;
export class DepositLoadResource {
static readonly type = StringUtil.format("[{0}] Load resource", state);
constructor() {
}
}
export class DepositLoadResourceSuccess {
static readonly type = StringUtil.format("[{0}] Load resource Success", state);
constructor() {
}
}
export class DepositLoadResourceFail {
static readonly type = StringUtil.format("[{0}] Load resource Fail", state);
constructor() {
}
}
export class DepositChangeQueryParameters extends ChangeQueryParametersCrud { export class DepositChangeQueryParameters extends ChangeQueryParametersCrud {
static readonly type = StringUtil.format(ChangeQueryParametersCrud.abstractType, state); static readonly type = StringUtil.format(ChangeQueryParametersCrud.abstractType, state);
......
...@@ -12,6 +12,8 @@ import { ...@@ -12,6 +12,8 @@ import {
DepositGetById, DepositGetById,
DepositGetByIdFail, DepositGetByIdFail,
DepositGetByIdSuccess, DepositGetByIdSuccess,
DepositLoadResource,
DepositLoadResourceSuccess,
DepositUpdate, DepositUpdate,
DepositUpdateFail, DepositUpdateFail,
DepositUpdateSuccess, DepositUpdateSuccess,
...@@ -20,13 +22,18 @@ import {DepositsModel} from "@app/generated-api"; ...@@ -20,13 +22,18 @@ import {DepositsModel} from "@app/generated-api";
import {CrudState, CrudStateModel} from "@app/shared/crud.state"; import {CrudState, CrudStateModel} from "@app/shared/crud.state";
import {PreIngestResourceApiEnum} from "@app/shared/enums/api.enum"; import {PreIngestResourceApiEnum} from "@app/shared/enums/api.enum";
import {StateEnum} from "@app/shared/enums/state.enum"; import {StateEnum} from "@app/shared/enums/state.enum";
import {LanguageGetAll} from "@app/shared/language.action";
import {LicenseGetAll} from "@app/shared/license.action";
import {CollectionTypedModel} from "@app/shared/models/collection-typed.model"; import {CollectionTypedModel} from "@app/shared/models/collection-typed.model";
import {QueryParametersModel} from "@app/shared/models/query-parameters.model"; import {QueryParametersModel} from "@app/shared/models/query-parameters.model";
import {PreservationPolicyGetAll} from "@app/shared/preservation-policy.action";
import {ApiService} from "@app/shared/services/api.service"; import {ApiService} from "@app/shared/services/api.service";
import {SubmissionPolicyGetAll} from "@app/shared/submission-policy.action";
import {Action, State, StateContext} from "@ngxs/store"; import {Action, State, StateContext} from "@ngxs/store";
import {Observable} from "rxjs"; import {Observable} from "rxjs";
export interface DepositStateModel extends CrudStateModel<DepositsModel> { export interface DepositStateModel extends CrudStateModel<DepositsModel> {
resourceIsLoading: boolean;
} }
@State<DepositStateModel>({ @State<DepositStateModel>({
...@@ -37,6 +44,7 @@ export interface DepositStateModel extends CrudStateModel<DepositsModel> { ...@@ -37,6 +44,7 @@ export interface DepositStateModel extends CrudStateModel<DepositsModel> {
list: [], list: [],
current: null, current: null,
queryParameters: new QueryParametersModel(), queryParameters: new QueryParametersModel(),
resourceIsLoading: false,
}, },
}) })
export class DepositState extends CrudState<DepositsModel> { export class DepositState extends CrudState<DepositsModel> {
...@@ -49,6 +57,21 @@ export class DepositState extends CrudState<DepositsModel> { ...@@ -49,6 +57,21 @@ export class DepositState extends CrudState<DepositsModel> {
this.urlResource = PreIngestResourceApiEnum.deposits; this.urlResource = PreIngestResourceApiEnum.deposits;
} }
@Action(DepositLoadResource)
loadResource(ctx: StateContext<DepositStateModel>, action: DepositLoadResource): void {
ctx.patchState({
isLoading: true,
});
ctx.dispatch([
new LanguageGetAll(),
new LicenseGetAll(),
new PreservationPolicyGetAll(),
new SubmissionPolicyGetAll(),
new DepositLoadResourceSuccess(),
]);
}
@Action(DepositChangeQueryParameters) @Action(DepositChangeQueryParameters)
changeQueryParameters(ctx: StateContext<DepositStateModel>, action: DepositChangeQueryParameters): void { changeQueryParameters(ctx: StateContext<DepositStateModel>, action: DepositChangeQueryParameters): void {
super.changeQueryParameters(ctx, action); super.changeQueryParameters(ctx, action);
......
import {ChangeDetectionStrategy, Component, OnInit} from "@angular/core"; import {ChangeDetectionStrategy, Component, OnInit} from "@angular/core";
import {DepositLoadResource} from "@app/deposit/deposit.action";
import {DepositStateModel} from "@app/deposit/deposit.state"; import {DepositStateModel} from "@app/deposit/deposit.state";
import {DepositsModel, LanguagesModel, LicensesModel, PreservationPoliciesModel, SubmissionPoliciesModel} from "@app/generated-api"; import {DepositsModel, LanguagesModel, LicensesModel, PreservationPoliciesModel, SubmissionPoliciesModel} from "@app/generated-api";
import {OrgUnitGetAll} from "@app/shared/organizational-unit.action";
import {OrganizationalUnitModule} from "@app/organizational-unit/organizational-unit.module"; import {OrganizationalUnitModule} from "@app/organizational-unit/organizational-unit.module";
import {OrganizationalUnitStateModel} from "@app/shared/organizational-unit.state";
import {StateEnum} from "@app/shared/enums/state.enum"; import {StateEnum} from "@app/shared/enums/state.enum";
import {LanguageStateModel} from "@app/shared/language.state"; import {LanguageStateModel} from "@app/shared/language.state";
import {LicenseStateModel} from "@app/shared/license.state"; import {LicenseStateModel} from "@app/shared/license.state";
import {OrgUnitGetAll} from "@app/shared/organizational-unit.action";
import {OrganizationalUnitStateModel} from "@app/shared/organizational-unit.state";
import {PreservationPolicyStateModel} from "@app/shared/preservation-policy.state"; import {PreservationPolicyStateModel} from "@app/shared/preservation-policy.state";
import {SharedStateModel} from "@app/shared/shared.state"; import {SharedStateModel} from "@app/shared/shared.state";
import {SubmissionPolicyStateModel} from "@app/shared/submission-policy.state"; import {SubmissionPolicyStateModel} from "@app/shared/submission-policy.state";
...@@ -33,5 +34,6 @@ export class CreateView extends AbstractCreateView<DepositsModel, DepositStateMo ...@@ -33,5 +34,6 @@ export class CreateView extends AbstractCreateView<DepositsModel, DepositStateMo
ngOnInit() { ngOnInit() {
this.store.dispatch(new OrgUnitGetAll()); this.store.dispatch(new OrgUnitGetAll());
this.store.dispatch(new DepositLoadResource());
} }
} }
import {ChangeDetectionStrategy, Component, OnInit} from "@angular/core"; import {ChangeDetectionStrategy, Component, OnInit} from "@angular/core";
import {MatDialog} from "@angular/material"; import {MatDialog} from "@angular/material";
import {ActivatedRoute} from "@angular/router"; import {ActivatedRoute} from "@angular/router";
import {DepositLoadResource} from "@app/deposit/deposit.action";
import {DepositStateModel} from "@app/deposit/deposit.state"; import {DepositStateModel} from "@app/deposit/deposit.state";
import { import {
DepositsModel, DepositsModel,
...@@ -50,5 +51,6 @@ export class DetailView extends AbstractDetailView<DepositsModel, DepositStateMo ...@@ -50,5 +51,6 @@ export class DetailView extends AbstractDetailView<DepositsModel, DepositStateMo
ngOnInit() { ngOnInit() {
super.ngOnInit(); super.ngOnInit();
this.store.dispatch(new OrgUnitGetAll()); this.store.dispatch(new OrgUnitGetAll());
this.store.dispatch(new DepositLoadResource());
} }
} }
import {ChangeDetectionStrategy, Component, OnInit} from "@angular/core"; import {ChangeDetectionStrategy, Component, OnInit} from "@angular/core";
import {ActivatedRoute} from "@angular/router"; import {ActivatedRoute} from "@angular/router";
import {DepositLoadResource} from "@app/deposit/deposit.action";
import {DepositStateModel} from "@app/deposit/deposit.state"; import {DepositStateModel} from "@app/deposit/deposit.state";
import {DepositsModel, LanguagesModel, LicensesModel, PreservationPoliciesModel, SubmissionPoliciesModel} from "@app/generated-api"; import {DepositsModel, LanguagesModel, LicensesModel, PreservationPoliciesModel, SubmissionPoliciesModel} from "@app/generated-api";
import {OrgUnitGetAll} from "@app/shared/organizational-unit.action"; import {OrgUnitGetAll} from "@app/shared/organizational-unit.action";
...@@ -36,5 +37,6 @@ export class EditView extends AbstractEditView<DepositsModel, DepositStateModel> ...@@ -36,5 +37,6 @@ export class EditView extends AbstractEditView<DepositsModel, DepositStateModel>
ngOnInit() { ngOnInit() {
super.ngOnInit(); super.ngOnInit();
this.store.dispatch(new OrgUnitGetAll()); this.store.dispatch(new OrgUnitGetAll());
this.store.dispatch(new DepositLoadResource());
} }
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment