|
|
|
@ -8,17 +8,16 @@ const RARETES = [
|
|
|
|
|
{ name: 'Frequente', frequence: 18, min: 9, max: 36 },
|
|
|
|
|
{ name: 'Rare', frequence: 6, min: 3, max: 12 },
|
|
|
|
|
{ name: 'Rarissime', frequence: 2, min: 1, max: 4 }]
|
|
|
|
|
const DEFAULT_RARETE = 1;
|
|
|
|
|
|
|
|
|
|
const SETTINGS_LISTE_MILIEUX = "liste-milieux";
|
|
|
|
|
const MILIEUX = [
|
|
|
|
|
"Collines",
|
|
|
|
|
"Déserts",
|
|
|
|
|
"Désolations",
|
|
|
|
|
"Forêts",
|
|
|
|
|
"Forêts Tropicales",
|
|
|
|
|
"Marais",
|
|
|
|
|
"Milieux Aquatiques",
|
|
|
|
|
"Milieux Maritimes",
|
|
|
|
|
"Cours d'eau",
|
|
|
|
|
"Maritimes",
|
|
|
|
|
"Montagnes",
|
|
|
|
|
"Plaines",
|
|
|
|
|
"Sous-Sols",
|
|
|
|
@ -46,7 +45,7 @@ export class Environnement {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static getRarete(name = undefined) {
|
|
|
|
|
return RARETES.find(it => it.name == name) ?? RARETES[0];
|
|
|
|
|
return RARETES.find(it => it.name == name) ?? RARETES[DEFAULT_RARETE];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static getFrequenceRarete(rarete, field = undefined) {
|
|
|
|
@ -67,7 +66,7 @@ export class Environnement {
|
|
|
|
|
|
|
|
|
|
async findEnvironnementsLike(search) {
|
|
|
|
|
const milieux = (await this.milieux()).filter(it => Grammar.includesLowerCaseNoAccent(it, search));
|
|
|
|
|
if (milieux.length > 1){
|
|
|
|
|
if (milieux.length > 1) {
|
|
|
|
|
const milieuExact = milieux.find(it => Grammar.equalsInsensitive(it, search));
|
|
|
|
|
if (milieuExact) {
|
|
|
|
|
return [milieuExact];
|
|
|
|
@ -151,21 +150,31 @@ export class EnvironmentSheetHelper {
|
|
|
|
|
|
|
|
|
|
static activateListeners(sheet, html) {
|
|
|
|
|
if (!sheet.options.editable) return;
|
|
|
|
|
html.find("input.input-selection-milieu").keypress(event => {
|
|
|
|
|
if (event.keyCode == '13') {
|
|
|
|
|
EnvironmentSheetHelper.onAddMilieu(html, sheet, event);
|
|
|
|
|
}
|
|
|
|
|
event.stopPropagation();
|
|
|
|
|
})
|
|
|
|
|
html.find("a.milieu-add").click(event => EnvironmentSheetHelper.onAddMilieu(html, sheet, event));
|
|
|
|
|
html.find("div.environnement-milieu a.milieu-delete").click(event => EnvironmentSheetHelper.onDeleteMilieu(sheet, event));
|
|
|
|
|
html.find("div.environnement-milieu select.environnement-rarete").change(event => EnvironmentSheetHelper.onChange(sheet, event,
|
|
|
|
|
(updated) => {
|
|
|
|
|
updated => EnvironmentSheetHelper.$changeRarete(event, updated)));
|
|
|
|
|
html.find("div.environnement-milieu input[name='environnement-frequence']").change(event => EnvironmentSheetHelper.onChange(sheet, event,
|
|
|
|
|
updated => EnvironmentSheetHelper.$changeFrequence(updated, event)));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static $changeFrequence(updated, event) {
|
|
|
|
|
updated.frequence = Number($(event.currentTarget).val());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static $changeRarete(event, updated) {
|
|
|
|
|
const name = $(event.currentTarget).val();
|
|
|
|
|
const rarete = Environnement.getRarete(name);
|
|
|
|
|
updated.rarete = rarete.name;
|
|
|
|
|
updated.frequence = Math.min(
|
|
|
|
|
Math.max(rarete.min, updated.frequence ?? rarete.frequence),
|
|
|
|
|
rarete.max);
|
|
|
|
|
}));
|
|
|
|
|
html.find("div.environnement-milieu input[name='environnement-frequence']").change(event => EnvironmentSheetHelper.onChange(sheet, event,
|
|
|
|
|
(updated) => {
|
|
|
|
|
updated.frequence = Number($(event.currentTarget).val())
|
|
|
|
|
}));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static async onAddMilieu(html, sheet, event) {
|
|
|
|
@ -187,7 +196,7 @@ export class EnvironmentSheetHelper {
|
|
|
|
|
|
|
|
|
|
static async onDeleteMilieu(sheet, event) {
|
|
|
|
|
const milieu = EnvironmentSheetHelper.$getEventMilieu(event);
|
|
|
|
|
if (milieu) {
|
|
|
|
|
if (milieu != undefined) {
|
|
|
|
|
const newList = sheet.item.system.environnement.filter(it => it.milieu != milieu)
|
|
|
|
|
.sort(Misc.ascending(it => it.milieu));
|
|
|
|
|
await sheet.item.update({ 'system.environnement': newList });
|
|
|
|
|