diff --git a/public/static/locales/en/launch.json b/public/static/locales/en/launch.json index 8095d705b..2790ae525 100644 --- a/public/static/locales/en/launch.json +++ b/public/static/locales/en/launch.json @@ -32,6 +32,8 @@ "minDiskSpace": "Minimum Disk Space", "minCPUCores": "Minimum CPU Cores", "minMemory": "Minimum Memory", + "mountDataStore": "Mount data store in analysis", + "mountDataStoreHelp": "When enabled, your analysis reads and writes directly to the Data Store. When disabled, files are copied in at launch and copied back when the analysis completes.", "multiInputEmptyLabel": "Select the \"Browse\" button to add inputs.", "newAnalysisName": "{{appName}} analysis1", "name": "Name", diff --git a/src/components/apps/launch/AppLaunchForm.js b/src/components/apps/launch/AppLaunchForm.js index c81dd454e..ee0cdde28 100644 --- a/src/components/apps/launch/AppLaunchForm.js +++ b/src/components/apps/launch/AppLaunchForm.js @@ -166,6 +166,7 @@ const AppLaunchForm = (props) => { version_id, name: appName, app_type, + overall_job_type, groups, requirements, }, @@ -417,6 +418,7 @@ const AppLaunchForm = (props) => { { const { classes } = useStyles(); const { t } = useTranslation("launch"); + const isVICE = overallJobType === TOOL_TYPES.INTERACTIVE; return ( <> @@ -319,6 +323,15 @@ const ResourceRequirementsForm = ({ )} + {isVICE && ( + + )} ); }; diff --git a/src/components/apps/launch/formatters.js b/src/components/apps/launch/formatters.js index a1a4e2e25..8180f9a7e 100644 --- a/src/components/apps/launch/formatters.js +++ b/src/components/apps/launch/formatters.js @@ -38,7 +38,15 @@ const initAppLaunchValues = ( defaultSelectedMaxCpus, defaultMaxCpuCores = defaultSelectedMaxCpus, defaultOutputDir, - app: { id, version_id, system_id, name, requirements, groups }, + app: { + id, + version_id, + system_id, + name, + requirements, + groups, + mount_data_store, + }, } ) => { // If no default_max_cpu_cores is returned from the API, @@ -83,6 +91,7 @@ const initAppLaunchValues = ( app_id: id, app_version_id: version_id, system_id, + mount_data_store: mount_data_store ?? true, groups: initGroupValues(groups), limits: requirements, requirements: reqInitValues || [], @@ -200,6 +209,7 @@ const formatSubmission = ( system_id, app_id, app_version_id, + mount_data_store, requirements, groups, } @@ -223,6 +233,7 @@ const formatSubmission = ( system_id, app_id, app_version_id, + mount_data_store, requirements: formattedRequirements, config: groups?.reduce(paramConfigsReducer, {}), }; diff --git a/src/components/apps/launch/ids.js b/src/components/apps/launch/ids.js index f94939e73..580a5a792 100644 --- a/src/components/apps/launch/ids.js +++ b/src/components/apps/launch/ids.js @@ -50,6 +50,7 @@ const ids = { MIN_DISK_SPACE: "minDiskSpace", TOOL_GPU: "idToolGpu", TOOL_GPU_MODELS: "idToolGpuModels", + MOUNT_DATA_STORE: "mountDataStore", }, TEMPLATE_GROUP: "group", diff --git a/stories/apps/launch/data/JupyterLabNoParamsApp.js b/stories/apps/launch/data/JupyterLabNoParamsApp.js index 73b2fe75c..70dd9bef1 100644 --- a/stories/apps/launch/data/JupyterLabNoParamsApp.js +++ b/stories/apps/launch/data/JupyterLabNoParamsApp.js @@ -22,6 +22,7 @@ const JupyterLabNoParamsApp = { label: "Jupyter Lab no params", id: "4dcda8a6-5761-11ea-bd06-008cfa5ae621", app_type: "DE", + overall_job_type: "interactive", groups: [], };