diff --git a/Jellyfin.Plugin.SkinManager/Configuration/configurationpage.html b/Jellyfin.Plugin.SkinManager/Configuration/configurationpage.html index a5c625d..aca2550 100644 --- a/Jellyfin.Plugin.SkinManager/Configuration/configurationpage.html +++ b/Jellyfin.Plugin.SkinManager/Configuration/configurationpage.html @@ -55,7 +55,8 @@ updateSelectors() } - function loadOptions(options){ + function loadOptions(skin){ + var options = skin.options; var page = $.mobile.activePage; var html = ""; html += '
'; @@ -72,9 +73,20 @@ html += getSlider(element); } }); + html += loadPreviews(skin); html += '
'; $('#options', page).html(html).trigger('create'); } + + function loadPreviews(skin){ + var html = ""; + skin.previews.forEach(element => { + html += getImage(element.url); + }); + return html; + } + + function getCheckBox ( option) { var html = ""; var id = "chkFolder" ; @@ -120,55 +132,65 @@ html += '
' return html; } - function getOptions(option){ - var html = ""; - var selections = option.selections - var css = option.css; - selections.forEach(element=>{ - var name = element.name; - html+= '' + function getOptions(option){ + var html = ""; + var selections = option.selections + var css = option.css; + selections.forEach(element=>{ + var name = element.name; + html+= '' }) return html; + } + function getSlider(option){ + + var html = ""; + var id = "slider" ; + var name = option.name; + var css = option.css; + var step = option.step==undefined?1:option.step; + var defaultValue = option.default; + var description = option.description; + html += '
'+description+'
' + return html + } - function getSlider(option){ - var html = ""; - var id = "slider" ; - var name = option.name; - var css = option.css; - var step = option.step==undefined?1:option.step; - var defaultValue = option.default; - var description = option.description; - html += '
'+description+'
' - return html - } + function getImage(url){ + var html = ""; + html += ''; + return html; + } - function createCss(){ - var savedHtml = ""; - //process checkbox - var css = $('#cssOptions').val(); - savedHtml += document.getElementById("cssOptions").innerHTML; - var checkboxes = document.getElementsByClassName("checkbox"); - for (let element of checkboxes) { - savedHtml += element.innerHTML; - } - var selectedOptions = $('.checkbox:checked').map(function () { + function createCss(){ + var savedHtml = ""; + //process checkbox + var css = $('#cssOptions').val(); + savedHtml += document.getElementById("cssOptions").innerHTML; + var checkboxes = document.getElementsByClassName("checkbox"); + for (let element of checkboxes) { + savedHtml += element.innerHTML; + } + var selectedOptions = $('.checkbox:checked').map(function () { return this.getAttribute('data-css'); }).get(); + selectedOptions.forEach(element => { css += element +"\n"; }); + //proccess selector - var selectors = document.getElementsByClassName("selector"); - for (let element of selectors) { + var selectors = document.getElementsByClassName("selector"); + for (let element of selectors) { css += element.getAttribute("data-css").replaceAll("$",element.value) + "\n"; savedHtml += element.outerHTML; } + //process colorPicker selectedOptions.forEach(element=>{ css += element + "\n"; }) - var colorPickers = document.getElementsByClassName("color"); - for (let element of colorPickers) { + var colorPickers = document.getElementsByClassName("color"); + for (let element of colorPickers) { savedHtml += element.outerHTML if(element.getAttribute("data-mode")=="rgba"){ var rgbColor = hexToRgb( element.value); @@ -178,30 +200,41 @@ } css+= element.getAttribute("data-css").replaceAll("$",color)+ "\n"; } + //procces number selector - var numberSelectors = document.getElementsByClassName("number"); - for (let element of numberSelectors) { - savedHtml += element.outerHTML; + var numberSelectors = document.getElementsByClassName("number"); + for (let element of numberSelectors) { + savedHtml += element.outerHTML; css+= element.getAttribute("data-css").replaceAll("$",element.value) + "\n"; } + //procces slider - var sliders = document.getElementsByClassName("slider"); - for (let element of sliders) { - css+= element.getAttribute("data-css").replaceAll("$",element.value) + "\n"; + var sliders = document.getElementsByClassName("slider"); + for (let element of sliders) { + css+= element.getAttribute("data-css").replaceAll("$",element.value) + "\n"; } return css; } + + function updateSelectors(){ var selected = document.getElementById("cssOptions"); var description = document.getElementById("description"); data.forEach(element=>{ if(element.name == selected.selectedOptions[0].innerText){ - loadOptions(element.options); + loadOptions(element); description.innerHTML=element.description; + } }) } + + + + + + function setSkin() { ApiClient.getServerConfiguration().then(function (config) { ApiClient.updateServerConfiguration(config).then(function() {