mirror of https://github.com/espruino/BangleApps
sliding clock: testing with current english clock
parent
74b5dc9441
commit
b95360232f
|
@ -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>
|
|
@ -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"},
|
||||
|
|
|
@ -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;
|
|
@ -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) {
|
||||
|
|
|
@ -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",
|
||||
|
|
Loading…
Reference in New Issue