|
3 | 3 | import { buildWorkflowTaskTableRows, sortVersions } from '../tasks/task_group_utilities'; |
4 | 4 | import SlimSelect from 'slim-select'; |
5 | 5 | import ColouredBadge from '../common/ColouredBadge.svelte'; |
6 | | - import BooleanIcon from '../common/BooleanIcon.svelte'; |
7 | 6 |
|
8 | 7 | /** @type {Array<import('../types/api').TaskGroupV2>} */ |
9 | 8 | export let taskGroups; |
|
27 | 26 | /** @type {SlimSelect|undefined} */ |
28 | 27 | let tagSelector = undefined; |
29 | 28 | let tagFilter = ''; |
30 | | - /** @type {SlimSelect|undefined} */ |
31 | | - let inputTypeSelector = undefined; |
32 | 29 | let inputTypeFilter = ''; |
33 | 30 |
|
34 | 31 | let groupByLabels = { |
|
172 | 169 | modalitySelector?.setSelected(''); |
173 | 170 | packageSelector?.setSelected(''); |
174 | 171 | tagSelector?.setSelected(''); |
175 | | - inputTypeSelector?.setSelected(''); |
176 | 172 | } |
177 | 173 |
|
178 | 174 | /** |
|
206 | 202 | ]), |
207 | 203 | 'Tag' |
208 | 204 | ); |
209 | | - setSelectorData( |
210 | | - inputTypeSelector, |
211 | | - buildSlimSelectOptions([ |
212 | | - ...new Set( |
213 | | - taskGroups.flatMap((tg) => tg.task_list).flatMap((t) => Object.keys(t.input_types)) |
214 | | - ) |
215 | | - ]), |
216 | | - 'Input type' |
217 | | - ); |
218 | 205 | } |
219 | 206 |
|
220 | 207 | /** |
|
275 | 262 | tagSelector = setSlimSelect('tag-filter', 'Select tag', 'Tag', (value) => { |
276 | 263 | tagFilter = value; |
277 | 264 | }); |
278 | | - inputTypeSelector = setSlimSelect( |
279 | | - 'input-type-filter', |
280 | | - 'Select input type', |
281 | | - 'Input type', |
282 | | - (value) => { |
283 | | - inputTypeFilter = value; |
284 | | - } |
285 | | - ); |
286 | 265 | setup(); |
287 | 266 | }); |
288 | 267 |
|
|
349 | 328 | <div class="col"> |
350 | 329 | <select id="modality-filter" class="invisible" /> |
351 | 330 | </div> |
352 | | - <div class="col"> |
353 | | - <select id="input-type-filter" class="invisible" /> |
354 | | - </div> |
355 | 331 | <div class="col"> |
356 | 332 | <select id="tag-filter" class="invisible" /> |
357 | 333 | </div> |
|
367 | 343 | <div class="card"> |
368 | 344 | <div class="card-body p-0"> |
369 | 345 | <table class="table table-borderless" id="filtered-tasks-table"> |
| 346 | + <colgroup> |
| 347 | + <col /> |
| 348 | + <col /> |
| 349 | + <col /> |
| 350 | + <col /> |
| 351 | + <col width="120" /> |
| 352 | + <slot name="extra-columns-colgroup" /> |
| 353 | + </colgroup> |
370 | 354 | <thead> |
371 | 355 | <tr> |
372 | 356 | <th>{groupByLabels[groupBy]}</th> |
373 | 357 | <th>Category</th> |
374 | 358 | <th>Modality</th> |
375 | | - <th>Input Types</th> |
376 | 359 | <th>Metadata</th> |
377 | | - <th colspan="2">Version</th> |
| 360 | + <th>Version</th> |
378 | 361 | <slot name="extra-columns-header" /> |
379 | 362 | </tr> |
380 | 363 | </thead> |
|
386 | 369 | {#each row.tasks as task} |
387 | 370 | {#if task.taskVersions[task.selectedVersion]} |
388 | 371 | <tr> |
389 | | - <td class="task-name-col">{task.taskVersions[task.selectedVersion].task_name}</td> |
| 372 | + <td class="task-name-col"> |
| 373 | + {#if task.taskVersions[task.selectedVersion].docs_link} |
| 374 | + <a href={task.taskVersions[task.selectedVersion].docs_link} target="_blank"> |
| 375 | + {task.taskVersions[task.selectedVersion].task_name} |
| 376 | + </a> |
| 377 | + {:else} |
| 378 | + {task.taskVersions[task.selectedVersion].task_name} |
| 379 | + {/if} |
| 380 | + </td> |
390 | 381 | <td> |
391 | 382 | {#if task.taskVersions[task.selectedVersion].category} |
392 | 383 | <button |
|
413 | 404 | </button> |
414 | 405 | {/if} |
415 | 406 | </td> |
416 | | - <td class="metadata-col"> |
417 | | - {#each Object.entries(task.taskVersions[task.selectedVersion].input_types) as [input_type_key, input_type_value]} |
418 | | - <div class="d-flex flex-row"> |
419 | | - <div class="input-type-text me-1">{input_type_key}</div> |
420 | | - <div><BooleanIcon value={input_type_value} /></div> |
421 | | - </div> |
422 | | - {/each} |
423 | | - </td> |
424 | 407 | <td class="metadata-col"> |
425 | 408 | {getMetadataCell(task.taskVersions[task.selectedVersion])} |
426 | 409 | </td> |
|
440 | 423 | {task.taskVersions[task.selectedVersion].version} |
441 | 424 | {/if} |
442 | 425 | </td> |
443 | | - <td class="docs-info-col"> |
444 | | - <slot name="docs-info" task={task.taskVersions[task.selectedVersion]} /> |
445 | | - </td> |
446 | 426 | <slot name="extra-columns" task={task.taskVersions[task.selectedVersion]} /> |
447 | 427 | </tr> |
448 | 428 | {/if} |
|
459 | 439 | {/if} |
460 | 440 |
|
461 | 441 | <style> |
462 | | - #filtered-tasks-table td { |
| 442 | + :global(#filtered-tasks-table td) { |
463 | 443 | vertical-align: middle; |
464 | 444 | } |
465 | 445 | #filtered-tasks-table tr th:first-child, |
466 | 446 | #filtered-tasks-table tr td:first-child { |
467 | 447 | padding-left: 15px; |
468 | 448 | } |
469 | | - #filtered-tasks-table tr th { |
| 449 | + :global(#filtered-tasks-table tr th) { |
470 | 450 | padding-top: 18px; |
471 | 451 | padding-bottom: 12px; |
| 452 | + background: transparent; |
472 | 453 | } |
473 | 454 | .metadata-col { |
474 | 455 | font-size: 85%; |
|
482 | 463 | .version-col { |
483 | 464 | max-width: 90px; |
484 | 465 | } |
485 | | -
|
486 | | - .input-type-text { |
487 | | - overflow-wrap: anywhere; |
488 | | - } |
489 | 466 | </style> |
0 commit comments