From f05d48221f9ab3f5da8548f877aae2b99c6aa96b Mon Sep 17 00:00:00 2001 From: Luis Aleixo Date: Tue, 26 Sep 2023 16:37:57 +0200 Subject: [PATCH] updated jquery methods namely on the finding mechanism --- caimira/apps/calculator/static/js/co2_form.js | 70 ++++++++++--------- 1 file changed, 36 insertions(+), 34 deletions(-) diff --git a/caimira/apps/calculator/static/js/co2_form.js b/caimira/apps/calculator/static/js/co2_form.js index 48dcdfbb..db6fb864 100644 --- a/caimira/apps/calculator/static/js/co2_form.js +++ b/caimira/apps/calculator/static/js/co2_form.js @@ -141,21 +141,20 @@ function generateJSONStructure(endpoint, jsonData) { } function insertErrorFor(referenceNode, text) { - const element = $("") - .addClass("error_text text-danger") - .html("  " + text); - $(referenceNode).before(element); + $(`${text}`).insertAfter(referenceNode) } function validateFormInputs(obj) { - $("span.error_text").remove(); + $("#ventilation_data").find("span.error_text").remove(); // Remove all error spans + let submit = true; + const $referenceNode = $("#DIVCO2_data_dialog"); for (let i = 0; i < CO2_data_form.length; i++) { - const element = $(`[name=${CO2_data_form[i]}]`).first(); - if (element.attr('name') !== "fitting_ventilation_states" && element.val() === "") { + const $requiredElement = $(`[name=${CO2_data_form[i]}]`).first(); + if ($requiredElement.attr('name') !== "fitting_ventilation_states" && $requiredElement.val() === "") { insertErrorFor( - $("#DIVCO2_data_dialog"), - `'${element.attr('name')}' must be defined.
` + $referenceNode, + `'${$requiredElement.attr('name')}' must be defined.
` ); submit = false; } @@ -172,22 +171,24 @@ function validateCO2Form() { let submit = true; if (validateFormInputs($("#button_fit_data"))) submit = true; + const $fittingToSubmit = $('#DIVCO2_fitting_to_submit'); // Check if natural ventilation is selected if ( - $('input[name="fitting_ventilation_type"]:checked').first().val() == + $fittingToSubmit.find('input[name="fitting_ventilation_type"]:checked').val() == "fitting_natural_ventilation" ) { // Validate ventilation scheme - const element = $("[name=fitting_ventilation_states").first(); - if (element.val() !== "") { + const $ventilationStates = $fittingToSubmit.find("input[name=fitting_ventilation_states]"); + const $referenceNode = $("#DIVCO2_fitting_result"); + if ($ventilationStates.val() !== "") { // validate input format try { - const parsedValue = JSON.parse(element.val()); + const parsedValue = JSON.parse($ventilationStates.val()); if (Array.isArray(parsedValue)) { if (parsedValue.length <= 1) { insertErrorFor( - $("#DIVCO2_fitting_result"), - `'${element.attr('name')}' must have more than one element.
` + $referenceNode, + `'${$ventilationStates.attr('name')}' must have more than one $ventilationStates.
` ); submit = false; } @@ -206,7 +207,7 @@ function validateCO2Form() { if (max_transition_time > max_presence_time) { insertErrorFor( - $("#DIVCO2_fitting_result"), + $referenceNode, `The last transition time (${parsedValue[parsedValue.length - 1]}) should be before the last presence time (${max_presence_time / 60}).
` ); submit = false; @@ -215,22 +216,22 @@ function validateCO2Form() { } else { insertErrorFor( - $("#DIVCO2_fitting_result"), - `'${element.attr('name')}' must be a list.
` + $referenceNode, + `'${$ventilationStates.attr('name')}' must be a list.
` ); submit = false; } } catch { insertErrorFor( - $("#DIVCO2_fitting_result"), - `'${element.attr('name')}' must be a list of numbers.
` + $referenceNode, + `'${$ventilationStates.attr('name')}' must be a list of numbers.
` ); submit = false; } } else { insertErrorFor( - $("#DIVCO2_fitting_result"), - `'${element.attr('name')}' must be defined.
` + $referenceNode, + `'${$ventilationStates.attr('name')}' must be defined.
` ); submit = false; } @@ -356,27 +357,28 @@ function submitFittingAlgorithm(url) { } function clearFittingResultComponent() { + const $referenceNode = $("#DIVCO2_data_dialog"); // Add the warning suggestion line - $("#suggestion_lines_txt").show(); + $referenceNode.find("#suggestion_lines_txt").show(); // Remove all the previously generated fitting elements - $("#generate_fitting_data").prop("disabled", true); - $("#CO2_fitting_result").val(""); - $("#CO2_data").val("{}"); - $("#fitting_ventilation_states").val(""); - $("span.error_text").remove(); - $("#DIVCO2_fitting_result, #CO2_input_data_div").hide(); - $("#DIVCO2_fitting_to_submit").hide(); - $("#CO2_data_plot").attr("src", ""); + $referenceNode.find("#generate_fitting_data").prop("disabled", true); + $referenceNode.find("#CO2_fitting_result").val(""); + $referenceNode.find("#CO2_data").val("{}"); + $referenceNode.find("#fitting_ventilation_states").val(""); + $referenceNode.find("span.error_text").remove(); + $referenceNode.find("#DIVCO2_fitting_result, #CO2_input_data_div").hide(); + $referenceNode.find("#DIVCO2_fitting_to_submit").hide(); + $referenceNode.find("#CO2_data_plot").attr("src", ""); // Update the ventilation scheme components - $("#fitting_ventilation_states, [name=fitting_ventilation_type]").prop( + $referenceNode.find("#fitting_ventilation_states, [name=fitting_ventilation_type]").prop( "disabled", false ); // Update the bottom right buttons - $("#generate_fitting_data").show(); - $("#save_and_dismiss_dialog").hide(); + $referenceNode.find("#generate_fitting_data").show(); + $referenceNode.find("#save_and_dismiss_dialog").hide(); } function disableFittingAlgorithm() {