@fctc/interface-logic 1.8.5 → 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/provider.js +307 -571
- package/dist/provider.mjs +306 -570
- package/package.json +1 -1
package/dist/provider.js
CHANGED
|
@@ -689,6 +689,297 @@ var MainProvider = ({ children }) => {
|
|
|
689
689
|
var import_react2 = require("react");
|
|
690
690
|
var import_react_query2 = require("@tanstack/react-query");
|
|
691
691
|
|
|
692
|
+
// src/services/view-service/backup.ts
|
|
693
|
+
var import_react = require("react");
|
|
694
|
+
function useViewService() {
|
|
695
|
+
const { env } = useEnv();
|
|
696
|
+
const getView = (0, import_react.useCallback)(
|
|
697
|
+
async ({ model, views, context = {}, options = {}, aid }) => {
|
|
698
|
+
const defaultOptions = {
|
|
699
|
+
load_filters: true,
|
|
700
|
+
toolbar: true,
|
|
701
|
+
action_id: aid
|
|
702
|
+
};
|
|
703
|
+
const jsonDataView = {
|
|
704
|
+
model,
|
|
705
|
+
method: "get_fields_view_v2" /* GET_FIELD_VIEW */,
|
|
706
|
+
kwargs: {
|
|
707
|
+
views,
|
|
708
|
+
options: { ...options, ...defaultOptions }
|
|
709
|
+
},
|
|
710
|
+
with_context: context
|
|
711
|
+
};
|
|
712
|
+
return env?.requests?.post("/call" /* CALL_PATH */, jsonDataView, {
|
|
713
|
+
headers: {
|
|
714
|
+
"Content-Type": "application/json"
|
|
715
|
+
}
|
|
716
|
+
});
|
|
717
|
+
},
|
|
718
|
+
[env]
|
|
719
|
+
);
|
|
720
|
+
const getMenu = (0, import_react.useCallback)(
|
|
721
|
+
async (context) => {
|
|
722
|
+
const jsonData = {
|
|
723
|
+
model: "ir.ui.menu" /* MENU */,
|
|
724
|
+
method: "web_search_read" /* WEB_SEARCH_READ */,
|
|
725
|
+
ids: [],
|
|
726
|
+
with_context: context,
|
|
727
|
+
kwargs: {
|
|
728
|
+
specification: {
|
|
729
|
+
active: {},
|
|
730
|
+
name: {},
|
|
731
|
+
is_display: {},
|
|
732
|
+
sequence: {},
|
|
733
|
+
complete_name: {},
|
|
734
|
+
action: {
|
|
735
|
+
fields: {
|
|
736
|
+
display_name: {},
|
|
737
|
+
type: {},
|
|
738
|
+
binding_view_types: {}
|
|
739
|
+
}
|
|
740
|
+
},
|
|
741
|
+
url_icon: {},
|
|
742
|
+
web_icon: {},
|
|
743
|
+
web_icon_data: {},
|
|
744
|
+
groups_id: {
|
|
745
|
+
fields: {
|
|
746
|
+
full_name: {}
|
|
747
|
+
},
|
|
748
|
+
limit: 40,
|
|
749
|
+
order: ""
|
|
750
|
+
},
|
|
751
|
+
display_name: {},
|
|
752
|
+
child_id: {
|
|
753
|
+
fields: {
|
|
754
|
+
active: {},
|
|
755
|
+
name: {},
|
|
756
|
+
is_display: {},
|
|
757
|
+
sequence: {},
|
|
758
|
+
complete_name: {},
|
|
759
|
+
action: {
|
|
760
|
+
fields: {
|
|
761
|
+
display_name: {},
|
|
762
|
+
type: {},
|
|
763
|
+
binding_view_types: {}
|
|
764
|
+
}
|
|
765
|
+
},
|
|
766
|
+
url_icon: {},
|
|
767
|
+
web_icon: {},
|
|
768
|
+
web_icon_data: {},
|
|
769
|
+
groups_id: {
|
|
770
|
+
fields: {
|
|
771
|
+
full_name: {}
|
|
772
|
+
},
|
|
773
|
+
limit: 40,
|
|
774
|
+
order: ""
|
|
775
|
+
},
|
|
776
|
+
display_name: {},
|
|
777
|
+
child_id: {
|
|
778
|
+
fields: {
|
|
779
|
+
active: {},
|
|
780
|
+
name: {},
|
|
781
|
+
is_display: {},
|
|
782
|
+
sequence: {},
|
|
783
|
+
complete_name: {},
|
|
784
|
+
action: {
|
|
785
|
+
fields: {
|
|
786
|
+
display_name: {},
|
|
787
|
+
type: {},
|
|
788
|
+
binding_view_types: {}
|
|
789
|
+
}
|
|
790
|
+
},
|
|
791
|
+
url_icon: {},
|
|
792
|
+
web_icon: {},
|
|
793
|
+
web_icon_data: {},
|
|
794
|
+
groups_id: {
|
|
795
|
+
fields: {
|
|
796
|
+
full_name: {}
|
|
797
|
+
},
|
|
798
|
+
limit: 40,
|
|
799
|
+
order: ""
|
|
800
|
+
},
|
|
801
|
+
display_name: {},
|
|
802
|
+
child_id: {
|
|
803
|
+
fields: {},
|
|
804
|
+
limit: 40,
|
|
805
|
+
order: ""
|
|
806
|
+
}
|
|
807
|
+
},
|
|
808
|
+
limit: 40,
|
|
809
|
+
order: ""
|
|
810
|
+
}
|
|
811
|
+
},
|
|
812
|
+
limit: 40,
|
|
813
|
+
order: ""
|
|
814
|
+
}
|
|
815
|
+
},
|
|
816
|
+
domain: [
|
|
817
|
+
"&",
|
|
818
|
+
["is_display", "=", true],
|
|
819
|
+
"&",
|
|
820
|
+
["active", "=", true],
|
|
821
|
+
["parent_id", "=", false]
|
|
822
|
+
]
|
|
823
|
+
}
|
|
824
|
+
};
|
|
825
|
+
return env?.requests?.post("/call" /* CALL_PATH */, jsonData, {
|
|
826
|
+
headers: {
|
|
827
|
+
"Content-Type": "application/json"
|
|
828
|
+
}
|
|
829
|
+
});
|
|
830
|
+
},
|
|
831
|
+
[env]
|
|
832
|
+
);
|
|
833
|
+
const getActionDetail = (0, import_react.useCallback)(
|
|
834
|
+
async (aid, context) => {
|
|
835
|
+
const jsonData = {
|
|
836
|
+
model: "ir.actions.act_window" /* WINDOW_ACTION */,
|
|
837
|
+
method: "web_read" /* WEB_READ */,
|
|
838
|
+
ids: [aid],
|
|
839
|
+
with_context: context,
|
|
840
|
+
kwargs: {
|
|
841
|
+
specification: {
|
|
842
|
+
id: {},
|
|
843
|
+
name: {},
|
|
844
|
+
res_model: {},
|
|
845
|
+
views: {},
|
|
846
|
+
view_mode: {},
|
|
847
|
+
mobile_view_mode: {},
|
|
848
|
+
domain: {},
|
|
849
|
+
context: {},
|
|
850
|
+
groups_id: {},
|
|
851
|
+
search_view_id: {}
|
|
852
|
+
}
|
|
853
|
+
}
|
|
854
|
+
};
|
|
855
|
+
return env?.requests?.post("/call" /* CALL_PATH */, jsonData, {
|
|
856
|
+
headers: {
|
|
857
|
+
"Content-Type": "application/json"
|
|
858
|
+
}
|
|
859
|
+
});
|
|
860
|
+
},
|
|
861
|
+
[env]
|
|
862
|
+
);
|
|
863
|
+
const getResequence = (0, import_react.useCallback)(
|
|
864
|
+
async ({ model, ids, context, offset }) => {
|
|
865
|
+
const jsonData = {
|
|
866
|
+
model,
|
|
867
|
+
with_context: context,
|
|
868
|
+
ids,
|
|
869
|
+
field: "sequence",
|
|
870
|
+
...offset > 0 ? { offset } : {}
|
|
871
|
+
};
|
|
872
|
+
return env?.requests.post("/web/dataset/resequence", jsonData, {
|
|
873
|
+
headers: {
|
|
874
|
+
"Content-Type": "application/json"
|
|
875
|
+
}
|
|
876
|
+
});
|
|
877
|
+
},
|
|
878
|
+
[env]
|
|
879
|
+
);
|
|
880
|
+
const getSelectionItem = (0, import_react.useCallback)(
|
|
881
|
+
async ({ data }) => {
|
|
882
|
+
const jsonData = {
|
|
883
|
+
model: data.model,
|
|
884
|
+
ids: [],
|
|
885
|
+
method: "get_data_select",
|
|
886
|
+
with_context: data.context,
|
|
887
|
+
kwargs: {
|
|
888
|
+
count_limit: 10001,
|
|
889
|
+
domain: data.domain ? data.domain : [],
|
|
890
|
+
offset: 0,
|
|
891
|
+
order: "",
|
|
892
|
+
specification: data?.specification ?? {
|
|
893
|
+
id: {},
|
|
894
|
+
name: {},
|
|
895
|
+
display_name: {}
|
|
896
|
+
}
|
|
897
|
+
}
|
|
898
|
+
};
|
|
899
|
+
return env?.requests.post("/call" /* CALL_PATH */, jsonData, {
|
|
900
|
+
headers: {
|
|
901
|
+
"Content-Type": "application/json"
|
|
902
|
+
}
|
|
903
|
+
});
|
|
904
|
+
},
|
|
905
|
+
[env]
|
|
906
|
+
);
|
|
907
|
+
const loadMessages = (0, import_react.useCallback)(
|
|
908
|
+
async () => {
|
|
909
|
+
return env.requests.post(
|
|
910
|
+
"/load_message_failures" /* LOAD_MESSAGE */,
|
|
911
|
+
{},
|
|
912
|
+
{
|
|
913
|
+
headers: {
|
|
914
|
+
"Content-Type": "application/json"
|
|
915
|
+
}
|
|
916
|
+
}
|
|
917
|
+
);
|
|
918
|
+
},
|
|
919
|
+
[env]
|
|
920
|
+
);
|
|
921
|
+
const getVersion = (0, import_react.useCallback)(
|
|
922
|
+
async () => {
|
|
923
|
+
console.log("env?.requests", env, env?.requests);
|
|
924
|
+
return env?.requests?.get("", {
|
|
925
|
+
headers: {
|
|
926
|
+
"Content-Type": "application/json"
|
|
927
|
+
}
|
|
928
|
+
});
|
|
929
|
+
},
|
|
930
|
+
[env]
|
|
931
|
+
);
|
|
932
|
+
return {
|
|
933
|
+
getView,
|
|
934
|
+
getMenu,
|
|
935
|
+
getActionDetail,
|
|
936
|
+
getResequence,
|
|
937
|
+
getSelectionItem,
|
|
938
|
+
loadMessages,
|
|
939
|
+
getVersion
|
|
940
|
+
};
|
|
941
|
+
}
|
|
942
|
+
|
|
943
|
+
// src/provider/version-gate-provider.tsx
|
|
944
|
+
var import_jsx_runtime4 = require("react/jsx-runtime");
|
|
945
|
+
var VersionGate = ({ children }) => {
|
|
946
|
+
const queryClient = (0, import_react_query2.useQueryClient)();
|
|
947
|
+
const [ready, setReady] = (0, import_react2.useState)(false);
|
|
948
|
+
const { getVersion } = useViewService();
|
|
949
|
+
(0, import_react2.useEffect)(() => {
|
|
950
|
+
const clearVersion = () => {
|
|
951
|
+
queryClient.clear();
|
|
952
|
+
localStorage.removeItem("__api_version__");
|
|
953
|
+
};
|
|
954
|
+
const validateVersion = async () => {
|
|
955
|
+
const serverVersion = await getVersion();
|
|
956
|
+
console.log("serverVersion", serverVersion);
|
|
957
|
+
const cached = localStorage.getItem("__api_version__");
|
|
958
|
+
if (cached !== serverVersion?.api_version) {
|
|
959
|
+
clearVersion();
|
|
960
|
+
localStorage.setItem("__api_version__", serverVersion?.api_version);
|
|
961
|
+
} else {
|
|
962
|
+
console.log("Api version:", serverVersion?.api_version);
|
|
963
|
+
}
|
|
964
|
+
setReady(true);
|
|
965
|
+
};
|
|
966
|
+
validateVersion();
|
|
967
|
+
if (typeof window !== "undefined") {
|
|
968
|
+
const onKey = (e) => {
|
|
969
|
+
const key = e.key.toLowerCase();
|
|
970
|
+
const isHardRefresh = (key === "f5" || key === "r") && e.ctrlKey && (key !== "r" || e.shiftKey) || key === "r" && e.metaKey && e.shiftKey || key === "r" && e.metaKey && e.altKey;
|
|
971
|
+
if (isHardRefresh) clearVersion();
|
|
972
|
+
};
|
|
973
|
+
window.addEventListener("keydown", onKey);
|
|
974
|
+
return () => window.removeEventListener("keydown", onKey);
|
|
975
|
+
}
|
|
976
|
+
}, [queryClient]);
|
|
977
|
+
return ready ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_jsx_runtime4.Fragment, { children }) : null;
|
|
978
|
+
};
|
|
979
|
+
|
|
980
|
+
// src/provider/env-provider.tsx
|
|
981
|
+
var import_react4 = require("react");
|
|
982
|
+
|
|
692
983
|
// src/configs/axios-client.ts
|
|
693
984
|
var import_axios = __toESM(require("axios"));
|
|
694
985
|
|
|
@@ -2802,7 +3093,7 @@ function matchDomain(record, domain) {
|
|
|
2802
3093
|
}
|
|
2803
3094
|
|
|
2804
3095
|
// src/utils/function.ts
|
|
2805
|
-
var
|
|
3096
|
+
var import_react3 = require("react");
|
|
2806
3097
|
var updateTokenParamInOriginalRequest = (originalRequest, newAccessToken) => {
|
|
2807
3098
|
if (!originalRequest.data) return originalRequest.data;
|
|
2808
3099
|
if (typeof originalRequest.data === "string") {
|
|
@@ -3036,562 +3327,7 @@ var axiosClient = {
|
|
|
3036
3327
|
}
|
|
3037
3328
|
};
|
|
3038
3329
|
|
|
3039
|
-
// src/environment/EnvStore.ts
|
|
3040
|
-
function createEnvStore(store, localStorageUtil, sessionStorageUtil) {
|
|
3041
|
-
const getEnvState = () => store.getState().env;
|
|
3042
|
-
const setupEnvConfig = () => {
|
|
3043
|
-
const env2 = getEnvState();
|
|
3044
|
-
return {
|
|
3045
|
-
baseUrl: env2?.baseUrl,
|
|
3046
|
-
requests: env2?.requests,
|
|
3047
|
-
context: env2?.context,
|
|
3048
|
-
defaultCompany: env2?.defaultCompany,
|
|
3049
|
-
config: env2?.config,
|
|
3050
|
-
companies: env2?.companies || [],
|
|
3051
|
-
user: env2?.user,
|
|
3052
|
-
db: env2?.db,
|
|
3053
|
-
refreshTokenEndpoint: env2?.refreshTokenEndpoint
|
|
3054
|
-
};
|
|
3055
|
-
};
|
|
3056
|
-
const setupEnv = (envConfig) => {
|
|
3057
|
-
const dispatch = store.dispatch;
|
|
3058
|
-
const updatedEnv = {
|
|
3059
|
-
...envConfig,
|
|
3060
|
-
localStorageUtils: localStorageUtil,
|
|
3061
|
-
sessionStorageUtils: sessionStorageUtil
|
|
3062
|
-
};
|
|
3063
|
-
const requests = axiosClient.init(updatedEnv);
|
|
3064
|
-
dispatch(setEnv({ ...updatedEnv, requests }));
|
|
3065
|
-
return setupEnvConfig();
|
|
3066
|
-
};
|
|
3067
|
-
const setupUid = (uid) => {
|
|
3068
|
-
store.dispatch(setUid(uid));
|
|
3069
|
-
return setupEnvConfig();
|
|
3070
|
-
};
|
|
3071
|
-
const setupLang = (lang) => {
|
|
3072
|
-
store.dispatch(setLang(lang));
|
|
3073
|
-
return setupEnvConfig();
|
|
3074
|
-
};
|
|
3075
|
-
const setupAllowCompanies = (allowCompanies) => {
|
|
3076
|
-
store.dispatch(setAllowCompanies(allowCompanies));
|
|
3077
|
-
return setupEnvConfig();
|
|
3078
|
-
};
|
|
3079
|
-
const setupCompanies = (companies) => {
|
|
3080
|
-
store.dispatch(setCompanies(companies));
|
|
3081
|
-
return setupEnvConfig();
|
|
3082
|
-
};
|
|
3083
|
-
const setupDefaultCompany = (company) => {
|
|
3084
|
-
store.dispatch(setDefaultCompany(company));
|
|
3085
|
-
return setupEnvConfig();
|
|
3086
|
-
};
|
|
3087
|
-
const setUserInfo = (userInfo) => {
|
|
3088
|
-
store.dispatch(setUser(userInfo));
|
|
3089
|
-
return setupEnvConfig();
|
|
3090
|
-
};
|
|
3091
|
-
return {
|
|
3092
|
-
getEnvConfig: setupEnvConfig,
|
|
3093
|
-
setupEnv,
|
|
3094
|
-
setUid: setupUid,
|
|
3095
|
-
setLang: setupLang,
|
|
3096
|
-
setAllowCompanies: setupAllowCompanies,
|
|
3097
|
-
setCompanies: setupCompanies,
|
|
3098
|
-
setDefaultCompany: setupDefaultCompany,
|
|
3099
|
-
setUserInfo
|
|
3100
|
-
};
|
|
3101
|
-
}
|
|
3102
|
-
var env = null;
|
|
3103
|
-
function getEnv() {
|
|
3104
|
-
if (!env) {
|
|
3105
|
-
env = createEnvStore(envStore, localStorageUtils(), sessionStorageUtils());
|
|
3106
|
-
}
|
|
3107
|
-
return env;
|
|
3108
|
-
}
|
|
3109
|
-
|
|
3110
|
-
// src/services/view-service/index.ts
|
|
3111
|
-
var ViewService = {
|
|
3112
|
-
async getView({
|
|
3113
|
-
model,
|
|
3114
|
-
views,
|
|
3115
|
-
context = {},
|
|
3116
|
-
options = {},
|
|
3117
|
-
aid
|
|
3118
|
-
}) {
|
|
3119
|
-
const env2 = getEnv();
|
|
3120
|
-
const defaultOptions = {
|
|
3121
|
-
load_filters: true,
|
|
3122
|
-
toolbar: true,
|
|
3123
|
-
action_id: aid
|
|
3124
|
-
};
|
|
3125
|
-
const jsonDataView = {
|
|
3126
|
-
model,
|
|
3127
|
-
method: "get_fields_view_v2" /* GET_FIELD_VIEW */,
|
|
3128
|
-
kwargs: {
|
|
3129
|
-
views,
|
|
3130
|
-
options: { ...options, ...defaultOptions }
|
|
3131
|
-
},
|
|
3132
|
-
with_context: context
|
|
3133
|
-
};
|
|
3134
|
-
return env2?.requests?.post("/call" /* CALL_PATH */, jsonDataView, {
|
|
3135
|
-
headers: {
|
|
3136
|
-
"Content-Type": "application/json"
|
|
3137
|
-
}
|
|
3138
|
-
});
|
|
3139
|
-
},
|
|
3140
|
-
async getMenu(context) {
|
|
3141
|
-
const env2 = getEnv();
|
|
3142
|
-
const jsonData = {
|
|
3143
|
-
model: "ir.ui.menu" /* MENU */,
|
|
3144
|
-
method: "web_search_read" /* WEB_SEARCH_READ */,
|
|
3145
|
-
ids: [],
|
|
3146
|
-
with_context: context,
|
|
3147
|
-
kwargs: {
|
|
3148
|
-
specification: {
|
|
3149
|
-
active: {},
|
|
3150
|
-
name: {},
|
|
3151
|
-
is_display: {},
|
|
3152
|
-
sequence: {},
|
|
3153
|
-
complete_name: {},
|
|
3154
|
-
action: {
|
|
3155
|
-
fields: {
|
|
3156
|
-
display_name: {},
|
|
3157
|
-
type: {},
|
|
3158
|
-
binding_view_types: {}
|
|
3159
|
-
// res_model: {},
|
|
3160
|
-
}
|
|
3161
|
-
},
|
|
3162
|
-
url_icon: {},
|
|
3163
|
-
web_icon: {},
|
|
3164
|
-
web_icon_data: {},
|
|
3165
|
-
groups_id: {
|
|
3166
|
-
fields: {
|
|
3167
|
-
full_name: {}
|
|
3168
|
-
},
|
|
3169
|
-
limit: 40,
|
|
3170
|
-
order: ""
|
|
3171
|
-
},
|
|
3172
|
-
display_name: {},
|
|
3173
|
-
child_id: {
|
|
3174
|
-
fields: {
|
|
3175
|
-
active: {},
|
|
3176
|
-
name: {},
|
|
3177
|
-
is_display: {},
|
|
3178
|
-
sequence: {},
|
|
3179
|
-
complete_name: {},
|
|
3180
|
-
action: {
|
|
3181
|
-
fields: {
|
|
3182
|
-
display_name: {},
|
|
3183
|
-
type: {},
|
|
3184
|
-
binding_view_types: {}
|
|
3185
|
-
// res_model: {},
|
|
3186
|
-
}
|
|
3187
|
-
},
|
|
3188
|
-
url_icon: {},
|
|
3189
|
-
web_icon: {},
|
|
3190
|
-
web_icon_data: {},
|
|
3191
|
-
groups_id: {
|
|
3192
|
-
fields: {
|
|
3193
|
-
full_name: {}
|
|
3194
|
-
},
|
|
3195
|
-
limit: 40,
|
|
3196
|
-
order: ""
|
|
3197
|
-
},
|
|
3198
|
-
display_name: {},
|
|
3199
|
-
child_id: {
|
|
3200
|
-
fields: {
|
|
3201
|
-
active: {},
|
|
3202
|
-
name: {},
|
|
3203
|
-
is_display: {},
|
|
3204
|
-
sequence: {},
|
|
3205
|
-
complete_name: {},
|
|
3206
|
-
action: {
|
|
3207
|
-
fields: {
|
|
3208
|
-
display_name: {},
|
|
3209
|
-
type: {},
|
|
3210
|
-
binding_view_types: {}
|
|
3211
|
-
// res_model: {},
|
|
3212
|
-
}
|
|
3213
|
-
},
|
|
3214
|
-
url_icon: {},
|
|
3215
|
-
web_icon: {},
|
|
3216
|
-
web_icon_data: {},
|
|
3217
|
-
groups_id: {
|
|
3218
|
-
fields: {
|
|
3219
|
-
full_name: {}
|
|
3220
|
-
},
|
|
3221
|
-
limit: 40,
|
|
3222
|
-
order: ""
|
|
3223
|
-
},
|
|
3224
|
-
display_name: {},
|
|
3225
|
-
child_id: {
|
|
3226
|
-
fields: {
|
|
3227
|
-
active: {},
|
|
3228
|
-
name: {},
|
|
3229
|
-
is_display: {},
|
|
3230
|
-
sequence: {},
|
|
3231
|
-
complete_name: {},
|
|
3232
|
-
action: {
|
|
3233
|
-
fields: {
|
|
3234
|
-
display_name: {},
|
|
3235
|
-
type: {},
|
|
3236
|
-
binding_view_types: {}
|
|
3237
|
-
// res_model: {},
|
|
3238
|
-
}
|
|
3239
|
-
},
|
|
3240
|
-
url_icon: {},
|
|
3241
|
-
web_icon: {},
|
|
3242
|
-
web_icon_data: {},
|
|
3243
|
-
groups_id: {
|
|
3244
|
-
fields: {
|
|
3245
|
-
full_name: {}
|
|
3246
|
-
},
|
|
3247
|
-
limit: 40,
|
|
3248
|
-
order: ""
|
|
3249
|
-
},
|
|
3250
|
-
display_name: {},
|
|
3251
|
-
child_id: {
|
|
3252
|
-
fields: {},
|
|
3253
|
-
limit: 40,
|
|
3254
|
-
order: ""
|
|
3255
|
-
}
|
|
3256
|
-
},
|
|
3257
|
-
limit: 40,
|
|
3258
|
-
order: ""
|
|
3259
|
-
}
|
|
3260
|
-
},
|
|
3261
|
-
limit: 40,
|
|
3262
|
-
order: ""
|
|
3263
|
-
}
|
|
3264
|
-
},
|
|
3265
|
-
limit: 40,
|
|
3266
|
-
order: ""
|
|
3267
|
-
}
|
|
3268
|
-
},
|
|
3269
|
-
domain: [
|
|
3270
|
-
"&",
|
|
3271
|
-
["is_display", "=", true],
|
|
3272
|
-
"&",
|
|
3273
|
-
["active", "=", true],
|
|
3274
|
-
["parent_id", "=", false]
|
|
3275
|
-
]
|
|
3276
|
-
}
|
|
3277
|
-
};
|
|
3278
|
-
return env2?.requests?.post("/call" /* CALL_PATH */, jsonData, {
|
|
3279
|
-
headers: {
|
|
3280
|
-
"Content-Type": "application/json"
|
|
3281
|
-
}
|
|
3282
|
-
});
|
|
3283
|
-
},
|
|
3284
|
-
async getActionDetail(aid, context) {
|
|
3285
|
-
const env2 = getEnv();
|
|
3286
|
-
const jsonData = {
|
|
3287
|
-
model: "ir.actions.act_window" /* WINDOW_ACTION */,
|
|
3288
|
-
method: "web_read" /* WEB_READ */,
|
|
3289
|
-
ids: [aid],
|
|
3290
|
-
with_context: context,
|
|
3291
|
-
kwargs: {
|
|
3292
|
-
specification: {
|
|
3293
|
-
id: {},
|
|
3294
|
-
name: {},
|
|
3295
|
-
res_model: {},
|
|
3296
|
-
views: {},
|
|
3297
|
-
view_mode: {},
|
|
3298
|
-
mobile_view_mode: {},
|
|
3299
|
-
domain: {},
|
|
3300
|
-
context: {},
|
|
3301
|
-
groups_id: {},
|
|
3302
|
-
search_view_id: {}
|
|
3303
|
-
}
|
|
3304
|
-
}
|
|
3305
|
-
};
|
|
3306
|
-
return env2?.requests?.post("/call" /* CALL_PATH */, jsonData, {
|
|
3307
|
-
headers: {
|
|
3308
|
-
"Content-Type": "application/json"
|
|
3309
|
-
}
|
|
3310
|
-
});
|
|
3311
|
-
},
|
|
3312
|
-
async getResequence({
|
|
3313
|
-
model,
|
|
3314
|
-
ids,
|
|
3315
|
-
context,
|
|
3316
|
-
offset
|
|
3317
|
-
}) {
|
|
3318
|
-
const env2 = getEnv();
|
|
3319
|
-
const jsonData = {
|
|
3320
|
-
model,
|
|
3321
|
-
with_context: context,
|
|
3322
|
-
ids,
|
|
3323
|
-
field: "sequence",
|
|
3324
|
-
...offset > 0 ? { offset } : {}
|
|
3325
|
-
};
|
|
3326
|
-
return env2?.requests.post("/web/dataset/resequence", jsonData, {
|
|
3327
|
-
headers: {
|
|
3328
|
-
"Content-Type": "application/json"
|
|
3329
|
-
}
|
|
3330
|
-
});
|
|
3331
|
-
},
|
|
3332
|
-
async getSelectionItem({ data }) {
|
|
3333
|
-
const env2 = getEnv();
|
|
3334
|
-
const jsonData = {
|
|
3335
|
-
model: data.model,
|
|
3336
|
-
ids: [],
|
|
3337
|
-
method: "get_data_select",
|
|
3338
|
-
with_context: data.context,
|
|
3339
|
-
kwargs: {
|
|
3340
|
-
count_limit: 10001,
|
|
3341
|
-
domain: data.domain ? data.domain : [],
|
|
3342
|
-
offset: 0,
|
|
3343
|
-
order: "",
|
|
3344
|
-
specification: data?.specification ?? {
|
|
3345
|
-
id: {},
|
|
3346
|
-
name: {},
|
|
3347
|
-
display_name: {}
|
|
3348
|
-
}
|
|
3349
|
-
}
|
|
3350
|
-
};
|
|
3351
|
-
return env2?.requests.post("/call" /* CALL_PATH */, jsonData, {
|
|
3352
|
-
headers: {
|
|
3353
|
-
"Content-Type": "application/json"
|
|
3354
|
-
}
|
|
3355
|
-
});
|
|
3356
|
-
},
|
|
3357
|
-
async loadMessages() {
|
|
3358
|
-
const env2 = getEnv();
|
|
3359
|
-
return env2.requests.post(
|
|
3360
|
-
"/load_message_failures" /* LOAD_MESSAGE */,
|
|
3361
|
-
{},
|
|
3362
|
-
{
|
|
3363
|
-
headers: {
|
|
3364
|
-
"Content-Type": "application/json"
|
|
3365
|
-
}
|
|
3366
|
-
}
|
|
3367
|
-
);
|
|
3368
|
-
},
|
|
3369
|
-
async getVersion() {
|
|
3370
|
-
const env2 = getEnv();
|
|
3371
|
-
console.log("env?.requests", env2, env2?.requests);
|
|
3372
|
-
return env2?.requests?.get("", {
|
|
3373
|
-
headers: {
|
|
3374
|
-
"Content-Type": "application/json"
|
|
3375
|
-
}
|
|
3376
|
-
});
|
|
3377
|
-
},
|
|
3378
|
-
async get2FAMethods({
|
|
3379
|
-
method,
|
|
3380
|
-
with_context
|
|
3381
|
-
}) {
|
|
3382
|
-
const env2 = getEnv();
|
|
3383
|
-
const jsonData = {
|
|
3384
|
-
method,
|
|
3385
|
-
with_context
|
|
3386
|
-
};
|
|
3387
|
-
return env2?.requests.post("/call" /* CALL_PATH */, jsonData, {
|
|
3388
|
-
headers: {
|
|
3389
|
-
"Content-Type": "application/json"
|
|
3390
|
-
}
|
|
3391
|
-
});
|
|
3392
|
-
},
|
|
3393
|
-
async verify2FA({
|
|
3394
|
-
method,
|
|
3395
|
-
with_context,
|
|
3396
|
-
code,
|
|
3397
|
-
device,
|
|
3398
|
-
location
|
|
3399
|
-
}) {
|
|
3400
|
-
const env2 = getEnv();
|
|
3401
|
-
const jsonData = {
|
|
3402
|
-
method,
|
|
3403
|
-
kwargs: {
|
|
3404
|
-
vals: {
|
|
3405
|
-
code,
|
|
3406
|
-
device,
|
|
3407
|
-
location
|
|
3408
|
-
}
|
|
3409
|
-
},
|
|
3410
|
-
with_context
|
|
3411
|
-
};
|
|
3412
|
-
return env2?.requests.post("/call" /* CALL_PATH */, jsonData, {
|
|
3413
|
-
headers: {
|
|
3414
|
-
"Content-Type": "application/json"
|
|
3415
|
-
},
|
|
3416
|
-
withCredentials: true
|
|
3417
|
-
});
|
|
3418
|
-
},
|
|
3419
|
-
async signInSSO({
|
|
3420
|
-
redirect_uri,
|
|
3421
|
-
state,
|
|
3422
|
-
client_id,
|
|
3423
|
-
response_type,
|
|
3424
|
-
path
|
|
3425
|
-
}) {
|
|
3426
|
-
const env2 = getEnv();
|
|
3427
|
-
const params = new URLSearchParams({
|
|
3428
|
-
response_type,
|
|
3429
|
-
client_id,
|
|
3430
|
-
redirect_uri,
|
|
3431
|
-
state
|
|
3432
|
-
});
|
|
3433
|
-
const url = `${path}?${params.toString()}`;
|
|
3434
|
-
return env2?.requests.get(url, {
|
|
3435
|
-
headers: {
|
|
3436
|
-
"Content-Type": "application/json"
|
|
3437
|
-
},
|
|
3438
|
-
withCredentials: true
|
|
3439
|
-
});
|
|
3440
|
-
},
|
|
3441
|
-
async grantAccess({
|
|
3442
|
-
redirect_uri,
|
|
3443
|
-
state,
|
|
3444
|
-
client_id,
|
|
3445
|
-
scopes
|
|
3446
|
-
}) {
|
|
3447
|
-
const env2 = getEnv();
|
|
3448
|
-
const jsonData = {
|
|
3449
|
-
redirect_uri,
|
|
3450
|
-
state,
|
|
3451
|
-
client_id,
|
|
3452
|
-
scopes
|
|
3453
|
-
};
|
|
3454
|
-
return env2?.requests.post("/grant-access" /* GRANT_ACCESS */, jsonData, {
|
|
3455
|
-
headers: {
|
|
3456
|
-
"Content-Type": "application/json"
|
|
3457
|
-
},
|
|
3458
|
-
withCredentials: true
|
|
3459
|
-
});
|
|
3460
|
-
},
|
|
3461
|
-
async getFieldsViewSecurity({
|
|
3462
|
-
method,
|
|
3463
|
-
token,
|
|
3464
|
-
views
|
|
3465
|
-
}) {
|
|
3466
|
-
const env2 = getEnv();
|
|
3467
|
-
const jsonData = {
|
|
3468
|
-
method,
|
|
3469
|
-
kwargs: {
|
|
3470
|
-
views
|
|
3471
|
-
},
|
|
3472
|
-
with_context: {
|
|
3473
|
-
token
|
|
3474
|
-
}
|
|
3475
|
-
};
|
|
3476
|
-
return env2?.requests.post("/call" /* CALL_PATH */, jsonData, {
|
|
3477
|
-
headers: {
|
|
3478
|
-
"Content-Type": "application/json"
|
|
3479
|
-
}
|
|
3480
|
-
});
|
|
3481
|
-
},
|
|
3482
|
-
async settingsWebRead2fa({
|
|
3483
|
-
method,
|
|
3484
|
-
model,
|
|
3485
|
-
kwargs,
|
|
3486
|
-
token
|
|
3487
|
-
}) {
|
|
3488
|
-
const env2 = getEnv();
|
|
3489
|
-
const jsonData = {
|
|
3490
|
-
method,
|
|
3491
|
-
model,
|
|
3492
|
-
kwargs,
|
|
3493
|
-
with_context: {
|
|
3494
|
-
token
|
|
3495
|
-
}
|
|
3496
|
-
};
|
|
3497
|
-
return env2?.requests.post("/call" /* CALL_PATH */, jsonData, {
|
|
3498
|
-
headers: {
|
|
3499
|
-
"Content-Type": "application/json"
|
|
3500
|
-
}
|
|
3501
|
-
});
|
|
3502
|
-
},
|
|
3503
|
-
async requestSetupTotp({ method, token }) {
|
|
3504
|
-
const env2 = getEnv();
|
|
3505
|
-
const jsonData = {
|
|
3506
|
-
method,
|
|
3507
|
-
with_context: {
|
|
3508
|
-
token
|
|
3509
|
-
}
|
|
3510
|
-
};
|
|
3511
|
-
return env2?.requests.post("/call" /* CALL_PATH */, jsonData, {
|
|
3512
|
-
headers: {
|
|
3513
|
-
"Content-Type": "application/json"
|
|
3514
|
-
}
|
|
3515
|
-
});
|
|
3516
|
-
},
|
|
3517
|
-
async verifyTotp({
|
|
3518
|
-
method,
|
|
3519
|
-
action_token,
|
|
3520
|
-
code
|
|
3521
|
-
}) {
|
|
3522
|
-
const env2 = getEnv();
|
|
3523
|
-
const jsonData = {
|
|
3524
|
-
method,
|
|
3525
|
-
kwargs: {
|
|
3526
|
-
vals: {
|
|
3527
|
-
code
|
|
3528
|
-
}
|
|
3529
|
-
},
|
|
3530
|
-
with_context: {
|
|
3531
|
-
action_token
|
|
3532
|
-
}
|
|
3533
|
-
};
|
|
3534
|
-
return env2?.requests.post("/call" /* CALL_PATH */, jsonData, {
|
|
3535
|
-
headers: {
|
|
3536
|
-
"Content-Type": "application/json"
|
|
3537
|
-
}
|
|
3538
|
-
});
|
|
3539
|
-
},
|
|
3540
|
-
async removeTotpSetUp({ method, token }) {
|
|
3541
|
-
const env2 = getEnv();
|
|
3542
|
-
const jsonData = {
|
|
3543
|
-
method,
|
|
3544
|
-
with_context: {
|
|
3545
|
-
token
|
|
3546
|
-
}
|
|
3547
|
-
};
|
|
3548
|
-
return env2?.requests.post("/call" /* CALL_PATH */, jsonData, {
|
|
3549
|
-
headers: {
|
|
3550
|
-
"Content-Type": "application/json"
|
|
3551
|
-
}
|
|
3552
|
-
});
|
|
3553
|
-
}
|
|
3554
|
-
};
|
|
3555
|
-
var view_service_default = ViewService;
|
|
3556
|
-
|
|
3557
|
-
// src/provider/version-gate-provider.tsx
|
|
3558
|
-
var import_jsx_runtime4 = require("react/jsx-runtime");
|
|
3559
|
-
var VersionGate = ({ children }) => {
|
|
3560
|
-
const queryClient = (0, import_react_query2.useQueryClient)();
|
|
3561
|
-
const [ready, setReady] = (0, import_react2.useState)(false);
|
|
3562
|
-
(0, import_react2.useEffect)(() => {
|
|
3563
|
-
const clearVersion = () => {
|
|
3564
|
-
queryClient.clear();
|
|
3565
|
-
localStorage.removeItem("__api_version__");
|
|
3566
|
-
};
|
|
3567
|
-
const validateVersion = async () => {
|
|
3568
|
-
const serverVersion = await view_service_default.getVersion();
|
|
3569
|
-
console.log("serverVersion", serverVersion);
|
|
3570
|
-
const cached = localStorage.getItem("__api_version__");
|
|
3571
|
-
if (cached !== serverVersion?.api_version) {
|
|
3572
|
-
clearVersion();
|
|
3573
|
-
localStorage.setItem("__api_version__", serverVersion?.api_version);
|
|
3574
|
-
} else {
|
|
3575
|
-
console.log("Api version:", serverVersion?.api_version);
|
|
3576
|
-
}
|
|
3577
|
-
setReady(true);
|
|
3578
|
-
};
|
|
3579
|
-
validateVersion();
|
|
3580
|
-
if (typeof window !== "undefined") {
|
|
3581
|
-
const onKey = (e) => {
|
|
3582
|
-
const key = e.key.toLowerCase();
|
|
3583
|
-
const isHardRefresh = (key === "f5" || key === "r") && e.ctrlKey && (key !== "r" || e.shiftKey) || key === "r" && e.metaKey && e.shiftKey || key === "r" && e.metaKey && e.altKey;
|
|
3584
|
-
if (isHardRefresh) clearVersion();
|
|
3585
|
-
};
|
|
3586
|
-
window.addEventListener("keydown", onKey);
|
|
3587
|
-
return () => window.removeEventListener("keydown", onKey);
|
|
3588
|
-
}
|
|
3589
|
-
}, [queryClient]);
|
|
3590
|
-
return ready ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_jsx_runtime4.Fragment, { children }) : null;
|
|
3591
|
-
};
|
|
3592
|
-
|
|
3593
3330
|
// src/provider/env-provider.tsx
|
|
3594
|
-
var import_react3 = require("react");
|
|
3595
3331
|
var import_jsx_runtime5 = require("react/jsx-runtime");
|
|
3596
3332
|
var initialEnvState = {
|
|
3597
3333
|
baseUrl: "",
|
|
@@ -3613,21 +3349,21 @@ var initialEnvState = {
|
|
|
3613
3349
|
tz: "Asia/Saigon"
|
|
3614
3350
|
}
|
|
3615
3351
|
};
|
|
3616
|
-
var EnvContext = (0,
|
|
3352
|
+
var EnvContext = (0, import_react4.createContext)(null);
|
|
3617
3353
|
function EnvProvider({
|
|
3618
3354
|
children,
|
|
3619
3355
|
localStorageUtils: localStorageUtil = localStorageUtils(),
|
|
3620
3356
|
sessionStorageUtils: sessionStorageUtil = sessionStorageUtils()
|
|
3621
3357
|
}) {
|
|
3622
|
-
const [
|
|
3358
|
+
const [env, setEnvState] = (0, import_react4.useState)({
|
|
3623
3359
|
...initialEnvState,
|
|
3624
3360
|
localStorageUtils: localStorageUtil,
|
|
3625
3361
|
sessionStorageUtils: sessionStorageUtil
|
|
3626
3362
|
});
|
|
3627
|
-
const setupEnv = (0,
|
|
3363
|
+
const setupEnv = (0, import_react4.useCallback)(
|
|
3628
3364
|
(envConfig) => {
|
|
3629
3365
|
const updatedEnv = {
|
|
3630
|
-
...
|
|
3366
|
+
...env,
|
|
3631
3367
|
...envConfig,
|
|
3632
3368
|
localStorageUtils: localStorageUtil,
|
|
3633
3369
|
sessionStorageUtils: sessionStorageUtil
|
|
@@ -3636,33 +3372,33 @@ function EnvProvider({
|
|
|
3636
3372
|
setEnvState({ ...updatedEnv, requests });
|
|
3637
3373
|
return updatedEnv;
|
|
3638
3374
|
},
|
|
3639
|
-
[
|
|
3375
|
+
[env, localStorageUtil, sessionStorageUtil]
|
|
3640
3376
|
);
|
|
3641
|
-
const setUid2 = (0,
|
|
3377
|
+
const setUid2 = (0, import_react4.useCallback)((uid) => {
|
|
3642
3378
|
setEnvState((prev) => ({
|
|
3643
3379
|
...prev,
|
|
3644
3380
|
context: { ...prev.context, uid }
|
|
3645
3381
|
}));
|
|
3646
3382
|
}, []);
|
|
3647
|
-
const setLang2 = (0,
|
|
3383
|
+
const setLang2 = (0, import_react4.useCallback)((lang) => {
|
|
3648
3384
|
setEnvState((prev) => ({
|
|
3649
3385
|
...prev,
|
|
3650
3386
|
context: { ...prev.context, lang }
|
|
3651
3387
|
}));
|
|
3652
3388
|
}, []);
|
|
3653
|
-
const setAllowCompanies2 = (0,
|
|
3389
|
+
const setAllowCompanies2 = (0, import_react4.useCallback)((allowed_company_ids) => {
|
|
3654
3390
|
setEnvState((prev) => ({
|
|
3655
3391
|
...prev,
|
|
3656
3392
|
context: { ...prev.context, allowed_company_ids }
|
|
3657
3393
|
}));
|
|
3658
3394
|
}, []);
|
|
3659
|
-
const setCompanies2 = (0,
|
|
3395
|
+
const setCompanies2 = (0, import_react4.useCallback)((companies) => {
|
|
3660
3396
|
setEnvState((prev) => ({
|
|
3661
3397
|
...prev,
|
|
3662
3398
|
companies
|
|
3663
3399
|
}));
|
|
3664
3400
|
}, []);
|
|
3665
|
-
const setDefaultCompany2 = (0,
|
|
3401
|
+
const setDefaultCompany2 = (0, import_react4.useCallback)(
|
|
3666
3402
|
(defaultCompany) => {
|
|
3667
3403
|
setEnvState((prev) => ({
|
|
3668
3404
|
...prev,
|
|
@@ -3671,19 +3407,19 @@ function EnvProvider({
|
|
|
3671
3407
|
},
|
|
3672
3408
|
[]
|
|
3673
3409
|
);
|
|
3674
|
-
const setUserInfo = (0,
|
|
3410
|
+
const setUserInfo = (0, import_react4.useCallback)((user) => {
|
|
3675
3411
|
setEnvState((prev) => ({
|
|
3676
3412
|
...prev,
|
|
3677
3413
|
user
|
|
3678
3414
|
}));
|
|
3679
3415
|
}, []);
|
|
3680
|
-
const setConfig2 = (0,
|
|
3416
|
+
const setConfig2 = (0, import_react4.useCallback)((config) => {
|
|
3681
3417
|
setEnvState((prev) => ({
|
|
3682
3418
|
...prev,
|
|
3683
3419
|
config
|
|
3684
3420
|
}));
|
|
3685
3421
|
}, []);
|
|
3686
|
-
const setEnvFile2 = (0,
|
|
3422
|
+
const setEnvFile2 = (0, import_react4.useCallback)((envFile) => {
|
|
3687
3423
|
setEnvState((prev) => ({
|
|
3688
3424
|
...prev,
|
|
3689
3425
|
envFile
|
|
@@ -3693,7 +3429,7 @@ function EnvProvider({
|
|
|
3693
3429
|
EnvContext.Provider,
|
|
3694
3430
|
{
|
|
3695
3431
|
value: {
|
|
3696
|
-
env
|
|
3432
|
+
env,
|
|
3697
3433
|
setupEnv,
|
|
3698
3434
|
setUid: setUid2,
|
|
3699
3435
|
setLang: setLang2,
|
|
@@ -3709,7 +3445,7 @@ function EnvProvider({
|
|
|
3709
3445
|
);
|
|
3710
3446
|
}
|
|
3711
3447
|
function useEnv() {
|
|
3712
|
-
const context = (0,
|
|
3448
|
+
const context = (0, import_react4.useContext)(EnvContext);
|
|
3713
3449
|
if (!context) {
|
|
3714
3450
|
throw new Error("useEnv must be used within an EnvProvider");
|
|
3715
3451
|
}
|