Merge pull request #7 from danieladov/cssEditor

Css editor
This commit is contained in:
Prayag
2020-12-11 19:04:51 +05:30
committed by GitHub

View File

@@ -55,7 +55,8 @@
updateSelectors() updateSelectors()
} }
function loadOptions(options){ function loadOptions(skin){
var options = skin.options;
var page = $.mobile.activePage; var page = $.mobile.activePage;
var html = ""; var html = "";
html += '<div data-role="controlgroup">'; html += '<div data-role="controlgroup">';
@@ -72,9 +73,20 @@
html += getSlider(element); html += getSlider(element);
} }
}); });
html += loadPreviews(skin);
html += '</div>'; html += '</div>';
$('#options', page).html(html).trigger('create'); $('#options', page).html(html).trigger('create');
} }
function loadPreviews(skin){
var html = "";
skin.previews.forEach(element => {
html += getImage(element.url);
});
return html;
}
function getCheckBox ( option) { function getCheckBox ( option) {
var html = ""; var html = "";
var id = "chkFolder" ; var id = "chkFolder" ;
@@ -131,6 +143,7 @@
return html; return html;
} }
function getSlider(option){ function getSlider(option){
var html = ""; var html = "";
var id = "slider" ; var id = "slider" ;
var name = option.name; var name = option.name;
@@ -140,6 +153,12 @@
var description = option.description; var description = option.description;
html += '<div class="inputContainer"><input is="emby-slider" type="range" class = "slider" value=' + defaultValue + ' step=' + step + ' data-css = "'+ css+ '" id="' + id + '" name="' + id + '" min="0" max="300" label="'+name +'" /><div class="fieldDescription">'+description+'</div></div>' html += '<div class="inputContainer"><input is="emby-slider" type="range" class = "slider" value=' + defaultValue + ' step=' + step + ' data-css = "'+ css+ '" id="' + id + '" name="' + id + '" min="0" max="300" label="'+name +'" /><div class="fieldDescription">'+description+'</div></div>'
return html return html
}
function getImage(url){
var html = "";
html += '<img src="'+url+'">';
return html;
} }
function createCss(){ function createCss(){
@@ -154,15 +173,18 @@
var selectedOptions = $('.checkbox:checked').map(function () { var selectedOptions = $('.checkbox:checked').map(function () {
return this.getAttribute('data-css'); return this.getAttribute('data-css');
}).get(); }).get();
selectedOptions.forEach(element => { selectedOptions.forEach(element => {
css += element +"\n"; css += element +"\n";
}); });
//proccess selector //proccess selector
var selectors = document.getElementsByClassName("selector"); var selectors = document.getElementsByClassName("selector");
for (let element of selectors) { for (let element of selectors) {
css += element.getAttribute("data-css").replaceAll("$",element.value) + "\n"; css += element.getAttribute("data-css").replaceAll("$",element.value) + "\n";
savedHtml += element.outerHTML; savedHtml += element.outerHTML;
} }
//process colorPicker //process colorPicker
selectedOptions.forEach(element=>{ selectedOptions.forEach(element=>{
css += element + "\n"; css += element + "\n";
@@ -178,12 +200,14 @@
} }
css+= element.getAttribute("data-css").replaceAll("$",color)+ "\n"; css+= element.getAttribute("data-css").replaceAll("$",color)+ "\n";
} }
//procces number selector //procces number selector
var numberSelectors = document.getElementsByClassName("number"); var numberSelectors = document.getElementsByClassName("number");
for (let element of numberSelectors) { for (let element of numberSelectors) {
savedHtml += element.outerHTML; savedHtml += element.outerHTML;
css+= element.getAttribute("data-css").replaceAll("$",element.value) + "\n"; css+= element.getAttribute("data-css").replaceAll("$",element.value) + "\n";
} }
//procces slider //procces slider
var sliders = document.getElementsByClassName("slider"); var sliders = document.getElementsByClassName("slider");
for (let element of sliders) { for (let element of sliders) {
@@ -191,17 +215,26 @@
} }
return css; return css;
} }
function updateSelectors(){ function updateSelectors(){
var selected = document.getElementById("cssOptions"); var selected = document.getElementById("cssOptions");
var description = document.getElementById("description"); var description = document.getElementById("description");
data.forEach(element=>{ data.forEach(element=>{
if(element.name == selected.selectedOptions[0].innerText){ if(element.name == selected.selectedOptions[0].innerText){
loadOptions(element.options); loadOptions(element);
description.innerHTML=element.description; description.innerHTML=element.description;
} }
}) })
} }
function setSkin() { function setSkin() {
ApiClient.getServerConfiguration().then(function (config) { ApiClient.getServerConfiguration().then(function (config) {
ApiClient.updateServerConfiguration(config).then(function() { ApiClient.updateServerConfiguration(config).then(function() {