Skip to content
Snippets Groups Projects
Commit 84633312 authored by Alfredo Chissotti's avatar Alfredo Chissotti
Browse files

commenti per scenari e qualche fix

parent 7b3a1c4e
No related branches found
No related tags found
No related merge requests found
......@@ -47,18 +47,7 @@
.more-margin-top {
border-top: 20px solid transparent;
}
/* center on the screen below any other element */
.center-on-screen {
position: relative;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
/* set to the right of the screen, below any other element */
.right-on-screen {
position: relative;
top: 50%;
right: 50%;
/* transform: translate(-50%, -50%); */
/* left: 0; */
.end-10px {
right: 10px;
}
\ No newline at end of file
......@@ -38,7 +38,6 @@
<span>Luci</span>
</button>
<button class="btn-12 btn btn-dark">
<span>Scenari</span>
</button>
<button class="btn-12 btn btn-dark">
......@@ -114,31 +113,22 @@
</tr> -->
</tbody>
</table>
<!-- <div> -->
<!-- class="d-flex justify-content-around" -->
<span class="invisible">
<span id="termina-registrazione-launcher" data-bs-toggle="modal"
data-bs-target="#termina-registrazione-modal"></span>
<span id="registra-modal-launcer" data-bs-toggle="modal" data-bs-target="#scenari-modal"></span>
</span>
<!-- TODO center button -->
<button id="scenari-registra" type="button" class="btn btn-info center-on-screen">
Registra
</button>
<!-- TODO set to the right -->
<div class="right-on-screen">
<span>
Antifurto:
</span>
<!-- change btn-danger to btn-success when ON -->
<button type="button" class="btn btn-danger" id="scenari-stato-antifurto">
OFF
<div class="position-relative">
<button id="scenari-registra" type="button"
class="btn btn-info position-absolute top-0 start-50 translate-middle-x">
Registra
</button>
<span id="lancia-antifurto-modal" data-bs-toggle="modal" data-bs-target="#antifurto-modal"></span>
<div class="position-absolute top-0 end-10px">
<span>
Antifurto:
</span>
<button type="button" class="btn btn-danger" id="scenari-stato-antifurto">
OFF
</button>
</div>
</div>
<!-- </div> -->
</div>
<!-- antifurto -->
<!-- TODO antifurto -->
<div id="antifurtoContainer" class="invisible">
<div class="switch-container no-box-sizing">
<div class="toggle-button no-box-sizing">
......@@ -192,6 +182,11 @@
</div>
</div>
<!-- scenari modal -->
<span class="invisible">
<span id="termina-registrazione-launcher" data-bs-toggle="modal"
data-bs-target="#termina-registrazione-modal"></span>
<span id="registra-modal-launcer" data-bs-toggle="modal" data-bs-target="#scenari-modal"></span>
</span>
<div class="modal fade" id="scenari-modal" tabindex="-1" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered">
<div class="modal-content">
......@@ -281,6 +276,7 @@
</div>
</div>
<!-- antifurto modal -->
<span id="lancia-antifurto-modal" data-bs-toggle="modal" data-bs-target="#antifurto-modal"></span>
<div class="modal fade" id="antifurto-modal" tabindex="-1" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered">
<div class="modal-content">
......
......@@ -6,24 +6,37 @@ import { scenariToggleListener } from "./toggles.js";
// JSON templeate for scenario
const scenarioTemplate = {
"nome": "",
"data": ""
"data": "",
"id": ""
};
class Scenari {
static scenariContainer;
/**
* this is the select element where to add all the scenarios
*/
static addNameHere;
static initialized = false;
/**
* contains the toggle that is currently active
*/
static scenarioAttivoToggle = null;
/**
* counts how many scenarios are available
*/
static index = 0;
constructor() {
Scenari.scenariContainer = document.getElementById('scenariContainer');
Scenari.addNameHere = document.getElementById('p');
Scenari.init();
Scenari.antifurtoListener();
Scenari.antifurtoModalLauncherListener();
Scenari.anyModalListener();
}
/**
* sets up the listener for the button in the top of the page
* i'm also leaving here what I haven't yet implemented
*/
static init() {
const scenariBtn = document.getElementById('mainButtonContainer').children[1];
scenariBtn.addEventListener('click', () => {
......@@ -41,9 +54,11 @@ class Scenari {
// TODO choose how to register the scenario
}, false);
}
static antifurtoListener() {
// for the antitheft button, before opening a modal, change the text of it then open it
/**
* used for the antitheft button (ON/OFF): before opening the connected modal, change its text then open it
* @see Scenari.antifurtoModalSubmitListener
*/
static antifurtoModalLauncherListener() {
const antifurtoBtn = document.getElementById('scenari-stato-antifurto');
const okBtn = document.getElementById('attiva-antifurto-btn');
const modalBody = document.querySelector('#antifurto-modal .modal-body');
......@@ -65,10 +80,10 @@ class Scenari {
// the antitheft is off
children[0].innerText = "Stai per abilitare l'antifurto.";
okBtn.innerText = 'Attiva';
// TODO activate the antitheft in the server
}
// launch the modal
modalLauncher.click();
// related: Scenari.antifurtoModalSubmitListener();
}, false);
// TODO get antifurto status from server and set it correctly
......@@ -81,8 +96,12 @@ class Scenari {
//
// }, false);
}
static antifurtoModal() {
/**
* listens to the submit button in the modal for the antitheft and activates/deactivates the antitheft
* this modal is shown when the user clicks on the antitheft button
* @see Scenari.antifurtoModalLauncherListener
*/
static antifurtoModalSubmitListener() {
const antifurtoOkBtn = document.getElementById('attiva-antifurto-btn');
const closeBtn = document.querySelector('#antifurto-modal .btn.btn-danger');
const antifurtoBtn = document.getElementById('scenari-stato-antifurto');
......@@ -91,24 +110,50 @@ class Scenari {
closeBtn.click();
// switch the antitheft status button
const isActivatingAntitheft = antifurtoBtn.innerText === 'OFF';
Scenari.toggleAntifurto(isActivatingAntitheft);
// TODO set the status of the antitheft in the server
// eventualmente impostare antifurto nella classe Antifurto
// Scenari.toggleAntifurto(isActivatingAntitheft);
if (isActivatingAntitheft)
Scenari.activateRandomScenario();
else
Scenari.deactivateActiveScenario();
Scenari.deactivateActiveScenario();//cannot use toggleScenario because I don't have the scenarioID
// TODO set the status of the antitheft in the server
// TODO eventualmente impostare antifurto nella classe Antifurto
}, false);
}
/**
* sets up various listeners for the modals
* @see Scenari.attivaScenarioModal
* @see Scenari.registraModal
* @see Scenari.antifurtoModalSubmitListener
*/
static anyModalListener() {
// Scenari.anteprimaModal();
Scenari.anteprimaModal();
Scenari.attivaScenarioModal();
Scenari.registraModal();
Scenari.antifurtoModal();
Scenari.antifurtoModalSubmitListener();
}
/**
* listens for the submit of the anteprima modal
*/
static anteprimaModal() {
const anterprimaModal = document.getElementById('anteprima-modal');
const okBtn = anterprimaModal.querySelector('#anteprima-scenari-btn');
const modalBody = anterprimaModal.querySelector('.modal-body');
const closeBtn = anterprimaModal.querySelector('.btn.btn-danger');
okBtn.addEventListener('click', () => {//activate the scenario
// close the modal
closeBtn.click();
// get the scenario from the modal body
const scenarioID = modalBody.querySelector('.invisible').innerText;
// find the scenario's row on the page
// const scenarioRow = scenarioTable.querySelector(`#${scenarioName}`);
// const toggle = scenarioTable.querySelector(`#${scenarioName} .toggle-button`);
Scenari.toggleScenario(scenarioID, okBtn.innerText === 'Attiva');
}, false);
}
/**
* listenes for the submit button in the modal for activating/deactivating a scenario when chosen from the toggles
* @see scenariToggleListener
*/
static attivaScenarioModal() {
const modalBtn = document.getElementById('attiva-scenari-btn');
const closeBtn = document.querySelector('#attiva-scenari-modal .btn.btn-danger');
......@@ -118,32 +163,21 @@ class Scenari {
// close the modal by clicking on the close button
closeBtn.click();
// I have to get to the toggle and activate it from the value of the select
const toggle = document.querySelector(`#${Scenari.addNameHere.value} .toggle-button`);
const scenarioID = Scenari.addNameHere.value;
const toggle = document.querySelector(`#${scenarioID} .toggle-button`);
// has the user chosen to activate the scenario?
const isActivatingNewScenario = toggle !== Scenari.scenarioAttivoToggle;
if (isActivatingNewScenario) {
Scenari.activateToggleByPreview(toggle);
// TODO activate the new scenario in the server
// set the antitheft status for the on-screen button
antifurtoBtn.innerText = 'ON';
antifurtoBtn.classList.remove('btn-danger');
antifurtoBtn.classList.add('btn-success');
} else {
//here toggle and Scenari.scenarioAttivoToggle are the same
toggle.classList.remove('active');
Scenari.scenarioAttivoToggle = null;
// TODO deactivate the scenario in the server
// set the antitheft status for the on-screen button
antifurtoBtn.innerText = 'OFF';
antifurtoBtn.classList.remove('btn-success');
antifurtoBtn.classList.add('btn-danger');
}
// const isActivatingNewScenario = ;
// Scenari.toggleToggle(toggle,isActivatingNewScenario);
// Scenari.toggleAntifurto(isActivatingNewScenario);
Scenari.toggleScenario(scenarioID,toggle !== Scenari.scenarioAttivoToggle);
}, false);
}
/**
* this is for the button "registra"/"termina" and the related modals
* @see Scenari.registraBtnListener
* @see Scenari.submitRecordModalListener
* @see Scenari.endRecordingListener
*/
static registraModal() {
const scenariModal = document.getElementById('scenari-modal');
......@@ -173,7 +207,15 @@ class Scenari {
Scenari.submitRecordModalListener(okBtn, registraBtn, closeScenariModalBtn, endRecordingModalLauncher);
Scenari.endRecordingListener(endRecordingForm, modalBody, htmlForModalBody, closeRecordingBtn, campoNome);
}
/**
* listens for the actual "registra"/"termina" button on the page and edits the related modal accordingly
* @param {*} registraBtn the button on the page
* @param {*} okBtn the submit button in the modal
* @param {*} modalBody the body of the modal which is to be changed
* @param {*} htmlForModalBody a string containing the html to be inserted in the modal body
* @param {*} modalLauncher the button which launches the modal
* @see Scenari.registraModal
*/
static registraBtnListener(registraBtn, okBtn, modalBody, htmlForModalBody, modalLauncher) {
registraBtn.addEventListener('click', () => {
const isAboutToRecord = registraBtn.innerText === 'Registra';
......@@ -189,9 +231,17 @@ class Scenari {
}
// launch the modal
modalLauncher.click();
// related: Scenari.submitRecordModalListener
}, false);
}
/**
* listens for the submit of the modal which is launched when the user clicks on the "registra"/"termina" button
* @param {*} okBtn the submit button in the modal
* @param {*} registraBtn the button on the page (to understand if the user is about to record or not)
* @param {*} closeScenariModalBtn the button used to close the modal
* @param {*} endRecordingModalLauncher the button which launches the next modal (used if the user has finished recording)
* @see Scenari.registraModal
*/
static submitRecordModalListener(okBtn, registraBtn, closeScenariModalBtn, endRecordingModalLauncher) {
okBtn.addEventListener('click', () => {
const isAboutToRecord = registraBtn.innerText === 'Registra';
......@@ -201,15 +251,30 @@ class Scenari {
closeScenariModalBtn.click();
// get the current time
// const timeBegin = new Date();
// TODO send a note to the server to start/stop recording
// if the user ended the recording, show another modal to ask for the name of the scenario
if (!isAboutToRecord) {
// TODO send a note to the server to stop recording
endRecordingModalLauncher.click();
// related: Scenari.endRecordingListener
} else {
// TODO send a note to the server to start recording
Scenari.deactivateActiveScenario();
Scenari.correctlySetAntifurto();
}
}, false);
}
/**
* listens for the submit of the modal which is launched when the user is done recording a scenario
* @param {*} endRecordingForm the form used to submit the name of the scenario
* @param {*} modalBody the body of the modal which is to be changed
* @param {*} htmlForModalBody a string containing the html to be inserted in the modal body
* @param {*} closeRecordingBtn the button used to close the modal
* @param {*} campoNome the input field used to insert the name of the scenario by the user
* @see Scenari.registraModal
* @see Scenari.mostraNuovoScenario
*/
static endRecordingListener(endRecordingForm, modalBody, htmlForModalBody, closeRecordingBtn, campoNome) {
endRecordingForm.addEventListener('submit', event => {
event.preventDefault();
......@@ -219,162 +284,219 @@ class Scenari {
closeRecordingBtn.click();
const name = campoNome.value;
const timeEnd = new Date();
const scenario = Object.assign({}, scenarioTemplate);
scenario.nome = name;
scenario.data = timeEnd.toLocaleDateString();// assign at scenario.data the string YYYY/MM/DD from timeEnd
const scenario = Scenari.createScenarioFromName(name)
Scenari.mostraNuovoScenario(scenario);
// clear the field for the next use
campoNome.value = '';
// TODO send a note to the server to save the scenario
}, false);
}
/**
* takes care of launching a modal to preview the actions of the chosen scenario; it also listens for the submit of the launched modal
* @param {*} anteprimaBtn the button used to launch the modal
* @param {*} scenario the JSON scenario to be previewed
* @param {*} name the name of the scenario (used to find its row in the table as it's the same name as the row's id)
* @see Scenari.correctlySetToggle
*/
static anteprimaListener(anteprimaBtn, scenario) {//HERE fixing now
const scenarioID = scenario.id;
const anterprimaModal = document.getElementById('anteprima-modal');
const modalBody = anterprimaModal.querySelector('.modal-body');
const modalLauncher = document.getElementById('anteprima-modal-launcher');
const okBtn = anterprimaModal.querySelector('#anteprima-scenari-btn');
const scenarioTable = document.getElementById('table-row-scenari');
anteprimaBtn.addEventListener('click', () => {
// TODO get the scenario's data from the server
static toggleAntifurto(activating) {
const antifurtoBtn = document.getElementById('scenari-stato-antifurto');
if(activating) {
antifurtoBtn.innerText = 'ON';
antifurtoBtn.classList.remove('btn-danger');
antifurtoBtn.classList.add('btn-success');
} else {
antifurtoBtn.innerText = 'OFF';
antifurtoBtn.classList.remove('btn-success');
antifurtoBtn.classList.add('btn-danger');
}
}
static activateRandomScenario() {
const table = document.getElementById('table-row-scenari');
// enable a random scenario
const randomScenario = table.children[Math.floor(Math.random() * table.children.length)];
const toggle = randomScenario.querySelector('.toggle-button');
Scenari.activateToggleByPreview(toggle);
// TODO activate the scenario in the server
}
static deactivateActiveScenario() {
Scenari.scenarioAttivoToggle.classList.remove('active');
Scenari.scenarioAttivoToggle = null;
// TODO deactivate the scenario in the server
// show the scenario in the modal (choose how to display it)
modalBody.innerHTML = `
<p>${scenario.nome}</p>
<p>${scenario.data}</p>
<span class='invisible'>${scenarioID}</span>`;//FIXME remove this test (be sure to keep the last span as is)
// if the scenario is already active, change the okBtn text
// to find if it's active, find the relative toggle
// and check if it's active
// const scenarioRow = scenarioTable.querySelector(`#${name}`);
const toggle = scenarioTable.querySelector(`#${scenarioID} .toggle-button`);
okBtn.innerText = toggle.classList.contains('active') ? 'Disattiva' : 'Attiva';
// launch the modal
modalLauncher.click();
}, false);
}
// utilility functions
/**
* fills the table with the scenarios available for the user in the server
* @see Scenari.mostraNuovoScenario
*/
static fillTable() {
// TODO get all scenari from server
//FIXME remove this test
const natale = Object.assign({}, scenarioTemplate);
natale.nome = 'Natale';
natale.data = new Date(2018, 11, 25).toLocaleDateString();
const festaRepublica = Object.assign({}, scenarioTemplate);
festaRepublica.nome = 'Festa della Repubblica';
festaRepublica.data = new Date(2018, 6, 2).toLocaleDateString();
const natale = Scenari.createScenarioFromName('Natale');
const festaRepublica = Scenari.createScenarioFromName('Festa della Repubblica');
var scenari = [
natale,
festaRepublica
];
// const scenario = Object.assign({}, scenarioTemplate);
for (const scenario of scenari) {
Scenari.mostraNuovoScenario(scenario)
}
}
/**
* displays the given scenario on the screen (below every other one) and hooks up the listeners; then it increments the index
* @param {*} scenario the JSON scenario to be displayed
* @see Scenari.createScenarioRow
* @see Scenari.anteprimaListener
* @see scenariToggleListener
*/
static mostraNuovoScenario(scenario) {
const { row, name } = Scenari.createScenarioRow(scenario);
const row = Scenari.createScenarioRow(scenario);
const scenarioID = scenario.id;
const tableBody = document.getElementById('table-row-scenari');
tableBody.appendChild(row);
const anteprimaBtn = row.querySelector('.badge.rounded-pill');
Scenari.anteprimaListener(anteprimaBtn, scenario, name);
Scenari.anteprimaListener(anteprimaBtn, scenario);
// add the name of the scenario as option in the select of the modal
const optionName = document.createElement('option');
optionName.value = name;
optionName.innerText = scenario.nome;
Scenari.addNameHere.appendChild(optionName);
const option = document.createElement('option');
option.value = scenarioID;
option.innerText = scenario.nome;
Scenari.addNameHere.appendChild(option);
const toggle = row.querySelector('.toggle-button');
scenariToggleListener(toggle, name);
scenariToggleListener(toggle, scenarioID);
Scenari.index++;
// Scenari.index++;
}
static anteprimaListener(anteprimaBtn, scenario, name) {
const anterprimaModal = document.getElementById('anteprima-modal');
const modalBody = anterprimaModal.querySelector('.modal-body');
const modalLauncher = document.getElementById('anteprima-modal-launcher');
const okBtn = document.getElementById('anteprima-scenari-btn');
const scenarioTable = document.getElementById('table-row-scenari');
anteprimaBtn.addEventListener('click', () => {
// TODO get the scenario from the server
// TODO show the scenario in the modal
modalBody.innerHTML = `<p>${scenario.nome}</p>
<p>${scenario.data}</p>
<span class='invisible'>${name}</span>`;//FIXME remove this test
// if the scenario is already active, change the okBtn text
// to find if it's active, find the relative toggle
// and check if it's active
// const scenarioRow = scenarioTable.querySelector(`#${name}`);
const toggle = scenarioTable.querySelector(`#${name} .toggle-button`);
okBtn.innerText = toggle.classList.contains('active') ? 'Disattiva' : 'Attiva';
// launch the modal
modalLauncher.click();
}, false);
const closeBtn = anterprimaModal.querySelector('.btn.btn-danger');
okBtn.addEventListener('click', () => {
// close the modal
closeBtn.click();
// get the scenario from the modal body
const scenarioName = modalBody.querySelector('.invisible').innerText;
// find the scenario's row on the page
// const scenarioRow = scenarioTable.querySelector(`#${scenarioName}`);
const toggle = scenarioTable.querySelector(`#${scenarioName} .toggle-button`);
Scenari.activateToggleByPreview(toggle,okBtn.innerText === 'Attiva');
}, false);
}
/**
* creates a table entry for the given scenario and returns it
* @param {*} scenario the JSON scenario to be displayed
* @returns {HTMLTableRowElement} the row containing the given scenario
*/
static createScenarioRow(scenario) {
const row = document.createElement('tr');
const name = 'scenario-' + Scenari.index;
row.id = name
row.innerHTML = `<th scope="row">${scenario.nome.trim()}</th>
<td>
<span>${scenario.data}</span>
</td>
<td>
<h5>
<span class="badge rounded-pill bg-secondary">anteprima</span>
</h5>
</td>
<td>
<div class="switch-container no-box-sizing">
<div class="toggle-button no-box-sizing">
<div class="inner-circle no-box-sizing"></div>
</div>
</div>
<span id="launch-modal-${name}" data-bs-toggle="modal" data-bs-target="#attiva-scenari-modal"></span>
</td>`;
return { row, name };
row.id = scenario.id;
row.innerHTML = `
<th scope="row">${scenario.nome.trim()}</th>
<td>
<span>${scenario.data}</span>
</td>
<td>
<h5>
<span class="badge rounded-pill bg-secondary">anteprima</span>
</h5>
</td>
<td>
<div class="switch-container no-box-sizing">
<div id="toggle-${scenario.id}" class="toggle-button no-box-sizing">
<div class="inner-circle no-box-sizing"></div>
</div>
</div>
<span id="launch-modal-${scenario.id}" data-bs-toggle="modal" data-bs-target="#attiva-scenari-modal"></span>
</td>`;
// the span is used by the toggle to launch the modal
return row;
}
static activateToggleByPreview(toggle,activating) {
/**
* changes the antifurto button to the given state
* @param {*} activating true if the antitheft is being activated, false otherwise
*/
static correctlySetAntifurto(activating) {
const antifurtoBtn = document.getElementById('scenari-stato-antifurto');
if (activating) {
if(antifurtoBtn.innerText === 'ON')
return;
antifurtoBtn.innerText = 'ON';
antifurtoBtn.classList.remove('btn-danger');
antifurtoBtn.classList.add('btn-success');
} else {
if(antifurtoBtn.innerText === 'OFF')
return;
antifurtoBtn.innerText = 'OFF';
antifurtoBtn.classList.remove('btn-success');
antifurtoBtn.classList.add('btn-danger');
}
}
/**
* turns off the active scenario if there is one; useful if you don't have the scenarioID
*/
static deactivateActiveScenario() {
if (Scenari.scenarioAttivoToggle == null)
return;
// Scenari.scenarioAttivoToggle.classList.remove('active');
// Scenari.scenarioAttivoToggle = null;
// // TODO deactivate the scenario in the server
const toggleID = Scenari.scenarioAttivoToggle.id;
const scenarioID = toggleID.substring(toggleID.indexOf('-') + 1);
Scenari.toggleScenario(scenarioID,false);
}
/**
* activates/deactivates the scenario with the given name
* @param {*} scenarioID the ID of the scenario to be activated/deactivated
* @param {*} activating true if the scenario should be activated, false otherwise
*/
static toggleScenario(scenarioID, activating) {
// find the scenario's row on the page
const scenarioRow = document.getElementById(`${scenarioID}`);
const toggle = scenarioRow.querySelector('.toggle-button');
Scenari.correctlySetToggle(toggle);
Scenari.correctlySetAntifurto(activating);
// if (activating) {
// // TODO activate the scenario in the server
// } else {
// // TODO deactivate the scenario in the server
// }
}
/**
* takes care of activating or deactivating the scenario's toggle based on the given boolean
* @param {*} toggle the toggle to be activated or deactivated
* @param {*} activating true if the toggle should be activated, false otherwise
* @see Scenari.correctlySetAntifurto
*/
static correctlySetToggle(toggle) {
const isActivatingNewScenario = toggle !== Scenari.scenarioAttivoToggle;
Scenari.scenarioAttivoToggle?.classList.remove('active');
activating ? toggle.classList.add('active') : toggle.classList.remove('active');
Scenari.scenarioAttivoToggle = toggle;
// also toggle the antitheft button
Scenari.toggleAntifurto(activating)
if (isActivatingNewScenario) {
toggle.classList.add('active');
Scenari.scenarioAttivoToggle = toggle;
} else {
toggle.classList.remove('active');
Scenari.scenarioAttivoToggle = null;
}
}
// toggle the visibility of the scenari container
/**
* activates a random scenario from the ones available
*/
static activateRandomScenario() {
if (Scenari.index === 0)
return;//TODO show alert?
const randomIndex = Math.floor(Math.random() * Scenari.index);
const scenarioID = `scenario-${randomIndex}`;
// const table = document.getElementById('table-row-scenari');
// // enable a random scenario
// const randomScenario = table.children[Math.floor(Math.random() * table.children.length)];
// const scenarioID = randomScenario.id;
Scenari.toggleScenario(scenarioID,true);
}
/**
* creates the scenario and updates index
* @param {*} scenarioName the string of the scenario to create
* @returns {JSON} the JSON scenario
*/
static createScenarioFromName(scenarioName) {
const scenario = Object.assign({}, scenarioTemplate);
scenario.nome = scenarioName;
scenario.data = new Date().toLocaleDateString();// assign at scenario.data the string YYYY/MM/DD from the current date
scenario.id = `scenario-${Scenari.index}`;
Scenari.index++;
return scenario;
}
/**
* toggle the visibility of the scenari container
* @param {*} visible true if the container should be shown, false otherwise
*/
static toggleContainer(visible) {
if (visible) {
Scenari.scenariContainer.classList.remove('invisible');
......@@ -382,9 +504,6 @@ class Scenari {
Scenari.scenariContainer.classList.add('invisible');
}
}
}
export default Scenari;
\ No newline at end of file
......@@ -15,11 +15,11 @@ function setToggleMovement2(toggle) {
}, false);
}
function scenariToggleListener(toggle, name) {
function scenariToggleListener(toggle, scenarioID) {
toggle.addEventListener('click', event => {
event.preventDefault
// select the option from the dropdown
Scenari.addNameHere.value = name;
Scenari.addNameHere.value = scenarioID;
// change text of the modal based on toggle state
const modalBody = document.getElementById('attiva-scenari-modal').querySelector('.modal-body');
const children = modalBody.children;
......@@ -44,7 +44,7 @@ function scenariToggleListener(toggle, name) {
okBtn.innerText = "Attiva";
}
// launch the modal
const modalLauncher = document.getElementById('launch-modal-' + name);
const modalLauncher = document.getElementById('launch-modal-' + scenarioID);
modalLauncher.click();
}, false);
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment