From 8045be1d864b950816e99404cc384fd884bb64a5 Mon Sep 17 00:00:00 2001 From: Florian Spreckelsen <f.spreckelsen@indiscale.com> Date: Fri, 21 Mar 2025 10:47:20 +0100 Subject: [PATCH] FEAT(ext_samplemanagement): Sort sample column names and add sample name column --- .../src/ext/js/ext_samplemanagement.js | 34 ++++++++++--------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/sample-management-custom/caosdb-server/caosdb-webui/src/ext/js/ext_samplemanagement.js b/sample-management-custom/caosdb-server/caosdb-webui/src/ext/js/ext_samplemanagement.js index e8e46e0..d4956df 100644 --- a/sample-management-custom/caosdb-server/caosdb-webui/src/ext/js/ext_samplemanagement.js +++ b/sample-management-custom/caosdb-server/caosdb-webui/src/ext/js/ext_samplemanagement.js @@ -39,36 +39,35 @@ const ext_samplemanagement = function($, navbar, log, form_elements, form_panel, const required_column_names = [ "LinkAhead ID", "Main User", - "Latitude start", - "Longitude start", - "Elevation start", - "Start date", - "Storage ID", - "Device" ]; const requiredColumnNamesChildren = [ "LinkAhead ID", "Main User", "Parent LinkAhead ID", - "SampleType", - "Storage ID", ]; const non_sample_rt_column_names = [ + "Latitude start", + "Storage ID", "Biome", "Campaign", - "Start date", + "Device", + "Elevation start", + "Elevation stop", "End date", + "Event responsible", "IGSN DOI", + "Latitude stop", "Level", "Locality description", "Locality name", - "Sphere", - "Event responsible", - "Latitude stop", + "Longitude start", "Longitude stop", - "Elevation stop", "PDFReport", "Parent LinkAhead ID", + "Sample name", + "Sphere", + "Start date", + "Start date", ]; const allColumnNames = non_sample_rt_column_names.concat(requiredColumnNamesChildren).concat(required_column_names); @@ -77,7 +76,7 @@ const ext_samplemanagement = function($, navbar, log, form_elements, form_panel, "Event", "Container", 'NagoyaCase', - "Parent_sample", + "Parent_Sample", ] const upload_sample_template_form_config = { @@ -191,7 +190,7 @@ const ext_samplemanagement = function($, navbar, log, form_elements, form_panel, // refresh the options of the column names select field once the list // is available (The sample RT needs to be retrieved var column_name_select = $(form).find("select[name='column_names']"); - collect_column_names(requiredColumnNames).then(function(names) { + collect_column_names(requiredColumnNames, true).then(function(names) { for (let option of names) { column_name_select.append( form_elements._make_option(option.value, option.label)); @@ -260,11 +259,14 @@ const ext_samplemanagement = function($, navbar, log, form_elements, form_panel, * * @return {Array} Options */ - const collect_column_names = async function(requiredColumnNames) { + const collect_column_names = async function(requiredColumnNames, sorted) { const a = await query('find recordtype with name=sample'); const column_names = $(a[0]).find(".caosdb-property-name").toArray().map(e => e.textContent); var options = [...new Set(allColumnNames.concat(column_names))]; options = options.filter(n => !(unused_property_names.includes(n) || requiredColumnNames.includes(n))).sort(); + if (sorted == true) { + options.sort(); + } return options.map(e => ({ value: e, label: e -- GitLab