feat(ce): drop OCI "Business Feature" teaser and orphaned BE edge module
Remove the disabled "Installing from an OCI registry is a Portainer Business Feature" option from the CE Helm repository selector so no Business Feature teaser remains; CE Helm Repositories options are unaffected. Delete the orphaned AutomaticEdgeEnvCreation module (incl. EnableWaitingRoomSwitch) — its render was already removed from EdgeComputeSettingsView and nothing imports it anymore. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -51,17 +51,6 @@ export function useHelmRepoOptions() {
|
||||
label: 'Helm Repositories',
|
||||
options: repoOptions,
|
||||
},
|
||||
{
|
||||
label: 'OCI Registries',
|
||||
options: [
|
||||
{
|
||||
label:
|
||||
'Installing from an OCI registry is a Portainer Business Feature',
|
||||
value: {},
|
||||
disabled: true,
|
||||
},
|
||||
],
|
||||
},
|
||||
];
|
||||
},
|
||||
});
|
||||
|
||||
@@ -1,79 +0,0 @@
|
||||
import { Form, Formik } from 'formik';
|
||||
import * as yup from 'yup';
|
||||
import { useCallback } from 'react';
|
||||
|
||||
import { notifySuccess } from '@/portainer/services/notifications';
|
||||
import { useUpdateSettingsMutation } from '@/react/portainer/settings/queries';
|
||||
import { Settings } from '@/react/portainer/settings/types';
|
||||
|
||||
import { LoadingButton } from '@@/buttons/LoadingButton';
|
||||
|
||||
import { EnabledWaitingRoomSwitch } from './EnableWaitingRoomSwitch';
|
||||
|
||||
interface FormValues {
|
||||
EnableWaitingRoom: boolean;
|
||||
}
|
||||
const validation = yup.object({
|
||||
EnableWaitingRoom: yup.boolean(),
|
||||
});
|
||||
|
||||
interface Props {
|
||||
settings: Settings;
|
||||
}
|
||||
|
||||
export function AutoEnvCreationSettingsForm({ settings }: Props) {
|
||||
const initialValues: FormValues = {
|
||||
EnableWaitingRoom: !settings.TrustOnFirstConnect,
|
||||
};
|
||||
|
||||
const mutation = useUpdateSettingsMutation();
|
||||
|
||||
const { mutate: updateSettings } = mutation;
|
||||
|
||||
const handleSubmit = useCallback(
|
||||
(variables: Partial<FormValues>) => {
|
||||
updateSettings(
|
||||
{ TrustOnFirstConnect: !variables.EnableWaitingRoom },
|
||||
{
|
||||
onSuccess() {
|
||||
notifySuccess(
|
||||
'Success',
|
||||
'Successfully updated Automatic Environment Creation settings'
|
||||
);
|
||||
},
|
||||
}
|
||||
);
|
||||
},
|
||||
[updateSettings]
|
||||
);
|
||||
|
||||
return (
|
||||
<Formik<FormValues>
|
||||
initialValues={initialValues}
|
||||
onSubmit={handleSubmit}
|
||||
validationSchema={validation}
|
||||
validateOnMount
|
||||
enableReinitialize
|
||||
>
|
||||
{({ isValid, dirty }) => (
|
||||
<Form className="form-horizontal">
|
||||
<EnabledWaitingRoomSwitch />
|
||||
|
||||
<div className="form-group">
|
||||
<div className="col-sm-12">
|
||||
<LoadingButton
|
||||
loadingText="generating..."
|
||||
data-cy="save-auto-env-settings-button"
|
||||
isLoading={mutation.isLoading}
|
||||
disabled={!isValid || !dirty}
|
||||
className="!ml-0"
|
||||
>
|
||||
Save settings
|
||||
</LoadingButton>
|
||||
</div>
|
||||
</div>
|
||||
</Form>
|
||||
)}
|
||||
</Formik>
|
||||
);
|
||||
}
|
||||
@@ -1,26 +0,0 @@
|
||||
import { Laptop } from 'lucide-react';
|
||||
|
||||
import { Widget, WidgetBody, WidgetTitle } from '@@/Widget';
|
||||
|
||||
import { useSettings } from '../../queries';
|
||||
|
||||
import { AutoEnvCreationSettingsForm } from './AutoEnvCreationSettingsForm';
|
||||
|
||||
export function AutomaticEdgeEnvCreation() {
|
||||
const settingsQuery = useSettings();
|
||||
|
||||
if (!settingsQuery.data) {
|
||||
return null;
|
||||
}
|
||||
|
||||
const settings = settingsQuery.data;
|
||||
|
||||
return (
|
||||
<Widget>
|
||||
<WidgetTitle icon={Laptop} title="Automatic Edge Environment Creation" />
|
||||
<WidgetBody>
|
||||
<AutoEnvCreationSettingsForm settings={settings} />
|
||||
</WidgetBody>
|
||||
</Widget>
|
||||
);
|
||||
}
|
||||
@@ -1,50 +0,0 @@
|
||||
import { useField } from 'formik';
|
||||
|
||||
import { confirm } from '@@/modals/confirm';
|
||||
import { FormControl } from '@@/form-components/FormControl';
|
||||
import { Switch } from '@@/form-components/SwitchField/Switch';
|
||||
import { buildConfirmButton } from '@@/modals/utils';
|
||||
import { ModalType } from '@@/modals';
|
||||
|
||||
export function EnabledWaitingRoomSwitch() {
|
||||
const [inputProps, meta, helpers] = useField<boolean>('EnableWaitingRoom');
|
||||
|
||||
return (
|
||||
<FormControl
|
||||
inputId="edge_waiting_room"
|
||||
label="Enable Edge Environment Waiting Room"
|
||||
size="medium"
|
||||
errors={meta.error}
|
||||
>
|
||||
<Switch
|
||||
id="edge_waiting_room"
|
||||
data-cy="edge-waiting-room-switch"
|
||||
name="EnableWaitingRoom"
|
||||
className="space-right"
|
||||
checked={inputProps.value}
|
||||
onChange={handleChange}
|
||||
/>
|
||||
</FormControl>
|
||||
);
|
||||
|
||||
async function handleChange(enable: boolean) {
|
||||
if (enable) {
|
||||
helpers.setValue(true);
|
||||
return;
|
||||
}
|
||||
|
||||
const confirmed = await confirm({
|
||||
modalType: ModalType.Warn,
|
||||
title: 'Disable Edge Environment Waiting Room',
|
||||
message:
|
||||
'By disabling the waiting room feature, all devices requesting association will be automatically associated and could pose a security risk. Are you sure?',
|
||||
confirmButton: buildConfirmButton('Confirm', 'danger'),
|
||||
});
|
||||
|
||||
if (!confirmed) {
|
||||
return;
|
||||
}
|
||||
|
||||
helpers.setValue(false);
|
||||
}
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
export { AutomaticEdgeEnvCreation } from './AutomaticEdgeEnvCreation';
|
||||
Reference in New Issue
Block a user