@fctc/interface-logic 1.8.6 → 1.8.7
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/hooks.js +133 -161
- package/dist/hooks.mjs +1 -29
- package/dist/provider.js +307 -571
- package/dist/provider.mjs +306 -570
- package/dist/services.js +1 -29
- package/dist/services.mjs +1 -29
- package/package.json +1 -1
package/dist/provider.mjs
CHANGED
|
@@ -646,9 +646,300 @@ var MainProvider = ({ children }) => {
|
|
|
646
646
|
};
|
|
647
647
|
|
|
648
648
|
// src/provider/version-gate-provider.tsx
|
|
649
|
-
import { useEffect
|
|
649
|
+
import { useEffect, useState } from "react";
|
|
650
650
|
import { useQueryClient } from "@tanstack/react-query";
|
|
651
651
|
|
|
652
|
+
// src/services/view-service/backup.ts
|
|
653
|
+
import { useCallback } from "react";
|
|
654
|
+
function useViewService() {
|
|
655
|
+
const { env } = useEnv();
|
|
656
|
+
const getView = useCallback(
|
|
657
|
+
async ({ model, views, context = {}, options = {}, aid }) => {
|
|
658
|
+
const defaultOptions = {
|
|
659
|
+
load_filters: true,
|
|
660
|
+
toolbar: true,
|
|
661
|
+
action_id: aid
|
|
662
|
+
};
|
|
663
|
+
const jsonDataView = {
|
|
664
|
+
model,
|
|
665
|
+
method: "get_fields_view_v2" /* GET_FIELD_VIEW */,
|
|
666
|
+
kwargs: {
|
|
667
|
+
views,
|
|
668
|
+
options: { ...options, ...defaultOptions }
|
|
669
|
+
},
|
|
670
|
+
with_context: context
|
|
671
|
+
};
|
|
672
|
+
return env?.requests?.post("/call" /* CALL_PATH */, jsonDataView, {
|
|
673
|
+
headers: {
|
|
674
|
+
"Content-Type": "application/json"
|
|
675
|
+
}
|
|
676
|
+
});
|
|
677
|
+
},
|
|
678
|
+
[env]
|
|
679
|
+
);
|
|
680
|
+
const getMenu = useCallback(
|
|
681
|
+
async (context) => {
|
|
682
|
+
const jsonData = {
|
|
683
|
+
model: "ir.ui.menu" /* MENU */,
|
|
684
|
+
method: "web_search_read" /* WEB_SEARCH_READ */,
|
|
685
|
+
ids: [],
|
|
686
|
+
with_context: context,
|
|
687
|
+
kwargs: {
|
|
688
|
+
specification: {
|
|
689
|
+
active: {},
|
|
690
|
+
name: {},
|
|
691
|
+
is_display: {},
|
|
692
|
+
sequence: {},
|
|
693
|
+
complete_name: {},
|
|
694
|
+
action: {
|
|
695
|
+
fields: {
|
|
696
|
+
display_name: {},
|
|
697
|
+
type: {},
|
|
698
|
+
binding_view_types: {}
|
|
699
|
+
}
|
|
700
|
+
},
|
|
701
|
+
url_icon: {},
|
|
702
|
+
web_icon: {},
|
|
703
|
+
web_icon_data: {},
|
|
704
|
+
groups_id: {
|
|
705
|
+
fields: {
|
|
706
|
+
full_name: {}
|
|
707
|
+
},
|
|
708
|
+
limit: 40,
|
|
709
|
+
order: ""
|
|
710
|
+
},
|
|
711
|
+
display_name: {},
|
|
712
|
+
child_id: {
|
|
713
|
+
fields: {
|
|
714
|
+
active: {},
|
|
715
|
+
name: {},
|
|
716
|
+
is_display: {},
|
|
717
|
+
sequence: {},
|
|
718
|
+
complete_name: {},
|
|
719
|
+
action: {
|
|
720
|
+
fields: {
|
|
721
|
+
display_name: {},
|
|
722
|
+
type: {},
|
|
723
|
+
binding_view_types: {}
|
|
724
|
+
}
|
|
725
|
+
},
|
|
726
|
+
url_icon: {},
|
|
727
|
+
web_icon: {},
|
|
728
|
+
web_icon_data: {},
|
|
729
|
+
groups_id: {
|
|
730
|
+
fields: {
|
|
731
|
+
full_name: {}
|
|
732
|
+
},
|
|
733
|
+
limit: 40,
|
|
734
|
+
order: ""
|
|
735
|
+
},
|
|
736
|
+
display_name: {},
|
|
737
|
+
child_id: {
|
|
738
|
+
fields: {
|
|
739
|
+
active: {},
|
|
740
|
+
name: {},
|
|
741
|
+
is_display: {},
|
|
742
|
+
sequence: {},
|
|
743
|
+
complete_name: {},
|
|
744
|
+
action: {
|
|
745
|
+
fields: {
|
|
746
|
+
display_name: {},
|
|
747
|
+
type: {},
|
|
748
|
+
binding_view_types: {}
|
|
749
|
+
}
|
|
750
|
+
},
|
|
751
|
+
url_icon: {},
|
|
752
|
+
web_icon: {},
|
|
753
|
+
web_icon_data: {},
|
|
754
|
+
groups_id: {
|
|
755
|
+
fields: {
|
|
756
|
+
full_name: {}
|
|
757
|
+
},
|
|
758
|
+
limit: 40,
|
|
759
|
+
order: ""
|
|
760
|
+
},
|
|
761
|
+
display_name: {},
|
|
762
|
+
child_id: {
|
|
763
|
+
fields: {},
|
|
764
|
+
limit: 40,
|
|
765
|
+
order: ""
|
|
766
|
+
}
|
|
767
|
+
},
|
|
768
|
+
limit: 40,
|
|
769
|
+
order: ""
|
|
770
|
+
}
|
|
771
|
+
},
|
|
772
|
+
limit: 40,
|
|
773
|
+
order: ""
|
|
774
|
+
}
|
|
775
|
+
},
|
|
776
|
+
domain: [
|
|
777
|
+
"&",
|
|
778
|
+
["is_display", "=", true],
|
|
779
|
+
"&",
|
|
780
|
+
["active", "=", true],
|
|
781
|
+
["parent_id", "=", false]
|
|
782
|
+
]
|
|
783
|
+
}
|
|
784
|
+
};
|
|
785
|
+
return env?.requests?.post("/call" /* CALL_PATH */, jsonData, {
|
|
786
|
+
headers: {
|
|
787
|
+
"Content-Type": "application/json"
|
|
788
|
+
}
|
|
789
|
+
});
|
|
790
|
+
},
|
|
791
|
+
[env]
|
|
792
|
+
);
|
|
793
|
+
const getActionDetail = useCallback(
|
|
794
|
+
async (aid, context) => {
|
|
795
|
+
const jsonData = {
|
|
796
|
+
model: "ir.actions.act_window" /* WINDOW_ACTION */,
|
|
797
|
+
method: "web_read" /* WEB_READ */,
|
|
798
|
+
ids: [aid],
|
|
799
|
+
with_context: context,
|
|
800
|
+
kwargs: {
|
|
801
|
+
specification: {
|
|
802
|
+
id: {},
|
|
803
|
+
name: {},
|
|
804
|
+
res_model: {},
|
|
805
|
+
views: {},
|
|
806
|
+
view_mode: {},
|
|
807
|
+
mobile_view_mode: {},
|
|
808
|
+
domain: {},
|
|
809
|
+
context: {},
|
|
810
|
+
groups_id: {},
|
|
811
|
+
search_view_id: {}
|
|
812
|
+
}
|
|
813
|
+
}
|
|
814
|
+
};
|
|
815
|
+
return env?.requests?.post("/call" /* CALL_PATH */, jsonData, {
|
|
816
|
+
headers: {
|
|
817
|
+
"Content-Type": "application/json"
|
|
818
|
+
}
|
|
819
|
+
});
|
|
820
|
+
},
|
|
821
|
+
[env]
|
|
822
|
+
);
|
|
823
|
+
const getResequence = useCallback(
|
|
824
|
+
async ({ model, ids, context, offset }) => {
|
|
825
|
+
const jsonData = {
|
|
826
|
+
model,
|
|
827
|
+
with_context: context,
|
|
828
|
+
ids,
|
|
829
|
+
field: "sequence",
|
|
830
|
+
...offset > 0 ? { offset } : {}
|
|
831
|
+
};
|
|
832
|
+
return env?.requests.post("/web/dataset/resequence", jsonData, {
|
|
833
|
+
headers: {
|
|
834
|
+
"Content-Type": "application/json"
|
|
835
|
+
}
|
|
836
|
+
});
|
|
837
|
+
},
|
|
838
|
+
[env]
|
|
839
|
+
);
|
|
840
|
+
const getSelectionItem = useCallback(
|
|
841
|
+
async ({ data }) => {
|
|
842
|
+
const jsonData = {
|
|
843
|
+
model: data.model,
|
|
844
|
+
ids: [],
|
|
845
|
+
method: "get_data_select",
|
|
846
|
+
with_context: data.context,
|
|
847
|
+
kwargs: {
|
|
848
|
+
count_limit: 10001,
|
|
849
|
+
domain: data.domain ? data.domain : [],
|
|
850
|
+
offset: 0,
|
|
851
|
+
order: "",
|
|
852
|
+
specification: data?.specification ?? {
|
|
853
|
+
id: {},
|
|
854
|
+
name: {},
|
|
855
|
+
display_name: {}
|
|
856
|
+
}
|
|
857
|
+
}
|
|
858
|
+
};
|
|
859
|
+
return env?.requests.post("/call" /* CALL_PATH */, jsonData, {
|
|
860
|
+
headers: {
|
|
861
|
+
"Content-Type": "application/json"
|
|
862
|
+
}
|
|
863
|
+
});
|
|
864
|
+
},
|
|
865
|
+
[env]
|
|
866
|
+
);
|
|
867
|
+
const loadMessages = useCallback(
|
|
868
|
+
async () => {
|
|
869
|
+
return env.requests.post(
|
|
870
|
+
"/load_message_failures" /* LOAD_MESSAGE */,
|
|
871
|
+
{},
|
|
872
|
+
{
|
|
873
|
+
headers: {
|
|
874
|
+
"Content-Type": "application/json"
|
|
875
|
+
}
|
|
876
|
+
}
|
|
877
|
+
);
|
|
878
|
+
},
|
|
879
|
+
[env]
|
|
880
|
+
);
|
|
881
|
+
const getVersion = useCallback(
|
|
882
|
+
async () => {
|
|
883
|
+
console.log("env?.requests", env, env?.requests);
|
|
884
|
+
return env?.requests?.get("", {
|
|
885
|
+
headers: {
|
|
886
|
+
"Content-Type": "application/json"
|
|
887
|
+
}
|
|
888
|
+
});
|
|
889
|
+
},
|
|
890
|
+
[env]
|
|
891
|
+
);
|
|
892
|
+
return {
|
|
893
|
+
getView,
|
|
894
|
+
getMenu,
|
|
895
|
+
getActionDetail,
|
|
896
|
+
getResequence,
|
|
897
|
+
getSelectionItem,
|
|
898
|
+
loadMessages,
|
|
899
|
+
getVersion
|
|
900
|
+
};
|
|
901
|
+
}
|
|
902
|
+
|
|
903
|
+
// src/provider/version-gate-provider.tsx
|
|
904
|
+
import { Fragment, jsx as jsx4 } from "react/jsx-runtime";
|
|
905
|
+
var VersionGate = ({ children }) => {
|
|
906
|
+
const queryClient = useQueryClient();
|
|
907
|
+
const [ready, setReady] = useState(false);
|
|
908
|
+
const { getVersion } = useViewService();
|
|
909
|
+
useEffect(() => {
|
|
910
|
+
const clearVersion = () => {
|
|
911
|
+
queryClient.clear();
|
|
912
|
+
localStorage.removeItem("__api_version__");
|
|
913
|
+
};
|
|
914
|
+
const validateVersion = async () => {
|
|
915
|
+
const serverVersion = await getVersion();
|
|
916
|
+
console.log("serverVersion", serverVersion);
|
|
917
|
+
const cached = localStorage.getItem("__api_version__");
|
|
918
|
+
if (cached !== serverVersion?.api_version) {
|
|
919
|
+
clearVersion();
|
|
920
|
+
localStorage.setItem("__api_version__", serverVersion?.api_version);
|
|
921
|
+
} else {
|
|
922
|
+
console.log("Api version:", serverVersion?.api_version);
|
|
923
|
+
}
|
|
924
|
+
setReady(true);
|
|
925
|
+
};
|
|
926
|
+
validateVersion();
|
|
927
|
+
if (typeof window !== "undefined") {
|
|
928
|
+
const onKey = (e) => {
|
|
929
|
+
const key = e.key.toLowerCase();
|
|
930
|
+
const isHardRefresh = (key === "f5" || key === "r") && e.ctrlKey && (key !== "r" || e.shiftKey) || key === "r" && e.metaKey && e.shiftKey || key === "r" && e.metaKey && e.altKey;
|
|
931
|
+
if (isHardRefresh) clearVersion();
|
|
932
|
+
};
|
|
933
|
+
window.addEventListener("keydown", onKey);
|
|
934
|
+
return () => window.removeEventListener("keydown", onKey);
|
|
935
|
+
}
|
|
936
|
+
}, [queryClient]);
|
|
937
|
+
return ready ? /* @__PURE__ */ jsx4(Fragment, { children }) : null;
|
|
938
|
+
};
|
|
939
|
+
|
|
940
|
+
// src/provider/env-provider.tsx
|
|
941
|
+
import { createContext, useContext, useState as useState3, useCallback as useCallback2 } from "react";
|
|
942
|
+
|
|
652
943
|
// src/configs/axios-client.ts
|
|
653
944
|
import axios from "axios";
|
|
654
945
|
|
|
@@ -2762,7 +3053,7 @@ function matchDomain(record, domain) {
|
|
|
2762
3053
|
}
|
|
2763
3054
|
|
|
2764
3055
|
// src/utils/function.ts
|
|
2765
|
-
import { useEffect, useState } from "react";
|
|
3056
|
+
import { useEffect as useEffect2, useState as useState2 } from "react";
|
|
2766
3057
|
var updateTokenParamInOriginalRequest = (originalRequest, newAccessToken) => {
|
|
2767
3058
|
if (!originalRequest.data) return originalRequest.data;
|
|
2768
3059
|
if (typeof originalRequest.data === "string") {
|
|
@@ -2996,562 +3287,7 @@ var axiosClient = {
|
|
|
2996
3287
|
}
|
|
2997
3288
|
};
|
|
2998
3289
|
|
|
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
3290
|
// src/provider/env-provider.tsx
|
|
3554
|
-
import { createContext, useContext, useState as useState3, useCallback } from "react";
|
|
3555
3291
|
import { jsx as jsx5 } from "react/jsx-runtime";
|
|
3556
3292
|
var initialEnvState = {
|
|
3557
3293
|
baseUrl: "",
|
|
@@ -3579,15 +3315,15 @@ function EnvProvider({
|
|
|
3579
3315
|
localStorageUtils: localStorageUtil = localStorageUtils(),
|
|
3580
3316
|
sessionStorageUtils: sessionStorageUtil = sessionStorageUtils()
|
|
3581
3317
|
}) {
|
|
3582
|
-
const [
|
|
3318
|
+
const [env, setEnvState] = useState3({
|
|
3583
3319
|
...initialEnvState,
|
|
3584
3320
|
localStorageUtils: localStorageUtil,
|
|
3585
3321
|
sessionStorageUtils: sessionStorageUtil
|
|
3586
3322
|
});
|
|
3587
|
-
const setupEnv =
|
|
3323
|
+
const setupEnv = useCallback2(
|
|
3588
3324
|
(envConfig) => {
|
|
3589
3325
|
const updatedEnv = {
|
|
3590
|
-
...
|
|
3326
|
+
...env,
|
|
3591
3327
|
...envConfig,
|
|
3592
3328
|
localStorageUtils: localStorageUtil,
|
|
3593
3329
|
sessionStorageUtils: sessionStorageUtil
|
|
@@ -3596,33 +3332,33 @@ function EnvProvider({
|
|
|
3596
3332
|
setEnvState({ ...updatedEnv, requests });
|
|
3597
3333
|
return updatedEnv;
|
|
3598
3334
|
},
|
|
3599
|
-
[
|
|
3335
|
+
[env, localStorageUtil, sessionStorageUtil]
|
|
3600
3336
|
);
|
|
3601
|
-
const setUid2 =
|
|
3337
|
+
const setUid2 = useCallback2((uid) => {
|
|
3602
3338
|
setEnvState((prev) => ({
|
|
3603
3339
|
...prev,
|
|
3604
3340
|
context: { ...prev.context, uid }
|
|
3605
3341
|
}));
|
|
3606
3342
|
}, []);
|
|
3607
|
-
const setLang2 =
|
|
3343
|
+
const setLang2 = useCallback2((lang) => {
|
|
3608
3344
|
setEnvState((prev) => ({
|
|
3609
3345
|
...prev,
|
|
3610
3346
|
context: { ...prev.context, lang }
|
|
3611
3347
|
}));
|
|
3612
3348
|
}, []);
|
|
3613
|
-
const setAllowCompanies2 =
|
|
3349
|
+
const setAllowCompanies2 = useCallback2((allowed_company_ids) => {
|
|
3614
3350
|
setEnvState((prev) => ({
|
|
3615
3351
|
...prev,
|
|
3616
3352
|
context: { ...prev.context, allowed_company_ids }
|
|
3617
3353
|
}));
|
|
3618
3354
|
}, []);
|
|
3619
|
-
const setCompanies2 =
|
|
3355
|
+
const setCompanies2 = useCallback2((companies) => {
|
|
3620
3356
|
setEnvState((prev) => ({
|
|
3621
3357
|
...prev,
|
|
3622
3358
|
companies
|
|
3623
3359
|
}));
|
|
3624
3360
|
}, []);
|
|
3625
|
-
const setDefaultCompany2 =
|
|
3361
|
+
const setDefaultCompany2 = useCallback2(
|
|
3626
3362
|
(defaultCompany) => {
|
|
3627
3363
|
setEnvState((prev) => ({
|
|
3628
3364
|
...prev,
|
|
@@ -3631,19 +3367,19 @@ function EnvProvider({
|
|
|
3631
3367
|
},
|
|
3632
3368
|
[]
|
|
3633
3369
|
);
|
|
3634
|
-
const setUserInfo =
|
|
3370
|
+
const setUserInfo = useCallback2((user) => {
|
|
3635
3371
|
setEnvState((prev) => ({
|
|
3636
3372
|
...prev,
|
|
3637
3373
|
user
|
|
3638
3374
|
}));
|
|
3639
3375
|
}, []);
|
|
3640
|
-
const setConfig2 =
|
|
3376
|
+
const setConfig2 = useCallback2((config) => {
|
|
3641
3377
|
setEnvState((prev) => ({
|
|
3642
3378
|
...prev,
|
|
3643
3379
|
config
|
|
3644
3380
|
}));
|
|
3645
3381
|
}, []);
|
|
3646
|
-
const setEnvFile2 =
|
|
3382
|
+
const setEnvFile2 = useCallback2((envFile) => {
|
|
3647
3383
|
setEnvState((prev) => ({
|
|
3648
3384
|
...prev,
|
|
3649
3385
|
envFile
|
|
@@ -3653,7 +3389,7 @@ function EnvProvider({
|
|
|
3653
3389
|
EnvContext.Provider,
|
|
3654
3390
|
{
|
|
3655
3391
|
value: {
|
|
3656
|
-
env
|
|
3392
|
+
env,
|
|
3657
3393
|
setupEnv,
|
|
3658
3394
|
setUid: setUid2,
|
|
3659
3395
|
setLang: setLang2,
|