sliding clock: testing with current english clock

pull/2178/head
adrian w kirk 2022-07-31 23:42:09 +01:00
parent 74b5dc9441
commit b95360232f
5 changed files with 28 additions and 92 deletions

View File

@ -1,71 +0,0 @@
<html>
<head>
<link rel="stylesheet" href="../../css/spectre.min.css">
</head>
<body>
<p>Please select watch languages (Max 3, only the first 3 selected will be loaded)</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"},
{name:"Spanish",shortname:"es"},
{name:"German",shortname:"de"}
];
var selected_languages = ["en","es","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.length < 3 ) {
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>

View File

@ -8,7 +8,6 @@
"tags": "clock",
"supports": ["BANGLEJS","BANGLEJS2"],
"readme": "README.md",
"custom": "custom.html",
"allow_emulator": false,
"storage": [
{"name":"slidingtext.app.js","url":"slidingtext.js"},

View File

@ -14,7 +14,11 @@ class DateFormatter {
{major_minor: 'major', info_type: 'time'} :
{major_minor: 'minor', info_type: 'time'};
}
formatProperties(){ return {}; }
formatProperties(){
return {
default_style: {}
};
}
}
module.exports = DateFormatter;

View File

@ -300,7 +300,10 @@ var style;
var style_settings;
function init_style() {
if(style_settings == null){
style_settings = date_formatter.formatProperties().default_style;
var formatProps = date_formatter.formatProperties();
if(formatProps != null){
style_settings = formatProps.default_style;
}
}
if(style_settings == null){
style_settings = {};
@ -658,16 +661,20 @@ class DigitDateTimeFormatter {
}
}
var date_formatter = new DigitDateTimeFormatter();
var date_formatter;
function set_dateformat(shortname){
console.log("setting date format:" + shortname);
try {
if (date_formatter == null || date_formatter.shortName() !== shortname) {
date_formatter = require("slidingtext.locale." + shortname + ".js");
var date_formatter_class = require("slidingtext.locale." + shortname + ".js");
date_formatter = new date_formatter_class();
}
} catch(e){
console.log("Failed to load " + shortname);
}
if(date_formatter == null){
date_formatter = new DigitDateTimeFormatter();
}
}
var enable_live_controls = false;
@ -682,7 +689,6 @@ function load_settings() {
if (settings != null) {
console.log("loaded:" + JSON.stringify(settings));
if (settings.date_format != null) {
set_dateformat(settings.date_format);
if (settings.style_settings != null) {

View File

@ -7,19 +7,16 @@
settings.enable_live_controls = (g.getHeight()> 200);
}
console.log("loaded:" + JSON.stringify(settings));
const LANGUAGES_FILE = "slidingtext.languages.json";
const LANGUAGES_DEFAULT = ["en","en2"];
var locales = null;
try {
locales = require("Storage").readJSON(LANGUAGES_FILE);
} 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);
var locale_mappings = {
'English Time':'en',
'English Date + Time': 'en3',
'English Time (Trad)': 'en2',
'French': 'fr',
'German': 'de',
'Spanish': 'es',
'Japanese': 'jp',
}
var locales = Object.keys(locale_mappings);
function writeSettings() {
console.log("saving:" + JSON.stringify(settings));
@ -27,7 +24,7 @@
}
// Helper method which uses int-based menu item for set of string values
function stringItems(startvalue, writer, values) {
function stringItems(startvalue, writer, values, value_mapping) {
return {
value: (startvalue === undefined ? 0 : values.indexOf(startvalue)),
format: v => values[v],
@ -36,7 +33,8 @@
wrap: true,
step: 1,
onchange: v => {
writer(values[v]);
var write_value = (value_mapping == null)? values[v] : value_mapping(values[v]);
writer(write_value);
writeSettings();
}
};
@ -52,7 +50,7 @@
"" : { "title" : "Sliding Text" },
"< Back" : () => back(),
"Colour": stringInSettings("color_scheme", ["white", "black", "red","grey","purple","blue"]),
"Languages": stringInSettings("date_format", locales),
"Languages": stringInSettings("date_format", locales, (l)=>locale_mappings[l] ),
"Live Control": {
value: (settings.enable_live_controls !== undefined ? settings.enable_live_controls : true),
format: v => v ? "On" : "Off",