Vincent Vandemeulebrouck
912b1d3df3
- Séparation des timestamp / calendrier Les poisons/maladies/souffles/queues/rencontres/signes peuvent être temporaires. - Ajout de champs pour stocker les timestamps de début et fin - définition de la durée (selon les items) - extraction des classes spécialisées des items - initialisation des dates de début/fin des effets temporaires à l'ajout d'un item temporel - préparation de la suppression automatique - Fix de mauvaise présentations sur les dialog d'astrologie et d'édition du calendrier
73 lines
2.6 KiB
JavaScript
73 lines
2.6 KiB
JavaScript
import { RdDTimestamp } from "./rdd-timestamp.js";
|
|
|
|
/**
|
|
* Extend the base Dialog entity by defining a custom window to perform roll.
|
|
* @extends {Dialog}
|
|
*/
|
|
export class RdDCalendrierEditeur extends Dialog {
|
|
|
|
/* -------------------------------------------- */
|
|
constructor(html, calendrier, calendrierData) {
|
|
let dialogConf = {
|
|
content: html,
|
|
title: "Editeur de date/heure",
|
|
buttons: {
|
|
save: { label: "Enregistrer", callback: html => this.saveCalendrier() }
|
|
},
|
|
default: "save"
|
|
};
|
|
let dialogOptions = { classes: ["rdd-dialog-calendar-editor"], width: 400, height: 'fit-content', 'z-index': 99999 }
|
|
super(dialogConf, dialogOptions)
|
|
|
|
this.calendrier = calendrier;
|
|
this.calendrierData = calendrierData;
|
|
}
|
|
|
|
activateListeners(html) {
|
|
super.activateListeners(html);
|
|
this.html = html;
|
|
this.html.find("input[name='annee']").val(this.calendrierData.annee);
|
|
this.html.find("select[name='nomMois']").val(this.calendrierData.moisKey);
|
|
this.html.find("input[name='jourMois']").val(this.calendrierData.jourMois);
|
|
this.html.find("select[name='nomHeure']").val(this.calendrierData.heureKey);
|
|
this.html.find("input[name='minutesRelative']").val(this.calendrierData.minutesRelative);
|
|
|
|
this.html.find("input[name='jourMois']").change(event => {
|
|
const jour = Number.parseInt(this.html.find("input[name='jourMois']").val());
|
|
if (jour < 1) {
|
|
this.html.find("input[name='jourMois']").val(1);
|
|
}
|
|
if (jour > 28) {
|
|
this.html.find("input[name='jourMois']").val(28);
|
|
}
|
|
});
|
|
this.html.find("input[name='minutesRelative']").change(event => {
|
|
const minute = Number.parseInt(this.html.find("input[name='minutesRelative']").val());
|
|
if (minute < 0) {
|
|
this.html.find("input[name='minutesRelative']").val(0);
|
|
}
|
|
if (minute > 119) {
|
|
this.html.find("input[name='minutesRelative']").val(119);
|
|
}
|
|
|
|
});
|
|
}
|
|
|
|
/* -------------------------------------------- */
|
|
saveCalendrier() {
|
|
const annee = Number.parseInt(this.html.find("input[name='annee']").val());
|
|
const mois = this.html.find("select[name='nomMois']").val();
|
|
const jour = Number.parseInt(this.html.find("input[name='jourMois']").val());
|
|
const heure = this.html.find("select[name='nomHeure']").val();
|
|
const minute = Number.parseInt(this.html.find("input[name='minutesRelative']").val());
|
|
|
|
this.calendrier.setNewTimestamp(RdDTimestamp.timestamp(annee, mois, jour, heure, minute))
|
|
}
|
|
|
|
/* -------------------------------------------- */
|
|
updateData(calendrierData) {
|
|
this.calendrierData = duplicate(calendrierData);
|
|
}
|
|
|
|
}
|