forked from tykayn/funky-framadate-front
155 lines
4.3 KiB
JavaScript
155 lines
4.3 KiB
JavaScript
'use strict'
|
|
|
|
const $ = selector => document.querySelector(selector)
|
|
const $$ = selector => document.querySelectorAll(selector)
|
|
|
|
const debugStorage = () => {
|
|
for(var i = 0; i < localStorage.length; i++) {
|
|
let key = localStorage.key(i)
|
|
console.debug(key, " = ", localStorage[key])
|
|
}
|
|
}
|
|
|
|
const useTextInsteadOfInputFor = (textField) => {
|
|
let $name = $(`#${textField.name}`);
|
|
$name.outerHTML = `<span id="${textField.name}" class="champ-vide-long toggle-field">${$name.getAttribute('value')}</span>`;
|
|
return textField;
|
|
}
|
|
|
|
const createUpdateModalOnClickFor = (textField) => {
|
|
let $name = $(`#${textField.name}`);
|
|
$name.addEventListener("click", (e) => {
|
|
e.preventDefault();
|
|
createModal(`<input type="text" name="${textField.name}" id="${textField.name}UpdateField" value="${e.target.textContent}"><button id="submitTextField" data-reference="${textField.name}">></button>`);
|
|
});
|
|
}
|
|
|
|
$$(".nfl-textfield").forEach((textField) => {
|
|
createUpdateModalOnClickFor(useTextInsteadOfInputFor(textField));
|
|
});
|
|
|
|
const removeOverlay = () => {
|
|
$('body').removeChild($('.overlay'))
|
|
$('body').removeChild($('.modal'))
|
|
}
|
|
|
|
const createModal = (text) => {
|
|
const overlay = document.createElement('div')
|
|
const popin = document.createElement('div')
|
|
|
|
popin.innerHTML = text
|
|
popin.className = 'modal'
|
|
overlay.className = 'overlay'
|
|
$('body').appendChild(overlay)
|
|
$('body').appendChild(popin)
|
|
|
|
overlay.addEventListener('click', removeOverlay)
|
|
$('body').insertBefore(overlay, $('main'))
|
|
|
|
$("#submitTextField").addEventListener("click", (e) => {
|
|
$(`#${e.target.dataset.reference}`).innerHTML = $(`#${e.target.dataset.reference}UpdateField`).value
|
|
removeOverlay()
|
|
});
|
|
}
|
|
|
|
const buildTextField = () => {
|
|
var field = document.createElement("input")
|
|
var deleteButton = document.createElement("button")
|
|
var fieldBloc = document.createElement("span")
|
|
fieldBloc.appendChild(field);
|
|
fieldBloc.appendChild(deleteButton);
|
|
return fieldBloc
|
|
|
|
}
|
|
|
|
if($("#add-response-choice")) {
|
|
$("#add-response-choice").addEventListener('click', (e) => {
|
|
e.preventDefault();
|
|
let response = document.createElement("li");
|
|
response.appendChild(buildTextField());
|
|
|
|
$("#responses").appendChild(response);
|
|
});
|
|
}
|
|
|
|
|
|
$$(".next").forEach((button) => {
|
|
button.addEventListener("click", (e) => {
|
|
$$(".toggle-field").forEach((field) => {
|
|
localStorage.setItem(field.id, field.innerText);
|
|
});
|
|
});
|
|
});
|
|
|
|
if(document.getElementById("type_sondage")) {
|
|
type_sondage.addEventListener('change', function() {
|
|
let typeSondage = this.options[this.selectedIndex].text;
|
|
if(typeSondage == "classique") {
|
|
localStorage.setItem('type_sondage', this.options[this.selectedIndex].text);
|
|
$('#next').href = "responses.html";
|
|
} else {
|
|
localStorage.setItem('type_sondage', 'dates');
|
|
$('#next').href = "dates.html";
|
|
}
|
|
})
|
|
}
|
|
|
|
if(document.getElementById("startButton")) {
|
|
startButton.addEventListener('click', () => {
|
|
localStorage.clear()
|
|
localStorage.setItem('type_sondage', 'classique');
|
|
});
|
|
}
|
|
|
|
if(document.getElementById("addDateButton")) {
|
|
addDateButton.addEventListener('click', () => {
|
|
let newLi = document.createElement("li")
|
|
let content = $("ul>li").innerHTML.replace("date-1", `date-${$$("li").length + 1}`)
|
|
newLi.innerHTML = content
|
|
$("ul").appendChild(newLi);
|
|
initEventOnScreen();
|
|
});
|
|
}
|
|
|
|
if($('#validation-pool-title') && localStorage["title"]) {
|
|
$('#validation-pool-title').innerHTML = localStorage["title"]
|
|
|
|
}
|
|
|
|
|
|
if($('#ajouterDesHoraires')) {
|
|
ajouterDesHoraires.addEventListener('change', () => {
|
|
if (ajouterDesHoraires.value == 'veux') {
|
|
console.log("je veux")
|
|
identiquesDifferentsPourChaqueJour.style.display = 'inline'
|
|
} else {
|
|
console.log("je ne veux pas")
|
|
identiquesDifferentsPourChaqueJour.style.display = 'none'
|
|
}
|
|
});
|
|
}
|
|
|
|
const addDeleteParentEvent = () => {
|
|
$$(".remove").forEach((element) => {
|
|
element.addEventListener('click', () => {
|
|
element.parentElement.remove();
|
|
});
|
|
});
|
|
}
|
|
|
|
const addInputToStorageEvent = () => {
|
|
$$('input').forEach((inputElement) => {
|
|
inputElement.addEventListener("change", () => {
|
|
localStorage[inputElement.name] = inputElement.value
|
|
});
|
|
});
|
|
}
|
|
|
|
const initEventOnScreen = () => {
|
|
addDeleteParentEvent();
|
|
addInputToStorageEvent();
|
|
}
|
|
|
|
initEventOnScreen();
|
|
debugStorage();
|