mirror of
https://github.com/portainer/portainer.git
synced 2025-07-24 07:49:41 +02:00
feat(edge/jobs): migrate item view to react [EE-2220] (#11887)
Some checks failed
ci / build_images (map[arch:amd64 platform:linux version:]) (push) Has been cancelled
ci / build_images (map[arch:amd64 platform:windows version:1809]) (push) Has been cancelled
ci / build_images (map[arch:amd64 platform:windows version:ltsc2022]) (push) Has been cancelled
ci / build_images (map[arch:arm platform:linux version:]) (push) Has been cancelled
ci / build_images (map[arch:arm64 platform:linux version:]) (push) Has been cancelled
ci / build_images (map[arch:ppc64le platform:linux version:]) (push) Has been cancelled
ci / build_images (map[arch:s390x platform:linux version:]) (push) Has been cancelled
/ triage (push) Has been cancelled
Lint / Run linters (push) Has been cancelled
Test / test-client (push) Has been cancelled
Test / test-server (map[arch:amd64 platform:linux]) (push) Has been cancelled
Test / test-server (map[arch:amd64 platform:windows version:1809]) (push) Has been cancelled
Test / test-server (map[arch:amd64 platform:windows version:ltsc2022]) (push) Has been cancelled
Test / test-server (map[arch:arm64 platform:linux]) (push) Has been cancelled
ci / build_manifests (push) Has been cancelled
Some checks failed
ci / build_images (map[arch:amd64 platform:linux version:]) (push) Has been cancelled
ci / build_images (map[arch:amd64 platform:windows version:1809]) (push) Has been cancelled
ci / build_images (map[arch:amd64 platform:windows version:ltsc2022]) (push) Has been cancelled
ci / build_images (map[arch:arm platform:linux version:]) (push) Has been cancelled
ci / build_images (map[arch:arm64 platform:linux version:]) (push) Has been cancelled
ci / build_images (map[arch:ppc64le platform:linux version:]) (push) Has been cancelled
ci / build_images (map[arch:s390x platform:linux version:]) (push) Has been cancelled
/ triage (push) Has been cancelled
Lint / Run linters (push) Has been cancelled
Test / test-client (push) Has been cancelled
Test / test-server (map[arch:amd64 platform:linux]) (push) Has been cancelled
Test / test-server (map[arch:amd64 platform:windows version:1809]) (push) Has been cancelled
Test / test-server (map[arch:amd64 platform:windows version:ltsc2022]) (push) Has been cancelled
Test / test-server (map[arch:arm64 platform:linux]) (push) Has been cancelled
ci / build_manifests (push) Has been cancelled
This commit is contained in:
parent
62c2bf86aa
commit
eb6d251a73
44 changed files with 778 additions and 886 deletions
|
@ -1,6 +1,5 @@
|
|||
import { Form, Formik, useFormikContext } from 'formik';
|
||||
import { useRouter } from '@uirouter/react';
|
||||
import moment from 'moment';
|
||||
|
||||
import { EdgeGroupsSelector } from '@/react/edge/edge-stacks/components/EdgeGroupsSelector';
|
||||
import { AssociatedEdgeEnvironmentsSelector } from '@/react/edge/components/AssociatedEdgeEnvironmentsSelector';
|
||||
|
@ -14,15 +13,19 @@ import { WebEditorForm } from '@@/WebEditorForm';
|
|||
import { FileUploadForm } from '@@/form-components/FileUpload';
|
||||
|
||||
import { NameField } from '../components/EdgeJobForm/NameField';
|
||||
import { FormValues } from '../components/EdgeJobForm/types';
|
||||
import { useValidation } from '../components/EdgeJobForm/useValidation';
|
||||
import { JobConfigurationFieldset } from '../components/EdgeJobForm/JobConfigurationFieldset';
|
||||
import {
|
||||
BasePayload,
|
||||
CreateEdgeJobPayload,
|
||||
useCreateEdgeJobMutation,
|
||||
} from '../queries/useCreateEdgeJobMutation/useCreateEdgeJobMutation';
|
||||
import { defaultCronExpression } from '../components/EdgeJobForm/RecurringFieldset';
|
||||
import {
|
||||
toRecurringRequest,
|
||||
toRecurringViewModel,
|
||||
} from '../components/EdgeJobForm/parseRecurringValues';
|
||||
|
||||
import { FormValues } from './types';
|
||||
import { useValidation } from './useValidation';
|
||||
|
||||
export function CreateEdgeJobForm() {
|
||||
const mutation = useCreateEdgeJobMutation();
|
||||
|
@ -35,16 +38,12 @@ export function CreateEdgeJobForm() {
|
|||
validateOnMount
|
||||
initialValues={{
|
||||
name: '',
|
||||
recurring: false,
|
||||
cronExpression: '',
|
||||
recurringOption: defaultCronExpression,
|
||||
method: 'editor',
|
||||
cronMethod: 'basic',
|
||||
dateTime: new Date(),
|
||||
edgeGroupIds: [],
|
||||
environmentIds: [],
|
||||
file: undefined,
|
||||
fileContent: '',
|
||||
...toRecurringViewModel(),
|
||||
}}
|
||||
onSubmit={(values) => {
|
||||
mutation.mutate(getPayload(values.method, values), {
|
||||
|
@ -122,6 +121,7 @@ function InnerForm({ isLoading }: { isLoading: boolean }) {
|
|||
isValid={isValid}
|
||||
data-cy="edgeJobCreate-addJobButton"
|
||||
loadingText="In progress..."
|
||||
errors={errors}
|
||||
/>
|
||||
</Form>
|
||||
);
|
||||
|
@ -162,42 +162,7 @@ function getPayload(
|
|||
name: values.name,
|
||||
edgeGroups: values.edgeGroupIds,
|
||||
endpoints: values.environmentIds,
|
||||
...getRecurringConfig(values),
|
||||
...toRecurringRequest(values),
|
||||
};
|
||||
}
|
||||
|
||||
function getRecurringConfig(values: FormValues): {
|
||||
recurring: boolean;
|
||||
cronExpression: string;
|
||||
} {
|
||||
if (values.cronMethod !== 'basic') {
|
||||
return {
|
||||
recurring: true,
|
||||
cronExpression: values.cronExpression,
|
||||
};
|
||||
}
|
||||
|
||||
if (values.recurring) {
|
||||
return {
|
||||
recurring: true,
|
||||
cronExpression: values.recurringOption,
|
||||
};
|
||||
}
|
||||
|
||||
return {
|
||||
recurring: false,
|
||||
cronExpression: dateTimeToCron(values.dateTime),
|
||||
};
|
||||
|
||||
function dateTimeToCron(datetime: Date) {
|
||||
const date = moment(datetime);
|
||||
return [
|
||||
date.minutes(),
|
||||
date.hours(),
|
||||
date.date(),
|
||||
date.month() + 1,
|
||||
'*',
|
||||
].join(' ');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue