|
4 | 4 | import StandardDismissableAlert from '../../common/StandardDismissableAlert.svelte'; |
5 | 5 | import TaskGroupSelector from './TaskGroupSelector.svelte'; |
6 | 6 | import TypesEditor from './TypesEditor.svelte'; |
7 | | - import { detectSchemaVersion, SchemaValidator } from 'fractal-components'; |
| 7 | + import { |
| 8 | + detectSchemaVersion, |
| 9 | + isCompoundType, |
| 10 | + isNonParallelType, |
| 11 | + isParallelType, |
| 12 | + SchemaValidator |
| 13 | + } from 'fractal-components'; |
8 | 14 |
|
9 | 15 | /** |
10 | 16 | * @typedef {Object} Props |
|
36 | 42 |
|
37 | 43 | const formErrorHandler = new FormErrorHandler('errorAlert-createTask', [ |
38 | 44 | 'name', |
| 45 | + 'type', |
39 | 46 | 'command_non_parallel', |
40 | 47 | 'command_parallel', |
41 | 48 | 'version', |
|
94 | 101 |
|
95 | 102 | const bodyData = { |
96 | 103 | name, |
| 104 | + type: taskType, |
97 | 105 | command_non_parallel, |
98 | 106 | command_parallel, |
99 | 107 | version, |
|
350 | 358 | }} |
351 | 359 | > |
352 | 360 | <div class="row mb-1"> |
353 | | - <div class="col-xl-1 col-lg-2 col-3">Task type</div> |
354 | | - <div class="col-xl-11 col-lg-8 col-9"> |
355 | | - <div class="form-check form-check-inline"> |
356 | | - <input |
357 | | - class="form-check-input" |
358 | | - type="radio" |
359 | | - name="taskType" |
360 | | - id="non_parallel" |
361 | | - value="non_parallel" |
362 | | - bind:group={taskType} |
363 | | - /> |
364 | | - <label class="form-check-label" for="non_parallel"> Non parallel </label> |
365 | | - </div> |
366 | | - <div class="form-check form-check-inline"> |
367 | | - <input |
368 | | - class="form-check-input" |
369 | | - type="radio" |
370 | | - name="taskType" |
371 | | - id="parallel" |
372 | | - value="parallel" |
373 | | - bind:group={taskType} |
374 | | - /> |
375 | | - <label class="form-check-label" for="parallel">Parallel</label> |
376 | | - </div> |
377 | | - <div class="form-check form-check-inline"> |
378 | | - <input |
379 | | - class="form-check-input" |
380 | | - type="radio" |
381 | | - name="taskType" |
382 | | - id="compound" |
383 | | - value="compound" |
384 | | - bind:group={taskType} |
385 | | - /> |
386 | | - <label class="form-check-label" for="compound">Compound</label> |
| 361 | + <div class="col-md-6 mb-2"> |
| 362 | + <div class="input-group has-validation"> |
| 363 | + <label for="task_type" class="input-group-text">Task type</label> |
| 364 | + <select |
| 365 | + class="form-select" |
| 366 | + bind:value={taskType} |
| 367 | + class:is-invalid={$validationErrors['type']} |
| 368 | + id="task_type" |
| 369 | + > |
| 370 | + <option value="non_parallel">Non parallel</option> |
| 371 | + <option value="parallel">Parallel</option> |
| 372 | + <option value="compound">Compound</option> |
| 373 | + <option value="converter_non_parallel">Converter Non Parallel</option> |
| 374 | + <option value="converter_compound">Converter Compound</option> |
| 375 | + </select> |
| 376 | + <span class="invalid-feedback">{$validationErrors['type']}</span> |
387 | 377 | </div> |
388 | 378 | </div> |
389 | 379 | </div> |
|
404 | 394 | </div> |
405 | 395 | </div> |
406 | 396 | </div> |
407 | | - {#if taskType === 'non_parallel' || taskType === 'compound'} |
| 397 | + {#if isNonParallelType(taskType) || isCompoundType(taskType)} |
408 | 398 | <div class="row"> |
409 | 399 | <div class="col-12 mb-2"> |
410 | 400 | <div class="input-group has-validation"> |
|
423 | 413 | </div> |
424 | 414 | </div> |
425 | 415 | {/if} |
426 | | - {#if taskType === 'parallel' || taskType === 'compound'} |
| 416 | + {#if isParallelType(taskType) || isCompoundType(taskType)} |
427 | 417 | <div class="row"> |
428 | 418 | <div class="col-12 mb-2"> |
429 | 419 | <div class="input-group has-validation"> |
|
468 | 458 | </div> |
469 | 459 | </div> |
470 | 460 | </div> |
471 | | - {#if taskType === 'non_parallel' || taskType === 'compound'} |
| 461 | + {#if isNonParallelType(taskType) || isCompoundType(taskType)} |
472 | 462 | <div class="row"> |
473 | 463 | <div class="col-lg-6 mb-2"> |
474 | 464 | <div class="input-group has-validation"> |
|
526 | 516 | </div> |
527 | 517 | </div> |
528 | 518 | {/if} |
529 | | - {#if taskType === 'parallel' || taskType === 'compound'} |
| 519 | + {#if isParallelType(taskType) || isCompoundType(taskType)} |
530 | 520 | <div class="row"> |
531 | 521 | <div class="col-lg-6 mb-2"> |
532 | 522 | <div class="input-group has-validation"> |
|
0 commit comments