@axelor/aos-mobile-core 8.2.8 → 8.3.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/README.md +6 -7
- package/lib/api/mail-message-api.d.ts +2 -1
- package/lib/api/mail-message-api.js +15 -2
- package/lib/api/mail-message-api.js.map +1 -1
- package/lib/api/metafile-api.d.ts +1 -2
- package/lib/api/metafile-api.js +2 -5
- package/lib/api/metafile-api.js.map +1 -1
- package/lib/apiProviders/Action/utils.d.ts +1 -0
- package/lib/auth/api/company-api.d.ts +3 -1
- package/lib/auth/api/company-api.js +16 -2
- package/lib/auth/api/company-api.js.map +1 -1
- package/lib/auth/components/molecules/UserCard/UserCard.js +10 -13
- package/lib/auth/components/molecules/UserCard/UserCard.js.map +1 -1
- package/lib/auth/features/asyncFunctionsIndex.d.ts +1 -1
- package/lib/auth/features/asyncFunctionsIndex.js +1 -1
- package/lib/auth/features/asyncFunctionsIndex.js.map +1 -1
- package/lib/auth/features/userSlice.d.ts +0 -1
- package/lib/auth/features/userSlice.js +3 -10
- package/lib/auth/features/userSlice.js.map +1 -1
- package/lib/auth/hooks/use-auth-headers.js +2 -0
- package/lib/auth/hooks/use-auth-headers.js.map +1 -1
- package/lib/auth/i18n/en.json +4 -1
- package/lib/auth/i18n/fr.json +4 -1
- package/lib/auth/models/objectFields.js +6 -0
- package/lib/auth/models/objectFields.js.map +1 -1
- package/lib/auth/screens/SettingsScreen.js +9 -3
- package/lib/auth/screens/SettingsScreen.js.map +1 -1
- package/lib/auth/themes/api.helpers.d.ts +1 -0
- package/lib/{screens/AttachedFilesScreen.js → auth/themes/api.helpers.js} +12 -9
- package/lib/auth/themes/api.helpers.js.map +1 -0
- package/lib/auth/themes/index.d.ts +1 -0
- package/lib/auth/themes/index.js +19 -0
- package/lib/auth/themes/index.js.map +1 -0
- package/lib/auth/themes/register.helpers.d.ts +1 -0
- package/lib/auth/themes/register.helpers.js +40 -0
- package/lib/auth/themes/register.helpers.js.map +1 -0
- package/lib/components/molecules/InputBarCodeCard/InputBarCodeCard.js +1 -1
- package/lib/components/molecules/InputBarCodeCard/InputBarCodeCard.js.map +1 -1
- package/lib/components/organisms/HeaderOptionsMenu/HeaderOptionsMenu.d.ts +1 -2
- package/lib/components/organisms/HeaderOptionsMenu/HeaderOptionsMenu.js +2 -5
- package/lib/components/organisms/HeaderOptionsMenu/HeaderOptionsMenu.js.map +1 -1
- package/lib/components/organisms/MailMessageCommentCard/MailMessageCommentCard.js +1 -1
- package/lib/components/organisms/MailMessageCommentCard/MailMessageCommentCard.js.map +1 -1
- package/lib/components/organisms/ScannerAutocompleteSearch/ScannerAutocompleteSearch.js +1 -1
- package/lib/components/organisms/ScannerAutocompleteSearch/ScannerAutocompleteSearch.js.map +1 -1
- package/lib/components/templates/DoubleScannerSearchBar/DoubleScannerSearchBar.d.ts +34 -0
- package/lib/components/templates/DoubleScannerSearchBar/DoubleScannerSearchBar.js +94 -0
- package/lib/components/templates/DoubleScannerSearchBar/DoubleScannerSearchBar.js.map +1 -0
- package/lib/components/templates/MailMessageView/MailMessageView.d.ts +3 -1
- package/lib/components/templates/MailMessageView/MailMessageView.js +7 -3
- package/lib/components/templates/MailMessageView/MailMessageView.js.map +1 -1
- package/lib/components/templates/PopupMinimalRequiredVersion/PopupMinimalRequiredVersion.d.ts +4 -4
- package/lib/components/templates/PopupMinimalRequiredVersion/PopupMinimalRequiredVersion.js +40 -18
- package/lib/components/templates/PopupMinimalRequiredVersion/PopupMinimalRequiredVersion.js.map +1 -1
- package/lib/components/templates/SearchListView/SearchListView.d.ts +2 -1
- package/lib/components/templates/SearchListView/SearchListView.js +5 -1
- package/lib/components/templates/SearchListView/SearchListView.js.map +1 -1
- package/lib/components/templates/SearchTreeView/SearchTreeView.d.ts +7 -2
- package/lib/components/templates/SearchTreeView/SearchTreeView.js +46 -9
- package/lib/components/templates/SearchTreeView/SearchTreeView.js.map +1 -1
- package/lib/components/templates/UserSearchBar/UserSearchBar.d.ts +1 -1
- package/lib/components/templates/UserSearchBar/UserSearchBar.js +1 -1
- package/lib/components/templates/UserSearchBar/UserSearchBar.js.map +1 -1
- package/lib/components/templates/index.d.ts +1 -1
- package/lib/components/templates/index.js +1 -1
- package/lib/components/templates/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/features/attachedFilesSlice.d.ts +0 -21
- package/lib/features/attachedFilesSlice.js +0 -34
- package/lib/features/attachedFilesSlice.js.map +1 -1
- package/lib/header/hooks.d.ts +1 -16
- package/lib/header/hooks.js +1 -42
- package/lib/header/hooks.js.map +1 -1
- package/lib/header/types.d.ts +0 -1
- package/lib/hooks/use-storage-config.d.ts +1 -0
- package/lib/hooks/use-storage-config.js +34 -11
- package/lib/hooks/use-storage-config.js.map +1 -1
- package/lib/i18n/translations/en.json +10 -2
- package/lib/i18n/translations/fr.json +10 -2
- package/lib/navigator/drawer/Header.js +1 -1
- package/lib/navigator/drawer/Header.js.map +1 -1
- package/lib/screens/MailMessageAttachedFilesScreen.d.ts +5 -0
- package/lib/{components/templates/AttachedFilesView/AttachedFilesView.js → screens/MailMessageAttachedFilesScreen.js} +16 -29
- package/lib/screens/MailMessageAttachedFilesScreen.js.map +1 -0
- package/lib/screens/index.d.ts +8 -10
- package/lib/screens/index.js +3 -4
- package/lib/screens/index.js.map +1 -1
- package/lib/tools/FileDownloader.d.ts +13 -0
- package/lib/tools/FileDownloader.js +115 -0
- package/lib/tools/FileDownloader.js.map +1 -0
- package/lib/tools/index.d.ts +1 -0
- package/lib/tools/index.js +1 -0
- package/lib/tools/index.js.map +1 -1
- package/package.json +5 -3
- package/lib/api/attached-files-api.d.ts +0 -8
- package/lib/api/attached-files-api.js +0 -51
- package/lib/api/attached-files-api.js.map +0 -1
- package/lib/components/templates/AttachedFilesView/AttachedFilesView.d.ts +0 -12
- package/lib/components/templates/AttachedFilesView/AttachedFilesView.js.map +0 -1
- package/lib/screens/AttachedFilesScreen.d.ts +0 -5
- package/lib/screens/AttachedFilesScreen.js.map +0 -1
|
@@ -18,23 +18,24 @@
|
|
|
18
18
|
import { useCallback, useEffect, useMemo } from 'react';
|
|
19
19
|
import { Dimensions } from 'react-native';
|
|
20
20
|
import DeviceInfo from 'react-native-device-info';
|
|
21
|
-
import { useConfig, useTheme } from '@axelor/aos-mobile-ui';
|
|
21
|
+
import { Keyboard, useConfig, useTheme } from '@axelor/aos-mobile-ui';
|
|
22
22
|
import { storage } from '../storage/Storage';
|
|
23
|
+
import { useSelector } from '../redux/hooks';
|
|
23
24
|
const CONFIG_STORAGE_KEY = 'ui_config';
|
|
24
25
|
const SMALL_SCREEN_HEIGHT = 500;
|
|
25
26
|
export const useStorageUpdater = () => {
|
|
26
|
-
const { showFilter, showSubtitles, showToolbox,
|
|
27
|
+
const { showFilter, showSubtitles, showToolbox, virtualKeyboardVisibility } = useConfig();
|
|
27
28
|
const { activeTheme, isColorBlind } = useTheme();
|
|
28
29
|
const storageConfig = useMemo(() => ({
|
|
29
30
|
showFilter,
|
|
30
31
|
showSubtitles,
|
|
31
32
|
showToolbox,
|
|
32
|
-
|
|
33
|
+
virtualKeyboardVisibility,
|
|
33
34
|
activeTheme,
|
|
34
35
|
isColorBlind,
|
|
35
36
|
}), [
|
|
36
37
|
activeTheme,
|
|
37
|
-
|
|
38
|
+
virtualKeyboardVisibility,
|
|
38
39
|
isColorBlind,
|
|
39
40
|
showFilter,
|
|
40
41
|
showSubtitles,
|
|
@@ -45,15 +46,16 @@ export const useStorageUpdater = () => {
|
|
|
45
46
|
}, [storageConfig]);
|
|
46
47
|
};
|
|
47
48
|
export const useConfigUpdater = () => {
|
|
48
|
-
const { setFilterConfig, setShowSubtitles, setShowToolbox,
|
|
49
|
-
const { activateColorBlind, changeTheme } = useTheme();
|
|
49
|
+
const { setFilterConfig, setShowSubtitles, setShowToolbox, setVirtualKeyboardVisibility, } = useConfig();
|
|
50
|
+
const { activateColorBlind, addThemes, changeTheme } = useTheme();
|
|
50
51
|
const updateConfigFromStorage = useCallback(() => {
|
|
51
52
|
const _config = storage.getItem(CONFIG_STORAGE_KEY);
|
|
52
53
|
if (_config != null) {
|
|
53
54
|
setFilterConfig(_config.showFilter);
|
|
54
55
|
setShowSubtitles(_config.showSubtitles);
|
|
55
56
|
setShowToolbox(_config.showToolbox);
|
|
56
|
-
|
|
57
|
+
setVirtualKeyboardVisibility(_config.virtualKeyboardVisibility);
|
|
58
|
+
addThemes(_config.themes);
|
|
57
59
|
if (_config.isColorBlind) {
|
|
58
60
|
activateColorBlind();
|
|
59
61
|
}
|
|
@@ -63,22 +65,43 @@ export const useConfigUpdater = () => {
|
|
|
63
65
|
}
|
|
64
66
|
}, [
|
|
65
67
|
activateColorBlind,
|
|
68
|
+
addThemes,
|
|
66
69
|
changeTheme,
|
|
67
70
|
setFilterConfig,
|
|
68
71
|
setShowSubtitles,
|
|
69
72
|
setShowToolbox,
|
|
70
|
-
|
|
73
|
+
setVirtualKeyboardVisibility,
|
|
71
74
|
]);
|
|
72
75
|
return useMemo(() => ({ updateConfigFromStorage }), [updateConfigFromStorage]);
|
|
73
76
|
};
|
|
77
|
+
export const useCustomThemeOfUser = () => {
|
|
78
|
+
const { activeTheme, themes, changeTheme } = useTheme();
|
|
79
|
+
const { user } = useSelector(state => state.user);
|
|
80
|
+
useEffect(() => {
|
|
81
|
+
const _theme = themes.find(_t => Number(_t.key) === Number(user.theme));
|
|
82
|
+
if (_theme?.isCustom) {
|
|
83
|
+
changeTheme(_theme.key);
|
|
84
|
+
}
|
|
85
|
+
}, [changeTheme, themes, user.theme]);
|
|
86
|
+
useEffect(() => {
|
|
87
|
+
storage.setItem(CONFIG_STORAGE_KEY, {
|
|
88
|
+
...storage.getItem(CONFIG_STORAGE_KEY),
|
|
89
|
+
themes: themes.filter(_t => _t.isCustom),
|
|
90
|
+
activeTheme,
|
|
91
|
+
});
|
|
92
|
+
}, [activeTheme, themes]);
|
|
93
|
+
};
|
|
74
94
|
export const useDefaultValuesOfUser = () => {
|
|
75
|
-
const { setFilterConfig,
|
|
95
|
+
const { setFilterConfig, setVirtualKeyboardVisibility } = useConfig();
|
|
96
|
+
useCustomThemeOfUser();
|
|
76
97
|
useEffect(() => {
|
|
77
98
|
const _config = storage.getItem(CONFIG_STORAGE_KEY);
|
|
78
99
|
if (_config == null) {
|
|
79
|
-
DeviceInfo.getManufacturer().then(manufacturer =>
|
|
100
|
+
DeviceInfo.getManufacturer().then(manufacturer => setVirtualKeyboardVisibility(manufacturer === 'Zebra Technologies'
|
|
101
|
+
? Keyboard.visibility.HiddenOnScannableInputs
|
|
102
|
+
: Keyboard.visibility.Always));
|
|
80
103
|
setFilterConfig(Dimensions.get('window').height > SMALL_SCREEN_HEIGHT);
|
|
81
104
|
}
|
|
82
|
-
}, [setFilterConfig,
|
|
105
|
+
}, [setFilterConfig, setVirtualKeyboardVisibility]);
|
|
83
106
|
};
|
|
84
107
|
//# sourceMappingURL=use-storage-config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-storage-config.js","sourceRoot":"","sources":["../../src/hooks/use-storage-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAC,WAAW,EAAE,SAAS,EAAE,OAAO,EAAC,MAAM,OAAO,CAAC;AACtD,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAC;AACxC,OAAO,UAAU,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAC,SAAS,EAAE,QAAQ,EAAC,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"use-storage-config.js","sourceRoot":"","sources":["../../src/hooks/use-storage-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -43,6 +43,8 @@
|
|
|
43
43
|
"Base_NoAppConfigured": "No module configured on your application, please contact an administrator.",
|
|
44
44
|
"Base_MinimalRequiredVersion": "The current version is below the minimum required version, please update your application.",
|
|
45
45
|
"Base_Contact_Admin": "Please contact an administrator.",
|
|
46
|
+
"Base_Version_APKDownloaded": "The latest APK has been downloaded, please run the update or contact your administrator.",
|
|
47
|
+
"Base_Version_APKDownloadFailed": "The APK download attempt has failed, please contact your administrator to update your application.",
|
|
46
48
|
"Base_Unknown": "Unknown",
|
|
47
49
|
"Base_Next": "Next",
|
|
48
50
|
"Base_Estimated": "Estimated",
|
|
@@ -209,10 +211,16 @@
|
|
|
209
211
|
"Base_PrintTemplate": "Print template",
|
|
210
212
|
"Base_NoRecordsFound": "No records found",
|
|
211
213
|
"Base_NoPermForCreate": "You do not have permission to create this object",
|
|
212
|
-
"
|
|
214
|
+
"Base_AltSerialNo": "Alt. serial no.",
|
|
215
|
+
"Base_StoragePermissionRequired": "Storage permission required",
|
|
216
|
+
"Base_StoragePermissionDetails": "This app needs access to your storage to download files.",
|
|
217
|
+
"Base_ErrorOnDownload": "Something went wrong while downloading the file.",
|
|
218
|
+
"Base_FileDownload": "Download complete, file saved to your download folder.",
|
|
219
|
+
"Base_FileDownloadiOS": "Download complete, file saved.",
|
|
220
|
+
"Base_DownloadPermissionDenied": "The application does not have the necessary permissions to download the file.",
|
|
221
|
+
"Base_NoPermForCreate": "You do not have permission to create this object",
|
|
213
222
|
"Base_SliceAction_FetchFilesDetails": "fetch file details",
|
|
214
223
|
"Base_SliceAction_FetchMetaModule": "fetch meta modules",
|
|
215
|
-
"Base_SliceAction_CountAttachedFiles": "count attachment files",
|
|
216
224
|
"Base_SliceAction_FetchMailMessages": "fetch mail messages",
|
|
217
225
|
"Base_SliceAction_PostMailMessageComment": "post mail message comment",
|
|
218
226
|
"Base_SliceAction_FetchModelSubscribers": "fetch model subscribers",
|
|
@@ -43,6 +43,8 @@
|
|
|
43
43
|
"Base_NoAppConfigured": "Votre application n'est pas configurée, merci de contacter un administrateur.",
|
|
44
44
|
"Base_MinimalRequiredVersion": "La version actuelle est en dessous de la version minimale requise, merci de mettre à jour votre application.",
|
|
45
45
|
"Base_Contact_Admin": "Merci de contacter un administrateur.",
|
|
46
|
+
"Base_Version_APKDownloaded": "Le dernier APK disponible a été téléchargé, veuillez lancer la mise à jour ou contacter votre administrateur",
|
|
47
|
+
"Base_Version_APKDownloadFailed": "La tentative de téléchargement de l'APK a échouée, veuillez contacter votre administrateur pour mettre à jour votre application.",
|
|
46
48
|
"Base_Unknown": "Inconnue",
|
|
47
49
|
"Base_Next": "Suivant",
|
|
48
50
|
"Base_Estimated": "Estimée",
|
|
@@ -209,10 +211,16 @@
|
|
|
209
211
|
"Base_PrintTemplate": "Modèle d'impression",
|
|
210
212
|
"Base_NoRecordsFound": "Aucun enregistrement trouvé",
|
|
211
213
|
"Base_NoPermForCreate": "Vous n'avez pas les permissions pour créer cet objet",
|
|
212
|
-
"
|
|
214
|
+
"Base_AltSerialNo": "N° de série alt.",
|
|
215
|
+
"Base_StoragePermissionRequired": "Accès au stockage requis",
|
|
216
|
+
"Base_StoragePermissionDetails": "L'application a besoin d'avoir accès à votre stockage pour télécharger des fichiers.",
|
|
217
|
+
"Base_ErrorOnDownload": "Il y a eu un problème lors du téléchargement du fichier.",
|
|
218
|
+
"Base_FileDownload": "Téléchargement complété, document sauvegardé dans votre dossier téléchargements.",
|
|
219
|
+
"Base_FileDownloadiOS": "Téléchargement complété, document sauvegardé.",
|
|
220
|
+
"Base_DownloadPermissionDenied": "L'application ne possède pas les permissions nécessaires au téléchargement du fichier.",
|
|
221
|
+
"Base_NoPermForCreate": "Vous n'avez pas les permissions pour créer cet objet",
|
|
213
222
|
"Base_SliceAction_FetchFilesDetails": "récupération des détails du fichier",
|
|
214
223
|
"Base_SliceAction_FetchMetaModule": "récupération des modules",
|
|
215
|
-
"Base_SliceAction_CountAttachedFiles": "comptage des fichiers joints",
|
|
216
224
|
"Base_SliceAction_FetchMailMessages": "récupération des mail messages",
|
|
217
225
|
"Base_SliceAction_PostMailMessageComment": "ajout d'un mail message",
|
|
218
226
|
"Base_SliceAction_FetchModelSubscribers": "récupération des abonnés du modèle",
|
|
@@ -69,7 +69,7 @@ const Header = ({ mainScreen, title, actionID = null, shadedHeader = true }) =>
|
|
|
69
69
|
</Text>
|
|
70
70
|
</View>
|
|
71
71
|
</View>
|
|
72
|
-
{options != null ? (<HeaderOptionsMenu model={options.model} modelId={options.modelId} actions={options.actions} genericActions={genericHeaders} options={options.options}
|
|
72
|
+
{options != null ? (<HeaderOptionsMenu model={options.model} modelId={options.modelId} actions={options.actions} genericActions={genericHeaders} options={options.options} disableMailMessages={options.disableMailMessages} disablePrint={options.disablePrint} barcodeFieldname={options.barcodeFieldname} disableJsonFields={options.disableJsonFields}/>) : null}
|
|
73
73
|
</View>);
|
|
74
74
|
};
|
|
75
75
|
const getHeaderStyles = Colors => StyleSheet.create({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Header.js","sourceRoot":"","sources":["../../../src/navigator/drawer/Header.js"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Header.js","sourceRoot":"","sources":["../../../src/navigator/drawer/Header.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,EAAC,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAC,MAAM,OAAO,CAAC;AAC/E,OAAO,EAAC,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAC,MAAM,cAAc,CAAC;AACpE,OAAO,EAAC,IAAI,EAAE,SAAS,EAAE,aAAa,EAAC,MAAM,uBAAuB,CAAC;AACrE,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AACtD,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,EAAC,aAAa,EAAC,MAAM,YAAY,CAAC;AACzC,OAAO,EAAC,iBAAiB,EAAC,MAAM,kBAAkB,CAAC;AACnD,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,gBAAgB,EAChB,aAAa,GACd,MAAM,cAAc,CAAC;AAEtB,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAC9B,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAE/B,MAAM,MAAM,GAAG,CAAC,EAAC,UAAU,EAAE,KAAK,EAAE,QAAQ,GAAG,IAAI,EAAE,YAAY,GAAG,IAAI,EAAC,EAAE,EAAE;IAC3E,MAAM,MAAM,GAAG,aAAa,EAAE,CAAC;IAC/B,MAAM,IAAI,GAAG,aAAa,EAAE,CAAC;IAE7B,MAAM,EAAC,eAAe,EAAC,GAAG,SAAS,EAAE,CAAC;IACtC,MAAM,EAAC,QAAQ,EAAC,GAAG,aAAa,EAAE,CAAC;IAEnC,IAAI,kBAAkB,GAAG,MAAM,EAAE,CAAC;IAElC,MAAM,EAAC,OAAO,EAAE,cAAc,EAAC,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAE7D,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,EAAE,CAAC;IACzC,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,QAAQ,EAAE,CAAC;IAEzD,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,EAAE;QAChC,OAAO,gBAAgB,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC;IAC7D,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,MAAM,GAAG,eAAe,GAAG,YAAY,GAAG,gBAAgB,CAAC,UAAU,CAAC;QAE5E,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;YAClB,eAAe,CAAC,MAAM,CAAC,CAAC;SACzB;IACH,CAAC,EAAE,CAAC,YAAY,EAAE,eAAe,EAAE,eAAe,CAAC,CAAC,CAAC;IAErD,SAAS,CAAC,GAAG,EAAE;QACb,UAAU,CAAC,OAAO,CAAC,CAAC;IACtB,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,MAAM,aAAa,GAAG,WAAW,CAAC,GAAG,EAAE;QACrC,UAAU,CAAC,qBAAqB,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC/D,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,EAAE,GAAG,UAAU,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAC;QACxD,kBAAkB,CAAC,OAAO,GAAG,EAAE,CAAC;QAEhC,OAAO,GAAG,EAAE;YACV,YAAY,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAC3C,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;IAEpB,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEhE,OAAO,CACL,CAAC,IAAI,CACH,QAAQ,CAAC,CAAC,KAAK,CAAC,EAAE;YAChB,MAAM,EAAC,MAAM,EAAC,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC;YAC1C,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAC7B,CAAC,CAAC,CACF,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAClE;MAAA,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAC1B;QAAA,CAAC,UAAU,CAAC,CAAC,CAAC,CACZ,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,EAAG,CAClE,CAAC,CAAC,CAAC,CACF,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,EAAG,CACxD,CACD;QAAA,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CACjC;UAAA,CAAC,IAAI,CACH,KAAK,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAC1B,QAAQ,CAAC,CAAC,EAAE,CAAC,CACb,aAAa,CAAC,CAAC,CAAC,CAAC,CACjB,oBAAoB,CAAC,CACnB,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,KAAK,GAAG,kBAAkB,CACpD,CACD;YAAA,CAAC,OAAO,EAAE,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CACxC;UAAA,EAAE,IAAI,CACR;QAAA,EAAE,IAAI,CACR;MAAA,EAAE,IAAI,CACN;MAAA,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,CACjB,CAAC,iBAAiB,CAChB,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CACrB,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CACzB,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CACzB,cAAc,CAAC,CAAC,cAAc,CAAC,CAC/B,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CACzB,mBAAmB,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,CACjD,YAAY,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CACnC,gBAAgB,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAC3C,iBAAiB,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAC7C,CACH,CAAC,CAAC,CAAC,IAAI,CACV;IAAA,EAAE,IAAI,CAAC,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,MAAM,CAAC,EAAE,CAC/B,UAAU,CAAC,MAAM,CAAC;IAChB,WAAW,EAAE;QACX,KAAK,EAAE,MAAM,CAAC,IAAI;QAClB,UAAU,EAAE,CAAC,EAAE;KAChB;IACD,MAAM,EAAE;QACN,QAAQ,EAAE,UAAU;QACpB,GAAG,EAAE,CAAC;QACN,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;QACzE,eAAe,EAAE,MAAM,CAAC,eAAe;QACvC,MAAM,EAAE,MAAM;QACd,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,KAAK;QACrC,aAAa,EAAE,KAAK;QACpB,cAAc,EAAE,eAAe;QAC/B,UAAU,EAAE,QAAQ;QACpB,YAAY,EAAE,QAAQ;KACvB;IACD,YAAY,EAAE;QACZ,SAAS,EAAE,CAAC;QACZ,aAAa,EAAE,GAAG;QAClB,WAAW,EAAE,MAAM,CAAC,cAAc,CAAC,UAAU;QAC7C,YAAY,EAAE,EAAC,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAC;KACpC;IACD,OAAO,EAAE;QACP,aAAa,EAAE,KAAK;QACpB,UAAU,EAAE,QAAQ;QACpB,IAAI,EAAE,CAAC;KACR;IACD,cAAc,EAAE;QACd,IAAI,EAAE,CAAC;KACR;CACF,CAAC,CAAC;AAEL,eAAe,MAAM,CAAC"}
|
|
@@ -15,14 +15,14 @@
|
|
|
15
15
|
* You should have received a copy of the GNU Affero General Public License
|
|
16
16
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
17
|
*/
|
|
18
|
-
import React, { useCallback,
|
|
19
|
-
import { useSelector, useDispatch } from 'react-redux';
|
|
18
|
+
import React, { useCallback, useEffect, useMemo, useState } from 'react';
|
|
20
19
|
import { AttachmentCard, ChipSelect, File, HeaderContainer, Screen, ScrollList, useThemeColor, } from '@axelor/aos-mobile-ui';
|
|
21
|
-
import useTranslator from '
|
|
22
|
-
import {
|
|
23
|
-
import { openFileInExternalApp } from '
|
|
24
|
-
import {
|
|
25
|
-
|
|
20
|
+
import { useTranslator } from '../i18n';
|
|
21
|
+
import { useDispatch, useSelector } from '../redux/hooks';
|
|
22
|
+
import { openFileInExternalApp } from '../tools';
|
|
23
|
+
import { getAttachedFilesDetails } from '../features/attachedFilesSlice';
|
|
24
|
+
const MailMessageAttachedFilesScreen = ({ route }) => {
|
|
25
|
+
const { files } = route.params;
|
|
26
26
|
const Colors = useThemeColor();
|
|
27
27
|
const I18n = useTranslator();
|
|
28
28
|
const dispatch = useDispatch();
|
|
@@ -31,19 +31,13 @@ function AttachedFilesView({ files, model, modelId, isStaticList = false, isMeta
|
|
|
31
31
|
const [selectedStatus, setSelectedStatus] = useState([]);
|
|
32
32
|
const [extensionList, setExtensionList] = useState([]);
|
|
33
33
|
const handleShowFile = async (item) => {
|
|
34
|
-
await openFileInExternalApp({ fileName: item.fileName, id: item.id, isMetaFile:
|
|
34
|
+
await openFileInExternalApp({ fileName: item.fileName, id: item.id, isMetaFile: true }, { baseUrl: baseUrl, token: token, jsessionId: jsessionId }, I18n);
|
|
35
35
|
};
|
|
36
36
|
const fetchFilesAPI = useCallback(() => {
|
|
37
|
-
dispatch(
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
})
|
|
42
|
-
: getAttachedFiles({
|
|
43
|
-
model,
|
|
44
|
-
modelId,
|
|
45
|
-
}));
|
|
46
|
-
}, [dispatch, isStaticList, files, model, modelId]);
|
|
37
|
+
dispatch(getAttachedFilesDetails({
|
|
38
|
+
listFiles: files,
|
|
39
|
+
}));
|
|
40
|
+
}, [dispatch, files]);
|
|
47
41
|
const filterOnSelectExtension = useCallback(list => {
|
|
48
42
|
if (!Array.isArray(list) || list.length === 0) {
|
|
49
43
|
return list;
|
|
@@ -56,13 +50,6 @@ function AttachedFilesView({ files, model, modelId, isStaticList = false, isMeta
|
|
|
56
50
|
}
|
|
57
51
|
}, [selectedStatus]);
|
|
58
52
|
const filteredList = useMemo(() => filterOnSelectExtension(attachedFilesList), [filterOnSelectExtension, attachedFilesList]);
|
|
59
|
-
useEffect(() => {
|
|
60
|
-
if (screenTitle) {
|
|
61
|
-
headerActionsProvider.registerModel('core_attachedFiles_details', {
|
|
62
|
-
headerTitle: screenTitle,
|
|
63
|
-
});
|
|
64
|
-
}
|
|
65
|
-
}, [screenTitle]);
|
|
66
53
|
useEffect(() => {
|
|
67
54
|
setExtensionList(Array.from(new Set(attachedFilesList?.map(item => File.getFileExtension(item.fileName)))));
|
|
68
55
|
}, [files, attachedFilesList]);
|
|
@@ -74,8 +61,8 @@ function AttachedFilesView({ files, model, modelId, isStaticList = false, isMeta
|
|
|
74
61
|
key: ext,
|
|
75
62
|
};
|
|
76
63
|
})}/>}/>
|
|
77
|
-
<ScrollList loadingList={loading} data={filteredList} renderItem={({ item }) => (<AttachmentCard fileName={item.fileName} onPress={() => handleShowFile(item)} creationDate={item.createdOn} translator={I18n.t}/>)} fetchData={fetchFilesAPI} filter={true} moreLoading={false} isListEnd={true} translator={I18n.t}
|
|
64
|
+
<ScrollList loadingList={loading} data={filteredList} renderItem={({ item }) => (<AttachmentCard fileName={item.fileName} onPress={() => handleShowFile(item)} creationDate={item.createdOn} translator={I18n.t}/>)} fetchData={fetchFilesAPI} filter={true} moreLoading={false} isListEnd={true} translator={I18n.t}/>
|
|
78
65
|
</Screen>);
|
|
79
|
-
}
|
|
80
|
-
export default
|
|
81
|
-
//# sourceMappingURL=
|
|
66
|
+
};
|
|
67
|
+
export default MailMessageAttachedFilesScreen;
|
|
68
|
+
//# sourceMappingURL=MailMessageAttachedFilesScreen.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MailMessageAttachedFilesScreen.js","sourceRoot":"","sources":["../../src/screens/MailMessageAttachedFilesScreen.tsx"],"names":[],"mappings":"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"}
|
package/lib/screens/index.d.ts
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
declare namespace _default {
|
|
2
|
-
namespace
|
|
2
|
+
namespace MailMessageAttachedFilesScreen {
|
|
3
3
|
export let title: string;
|
|
4
|
-
export {
|
|
5
|
-
export let actionID: string;
|
|
4
|
+
export { MailMessageAttachedFilesScreen as component };
|
|
6
5
|
export namespace options {
|
|
7
6
|
let shadedHeader: boolean;
|
|
8
7
|
}
|
|
@@ -11,8 +10,7 @@ declare namespace _default {
|
|
|
11
10
|
let title_1: string;
|
|
12
11
|
export { title_1 as title };
|
|
13
12
|
export { MailMessageScreen as component };
|
|
14
|
-
let
|
|
15
|
-
export { actionID_1 as actionID };
|
|
13
|
+
export let actionID: string;
|
|
16
14
|
export namespace options_1 {
|
|
17
15
|
let shadedHeader_1: boolean;
|
|
18
16
|
export { shadedHeader_1 as shadedHeader };
|
|
@@ -23,8 +21,8 @@ declare namespace _default {
|
|
|
23
21
|
let title_2: string;
|
|
24
22
|
export { title_2 as title };
|
|
25
23
|
export { BarcodeDisplayScreen as component };
|
|
26
|
-
let
|
|
27
|
-
export {
|
|
24
|
+
let actionID_1: string;
|
|
25
|
+
export { actionID_1 as actionID };
|
|
28
26
|
export namespace options_2 {
|
|
29
27
|
let shadedHeader_2: boolean;
|
|
30
28
|
export { shadedHeader_2 as shadedHeader };
|
|
@@ -35,8 +33,8 @@ declare namespace _default {
|
|
|
35
33
|
let title_3: string;
|
|
36
34
|
export { title_3 as title };
|
|
37
35
|
export { JsonFieldScreen as component };
|
|
38
|
-
let
|
|
39
|
-
export {
|
|
36
|
+
let actionID_2: string;
|
|
37
|
+
export { actionID_2 as actionID };
|
|
40
38
|
export namespace options_3 {
|
|
41
39
|
let shadedHeader_3: boolean;
|
|
42
40
|
export { shadedHeader_3 as shadedHeader };
|
|
@@ -55,7 +53,7 @@ declare namespace _default {
|
|
|
55
53
|
}
|
|
56
54
|
}
|
|
57
55
|
export default _default;
|
|
58
|
-
import
|
|
56
|
+
import MailMessageAttachedFilesScreen_1 from './MailMessageAttachedFilesScreen';
|
|
59
57
|
import MailMessageScreen_1 from './MailMessageScreen';
|
|
60
58
|
import BarcodeDisplayScreen_1 from './BarcodeDisplayScreen';
|
|
61
59
|
import JsonFieldScreen_1 from './JsonFieldScreen';
|
package/lib/screens/index.js
CHANGED
|
@@ -15,16 +15,15 @@
|
|
|
15
15
|
* You should have received a copy of the GNU Affero General Public License
|
|
16
16
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
17
|
*/
|
|
18
|
-
import AttachedFilesScreen from './AttachedFilesScreen';
|
|
19
18
|
import BarcodeDisplayScreen from './BarcodeDisplayScreen';
|
|
20
19
|
import JsonFieldScreen from './JsonFieldScreen';
|
|
20
|
+
import MailMessageAttachedFilesScreen from './MailMessageAttachedFilesScreen';
|
|
21
21
|
import MailMessageScreen from './MailMessageScreen';
|
|
22
22
|
import ProcessListScreen from './ProcessListScreen';
|
|
23
23
|
export default {
|
|
24
|
-
|
|
24
|
+
MailMessageAttachedFilesScreen: {
|
|
25
25
|
title: 'Base_AttachedFiles',
|
|
26
|
-
component:
|
|
27
|
-
actionID: 'core_attachedFiles_details',
|
|
26
|
+
component: MailMessageAttachedFilesScreen,
|
|
28
27
|
options: {
|
|
29
28
|
shadedHeader: false,
|
|
30
29
|
},
|
package/lib/screens/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/screens/index.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/screens/index.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAC1D,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,8BAA8B,MAAM,kCAAkC,CAAC;AAC9E,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AACpD,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AAEpD,eAAe;IACb,8BAA8B,EAAE;QAC9B,KAAK,EAAE,oBAAoB;QAC3B,SAAS,EAAE,8BAA8B;QACzC,OAAO,EAAE;YACP,YAAY,EAAE,KAAK;SACpB;KACF;IACD,iBAAiB,EAAE;QACjB,KAAK,EAAE,mBAAmB;QAC1B,SAAS,EAAE,iBAAiB;QAC5B,QAAQ,EAAE,0BAA0B;QACpC,OAAO,EAAE;YACP,YAAY,EAAE,KAAK;SACpB;KACF;IACD,oBAAoB,EAAE;QACpB,KAAK,EAAE,cAAc;QACrB,SAAS,EAAE,oBAAoB;QAC/B,QAAQ,EAAE,sBAAsB;QAChC,OAAO,EAAE;YACP,YAAY,EAAE,IAAI;SACnB;KACF;IACD,eAAe,EAAE;QACf,KAAK,EAAE,qBAAqB;QAC5B,SAAS,EAAE,eAAe;QAC1B,QAAQ,EAAE,6BAA6B;QACvC,OAAO,EAAE;YACP,YAAY,EAAE,IAAI;SACnB;KACF;IACD,iBAAiB,EAAE;QACjB,KAAK,EAAE,yBAAyB;QAChC,SAAS,EAAE,iBAAiB;QAC5B,OAAO,EAAE;YACP,YAAY,EAAE,KAAK;SACpB;KACF;CACF,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { TranslatorProps } from '../i18n/hooks/use-translator';
|
|
2
|
+
interface FileItem {
|
|
3
|
+
fileName: string;
|
|
4
|
+
id: number;
|
|
5
|
+
isMetaFile?: boolean;
|
|
6
|
+
}
|
|
7
|
+
interface ConnexionNeed {
|
|
8
|
+
baseUrl: string;
|
|
9
|
+
token: string;
|
|
10
|
+
jsessionId?: string;
|
|
11
|
+
}
|
|
12
|
+
export declare const downloadFileOnPhone: (file: FileItem, authentification: ConnexionNeed, I18n: TranslatorProps) => Promise<boolean>;
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Axelor Business Solutions
|
|
3
|
+
*
|
|
4
|
+
* Copyright (C) 2025 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 RNFetchBlob from 'react-native-blob-util';
|
|
20
|
+
import RNFS from 'react-native-fs';
|
|
21
|
+
import Share from 'react-native-share';
|
|
22
|
+
import { File } from '@axelor/aos-mobile-ui';
|
|
23
|
+
import { showToastMessage } from '../utils/show-toast-message';
|
|
24
|
+
async function getUniqueFileName(basePath, fileName) {
|
|
25
|
+
const extension = File.getFileExtension(fileName);
|
|
26
|
+
const baseName = fileName?.replaceAll(`.${extension}`, '');
|
|
27
|
+
let filePath = `${basePath}/${baseName}.${extension}`;
|
|
28
|
+
let counter = 1;
|
|
29
|
+
while (await RNFS.exists(filePath)) {
|
|
30
|
+
filePath = `${basePath}/${baseName}(${counter}).${extension}`;
|
|
31
|
+
counter++;
|
|
32
|
+
}
|
|
33
|
+
return filePath;
|
|
34
|
+
}
|
|
35
|
+
async function requestStoragePermission(I18n) {
|
|
36
|
+
if (Platform.OS === 'ios') {
|
|
37
|
+
return true;
|
|
38
|
+
}
|
|
39
|
+
if (Number(Platform.Version) >= 33) {
|
|
40
|
+
return true;
|
|
41
|
+
}
|
|
42
|
+
try {
|
|
43
|
+
const granted = await PermissionsAndroid.request(PermissionsAndroid.PERMISSIONS.WRITE_EXTERNAL_STORAGE, {
|
|
44
|
+
title: I18n.t('Base_StoragePermissionRequired'),
|
|
45
|
+
message: I18n.t('Base_StoragePermissionDetails'),
|
|
46
|
+
buttonPositive: I18n.t('Base_OK'),
|
|
47
|
+
buttonNegative: I18n.t('Base_Cancel'),
|
|
48
|
+
});
|
|
49
|
+
return granted === PermissionsAndroid.RESULTS.GRANTED;
|
|
50
|
+
}
|
|
51
|
+
catch (err) {
|
|
52
|
+
return false;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
export const downloadFileOnPhone = async (file, authentification, I18n) => {
|
|
56
|
+
if (file == null)
|
|
57
|
+
return;
|
|
58
|
+
const hasPermission = await requestStoragePermission(I18n);
|
|
59
|
+
if (!hasPermission) {
|
|
60
|
+
showToastMessage({
|
|
61
|
+
type: 'error',
|
|
62
|
+
position: 'bottom',
|
|
63
|
+
text1: I18n.t('Base_Error'),
|
|
64
|
+
text2: I18n.t('Base_DownloadPermissionDenied'),
|
|
65
|
+
});
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
const { config, fs } = RNFetchBlob;
|
|
69
|
+
const downloadUrl = file.isMetaFile
|
|
70
|
+
? `${authentification.baseUrl}ws/rest/com.axelor.meta.db.MetaFile/${file.id}/content/download`
|
|
71
|
+
: `${authentification.baseUrl}ws/dms/download/${file.id}`;
|
|
72
|
+
const downloadPath = await getUniqueFileName(Platform.OS === 'ios' ? fs.dirs.DocumentDir : fs.dirs.LegacyDownloadDir, file.fileName);
|
|
73
|
+
const result = await config({
|
|
74
|
+
fileCache: true,
|
|
75
|
+
path: downloadPath,
|
|
76
|
+
IOSBackgroundTask: true,
|
|
77
|
+
addAndroidDownloads: {
|
|
78
|
+
useDownloadManager: true,
|
|
79
|
+
notification: true,
|
|
80
|
+
title: file.fileName,
|
|
81
|
+
path: downloadPath,
|
|
82
|
+
description: 'Downloading file...',
|
|
83
|
+
mediaScannable: true,
|
|
84
|
+
},
|
|
85
|
+
})
|
|
86
|
+
.fetch('GET', downloadUrl, {
|
|
87
|
+
Cookie: `CSRF-TOKEN=${authentification.token}; ${authentification.jsessionId}`,
|
|
88
|
+
})
|
|
89
|
+
.then(async (res) => {
|
|
90
|
+
if (Platform.OS === 'ios') {
|
|
91
|
+
await Share.open({
|
|
92
|
+
url: 'file://' + res.path(),
|
|
93
|
+
saveToFiles: true,
|
|
94
|
+
}).catch(console.error);
|
|
95
|
+
}
|
|
96
|
+
showToastMessage({
|
|
97
|
+
type: 'success',
|
|
98
|
+
position: 'bottom',
|
|
99
|
+
text1: I18n.t('Base_Success'),
|
|
100
|
+
text2: I18n.t(Platform.OS === 'ios' ? 'Base_FileDownloadiOS' : 'Base_FileDownload'),
|
|
101
|
+
});
|
|
102
|
+
return true;
|
|
103
|
+
})
|
|
104
|
+
.catch(() => {
|
|
105
|
+
showToastMessage({
|
|
106
|
+
type: 'error',
|
|
107
|
+
position: 'bottom',
|
|
108
|
+
text1: I18n.t('Base_Error'),
|
|
109
|
+
text2: I18n.t('Base_ErrorOnDownload'),
|
|
110
|
+
});
|
|
111
|
+
return false;
|
|
112
|
+
});
|
|
113
|
+
return result;
|
|
114
|
+
};
|
|
115
|
+
//# sourceMappingURL=FileDownloader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FileDownloader.js","sourceRoot":"","sources":["../../src/tools/FileDownloader.ts"],"names":[],"mappings":"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"}
|
package/lib/tools/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export { clipboardProvider } from "./ClipboardProvider";
|
|
2
2
|
export { contactProvider } from "./ContactProvider";
|
|
3
|
+
export { downloadFileOnPhone } from "./FileDownloader";
|
|
3
4
|
export { handleDocumentSelection } from "./FilePicker";
|
|
4
5
|
export { openFileInExternalApp } from "./FileViewer";
|
|
5
6
|
export { linkingProvider } from "./LinkingProvider";
|
package/lib/tools/index.js
CHANGED
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
*/
|
|
18
18
|
export { clipboardProvider } from './ClipboardProvider';
|
|
19
19
|
export { contactProvider } from './ContactProvider';
|
|
20
|
+
export { downloadFileOnPhone } from './FileDownloader';
|
|
20
21
|
export { handleDocumentSelection } from './FilePicker';
|
|
21
22
|
export { openFileInExternalApp } from './FileViewer';
|
|
22
23
|
export { linkingProvider } from './LinkingProvider';
|
package/lib/tools/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAC,iBAAiB,EAAC,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAC,eAAe,EAAC,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAC,uBAAuB,EAAC,MAAM,cAAc,CAAC;AACrD,OAAO,EAAC,qBAAqB,EAAC,MAAM,cAAc,CAAC;AACnD,OAAO,EAAC,eAAe,EAAC,MAAM,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAC,iBAAiB,EAAC,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAC,eAAe,EAAC,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAC,mBAAmB,EAAC,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAC,uBAAuB,EAAC,MAAM,cAAc,CAAC;AACrD,OAAO,EAAC,qBAAqB,EAAC,MAAM,cAAc,CAAC;AACnD,OAAO,EAAC,eAAe,EAAC,MAAM,mBAAmB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@axelor/aos-mobile-core",
|
|
3
|
-
"version": "8.
|
|
3
|
+
"version": "8.3.0",
|
|
4
4
|
"author": "Axelor",
|
|
5
5
|
"license": "AGPL-3.0-only",
|
|
6
6
|
"publishConfig": {
|
|
@@ -24,8 +24,8 @@
|
|
|
24
24
|
"license:add": "npx add-copyright-header --generate --dir 'src'"
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@axelor/aos-mobile-error": "8.
|
|
28
|
-
"@axelor/aos-mobile-ui": "8.
|
|
27
|
+
"@axelor/aos-mobile-error": "8.3.0",
|
|
28
|
+
"@axelor/aos-mobile-ui": "8.3.0",
|
|
29
29
|
"@react-navigation/drawer": "6.7.2",
|
|
30
30
|
"@react-navigation/native": "6.1.18",
|
|
31
31
|
"@react-navigation/native-stack": "6.11.0",
|
|
@@ -58,6 +58,7 @@
|
|
|
58
58
|
"react-native-mmkv": "2.12.2",
|
|
59
59
|
"react-native-safe-area-context": "4.10.9",
|
|
60
60
|
"react-native-screens": "3.34.0",
|
|
61
|
+
"react-native-share": "12.0.3",
|
|
61
62
|
"react-native-static-safe-area-insets": "^2.2.0",
|
|
62
63
|
"react-native-toast-message": "2.2.0",
|
|
63
64
|
"react-native-vision-camera": "4.2.1",
|
|
@@ -84,6 +85,7 @@
|
|
|
84
85
|
"react-native-mmkv": "2.12.2",
|
|
85
86
|
"react-native-reanimated": "3.8.1",
|
|
86
87
|
"react-native-safe-area-context": "4.10.9",
|
|
88
|
+
"react-native-share": "12.0.3",
|
|
87
89
|
"react-native-static-safe-area-insets": "^2.2.0",
|
|
88
90
|
"react-native-toast-message": "2.2.0",
|
|
89
91
|
"react-native-vision-camera": "4.2.1",
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Axelor Business Solutions
|
|
3
|
-
*
|
|
4
|
-
* Copyright (C) 2025 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 { axiosApiProvider } from '../apiProviders';
|
|
19
|
-
import { fetchFileDetails } from './metafile-api';
|
|
20
|
-
export async function fetchAttachedFiles({ model, modelId, }) {
|
|
21
|
-
return axiosApiProvider
|
|
22
|
-
.get({ url: `/ws/dms/attachments/${model}/${modelId}` })
|
|
23
|
-
.then(response => {
|
|
24
|
-
if (response?.data?.data == null) {
|
|
25
|
-
return response;
|
|
26
|
-
}
|
|
27
|
-
else {
|
|
28
|
-
return fetchFileDetails({
|
|
29
|
-
listFiles: response?.data?.data,
|
|
30
|
-
isMetaFile: false,
|
|
31
|
-
});
|
|
32
|
-
}
|
|
33
|
-
});
|
|
34
|
-
}
|
|
35
|
-
export async function countAttachments({ model, modelId, }) {
|
|
36
|
-
return axiosApiProvider.post({
|
|
37
|
-
url: '/ws/rest/com.axelor.dms.db.DMSFile/search',
|
|
38
|
-
data: {
|
|
39
|
-
data: {
|
|
40
|
-
_domain: 'self.relatedModel = :name AND self.relatedId = :id ' +
|
|
41
|
-
'AND COALESCE(self.isDirectory, FALSE) = FALSE',
|
|
42
|
-
_domainContext: {
|
|
43
|
-
name: model,
|
|
44
|
-
id: modelId,
|
|
45
|
-
},
|
|
46
|
-
},
|
|
47
|
-
fields: ['id'],
|
|
48
|
-
},
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
|
-
//# sourceMappingURL=attached-files-api.js.map
|