Adding custom page for selecting sliding text languages
parent
0b11b47f91
commit
30a5fe6656
|
|
@ -222,6 +222,7 @@
|
|||
"type":"clock",
|
||||
"allow_emulator":true,
|
||||
"readme": "README.md",
|
||||
"custom":"custom.html",
|
||||
"storage": [
|
||||
{"name":"slidingtext.app.js","url":"slidingtext.js"},
|
||||
{"name":"slidingtext.img","url":"slidingtext-icon.js","evaluate":true},
|
||||
|
|
|
|||
|
|
@ -0,0 +1,69 @@
|
|||
<html>
|
||||
<head>
|
||||
<link rel="stylesheet" href="../../css/spectre.min.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<p>Please select watch languages</p>
|
||||
|
||||
<table id="language_selection">
|
||||
<tr>
|
||||
<th>Enabled</th>
|
||||
<th>Name</th>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<p>Click <button id="upload" class="btn btn-primary">Upload</button></p>
|
||||
|
||||
<script src="../../core/lib/customize.js"></script>
|
||||
|
||||
<script>
|
||||
|
||||
var slidingtext_languages=[
|
||||
{name:"English", shortname:"en"},
|
||||
{name:"English(Traditional)",shortname:"en2"},
|
||||
{name:"French",shortname:"fr"},
|
||||
{name:"Japanese",shortname:"jp"}
|
||||
];
|
||||
var selected_languages = ["en","fr","jp"];
|
||||
try{
|
||||
var stored = localStorage.getItem('slidingtext_stored')
|
||||
if(stored) selected_languages = JSON.parse(stored);
|
||||
} catch(e){
|
||||
console.log("failed to load languages:" + e);
|
||||
}
|
||||
console.log("selected languages:" + selected_languages);
|
||||
var tbl=document.getElementById("language_selection");
|
||||
for (var i=0; i<slidingtext_languages.length; i++) {
|
||||
var curr_language = slidingtext_languages[i];
|
||||
var language_selected = selected_languages.includes(curr_language["shortname"])
|
||||
var $offset = document.createElement('tr')
|
||||
$offset.innerHTML = `
|
||||
<td><input type="checkbox" id="enabled_${i}" ${language_selected? "checked" : ""}></td>
|
||||
<td>${curr_language['name']}</td>`
|
||||
tbl.append($offset);
|
||||
}
|
||||
|
||||
// When the 'upload' button is clicked...
|
||||
document.getElementById("upload").addEventListener("click", function() {
|
||||
var new_selected_languages=[];
|
||||
for (var i=0; i<slidingtext_languages.length; i++) {
|
||||
var curr_language = slidingtext_languages[i];
|
||||
var checked=document.getElementById("enabled_"+i).checked;
|
||||
if (checked) {
|
||||
new_selected_languages.push(curr_language.shortname);
|
||||
}
|
||||
}
|
||||
console.log("new selected languages:" + new_selected_languages);
|
||||
localStorage.setItem('slidingtext_stored',JSON.stringify(new_selected_languages));
|
||||
// send finished app (in addition to contents of app.json)
|
||||
sendCustomizedApp({
|
||||
storage:[
|
||||
{name:"slidingtext.languages.json", content:JSON.stringify(new_selected_languages)},
|
||||
]
|
||||
});
|
||||
});
|
||||
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -275,7 +275,25 @@ function setColor(main_color,other_color,bg_color){
|
|||
}
|
||||
|
||||
// load the date formats required
|
||||
var locales = ["en","en2","fr","jp"];
|
||||
|
||||
LANGUAGES_FILE = "slidingtext.languages.json";
|
||||
var LANGUAGES_DEFAULT = ["en","en2"];
|
||||
var locales = null;
|
||||
try{
|
||||
locales = require("Storage").readJSON(LANGUAGES_FILE);
|
||||
if(locales != null){
|
||||
console.log("loaded languages:" + JSON.stringify(locales));
|
||||
} else {
|
||||
console.log("no languages loaded");
|
||||
locales = LANGUAGES_DEFAULT;
|
||||
}
|
||||
} catch(e){
|
||||
console.log("failed to load languages:" + e);
|
||||
}
|
||||
if(locales == null || locales.length == 0){
|
||||
locales = LANGUAGES_DEFAULT;
|
||||
console.log("defaulting languages to locale:" + locales);
|
||||
}
|
||||
|
||||
let date_formatters = [];
|
||||
for(var i=0; i< locales.length; i++){
|
||||
|
|
|
|||
Loading…
Reference in New Issue