From df38c60d1136e2528a28f402a4223fe1d692e503 Mon Sep 17 00:00:00 2001 From: Florian Spreckelsen <f.spreckelsen@indiscale.com> Date: Fri, 24 Jan 2025 11:02:26 +0100 Subject: [PATCH] ENH: Make sample and container id label in export configurable --- .../50.sample-management.conf | 4 +++- .../src/ext/js/ext_bis_samplemanagemet.js | 15 ++++++++------- .../src/ext/js/ext_bis_stockmanagement.js | 19 ++++++++++--------- 3 files changed, 21 insertions(+), 17 deletions(-) diff --git a/sample-management-custom/caosdb-server/caosdb-webui/build.properties.d/50.sample-management.conf b/sample-management-custom/caosdb-server/caosdb-webui/build.properties.d/50.sample-management.conf index 185d75e..45d6d63 100644 --- a/sample-management-custom/caosdb-server/caosdb-webui/build.properties.d/50.sample-management.conf +++ b/sample-management-custom/caosdb-server/caosdb-webui/build.properties.d/50.sample-management.conf @@ -22,6 +22,8 @@ BUILD_MODULE_EXT_SSS_MARKDOWN=ENABLED # Showing id in labels helps for the container/sample id columns BUILD_MODULE_SHOW_ID_IN_LABEL=ENABLED -# BIS specific variables +# sample-management specific variables BUILD_MODULE_EXT_BIS_SAMPLEMANAGEMENT=ENABLED BUILD_MODULE_EXT_BIS_STOCKMANAGEMENT=ENABLED +BUILD_MODULE_EXT_SAMPLEMANGEMENT_ID_LABEL="Sample ID" +BUILD_MODULE_EXT_STOCKMANAGEMENT_ID_LABEL="Container ID" \ No newline at end of file diff --git a/sample-management-custom/caosdb-server/caosdb-webui/src/ext/js/ext_bis_samplemanagemet.js b/sample-management-custom/caosdb-server/caosdb-webui/src/ext/js/ext_bis_samplemanagemet.js index 4228d64..09c64a8 100644 --- a/sample-management-custom/caosdb-server/caosdb-webui/src/ext/js/ext_bis_samplemanagemet.js +++ b/sample-management-custom/caosdb-server/caosdb-webui/src/ext/js/ext_bis_samplemanagemet.js @@ -29,6 +29,7 @@ const ext_bis_samplemanagement = function($, navbar, log, form_elements, form_pa const upload_pdf_title = "Upload PDF file"; const export_csv_id = "export_sample_csv"; const export_csv_title = "Export Samples to CSV"; + const sample_id_label = ("${BUILD_MODULE_EXT_SAMPLEMANGEMENT_ID_LABEL}" != "") ? "${BUILD_MODULE_EXT_SAMPLEMANGEMENT_ID_LABEL}" : "Sample ID"; const accepted_file_formats = [ ".csv", ".CSV", @@ -36,7 +37,7 @@ const ext_bis_samplemanagement = function($, navbar, log, form_elements, form_pa "text/csv", ]; const required_column_names = [ - "BIS ID", + "LinkAhead ID", "Date collected start", "Main User", "Gear", @@ -56,11 +57,11 @@ const ext_bis_samplemanagement = function($, navbar, log, form_elements, form_pa "Sample Context", ]; const requiredColumnNamesChildren = [ - "BIS ID", + "LinkAhead ID", "Date sampled start", "Fixation", "Main User", - "Parent BIS ID", + "Parent LinkAhead ID", "Sample Context", "Sample container", "SampleType", @@ -101,7 +102,7 @@ const ext_bis_samplemanagement = function($, navbar, log, form_elements, form_pa "Date sampled stop", "Time sampled start", "Time sampled stop", - "Parent BIS ID" + "Parent LinkAhead ID" ] const allColumnNames = non_sample_rt_column_names.concat(requiredColumnNamesChildren).concat(required_column_names); @@ -135,11 +136,11 @@ const ext_bis_samplemanagement = function($, navbar, log, form_elements, form_pa fields: [{ type: "text", name: "bis_ids", - label: "BIS IDS", + label: sample_id_label, required: false, pattern: "((([0-9]+\\s*-\\s*){0,1}[0-9]+)\\s*,\\s*)*(([0-9]+\\s*-\\s*){0,1}[0-9]+)", cached: false, - help: "Comma-separated list of single BIS IDs or ranges, e.g. '124, 126-139, 242'", + help: `Comma-separated list of single ${sample_id_label}s or ranges, e.g. '124, 126-139, 242'`, }, { type: "text", name: "query_string", @@ -398,7 +399,7 @@ const ext_bis_samplemanagement = function($, navbar, log, form_elements, form_pa }); }; - + const is_authorized = function() { // return true //for testing return isAuthenticated() //&& (userHasRole("stockmanager") || userHasRole("administration")) diff --git a/sample-management-custom/caosdb-server/caosdb-webui/src/ext/js/ext_bis_stockmanagement.js b/sample-management-custom/caosdb-server/caosdb-webui/src/ext/js/ext_bis_stockmanagement.js index b8630a4..c378703 100644 --- a/sample-management-custom/caosdb-server/caosdb-webui/src/ext/js/ext_bis_stockmanagement.js +++ b/sample-management-custom/caosdb-server/caosdb-webui/src/ext/js/ext_bis_stockmanagement.js @@ -11,13 +11,14 @@ * * @requires($, navbar, log, form_elements, form_panel, bis_custom_reference_resolver) */ -const ext_bis_stockmanagement = function ($, navbar, log, form_elements, form_panel, bis_custom_reference_resolver) { +const ext_bis_stockmanagement = function($, navbar, log, form_elements, form_panel, bis_custom_reference_resolver) { const tool_box = "Storage Management" // The item that is shown in the top-navbar ///////////////// REGISTER NEW CONTAINERS START const register_new_containers_title = "Register new Containers"; const register_new_containers_panel_id = "register_new_containers_form_panel"; + const container_id_label = ("${BUILD_MODULE_EXT_STOCKMANAGEMENT_ID_LABEL}" != "") ? "${BUILD_MODULE_EXT_STOCKMANAGEMENT_ID_LABEL}" : "Container ID"; const register_new_containers_form_config = { // the script can be found in profiles/default/custom/caosdb-server/scripting/bin/ // it is called like ./register_new_containers.py form.json where form.json @@ -115,11 +116,11 @@ const ext_bis_stockmanagement = function ($, navbar, log, form_elements, form_pa fields: [{ type: "text", name: "bis_ids", - label: "BIS IDS", + label: container_id_label, required: true, pattern: "((([0-9]+\\s*-\\s*){0,1}[0-9]+)\\s*,\\s*)*(([0-9]+\\s*-\\s*){0,1}[0-9]+)", cached: false, - help: "Comma-separated list of single BIS IDs or ranges, e.g. '124, 126-139, 242'" + help: `Comma-separated list of single ${container_id_label}s or ranges, e.g. '124, 126-139, 242'` }] }; ///////////////// EXPORT CONTAINER CSV END @@ -130,7 +131,7 @@ const ext_bis_stockmanagement = function ($, navbar, log, form_elements, form_pa * dropdown for Container registration and for uploading filled-in container * forms. */ - const init_show_stockmanagement_panel_buttons = function () { + const init_show_stockmanagement_panel_buttons = function() { create_register_new_containers_button(); create_update_containers_button(); @@ -159,7 +160,7 @@ const ext_bis_stockmanagement = function ($, navbar, log, form_elements, form_pa }); }; - const create_register_new_containers_button = function () { + const create_register_new_containers_button = function() { navbar.add_tool(register_new_containers_title, tool_box, { callback: form_panel.create_show_form_callback( register_new_containers_panel_id, @@ -168,7 +169,7 @@ const ext_bis_stockmanagement = function ($, navbar, log, form_elements, form_pa }); }; - const create_update_containers_button = function () { + const create_update_containers_button = function() { navbar.add_tool(update_containers_title, tool_box, { callback: form_panel.create_show_form_callback( update_containers_panel_id, @@ -183,7 +184,7 @@ const ext_bis_stockmanagement = function ($, navbar, log, form_elements, form_pa * Check if the user is authenticated and has at least stockmanager or * administrator role. */ - const is_authorized = function () { + const is_authorized = function() { return isAuthenticated() && (userHasRole("Scientist") || userHasRole("Stock manager") || userHasRole("administration") || userHasRole("Curator")); } @@ -192,7 +193,7 @@ const ext_bis_stockmanagement = function ($, navbar, log, form_elements, form_pa * top-navbar is_authorized() returns true, i.e. the user is authenticated * and has either stockmanager or administration role. */ - const init = function () { + const init = function() { if (is_authorized()) { init_show_stockmanagement_panel_buttons(); } @@ -204,7 +205,7 @@ const ext_bis_stockmanagement = function ($, navbar, log, form_elements, form_pa }; }($, navbar, log, form_elements, form_panel, bis_custom_reference_resolver); // this will be replaced by require.js in the future. -$(document).ready(function () { +$(document).ready(function() { // use a variable starting with `BUILD_MODULE_` to this module // the build variable has to be enabled in the `build.properties.d/` directory. // Otherwise the module will not be activated. -- GitLab