From 980715c72f5057f56702a4165c994d22a9d9a06d Mon Sep 17 00:00:00 2001 From: adrien Date: Wed, 18 Mar 2026 01:38:43 +0100 Subject: [PATCH] save both skins --- js/app.js | 52 +++++++++++++++++++++++++++++++++++-------------- js/interface.js | 9 --------- 2 files changed, 37 insertions(+), 24 deletions(-) diff --git a/js/app.js b/js/app.js index 283dbe8..895ba96 100644 --- a/js/app.js +++ b/js/app.js @@ -323,7 +323,6 @@ sceneDiv.onwheel = function (event) { screenRow.style.setProperty('--tZ', tZ + 'px'); }; -const ImageURLPattern = /^(https?:\/\/.*\.(?:png|jpg|jpeg|gif|bmp|webp|svg))$/i $.fn.select2.defaults.set("templateResult", (state) => state.id ? $(``) @@ -331,12 +330,12 @@ $.fn.select2.defaults.set("templateResult", (state) => ) $.fn.select2.defaults.set("templateSelection", (state) => state.id - ? $(` + ? $(`
`) - : state.text + : state.text ) $.fn.select2.defaults.set("theme", "bootstrap-5") $.fn.select2.defaults.set("selectionCssClass", 'form-select') @@ -346,7 +345,7 @@ $.fn.select2.defaults.set("placeholder", "URL de l'image") $.fn.select2.defaults.set("tags", true) $.fn.select2.defaults.set("createTag", function (params) { const url = encodeURI(params.term); - if (ImageURLPattern.test(url)) { + if (/^(https?:\/\/.*\.(?:png|jpg|jpeg|gif|bmp|webp|svg))$/i.test(url)) { return { id: url, text: 'Source externe', @@ -357,13 +356,13 @@ $.fn.select2.defaults.set("createTag", function (params) { stylesheetSelect.oninput = function (event) { selectedStyleSheet.href = this.value; - - $("#skinURLSelect").empty(); - + var skinURL = skinURLSelect.value + switch (this.value) { case 'css/tetrio-skin.css': - skinURLSelect.disabled = false; - + localStorage[skinURLSelect.name] = skinURLSelect.value + skinURLSelect.name = "tetrioSkinURL" + $("#skinURLSelect").empty(); const baseURL = "https://you.have.fail/tetrioplus/data" fetch(`${baseURL}/data.json`) .then((resp) => resp.json()) @@ -376,7 +375,7 @@ stylesheetSelect.oninput = function (event) { children: skins.map((skin) => { return { id: `${baseURL}/${encodeURI(skin.path)}`, - text:`${skin.name}\n${skin.description}` + text: skin.description? `${skin.name}\n${skin.description}` : `${skin.name}` } }) } @@ -388,14 +387,26 @@ stylesheetSelect.oninput = function (event) { text: "A forest" }] }) - data.sort((group1, group2) => group1.text > group2.text) - $('#skinURLSelect').select2({data: data}); + data.sort((group1, group2) => group1.text > group2.text) + + skinURLSelect.disabled = false; + $('#skinURLSelect').select2({data: data}) + if (skinURL = localStorage['tetrioSkinURL']) { + if ($('#skinURLSelect').find(`option[value='${skinURL}']`).length) { + $('#skinURLSelect').val(skinURL).trigger('change'); + } else { + var option = new Option('Sample sauvegardé', skinURL); + $('#skinURLSelect').append(option).trigger('change'); + } + skinURLSelect.oninput(); + } }) break; case 'css/jstris-skin.css': - skinURLSelect.disabled = false; - + localStorage[skinURLSelect.name] = skinURLSelect.value + skinURLSelect.name = "jstrisSkinURL" + $("#skinURLSelect").empty(); fetch('https://konsola5.github.io/jstris-customization-database/jstrisCustomizationDatabase.json') .then(response => response.json()) .then(json => { @@ -410,7 +421,18 @@ stylesheetSelect.oninput = function (event) { }; data.push(groupData); } - $('#skinURLSelect').select2({data: data}); + + skinURLSelect.disabled = false; + $('#skinURLSelect').select2({data: data}) + if (skinURL = localStorage['jstrisSkinURL']) { + if ($('#skinURLSelect').find(`option[value='${skinURL}']`).length) { + $('#skinURLSelect').val(skinURL).trigger('change'); + } else { + var option = new Option('Sample sauvegardé', skinURL); + $('#skinURLSelect').append(option).trigger('change'); + } + skinURLSelect.oninput(); + } }); break; diff --git a/js/interface.js b/js/interface.js index 592f5ea..c0c1fdf 100644 --- a/js/interface.js +++ b/js/interface.js @@ -37,15 +37,6 @@ class Settings { if (element.name in localStorage) element.value = localStorage[element.name]; }); stylesheetSelect.oninput(); - if (localStorage['skinURL']) { - if ($('#skinURLSelect').find("option[value='" + localStorage['skinURL'] + "']").length) { - $('#skinURLSelect').val(localStorage['skinURL']).trigger('change'); - } else { - var option = new Option('Sample sauvegardé', localStorage['skinURL']); - $('#skinURLSelect').append(option).trigger('change'); - } - skinURLSelect.oninput(); - } } save() {