@beinformed/ui 1.45.3 → 1.46.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +20 -0
- package/esm/models/application/ApplicationModel.js +7 -1
- package/esm/models/application/ApplicationModel.js.map +1 -1
- package/esm/models/attributes/AttributeModel.js +2 -2
- package/esm/models/attributes/AttributeModel.js.map +1 -1
- package/esm/models/attributes/ChoiceAttributeModel.js +2 -2
- package/esm/models/attributes/ChoiceAttributeModel.js.map +1 -1
- package/esm/models/attributes/ChoiceAttributeOptionModel.js +2 -2
- package/esm/models/attributes/ChoiceAttributeOptionModel.js.map +1 -1
- package/esm/models/attributes/CompositeAttributeModel.js +2 -2
- package/esm/models/attributes/CompositeAttributeModel.js.map +1 -1
- package/esm/models/base/ResourceCollection.js +2 -2
- package/esm/models/base/ResourceCollection.js.map +1 -1
- package/esm/models/base/ResourceModel.js +8 -7
- package/esm/models/base/ResourceModel.js.map +1 -1
- package/esm/models/caseview/CaseViewModel.js +2 -2
- package/esm/models/caseview/CaseViewModel.js.map +1 -1
- package/esm/models/concepts/BusinessScenarioModel.js +2 -2
- package/esm/models/concepts/BusinessScenarioModel.js.map +1 -1
- package/esm/models/concepts/ConceptDetailModel.js +2 -2
- package/esm/models/concepts/ConceptDetailModel.js.map +1 -1
- package/esm/models/concepts/ConceptIndexModel.js +2 -2
- package/esm/models/concepts/ConceptIndexModel.js.map +1 -1
- package/esm/models/content/ContentIndexModel.js +2 -3
- package/esm/models/content/ContentIndexModel.js.map +1 -1
- package/esm/models/detail/DetailModel.js +2 -2
- package/esm/models/detail/DetailModel.js.map +1 -1
- package/esm/models/form/FormModel.js +3 -4
- package/esm/models/form/FormModel.js.map +1 -1
- package/esm/models/form/FormObjectModel.js +2 -2
- package/esm/models/form/FormObjectModel.js.map +1 -1
- package/esm/models/list/ListDetailModel.js +4 -4
- package/esm/models/list/ListDetailModel.js.map +1 -1
- package/esm/models/types.js.map +1 -1
- package/esm/models/user/UserServicesModel.js +16 -1
- package/esm/models/user/UserServicesModel.js.map +1 -1
- package/esm/modularui/ModularUIRequest.js +7 -3
- package/esm/modularui/ModularUIRequest.js.map +1 -1
- package/esm/react-client/rehydrate.js +1 -1
- package/esm/react-client/rehydrate.js.map +1 -1
- package/esm/redux/actions/SignIn.js +8 -2
- package/esm/redux/actions/SignIn.js.map +1 -1
- package/esm/redux/store/configureStore.js +5 -0
- package/esm/redux/store/configureStore.js.map +1 -1
- package/lib/models/application/ApplicationModel.js +7 -1
- package/lib/models/application/ApplicationModel.js.flow +7 -1
- package/lib/models/application/ApplicationModel.js.map +1 -1
- package/lib/models/attributes/AttributeModel.js +2 -1
- package/lib/models/attributes/AttributeModel.js.flow +5 -1
- package/lib/models/attributes/AttributeModel.js.map +1 -1
- package/lib/models/attributes/ChoiceAttributeModel.js +2 -2
- package/lib/models/attributes/ChoiceAttributeModel.js.flow +3 -2
- package/lib/models/attributes/ChoiceAttributeModel.js.map +1 -1
- package/lib/models/attributes/ChoiceAttributeOptionModel.js +2 -2
- package/lib/models/attributes/ChoiceAttributeOptionModel.js.flow +3 -2
- package/lib/models/attributes/ChoiceAttributeOptionModel.js.map +1 -1
- package/lib/models/attributes/CompositeAttributeModel.js +2 -2
- package/lib/models/attributes/CompositeAttributeModel.js.flow +3 -2
- package/lib/models/attributes/CompositeAttributeModel.js.map +1 -1
- package/lib/models/base/ResourceCollection.js +2 -2
- package/lib/models/base/ResourceCollection.js.flow +3 -2
- package/lib/models/base/ResourceCollection.js.map +1 -1
- package/lib/models/base/ResourceModel.js +8 -7
- package/lib/models/base/ResourceModel.js.flow +12 -4
- package/lib/models/base/ResourceModel.js.map +1 -1
- package/lib/models/caseview/CaseViewModel.js +2 -2
- package/lib/models/caseview/CaseViewModel.js.flow +3 -2
- package/lib/models/caseview/CaseViewModel.js.map +1 -1
- package/lib/models/concepts/BusinessScenarioModel.js +2 -2
- package/lib/models/concepts/BusinessScenarioModel.js.flow +3 -2
- package/lib/models/concepts/BusinessScenarioModel.js.map +1 -1
- package/lib/models/concepts/ConceptDetailModel.js +2 -2
- package/lib/models/concepts/ConceptDetailModel.js.flow +3 -2
- package/lib/models/concepts/ConceptDetailModel.js.map +1 -1
- package/lib/models/concepts/ConceptIndexModel.js +2 -2
- package/lib/models/concepts/ConceptIndexModel.js.flow +3 -2
- package/lib/models/concepts/ConceptIndexModel.js.map +1 -1
- package/lib/models/content/ContentIndexModel.js +2 -2
- package/lib/models/content/ContentIndexModel.js.flow +4 -3
- package/lib/models/content/ContentIndexModel.js.map +1 -1
- package/lib/models/detail/DetailModel.js +2 -2
- package/lib/models/detail/DetailModel.js.flow +3 -2
- package/lib/models/detail/DetailModel.js.map +1 -1
- package/lib/models/form/FormModel.js +3 -3
- package/lib/models/form/FormModel.js.flow +6 -5
- package/lib/models/form/FormModel.js.map +1 -1
- package/lib/models/form/FormObjectModel.js +2 -2
- package/lib/models/form/FormObjectModel.js.flow +3 -2
- package/lib/models/form/FormObjectModel.js.map +1 -1
- package/lib/models/list/ListDetailModel.js +4 -4
- package/lib/models/list/ListDetailModel.js.flow +5 -4
- package/lib/models/list/ListDetailModel.js.map +1 -1
- package/lib/models/types.js.flow +5 -1
- package/lib/models/types.js.map +1 -1
- package/lib/models/user/UserServicesModel.js +16 -1
- package/lib/models/user/UserServicesModel.js.flow +18 -1
- package/lib/models/user/UserServicesModel.js.map +1 -1
- package/lib/modularui/ModularUIRequest.js +7 -3
- package/lib/modularui/ModularUIRequest.js.flow +7 -3
- package/lib/modularui/ModularUIRequest.js.map +1 -1
- package/lib/react-client/rehydrate.js +1 -1
- package/lib/react-client/rehydrate.js.flow +1 -1
- package/lib/react-client/rehydrate.js.map +1 -1
- package/lib/redux/actions/SignIn.js +8 -2
- package/lib/redux/actions/SignIn.js.flow +8 -3
- package/lib/redux/actions/SignIn.js.map +1 -1
- package/lib/redux/store/configureStore.js +5 -0
- package/lib/redux/store/configureStore.js.flow +8 -0
- package/lib/redux/store/configureStore.js.map +1 -1
- package/package.json +7 -7
- package/src/models/application/ApplicationModel.js +7 -1
- package/src/models/attributes/AttributeModel.js +5 -1
- package/src/models/attributes/ChoiceAttributeModel.js +3 -2
- package/src/models/attributes/ChoiceAttributeOptionModel.js +3 -2
- package/src/models/attributes/CompositeAttributeModel.js +3 -2
- package/src/models/base/ResourceCollection.js +3 -2
- package/src/models/base/ResourceModel.js +12 -4
- package/src/models/caseview/CaseViewModel.js +3 -2
- package/src/models/concepts/BusinessScenarioModel.js +3 -2
- package/src/models/concepts/ConceptDetailModel.js +3 -2
- package/src/models/concepts/ConceptIndexModel.js +3 -2
- package/src/models/content/ContentIndexModel.js +4 -3
- package/src/models/detail/DetailModel.js +3 -2
- package/src/models/form/FormModel.js +6 -5
- package/src/models/form/FormObjectModel.js +3 -2
- package/src/models/list/ListDetailModel.js +5 -4
- package/src/models/types.js +5 -1
- package/src/models/user/UserServicesModel.js +18 -1
- package/src/modularui/ModularUIRequest.js +7 -3
- package/src/react-client/rehydrate.js +1 -1
- package/src/redux/actions/SignIn.js +8 -3
- package/src/redux/store/configureStore.js +8 -0
package/src/models/types.js
CHANGED
|
@@ -45,6 +45,7 @@ import type BaseFilterModel from "./filters/BaseFilterModel";
|
|
|
45
45
|
import type AttributeCollection from "./attributes/AttributeCollection";
|
|
46
46
|
import type AttributeModel from "./attributes/AttributeModel";
|
|
47
47
|
import type LayoutHintCollection from "./layouthint/LayoutHintCollection";
|
|
48
|
+
import type ErrorResponse from "./error/ErrorResponse";
|
|
48
49
|
|
|
49
50
|
export type ModularUIModel =
|
|
50
51
|
| ApplicationModel
|
|
@@ -151,7 +152,10 @@ export interface ILayoutHintRule {
|
|
|
151
152
|
|
|
152
153
|
export interface IModelWithChildModels {
|
|
153
154
|
getInitialChildModelLinks(): Array<LinkModel>;
|
|
154
|
-
setChildModels(
|
|
155
|
+
setChildModels(
|
|
156
|
+
models: Array<ModularUIModel>,
|
|
157
|
+
errors: Array<ErrorResponse>,
|
|
158
|
+
): void;
|
|
155
159
|
}
|
|
156
160
|
|
|
157
161
|
export type AuthenticationType = {
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
// @flow
|
|
2
2
|
import ResourceModel from "../base/ResourceModel";
|
|
3
3
|
import UserModel from "../user/UserModel";
|
|
4
|
+
import ErrorResponse from "../error/ErrorResponse";
|
|
4
5
|
|
|
5
6
|
import type { ModularUIModel } from "../types";
|
|
6
7
|
import type { ModularUIResponse } from "../../modularui";
|
|
@@ -12,6 +13,7 @@ import type Href from "../href/Href";
|
|
|
12
13
|
*/
|
|
13
14
|
class UserServicesModel extends ResourceModel {
|
|
14
15
|
_user: ?UserModel;
|
|
16
|
+
_mustChangePassword: boolean = false;
|
|
15
17
|
|
|
16
18
|
/**
|
|
17
19
|
*/
|
|
@@ -43,7 +45,10 @@ class UserServicesModel extends ResourceModel {
|
|
|
43
45
|
|
|
44
46
|
/**
|
|
45
47
|
*/
|
|
46
|
-
setChildModels(models: Array<ModularUIModel>) {
|
|
48
|
+
setChildModels(models: Array<ModularUIModel>, errors: Array<ErrorResponse>) {
|
|
49
|
+
this.mustChangePassword = Array.isArray(errors)
|
|
50
|
+
? errors.some((error) => error.isChangePassword) ?? false
|
|
51
|
+
: false;
|
|
47
52
|
this.user = models.find((model) => model.type === "User");
|
|
48
53
|
}
|
|
49
54
|
|
|
@@ -109,6 +114,18 @@ class UserServicesModel extends ResourceModel {
|
|
|
109
114
|
const UNSECURE_LINK_COUNT = 3;
|
|
110
115
|
return this.links.length > UNSECURE_LINK_COUNT || hasUser;
|
|
111
116
|
}
|
|
117
|
+
|
|
118
|
+
/**
|
|
119
|
+
*/
|
|
120
|
+
set mustChangePassword(mustChangePassword: boolean) {
|
|
121
|
+
this._mustChangePassword = mustChangePassword;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
/**
|
|
125
|
+
*/
|
|
126
|
+
get mustChangePassword(): boolean {
|
|
127
|
+
return this._mustChangePassword;
|
|
128
|
+
}
|
|
112
129
|
}
|
|
113
130
|
|
|
114
131
|
export default UserServicesModel;
|
|
@@ -13,6 +13,7 @@ import universalFetch from "../utils/fetch/universalFetch";
|
|
|
13
13
|
import resolveModel from "../models/resolveModel";
|
|
14
14
|
import FormModel from "../models/form/FormModel";
|
|
15
15
|
import ContentModel from "../models/content/ContentModel";
|
|
16
|
+
import ErrorResponse from "../models/error/ErrorResponse";
|
|
16
17
|
|
|
17
18
|
import ModularUIResponse from "./ModularUIResponse";
|
|
18
19
|
|
|
@@ -670,22 +671,25 @@ class ModularUIRequest {
|
|
|
670
671
|
|
|
671
672
|
return Promise.allSettled(childModelRequests).then((childModels) => {
|
|
672
673
|
const resolvedChildModels = [];
|
|
674
|
+
const errorChildModels = [];
|
|
673
675
|
|
|
674
676
|
childModels.forEach((childModel) => {
|
|
675
677
|
if (childModel.status === "rejected") {
|
|
676
678
|
const { reason } = childModel;
|
|
677
679
|
if (reason.name !== "Error.ChangePasswordRequired") {
|
|
678
|
-
console
|
|
680
|
+
// eslint-disable-next-line no-console
|
|
681
|
+
console.debug(
|
|
679
682
|
"Unexpected error when retrieving child model:",
|
|
680
683
|
reason,
|
|
681
684
|
);
|
|
682
685
|
}
|
|
686
|
+
errorChildModels.push(new ErrorResponse(reason));
|
|
683
687
|
} else {
|
|
684
688
|
resolvedChildModels.push(childModel.value);
|
|
685
689
|
}
|
|
686
690
|
});
|
|
687
691
|
|
|
688
|
-
model.addChildModels(resolvedChildModels);
|
|
692
|
+
model.addChildModels(resolvedChildModels, errorChildModels);
|
|
689
693
|
|
|
690
694
|
return model;
|
|
691
695
|
});
|
|
@@ -798,7 +802,7 @@ class ModularUIRequest {
|
|
|
798
802
|
locale: this.locale,
|
|
799
803
|
}).fetchSync();
|
|
800
804
|
});
|
|
801
|
-
model.addChildModels(childModels);
|
|
805
|
+
model.addChildModels(childModels, []);
|
|
802
806
|
|
|
803
807
|
return model;
|
|
804
808
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
// @flow
|
|
2
2
|
import Cache from "../../utils/browser/Cache";
|
|
3
3
|
import Authenticate from "../../modularui/Authenticate";
|
|
4
|
+
import { getApplication } from "../_modularui/ModularUISelectors";
|
|
4
5
|
|
|
5
6
|
import { reloadApplication } from "./Application";
|
|
6
7
|
|
|
@@ -68,7 +69,7 @@ export const changePassword = (): ThunkAction => (dispatch, getState) => {
|
|
|
68
69
|
*/
|
|
69
70
|
export const login =
|
|
70
71
|
(username: string, password: string): ThunkAction =>
|
|
71
|
-
(dispatch) => {
|
|
72
|
+
(dispatch, getState) => {
|
|
72
73
|
dispatch(startProgress());
|
|
73
74
|
|
|
74
75
|
return new Authenticate()
|
|
@@ -76,8 +77,12 @@ export const login =
|
|
|
76
77
|
.then(() => dispatch(reloadApplication()))
|
|
77
78
|
.then(() => {
|
|
78
79
|
Cache.addItem("auth", true);
|
|
79
|
-
|
|
80
|
-
|
|
80
|
+
const application = getApplication(getState());
|
|
81
|
+
if (application?.userMustChangePassword) {
|
|
82
|
+
dispatch(changePassword());
|
|
83
|
+
} else {
|
|
84
|
+
dispatch(loginSuccess());
|
|
85
|
+
}
|
|
81
86
|
return dispatch(finishProgress());
|
|
82
87
|
})
|
|
83
88
|
.catch((error) => {
|
|
@@ -13,6 +13,8 @@ import { modularUIMiddleware } from "../_modularui/ModularUIMiddleware";
|
|
|
13
13
|
import { createReducer } from "../reducers/createReducer";
|
|
14
14
|
import { locationChange } from "../_router/RouterActions";
|
|
15
15
|
|
|
16
|
+
import { updateLocale } from "../_i18n/I18nActions";
|
|
17
|
+
|
|
16
18
|
import type { RouterHistory } from "react-router";
|
|
17
19
|
import type { ReduxAction, ReduxState, ReduxStore } from "../types";
|
|
18
20
|
import type { Reducer } from "redux";
|
|
@@ -52,6 +54,12 @@ const configureStore = (
|
|
|
52
54
|
if (!initialState?.router) {
|
|
53
55
|
store.dispatch(locationChange(routerHistory.location, "PUSH"));
|
|
54
56
|
}
|
|
57
|
+
|
|
58
|
+
const locale = initialState?.i18n.locale;
|
|
59
|
+
if (locale) {
|
|
60
|
+
store.dispatch(updateLocale(locale));
|
|
61
|
+
}
|
|
62
|
+
|
|
55
63
|
return { routerHistory, store };
|
|
56
64
|
};
|
|
57
65
|
|