Special fields

This commit is contained in:
ostertun
2020-10-22 11:37:19 +02:00
parent e17f99d005
commit 4eb2970671
14 changed files with 137 additions and 32 deletions

View File

@@ -1,4 +1,4 @@
const DB_VERSION = 6;
const DB_VERSION = 7;
const USER_ID = localStorage.getItem('auth_user');
const USER_NAME = localStorage.getItem('auth_username');
@@ -351,7 +351,7 @@ function dbGetRanking(minDate, maxDate, jugend, jugstrict) {
if (sailors[i].german == '0') {
sailors.splice(i, 1);
} else if (jugend) {
if (((sailors[i].year != null) && (sailors[i].year < (formatDate('Y', maxDate) - YOUTH_AGE))) ||
if (((sailors[i].year != null) && (sailors[i].year < (formatDate('Y', maxDate) - (await dbGetClassProp('youth-age'))))) ||
((sailors[i].year == null) && (jugstrict))) {
sailors.splice(i, 1);
}
@@ -417,6 +417,27 @@ function dbSettingsSet(key, value) {
}
}
function dbGetClassProp(key) {
return new Promise(function(resolve) {
if (canUseLocalDB) {
var request = db.transaction('class').objectStore('class').get(key);
request.onsuccess = function (event) {
resolve(typeof request.result != 'undefined' ? request.result.value : null);
}
} else {
getJSON(QUERY_URL + 'get_class_prop?key=' + key, function (code, data) {
if (code == 200) {
resolve(data.value);
} else {
log("[db] Something went wrong (HTTP " + code + ")");
fail(strings.error_network, 5000);
resolve(null);
}
});
}
});
}
async function updateSyncStatus() {
var lastSync = await dbGetData('update_times', 'last_sync');
lastSync = new Date(lastSync.time * 1000);
@@ -503,7 +524,7 @@ function sync() {
localTimes[entry['table']] = entry['time'];
});
syncInProgress = 11;
syncInProgress = 12;
var syncOkay = true;
log("[db] Sync Start");
$('#i-sync').addClass('fa-spin');
@@ -533,6 +554,24 @@ function sync() {
getJSON(QUERY_URL + 'get_update_time', function (code, serverTimes) {
if (code == 200) {
// CLASS
getJSON(QUERY_URL + 'get_class', function (code, data) {
if (code == 200) {
var os = db.transaction('class', 'readwrite').objectStore('class');
log(data);
for (key in data) {
os.put({ key: key, value: data[key] });
}
syncInProgress --;
log('[db] class synced, remaining:', syncInProgress);
} else {
log("[db] class: Something went wrong (HTTP " + code + ")");
syncOkay = false;
syncInProgress --;
log('[db] class failed, remaining:', syncInProgress);
}
});
// CLUBS
if (localTimes['clubs'] < serverTimes['clubs']) {
getJSON(QUERY_URL + 'get_clubs?changed-after=' + localTimes['clubs'], function (code, data) {
@@ -1065,6 +1104,11 @@ function initDatabase() {
osUpdateTimes.add({ table: 'news', time: 0 });
}
if ((oldVersion < 7) && (newVersion >= 7)) {
log('[db] to version 7');
var osClass = db.createObjectStore('class', { keyPath: 'key' });
}
// Force resync after db update
if (oldVersion >= 1) {
var osUpdateTimes = upgradeTransaction.objectStore('update_times');

View File

@@ -10,8 +10,6 @@
const QUERY_URL = '<?php echo QUERY_URL; ?>';
const BOATCLASS = '<?php echo BOATCLASS; ?>';
const LINK_PRE = '<?php echo SERVER_ADDR; ?>/';
const YOUTH_AGE = '<?php echo $_CLASS['youth-age']; ?>';
const YOUTH_GERMAN_NAME = '<?php echo $_CLASS['youth-german-name']; ?>';
const PUSH_SERVER_KEY = '<?php echo PUSH_SERVER_KEY; ?>';
var consoleOutput = [];