diff --git a/customprompts/mzta-custom-prompts.js b/customprompts/mzta-custom-prompts.js
index 604cb4f5..7ac975a2 100644
--- a/customprompts/mzta-custom-prompts.js
+++ b/customprompts/mzta-custom-prompts.js
@@ -22,26 +22,11 @@ var promptsList = null;
var somethingChanged = false;
var positionMax_compose = 0;
var positionMax_display = 0;
+var idnumMax = 0;
document.addEventListener('DOMContentLoaded', async () => {
let options = {
valueNames: [ { data: ['idnum'] }, 'is_default', 'id', 'name', 'text', 'type', 'action', 'position_compose', 'position_display', { name: 'need_selected', attr: 'checked_val'}, { name: 'need_signature', attr: 'checked_val'}, { name: 'need_custom_text', attr: 'checked_val'}, { name: 'enabled', attr: 'checked_val'} ],
- // item: `
- // |
- // |
- // |
- //
- // Need Select
- //
- // Need Signature
- //
- // Need Custom Text
- //
- // Is Default
- //
- // Enabled
- // |
- //
`
item: function(values) { //TODO: manage ACTION and TYPE edit with the select
let type_output = '';
switch(values.type){
@@ -66,7 +51,7 @@ document.addEventListener('DOMContentLoaded', async () => {
`) +
- `type
+ `
Action:
- action
+
Need Select
@@ -96,6 +81,7 @@ document.addEventListener('DOMContentLoaded', async () => {
//console.log('>>>>>>>> values.name: ' + JSON.stringify(values.name));
positionMax_compose = Math.max(positionMax_compose, values.position_compose);
positionMax_display = Math.max(positionMax_display, values.position_display);
+ idnumMax = Math.max(idnumMax, values.idnum);
return output;
}
};
@@ -110,53 +96,85 @@ document.addEventListener('DOMContentLoaded', async () => {
const btnSave = document.getElementById('btnSave');
btnSave.disabled = true;
- btnSave.addEventListener('click', (e) => {
+
+ // Disable save button and handle save actions
+ function handleSaveClick(e) {
e.preventDefault();
saveAll();
clearFields();
- document.getElementById('btnSave').disabled = true;
- });
-
+ btnSave.disabled = true;
+ }
+ btnSave.addEventListener('click', handleSaveClick);
+
const btnNew = document.getElementById('btnNew');
- btnNew.addEventListener('click', (e) => {
+
+ // Show the new item form
+ function handleNewClick(e) {
e.preventDefault();
document.getElementById('formNew').style.display = 'block';
+ }
+ btnNew.addEventListener('click', handleNewClick);
+
+ // Enable save button on input change
+ function handleInputChange(e) {
+ e.preventDefault();
+ btnSave.disabled = false;
+ somethingChanged = true; // Assumes declaration somewhere in your script
+ }
+ document.querySelectorAll('.input_mod').forEach(element => {
+ element.addEventListener('change', handleInputChange);
+ });
+
+ // Display selected value next to select input
+ function handleSelectChange(e) {
+ e.preventDefault();
+ const spanElement = e.target.nextElementSibling;
+ spanElement.textContent = e.target.value;
+ }
+ document.querySelectorAll('select.input_mod').forEach(element => {
+ element.addEventListener('change', handleSelectChange);
+ });
+
+ // Log data ID number from item row and prepare for edit action
+ function handleEditClick(e) { //TODO
+ e.preventDefault();
+ const tr = e.target.parentNode.parentNode;
+ console.log('>>>>>>>> tr: ' + tr.getAttribute('data-idnum'));
+ }
+ let btnEditItem_elements = document.querySelectorAll(".btnEditItem");
+ btnEditItem_elements.forEach(element => {
+ element.addEventListener('click', handleEditClick);
+ });
+
+ // Confirm and log deletion action
+ function handleDeleteClick(e) { //TODO
+ e.preventDefault();
+ const checkConfirm = window.confirm("Are you sure you want to delete this item?");
+ if (!checkConfirm) {
+ return;
+ }
+ const tr = e.target.parentNode.parentNode;
+ console.log('>>>>>>>> tr: ' + tr.getAttribute('data-idnum'));
+ }
+ let btnDeleteItem_elements = document.querySelectorAll(".btnDeleteItem");
+ btnDeleteItem_elements.forEach(element => {
+ element.addEventListener('click', handleDeleteClick);
});
- document.querySelectorAll('.input_mod').forEach(element => {
- element.addEventListener('change', (e) => {
- e.preventDefault();
- btnSave.disabled = false;
- somethingChanged = true;
- });
- })
- let btnEditItem_elements = document.querySelectorAll(".btnEditItem");
- if(btnEditItem_elements) {
- btnEditItem_elements.forEach(element => {
- element.addEventListener('click', (e) => {
- e.preventDefault();
- const tr = e.target.parentNode.parentNode; //TODO
- console.log('>>>>>>>> tr: ' + tr.getAttribute('data-idnum'));
- });
- });
- }
-
- let btnDeleteItem_elements = document.querySelectorAll(".btnDeleteItem");
- if(btnDeleteItem_elements) {
- btnDeleteItem_elements.forEach(element => {
- element.addEventListener('click', (e) => {
- e.preventDefault();
- const check_confirm = window.confirm("Sei sicuro di voler cancellare questo elemento?");
- if(!check_confirm) {
- return;
- }
- const tr = e.target.parentNode.parentNode; //TODO
- console.log('>>>>>>>> tr: ' + tr.getAttribute('data-idnum'));
- });
- });
+ // Handle checkbox changes and log new state
+ function handleCheckboxChange(e) {
+ e.preventDefault();
+ e.target.setAttribute('checked_val', e.target.checked ? '1' : '0');
+ console.log('>>>>>>>> checked_val: ' + e.target.getAttribute('checked_val'));
}
+ let checkbox_elements = document.querySelectorAll("input[type='checkbox']");
+ checkbox_elements.forEach(element => {
+ element.addEventListener('change', handleCheckboxChange);
+ });
+
+ // for the new prompt form
let btnNew_elements = document.querySelectorAll(".input_new");
if(btnNew_elements) {
btnNew_elements.forEach(element => {
@@ -167,17 +185,6 @@ document.addEventListener('DOMContentLoaded', async () => {
});
}
- let checkbox_elements = document.querySelectorAll("input[type='checkbox']");
- if(checkbox_elements) {
- checkbox_elements.forEach(element => {
- element.addEventListener('change', (e) => {
- e.preventDefault();
- element.setAttribute('checked_val', element.checked ? '1' : '0');
- console.log('>>>>>>>> checked_val: ' + element.getAttribute('checked_val'));
- });
- });
- }
-
i18n.updateDocument();
//To add a new item
@@ -196,8 +203,7 @@ document.addEventListener('DOMContentLoaded', async () => {
if(!checkFields()) {
return;
}
- //TODO check the id must be unique and without spaces
- promptsList.add({
+ let newItem = promptsList.add({
id: txtIdNew.value.trim(),
name: txtNameNew.value.trim(),
text: txtTextNew.value.trim(),
@@ -210,13 +216,30 @@ document.addEventListener('DOMContentLoaded', async () => {
position_compose: positionMax_compose + 1,
position_display: positionMax_display + 1,
is_default: 0,
+ idnum: idnumMax + 1,
});
+ idnumMax++;
//checkSelectedBoxes([selectTypeNew, selectActionNew, selectNeedSelectedNew, selectNeedSignatureNew, selectNeedCustomTextNew]);
- checkSelectedBoxes();
+ let curr_idnum = newItem[0].values().idnum;
+ let checkboxes = document.querySelectorAll(`tr[data-idnum="${curr_idnum}"] input[type="checkbox"]`);
+ checkSelectedBoxes(checkboxes);
+ let editBtn = document.querySelector(`tr[data-idnum="${curr_idnum}"] button.btnEditItem`);
+ //console.log(`>>>>>>>>>>>> tr[data-idnum="${curr_idnum}"] button.btnEditItem`);
+ editBtn.addEventListener('click', handleEditClick);
+ //console.log('>>>>>>>>>>>>> editBtn: ' + JSON.stringify(editBtn));
+ let deleteBtn = document.querySelector(`tr[data-idnum="${curr_idnum}"] button.btnDeleteItem`);
+ //console.log(`>>>>>>>>>>>> tr[data-idnum="${curr_idnum}"] button.btnDeleteItem`);
+ deleteBtn.addEventListener('click', handleDeleteClick);
+ // console.log('>>>>>>>>>>>>> deleteBtn: ' + JSON.stringify(deleteBtn));
+ // console.log('>>>>>>>>>>>>> newItem: ' + JSON.stringify(newItem));
clearFields();
somethingChanged = true;
document.getElementById('btnSave').disabled = false;
i18n.updateDocument();
+ window.scrollTo({
+ top: document.body.scrollHeight,
+ behavior: 'smooth'
+ });
});
}, { once: true });
|