@axelor/aos-mobile-core 9.0.13 → 9.1.0
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/lib/api/axios-init.js +2 -2
- package/lib/api/axios-init.js.map +1 -1
- package/lib/apiProviders/File/AopFileApi.d.ts +14 -0
- package/lib/apiProviders/File/AopFileApi.js +68 -0
- package/lib/apiProviders/File/AopFileApi.js.map +1 -0
- package/lib/apiProviders/File/FileApiProvider.d.ts +34 -0
- package/lib/apiProviders/File/FileApiProvider.js +19 -0
- package/lib/apiProviders/File/FileApiProvider.js.map +1 -0
- package/lib/apiProviders/File/GatewayFileApi.d.ts +13 -0
- package/lib/apiProviders/File/GatewayFileApi.js +61 -0
- package/lib/apiProviders/File/GatewayFileApi.js.map +1 -0
- package/lib/apiProviders/File/Provider.d.ts +12 -0
- package/lib/apiProviders/File/Provider.js +43 -0
- package/lib/apiProviders/File/Provider.js.map +1 -0
- package/lib/apiProviders/File/index.d.ts +5 -0
- package/lib/apiProviders/File/index.js +23 -0
- package/lib/apiProviders/File/index.js.map +1 -0
- package/lib/apiProviders/File/utils.d.ts +11 -0
- package/lib/apiProviders/File/utils.js +148 -0
- package/lib/apiProviders/File/utils.js.map +1 -0
- package/lib/apiProviders/Model/AopModelApi.d.ts +4 -1
- package/lib/apiProviders/Model/AopModelApi.js +4 -1
- package/lib/apiProviders/Model/AopModelApi.js.map +1 -1
- package/lib/apiProviders/Model/GatewayModelApi.d.ts +4 -1
- package/lib/apiProviders/Model/GatewayModelApi.js +4 -0
- package/lib/apiProviders/Model/GatewayModelApi.js.map +1 -1
- package/lib/apiProviders/Model/ModelApiProvider.d.ts +4 -1
- package/lib/apiProviders/Model/utils.d.ts +8 -2
- package/lib/apiProviders/Standard/ObjectFieldsProvider.d.ts +2 -2
- package/lib/apiProviders/Standard/ObjectFieldsProvider.js +22 -11
- package/lib/apiProviders/Standard/ObjectFieldsProvider.js.map +1 -1
- package/lib/apiProviders/Standard/requests.helper.d.ts +3 -3
- package/lib/apiProviders/Standard/requests.helper.js +15 -7
- package/lib/apiProviders/Standard/requests.helper.js.map +1 -1
- package/lib/apiProviders/index.d.ts +2 -1
- package/lib/apiProviders/index.js +2 -1
- package/lib/apiProviders/index.js.map +1 -1
- package/lib/apiProviders/middlewares/grouping.d.ts +2 -0
- package/lib/apiProviders/middlewares/grouping.js +69 -0
- package/lib/apiProviders/middlewares/grouping.js.map +1 -0
- package/lib/apiProviders/middlewares/index.d.ts +1 -0
- package/lib/apiProviders/middlewares/index.js +1 -0
- package/lib/apiProviders/middlewares/index.js.map +1 -1
- package/lib/apiProviders/utils.d.ts +11 -0
- package/lib/apiProviders/utils.js +47 -4
- package/lib/apiProviders/utils.js.map +1 -1
- package/lib/app/Application.js +7 -3
- package/lib/app/Application.js.map +1 -1
- package/lib/app/RootNavigator.js +7 -2
- package/lib/app/RootNavigator.js.map +1 -1
- package/lib/app/modules/defaults.d.ts +2 -0
- package/lib/app/modules/defaults.js +33 -0
- package/lib/app/modules/defaults.js.map +1 -0
- package/lib/app/modules/index.d.ts +1 -0
- package/lib/app/modules/index.js +1 -0
- package/lib/app/modules/index.js.map +1 -1
- package/lib/app/modules/types.d.ts +7 -1
- package/lib/auth/features/userSlice.d.ts +15 -1
- package/lib/auth/features/userSlice.js +5 -13
- package/lib/auth/features/userSlice.js.map +1 -1
- package/lib/components/molecules/UploadFileInput/UploadFileInput.js +6 -5
- package/lib/components/molecules/UploadFileInput/UploadFileInput.js.map +1 -1
- package/lib/components/organisms/AOSImage/AOSImage.js +12 -12
- package/lib/components/organisms/AOSImage/AOSImage.js.map +1 -1
- package/lib/components/organisms/AOSImageBubble/AOSImageBubble.js +3 -7
- package/lib/components/organisms/AOSImageBubble/AOSImageBubble.js.map +1 -1
- package/lib/components/pages/FormView/Components/Field.d.ts +4 -4
- package/lib/components/pages/FormView/Components/Field.js +12 -18
- package/lib/components/pages/FormView/Components/Field.js.map +1 -1
- package/lib/components/pages/FormView/Components/Panel.d.ts +4 -2
- package/lib/components/pages/FormView/Components/Panel.js +19 -14
- package/lib/components/pages/FormView/Components/Panel.js.map +1 -1
- package/lib/components/pages/FormView/Custom/CustomButton.d.ts +1 -1
- package/lib/components/pages/FormView/Custom/CustomButton.js +7 -4
- package/lib/components/pages/FormView/Custom/CustomButton.js.map +1 -1
- package/lib/components/pages/FormView/Custom/CustomMultiPicker.d.ts +14 -0
- package/lib/components/pages/FormView/Custom/CustomMultiPicker.js +54 -0
- package/lib/components/pages/FormView/Custom/CustomMultiPicker.js.map +1 -0
- package/lib/components/pages/FormView/Custom/CustomPicker.d.ts +3 -1
- package/lib/components/pages/FormView/Custom/CustomPicker.js +5 -2
- package/lib/components/pages/FormView/Custom/CustomPicker.js.map +1 -1
- package/lib/components/pages/FormView/Custom/CustomSearchBar.d.ts +3 -1
- package/lib/components/pages/FormView/Custom/CustomSearchBar.js +9 -4
- package/lib/components/pages/FormView/Custom/CustomSearchBar.js.map +1 -1
- package/lib/components/pages/FormView/Custom/index.d.ts +1 -0
- package/lib/components/pages/FormView/Custom/index.js +1 -0
- package/lib/components/pages/FormView/Custom/index.js.map +1 -1
- package/lib/components/pages/FormView/FormView.js +22 -20
- package/lib/components/pages/FormView/FormView.js.map +1 -1
- package/lib/components/templates/GlobalToolBox/GlobalToolBox.js +30 -14
- package/lib/components/templates/GlobalToolBox/GlobalToolBox.js.map +1 -1
- package/lib/components/templates/GridListView/GridListView.d.ts +34 -0
- package/lib/components/templates/GridListView/GridListView.js +99 -0
- package/lib/components/templates/GridListView/GridListView.js.map +1 -0
- package/lib/components/templates/SearchListView/SearchListView.d.ts +6 -1
- package/lib/components/templates/SearchListView/SearchListView.js +24 -12
- package/lib/components/templates/SearchListView/SearchListView.js.map +1 -1
- package/lib/components/templates/index.d.ts +12 -11
- package/lib/components/templates/index.js +1 -0
- package/lib/components/templates/index.js.map +1 -1
- package/lib/config/index.d.ts +1 -0
- package/lib/config/index.js +1 -0
- package/lib/config/index.js.map +1 -1
- package/lib/config/routes.d.ts +3 -0
- package/lib/config/routes.js +2 -0
- package/lib/config/routes.js.map +1 -1
- package/lib/config/userProvider.d.ts +9 -0
- package/lib/config/userProvider.js +34 -0
- package/lib/config/userProvider.js.map +1 -0
- package/lib/features/asyncFunctions-index.d.ts +1 -1
- package/lib/features/asyncFunctions-index.js +1 -1
- package/lib/features/asyncFunctions-index.js.map +1 -1
- package/lib/features/authSlice.js +5 -1
- package/lib/features/authSlice.js.map +1 -1
- package/lib/features/onlineSlice.d.ts +11 -1
- package/lib/features/onlineSlice.js +5 -1
- package/lib/features/onlineSlice.js.map +1 -1
- package/lib/forms/display.helpers.js +2 -0
- package/lib/forms/display.helpers.js.map +1 -1
- package/lib/forms/studio/api.helpers.d.ts +2 -2
- package/lib/forms/studio/api.helpers.js +58 -43
- package/lib/forms/studio/api.helpers.js.map +1 -1
- package/lib/forms/types.d.ts +4 -1
- package/lib/header/hooks.js +3 -12
- package/lib/header/hooks.js.map +1 -1
- package/lib/hooks/use-navigation.js +22 -2
- package/lib/hooks/use-navigation.js.map +1 -1
- package/lib/hooks/use-scan-activator.d.ts +3 -0
- package/lib/hooks/use-scan-activator.js +26 -7
- package/lib/hooks/use-scan-activator.js.map +1 -1
- package/lib/i18n/translations/en.json +1 -0
- package/lib/i18n/translations/fr.json +1 -0
- package/lib/navigator/components/DrawerContent.js +1 -1
- package/lib/navigator/components/DrawerContent.js.map +1 -1
- package/lib/navigator/helpers/menu.helper.d.ts +6 -6
- package/lib/screens/ERPAccessScreen.d.ts +3 -0
- package/lib/screens/ERPAccessScreen.js +26 -0
- package/lib/screens/ERPAccessScreen.js.map +1 -0
- package/lib/screens/index.d.ts +7 -37
- package/lib/screens/index.js +9 -1
- package/lib/screens/index.js.map +1 -1
- package/lib/tools/FileDownloader.d.ts +2 -12
- package/lib/tools/FileDownloader.js +4 -100
- package/lib/tools/FileDownloader.js.map +1 -1
- package/lib/tools/FileViewer.d.ts +2 -11
- package/lib/tools/FileViewer.js +9 -25
- package/lib/tools/FileViewer.js.map +1 -1
- package/lib/utils/image.js +45 -23
- package/lib/utils/image.js.map +1 -1
- package/package.json +3 -3
package/lib/api/axios-init.js
CHANGED
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
17
|
*/
|
|
18
18
|
import axios from 'axios';
|
|
19
|
-
import { fieldsParserMiddleware, provider, translationMiddleware, maintenanceMiddleware, } from '../apiProviders';
|
|
19
|
+
import { fieldsParserMiddleware, groupingMiddleware, provider, translationMiddleware, maintenanceMiddleware, } from '../apiProviders';
|
|
20
20
|
const SESSION_REGEX = /JSESSIONID=([^;]*);/g;
|
|
21
21
|
const getJsessionId = (cookie) => {
|
|
22
22
|
return cookie?.match(SESSION_REGEX)?.[0];
|
|
@@ -36,7 +36,7 @@ export function initAxiosWithHeaders(res, url) {
|
|
|
36
36
|
config.headers['x-csrf-token'] = token;
|
|
37
37
|
return config;
|
|
38
38
|
});
|
|
39
|
-
const responseInterceptorId = axios.interceptors.response.use(_response => fieldsParserMiddleware(translationMiddleware(_response)), _error => maintenanceMiddleware(_error));
|
|
39
|
+
const responseInterceptorId = axios.interceptors.response.use(_response => groupingMiddleware(fieldsParserMiddleware(translationMiddleware(_response))), _error => maintenanceMiddleware(_error));
|
|
40
40
|
provider.getModelApi()?.init();
|
|
41
41
|
return { token, jsessionId, requestInterceptorId, responseInterceptorId };
|
|
42
42
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"axios-init.js","sourceRoot":"","sources":["../../src/api/axios-init.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EACL,sBAAsB,EACtB,QAAQ,EACR,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,iBAAiB,CAAC;AAEzB,MAAM,aAAa,GAAG,sBAAsB,CAAC;AAE7C,MAAM,aAAa,GAAG,CAAC,MAAc,EAAE,EAAE;IACvC,OAAO,MAAM,EAAE,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC3C,CAAC,CAAC;AAEF,MAAM,UAAU,UAAU,CAAC,EACzB,oBAAoB,EACpB,qBAAqB,GAItB;IACC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;IACvD,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,GAAQ,EAAE,GAAW;IACxD,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IAC1C,MAAM,UAAU,GAAG,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAEjE,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAClE,CAAC;IAED,MAAM,oBAAoB,GAAG,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;QACnE,MAAM,CAAC,OAAO,GAAG,GAAG,CAAC;QACrB,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,KAAK,CAAC;QAEvC,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC,CAAC;IAEH,MAAM,qBAAqB,GAAG,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAC3D,SAAS,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"axios-init.js","sourceRoot":"","sources":["../../src/api/axios-init.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EACL,sBAAsB,EACtB,kBAAkB,EAClB,QAAQ,EACR,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,iBAAiB,CAAC;AAEzB,MAAM,aAAa,GAAG,sBAAsB,CAAC;AAE7C,MAAM,aAAa,GAAG,CAAC,MAAc,EAAE,EAAE;IACvC,OAAO,MAAM,EAAE,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC3C,CAAC,CAAC;AAEF,MAAM,UAAU,UAAU,CAAC,EACzB,oBAAoB,EACpB,qBAAqB,GAItB;IACC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;IACvD,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,GAAQ,EAAE,GAAW;IACxD,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IAC1C,MAAM,UAAU,GAAG,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAEjE,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAClE,CAAC;IAED,MAAM,oBAAoB,GAAG,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;QACnE,MAAM,CAAC,OAAO,GAAG,GAAG,CAAC;QACrB,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,KAAK,CAAC;QAEvC,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC,CAAC;IAEH,MAAM,qBAAqB,GAAG,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAC3D,SAAS,CAAC,EAAE,CACV,kBAAkB,CAChB,sBAAsB,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC,CACzD,EACH,MAAM,CAAC,EAAE,CAAC,qBAAqB,CAAC,MAAM,CAAC,CACxC,CAAC;IAEF,QAAQ,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,CAAC;IAE/B,OAAO,EAAC,KAAK,EAAE,UAAU,EAAE,oBAAoB,EAAE,qBAAqB,EAAC,CAAC;AAC1E,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { BinaryImageRef, FileApi, FileRef, FileInitData, LocalFile } from './FileApiProvider';
|
|
2
|
+
export declare class AopFileApi implements FileApi {
|
|
3
|
+
static isOnlineAvailable: boolean;
|
|
4
|
+
private credentials;
|
|
5
|
+
constructor();
|
|
6
|
+
init({ userId: _, ...data }: FileInitData): void;
|
|
7
|
+
reset(): void;
|
|
8
|
+
isAvailable(): Promise<boolean>;
|
|
9
|
+
getDisplayUri(ref: FileRef): Promise<string | null>;
|
|
10
|
+
getBinaryImageUri(ref: BinaryImageRef): Promise<string | null>;
|
|
11
|
+
getLocalCopy(ref: FileRef): Promise<LocalFile | null>;
|
|
12
|
+
openInExternalApp(ref: FileRef): Promise<void>;
|
|
13
|
+
saveToDevice(ref: FileRef): Promise<boolean>;
|
|
14
|
+
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Axelor Business Solutions
|
|
3
|
+
*
|
|
4
|
+
* Copyright (C) 2026 Axelor (<http://axelor.com>).
|
|
5
|
+
*
|
|
6
|
+
* This program is free software: you can redistribute it and/or modify
|
|
7
|
+
* it under the terms of the GNU Affero General Public License, version 3,
|
|
8
|
+
* as published by the Free Software Foundation.
|
|
9
|
+
*
|
|
10
|
+
* This program is distributed in the hope that it will be useful,
|
|
11
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
* GNU Affero General Public License for more details.
|
|
14
|
+
*
|
|
15
|
+
* You should have received a copy of the GNU Affero General Public License
|
|
16
|
+
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
|
+
*/
|
|
18
|
+
import RNFS from 'react-native-fs';
|
|
19
|
+
import { sanitizeFileName } from '../../utils';
|
|
20
|
+
import { getNetInfo } from '../../api/net-info-utils';
|
|
21
|
+
import { binaryImageUrl, buildCookie, downloadUrlToPath, metaFileContentUrl, metaFileDownloadUrl, openLocalFile, saveUrlToDevice, } from './utils';
|
|
22
|
+
export class AopFileApi {
|
|
23
|
+
static isOnlineAvailable = true;
|
|
24
|
+
credentials;
|
|
25
|
+
constructor() { }
|
|
26
|
+
init({ userId: _, ...data }) {
|
|
27
|
+
this.credentials = data;
|
|
28
|
+
}
|
|
29
|
+
reset() {
|
|
30
|
+
this.credentials = undefined;
|
|
31
|
+
}
|
|
32
|
+
async isAvailable() {
|
|
33
|
+
if (!AopFileApi.isOnlineAvailable)
|
|
34
|
+
return false;
|
|
35
|
+
const { isConnected } = await getNetInfo();
|
|
36
|
+
return !!isConnected;
|
|
37
|
+
}
|
|
38
|
+
async getDisplayUri(ref) {
|
|
39
|
+
if (this.credentials?.baseUrl == null)
|
|
40
|
+
return null;
|
|
41
|
+
return metaFileContentUrl(this.credentials.baseUrl, ref);
|
|
42
|
+
}
|
|
43
|
+
async getBinaryImageUri(ref) {
|
|
44
|
+
if (this.credentials?.baseUrl == null)
|
|
45
|
+
return null;
|
|
46
|
+
return binaryImageUrl(this.credentials.baseUrl, ref);
|
|
47
|
+
}
|
|
48
|
+
async getLocalCopy(ref) {
|
|
49
|
+
if (this.credentials?.baseUrl == null)
|
|
50
|
+
return null;
|
|
51
|
+
const url = metaFileContentUrl(this.credentials.baseUrl, ref);
|
|
52
|
+
const path = `${RNFS.DocumentDirectoryPath}/${sanitizeFileName(ref.fileName)}`;
|
|
53
|
+
const saved = await downloadUrlToPath(url, path, buildCookie(this.credentials));
|
|
54
|
+
return saved != null ? { path: saved, fileName: ref.fileName } : null;
|
|
55
|
+
}
|
|
56
|
+
async openInExternalApp(ref) {
|
|
57
|
+
const local = await this.getLocalCopy(ref);
|
|
58
|
+
if (local == null)
|
|
59
|
+
return;
|
|
60
|
+
await openLocalFile(local.path);
|
|
61
|
+
}
|
|
62
|
+
async saveToDevice(ref) {
|
|
63
|
+
if (this.credentials?.baseUrl == null)
|
|
64
|
+
return false;
|
|
65
|
+
return saveUrlToDevice(metaFileDownloadUrl(this.credentials.baseUrl, ref), ref.fileName, buildCookie(this.credentials));
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=AopFileApi.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AopFileApi.js","sourceRoot":"","sources":["../../../src/apiProviders/File/AopFileApi.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,IAAI,MAAM,iBAAiB,CAAC;AACnC,OAAO,EAAC,gBAAgB,EAAC,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAC,UAAU,EAAC,MAAM,0BAA0B,CAAC;AASpD,OAAO,EACL,cAAc,EACd,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,aAAa,EACb,eAAe,GAChB,MAAM,SAAS,CAAC;AAEjB,MAAM,OAAO,UAAU;IACrB,MAAM,CAAC,iBAAiB,GAAG,IAAI,CAAC;IACxB,WAAW,CAAiC;IAEpD,gBAAe,CAAC;IAEhB,IAAI,CAAC,EAAC,MAAM,EAAE,CAAC,EAAE,GAAG,IAAI,EAAe;QACrC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC;IAED,KAAK;QACH,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,WAAW;QACf,IAAI,CAAC,UAAU,CAAC,iBAAiB;YAAE,OAAO,KAAK,CAAC;QAEhD,MAAM,EAAC,WAAW,EAAC,GAAG,MAAM,UAAU,EAAE,CAAC;QACzC,OAAO,CAAC,CAAC,WAAW,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,GAAY;QAC9B,IAAI,IAAI,CAAC,WAAW,EAAE,OAAO,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC;QACnD,OAAO,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAC3D,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,GAAmB;QACzC,IAAI,IAAI,CAAC,WAAW,EAAE,OAAO,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC;QACnD,OAAO,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,GAAY;QAC7B,IAAI,IAAI,CAAC,WAAW,EAAE,OAAO,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC;QAEnD,MAAM,GAAG,GAAG,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAC9D,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,qBAAqB,IAAI,gBAAgB,CAC5D,GAAG,CAAC,QAAQ,CACb,EAAE,CAAC;QACJ,MAAM,KAAK,GAAG,MAAM,iBAAiB,CACnC,GAAG,EACH,IAAI,EACJ,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAC9B,CAAC;QAEF,OAAO,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACtE,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,GAAY;QAClC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QAC3C,IAAI,KAAK,IAAI,IAAI;YAAE,OAAO;QAE1B,MAAM,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,GAAY;QAC7B,IAAI,IAAI,CAAC,WAAW,EAAE,OAAO,IAAI,IAAI;YAAE,OAAO,KAAK,CAAC;QAEpD,OAAO,eAAe,CACpB,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,CAAC,EAClD,GAAG,CAAC,QAAQ,EACZ,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAC9B,CAAC;IACJ,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
export interface FileRef {
|
|
2
|
+
id: number;
|
|
3
|
+
fileName: string;
|
|
4
|
+
isMetaFile?: boolean;
|
|
5
|
+
}
|
|
6
|
+
export interface BinaryImageRef {
|
|
7
|
+
model: string;
|
|
8
|
+
id: number;
|
|
9
|
+
version: number;
|
|
10
|
+
field: string;
|
|
11
|
+
}
|
|
12
|
+
export interface LocalFile {
|
|
13
|
+
path: string;
|
|
14
|
+
fileName: string;
|
|
15
|
+
mimeType?: string;
|
|
16
|
+
}
|
|
17
|
+
export interface FileApiCredentials {
|
|
18
|
+
baseUrl: string;
|
|
19
|
+
token: string;
|
|
20
|
+
jsessionId?: string;
|
|
21
|
+
}
|
|
22
|
+
export interface FileInitData extends FileApiCredentials {
|
|
23
|
+
userId: number;
|
|
24
|
+
}
|
|
25
|
+
export interface FileApi {
|
|
26
|
+
init(data: FileInitData): void;
|
|
27
|
+
reset(ref?: FileRef): void;
|
|
28
|
+
isAvailable(): Promise<boolean>;
|
|
29
|
+
getDisplayUri(ref: FileRef): Promise<string | null>;
|
|
30
|
+
getBinaryImageUri(ref: BinaryImageRef): Promise<string | null>;
|
|
31
|
+
getLocalCopy(ref: FileRef): Promise<LocalFile | null>;
|
|
32
|
+
openInExternalApp(ref: FileRef): Promise<void>;
|
|
33
|
+
saveToDevice(ref: FileRef): Promise<boolean>;
|
|
34
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Axelor Business Solutions
|
|
3
|
+
*
|
|
4
|
+
* Copyright (C) 2026 Axelor (<http://axelor.com>).
|
|
5
|
+
*
|
|
6
|
+
* This program is free software: you can redistribute it and/or modify
|
|
7
|
+
* it under the terms of the GNU Affero General Public License, version 3,
|
|
8
|
+
* as published by the Free Software Foundation.
|
|
9
|
+
*
|
|
10
|
+
* This program is distributed in the hope that it will be useful,
|
|
11
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
* GNU Affero General Public License for more details.
|
|
14
|
+
*
|
|
15
|
+
* You should have received a copy of the GNU Affero General Public License
|
|
16
|
+
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
|
+
*/
|
|
18
|
+
export {};
|
|
19
|
+
//# sourceMappingURL=FileApiProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FileApiProvider.js","sourceRoot":"","sources":["../../../src/apiProviders/File/FileApiProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { BinaryImageRef, FileApi, FileInitData, FileRef, LocalFile } from './FileApiProvider';
|
|
2
|
+
export declare class GatewayFileApi implements FileApi {
|
|
3
|
+
private fileApis;
|
|
4
|
+
constructor(...fileApis: FileApi[]);
|
|
5
|
+
init(data: FileInitData): void;
|
|
6
|
+
reset(ref?: FileRef): void;
|
|
7
|
+
isAvailable(): Promise<boolean>;
|
|
8
|
+
getDisplayUri(ref: FileRef): Promise<string | null>;
|
|
9
|
+
getBinaryImageUri(ref: BinaryImageRef): Promise<string | null>;
|
|
10
|
+
getLocalCopy(ref: FileRef): Promise<LocalFile | null>;
|
|
11
|
+
openInExternalApp(ref: FileRef): Promise<void>;
|
|
12
|
+
saveToDevice(ref: FileRef): Promise<boolean>;
|
|
13
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Axelor Business Solutions
|
|
3
|
+
*
|
|
4
|
+
* Copyright (C) 2026 Axelor (<http://axelor.com>).
|
|
5
|
+
*
|
|
6
|
+
* This program is free software: you can redistribute it and/or modify
|
|
7
|
+
* it under the terms of the GNU Affero General Public License, version 3,
|
|
8
|
+
* as published by the Free Software Foundation.
|
|
9
|
+
*
|
|
10
|
+
* This program is distributed in the hope that it will be useful,
|
|
11
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
* GNU Affero General Public License for more details.
|
|
14
|
+
*
|
|
15
|
+
* You should have received a copy of the GNU Affero General Public License
|
|
16
|
+
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
|
+
*/
|
|
18
|
+
async function getAvailableFileApi(fileApis) {
|
|
19
|
+
for (const _fileApi of fileApis) {
|
|
20
|
+
if (await _fileApi.isAvailable())
|
|
21
|
+
return _fileApi;
|
|
22
|
+
}
|
|
23
|
+
throw new Error('No provider available, please check your configuration.');
|
|
24
|
+
}
|
|
25
|
+
export class GatewayFileApi {
|
|
26
|
+
fileApis;
|
|
27
|
+
constructor(...fileApis) {
|
|
28
|
+
this.fileApis = fileApis;
|
|
29
|
+
}
|
|
30
|
+
init(data) {
|
|
31
|
+
this.fileApis.forEach(_fileApi => _fileApi.init(data));
|
|
32
|
+
}
|
|
33
|
+
reset(ref) {
|
|
34
|
+
this.fileApis.forEach(_fileApi => _fileApi.reset(ref));
|
|
35
|
+
}
|
|
36
|
+
async isAvailable() {
|
|
37
|
+
const _fileApi = await getAvailableFileApi(this.fileApis);
|
|
38
|
+
return _fileApi.isAvailable();
|
|
39
|
+
}
|
|
40
|
+
async getDisplayUri(ref) {
|
|
41
|
+
const _fileApi = await getAvailableFileApi(this.fileApis);
|
|
42
|
+
return _fileApi.getDisplayUri(ref);
|
|
43
|
+
}
|
|
44
|
+
async getBinaryImageUri(ref) {
|
|
45
|
+
const _fileApi = await getAvailableFileApi(this.fileApis);
|
|
46
|
+
return _fileApi.getBinaryImageUri(ref);
|
|
47
|
+
}
|
|
48
|
+
async getLocalCopy(ref) {
|
|
49
|
+
const _fileApi = await getAvailableFileApi(this.fileApis);
|
|
50
|
+
return _fileApi.getLocalCopy(ref);
|
|
51
|
+
}
|
|
52
|
+
async openInExternalApp(ref) {
|
|
53
|
+
const _fileApi = await getAvailableFileApi(this.fileApis);
|
|
54
|
+
return _fileApi.openInExternalApp(ref);
|
|
55
|
+
}
|
|
56
|
+
async saveToDevice(ref) {
|
|
57
|
+
const _fileApi = await getAvailableFileApi(this.fileApis);
|
|
58
|
+
return _fileApi.saveToDevice(ref);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=GatewayFileApi.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GatewayFileApi.js","sourceRoot":"","sources":["../../../src/apiProviders/File/GatewayFileApi.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAUH,KAAK,UAAU,mBAAmB,CAAC,QAAmB;IACpD,KAAK,MAAM,QAAQ,IAAI,QAAQ,EAAE,CAAC;QAChC,IAAI,MAAM,QAAQ,CAAC,WAAW,EAAE;YAAE,OAAO,QAAQ,CAAC;IACpD,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;AAC7E,CAAC;AAED,MAAM,OAAO,cAAc;IACjB,QAAQ,CAAY;IAE5B,YAAY,GAAG,QAAmB;QAChC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED,IAAI,CAAC,IAAkB;QACrB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,GAAa;QACjB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,WAAW;QACf,MAAM,QAAQ,GAAG,MAAM,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1D,OAAO,QAAQ,CAAC,WAAW,EAAE,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,GAAY;QAC9B,MAAM,QAAQ,GAAG,MAAM,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1D,OAAO,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,GAAmB;QACzC,MAAM,QAAQ,GAAG,MAAM,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1D,OAAO,QAAQ,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,GAAY;QAC7B,MAAM,QAAQ,GAAG,MAAM,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1D,OAAO,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,GAAY;QAClC,MAAM,QAAQ,GAAG,MAAM,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1D,OAAO,QAAQ,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,GAAY;QAC7B,MAAM,QAAQ,GAAG,MAAM,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1D,OAAO,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC;CACF"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { FileApi } from './FileApiProvider';
|
|
2
|
+
declare class FileProvider {
|
|
3
|
+
private fileApi;
|
|
4
|
+
constructor(fileApi: FileApi);
|
|
5
|
+
setFileApi(newFileApi: FileApi): void;
|
|
6
|
+
getFileApi(): FileApi;
|
|
7
|
+
}
|
|
8
|
+
export declare function useFileApi(): FileApi;
|
|
9
|
+
export declare function getFileApi(): FileApi;
|
|
10
|
+
export declare function registerFileApi(fileApi: FileApi): void;
|
|
11
|
+
export declare const fileProvider: FileProvider;
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Axelor Business Solutions
|
|
3
|
+
*
|
|
4
|
+
* Copyright (C) 2026 Axelor (<http://axelor.com>).
|
|
5
|
+
*
|
|
6
|
+
* This program is free software: you can redistribute it and/or modify
|
|
7
|
+
* it under the terms of the GNU Affero General Public License, version 3,
|
|
8
|
+
* as published by the Free Software Foundation.
|
|
9
|
+
*
|
|
10
|
+
* This program is distributed in the hope that it will be useful,
|
|
11
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
* GNU Affero General Public License for more details.
|
|
14
|
+
*
|
|
15
|
+
* You should have received a copy of the GNU Affero General Public License
|
|
16
|
+
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
|
+
*/
|
|
18
|
+
import { useMemo } from 'react';
|
|
19
|
+
import { AopFileApi } from './AopFileApi';
|
|
20
|
+
class FileProvider {
|
|
21
|
+
fileApi;
|
|
22
|
+
constructor(fileApi) {
|
|
23
|
+
this.fileApi = fileApi;
|
|
24
|
+
this.fileApi = fileApi;
|
|
25
|
+
}
|
|
26
|
+
setFileApi(newFileApi) {
|
|
27
|
+
this.fileApi = newFileApi;
|
|
28
|
+
}
|
|
29
|
+
getFileApi() {
|
|
30
|
+
return this.fileApi;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
export function useFileApi() {
|
|
34
|
+
return useMemo(() => fileProvider.getFileApi(), []);
|
|
35
|
+
}
|
|
36
|
+
export function getFileApi() {
|
|
37
|
+
return fileProvider.getFileApi();
|
|
38
|
+
}
|
|
39
|
+
export function registerFileApi(fileApi) {
|
|
40
|
+
fileProvider.setFileApi(fileApi);
|
|
41
|
+
}
|
|
42
|
+
export const fileProvider = new FileProvider(new AopFileApi());
|
|
43
|
+
//# sourceMappingURL=Provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Provider.js","sourceRoot":"","sources":["../../../src/apiProviders/File/Provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAC,OAAO,EAAC,MAAM,OAAO,CAAC;AAC9B,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAC;AAGxC,MAAM,YAAY;IACI;IAApB,YAAoB,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;QAClC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,UAAU,CAAC,UAAmB;QAC5B,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC;IAC5B,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;CACF;AAED,MAAM,UAAU,UAAU;IACxB,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,OAAO,YAAY,CAAC,UAAU,EAAE,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,OAAgB;IAC9C,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,IAAI,UAAU,EAAE,CAAC,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Axelor Business Solutions
|
|
3
|
+
*
|
|
4
|
+
* Copyright (C) 2026 Axelor (<http://axelor.com>).
|
|
5
|
+
*
|
|
6
|
+
* This program is free software: you can redistribute it and/or modify
|
|
7
|
+
* it under the terms of the GNU Affero General Public License, version 3,
|
|
8
|
+
* as published by the Free Software Foundation.
|
|
9
|
+
*
|
|
10
|
+
* This program is distributed in the hope that it will be useful,
|
|
11
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
* GNU Affero General Public License for more details.
|
|
14
|
+
*
|
|
15
|
+
* You should have received a copy of the GNU Affero General Public License
|
|
16
|
+
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
|
+
*/
|
|
18
|
+
export * from './AopFileApi';
|
|
19
|
+
export * from './FileApiProvider';
|
|
20
|
+
export * from './GatewayFileApi';
|
|
21
|
+
export * from './Provider';
|
|
22
|
+
export * from './utils';
|
|
23
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/apiProviders/File/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { BinaryImageRef, FileApiCredentials, FileRef } from './FileApiProvider';
|
|
2
|
+
export type Translate = (key: string) => string;
|
|
3
|
+
export declare function buildCookie(credentials?: FileApiCredentials): string;
|
|
4
|
+
export declare function metaFileContentUrl(baseUrl: string, ref: FileRef): string;
|
|
5
|
+
export declare function metaFileDownloadUrl(baseUrl: string, ref: FileRef): string;
|
|
6
|
+
export declare function binaryImageUrl(baseUrl: string, ref: BinaryImageRef): string;
|
|
7
|
+
export declare function getUniqueFileName(basePath: string, fileName: string): Promise<string>;
|
|
8
|
+
export declare function requestStoragePermission(translate?: Translate): Promise<boolean>;
|
|
9
|
+
export declare function openLocalFile(path: string, translate?: Translate): Promise<void>;
|
|
10
|
+
export declare function downloadUrlToPath(url: string, toFile: string, cookie: string): Promise<string | null>;
|
|
11
|
+
export declare function saveUrlToDevice(url: string, fileName: string, cookie: string, translate?: Translate): Promise<boolean>;
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Axelor Business Solutions
|
|
3
|
+
*
|
|
4
|
+
* Copyright (C) 2026 Axelor (<http://axelor.com>).
|
|
5
|
+
*
|
|
6
|
+
* This program is free software: you can redistribute it and/or modify
|
|
7
|
+
* it under the terms of the GNU Affero General Public License, version 3,
|
|
8
|
+
* as published by the Free Software Foundation.
|
|
9
|
+
*
|
|
10
|
+
* This program is distributed in the hope that it will be useful,
|
|
11
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
* GNU Affero General Public License for more details.
|
|
14
|
+
*
|
|
15
|
+
* You should have received a copy of the GNU Affero General Public License
|
|
16
|
+
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
|
+
*/
|
|
18
|
+
import { PermissionsAndroid, Platform } from 'react-native';
|
|
19
|
+
import RNFS from 'react-native-fs';
|
|
20
|
+
import RNFetchBlob from 'react-native-blob-util';
|
|
21
|
+
import Share from 'react-native-share';
|
|
22
|
+
import FileViewer from 'react-native-file-viewer';
|
|
23
|
+
import { i18nProvider } from '../../i18n';
|
|
24
|
+
import { sanitizeFileName, showToastMessage } from '../../utils';
|
|
25
|
+
const defaultTranslate = key => i18nProvider.i18n.t(key);
|
|
26
|
+
const META_FILE_MODEL = 'com.axelor.meta.db.MetaFile';
|
|
27
|
+
export function buildCookie(credentials) {
|
|
28
|
+
return `CSRF-TOKEN=${credentials?.token}; ${credentials?.jsessionId}`;
|
|
29
|
+
}
|
|
30
|
+
export function metaFileContentUrl(baseUrl, ref) {
|
|
31
|
+
return ref.isMetaFile === false
|
|
32
|
+
? `${baseUrl}ws/dms/inline/${ref.id}`
|
|
33
|
+
: `${baseUrl}ws/rest/${META_FILE_MODEL}/${ref.id}/content/download`;
|
|
34
|
+
}
|
|
35
|
+
export function metaFileDownloadUrl(baseUrl, ref) {
|
|
36
|
+
return ref.isMetaFile === false
|
|
37
|
+
? `${baseUrl}ws/dms/download/${ref.id}`
|
|
38
|
+
: `${baseUrl}ws/rest/${META_FILE_MODEL}/${ref.id}/content/download`;
|
|
39
|
+
}
|
|
40
|
+
export function binaryImageUrl(baseUrl, ref) {
|
|
41
|
+
const versionParams = ref.version != null
|
|
42
|
+
? `v=${ref.version}&parentId=${ref.id}&parentModel=${ref.model}&`
|
|
43
|
+
: '';
|
|
44
|
+
return `${baseUrl}ws/rest/${ref.model}/${ref.id}/${ref.field}/download?${versionParams}image=true`;
|
|
45
|
+
}
|
|
46
|
+
function getFileExtension(fileName) {
|
|
47
|
+
return fileName?.split('.').pop();
|
|
48
|
+
}
|
|
49
|
+
export async function getUniqueFileName(basePath, fileName) {
|
|
50
|
+
const extension = getFileExtension(fileName);
|
|
51
|
+
const baseName = sanitizeFileName(fileName)?.replaceAll(`.${extension}`, '');
|
|
52
|
+
let filePath = `${basePath}/${baseName}.${extension}`;
|
|
53
|
+
let counter = 1;
|
|
54
|
+
while (await RNFS.exists(filePath)) {
|
|
55
|
+
filePath = `${basePath}/${baseName}(${counter}).${extension}`;
|
|
56
|
+
counter++;
|
|
57
|
+
}
|
|
58
|
+
return filePath;
|
|
59
|
+
}
|
|
60
|
+
export async function requestStoragePermission(translate = defaultTranslate) {
|
|
61
|
+
if (Platform.OS === 'ios' || Number(Platform.Version) >= 33) {
|
|
62
|
+
return true;
|
|
63
|
+
}
|
|
64
|
+
try {
|
|
65
|
+
const granted = await PermissionsAndroid.request(PermissionsAndroid.PERMISSIONS.WRITE_EXTERNAL_STORAGE, {
|
|
66
|
+
title: translate('Base_StoragePermissionRequired'),
|
|
67
|
+
message: translate('Base_StoragePermissionDetails'),
|
|
68
|
+
buttonPositive: translate('Base_OK'),
|
|
69
|
+
buttonNegative: translate('Base_Cancel'),
|
|
70
|
+
});
|
|
71
|
+
return granted === PermissionsAndroid.RESULTS.GRANTED;
|
|
72
|
+
}
|
|
73
|
+
catch {
|
|
74
|
+
return false;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
export async function openLocalFile(path, translate = defaultTranslate) {
|
|
78
|
+
try {
|
|
79
|
+
await FileViewer.open(path, { showOpenWithDialog: true });
|
|
80
|
+
}
|
|
81
|
+
catch {
|
|
82
|
+
showToastMessage({
|
|
83
|
+
type: 'error',
|
|
84
|
+
position: 'bottom',
|
|
85
|
+
text1: translate('Auth_Error'),
|
|
86
|
+
text2: translate('Auth_CannotOpenFile'),
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
export async function downloadUrlToPath(url, toFile, cookie) {
|
|
91
|
+
try {
|
|
92
|
+
await RNFS.downloadFile({ fromUrl: url, toFile, headers: { Cookie: cookie } })
|
|
93
|
+
.promise;
|
|
94
|
+
return toFile;
|
|
95
|
+
}
|
|
96
|
+
catch {
|
|
97
|
+
return null;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
export async function saveUrlToDevice(url, fileName, cookie, translate = defaultTranslate) {
|
|
101
|
+
if (!(await requestStoragePermission(translate))) {
|
|
102
|
+
showToastMessage({
|
|
103
|
+
type: 'error',
|
|
104
|
+
position: 'bottom',
|
|
105
|
+
text1: translate('Base_Error'),
|
|
106
|
+
text2: translate('Base_DownloadPermissionDenied'),
|
|
107
|
+
});
|
|
108
|
+
return false;
|
|
109
|
+
}
|
|
110
|
+
const { config, fs } = RNFetchBlob;
|
|
111
|
+
const dir = Platform.OS === 'ios' ? fs.dirs.DocumentDir : fs.dirs.LegacyDownloadDir;
|
|
112
|
+
const path = await getUniqueFileName(dir, fileName);
|
|
113
|
+
try {
|
|
114
|
+
const res = await config({
|
|
115
|
+
fileCache: true,
|
|
116
|
+
path,
|
|
117
|
+
IOSBackgroundTask: true,
|
|
118
|
+
addAndroidDownloads: {
|
|
119
|
+
useDownloadManager: true,
|
|
120
|
+
notification: true,
|
|
121
|
+
title: fileName,
|
|
122
|
+
path,
|
|
123
|
+
description: fileName,
|
|
124
|
+
mediaScannable: true,
|
|
125
|
+
},
|
|
126
|
+
}).fetch('GET', url, { Cookie: cookie });
|
|
127
|
+
if (Platform.OS === 'ios') {
|
|
128
|
+
await Share.open({ url: 'file://' + res.path(), saveToFiles: true }).catch(() => { });
|
|
129
|
+
}
|
|
130
|
+
showToastMessage({
|
|
131
|
+
type: 'success',
|
|
132
|
+
position: 'bottom',
|
|
133
|
+
text1: translate('Base_Success'),
|
|
134
|
+
text2: translate(Platform.OS === 'ios' ? 'Base_FileDownloadiOS' : 'Base_FileDownload'),
|
|
135
|
+
});
|
|
136
|
+
return true;
|
|
137
|
+
}
|
|
138
|
+
catch {
|
|
139
|
+
showToastMessage({
|
|
140
|
+
type: 'error',
|
|
141
|
+
position: 'bottom',
|
|
142
|
+
text1: translate('Base_Error'),
|
|
143
|
+
text2: translate('Base_ErrorOnDownload'),
|
|
144
|
+
});
|
|
145
|
+
return false;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/apiProviders/File/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ModelApi } from './ModelApiProvider';
|
|
2
|
-
import { Query, ReadOptions, RequestResponse } from './utils';
|
|
2
|
+
import { Query, ReadOptions, RequestResponse, FieldsResponse } from './utils';
|
|
3
3
|
export declare class AopModelApi implements ModelApi {
|
|
4
4
|
constructor();
|
|
5
5
|
static isOnlineAvailable: boolean;
|
|
@@ -20,6 +20,9 @@ export declare class AopModelApi implements ModelApi {
|
|
|
20
20
|
id: number;
|
|
21
21
|
query: ReadOptions;
|
|
22
22
|
}): Promise<RequestResponse>;
|
|
23
|
+
getFields({ modelName }: {
|
|
24
|
+
modelName: string;
|
|
25
|
+
}): Promise<FieldsResponse>;
|
|
23
26
|
search({ modelName, query, }: {
|
|
24
27
|
modelName: string;
|
|
25
28
|
query: Query;
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
*/
|
|
18
18
|
import axios from 'axios';
|
|
19
19
|
import { getNetInfo } from '../../api/net-info-utils';
|
|
20
|
-
import { REQUEST_LIMIT } from './utils';
|
|
20
|
+
import { REQUEST_LIMIT, } from './utils';
|
|
21
21
|
export class AopModelApi {
|
|
22
22
|
constructor() { }
|
|
23
23
|
static isOnlineAvailable = true;
|
|
@@ -48,6 +48,9 @@ export class AopModelApi {
|
|
|
48
48
|
fetch({ modelName, id, query, }) {
|
|
49
49
|
return axios.post(`ws/rest/${modelName}/${id}/fetch`, query);
|
|
50
50
|
}
|
|
51
|
+
getFields({ modelName }) {
|
|
52
|
+
return axios.get(`ws/meta/fields/${modelName}`);
|
|
53
|
+
}
|
|
51
54
|
search({ modelName, query, }) {
|
|
52
55
|
return axios.post(`ws/rest/${modelName}/search`, query);
|
|
53
56
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AopModelApi.js","sourceRoot":"","sources":["../../../src/apiProviders/Model/AopModelApi.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,UAAU,EAAC,MAAM,0BAA0B,CAAC;AAEpD,OAAO,
|
|
1
|
+
{"version":3,"file":"AopModelApi.js","sourceRoot":"","sources":["../../../src/apiProviders/Model/AopModelApi.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,UAAU,EAAC,MAAM,0BAA0B,CAAC;AAEpD,OAAO,EAIL,aAAa,GAEd,MAAM,SAAS,CAAC;AAEjB,MAAM,OAAO,WAAW;IACtB,gBAAe,CAAC;IAEhB,MAAM,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAEhC,IAAI,KAAU,CAAC;IACf,KAAK,KAAU,CAAC;IAChB,MAAM;QACJ,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;YAC3B,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,WAAW;QACf,MAAM,EAAC,WAAW,EAAC,GAAG,MAAM,UAAU,EAAE,CAAC;QAEzC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;YAC3B,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC;gBACnC,OAAO,CAAC,KAAK,CAAC,CAAC;YACjB,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,WAAW,CAAC,CAAC;YACvB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,EACL,SAAS,EACT,IAAI,GAIL;QACC,OAAO,KAAK,CAAC,GAAG,CACd,WAAW,SAAS,WAClB,IAAI,GAAG,aACT,UAAU,aAAa,EAAE,CAC1B,CAAC;IACJ,CAAC;IAED,GAAG,CAAC,EACF,SAAS,EACT,EAAE,GAIH;QACC,OAAO,KAAK,CAAC,GAAG,CAAC,WAAW,SAAS,IAAI,EAAE,EAAE,CAAC,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,EACJ,SAAS,EACT,EAAE,EACF,KAAK,GAKN;QACC,OAAO,KAAK,CAAC,IAAI,CAAC,WAAW,SAAS,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC/D,CAAC;IAED,SAAS,CAAC,EAAC,SAAS,EAAsB;QACxC,OAAO,KAAK,CAAC,GAAG,CAAC,kBAAkB,SAAS,EAAE,CAAC,CAAC;IAClD,CAAC;IAED,MAAM,CAAC,EACL,SAAS,EACT,KAAK,GAIN;QACC,OAAO,KAAK,CAAC,IAAI,CAAC,WAAW,SAAS,SAAS,EAAE,KAAK,CAAC,CAAC;IAC1D,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ModelApi } from './ModelApiProvider';
|
|
2
|
-
import { Query, ReadOptions, RequestResponse } from './utils';
|
|
2
|
+
import { Query, ReadOptions, RequestResponse, FieldsResponse } from './utils';
|
|
3
3
|
export declare class GatewayModelApi implements ModelApi {
|
|
4
4
|
private modelsApi;
|
|
5
5
|
constructor(...modelsApi: ModelApi[]);
|
|
@@ -22,6 +22,9 @@ export declare class GatewayModelApi implements ModelApi {
|
|
|
22
22
|
modelName: string;
|
|
23
23
|
query: Query;
|
|
24
24
|
}): Promise<RequestResponse>;
|
|
25
|
+
getFields({ modelName }: {
|
|
26
|
+
modelName: string;
|
|
27
|
+
}): Promise<FieldsResponse>;
|
|
25
28
|
insert({ modelName, id, data, }: {
|
|
26
29
|
modelName: string;
|
|
27
30
|
id: number;
|
|
@@ -54,6 +54,10 @@ export class GatewayModelApi {
|
|
|
54
54
|
const _modelApi = await getAvailableModelApi(this.modelsApi);
|
|
55
55
|
return _modelApi.search({ modelName, query });
|
|
56
56
|
}
|
|
57
|
+
async getFields({ modelName }) {
|
|
58
|
+
const _modelApi = await getAvailableModelApi(this.modelsApi);
|
|
59
|
+
return _modelApi.getFields({ modelName });
|
|
60
|
+
}
|
|
57
61
|
async insert({ modelName, id, data, }) {
|
|
58
62
|
const _modelApi = await getAvailableModelApi(this.modelsApi);
|
|
59
63
|
return _modelApi.insert({ modelName, id, data });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GatewayModelApi.js","sourceRoot":"","sources":["../../../src/apiProviders/Model/GatewayModelApi.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAKH,KAAK,UAAU,oBAAoB,CAAC,SAAqB;IACvD,KAAK,MAAM,SAAS,IAAI,SAAS,EAAE,CAAC;QAClC,MAAM,YAAY,GAAG,MAAM,SAAS,CAAC,WAAW,EAAE,CAAC;QAEnD,IAAI,YAAY,EAAE,CAAC;YACjB,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;AAC7E,CAAC;AAED,MAAM,OAAO,eAAe;IAClB,SAAS,CAAa;IAE9B,YAAY,GAAG,SAAqB;QAClC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,IAAU;QACnB,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACvC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,WAAW;QACf,MAAM,SAAS,GAAa,MAAM,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAEvE,OAAO,SAAS,CAAC,WAAW,EAAE,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,EACR,SAAS,EACT,EAAE,GAIH;QACC,MAAM,SAAS,GAAa,MAAM,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAEvE,OAAO,SAAS,CAAC,GAAG,CAAC,EAAC,SAAS,EAAE,EAAE,EAAC,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EACX,SAAS,EACT,IAAI,GAIL;QACC,MAAM,SAAS,GAAa,MAAM,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAEvE,OAAO,SAAS,CAAC,MAAM,CAAC,EAAC,SAAS,EAAE,IAAI,EAAC,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,EACV,SAAS,EACT,EAAE,EACF,KAAK,GAKN;QACC,MAAM,SAAS,GAAa,MAAM,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAEvE,OAAO,SAAS,CAAC,KAAK,CAAC,EAAC,SAAS,EAAE,EAAE,EAAE,KAAK,EAAC,CAAC,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EACX,SAAS,EACT,KAAK,GAIN;QACC,MAAM,SAAS,GAAa,MAAM,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAEvE,OAAO,SAAS,CAAC,MAAM,CAAC,EAAC,SAAS,EAAE,KAAK,EAAC,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EACX,SAAS,EACT,EAAE,EACF,IAAI,GAKL;QACC,MAAM,SAAS,GAAa,MAAM,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAEvE,OAAO,SAAS,CAAC,MAAM,CAAC,EAAC,SAAS,EAAE,EAAE,EAAE,IAAI,EAAC,CAAC,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,SAAkB;QAC5B,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACvC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"GatewayModelApi.js","sourceRoot":"","sources":["../../../src/apiProviders/Model/GatewayModelApi.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAKH,KAAK,UAAU,oBAAoB,CAAC,SAAqB;IACvD,KAAK,MAAM,SAAS,IAAI,SAAS,EAAE,CAAC;QAClC,MAAM,YAAY,GAAG,MAAM,SAAS,CAAC,WAAW,EAAE,CAAC;QAEnD,IAAI,YAAY,EAAE,CAAC;YACjB,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;AAC7E,CAAC;AAED,MAAM,OAAO,eAAe;IAClB,SAAS,CAAa;IAE9B,YAAY,GAAG,SAAqB;QAClC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,IAAU;QACnB,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACvC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,WAAW;QACf,MAAM,SAAS,GAAa,MAAM,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAEvE,OAAO,SAAS,CAAC,WAAW,EAAE,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,EACR,SAAS,EACT,EAAE,GAIH;QACC,MAAM,SAAS,GAAa,MAAM,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAEvE,OAAO,SAAS,CAAC,GAAG,CAAC,EAAC,SAAS,EAAE,EAAE,EAAC,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EACX,SAAS,EACT,IAAI,GAIL;QACC,MAAM,SAAS,GAAa,MAAM,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAEvE,OAAO,SAAS,CAAC,MAAM,CAAC,EAAC,SAAS,EAAE,IAAI,EAAC,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,EACV,SAAS,EACT,EAAE,EACF,KAAK,GAKN;QACC,MAAM,SAAS,GAAa,MAAM,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAEvE,OAAO,SAAS,CAAC,KAAK,CAAC,EAAC,SAAS,EAAE,EAAE,EAAE,KAAK,EAAC,CAAC,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EACX,SAAS,EACT,KAAK,GAIN;QACC,MAAM,SAAS,GAAa,MAAM,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAEvE,OAAO,SAAS,CAAC,MAAM,CAAC,EAAC,SAAS,EAAE,KAAK,EAAC,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,EAAC,SAAS,EAAsB;QAC9C,MAAM,SAAS,GAAa,MAAM,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAEvE,OAAO,SAAS,CAAC,SAAS,CAAC,EAAC,SAAS,EAAC,CAAC,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EACX,SAAS,EACT,EAAE,EACF,IAAI,GAKL;QACC,MAAM,SAAS,GAAa,MAAM,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAEvE,OAAO,SAAS,CAAC,MAAM,CAAC,EAAC,SAAS,EAAE,EAAE,EAAE,IAAI,EAAC,CAAC,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,SAAkB;QAC5B,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACvC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;CACF"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Query, ReadOptions, RequestResponse } from './utils';
|
|
1
|
+
import { Query, ReadOptions, RequestResponse, FieldsResponse } from './utils';
|
|
2
2
|
export interface ModelApi {
|
|
3
3
|
init(data?: any): void;
|
|
4
4
|
isAvailable(): Promise<boolean>;
|
|
@@ -19,6 +19,9 @@ export interface ModelApi {
|
|
|
19
19
|
modelName: string;
|
|
20
20
|
query: Query;
|
|
21
21
|
}): Promise<RequestResponse>;
|
|
22
|
+
getFields({ modelName }: {
|
|
23
|
+
modelName: string;
|
|
24
|
+
}): Promise<FieldsResponse>;
|
|
22
25
|
insert({ modelName, id, data, }: {
|
|
23
26
|
modelName: string;
|
|
24
27
|
id: number;
|