Site configs are hidden by default. Wrote functions for gathering/setting the values from the edit form of a given site.

This commit is contained in:
Tamius Han 2017-03-14 23:51:03 +01:00
parent f5d3711b4c
commit 505995f83f
2 changed files with 93 additions and 26 deletions

View File

@ -222,7 +222,9 @@ var UW_SITES = {
isClass: true,
insertStrat: "prepend",
},
autoar_imdb: false
autoar_imdb:{
enabled: false
}
},
netflix: {
enabled: true,
@ -237,7 +239,11 @@ var UW_SITES = {
isClass: true,
insertStrat: "append"
},
autoar_imdb: true
autoar_imdb:{
enabled: true,
title: "dummy please replace",
isClass: false
}
},
dummy: {
type: "add new site",
@ -253,7 +259,9 @@ var UW_SITES = {
isClass: false,
insertStrat: "prepend",
},
autoar_imdb: false
autoar_imdb:{
enabled: false
}
}
}
browser.storage.local.set({ultrawidify_siterules: UW_SITES});

View File

@ -270,7 +270,7 @@ function gotsites(opts){
var category_desc = document.createElement("div");
if(type == "official"){
category_desc.textContent = "These sites are officially supported by the extension developer. These sites should always work.";
category_desc.innerHTML = "These sites are officially supported by the extension developer. These sites should always work. <small>(Pro tip: if you don't want extension to run on some of the following sites, uncheck the checkbox for that site)</small>";
}
else if(type == "non-official"){
category_desc.textContent = "Sites in this category have been contribued by third parties. These sites will probably work, but the developer couldn't test whether they work or not.";
@ -314,7 +314,7 @@ function gotsites(opts){
saveBtn.textContent = "« save »";
saveBtn.className = "inline_button hide";
saveBtn.id = site + "_save_button";
saveBtn.addEventListener("click", function(){ var site = this.id; site = site.replace("_save_button", ""); enableEditing(site)});
saveBtn.addEventListener("click", function(){ var site = this.id; site = site.replace("_save_button", ""); getSiteOpts(site)});
var cancelBtn = document.createElement("div");
cancelBtn.textContent = "« cancel »";
@ -326,12 +326,17 @@ function gotsites(opts){
siteTitle.append(saveBtn);
siteTitle.append(cancelBtn);
}
var siteDetails = document.createElement("div");
siteDetails.id = site + "_conf_details";
siteDetails.classList = "hide";
var urlRules = document.createElement("div");
{
var urlRulesLabel = document.createElement("span");
urlRulesLabel.textContent = "URL rule: ";
urlRulesEbox = mkebox(site, uw_sites[site].urlRules[0]);
urlRulesEbox = mkebox(site, uw_sites[site].urlRules[0], "url_rules");
urlRules.append(urlRulesLabel);
urlRules.append(urlRulesEbox);
@ -343,10 +348,9 @@ function gotsites(opts){
var playerName = document.createElement("div");
var playerNameLabel = document.createElement("span");
var playerNameEbox = mkebox(site);
playerNameLabel.textContent = "id of the player container:";
playerNameEbox = mkebox(site, uw_sites[site].player.name);
var playerNameEbox = mkebox(site, uw_sites[site].player.name, "player_name");
playerName.append(playerNameLabel);
playerName.append(playerNameEbox);
@ -372,21 +376,21 @@ function gotsites(opts){
var iframe_playerName = document.createElement("div");
var ipn_label = document.createElement("span");
ipn_label.textContent = "id of the player container when in an iframe:";
ipn_ebox = mkebox(site, uw_sites[site].iframe ? uw_sites[site].iframe.name : "");
ipn_ebox = mkebox(site, uw_sites[site].iframe ? uw_sites[site].iframe.name : "", "iframe_name");
iframe_playerName.append(ipn_label);
iframe_playerName.append(ipn_ebox);
var iframe_playerClass = document.createElement("div");
var ipc_label = document.createElement("span");
ipc_label.textContent = " Name of the player container is a class";
var ipc_cb = mkcb(site, uw_sites[site].iframe ? uw_sites[site].iframe.isClass : false);
var ipc_cb = mkcb(site, uw_sites[site].iframe ? uw_sites[site].iframe.isClass : false, "iframe_class");
iframe_playerClass.append(ipc_cb);
iframe_playerClass.append(ipc_label);
var imdbar = document.createElement("div");
var imdbar_cb = mkcb(site, uw_sites[site].autoar_imdb);
var imdbar_cb = mkcb(site, uw_sites[site].autoar_imdb, "imdbar");
var imdbar_label = document.createElement("span");
imdbar_label.textContent = " This site supports automatic aspect ratio detection";
imdbar.append(imdbar_cb);
@ -395,14 +399,14 @@ function gotsites(opts){
var imdbar_title = document.createElement("div");
var it_label = document.createElement("span");
it_label.textContent = "id of the element containing video title:";
it_ebox = mkebox(site, uw_sites[site].iframe ? uw_sites[site].iframe.name : "");
it_ebox = mkebox(site, uw_sites[site].iframe ? uw_sites[site].iframe.name : "", "imdbar_title");
imdbar_title.append(it_label);
imdbar_title.append(it_ebox);
var imdbar_class = document.createElement("div");
var ic_label = document.createElement("span");
ic_label.textContent = " Name of the title container is a class";
var ic_cb = mkcb(site, uw_sites[site].iframe ? uw_sites[site].iframe.isClass : false);
var ic_cb = mkcb(site, uw_sites[site].iframe ? uw_sites[site].iframe.isClass : false, "imdbar_class");
imdbar_class.append(ic_cb);
imdbar_class.append(ic_label);
@ -411,17 +415,21 @@ function gotsites(opts){
siteDetails.append(urlRules);
siteDetails.append(playerElement);
siteDetails.append(iframe_playerName);
siteDetails.append(iframe_playerClass);
siteDetails.append(imdbar);
siteDetails.append(imdbar_title);
siteDetails.append(imdbar_class);
displayedInfo.append(siteTitle);
displayedInfo.append(urlRules);
displayedInfo.append(playerElement);
displayedInfo.append(iframe_playerName);
displayedInfo.append(iframe_playerClass);
displayedInfo.append(imdbar);
displayedInfo.append(imdbar_title);
displayedInfo.append(imdbar_class);
displayedInfo.append(siteDetails);
entry.append(displayedInfo);
@ -443,9 +451,10 @@ function gotsites(opts){
}
function mkebox(site, value){
function mkebox(site, value, id){
var ebox = document.createElement("input");
ebox.className = "site_details details_ebox " + site + "_ebox",
ebox.id = site + "_" + id + "_ebox";
ebox.type = "text";
ebox.value = value;
ebox.disabled = true;
@ -453,12 +462,12 @@ function mkebox(site, value){
return ebox;
}
function mkcb(site, checked, forceEnable){
function mkcb(site, checked, id, forceEnable){
var cb = document.createElement("input");
cb.className = site + "_ebox",
cb.type = "checkbox";
cb.name = site + "_cb_name";
cb.id = site + "_cb_id";
cb.id = site + "_" + id + "_cb";
cb.checked = checked;
if(!forceEnable)
@ -468,6 +477,7 @@ function mkcb(site, checked, forceEnable){
}
function enableEditing(site){
showSiteDetails(site);
if(debugmsg)
console.log("uw settings :: enableEditing | enabling editing for",site);
@ -517,6 +527,55 @@ function disableEditing(site){
} catch (e){};
}
function showSiteDetails(site){
try{
document.getElementById(site + "_conf_details").classList.remove("hide");
}catch(me_outside_how_about_that){}
}
function hideSiteDetails(site){
try{
document.getElementById(site + "_conf_details").classList.add("hide");
}catch(me_outside_how_about_that){}
}
function getSiteOpts(site){
var newOptions = {};
newOptions.urlRules = [ document.getElementById(site + "_url_rules_ebox").value ];
newOptions.player = {};
newOptions.player.name = document.getElementById(site + "_player_name_ebox").value;
newOptions.player.isClass = document.getElementById(site + "_pccb_id").checked;
newOptions.iframe = {};
newOptions.iframe.name = document.getElementById(site + "_iframe_name_ebox").value;
newOptions.iframe.isClass = document.getElementById(site + "_iframe_class_cb").checked;
newOptions.autoar_imdb = {};
newOptions.autoar_imdb.enabled = document.getElementById(site + "_imdbar_cb").value;
newOptions.autoar_imdb.title = document.getElementById(site + "_imdbar_title_ebox").value;
newOptions.autoar_imdb.isClass = document.getElementById(site + "_imdbar_class_cb").checked;
console.log(newOptions); //TODO: delete this logline
return newOptions;
}
function setSiteOpts(site, opts){
document.getElementById(site + "_url_rules_ebox").value = opts.urlRules[0];
document.getElementById(site + "_player_name_ebox").value = opts.player.name;
document.getElementById(site + "_pccb_id").checked = opts.player.isClass;
if(opts.iframe){
document.getElementById(site + "_iframe_name_ebox").value = opts.iframe.name;
document.getElementById(site + "_iframe_class_cb").checked = opts.iframe.isClass;
}
if(opts.autoar_imdb){
document.getElementById(site + "_imdbar_cb").checked = opts.autoar_imdb.enabled;
if(opts.autoar_imdb.enabled){
document.getElementById(site + "_imdbar_title_ebox").value = opts.autoar_imdb.title;
document.getElementById(site + "_imdbar_class_cb").value = opts.autoar_imdb.isClass
}
}
}
function loadopts(){
getopt("ultrawidify_keybinds", gotopts);