diff --git a/libs/ui-components/src/components/Device/EditDeviceWizard/deviceSpecUtils.ts b/libs/ui-components/src/components/Device/EditDeviceWizard/deviceSpecUtils.ts
index 0a79e6b62..bce8ff81a 100644
--- a/libs/ui-components/src/components/Device/EditDeviceWizard/deviceSpecUtils.ts
+++ b/libs/ui-components/src/components/Device/EditDeviceWizard/deviceSpecUtils.ts
@@ -228,7 +228,7 @@ export const toAPIApplication = (app: AppForm): ApplicationProviderSpec => {
return {
name: app.name,
- appType: AppType.AppTypeCompose,
+ appType: app.appType || AppType.AppTypeCompose,
inline: app.files.map(
(file): InlineApplicationFileFixed => ({
path: file.path,
@@ -396,6 +396,7 @@ export const getApplicationValues = (deviceSpec?: DeviceSpec): AppForm[] => {
if (isImageAppProvider(app)) {
return {
specType: AppSpecType.OCI_IMAGE,
+ appType: app.appType,
name: app.name || '',
image: app.image,
variables: getAppFormVariables(app),
@@ -405,6 +406,7 @@ export const getApplicationValues = (deviceSpec?: DeviceSpec): AppForm[] => {
// TODO EDM-2451: Add support for artifact applications
return {
specType: AppSpecType.INLINE,
+ appType: app.appType,
name: app.name || '',
files: (app as InlineApplicationProviderSpec).inline.map((file) => ({
path: file.path || '',
diff --git a/libs/ui-components/src/components/Device/EditDeviceWizard/steps/ApplicationTemplates.tsx b/libs/ui-components/src/components/Device/EditDeviceWizard/steps/ApplicationTemplates.tsx
index 871a119b3..498dcfdad 100644
--- a/libs/ui-components/src/components/Device/EditDeviceWizard/steps/ApplicationTemplates.tsx
+++ b/libs/ui-components/src/components/Device/EditDeviceWizard/steps/ApplicationTemplates.tsx
@@ -1,6 +1,9 @@
import * as React from 'react';
-import { Button, FormGroup, FormSection, Grid, Split, SplitItem } from '@patternfly/react-core';
+import { Button } from '@patternfly/react-core/dist/esm/components/Button';
+import { FormGroup, FormSection } from '@patternfly/react-core/dist/esm/components/Form';
+import { Grid } from '@patternfly/react-core/dist/esm/layouts/Grid';
+import { Split, SplitItem } from '@patternfly/react-core/dist/esm/layouts/Split';
import { FieldArray, useField, useFormikContext } from 'formik';
import { MinusCircleIcon } from '@patternfly/react-icons/dist/js/icons/minus-circle-icon';
import { PlusCircleIcon } from '@patternfly/react-icons/dist/js/icons/plus-circle-icon';
@@ -45,6 +48,7 @@ const ApplicationSection = ({ index, isReadOnly }: { index: number; isReadOnly?:
setValue(
{
specType: AppSpecType.INLINE,
+ appType: (app.appType || ('compose' as unknown as AppForm['appType'])),
name: app.name || '',
files: [{ path: '', content: '' }],
variables: [],
@@ -55,6 +59,7 @@ const ApplicationSection = ({ index, isReadOnly }: { index: number; isReadOnly?:
setValue(
{
specType: AppSpecType.OCI_IMAGE,
+ appType: app.appType,
name: app.name || '',
image: '',
variables: [],
@@ -62,7 +67,7 @@ const ApplicationSection = ({ index, isReadOnly }: { index: number; isReadOnly?:
false,
);
}
- }, [isImageIncomplete, isInlineIncomplete, app.name, setValue]);
+ }, [isImageIncomplete, isInlineIncomplete, app.name, app.appType, setValue]);
return (
+ {isInlineAppForm(app) && (
+
+
+
+ )}
+
{isImageAppForm(app) && }
{isInlineAppForm(app) && }
diff --git a/libs/ui-components/src/types/deviceSpec.ts b/libs/ui-components/src/types/deviceSpec.ts
index ad5fba64a..59048152c 100644
--- a/libs/ui-components/src/types/deviceSpec.ts
+++ b/libs/ui-components/src/types/deviceSpec.ts
@@ -1,4 +1,5 @@
import {
+ AppType,
ArtifactApplicationProviderSpec,
ConfigProviderSpec,
DisruptionBudget,
@@ -46,7 +47,7 @@ type InlineContent = {
type AppBase = {
specType: AppSpecType;
- // appType: AppType - commented out for now, since it only accepts one value ("compose")
+ appType?: AppType;
name?: string;
variables: { name: string; value: string }[];
volumes?: {