incheck: [],
pgnTxt: "",
hints: (getCookie("hints") === "1" ? true : false),
- //color: TODO (lichess, chess.com, chesstempo)
- //sound: TODO (0,1, 2)
+ color: getCookie("color", "lichess"), //lichess, chesscom or chesstempo
+ // sound level: 0 = no sound, 1 = sound only on newgame, 2 = always
+ sound: getCookie("sound", "2"),
};
},
render(h) {
const settingsBtnElt = document.getElementById("settingsBtn");
const indicWidth = !!settingsBtnElt //-2 for border:
? parseFloat(window.getComputedStyle(settingsBtnElt).height.slice(0,-2)) - 2
- : 30;
+ : 37; //TODO: always 37?
if (this.mode == "human")
{
let connectedIndic = h(
"topindicator": true,
"indic-right": true,
"settings-btn": true,
- "small": smallScreen,
},
},
[h('i', { 'class': { "material-icons": true } }, "settings")]
['board'+sizeY]: true,
'light-square': (i+j)%2==0,
'dark-square': (i+j)%2==1,
+ [this.color]: true,
'highlight': showLight && !!lm && _.isMatch(lm.end, {x:ci,y:cj}),
'incheck': showLight && incheckSq[ci][cj],
},
];
elementArray = elementArray.concat(modalEog);
}
+ // TODO: next 3 modals in (pug) view directly?!
const modalNewgame = [
h('input',
{
h('h3',
{
"class": { "section": true },
- domProps: { innerHTML: "User settings" },
+ domProps: { innerHTML: "Preferences" },
}
),
// https://minicss.org/docs#forms-and-input
- h('p', { domProps: { innerHTML: "TODO: hints" } }),
+ h('input',
+ {
+ attrs: {
+ "id": "setHints",
+ type: "checkbox",
+ checked: this.hints,
+ },
+ }
+ ),
+ h('label',
+ {
+ attrs: {
+ for: "setHints",
+ },
+ domProps: { innerHTML: "Show hints?" },
+ },
+ ),
h('p', { domProps: { innerHTML: "TODO: board(color)" } }),
h('p', { domProps: { innerHTML: "TODO: sound(level)" } }),
]
// Source: https://www.quirksmode.org/js/cookies.html
-function setCookie(name,value)
+function setCookie(name, value)
{
var date = new Date();
date.setTime(date.getTime()+(183*24*60*60*1000)); //6 months
document.cookie = name+"="+value+expires+"; path=/";
}
-function getCookie(name) {
+function getCookie(name, defaut) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for (var i=0;i < ca.length;i++)
if (c.indexOf(nameEQ) == 0)
return c.substring(nameEQ.length,c.length);
}
- return null;
+ return defaut; //cookie not found
}
// Random (enough) string for socket and game IDs
clear: both
padding-top: 5px
-.light-square
- background-color: #f0d9b5
-.dark-square
- background-color: #b58863
+.light-square.lichess
+ background-color: #f0d9b5;
+.dark-square.lichess
+ background-color: #b58863;
+.light-square.chesscom
+ background-color: #e5e5ca;
+.dark-square.chesscom
+ background-color: #6f8f57;
+.light-square.chesstempo
+ background-color: #fdfdfd;
+.dark-square.chesstempo
+ background-color: #88a0a8;
.highlight
background-color: #00cc66