diff --git a/spiffworkflow-backend/Dockerfile b/spiffworkflow-backend/Dockerfile index fec358033..99cba25d2 100644 --- a/spiffworkflow-backend/Dockerfile +++ b/spiffworkflow-backend/Dockerfile @@ -20,10 +20,11 @@ FROM base AS deployment # gunicorn3 for web server # default-mysql-client for convenience accessing mysql docker container # vim ftw +# jq because it is really useful, even for scenarios where people might have environment variables with json values they might need to use for configs. about 1MB. RUN apt-get update \ - && apt-get clean -y \ - && apt-get install -y -q git-core curl procps gunicorn3 default-mysql-client vim-tiny \ - && rm -rf /var/lib/apt/lists/* + && apt-get clean -y \ + && apt-get install -y -q git-core curl procps gunicorn3 default-mysql-client vim-tiny jq \ + && rm -rf /var/lib/apt/lists/* # keep pip up to date RUN pip install --upgrade pip @@ -45,7 +46,7 @@ RUN useradd _gunicorn --no-create-home --user-group # default-libmysqlclient-dev for mysqlclient lib RUN apt-get update \ - && apt-get install -y -q gcc libssl-dev libpq-dev default-libmysqlclient-dev pkg-config libffi-dev + && apt-get install -y -q gcc libssl-dev libpq-dev default-libmysqlclient-dev pkg-config libffi-dev # poetry install takes a long time and can be cached if dependencies don't change, # so that's why we tolerate running it twice. diff --git a/spiffworkflow-frontend/src/components/CustomForm.tsx b/spiffworkflow-frontend/src/components/CustomForm.tsx index ea115e6ad..db04738dc 100644 --- a/spiffworkflow-frontend/src/components/CustomForm.tsx +++ b/spiffworkflow-frontend/src/components/CustomForm.tsx @@ -59,6 +59,20 @@ export default function CustomForm({ 'numeric-range': NumericRangeField, }; + let reactJsonSchemaFormTheme = reactJsonSchemaForm; + if ('ui:theme' in uiSchema) { + if (uiSchema['ui:theme'] === 'carbon') { + reactJsonSchemaFormTheme = 'carbon'; + } else if (uiSchema['ui:theme'] === 'mui') { + reactJsonSchemaFormTheme = 'mui'; + } else { + console.error( + `Unsupported theme: ${uiSchema['ui:theme']}. Defaulting to mui` + ); + reactJsonSchemaFormTheme = 'mui'; + } + } + const rjsfTemplates: any = {}; if (restrictedWidth) { rjsfTemplates.ObjectFieldTemplate = ObjectFieldRestrictedGridTemplate; @@ -475,16 +489,16 @@ export default function CustomForm({ templates: rjsfTemplates, omitExtraData: true, }; - if (reactJsonSchemaForm === 'carbon') { + if (reactJsonSchemaFormTheme === 'carbon') { // eslint-disable-next-line react/jsx-props-no-spreading return {childrenToUse}; } - if (reactJsonSchemaForm === 'mui') { + if (reactJsonSchemaFormTheme === 'mui') { // eslint-disable-next-line react/jsx-props-no-spreading return {childrenToUse}; } - console.error(`Unsupported form type: ${reactJsonSchemaForm}`); + console.error(`Unsupported form type: ${reactJsonSchemaFormTheme}`); return null; }