Skip to content

Commit d013e44

Browse files
Sort scheduling/activity parameters according to optional order provided in the metadata
1 parent f3ba065 commit d013e44

File tree

2 files changed

+9
-2
lines changed

2 files changed

+9
-2
lines changed

src/components/parameters/ParameterRecStruct.svelte

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import ParameterName from './ParameterName.svelte';
1313
import ParameterRec from './ParameterRec.svelte';
1414
import ParameterUnits from './ParameterUnits.svelte';
15+
import {compare} from "../../utilities/generic";
1516
1617
export let disabled: boolean = false;
1718
export let expanded: boolean = false;
@@ -34,21 +35,25 @@
3435
function getSubFormParameters(formParameter: FormParameter<ValueSchemaStruct>): FormParameter[] {
3536
const { schema, value = [] } = formParameter;
3637
const { items: keys } = schema;
38+
const {items, type, ...metadata } = schema;
39+
const order = metadata.metadata?.item_order;
3740
const structKeys = Object.keys(keys).sort();
3841
3942
const subFormParameters = structKeys.map((key, index) => {
4043
let subFormParameter: FormParameter = {
4144
errors: null,
4245
key,
4346
name: key,
44-
order: index,
47+
order: order ? order.indexOf(key) : index,
4548
schema: schema.items[key],
4649
value: value !== null ? value[key] : null,
4750
valueSource: formParameter.valueSource,
4851
};
4952
return subFormParameter;
5053
});
5154
55+
subFormParameters.sort((a, b) => compare(a.order, b.order));
56+
5257
return subFormParameters;
5358
}
5459

src/components/scheduling/goals/SchedulingGoal.svelte

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,11 +61,13 @@
6161
const schema = version?.parameter_schema;
6262
6363
if (schema && schema.type === 'struct') {
64+
const {items, type, ...metadata } = schema;
65+
const order = metadata.metadata?.item_order;
6466
formParameters = Object.entries(schema.items).map(([name, subschema], i) => {
6567
return {
6668
errors: null,
6769
name,
68-
order: i,
70+
order: order ? order.indexOf(name) : i,
6971
required: true,
7072
schema: subschema,
7173
value:

0 commit comments

Comments
 (0)