Update of Reagent usage ui for addition of new reagents.

This commit is contained in:
lwark
2025-07-02 13:42:40 -05:00
parent fd63608744
commit c4c330b90c
8 changed files with 154 additions and 83 deletions

View File

@@ -32,24 +32,24 @@ gridContainer.addEventListener("drop", (e) => {
targetItem !== draggedItem //&&
//targetItem.classList.contains("well")
) {
backend.log(targetItem.id);
// backend.log(targetItem.id);
const draggedIndex = [...gridContainer.children].indexOf(draggedItem);
const targetIndex = [...gridContainer.children].indexOf(targetItem);
if (draggedIndex < targetIndex) {
backend.log(draggedIndex.toString() + " " + targetIndex.toString() + " Lesser");
// backend.log(draggedIndex.toString() + " " + targetIndex.toString() + " Lesser");
gridContainer.insertBefore(draggedItem, targetItem.nextSibling);
} else {
backend.log(draggedIndex.toString() + " " + targetIndex.toString() + " Greater");
// backend.log(draggedIndex.toString() + " " + targetIndex.toString() + " Greater");
gridContainer.insertBefore(draggedItem, targetItem);
}
// output = [];
// fullGrid = [...gridContainer.children];
// fullGrid.forEach(function(item, index) {
// output.push({sample_id: item.id, index: index + 1})
// });
// backend.rearrange_plate(output);
rearrange_plate();
output = [];
fullGrid = [...gridContainer.children];
fullGrid.forEach(function(item, index) {
output.push({sample_id: item.id, index: index + 1})
});
backend.rearrange_plate(output);
// rearrange_plate();
}
});

View File

@@ -21,45 +21,39 @@ for(let i = 0; i < formtexts.length; i++) {
})
};
var changed_it = new Event('change');
var reagentRoles = document.getElementsByClassName("reagentrole");
for(let i = 0; i < reagentRoles.length; i++) {
reagentRoles[i].addEventListener("change", function() {
if (reagentRoles[i].value === "New") {
if (reagentRoles[i].value.includes("--New--")) {
var br = document.createElement("br");
var new_reg = document.getElementById("new_" + reagentRoles[i].id);
console.log(new_reg.id);
var new_form = document.createElement("form");
new_form.setAttribute("class", "new_reagent_form")
new_form.setAttribute("id", reagentRoles[i].id + "_addition")
var rr_name = document.createElement("input");
rr_name.setAttribute("type", "text");
rr_name.setAttribute("id", "new_" + reagentRoles[i].id + "_name");
var rr_name_label = document.createElement("label");
rr_name_label.setAttribute("for", "new_" + reagentRoles[i].id + "_name");
rr_name_label.innerHTML = "Name:";
var rr_lot = document.createElement("input");
rr_lot.setAttribute("type", "text");
rr_lot.setAttribute("id", "new_" + reagentRoles[i].id + "_lot");
var rr_lot_label = document.createElement("label");
rr_lot_label.setAttribute("for", "new_" + reagentRoles[i].id + "_lot");
rr_lot_label.innerHTML = "Lot:";
var rr_expiry = document.createElement("input");
rr_expiry.setAttribute("type", "date");
rr_expiry.setAttribute("id", "new_" + reagentRoles[i].id + "_expiry");
var rr_expiry_label = document.createElement("label");
rr_expiry_label.setAttribute("for", "new_" + reagentRoles[i].id + "_expiry");
rr_expiry_label.innerHTML = "Expiry:";
var submit_btn = document.createElement("input");
submit_btn.setAttribute("type", "submit");
submit_btn.setAttribute("value", "Submit");
new_form.appendChild(br.cloneNode());
new_form.appendChild(rr_name_label);
new_form.appendChild(rr_name);
@@ -72,19 +66,27 @@ for(let i = 0; i < reagentRoles.length; i++) {
new_form.appendChild(br.cloneNode());
new_form.appendChild(submit_btn);
new_form.appendChild(br.cloneNode());
new_form.onsubmit = function(event) {
event.preventDefault();
alert(reagentRoles[i].id);
name = document.getElementById("new_" + reagentRoles[i].id + "_name").value;
lot = document.getElementById("new_" + reagentRoles[i].id + "_lot").value;
expiry = document.getElementById("new_" + reagentRoles[i].id + "_expiry").value;
alert("Submitting: " + name + ", " + lot);
backend.log(name + " " + lot + " " + expiry);
backend.add_new_reagent(reagentRoles[i].id, name, lot, expiry);
new_form.remove();
reagentRoles[i].dispatchEvent(changed_it);
}
new_reg.appendChild(new_form);
} else {
newregform = document.getElementById(reagentRoles[i].id + "_addition");
newregform.remove();
backend.update_reagent(reagentRoles[i].id, reagentRoles[i].value)
}
})
});
};
window.onload = function() {
for(let i = 0; i < reagentRoles.length; i++) {
backend.update_reagent(reagentRoles[i].id, reagentRoles[i].value);
}
}

View File

@@ -31,12 +31,14 @@
{% endfor %}
</select><br>
{% if procedure['reagentrole'] %}
<br><hr><br>
<br>
<h1><u>Reagents</u></h1>
<hr>
{% for key, value in procedure['reagentrole'].items() %}
<label for="{{ key }}">{{ key }}:</label><br>
<select class="reagentrole dropdown" id="{{ key }}" name="{{ key }}"><br>
{% for reagent in value %}
<option value="{{ reagent }}">{{ reagent }}</option>
<option value="{{ reagent.name }} {% if reagent.lot %}- {{ reagent.lot }} - {{ reagent.expiry.date() }}{% endif %}">{{ reagent.name }} {% if reagent.lot %}- {{ reagent.lot }} - {{ reagent.expiry.date() }}{% endif %}</option>
{% endfor %}
</select>
<div class="new_reagent" id="new_{{ key }}"></div>