Fixes
This commit is contained in:
@@ -483,262 +483,49 @@ function sync() {
|
|||||||
if (!canUseLocalDB) return false;
|
if (!canUseLocalDB) return false;
|
||||||
if (syncInProgress > 0) return false;
|
if (syncInProgress > 0) return false;
|
||||||
|
|
||||||
var now = Math.floor(Date.now() / 1000);
|
return new Promise(function(resolve) {
|
||||||
|
var now = Math.floor(Date.now() / 1000);
|
||||||
|
|
||||||
db.transaction('update_times').objectStore('update_times').getAll().onsuccess = function (event) {
|
db.transaction('update_times').objectStore('update_times').getAll().onsuccess = function (event) {
|
||||||
var localTimes = {};
|
var localTimes = {};
|
||||||
event.target.result.forEach(function (entry) {
|
event.target.result.forEach(function (entry) {
|
||||||
localTimes[entry['table']] = entry['time'];
|
localTimes[entry['table']] = entry['time'];
|
||||||
});
|
});
|
||||||
|
|
||||||
syncInProgress = 11;
|
syncInProgress = 11;
|
||||||
var syncOkay = true;
|
var syncOkay = true;
|
||||||
log("Sync Start");
|
log("Sync Start");
|
||||||
$('#i-sync').addClass('fa-spin');
|
$('#i-sync').addClass('fa-spin');
|
||||||
|
|
||||||
var interval = window.setInterval(function () {
|
var interval = window.setInterval(function () {
|
||||||
if (syncInProgress <= 0) {
|
if (syncInProgress <= 0) {
|
||||||
window.clearInterval(interval);
|
window.clearInterval(interval);
|
||||||
if (syncOkay) {
|
if (syncOkay) {
|
||||||
var osUpdateTimes = db.transaction('update_times', 'readwrite').objectStore('update_times');
|
var osUpdateTimes = db.transaction('update_times', 'readwrite').objectStore('update_times');
|
||||||
osUpdateTimes.put({ table: 'last_sync', time: now });
|
osUpdateTimes.put({ table: 'last_sync', time: now });
|
||||||
|
}
|
||||||
|
log("Sync Stop");
|
||||||
|
setTimeout(function(){
|
||||||
|
$('#i-sync').removeClass('fa-spin');
|
||||||
|
}, 500);
|
||||||
|
|
||||||
|
if (typeof onAfterSync === 'function') {
|
||||||
|
onAfterSync();
|
||||||
|
}
|
||||||
|
removeSyncInfoToPreloader();
|
||||||
|
runPageScript();
|
||||||
|
resolve();
|
||||||
}
|
}
|
||||||
log("Sync Stop");
|
}, 100);
|
||||||
setTimeout(function(){
|
|
||||||
$('#i-sync').removeClass('fa-spin');
|
|
||||||
}, 500);
|
|
||||||
|
|
||||||
if (typeof onAfterSync === 'function') {
|
getJSON(QUERY_URL + 'get_update_time', function (code, serverTimes) {
|
||||||
onAfterSync();
|
if (code == 200) {
|
||||||
}
|
|
||||||
removeSyncInfoToPreloader();
|
|
||||||
runPageScript();
|
|
||||||
}
|
|
||||||
}, 100);
|
|
||||||
|
|
||||||
getJSON(QUERY_URL + 'get_update_time', function (code, serverTimes) {
|
// CLUBS
|
||||||
if (code == 200) {
|
if (localTimes['clubs'] < serverTimes['clubs']) {
|
||||||
|
getJSON(QUERY_URL + 'get_clubs?changed-after=' + localTimes['clubs'], function (code, data) {
|
||||||
// CLUBS
|
|
||||||
if (localTimes['clubs'] < serverTimes['clubs']) {
|
|
||||||
getJSON(QUERY_URL + 'get_clubs?changed-after=' + localTimes['clubs'], function (code, data) {
|
|
||||||
if (code == 200) {
|
|
||||||
var os = db.transaction('clubs', 'readwrite').objectStore('clubs');
|
|
||||||
data.data.forEach(function (entry) {
|
|
||||||
os.put(entry);
|
|
||||||
});
|
|
||||||
os.openCursor().onsuccess = function (event) {
|
|
||||||
var cursor = event.target.result;
|
|
||||||
if (cursor) {
|
|
||||||
if (!data.keys.includes(parseInt(cursor.key))) {
|
|
||||||
os.delete(cursor.key);
|
|
||||||
}
|
|
||||||
cursor.continue();
|
|
||||||
} else {
|
|
||||||
var osUpdateTimes = db.transaction('update_times', 'readwrite').objectStore('update_times');
|
|
||||||
osUpdateTimes.put({ table: 'clubs', time: serverTimes['clubs'] });
|
|
||||||
syncInProgress --;
|
|
||||||
log('clubs synced, remaining:', syncInProgress);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
} else {
|
|
||||||
log("clubs: Something went wrong (HTTP " + code + ")");
|
|
||||||
syncOkay = false;
|
|
||||||
syncInProgress --;
|
|
||||||
log('clubs failed, remaining:', syncInProgress);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
syncInProgress --;
|
|
||||||
}
|
|
||||||
|
|
||||||
// BOATS
|
|
||||||
if (localTimes['boats'] < serverTimes['boats']) {
|
|
||||||
getJSON(QUERY_URL + 'get_boats?changed-after=' + localTimes['boats'], function (code, data) {
|
|
||||||
if (code == 200) {
|
|
||||||
var os = db.transaction('boats', 'readwrite').objectStore('boats');
|
|
||||||
data.data.forEach(function (entry) {
|
|
||||||
os.put(entry);
|
|
||||||
});
|
|
||||||
os.openCursor().onsuccess = function (event) {
|
|
||||||
var cursor = event.target.result;
|
|
||||||
if (cursor) {
|
|
||||||
if (!data.keys.includes(parseInt(cursor.key))) {
|
|
||||||
os.delete(cursor.key);
|
|
||||||
}
|
|
||||||
cursor.continue();
|
|
||||||
} else {
|
|
||||||
var osUpdateTimes = db.transaction('update_times', 'readwrite').objectStore('update_times');
|
|
||||||
osUpdateTimes.put({ table: 'boats', time: serverTimes['boats'] });
|
|
||||||
syncInProgress --;
|
|
||||||
log('boats synced, remaining:', syncInProgress);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
} else {
|
|
||||||
log("boats: Something went wrong (HTTP " + code + ")");
|
|
||||||
syncOkay = false;
|
|
||||||
syncInProgress --;
|
|
||||||
log('boats failed, remaining:', syncInProgress);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
syncInProgress --;
|
|
||||||
}
|
|
||||||
|
|
||||||
// SAILORS
|
|
||||||
if (localTimes['sailors'] < serverTimes['sailors']) {
|
|
||||||
getJSON(QUERY_URL + 'get_sailors?changed-after=' + localTimes['sailors'], function (code, data) {
|
|
||||||
if (code == 200) {
|
|
||||||
var os = db.transaction('sailors', 'readwrite').objectStore('sailors');
|
|
||||||
data.data.forEach(function (entry) {
|
|
||||||
os.put(entry);
|
|
||||||
});
|
|
||||||
os.openCursor().onsuccess = function (event) {
|
|
||||||
var cursor = event.target.result;
|
|
||||||
if (cursor) {
|
|
||||||
if (!data.keys.includes(parseInt(cursor.key))) {
|
|
||||||
os.delete(cursor.key);
|
|
||||||
}
|
|
||||||
cursor.continue();
|
|
||||||
} else {
|
|
||||||
var osUpdateTimes = db.transaction('update_times', 'readwrite').objectStore('update_times');
|
|
||||||
osUpdateTimes.put({ table: 'sailors', time: serverTimes['sailors'] });
|
|
||||||
syncInProgress --;
|
|
||||||
log('sailors synced, remaining:', syncInProgress);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
} else {
|
|
||||||
log("sailors: Something went wrong (HTTP " + code + ")");
|
|
||||||
syncOkay = false;
|
|
||||||
syncInProgress --;
|
|
||||||
log('sailors failed, remaining:', syncInProgress);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
syncInProgress --;
|
|
||||||
}
|
|
||||||
|
|
||||||
// REGATTAS
|
|
||||||
if (localTimes['regattas'] < serverTimes['regattas']) {
|
|
||||||
getJSON(QUERY_URL + 'get_regattas?changed-after=' + localTimes['regattas'], function (code, data) {
|
|
||||||
if (code == 200) {
|
|
||||||
var os = db.transaction('regattas', 'readwrite').objectStore('regattas');
|
|
||||||
data.data.forEach(function (entry) {
|
|
||||||
os.put(entry);
|
|
||||||
});
|
|
||||||
os.openCursor().onsuccess = async function (event) {
|
|
||||||
var cursor = event.target.result;
|
|
||||||
if (cursor) {
|
|
||||||
if (!data.keys.includes(parseInt(cursor.key))) {
|
|
||||||
os.delete(cursor.key);
|
|
||||||
}
|
|
||||||
cursor.continue();
|
|
||||||
} else {
|
|
||||||
// update years
|
|
||||||
var regattas = await dbGetData('regattas');
|
|
||||||
var years = {};
|
|
||||||
for (id in regattas) {
|
|
||||||
var entry = regattas[id];
|
|
||||||
var date = parseDate(entry['date']);
|
|
||||||
var y = date.getFullYear();
|
|
||||||
years[y] = y;
|
|
||||||
}
|
|
||||||
var osYears = db.transaction('years', 'readwrite').objectStore('years');
|
|
||||||
osYears.clear().onsuccess = function (event) {
|
|
||||||
for (var y in years) {
|
|
||||||
osYears.put({ year: y });
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
var osUpdateTimes = db.transaction('update_times', 'readwrite').objectStore('update_times');
|
|
||||||
osUpdateTimes.put({ table: 'regattas', time: serverTimes['regattas'] });
|
|
||||||
syncInProgress --;
|
|
||||||
log('regattas synced, remaining:', syncInProgress);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
} else {
|
|
||||||
log("regattas: Something went wrong (HTTP " + code + ")");
|
|
||||||
syncOkay = false;
|
|
||||||
syncInProgress --;
|
|
||||||
log('regattas failed, remaining:', syncInProgress);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
syncInProgress --;
|
|
||||||
}
|
|
||||||
|
|
||||||
// RESULTS
|
|
||||||
if (localTimes['results'] < serverTimes['results']) {
|
|
||||||
getJSON(QUERY_URL + 'get_results?changed-after=' + localTimes['results'], function (code, data) {
|
|
||||||
if (code == 200) {
|
|
||||||
var os = db.transaction('results', 'readwrite').objectStore('results');
|
|
||||||
data.data.forEach(function (entry) {
|
|
||||||
os.put(entry);
|
|
||||||
});
|
|
||||||
os.openCursor().onsuccess = function (event) {
|
|
||||||
var cursor = event.target.result;
|
|
||||||
if (cursor) {
|
|
||||||
if (!data.keys.includes(parseInt(cursor.key))) {
|
|
||||||
os.delete(cursor.key);
|
|
||||||
}
|
|
||||||
cursor.continue();
|
|
||||||
} else {
|
|
||||||
var osUpdateTimes = db.transaction('update_times', 'readwrite').objectStore('update_times');
|
|
||||||
osUpdateTimes.put({ table: 'results', time: serverTimes['results'] });
|
|
||||||
syncInProgress --;
|
|
||||||
log('results synced, remaining:', syncInProgress);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
} else {
|
|
||||||
log("results: Something went wrong (HTTP " + code + ")");
|
|
||||||
syncOkay = false;
|
|
||||||
syncInProgress --;
|
|
||||||
log('results failed, remaining:', syncInProgress);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
syncInProgress --;
|
|
||||||
}
|
|
||||||
|
|
||||||
// PLANNINGS
|
|
||||||
if (localTimes['plannings'] < serverTimes['plannings']) {
|
|
||||||
getJSON(QUERY_URL + 'get_plannings?changed-after=' + localTimes['plannings'], function (code, data) {
|
|
||||||
if (code == 200) {
|
|
||||||
var os = db.transaction('plannings', 'readwrite').objectStore('plannings');
|
|
||||||
data.data.forEach(function (entry) {
|
|
||||||
os.put(entry);
|
|
||||||
});
|
|
||||||
os.openCursor().onsuccess = function (event) {
|
|
||||||
var cursor = event.target.result;
|
|
||||||
if (cursor) {
|
|
||||||
if (!data.keys.includes(parseInt(cursor.key))) {
|
|
||||||
os.delete(cursor.key);
|
|
||||||
}
|
|
||||||
cursor.continue();
|
|
||||||
} else {
|
|
||||||
var osUpdateTimes = db.transaction('update_times', 'readwrite').objectStore('update_times');
|
|
||||||
osUpdateTimes.put({ table: 'plannings', time: serverTimes['plannings'] });
|
|
||||||
syncInProgress --;
|
|
||||||
log('plannings synced, remaining:', syncInProgress);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
} else {
|
|
||||||
log("plannings: Something went wrong (HTTP " + code + ")");
|
|
||||||
syncOkay = false;
|
|
||||||
syncInProgress --;
|
|
||||||
log('plannings failed, remaining:', syncInProgress);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
syncInProgress --;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (isLoggedIn()) {
|
|
||||||
// TRIM_BOATS
|
|
||||||
if (localTimes['trim_boats'] < serverTimes['trim_boats']) {
|
|
||||||
getJSON(QUERY_URL + 'get_trim_boats?changed-after=' + localTimes['trim_boats'], function (code, data) {
|
|
||||||
if (code == 200) {
|
if (code == 200) {
|
||||||
var os = db.transaction('trim_boats', 'readwrite').objectStore('trim_boats');
|
var os = db.transaction('clubs', 'readwrite').objectStore('clubs');
|
||||||
data.data.forEach(function (entry) {
|
data.data.forEach(function (entry) {
|
||||||
os.put(entry);
|
os.put(entry);
|
||||||
});
|
});
|
||||||
@@ -751,27 +538,27 @@ function sync() {
|
|||||||
cursor.continue();
|
cursor.continue();
|
||||||
} else {
|
} else {
|
||||||
var osUpdateTimes = db.transaction('update_times', 'readwrite').objectStore('update_times');
|
var osUpdateTimes = db.transaction('update_times', 'readwrite').objectStore('update_times');
|
||||||
osUpdateTimes.put({ table: 'trim_boats', time: serverTimes['trim_boats'] });
|
osUpdateTimes.put({ table: 'clubs', time: serverTimes['clubs'] });
|
||||||
syncInProgress --;
|
syncInProgress --;
|
||||||
log('trim_boats synced, remaining:', syncInProgress);
|
log('clubs synced, remaining:', syncInProgress);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
} else {
|
} else {
|
||||||
log("trim_boats: Something went wrong (HTTP " + code + ")");
|
log("clubs: Something went wrong (HTTP " + code + ")");
|
||||||
syncOkay = false;
|
syncOkay = false;
|
||||||
syncInProgress --;
|
syncInProgress --;
|
||||||
log('trim_boats failed, remaining:', syncInProgress);
|
log('clubs failed, remaining:', syncInProgress);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
syncInProgress --;
|
syncInProgress --;
|
||||||
}
|
}
|
||||||
|
|
||||||
// TRIM_USERS
|
// BOATS
|
||||||
if (localTimes['trim_users'] < serverTimes['trim_users']) {
|
if (localTimes['boats'] < serverTimes['boats']) {
|
||||||
getJSON(QUERY_URL + 'get_trim_users?changed-after=' + localTimes['trim_users'], function (code, data) {
|
getJSON(QUERY_URL + 'get_boats?changed-after=' + localTimes['boats'], function (code, data) {
|
||||||
if (code == 200) {
|
if (code == 200) {
|
||||||
var os = db.transaction('trim_users', 'readwrite').objectStore('trim_users');
|
var os = db.transaction('boats', 'readwrite').objectStore('boats');
|
||||||
data.data.forEach(function (entry) {
|
data.data.forEach(function (entry) {
|
||||||
os.put(entry);
|
os.put(entry);
|
||||||
});
|
});
|
||||||
@@ -784,27 +571,27 @@ function sync() {
|
|||||||
cursor.continue();
|
cursor.continue();
|
||||||
} else {
|
} else {
|
||||||
var osUpdateTimes = db.transaction('update_times', 'readwrite').objectStore('update_times');
|
var osUpdateTimes = db.transaction('update_times', 'readwrite').objectStore('update_times');
|
||||||
osUpdateTimes.put({ table: 'trim_users', time: serverTimes['trim_users'] });
|
osUpdateTimes.put({ table: 'boats', time: serverTimes['boats'] });
|
||||||
syncInProgress --;
|
syncInProgress --;
|
||||||
log('trim_users synced, remaining:', syncInProgress);
|
log('boats synced, remaining:', syncInProgress);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
} else {
|
} else {
|
||||||
log("trim_users: Something went wrong (HTTP " + code + ")");
|
log("boats: Something went wrong (HTTP " + code + ")");
|
||||||
syncOkay = false;
|
syncOkay = false;
|
||||||
syncInProgress --;
|
syncInProgress --;
|
||||||
log('trim_users failed, remaining:', syncInProgress);
|
log('boats failed, remaining:', syncInProgress);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
syncInProgress --;
|
syncInProgress --;
|
||||||
}
|
}
|
||||||
|
|
||||||
// TRIM_TRIMS
|
// SAILORS
|
||||||
if (localTimes['trim_trims'] < serverTimes['trim_trims']) {
|
if (localTimes['sailors'] < serverTimes['sailors']) {
|
||||||
getJSON(QUERY_URL + 'get_trim_trims?changed-after=' + localTimes['trim_trims'], function (code, data) {
|
getJSON(QUERY_URL + 'get_sailors?changed-after=' + localTimes['sailors'], function (code, data) {
|
||||||
if (code == 200) {
|
if (code == 200) {
|
||||||
var os = db.transaction('trim_trims', 'readwrite').objectStore('trim_trims');
|
var os = db.transaction('sailors', 'readwrite').objectStore('sailors');
|
||||||
data.data.forEach(function (entry) {
|
data.data.forEach(function (entry) {
|
||||||
os.put(entry);
|
os.put(entry);
|
||||||
});
|
});
|
||||||
@@ -817,16 +604,301 @@ function sync() {
|
|||||||
cursor.continue();
|
cursor.continue();
|
||||||
} else {
|
} else {
|
||||||
var osUpdateTimes = db.transaction('update_times', 'readwrite').objectStore('update_times');
|
var osUpdateTimes = db.transaction('update_times', 'readwrite').objectStore('update_times');
|
||||||
osUpdateTimes.put({ table: 'trim_trims', time: serverTimes['trim_trims'] });
|
osUpdateTimes.put({ table: 'sailors', time: serverTimes['sailors'] });
|
||||||
syncInProgress --;
|
syncInProgress --;
|
||||||
log('trim_trims synced, remaining:', syncInProgress);
|
log('sailors synced, remaining:', syncInProgress);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
} else {
|
} else {
|
||||||
log("trim_trims: Something went wrong (HTTP " + code + ")");
|
log("sailors: Something went wrong (HTTP " + code + ")");
|
||||||
syncOkay = false;
|
syncOkay = false;
|
||||||
syncInProgress --;
|
syncInProgress --;
|
||||||
log('trim_trims failed, remaining:', syncInProgress);
|
log('sailors failed, remaining:', syncInProgress);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
syncInProgress --;
|
||||||
|
}
|
||||||
|
|
||||||
|
// REGATTAS
|
||||||
|
if (localTimes['regattas'] < serverTimes['regattas']) {
|
||||||
|
getJSON(QUERY_URL + 'get_regattas?changed-after=' + localTimes['regattas'], function (code, data) {
|
||||||
|
if (code == 200) {
|
||||||
|
var os = db.transaction('regattas', 'readwrite').objectStore('regattas');
|
||||||
|
data.data.forEach(function (entry) {
|
||||||
|
os.put(entry);
|
||||||
|
});
|
||||||
|
os.openCursor().onsuccess = async function (event) {
|
||||||
|
var cursor = event.target.result;
|
||||||
|
if (cursor) {
|
||||||
|
if (!data.keys.includes(parseInt(cursor.key))) {
|
||||||
|
os.delete(cursor.key);
|
||||||
|
}
|
||||||
|
cursor.continue();
|
||||||
|
} else {
|
||||||
|
// update years
|
||||||
|
var regattas = await dbGetData('regattas');
|
||||||
|
var years = {};
|
||||||
|
for (id in regattas) {
|
||||||
|
var entry = regattas[id];
|
||||||
|
var date = parseDate(entry['date']);
|
||||||
|
var y = date.getFullYear();
|
||||||
|
years[y] = y;
|
||||||
|
}
|
||||||
|
var osYears = db.transaction('years', 'readwrite').objectStore('years');
|
||||||
|
osYears.clear().onsuccess = function (event) {
|
||||||
|
for (var y in years) {
|
||||||
|
osYears.put({ year: y });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var osUpdateTimes = db.transaction('update_times', 'readwrite').objectStore('update_times');
|
||||||
|
osUpdateTimes.put({ table: 'regattas', time: serverTimes['regattas'] });
|
||||||
|
syncInProgress --;
|
||||||
|
log('regattas synced, remaining:', syncInProgress);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
} else {
|
||||||
|
log("regattas: Something went wrong (HTTP " + code + ")");
|
||||||
|
syncOkay = false;
|
||||||
|
syncInProgress --;
|
||||||
|
log('regattas failed, remaining:', syncInProgress);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
syncInProgress --;
|
||||||
|
}
|
||||||
|
|
||||||
|
// RESULTS
|
||||||
|
if (localTimes['results'] < serverTimes['results']) {
|
||||||
|
getJSON(QUERY_URL + 'get_results?changed-after=' + localTimes['results'], function (code, data) {
|
||||||
|
if (code == 200) {
|
||||||
|
var os = db.transaction('results', 'readwrite').objectStore('results');
|
||||||
|
data.data.forEach(function (entry) {
|
||||||
|
os.put(entry);
|
||||||
|
});
|
||||||
|
os.openCursor().onsuccess = function (event) {
|
||||||
|
var cursor = event.target.result;
|
||||||
|
if (cursor) {
|
||||||
|
if (!data.keys.includes(parseInt(cursor.key))) {
|
||||||
|
os.delete(cursor.key);
|
||||||
|
}
|
||||||
|
cursor.continue();
|
||||||
|
} else {
|
||||||
|
var osUpdateTimes = db.transaction('update_times', 'readwrite').objectStore('update_times');
|
||||||
|
osUpdateTimes.put({ table: 'results', time: serverTimes['results'] });
|
||||||
|
syncInProgress --;
|
||||||
|
log('results synced, remaining:', syncInProgress);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
} else {
|
||||||
|
log("results: Something went wrong (HTTP " + code + ")");
|
||||||
|
syncOkay = false;
|
||||||
|
syncInProgress --;
|
||||||
|
log('results failed, remaining:', syncInProgress);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
syncInProgress --;
|
||||||
|
}
|
||||||
|
|
||||||
|
// PLANNINGS
|
||||||
|
if (localTimes['plannings'] < serverTimes['plannings']) {
|
||||||
|
getJSON(QUERY_URL + 'get_plannings?changed-after=' + localTimes['plannings'], function (code, data) {
|
||||||
|
if (code == 200) {
|
||||||
|
var os = db.transaction('plannings', 'readwrite').objectStore('plannings');
|
||||||
|
data.data.forEach(function (entry) {
|
||||||
|
os.put(entry);
|
||||||
|
});
|
||||||
|
os.openCursor().onsuccess = function (event) {
|
||||||
|
var cursor = event.target.result;
|
||||||
|
if (cursor) {
|
||||||
|
if (!data.keys.includes(parseInt(cursor.key))) {
|
||||||
|
os.delete(cursor.key);
|
||||||
|
}
|
||||||
|
cursor.continue();
|
||||||
|
} else {
|
||||||
|
var osUpdateTimes = db.transaction('update_times', 'readwrite').objectStore('update_times');
|
||||||
|
osUpdateTimes.put({ table: 'plannings', time: serverTimes['plannings'] });
|
||||||
|
syncInProgress --;
|
||||||
|
log('plannings synced, remaining:', syncInProgress);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
} else {
|
||||||
|
log("plannings: Something went wrong (HTTP " + code + ")");
|
||||||
|
syncOkay = false;
|
||||||
|
syncInProgress --;
|
||||||
|
log('plannings failed, remaining:', syncInProgress);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
syncInProgress --;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isLoggedIn()) {
|
||||||
|
// TRIM_BOATS
|
||||||
|
if (localTimes['trim_boats'] < serverTimes['trim_boats']) {
|
||||||
|
getJSON(QUERY_URL + 'get_trim_boats?changed-after=' + localTimes['trim_boats'], function (code, data) {
|
||||||
|
if (code == 200) {
|
||||||
|
var os = db.transaction('trim_boats', 'readwrite').objectStore('trim_boats');
|
||||||
|
data.data.forEach(function (entry) {
|
||||||
|
os.put(entry);
|
||||||
|
});
|
||||||
|
os.openCursor().onsuccess = function (event) {
|
||||||
|
var cursor = event.target.result;
|
||||||
|
if (cursor) {
|
||||||
|
if (!data.keys.includes(parseInt(cursor.key))) {
|
||||||
|
os.delete(cursor.key);
|
||||||
|
}
|
||||||
|
cursor.continue();
|
||||||
|
} else {
|
||||||
|
var osUpdateTimes = db.transaction('update_times', 'readwrite').objectStore('update_times');
|
||||||
|
osUpdateTimes.put({ table: 'trim_boats', time: serverTimes['trim_boats'] });
|
||||||
|
syncInProgress --;
|
||||||
|
log('trim_boats synced, remaining:', syncInProgress);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
} else {
|
||||||
|
log("trim_boats: Something went wrong (HTTP " + code + ")");
|
||||||
|
syncOkay = false;
|
||||||
|
syncInProgress --;
|
||||||
|
log('trim_boats failed, remaining:', syncInProgress);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
syncInProgress --;
|
||||||
|
}
|
||||||
|
|
||||||
|
// TRIM_USERS
|
||||||
|
if (localTimes['trim_users'] < serverTimes['trim_users']) {
|
||||||
|
getJSON(QUERY_URL + 'get_trim_users?changed-after=' + localTimes['trim_users'], function (code, data) {
|
||||||
|
if (code == 200) {
|
||||||
|
var os = db.transaction('trim_users', 'readwrite').objectStore('trim_users');
|
||||||
|
data.data.forEach(function (entry) {
|
||||||
|
os.put(entry);
|
||||||
|
});
|
||||||
|
os.openCursor().onsuccess = function (event) {
|
||||||
|
var cursor = event.target.result;
|
||||||
|
if (cursor) {
|
||||||
|
if (!data.keys.includes(parseInt(cursor.key))) {
|
||||||
|
os.delete(cursor.key);
|
||||||
|
}
|
||||||
|
cursor.continue();
|
||||||
|
} else {
|
||||||
|
var osUpdateTimes = db.transaction('update_times', 'readwrite').objectStore('update_times');
|
||||||
|
osUpdateTimes.put({ table: 'trim_users', time: serverTimes['trim_users'] });
|
||||||
|
syncInProgress --;
|
||||||
|
log('trim_users synced, remaining:', syncInProgress);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
} else {
|
||||||
|
log("trim_users: Something went wrong (HTTP " + code + ")");
|
||||||
|
syncOkay = false;
|
||||||
|
syncInProgress --;
|
||||||
|
log('trim_users failed, remaining:', syncInProgress);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
syncInProgress --;
|
||||||
|
}
|
||||||
|
|
||||||
|
// TRIM_TRIMS
|
||||||
|
if (localTimes['trim_trims'] < serverTimes['trim_trims']) {
|
||||||
|
getJSON(QUERY_URL + 'get_trim_trims?changed-after=' + localTimes['trim_trims'], function (code, data) {
|
||||||
|
if (code == 200) {
|
||||||
|
var os = db.transaction('trim_trims', 'readwrite').objectStore('trim_trims');
|
||||||
|
data.data.forEach(function (entry) {
|
||||||
|
os.put(entry);
|
||||||
|
});
|
||||||
|
os.openCursor().onsuccess = function (event) {
|
||||||
|
var cursor = event.target.result;
|
||||||
|
if (cursor) {
|
||||||
|
if (!data.keys.includes(parseInt(cursor.key))) {
|
||||||
|
os.delete(cursor.key);
|
||||||
|
}
|
||||||
|
cursor.continue();
|
||||||
|
} else {
|
||||||
|
var osUpdateTimes = db.transaction('update_times', 'readwrite').objectStore('update_times');
|
||||||
|
osUpdateTimes.put({ table: 'trim_trims', time: serverTimes['trim_trims'] });
|
||||||
|
syncInProgress --;
|
||||||
|
log('trim_trims synced, remaining:', syncInProgress);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
} else {
|
||||||
|
log("trim_trims: Something went wrong (HTTP " + code + ")");
|
||||||
|
syncOkay = false;
|
||||||
|
syncInProgress --;
|
||||||
|
log('trim_trims failed, remaining:', syncInProgress);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
syncInProgress --;
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
syncInProgress -= 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
// NEWS
|
||||||
|
if (localTimes['news'] < serverTimes['news']) {
|
||||||
|
getJSON(QUERY_URL + 'get_news?changed-after=' + localTimes['news'], function (code, data) {
|
||||||
|
if (code == 200) {
|
||||||
|
var os = db.transaction('news', 'readwrite').objectStore('news');
|
||||||
|
data.data.forEach(function (entry) {
|
||||||
|
os.put(entry);
|
||||||
|
});
|
||||||
|
os.openCursor().onsuccess = function (event) {
|
||||||
|
var cursor = event.target.result;
|
||||||
|
if (cursor) {
|
||||||
|
if (!data.keys.includes(parseInt(cursor.key))) {
|
||||||
|
os.delete(cursor.key);
|
||||||
|
}
|
||||||
|
cursor.continue();
|
||||||
|
} else {
|
||||||
|
var osUpdateTimes = db.transaction('update_times', 'readwrite').objectStore('update_times');
|
||||||
|
osUpdateTimes.put({ table: 'news', time: serverTimes['news'] });
|
||||||
|
syncInProgress --;
|
||||||
|
log('news synced, remaining:', syncInProgress);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
} else {
|
||||||
|
log("news: Something went wrong (HTTP " + code + ")");
|
||||||
|
syncOkay = false;
|
||||||
|
syncInProgress --;
|
||||||
|
log('news failed, remaining:', syncInProgress);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
syncInProgress --;
|
||||||
|
}
|
||||||
|
|
||||||
|
// USERS
|
||||||
|
if (localTimes['users'] < serverTimes['users']) {
|
||||||
|
getJSON(QUERY_URL + 'get_users?changed-after=' + localTimes['users'], function (code, data) {
|
||||||
|
if (code == 200) {
|
||||||
|
var os = db.transaction('users', 'readwrite').objectStore('users');
|
||||||
|
data.data.forEach(function (entry) {
|
||||||
|
os.put(entry);
|
||||||
|
});
|
||||||
|
os.openCursor().onsuccess = function (event) {
|
||||||
|
var cursor = event.target.result;
|
||||||
|
if (cursor) {
|
||||||
|
if (!data.keys.includes(parseInt(cursor.key))) {
|
||||||
|
os.delete(cursor.key);
|
||||||
|
}
|
||||||
|
cursor.continue();
|
||||||
|
} else {
|
||||||
|
var osUpdateTimes = db.transaction('update_times', 'readwrite').objectStore('update_times');
|
||||||
|
osUpdateTimes.put({ table: 'users', time: serverTimes['users'] });
|
||||||
|
syncInProgress --;
|
||||||
|
log('users synced, remaining:', syncInProgress);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
} else {
|
||||||
|
log("users: Something went wrong (HTTP " + code + ")");
|
||||||
|
syncOkay = false;
|
||||||
|
syncInProgress --;
|
||||||
|
log('users failed, remaining:', syncInProgress);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
@@ -834,82 +906,13 @@ function sync() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
syncInProgress -= 3;
|
log("Something went wrong (HTTP " + code + ")");
|
||||||
|
syncOkay = false;
|
||||||
|
syncInProgress = 0;
|
||||||
}
|
}
|
||||||
|
});
|
||||||
// NEWS
|
};
|
||||||
if (localTimes['news'] < serverTimes['news']) {
|
});
|
||||||
getJSON(QUERY_URL + 'get_news?changed-after=' + localTimes['news'], function (code, data) {
|
|
||||||
if (code == 200) {
|
|
||||||
var os = db.transaction('news', 'readwrite').objectStore('news');
|
|
||||||
data.data.forEach(function (entry) {
|
|
||||||
os.put(entry);
|
|
||||||
});
|
|
||||||
os.openCursor().onsuccess = function (event) {
|
|
||||||
var cursor = event.target.result;
|
|
||||||
if (cursor) {
|
|
||||||
if (!data.keys.includes(parseInt(cursor.key))) {
|
|
||||||
os.delete(cursor.key);
|
|
||||||
}
|
|
||||||
cursor.continue();
|
|
||||||
} else {
|
|
||||||
var osUpdateTimes = db.transaction('update_times', 'readwrite').objectStore('update_times');
|
|
||||||
osUpdateTimes.put({ table: 'news', time: serverTimes['news'] });
|
|
||||||
syncInProgress --;
|
|
||||||
log('news synced, remaining:', syncInProgress);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
} else {
|
|
||||||
log("news: Something went wrong (HTTP " + code + ")");
|
|
||||||
syncOkay = false;
|
|
||||||
syncInProgress --;
|
|
||||||
log('news failed, remaining:', syncInProgress);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
syncInProgress --;
|
|
||||||
}
|
|
||||||
|
|
||||||
// USERS
|
|
||||||
if (localTimes['users'] < serverTimes['users']) {
|
|
||||||
getJSON(QUERY_URL + 'get_users?changed-after=' + localTimes['users'], function (code, data) {
|
|
||||||
if (code == 200) {
|
|
||||||
var os = db.transaction('users', 'readwrite').objectStore('users');
|
|
||||||
data.data.forEach(function (entry) {
|
|
||||||
os.put(entry);
|
|
||||||
});
|
|
||||||
os.openCursor().onsuccess = function (event) {
|
|
||||||
var cursor = event.target.result;
|
|
||||||
if (cursor) {
|
|
||||||
if (!data.keys.includes(parseInt(cursor.key))) {
|
|
||||||
os.delete(cursor.key);
|
|
||||||
}
|
|
||||||
cursor.continue();
|
|
||||||
} else {
|
|
||||||
var osUpdateTimes = db.transaction('update_times', 'readwrite').objectStore('update_times');
|
|
||||||
osUpdateTimes.put({ table: 'users', time: serverTimes['users'] });
|
|
||||||
syncInProgress --;
|
|
||||||
log('users synced, remaining:', syncInProgress);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
} else {
|
|
||||||
log("users: Something went wrong (HTTP " + code + ")");
|
|
||||||
syncOkay = false;
|
|
||||||
syncInProgress --;
|
|
||||||
log('users failed, remaining:', syncInProgress);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
syncInProgress --;
|
|
||||||
}
|
|
||||||
|
|
||||||
} else {
|
|
||||||
log("Something went wrong (HTTP " + code + ")");
|
|
||||||
syncOkay = false;
|
|
||||||
syncInProgress = 0;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function checkSync() {
|
function checkSync() {
|
||||||
|
|||||||
@@ -18,13 +18,13 @@ async function planningSwitchChanged() {
|
|||||||
},
|
},
|
||||||
error: function (xhr, status, error) {
|
error: function (xhr, status, error) {
|
||||||
if (xhr.status == 401) {
|
if (xhr.status == 401) {
|
||||||
console.log('authentification failed');
|
log('authentification failed');
|
||||||
toastError('Authentifizierung fehlgeschlagen. Versuche es erneut.');
|
toastError('Authentifizierung fehlgeschlagen. Versuche es erneut.');
|
||||||
} else if (xhr.status == 0) {
|
} else if (xhr.status == 0) {
|
||||||
toastError('Du bist momentan offline.<br>Stelle eine Internetverbindung her, um den Status zu ändern');
|
toastError('Du bist momentan offline.<br>Stelle eine Internetverbindung her, um den Status zu ändern');
|
||||||
} else {
|
} else {
|
||||||
console.log('Login: unbekannter Fehler', status, error);
|
log('Login: unbekannter Fehler', status, error);
|
||||||
console.log(xhr);
|
log(xhr);
|
||||||
toastError('Ein unbekannter Fehler ist aufgetreten. Bitte versuche es noch einmal', 5000);
|
toastError('Ein unbekannter Fehler ist aufgetreten. Bitte versuche es noch einmal', 5000);
|
||||||
}
|
}
|
||||||
$('#menu-status').hideMenu();
|
$('#menu-status').hideMenu();
|
||||||
|
|||||||
@@ -17,13 +17,13 @@ async function planningSwitchChanged() {
|
|||||||
},
|
},
|
||||||
error: function (xhr, status, error) {
|
error: function (xhr, status, error) {
|
||||||
if (xhr.status == 401) {
|
if (xhr.status == 401) {
|
||||||
console.log('authentification failed');
|
log('authentification failed');
|
||||||
toastError('Authentifizierung fehlgeschlagen. Versuche es erneut.');
|
toastError('Authentifizierung fehlgeschlagen. Versuche es erneut.');
|
||||||
} else if (xhr.status == 0) {
|
} else if (xhr.status == 0) {
|
||||||
toastError('Du bist momentan offline.<br>Stelle eine Internetverbindung her, um die Änderungen zu speichern');
|
toastError('Du bist momentan offline.<br>Stelle eine Internetverbindung her, um die Änderungen zu speichern');
|
||||||
} else {
|
} else {
|
||||||
console.log('planning_add: unbekannter Fehler', status, error);
|
log('planning_add: unbekannter Fehler', status, error);
|
||||||
console.log(xhr);
|
log(xhr);
|
||||||
toastError('Ein unbekannter Fehler ist aufgetreten. Bitte versuche es noch einmal', 5000);
|
toastError('Ein unbekannter Fehler ist aufgetreten. Bitte versuche es noch einmal', 5000);
|
||||||
}
|
}
|
||||||
$('#menu-edit').hideMenu();
|
$('#menu-edit').hideMenu();
|
||||||
@@ -46,13 +46,13 @@ async function planningSwitchChanged() {
|
|||||||
},
|
},
|
||||||
error: function (xhr, status, error) {
|
error: function (xhr, status, error) {
|
||||||
if (xhr.status == 401) {
|
if (xhr.status == 401) {
|
||||||
console.log('authentification failed');
|
log('authentification failed');
|
||||||
toastError('Authentifizierung fehlgeschlagen. Versuche es erneut.');
|
toastError('Authentifizierung fehlgeschlagen. Versuche es erneut.');
|
||||||
} else if (xhr.status == 0) {
|
} else if (xhr.status == 0) {
|
||||||
toastError('Du bist momentan offline.<br>Stelle eine Internetverbindung her, um die Änderungen zu speichern');
|
toastError('Du bist momentan offline.<br>Stelle eine Internetverbindung her, um die Änderungen zu speichern');
|
||||||
} else {
|
} else {
|
||||||
console.log('planning_remove: unbekannter Fehler', status, error);
|
log('planning_remove: unbekannter Fehler', status, error);
|
||||||
console.log(xhr);
|
log(xhr);
|
||||||
toastError('Ein unbekannter Fehler ist aufgetreten. Bitte versuche es noch einmal', 5000);
|
toastError('Ein unbekannter Fehler ist aufgetreten. Bitte versuche es noch einmal', 5000);
|
||||||
}
|
}
|
||||||
$('#menu-edit').hideMenu();
|
$('#menu-edit').hideMenu();
|
||||||
@@ -90,13 +90,13 @@ async function sailorSelected(sid) {
|
|||||||
},
|
},
|
||||||
error: function (xhr, status, error) {
|
error: function (xhr, status, error) {
|
||||||
if (xhr.status == 401) {
|
if (xhr.status == 401) {
|
||||||
console.log('authentification failed');
|
log('authentification failed');
|
||||||
toastError('Authentifizierung fehlgeschlagen. Versuche es erneut.');
|
toastError('Authentifizierung fehlgeschlagen. Versuche es erneut.');
|
||||||
} else if (xhr.status == 0) {
|
} else if (xhr.status == 0) {
|
||||||
toastError('Du bist momentan offline.<br>Stelle eine Internetverbindung her, um die Änderungen zu speichern');
|
toastError('Du bist momentan offline.<br>Stelle eine Internetverbindung her, um die Änderungen zu speichern');
|
||||||
} else {
|
} else {
|
||||||
console.log(action + ': unbekannter Fehler', status, error);
|
log(action + ': unbekannter Fehler', status, error);
|
||||||
console.log(xhr);
|
log(xhr);
|
||||||
toastError('Ein unbekannter Fehler ist aufgetreten. Bitte versuche es noch einmal', 5000);
|
toastError('Ein unbekannter Fehler ist aufgetreten. Bitte versuche es noch einmal', 5000);
|
||||||
}
|
}
|
||||||
hideLoader();
|
hideLoader();
|
||||||
@@ -167,13 +167,13 @@ async function planningChangeCrew(sid = null) {
|
|||||||
},
|
},
|
||||||
error: function (xhr, status, error) {
|
error: function (xhr, status, error) {
|
||||||
if (xhr.status == 401) {
|
if (xhr.status == 401) {
|
||||||
console.log('authentification failed');
|
log('authentification failed');
|
||||||
toastError('Authentifizierung fehlgeschlagen. Versuche es erneut.');
|
toastError('Authentifizierung fehlgeschlagen. Versuche es erneut.');
|
||||||
} else if (xhr.status == 0) {
|
} else if (xhr.status == 0) {
|
||||||
toastError('Du bist momentan offline.<br>Stelle eine Internetverbindung her, um die Änderungen zu speichern');
|
toastError('Du bist momentan offline.<br>Stelle eine Internetverbindung her, um die Änderungen zu speichern');
|
||||||
} else {
|
} else {
|
||||||
console.log('planning_remove_crew: unbekannter Fehler', status, error);
|
log('planning_remove_crew: unbekannter Fehler', status, error);
|
||||||
console.log(xhr);
|
log(xhr);
|
||||||
toastError('Ein unbekannter Fehler ist aufgetreten. Bitte versuche es noch einmal', 5000);
|
toastError('Ein unbekannter Fehler ist aufgetreten. Bitte versuche es noch einmal', 5000);
|
||||||
}
|
}
|
||||||
$('#menu-edit').hideMenu();
|
$('#menu-edit').hideMenu();
|
||||||
|
|||||||
Reference in New Issue
Block a user