load(dataurl) {
this.preset = {};
+ let input;
+ if (input = window.location.hash.match(/\d+/)) {
+ this.preset.cat = input[0];
+ }
+ if (window.location.hash.match(/a/)) {
+ this.preset.level = 3;
+ }
+
fetch(dataurl).then(res => res.json()).then(json => {
this.words = this.dataselect(json)
this.setup();
});
}
+ log(...args) {
+ this.history.push([new Date().toISOString(), ...args]);
+ }
+
+ stop(...args) {
+ this.log(...args);
+ window.onbeforeunload = null;
+ fetch('/word/report', {method: 'POST', body: JSON.stringify(this.history)});
+ }
+
constructor(dataurl) {
this.load(dataurl);
+ this.history = [];
+ window.onbeforeunload = e => {
+ this.stop('abort');
+ };
}
}