save: onSubmit()

in web/src/connectors/edit-job-connector/edit-job-connector.tsx [203:278]


                            save: onSubmit(),
                            lens,
                            disableNextButton: !isValid,
                            finishButtonCaption:
                                values.jobType === 'NoExtraction' ? 'Finish' : 'Start Extraction'
                        })}
                    </div>
                </>
            );
        },
        [pipelineManagers, categories, users, taxonomies]
    );

    const handleSave = useCallback(
        async (values: JobValues) => {
            const {
                jobName,
                jobType,
                deadline: jobDeadline,
                categories = [],
                validationType,
                owners = [],
                annotators: jobAnnotator = [],
                validators: jobValidators = [],
                annotators_validators = [],
                is_draft,
                is_auto_distribution,
                start_manual_job_automatically,
                extensive_coverage,
                selected_taxonomies,
                pipeline
            } = values;

            if (jobType === 'NoExtraction') {
                onRedirectAfterFinish?.();
                return;
            }

            const deadline = jobDeadline ? new Date(jobDeadline).toISOString() : undefined;
            const annotators = validationType === 'cross' ? annotators_validators : jobAnnotator;
            const validators = validationType === 'cross' ? [] : jobValidators;

            const jobProps: JobVariables = {
                name: jobName,
                revisions: revisionId ? [revisionId] : revisions,
                datasets,
                files,
                previous_jobs: jobs,
                type:
                    jobType === 'ExtractionJob'
                        ? 'ExtractionJob'
                        : pipeline
                        ? 'ExtractionWithAnnotationJob'
                        : 'AnnotationJob',
                is_draft,
                is_auto_distribution: jobType !== 'ExtractionJob' && is_auto_distribution,
                start_manual_job_automatically:
                    jobType !== 'ExtractionJob' && start_manual_job_automatically,
                extensive_coverage,
                categories: categories.map((category) => category.id),
                deadline,
                validation_type: validationType,
                owners: owners.map((owner) => owner.id),
                annotators: annotators.map((annotator) => annotator.id),
                validators: validators.map((validator) => validator.id),
                pipeline_name: pipeline?.name,
                pipeline_id: pipeline?.id,
                pipeline_engine: pipeline?.type
            };

            if (!pipeline) {
                delete jobProps.start_manual_job_automatically;
            }

            if (selected_taxonomies) {
                jobProps.categories = jobProps.categories?.map((categoryId) => {