IO-1110 Added Used space to media browser
This commit is contained in:
8
app.json
8
app.json
@@ -2,19 +2,19 @@
|
|||||||
"expo": {
|
"expo": {
|
||||||
"name": "ImEX Mobile",
|
"name": "ImEX Mobile",
|
||||||
"slug": "imexmobile",
|
"slug": "imexmobile",
|
||||||
"version": "1.2.1",
|
"version": "1.2.2",
|
||||||
"extra": { "expover": "2" },
|
"extra": { "expover": "1" },
|
||||||
"orientation": "default",
|
"orientation": "default",
|
||||||
"icon": "./assets/logo192noa.png",
|
"icon": "./assets/logo192noa.png",
|
||||||
"ios": {
|
"ios": {
|
||||||
"supportsTablet": true,
|
"supportsTablet": true,
|
||||||
"bundleIdentifier": "com.imex.imexmobile",
|
"bundleIdentifier": "com.imex.imexmobile",
|
||||||
"buildNumber": "1.2.1",
|
"buildNumber": "1.2.2",
|
||||||
"googleServicesFile": "./GoogleService-Info.plist"
|
"googleServicesFile": "./GoogleService-Info.plist"
|
||||||
},
|
},
|
||||||
"android": {
|
"android": {
|
||||||
"package": "com.imex.imexmobile",
|
"package": "com.imex.imexmobile",
|
||||||
"versionCode": 1020100,
|
"versionCode": 1020200,
|
||||||
"googleServicesFile": "./google-services.json"
|
"googleServicesFile": "./google-services.json"
|
||||||
},
|
},
|
||||||
"splash": {
|
"splash": {
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<babeledit_project be_version="2.7.1" version="1.2">
|
<babeledit_project version="1.2" be_version="2.7.1">
|
||||||
<!--
|
<!--
|
||||||
|
|
||||||
BabelEdit project file
|
BabelEdit project file
|
||||||
@@ -1446,6 +1446,27 @@
|
|||||||
</translation>
|
</translation>
|
||||||
</translations>
|
</translations>
|
||||||
</concept_node>
|
</concept_node>
|
||||||
|
<concept_node>
|
||||||
|
<name>storageused</name>
|
||||||
|
<definition_loaded>false</definition_loaded>
|
||||||
|
<description></description>
|
||||||
|
<comment></comment>
|
||||||
|
<default_text></default_text>
|
||||||
|
<translations>
|
||||||
|
<translation>
|
||||||
|
<language>en-US</language>
|
||||||
|
<approved>false</approved>
|
||||||
|
</translation>
|
||||||
|
<translation>
|
||||||
|
<language>es-MX</language>
|
||||||
|
<approved>false</approved>
|
||||||
|
</translation>
|
||||||
|
<translation>
|
||||||
|
<language>fr-CA</language>
|
||||||
|
<approved>false</approved>
|
||||||
|
</translation>
|
||||||
|
</translations>
|
||||||
|
</concept_node>
|
||||||
<concept_node>
|
<concept_node>
|
||||||
<name>temporarystorage</name>
|
<name>temporarystorage</name>
|
||||||
<definition_loaded>false</definition_loaded>
|
<definition_loaded>false</definition_loaded>
|
||||||
|
|||||||
@@ -0,0 +1,44 @@
|
|||||||
|
import { useQuery } from "@apollo/client";
|
||||||
|
import React from "react";
|
||||||
|
import { ProgressBar } from "react-native-paper";
|
||||||
|
import { connect } from "react-redux";
|
||||||
|
import { createStructuredSelector } from "reselect";
|
||||||
|
import { GET_DOC_SIZE_TOTALS } from "../../graphql/documents.queries";
|
||||||
|
import { selectBodyshop } from "../../redux/user/user.selectors";
|
||||||
|
import { View, Text } from "react-native";
|
||||||
|
import { useTranslation } from "react-i18next";
|
||||||
|
import { formatBytes } from "../../util/document-upload.utility";
|
||||||
|
const mapStateToProps = createStructuredSelector({
|
||||||
|
bodyshop: selectBodyshop,
|
||||||
|
});
|
||||||
|
const mapDispatchToProps = (dispatch) => ({
|
||||||
|
//setUserLanguage: language => dispatch(setUserLanguage(language))
|
||||||
|
});
|
||||||
|
export default connect(mapStateToProps, mapDispatchToProps)(JobSpaceAvailable);
|
||||||
|
|
||||||
|
export function JobSpaceAvailable({ bodyshop, style, jobid }) {
|
||||||
|
const { t } = useTranslation();
|
||||||
|
const { data } = useQuery(GET_DOC_SIZE_TOTALS, {
|
||||||
|
variables: { jobId: jobid },
|
||||||
|
skip: !jobid,
|
||||||
|
});
|
||||||
|
|
||||||
|
if (!jobid || !data) return <></>;
|
||||||
|
|
||||||
|
const progress =
|
||||||
|
data.documents_aggregate.aggregate.sum.size /
|
||||||
|
((bodyshop && bodyshop.jobsizelimit) || 1);
|
||||||
|
|
||||||
|
return (
|
||||||
|
<View style={{ margin: 10 }}>
|
||||||
|
<Text style={{ marginBottom: 5 }}>
|
||||||
|
{t("mediabrowser.labels.storageused", {
|
||||||
|
used: formatBytes(data.documents_aggregate.aggregate.sum.size),
|
||||||
|
total: formatBytes((bodyshop && bodyshop.jobsizelimit) || 1),
|
||||||
|
percent: Math.round(progress * 100),
|
||||||
|
})}
|
||||||
|
</Text>
|
||||||
|
<ProgressBar style={[style]} progress={progress} />
|
||||||
|
</View>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -8,6 +8,7 @@ import { createStructuredSelector } from "reselect";
|
|||||||
import { logImEXEvent } from "../../firebase/firebase.analytics";
|
import { logImEXEvent } from "../../firebase/firebase.analytics";
|
||||||
import { selectCurrentCameraJobId } from "../../redux/app/app.selectors";
|
import { selectCurrentCameraJobId } from "../../redux/app/app.selectors";
|
||||||
import CameraSelectJob from "../camera-select-job/camera-select-job.component";
|
import CameraSelectJob from "../camera-select-job/camera-select-job.component";
|
||||||
|
import JobSpaceAvailable from "../job-space-available/job-space-available.component";
|
||||||
import UploadDeleteSwitch from "../upload-delete-switch/upload-delete-switch.component";
|
import UploadDeleteSwitch from "../upload-delete-switch/upload-delete-switch.component";
|
||||||
import UploadProgress from "../upload-progress/upload-progress.component";
|
import UploadProgress from "../upload-progress/upload-progress.component";
|
||||||
|
|
||||||
@@ -31,6 +32,7 @@ export function ImageBrowserScreen({ selectedCameraJobId }) {
|
|||||||
return (
|
return (
|
||||||
<View style={[styles.flex, styles.container]}>
|
<View style={[styles.flex, styles.container]}>
|
||||||
<CameraSelectJob />
|
<CameraSelectJob />
|
||||||
|
<JobSpaceAvailable jobid={selectedCameraJobId} key={`${tick}-space`} />
|
||||||
<UploadDeleteSwitch />
|
<UploadDeleteSwitch />
|
||||||
{!selectedCameraJobId && (
|
{!selectedCameraJobId && (
|
||||||
<View
|
<View
|
||||||
|
|||||||
@@ -96,6 +96,7 @@
|
|||||||
"selectjobassetselector": "Please select a job to upload media. ",
|
"selectjobassetselector": "Please select a job to upload media. ",
|
||||||
"storageexceeded": "Unable to uploaded selected files because there is not sufficient space available on this job.",
|
"storageexceeded": "Unable to uploaded selected files because there is not sufficient space available on this job.",
|
||||||
"storageexceeded_title": "Unable to upload file(s)",
|
"storageexceeded_title": "Unable to upload file(s)",
|
||||||
|
"storageused": "Storage Used: {{used}} / {{total}} ({{percent}}%)",
|
||||||
"temporarystorage": "* Temporary Storage *",
|
"temporarystorage": "* Temporary Storage *",
|
||||||
"uploading": "Uploading"
|
"uploading": "Uploading"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -96,6 +96,7 @@
|
|||||||
"selectjobassetselector": "",
|
"selectjobassetselector": "",
|
||||||
"storageexceeded": "",
|
"storageexceeded": "",
|
||||||
"storageexceeded_title": "",
|
"storageexceeded_title": "",
|
||||||
|
"storageused": "",
|
||||||
"temporarystorage": "",
|
"temporarystorage": "",
|
||||||
"uploading": ""
|
"uploading": ""
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -96,6 +96,7 @@
|
|||||||
"selectjobassetselector": "",
|
"selectjobassetselector": "",
|
||||||
"storageexceeded": "",
|
"storageexceeded": "",
|
||||||
"storageexceeded_title": "",
|
"storageexceeded_title": "",
|
||||||
|
"storageused": "",
|
||||||
"temporarystorage": "",
|
"temporarystorage": "",
|
||||||
"uploading": ""
|
"uploading": ""
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user