@fctc/interface-logic 1.8.6 → 1.8.8
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/dist/configs.js +9 -12
- package/dist/configs.mjs +9 -12
- package/dist/environment.d.mts +16 -15
- package/dist/environment.d.ts +16 -15
- package/dist/environment.js +90 -79
- package/dist/environment.mjs +89 -79
- package/dist/hooks.d.mts +6 -1
- package/dist/hooks.d.ts +6 -1
- package/dist/hooks.js +257 -217
- package/dist/hooks.mjs +216 -177
- package/dist/provider.js +320 -585
- package/dist/provider.mjs +319 -584
- package/dist/services.d.mts +1 -0
- package/dist/services.d.ts +1 -0
- package/dist/services.js +131 -107
- package/dist/services.mjs +131 -107
- package/dist/store.js +7 -5
- package/dist/store.mjs +7 -5
- package/package.json +1 -1
package/dist/provider.mjs
CHANGED
|
@@ -43,11 +43,13 @@ var breadcrums_slice_default = breadcrumbsSlice.reducer;
|
|
|
43
43
|
import { createSlice as createSlice2 } from "@reduxjs/toolkit";
|
|
44
44
|
var initialState2 = {
|
|
45
45
|
baseUrl: "",
|
|
46
|
-
requests: null,
|
|
47
46
|
companies: [],
|
|
48
47
|
user: {},
|
|
48
|
+
db: "",
|
|
49
|
+
refreshTokenEndpoint: "",
|
|
49
50
|
config: null,
|
|
50
51
|
envFile: null,
|
|
52
|
+
requests: null,
|
|
51
53
|
defaultCompany: {
|
|
52
54
|
id: null,
|
|
53
55
|
logo: "",
|
|
@@ -646,9 +648,300 @@ var MainProvider = ({ children }) => {
|
|
|
646
648
|
};
|
|
647
649
|
|
|
648
650
|
// src/provider/version-gate-provider.tsx
|
|
649
|
-
import { useEffect
|
|
651
|
+
import { useEffect, useState } from "react";
|
|
650
652
|
import { useQueryClient } from "@tanstack/react-query";
|
|
651
653
|
|
|
654
|
+
// src/services/view-service/backup.ts
|
|
655
|
+
import { useCallback } from "react";
|
|
656
|
+
function useViewService() {
|
|
657
|
+
const { env } = useEnv();
|
|
658
|
+
const getView = useCallback(
|
|
659
|
+
async ({ model, views, context = {}, options = {}, aid }) => {
|
|
660
|
+
const defaultOptions = {
|
|
661
|
+
load_filters: true,
|
|
662
|
+
toolbar: true,
|
|
663
|
+
action_id: aid
|
|
664
|
+
};
|
|
665
|
+
const jsonDataView = {
|
|
666
|
+
model,
|
|
667
|
+
method: "get_fields_view_v2" /* GET_FIELD_VIEW */,
|
|
668
|
+
kwargs: {
|
|
669
|
+
views,
|
|
670
|
+
options: { ...options, ...defaultOptions }
|
|
671
|
+
},
|
|
672
|
+
with_context: context
|
|
673
|
+
};
|
|
674
|
+
return env?.requests?.post("/call" /* CALL_PATH */, jsonDataView, {
|
|
675
|
+
headers: {
|
|
676
|
+
"Content-Type": "application/json"
|
|
677
|
+
}
|
|
678
|
+
});
|
|
679
|
+
},
|
|
680
|
+
[env]
|
|
681
|
+
);
|
|
682
|
+
const getMenu = useCallback(
|
|
683
|
+
async (context) => {
|
|
684
|
+
const jsonData = {
|
|
685
|
+
model: "ir.ui.menu" /* MENU */,
|
|
686
|
+
method: "web_search_read" /* WEB_SEARCH_READ */,
|
|
687
|
+
ids: [],
|
|
688
|
+
with_context: context,
|
|
689
|
+
kwargs: {
|
|
690
|
+
specification: {
|
|
691
|
+
active: {},
|
|
692
|
+
name: {},
|
|
693
|
+
is_display: {},
|
|
694
|
+
sequence: {},
|
|
695
|
+
complete_name: {},
|
|
696
|
+
action: {
|
|
697
|
+
fields: {
|
|
698
|
+
display_name: {},
|
|
699
|
+
type: {},
|
|
700
|
+
binding_view_types: {}
|
|
701
|
+
}
|
|
702
|
+
},
|
|
703
|
+
url_icon: {},
|
|
704
|
+
web_icon: {},
|
|
705
|
+
web_icon_data: {},
|
|
706
|
+
groups_id: {
|
|
707
|
+
fields: {
|
|
708
|
+
full_name: {}
|
|
709
|
+
},
|
|
710
|
+
limit: 40,
|
|
711
|
+
order: ""
|
|
712
|
+
},
|
|
713
|
+
display_name: {},
|
|
714
|
+
child_id: {
|
|
715
|
+
fields: {
|
|
716
|
+
active: {},
|
|
717
|
+
name: {},
|
|
718
|
+
is_display: {},
|
|
719
|
+
sequence: {},
|
|
720
|
+
complete_name: {},
|
|
721
|
+
action: {
|
|
722
|
+
fields: {
|
|
723
|
+
display_name: {},
|
|
724
|
+
type: {},
|
|
725
|
+
binding_view_types: {}
|
|
726
|
+
}
|
|
727
|
+
},
|
|
728
|
+
url_icon: {},
|
|
729
|
+
web_icon: {},
|
|
730
|
+
web_icon_data: {},
|
|
731
|
+
groups_id: {
|
|
732
|
+
fields: {
|
|
733
|
+
full_name: {}
|
|
734
|
+
},
|
|
735
|
+
limit: 40,
|
|
736
|
+
order: ""
|
|
737
|
+
},
|
|
738
|
+
display_name: {},
|
|
739
|
+
child_id: {
|
|
740
|
+
fields: {
|
|
741
|
+
active: {},
|
|
742
|
+
name: {},
|
|
743
|
+
is_display: {},
|
|
744
|
+
sequence: {},
|
|
745
|
+
complete_name: {},
|
|
746
|
+
action: {
|
|
747
|
+
fields: {
|
|
748
|
+
display_name: {},
|
|
749
|
+
type: {},
|
|
750
|
+
binding_view_types: {}
|
|
751
|
+
}
|
|
752
|
+
},
|
|
753
|
+
url_icon: {},
|
|
754
|
+
web_icon: {},
|
|
755
|
+
web_icon_data: {},
|
|
756
|
+
groups_id: {
|
|
757
|
+
fields: {
|
|
758
|
+
full_name: {}
|
|
759
|
+
},
|
|
760
|
+
limit: 40,
|
|
761
|
+
order: ""
|
|
762
|
+
},
|
|
763
|
+
display_name: {},
|
|
764
|
+
child_id: {
|
|
765
|
+
fields: {},
|
|
766
|
+
limit: 40,
|
|
767
|
+
order: ""
|
|
768
|
+
}
|
|
769
|
+
},
|
|
770
|
+
limit: 40,
|
|
771
|
+
order: ""
|
|
772
|
+
}
|
|
773
|
+
},
|
|
774
|
+
limit: 40,
|
|
775
|
+
order: ""
|
|
776
|
+
}
|
|
777
|
+
},
|
|
778
|
+
domain: [
|
|
779
|
+
"&",
|
|
780
|
+
["is_display", "=", true],
|
|
781
|
+
"&",
|
|
782
|
+
["active", "=", true],
|
|
783
|
+
["parent_id", "=", false]
|
|
784
|
+
]
|
|
785
|
+
}
|
|
786
|
+
};
|
|
787
|
+
return env?.requests?.post("/call" /* CALL_PATH */, jsonData, {
|
|
788
|
+
headers: {
|
|
789
|
+
"Content-Type": "application/json"
|
|
790
|
+
}
|
|
791
|
+
});
|
|
792
|
+
},
|
|
793
|
+
[env]
|
|
794
|
+
);
|
|
795
|
+
const getActionDetail = useCallback(
|
|
796
|
+
async (aid, context) => {
|
|
797
|
+
const jsonData = {
|
|
798
|
+
model: "ir.actions.act_window" /* WINDOW_ACTION */,
|
|
799
|
+
method: "web_read" /* WEB_READ */,
|
|
800
|
+
ids: [aid],
|
|
801
|
+
with_context: context,
|
|
802
|
+
kwargs: {
|
|
803
|
+
specification: {
|
|
804
|
+
id: {},
|
|
805
|
+
name: {},
|
|
806
|
+
res_model: {},
|
|
807
|
+
views: {},
|
|
808
|
+
view_mode: {},
|
|
809
|
+
mobile_view_mode: {},
|
|
810
|
+
domain: {},
|
|
811
|
+
context: {},
|
|
812
|
+
groups_id: {},
|
|
813
|
+
search_view_id: {}
|
|
814
|
+
}
|
|
815
|
+
}
|
|
816
|
+
};
|
|
817
|
+
return env?.requests?.post("/call" /* CALL_PATH */, jsonData, {
|
|
818
|
+
headers: {
|
|
819
|
+
"Content-Type": "application/json"
|
|
820
|
+
}
|
|
821
|
+
});
|
|
822
|
+
},
|
|
823
|
+
[env]
|
|
824
|
+
);
|
|
825
|
+
const getResequence = useCallback(
|
|
826
|
+
async ({ model, ids, context, offset }) => {
|
|
827
|
+
const jsonData = {
|
|
828
|
+
model,
|
|
829
|
+
with_context: context,
|
|
830
|
+
ids,
|
|
831
|
+
field: "sequence",
|
|
832
|
+
...offset > 0 ? { offset } : {}
|
|
833
|
+
};
|
|
834
|
+
return env?.requests.post("/web/dataset/resequence", jsonData, {
|
|
835
|
+
headers: {
|
|
836
|
+
"Content-Type": "application/json"
|
|
837
|
+
}
|
|
838
|
+
});
|
|
839
|
+
},
|
|
840
|
+
[env]
|
|
841
|
+
);
|
|
842
|
+
const getSelectionItem = useCallback(
|
|
843
|
+
async ({ data }) => {
|
|
844
|
+
const jsonData = {
|
|
845
|
+
model: data.model,
|
|
846
|
+
ids: [],
|
|
847
|
+
method: "get_data_select",
|
|
848
|
+
with_context: data.context,
|
|
849
|
+
kwargs: {
|
|
850
|
+
count_limit: 10001,
|
|
851
|
+
domain: data.domain ? data.domain : [],
|
|
852
|
+
offset: 0,
|
|
853
|
+
order: "",
|
|
854
|
+
specification: data?.specification ?? {
|
|
855
|
+
id: {},
|
|
856
|
+
name: {},
|
|
857
|
+
display_name: {}
|
|
858
|
+
}
|
|
859
|
+
}
|
|
860
|
+
};
|
|
861
|
+
return env?.requests.post("/call" /* CALL_PATH */, jsonData, {
|
|
862
|
+
headers: {
|
|
863
|
+
"Content-Type": "application/json"
|
|
864
|
+
}
|
|
865
|
+
});
|
|
866
|
+
},
|
|
867
|
+
[env]
|
|
868
|
+
);
|
|
869
|
+
const loadMessages = useCallback(
|
|
870
|
+
async () => {
|
|
871
|
+
return env.requests.post(
|
|
872
|
+
"/load_message_failures" /* LOAD_MESSAGE */,
|
|
873
|
+
{},
|
|
874
|
+
{
|
|
875
|
+
headers: {
|
|
876
|
+
"Content-Type": "application/json"
|
|
877
|
+
}
|
|
878
|
+
}
|
|
879
|
+
);
|
|
880
|
+
},
|
|
881
|
+
[env]
|
|
882
|
+
);
|
|
883
|
+
const getVersion = useCallback(
|
|
884
|
+
async () => {
|
|
885
|
+
console.log("env?.requests", env, env?.requests);
|
|
886
|
+
return env?.requests?.get("", {
|
|
887
|
+
headers: {
|
|
888
|
+
"Content-Type": "application/json"
|
|
889
|
+
}
|
|
890
|
+
});
|
|
891
|
+
},
|
|
892
|
+
[env]
|
|
893
|
+
);
|
|
894
|
+
return {
|
|
895
|
+
getView,
|
|
896
|
+
getMenu,
|
|
897
|
+
getActionDetail,
|
|
898
|
+
getResequence,
|
|
899
|
+
getSelectionItem,
|
|
900
|
+
loadMessages,
|
|
901
|
+
getVersion
|
|
902
|
+
};
|
|
903
|
+
}
|
|
904
|
+
|
|
905
|
+
// src/provider/version-gate-provider.tsx
|
|
906
|
+
import { Fragment, jsx as jsx4 } from "react/jsx-runtime";
|
|
907
|
+
var VersionGate = ({ children }) => {
|
|
908
|
+
const queryClient = useQueryClient();
|
|
909
|
+
const [ready, setReady] = useState(false);
|
|
910
|
+
const { getVersion } = useViewService();
|
|
911
|
+
useEffect(() => {
|
|
912
|
+
const clearVersion = () => {
|
|
913
|
+
queryClient.clear();
|
|
914
|
+
localStorage.removeItem("__api_version__");
|
|
915
|
+
};
|
|
916
|
+
const validateVersion = async () => {
|
|
917
|
+
const serverVersion = await getVersion();
|
|
918
|
+
console.log("serverVersion", serverVersion);
|
|
919
|
+
const cached = localStorage.getItem("__api_version__");
|
|
920
|
+
if (cached !== serverVersion?.api_version) {
|
|
921
|
+
clearVersion();
|
|
922
|
+
localStorage.setItem("__api_version__", serverVersion?.api_version);
|
|
923
|
+
} else {
|
|
924
|
+
console.log("Api version:", serverVersion?.api_version);
|
|
925
|
+
}
|
|
926
|
+
setReady(true);
|
|
927
|
+
};
|
|
928
|
+
validateVersion();
|
|
929
|
+
if (typeof window !== "undefined") {
|
|
930
|
+
const onKey = (e) => {
|
|
931
|
+
const key = e.key.toLowerCase();
|
|
932
|
+
const isHardRefresh = (key === "f5" || key === "r") && e.ctrlKey && (key !== "r" || e.shiftKey) || key === "r" && e.metaKey && e.shiftKey || key === "r" && e.metaKey && e.altKey;
|
|
933
|
+
if (isHardRefresh) clearVersion();
|
|
934
|
+
};
|
|
935
|
+
window.addEventListener("keydown", onKey);
|
|
936
|
+
return () => window.removeEventListener("keydown", onKey);
|
|
937
|
+
}
|
|
938
|
+
}, [queryClient]);
|
|
939
|
+
return ready ? /* @__PURE__ */ jsx4(Fragment, { children }) : null;
|
|
940
|
+
};
|
|
941
|
+
|
|
942
|
+
// src/provider/env-provider.tsx
|
|
943
|
+
import { createContext, useContext, useState as useState3, useCallback as useCallback2 } from "react";
|
|
944
|
+
|
|
652
945
|
// src/configs/axios-client.ts
|
|
653
946
|
import axios from "axios";
|
|
654
947
|
|
|
@@ -2762,7 +3055,7 @@ function matchDomain(record, domain) {
|
|
|
2762
3055
|
}
|
|
2763
3056
|
|
|
2764
3057
|
// src/utils/function.ts
|
|
2765
|
-
import { useEffect, useState } from "react";
|
|
3058
|
+
import { useEffect as useEffect2, useState as useState2 } from "react";
|
|
2766
3059
|
var updateTokenParamInOriginalRequest = (originalRequest, newAccessToken) => {
|
|
2767
3060
|
if (!originalRequest.data) return originalRequest.data;
|
|
2768
3061
|
if (typeof originalRequest.data === "string") {
|
|
@@ -2844,19 +3137,16 @@ var axiosClient = {
|
|
|
2844
3137
|
timeout: 5e4,
|
|
2845
3138
|
paramsSerializer: (params) => new URLSearchParams(params).toString()
|
|
2846
3139
|
});
|
|
2847
|
-
instance.interceptors.request.use(
|
|
2848
|
-
|
|
2849
|
-
|
|
2850
|
-
|
|
2851
|
-
|
|
2852
|
-
|
|
2853
|
-
|
|
2854
|
-
|
|
2855
|
-
|
|
2856
|
-
|
|
2857
|
-
Promise.reject(error);
|
|
2858
|
-
}
|
|
2859
|
-
);
|
|
3140
|
+
instance.interceptors.request.use(async (config2) => {
|
|
3141
|
+
const { useRefreshToken, useActionToken, actionToken } = config2;
|
|
3142
|
+
if (useActionToken && actionToken) {
|
|
3143
|
+
config2.headers["Action-Token"] = actionToken;
|
|
3144
|
+
}
|
|
3145
|
+
const getToken = useRefreshToken ? localStorage2.getRefreshToken : localStorage2.getAccessToken;
|
|
3146
|
+
const token = await getToken?.();
|
|
3147
|
+
if (token) config2.headers["Authorization"] = `Bearer ${token}`;
|
|
3148
|
+
return config2;
|
|
3149
|
+
}, Promise.reject);
|
|
2860
3150
|
instance.interceptors.response.use(
|
|
2861
3151
|
(response) => {
|
|
2862
3152
|
return handleResponse(response);
|
|
@@ -2996,562 +3286,7 @@ var axiosClient = {
|
|
|
2996
3286
|
}
|
|
2997
3287
|
};
|
|
2998
3288
|
|
|
2999
|
-
// src/environment/EnvStore.ts
|
|
3000
|
-
function createEnvStore(store, localStorageUtil, sessionStorageUtil) {
|
|
3001
|
-
const getEnvState = () => store.getState().env;
|
|
3002
|
-
const setupEnvConfig = () => {
|
|
3003
|
-
const env2 = getEnvState();
|
|
3004
|
-
return {
|
|
3005
|
-
baseUrl: env2?.baseUrl,
|
|
3006
|
-
requests: env2?.requests,
|
|
3007
|
-
context: env2?.context,
|
|
3008
|
-
defaultCompany: env2?.defaultCompany,
|
|
3009
|
-
config: env2?.config,
|
|
3010
|
-
companies: env2?.companies || [],
|
|
3011
|
-
user: env2?.user,
|
|
3012
|
-
db: env2?.db,
|
|
3013
|
-
refreshTokenEndpoint: env2?.refreshTokenEndpoint
|
|
3014
|
-
};
|
|
3015
|
-
};
|
|
3016
|
-
const setupEnv = (envConfig) => {
|
|
3017
|
-
const dispatch = store.dispatch;
|
|
3018
|
-
const updatedEnv = {
|
|
3019
|
-
...envConfig,
|
|
3020
|
-
localStorageUtils: localStorageUtil,
|
|
3021
|
-
sessionStorageUtils: sessionStorageUtil
|
|
3022
|
-
};
|
|
3023
|
-
const requests = axiosClient.init(updatedEnv);
|
|
3024
|
-
dispatch(setEnv({ ...updatedEnv, requests }));
|
|
3025
|
-
return setupEnvConfig();
|
|
3026
|
-
};
|
|
3027
|
-
const setupUid = (uid) => {
|
|
3028
|
-
store.dispatch(setUid(uid));
|
|
3029
|
-
return setupEnvConfig();
|
|
3030
|
-
};
|
|
3031
|
-
const setupLang = (lang) => {
|
|
3032
|
-
store.dispatch(setLang(lang));
|
|
3033
|
-
return setupEnvConfig();
|
|
3034
|
-
};
|
|
3035
|
-
const setupAllowCompanies = (allowCompanies) => {
|
|
3036
|
-
store.dispatch(setAllowCompanies(allowCompanies));
|
|
3037
|
-
return setupEnvConfig();
|
|
3038
|
-
};
|
|
3039
|
-
const setupCompanies = (companies) => {
|
|
3040
|
-
store.dispatch(setCompanies(companies));
|
|
3041
|
-
return setupEnvConfig();
|
|
3042
|
-
};
|
|
3043
|
-
const setupDefaultCompany = (company) => {
|
|
3044
|
-
store.dispatch(setDefaultCompany(company));
|
|
3045
|
-
return setupEnvConfig();
|
|
3046
|
-
};
|
|
3047
|
-
const setUserInfo = (userInfo) => {
|
|
3048
|
-
store.dispatch(setUser(userInfo));
|
|
3049
|
-
return setupEnvConfig();
|
|
3050
|
-
};
|
|
3051
|
-
return {
|
|
3052
|
-
getEnvConfig: setupEnvConfig,
|
|
3053
|
-
setupEnv,
|
|
3054
|
-
setUid: setupUid,
|
|
3055
|
-
setLang: setupLang,
|
|
3056
|
-
setAllowCompanies: setupAllowCompanies,
|
|
3057
|
-
setCompanies: setupCompanies,
|
|
3058
|
-
setDefaultCompany: setupDefaultCompany,
|
|
3059
|
-
setUserInfo
|
|
3060
|
-
};
|
|
3061
|
-
}
|
|
3062
|
-
var env = null;
|
|
3063
|
-
function getEnv() {
|
|
3064
|
-
if (!env) {
|
|
3065
|
-
env = createEnvStore(envStore, localStorageUtils(), sessionStorageUtils());
|
|
3066
|
-
}
|
|
3067
|
-
return env;
|
|
3068
|
-
}
|
|
3069
|
-
|
|
3070
|
-
// src/services/view-service/index.ts
|
|
3071
|
-
var ViewService = {
|
|
3072
|
-
async getView({
|
|
3073
|
-
model,
|
|
3074
|
-
views,
|
|
3075
|
-
context = {},
|
|
3076
|
-
options = {},
|
|
3077
|
-
aid
|
|
3078
|
-
}) {
|
|
3079
|
-
const env2 = getEnv();
|
|
3080
|
-
const defaultOptions = {
|
|
3081
|
-
load_filters: true,
|
|
3082
|
-
toolbar: true,
|
|
3083
|
-
action_id: aid
|
|
3084
|
-
};
|
|
3085
|
-
const jsonDataView = {
|
|
3086
|
-
model,
|
|
3087
|
-
method: "get_fields_view_v2" /* GET_FIELD_VIEW */,
|
|
3088
|
-
kwargs: {
|
|
3089
|
-
views,
|
|
3090
|
-
options: { ...options, ...defaultOptions }
|
|
3091
|
-
},
|
|
3092
|
-
with_context: context
|
|
3093
|
-
};
|
|
3094
|
-
return env2?.requests?.post("/call" /* CALL_PATH */, jsonDataView, {
|
|
3095
|
-
headers: {
|
|
3096
|
-
"Content-Type": "application/json"
|
|
3097
|
-
}
|
|
3098
|
-
});
|
|
3099
|
-
},
|
|
3100
|
-
async getMenu(context) {
|
|
3101
|
-
const env2 = getEnv();
|
|
3102
|
-
const jsonData = {
|
|
3103
|
-
model: "ir.ui.menu" /* MENU */,
|
|
3104
|
-
method: "web_search_read" /* WEB_SEARCH_READ */,
|
|
3105
|
-
ids: [],
|
|
3106
|
-
with_context: context,
|
|
3107
|
-
kwargs: {
|
|
3108
|
-
specification: {
|
|
3109
|
-
active: {},
|
|
3110
|
-
name: {},
|
|
3111
|
-
is_display: {},
|
|
3112
|
-
sequence: {},
|
|
3113
|
-
complete_name: {},
|
|
3114
|
-
action: {
|
|
3115
|
-
fields: {
|
|
3116
|
-
display_name: {},
|
|
3117
|
-
type: {},
|
|
3118
|
-
binding_view_types: {}
|
|
3119
|
-
// res_model: {},
|
|
3120
|
-
}
|
|
3121
|
-
},
|
|
3122
|
-
url_icon: {},
|
|
3123
|
-
web_icon: {},
|
|
3124
|
-
web_icon_data: {},
|
|
3125
|
-
groups_id: {
|
|
3126
|
-
fields: {
|
|
3127
|
-
full_name: {}
|
|
3128
|
-
},
|
|
3129
|
-
limit: 40,
|
|
3130
|
-
order: ""
|
|
3131
|
-
},
|
|
3132
|
-
display_name: {},
|
|
3133
|
-
child_id: {
|
|
3134
|
-
fields: {
|
|
3135
|
-
active: {},
|
|
3136
|
-
name: {},
|
|
3137
|
-
is_display: {},
|
|
3138
|
-
sequence: {},
|
|
3139
|
-
complete_name: {},
|
|
3140
|
-
action: {
|
|
3141
|
-
fields: {
|
|
3142
|
-
display_name: {},
|
|
3143
|
-
type: {},
|
|
3144
|
-
binding_view_types: {}
|
|
3145
|
-
// res_model: {},
|
|
3146
|
-
}
|
|
3147
|
-
},
|
|
3148
|
-
url_icon: {},
|
|
3149
|
-
web_icon: {},
|
|
3150
|
-
web_icon_data: {},
|
|
3151
|
-
groups_id: {
|
|
3152
|
-
fields: {
|
|
3153
|
-
full_name: {}
|
|
3154
|
-
},
|
|
3155
|
-
limit: 40,
|
|
3156
|
-
order: ""
|
|
3157
|
-
},
|
|
3158
|
-
display_name: {},
|
|
3159
|
-
child_id: {
|
|
3160
|
-
fields: {
|
|
3161
|
-
active: {},
|
|
3162
|
-
name: {},
|
|
3163
|
-
is_display: {},
|
|
3164
|
-
sequence: {},
|
|
3165
|
-
complete_name: {},
|
|
3166
|
-
action: {
|
|
3167
|
-
fields: {
|
|
3168
|
-
display_name: {},
|
|
3169
|
-
type: {},
|
|
3170
|
-
binding_view_types: {}
|
|
3171
|
-
// res_model: {},
|
|
3172
|
-
}
|
|
3173
|
-
},
|
|
3174
|
-
url_icon: {},
|
|
3175
|
-
web_icon: {},
|
|
3176
|
-
web_icon_data: {},
|
|
3177
|
-
groups_id: {
|
|
3178
|
-
fields: {
|
|
3179
|
-
full_name: {}
|
|
3180
|
-
},
|
|
3181
|
-
limit: 40,
|
|
3182
|
-
order: ""
|
|
3183
|
-
},
|
|
3184
|
-
display_name: {},
|
|
3185
|
-
child_id: {
|
|
3186
|
-
fields: {
|
|
3187
|
-
active: {},
|
|
3188
|
-
name: {},
|
|
3189
|
-
is_display: {},
|
|
3190
|
-
sequence: {},
|
|
3191
|
-
complete_name: {},
|
|
3192
|
-
action: {
|
|
3193
|
-
fields: {
|
|
3194
|
-
display_name: {},
|
|
3195
|
-
type: {},
|
|
3196
|
-
binding_view_types: {}
|
|
3197
|
-
// res_model: {},
|
|
3198
|
-
}
|
|
3199
|
-
},
|
|
3200
|
-
url_icon: {},
|
|
3201
|
-
web_icon: {},
|
|
3202
|
-
web_icon_data: {},
|
|
3203
|
-
groups_id: {
|
|
3204
|
-
fields: {
|
|
3205
|
-
full_name: {}
|
|
3206
|
-
},
|
|
3207
|
-
limit: 40,
|
|
3208
|
-
order: ""
|
|
3209
|
-
},
|
|
3210
|
-
display_name: {},
|
|
3211
|
-
child_id: {
|
|
3212
|
-
fields: {},
|
|
3213
|
-
limit: 40,
|
|
3214
|
-
order: ""
|
|
3215
|
-
}
|
|
3216
|
-
},
|
|
3217
|
-
limit: 40,
|
|
3218
|
-
order: ""
|
|
3219
|
-
}
|
|
3220
|
-
},
|
|
3221
|
-
limit: 40,
|
|
3222
|
-
order: ""
|
|
3223
|
-
}
|
|
3224
|
-
},
|
|
3225
|
-
limit: 40,
|
|
3226
|
-
order: ""
|
|
3227
|
-
}
|
|
3228
|
-
},
|
|
3229
|
-
domain: [
|
|
3230
|
-
"&",
|
|
3231
|
-
["is_display", "=", true],
|
|
3232
|
-
"&",
|
|
3233
|
-
["active", "=", true],
|
|
3234
|
-
["parent_id", "=", false]
|
|
3235
|
-
]
|
|
3236
|
-
}
|
|
3237
|
-
};
|
|
3238
|
-
return env2?.requests?.post("/call" /* CALL_PATH */, jsonData, {
|
|
3239
|
-
headers: {
|
|
3240
|
-
"Content-Type": "application/json"
|
|
3241
|
-
}
|
|
3242
|
-
});
|
|
3243
|
-
},
|
|
3244
|
-
async getActionDetail(aid, context) {
|
|
3245
|
-
const env2 = getEnv();
|
|
3246
|
-
const jsonData = {
|
|
3247
|
-
model: "ir.actions.act_window" /* WINDOW_ACTION */,
|
|
3248
|
-
method: "web_read" /* WEB_READ */,
|
|
3249
|
-
ids: [aid],
|
|
3250
|
-
with_context: context,
|
|
3251
|
-
kwargs: {
|
|
3252
|
-
specification: {
|
|
3253
|
-
id: {},
|
|
3254
|
-
name: {},
|
|
3255
|
-
res_model: {},
|
|
3256
|
-
views: {},
|
|
3257
|
-
view_mode: {},
|
|
3258
|
-
mobile_view_mode: {},
|
|
3259
|
-
domain: {},
|
|
3260
|
-
context: {},
|
|
3261
|
-
groups_id: {},
|
|
3262
|
-
search_view_id: {}
|
|
3263
|
-
}
|
|
3264
|
-
}
|
|
3265
|
-
};
|
|
3266
|
-
return env2?.requests?.post("/call" /* CALL_PATH */, jsonData, {
|
|
3267
|
-
headers: {
|
|
3268
|
-
"Content-Type": "application/json"
|
|
3269
|
-
}
|
|
3270
|
-
});
|
|
3271
|
-
},
|
|
3272
|
-
async getResequence({
|
|
3273
|
-
model,
|
|
3274
|
-
ids,
|
|
3275
|
-
context,
|
|
3276
|
-
offset
|
|
3277
|
-
}) {
|
|
3278
|
-
const env2 = getEnv();
|
|
3279
|
-
const jsonData = {
|
|
3280
|
-
model,
|
|
3281
|
-
with_context: context,
|
|
3282
|
-
ids,
|
|
3283
|
-
field: "sequence",
|
|
3284
|
-
...offset > 0 ? { offset } : {}
|
|
3285
|
-
};
|
|
3286
|
-
return env2?.requests.post("/web/dataset/resequence", jsonData, {
|
|
3287
|
-
headers: {
|
|
3288
|
-
"Content-Type": "application/json"
|
|
3289
|
-
}
|
|
3290
|
-
});
|
|
3291
|
-
},
|
|
3292
|
-
async getSelectionItem({ data }) {
|
|
3293
|
-
const env2 = getEnv();
|
|
3294
|
-
const jsonData = {
|
|
3295
|
-
model: data.model,
|
|
3296
|
-
ids: [],
|
|
3297
|
-
method: "get_data_select",
|
|
3298
|
-
with_context: data.context,
|
|
3299
|
-
kwargs: {
|
|
3300
|
-
count_limit: 10001,
|
|
3301
|
-
domain: data.domain ? data.domain : [],
|
|
3302
|
-
offset: 0,
|
|
3303
|
-
order: "",
|
|
3304
|
-
specification: data?.specification ?? {
|
|
3305
|
-
id: {},
|
|
3306
|
-
name: {},
|
|
3307
|
-
display_name: {}
|
|
3308
|
-
}
|
|
3309
|
-
}
|
|
3310
|
-
};
|
|
3311
|
-
return env2?.requests.post("/call" /* CALL_PATH */, jsonData, {
|
|
3312
|
-
headers: {
|
|
3313
|
-
"Content-Type": "application/json"
|
|
3314
|
-
}
|
|
3315
|
-
});
|
|
3316
|
-
},
|
|
3317
|
-
async loadMessages() {
|
|
3318
|
-
const env2 = getEnv();
|
|
3319
|
-
return env2.requests.post(
|
|
3320
|
-
"/load_message_failures" /* LOAD_MESSAGE */,
|
|
3321
|
-
{},
|
|
3322
|
-
{
|
|
3323
|
-
headers: {
|
|
3324
|
-
"Content-Type": "application/json"
|
|
3325
|
-
}
|
|
3326
|
-
}
|
|
3327
|
-
);
|
|
3328
|
-
},
|
|
3329
|
-
async getVersion() {
|
|
3330
|
-
const { env: env2 } = useEnv();
|
|
3331
|
-
console.log("env?.requests", env2, env2?.requests);
|
|
3332
|
-
return env2?.requests?.get("", {
|
|
3333
|
-
headers: {
|
|
3334
|
-
"Content-Type": "application/json"
|
|
3335
|
-
}
|
|
3336
|
-
});
|
|
3337
|
-
},
|
|
3338
|
-
async get2FAMethods({
|
|
3339
|
-
method,
|
|
3340
|
-
with_context
|
|
3341
|
-
}) {
|
|
3342
|
-
const env2 = getEnv();
|
|
3343
|
-
const jsonData = {
|
|
3344
|
-
method,
|
|
3345
|
-
with_context
|
|
3346
|
-
};
|
|
3347
|
-
return env2?.requests.post("/call" /* CALL_PATH */, jsonData, {
|
|
3348
|
-
headers: {
|
|
3349
|
-
"Content-Type": "application/json"
|
|
3350
|
-
}
|
|
3351
|
-
});
|
|
3352
|
-
},
|
|
3353
|
-
async verify2FA({
|
|
3354
|
-
method,
|
|
3355
|
-
with_context,
|
|
3356
|
-
code,
|
|
3357
|
-
device,
|
|
3358
|
-
location
|
|
3359
|
-
}) {
|
|
3360
|
-
const env2 = getEnv();
|
|
3361
|
-
const jsonData = {
|
|
3362
|
-
method,
|
|
3363
|
-
kwargs: {
|
|
3364
|
-
vals: {
|
|
3365
|
-
code,
|
|
3366
|
-
device,
|
|
3367
|
-
location
|
|
3368
|
-
}
|
|
3369
|
-
},
|
|
3370
|
-
with_context
|
|
3371
|
-
};
|
|
3372
|
-
return env2?.requests.post("/call" /* CALL_PATH */, jsonData, {
|
|
3373
|
-
headers: {
|
|
3374
|
-
"Content-Type": "application/json"
|
|
3375
|
-
},
|
|
3376
|
-
withCredentials: true
|
|
3377
|
-
});
|
|
3378
|
-
},
|
|
3379
|
-
async signInSSO({
|
|
3380
|
-
redirect_uri,
|
|
3381
|
-
state,
|
|
3382
|
-
client_id,
|
|
3383
|
-
response_type,
|
|
3384
|
-
path
|
|
3385
|
-
}) {
|
|
3386
|
-
const env2 = getEnv();
|
|
3387
|
-
const params = new URLSearchParams({
|
|
3388
|
-
response_type,
|
|
3389
|
-
client_id,
|
|
3390
|
-
redirect_uri,
|
|
3391
|
-
state
|
|
3392
|
-
});
|
|
3393
|
-
const url = `${path}?${params.toString()}`;
|
|
3394
|
-
return env2?.requests.get(url, {
|
|
3395
|
-
headers: {
|
|
3396
|
-
"Content-Type": "application/json"
|
|
3397
|
-
},
|
|
3398
|
-
withCredentials: true
|
|
3399
|
-
});
|
|
3400
|
-
},
|
|
3401
|
-
async grantAccess({
|
|
3402
|
-
redirect_uri,
|
|
3403
|
-
state,
|
|
3404
|
-
client_id,
|
|
3405
|
-
scopes
|
|
3406
|
-
}) {
|
|
3407
|
-
const env2 = getEnv();
|
|
3408
|
-
const jsonData = {
|
|
3409
|
-
redirect_uri,
|
|
3410
|
-
state,
|
|
3411
|
-
client_id,
|
|
3412
|
-
scopes
|
|
3413
|
-
};
|
|
3414
|
-
return env2?.requests.post("/grant-access" /* GRANT_ACCESS */, jsonData, {
|
|
3415
|
-
headers: {
|
|
3416
|
-
"Content-Type": "application/json"
|
|
3417
|
-
},
|
|
3418
|
-
withCredentials: true
|
|
3419
|
-
});
|
|
3420
|
-
},
|
|
3421
|
-
async getFieldsViewSecurity({
|
|
3422
|
-
method,
|
|
3423
|
-
token,
|
|
3424
|
-
views
|
|
3425
|
-
}) {
|
|
3426
|
-
const env2 = getEnv();
|
|
3427
|
-
const jsonData = {
|
|
3428
|
-
method,
|
|
3429
|
-
kwargs: {
|
|
3430
|
-
views
|
|
3431
|
-
},
|
|
3432
|
-
with_context: {
|
|
3433
|
-
token
|
|
3434
|
-
}
|
|
3435
|
-
};
|
|
3436
|
-
return env2?.requests.post("/call" /* CALL_PATH */, jsonData, {
|
|
3437
|
-
headers: {
|
|
3438
|
-
"Content-Type": "application/json"
|
|
3439
|
-
}
|
|
3440
|
-
});
|
|
3441
|
-
},
|
|
3442
|
-
async settingsWebRead2fa({
|
|
3443
|
-
method,
|
|
3444
|
-
model,
|
|
3445
|
-
kwargs,
|
|
3446
|
-
token
|
|
3447
|
-
}) {
|
|
3448
|
-
const env2 = getEnv();
|
|
3449
|
-
const jsonData = {
|
|
3450
|
-
method,
|
|
3451
|
-
model,
|
|
3452
|
-
kwargs,
|
|
3453
|
-
with_context: {
|
|
3454
|
-
token
|
|
3455
|
-
}
|
|
3456
|
-
};
|
|
3457
|
-
return env2?.requests.post("/call" /* CALL_PATH */, jsonData, {
|
|
3458
|
-
headers: {
|
|
3459
|
-
"Content-Type": "application/json"
|
|
3460
|
-
}
|
|
3461
|
-
});
|
|
3462
|
-
},
|
|
3463
|
-
async requestSetupTotp({ method, token }) {
|
|
3464
|
-
const env2 = getEnv();
|
|
3465
|
-
const jsonData = {
|
|
3466
|
-
method,
|
|
3467
|
-
with_context: {
|
|
3468
|
-
token
|
|
3469
|
-
}
|
|
3470
|
-
};
|
|
3471
|
-
return env2?.requests.post("/call" /* CALL_PATH */, jsonData, {
|
|
3472
|
-
headers: {
|
|
3473
|
-
"Content-Type": "application/json"
|
|
3474
|
-
}
|
|
3475
|
-
});
|
|
3476
|
-
},
|
|
3477
|
-
async verifyTotp({
|
|
3478
|
-
method,
|
|
3479
|
-
action_token,
|
|
3480
|
-
code
|
|
3481
|
-
}) {
|
|
3482
|
-
const env2 = getEnv();
|
|
3483
|
-
const jsonData = {
|
|
3484
|
-
method,
|
|
3485
|
-
kwargs: {
|
|
3486
|
-
vals: {
|
|
3487
|
-
code
|
|
3488
|
-
}
|
|
3489
|
-
},
|
|
3490
|
-
with_context: {
|
|
3491
|
-
action_token
|
|
3492
|
-
}
|
|
3493
|
-
};
|
|
3494
|
-
return env2?.requests.post("/call" /* CALL_PATH */, jsonData, {
|
|
3495
|
-
headers: {
|
|
3496
|
-
"Content-Type": "application/json"
|
|
3497
|
-
}
|
|
3498
|
-
});
|
|
3499
|
-
},
|
|
3500
|
-
async removeTotpSetUp({ method, token }) {
|
|
3501
|
-
const env2 = getEnv();
|
|
3502
|
-
const jsonData = {
|
|
3503
|
-
method,
|
|
3504
|
-
with_context: {
|
|
3505
|
-
token
|
|
3506
|
-
}
|
|
3507
|
-
};
|
|
3508
|
-
return env2?.requests.post("/call" /* CALL_PATH */, jsonData, {
|
|
3509
|
-
headers: {
|
|
3510
|
-
"Content-Type": "application/json"
|
|
3511
|
-
}
|
|
3512
|
-
});
|
|
3513
|
-
}
|
|
3514
|
-
};
|
|
3515
|
-
var view_service_default = ViewService;
|
|
3516
|
-
|
|
3517
|
-
// src/provider/version-gate-provider.tsx
|
|
3518
|
-
import { Fragment, jsx as jsx4 } from "react/jsx-runtime";
|
|
3519
|
-
var VersionGate = ({ children }) => {
|
|
3520
|
-
const queryClient = useQueryClient();
|
|
3521
|
-
const [ready, setReady] = useState2(false);
|
|
3522
|
-
useEffect2(() => {
|
|
3523
|
-
const clearVersion = () => {
|
|
3524
|
-
queryClient.clear();
|
|
3525
|
-
localStorage.removeItem("__api_version__");
|
|
3526
|
-
};
|
|
3527
|
-
const validateVersion = async () => {
|
|
3528
|
-
const serverVersion = await view_service_default.getVersion();
|
|
3529
|
-
console.log("serverVersion", serverVersion);
|
|
3530
|
-
const cached = localStorage.getItem("__api_version__");
|
|
3531
|
-
if (cached !== serverVersion?.api_version) {
|
|
3532
|
-
clearVersion();
|
|
3533
|
-
localStorage.setItem("__api_version__", serverVersion?.api_version);
|
|
3534
|
-
} else {
|
|
3535
|
-
console.log("Api version:", serverVersion?.api_version);
|
|
3536
|
-
}
|
|
3537
|
-
setReady(true);
|
|
3538
|
-
};
|
|
3539
|
-
validateVersion();
|
|
3540
|
-
if (typeof window !== "undefined") {
|
|
3541
|
-
const onKey = (e) => {
|
|
3542
|
-
const key = e.key.toLowerCase();
|
|
3543
|
-
const isHardRefresh = (key === "f5" || key === "r") && e.ctrlKey && (key !== "r" || e.shiftKey) || key === "r" && e.metaKey && e.shiftKey || key === "r" && e.metaKey && e.altKey;
|
|
3544
|
-
if (isHardRefresh) clearVersion();
|
|
3545
|
-
};
|
|
3546
|
-
window.addEventListener("keydown", onKey);
|
|
3547
|
-
return () => window.removeEventListener("keydown", onKey);
|
|
3548
|
-
}
|
|
3549
|
-
}, [queryClient]);
|
|
3550
|
-
return ready ? /* @__PURE__ */ jsx4(Fragment, { children }) : null;
|
|
3551
|
-
};
|
|
3552
|
-
|
|
3553
3289
|
// src/provider/env-provider.tsx
|
|
3554
|
-
import { createContext, useContext, useState as useState3, useCallback } from "react";
|
|
3555
3290
|
import { jsx as jsx5 } from "react/jsx-runtime";
|
|
3556
3291
|
var initialEnvState = {
|
|
3557
3292
|
baseUrl: "",
|
|
@@ -3579,15 +3314,15 @@ function EnvProvider({
|
|
|
3579
3314
|
localStorageUtils: localStorageUtil = localStorageUtils(),
|
|
3580
3315
|
sessionStorageUtils: sessionStorageUtil = sessionStorageUtils()
|
|
3581
3316
|
}) {
|
|
3582
|
-
const [
|
|
3317
|
+
const [env, setEnvState] = useState3({
|
|
3583
3318
|
...initialEnvState,
|
|
3584
3319
|
localStorageUtils: localStorageUtil,
|
|
3585
3320
|
sessionStorageUtils: sessionStorageUtil
|
|
3586
3321
|
});
|
|
3587
|
-
const setupEnv =
|
|
3322
|
+
const setupEnv = useCallback2(
|
|
3588
3323
|
(envConfig) => {
|
|
3589
3324
|
const updatedEnv = {
|
|
3590
|
-
...
|
|
3325
|
+
...env,
|
|
3591
3326
|
...envConfig,
|
|
3592
3327
|
localStorageUtils: localStorageUtil,
|
|
3593
3328
|
sessionStorageUtils: sessionStorageUtil
|
|
@@ -3596,33 +3331,33 @@ function EnvProvider({
|
|
|
3596
3331
|
setEnvState({ ...updatedEnv, requests });
|
|
3597
3332
|
return updatedEnv;
|
|
3598
3333
|
},
|
|
3599
|
-
[
|
|
3334
|
+
[env, localStorageUtil, sessionStorageUtil]
|
|
3600
3335
|
);
|
|
3601
|
-
const setUid2 =
|
|
3336
|
+
const setUid2 = useCallback2((uid) => {
|
|
3602
3337
|
setEnvState((prev) => ({
|
|
3603
3338
|
...prev,
|
|
3604
3339
|
context: { ...prev.context, uid }
|
|
3605
3340
|
}));
|
|
3606
3341
|
}, []);
|
|
3607
|
-
const setLang2 =
|
|
3342
|
+
const setLang2 = useCallback2((lang) => {
|
|
3608
3343
|
setEnvState((prev) => ({
|
|
3609
3344
|
...prev,
|
|
3610
3345
|
context: { ...prev.context, lang }
|
|
3611
3346
|
}));
|
|
3612
3347
|
}, []);
|
|
3613
|
-
const setAllowCompanies2 =
|
|
3348
|
+
const setAllowCompanies2 = useCallback2((allowed_company_ids) => {
|
|
3614
3349
|
setEnvState((prev) => ({
|
|
3615
3350
|
...prev,
|
|
3616
3351
|
context: { ...prev.context, allowed_company_ids }
|
|
3617
3352
|
}));
|
|
3618
3353
|
}, []);
|
|
3619
|
-
const setCompanies2 =
|
|
3354
|
+
const setCompanies2 = useCallback2((companies) => {
|
|
3620
3355
|
setEnvState((prev) => ({
|
|
3621
3356
|
...prev,
|
|
3622
3357
|
companies
|
|
3623
3358
|
}));
|
|
3624
3359
|
}, []);
|
|
3625
|
-
const setDefaultCompany2 =
|
|
3360
|
+
const setDefaultCompany2 = useCallback2(
|
|
3626
3361
|
(defaultCompany) => {
|
|
3627
3362
|
setEnvState((prev) => ({
|
|
3628
3363
|
...prev,
|
|
@@ -3631,19 +3366,19 @@ function EnvProvider({
|
|
|
3631
3366
|
},
|
|
3632
3367
|
[]
|
|
3633
3368
|
);
|
|
3634
|
-
const setUserInfo =
|
|
3369
|
+
const setUserInfo = useCallback2((user) => {
|
|
3635
3370
|
setEnvState((prev) => ({
|
|
3636
3371
|
...prev,
|
|
3637
3372
|
user
|
|
3638
3373
|
}));
|
|
3639
3374
|
}, []);
|
|
3640
|
-
const setConfig2 =
|
|
3375
|
+
const setConfig2 = useCallback2((config) => {
|
|
3641
3376
|
setEnvState((prev) => ({
|
|
3642
3377
|
...prev,
|
|
3643
3378
|
config
|
|
3644
3379
|
}));
|
|
3645
3380
|
}, []);
|
|
3646
|
-
const setEnvFile2 =
|
|
3381
|
+
const setEnvFile2 = useCallback2((envFile) => {
|
|
3647
3382
|
setEnvState((prev) => ({
|
|
3648
3383
|
...prev,
|
|
3649
3384
|
envFile
|
|
@@ -3653,7 +3388,7 @@ function EnvProvider({
|
|
|
3653
3388
|
EnvContext.Provider,
|
|
3654
3389
|
{
|
|
3655
3390
|
value: {
|
|
3656
|
-
env
|
|
3391
|
+
env,
|
|
3657
3392
|
setupEnv,
|
|
3658
3393
|
setUid: setUid2,
|
|
3659
3394
|
setLang: setLang2,
|