150 lines
3.9 KiB
JavaScript
150 lines
3.9 KiB
JavaScript
function parse(val) {
|
|
var result = "Not found",
|
|
tmp = [];
|
|
location.search
|
|
//.replace ( "?", "" )
|
|
// this is better, there might be a question mark inside
|
|
.substr(1)
|
|
.split("&")
|
|
.forEach(function (item) {
|
|
tmp = item.split("=");
|
|
if (tmp[0] === val) result = decodeURIComponent(tmp[1]);
|
|
});
|
|
return result;
|
|
}
|
|
|
|
function getColorByName(name) {
|
|
return {
|
|
"Diamond": 202,
|
|
"Ruby": 226,
|
|
"Fire": 224,
|
|
"Forest": 200,
|
|
"Red": 240,
|
|
"Green": 204,
|
|
"Blue": 195,
|
|
"Yellow": 252,
|
|
"Cyan": 207,
|
|
"Magenta": 243,
|
|
"Violet": 227,
|
|
"Orange": 244,
|
|
"Vivid Cerulean": 203,
|
|
"Chrome Yellow": 248,
|
|
"Spring Green": 206,
|
|
"Black": 192,
|
|
"Dark Gray": 213,
|
|
"Light Gray": 234,
|
|
"White": 255
|
|
}[name];
|
|
}
|
|
function getVariationByName(name) {
|
|
return ["Diamond", "Ruby", "Fire", "Forest"].indexOf(name) != -1;
|
|
}
|
|
|
|
(function() {
|
|
loadOptions();
|
|
submitHandler();
|
|
})();
|
|
|
|
function getDataToSend() {
|
|
bg_color = $("#bg_color").val();
|
|
num_color = $("#num_color").val();
|
|
orn_color = $("#orn_color").val();
|
|
data = {
|
|
large_mode: ''+$("#size").prop("checked"),
|
|
eu_date: ''+$("#date").prop("checked"),
|
|
quick_start: ''+$("#delay").prop("checked"),
|
|
leading_zero: ''+$("#zero").prop("checked"),
|
|
background_color: getColorByName(bg_color),
|
|
number_base_color: getColorByName(num_color),
|
|
number_variation: 0+getVariationByName(num_color),
|
|
ornament_base_color: getColorByName(orn_color),
|
|
ornament_variation: 0+getVariationByName(orn_color),
|
|
invert: ''+$("#invert").prop("checked"),
|
|
monochrome: ''+$("#monochrome").prop("checked"),
|
|
};
|
|
return data;
|
|
}
|
|
|
|
function saveData(){
|
|
if(localStorage) {
|
|
toStore = {
|
|
size: ''+$("#size").prop("checked"),
|
|
date: ''+$("#date").prop("checked"),
|
|
delay: ''+$("#delay").prop("checked"),
|
|
zero: ''+$("#zero").prop("checked"),
|
|
bg_color: $("#bg_color").val(),
|
|
num_color: $("#num_color").val(),
|
|
orn_color: $("#orn_color").val(),
|
|
invert: ''+$("#invert").prop("checked"),
|
|
monochrome: ''+$("#monochrome").prop("checked")
|
|
};
|
|
localStorage.setItem("lastconfig", JSON.stringify(toStore));
|
|
}
|
|
}
|
|
|
|
function restoreData(){
|
|
if(localStorage) {
|
|
stored = JSON.parse(localStorage.getItem("lastconfig"));
|
|
if(stored){
|
|
$("#size").prop("checked", (stored.size === 'true'));
|
|
$("#date").prop("checked", (stored.date === 'true'));
|
|
$("#delay").prop("checked", (stored.delay === 'true'));
|
|
$("#zero").prop("checked", (stored.zero === 'true'));
|
|
$("#bg_color").val(stored.bg_color);
|
|
$("#num_color").val(stored.num_color);
|
|
$("#orn_color").val(stored.orn_color);
|
|
$("#invert").prop("checked", (stored.invert === 'true'));
|
|
$("#monochrome").prop("checked", (stored.monochrome === 'true'));
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
function submitHandler() {
|
|
var $submitButton = $('#send');
|
|
|
|
$submitButton.on('click', function() {
|
|
console.log('Submit');
|
|
|
|
var return_to = getQueryParam('return_to', 'pebblejs://close#');
|
|
document.location = return_to + encodeURIComponent(JSON.stringify(getAndStoreConfigData()));
|
|
});
|
|
}
|
|
|
|
function loadOptions() {
|
|
if(parse('rect') == 'true') {
|
|
// $('.recthide').hide();
|
|
} else {
|
|
$('.roundhide').hide();
|
|
}
|
|
if(parse('bw') == 'true') {
|
|
$('.bwhide').hide();
|
|
$("option.bwhide").remove();
|
|
$("select").each(function() {
|
|
if ($(this)[0].value == "") {
|
|
$(this)[0].value = $(this).find('option.bwdefault').html();
|
|
}
|
|
});
|
|
} else {
|
|
$('.colorhide').hide();
|
|
}
|
|
restoreData();
|
|
}
|
|
|
|
function getAndStoreConfigData() {
|
|
saveData();
|
|
return getDataToSend();
|
|
}
|
|
|
|
function getQueryParam(variable, defaultValue) {
|
|
var query = location.search.substring(1);
|
|
var vars = query.split('&');
|
|
for (var i = 0; i < vars.length; i++) {
|
|
var pair = vars[i].split('=');
|
|
if (pair[0] === variable) {
|
|
return decodeURIComponent(pair[1]);
|
|
}
|
|
}
|
|
return defaultValue || false;
|
|
} |