Skip to content
Snippets Groups Projects
Verified Commit 1aa986b3 authored by Daniel Göbel's avatar Daniel Göbel
Browse files

Adapt clowm_info.json generation to new parameter component

parent 4cfe079e
No related branches found
No related tags found
1 merge request!102Resolve "Add UI for parameter translation layer"
...@@ -26,6 +26,7 @@ const props = defineProps<{ ...@@ -26,6 +26,7 @@ const props = defineProps<{
sizeModifier?: SizeModifierType; sizeModifier?: SizeModifierType;
border?: boolean; border?: boolean;
allowRaw?: boolean; allowRaw?: boolean;
forceRawFile?: boolean;
}>(); }>();
const parameterType = computed<string>( const parameterType = computed<string>(
...@@ -69,7 +70,7 @@ const parameterType = computed<string>( ...@@ -69,7 +70,7 @@ const parameterType = computed<string>(
:allow-raw="allowRaw" :allow-raw="allowRaw"
/> />
<parameter-file-input <parameter-file-input
v-else-if="parameter['format'] && !rawInput" v-else-if="parameter['format'] && !rawInput && !forceRawFile"
:required="required" :required="required"
:parameter="parameter" :parameter="parameter"
v-model="model as string" v-model="model as string"
......
...@@ -7,6 +7,7 @@ import FontAwesomeIcon from "@/components/FontAwesomeIcon.vue"; ...@@ -7,6 +7,7 @@ import FontAwesomeIcon from "@/components/FontAwesomeIcon.vue";
import { useWorkflowStore } from "@/stores/workflows"; import { useWorkflowStore } from "@/stores/workflows";
import { DocumentationEnum } from "@/client/workflow"; import { DocumentationEnum } from "@/client/workflow";
import DraggableLists from "@/components/DraggableLists.vue"; import DraggableLists from "@/components/DraggableLists.vue";
import ParameterInput from "@/components/parameter-schema/form-mode/ParameterInput.vue";
const props = defineProps<{ const props = defineProps<{
workflow_id?: string; workflow_id?: string;
...@@ -362,21 +363,25 @@ onMounted(() => { ...@@ -362,21 +363,25 @@ onMounted(() => {
on the user or execution environment. on the user or execution environment.
</p> </p>
<div <div
class="d-flex flex-wrap overflow-y-auto p-1 border rounded border-dashed mb-2" class="d-flex flex-wrap overflow-y-auto p-1 border border-bottom-0 rounded-top border-dashed"
style="max-height: 30vh" style="max-height: 30vh"
v-if="parameterPools.examples.length > 0"
> >
<b class="ms-1 w-100">Workflow parameters:</b> <b class="ms-1 w-100">Workflow parameters:</b>
<div <template v-if="parameterPools.examples.length > 0">
class="w-fit border px-2 rounded cursor-pointer m-1 parameter-container" <div
v-for="(param, index) in parameterPools.examples" class="w-fit border px-2 rounded cursor-pointer m-1 parameter-container"
:key="param" v-for="(param, index) in parameterPools.examples"
@click="addExampleParameter(param, index)" :key="param"
> @click="addExampleParameter(param, index)"
{{ param }} >
{{ param }}
</div>
</template>
<div v-else class="px-2 text-secondary m-1">
<i>Empty</i>
</div> </div>
</div> </div>
<table class="table table-bordered"> <table class="table table-bordered align-middle">
<thead> <thead>
<tr> <tr>
<th scope="col"><b>Parameter</b></th> <th scope="col"><b>Parameter</b></th>
...@@ -390,73 +395,14 @@ onMounted(() => { ...@@ -390,73 +395,14 @@ onMounted(() => {
> >
<td style="width: 10%">{{ param }}</td> <td style="width: 10%">{{ param }}</td>
<td class="d-flex justify-content-between align-items-center"> <td class="d-flex justify-content-between align-items-center">
<input <div class="flex-fill input-group">
v-if=" <parameter-input
getParameterType(param) === 'number' || :parameter="parameterSchema[param]"
getParameterType(param) === 'integer' v-model="infoState.exampleParameters[param]"
" size-modifier="sm"
type="number" force-raw-file
class="form-control form-control-sm flex-grow" />
v-model="infoState.exampleParameters[param]"
:step="getParameterType(param) === 'integer' ? 1 : 0.0001"
:min="parameterSchema[param]['minimum']"
:max="parameterSchema[param]['maximum']"
/>
<div
v-else-if="getParameterType(param) === 'boolean'"
class="flex-grow"
>
<div class="form-check form-check-inline">
<label
class="form-check-label"
:for="'trueOption' + param.replace(/\./g, '')"
>True</label
>
<input
class="form-check-input"
type="radio"
:name="'inlineRadioOptions' + param.replace(/\./g, '')"
:id="'trueOption' + param.replace(/\./g, '')"
:value="true"
v-model="infoState.exampleParameters[param]"
/>
</div>
<div class="form-check form-check-inline">
<input
class="form-check-input"
type="radio"
:name="'inlineRadioOptions' + param.replace(/\./g, '')"
:id="'falseOption' + param.replace(/\./g, '')"
:value="false"
v-model="infoState.exampleParameters[param]"
/>
<label
class="form-check-label"
:for="'falseOption' + param.replace(/\./g, '')"
>False</label
>
</div>
</div> </div>
<select
v-else-if="parameterSchema[param]?.['enum']"
class="form-select form-select-sm flex-grow"
v-model="infoState.exampleParameters[param]"
>
<option
v-for="option in parameterSchema[param]?.['enum']"
:key="option"
:value="option"
>
{{ option }}
</option>
</select>
<input
v-else
type="text"
class="form-control form-control-sm flex-grow"
v-model="infoState.exampleParameters[param]"
:pattern="parameterSchema[param]?.['pattern']"
/>
<button <button
type="button" type="button"
class="btn btn-outline-danger btn-sm ms-2" class="btn btn-outline-danger btn-sm ms-2"
......
...@@ -288,8 +288,8 @@ onMounted(() => { ...@@ -288,8 +288,8 @@ onMounted(() => {
:resource-parameter=" :resource-parameter="
parameterState.resourceParameters.has(param) parameterState.resourceParameters.has(param)
" "
:advanced="!parameterState.resourceParameters.has(param)"
raw-model raw-model
force-raw-file
/> />
</div> </div>
<button <button
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment