Fix login / logout
This commit is contained in:
@@ -389,7 +389,7 @@
|
|||||||
if ($response === false) done(DONE_DATABASE);
|
if ($response === false) done(DONE_DATABASE);
|
||||||
$keys = array_keys($response);
|
$keys = array_keys($response);
|
||||||
if (isset($_REQUEST['changed-after'])) {
|
if (isset($_REQUEST['changed-after'])) {
|
||||||
$response = db_get_data($mysqli, DB_TABLE_USERS, 'id,username,email,' . $followFields, '`changed` > "' . mysqli_real_escape_string($mysqli, date('Y-m-d H:i:s', $_REQUEST['changed-after'])) . '"' . ($whereString ? (' AND ' . $whereString) : ''));
|
$response = db_get_data($mysqli, DB_TABLE_USERS, 'id,username,email' . $followFields, '`changed` > "' . mysqli_real_escape_string($mysqli, date('Y-m-d H:i:s', $_REQUEST['changed-after'])) . '"' . ($whereString ? (' AND ' . $whereString) : ''));
|
||||||
if ($response === false) done(DONE_DATABASE);
|
if ($response === false) done(DONE_DATABASE);
|
||||||
}
|
}
|
||||||
$response = array_map(function ($entry) {
|
$response = array_map(function ($entry) {
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
const DB_VERSION = 3;
|
const DB_VERSION = 4;
|
||||||
|
|
||||||
const USER_ID = localStorage.getItem('auth_user');
|
const USER_ID = localStorage.getItem('auth_user');
|
||||||
const USER_NAME = localStorage.getItem('auth_username');
|
const USER_NAME = localStorage.getItem('auth_username');
|
||||||
@@ -283,6 +283,14 @@ async function updateSyncStatus() { // TODO
|
|||||||
|
|
||||||
async function runPageScript() {
|
async function runPageScript() {
|
||||||
if (canUseLocalDB) {
|
if (canUseLocalDB) {
|
||||||
|
var osUpdateTimes = db.transaction('update_times').objectStore('update_times');
|
||||||
|
osUpdateTimes.get('loggedin').onsuccess = function (event) {
|
||||||
|
var status = event.target.result.status;
|
||||||
|
if (status != isLoggedIn()) {
|
||||||
|
resetDb();
|
||||||
|
location.reload();
|
||||||
|
}
|
||||||
|
};
|
||||||
updateSyncStatus();
|
updateSyncStatus();
|
||||||
}
|
}
|
||||||
if (typeof updateSyncStatusTimer == 'undefined') { // TODO
|
if (typeof updateSyncStatusTimer == 'undefined') { // TODO
|
||||||
@@ -341,7 +349,7 @@ function sync() {
|
|||||||
|
|
||||||
// CLUBS
|
// CLUBS
|
||||||
if (localTimes['clubs'] < serverTimes['clubs']) {
|
if (localTimes['clubs'] < serverTimes['clubs']) {
|
||||||
getJSON(QUERY_URL + 'get_clubs?changer-after=' + localTimes['clubs'], function (code, data) {
|
getJSON(QUERY_URL + 'get_clubs?changed-after=' + localTimes['clubs'], function (code, data) {
|
||||||
if (code == 200) {
|
if (code == 200) {
|
||||||
var os = db.transaction('clubs', 'readwrite').objectStore('clubs');
|
var os = db.transaction('clubs', 'readwrite').objectStore('clubs');
|
||||||
console.log(data);
|
console.log(data);
|
||||||
@@ -373,7 +381,7 @@ function sync() {
|
|||||||
|
|
||||||
// BOATS
|
// BOATS
|
||||||
if (localTimes['boats'] < serverTimes['boats']) {
|
if (localTimes['boats'] < serverTimes['boats']) {
|
||||||
getJSON(QUERY_URL + 'get_boats?changer-after=' + localTimes['boats'], 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('boats', 'readwrite').objectStore('boats');
|
var os = db.transaction('boats', 'readwrite').objectStore('boats');
|
||||||
console.log(data);
|
console.log(data);
|
||||||
@@ -405,7 +413,7 @@ function sync() {
|
|||||||
|
|
||||||
// SAILORS
|
// SAILORS
|
||||||
if (localTimes['sailors'] < serverTimes['sailors']) {
|
if (localTimes['sailors'] < serverTimes['sailors']) {
|
||||||
getJSON(QUERY_URL + 'get_sailors?changer-after=' + localTimes['sailors'], 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('sailors', 'readwrite').objectStore('sailors');
|
var os = db.transaction('sailors', 'readwrite').objectStore('sailors');
|
||||||
console.log(data);
|
console.log(data);
|
||||||
@@ -437,7 +445,7 @@ function sync() {
|
|||||||
|
|
||||||
// REGATTAS
|
// REGATTAS
|
||||||
if (localTimes['regattas'] < serverTimes['regattas']) {
|
if (localTimes['regattas'] < serverTimes['regattas']) {
|
||||||
getJSON(QUERY_URL + 'get_regattas?changer-after=' + localTimes['regattas'], function (code, data) {
|
getJSON(QUERY_URL + 'get_regattas?changed-after=' + localTimes['regattas'], function (code, data) {
|
||||||
if (code == 200) {
|
if (code == 200) {
|
||||||
var os = db.transaction('regattas', 'readwrite').objectStore('regattas');
|
var os = db.transaction('regattas', 'readwrite').objectStore('regattas');
|
||||||
console.log(data);
|
console.log(data);
|
||||||
@@ -485,7 +493,7 @@ function sync() {
|
|||||||
|
|
||||||
// RESULTS
|
// RESULTS
|
||||||
if (localTimes['results'] < serverTimes['results']) {
|
if (localTimes['results'] < serverTimes['results']) {
|
||||||
getJSON(QUERY_URL + 'get_results?changer-after=' + localTimes['results'], function (code, data) {
|
getJSON(QUERY_URL + 'get_results?changed-after=' + localTimes['results'], function (code, data) {
|
||||||
if (code == 200) {
|
if (code == 200) {
|
||||||
var os = db.transaction('results', 'readwrite').objectStore('results');
|
var os = db.transaction('results', 'readwrite').objectStore('results');
|
||||||
console.log(data);
|
console.log(data);
|
||||||
@@ -517,7 +525,7 @@ function sync() {
|
|||||||
|
|
||||||
// PLANNINGS
|
// PLANNINGS
|
||||||
if (localTimes['plannings'] < serverTimes['plannings']) {
|
if (localTimes['plannings'] < serverTimes['plannings']) {
|
||||||
getJSON(QUERY_URL + 'get_plannings?changer-after=' + localTimes['plannings'], function (code, data) {
|
getJSON(QUERY_URL + 'get_plannings?changed-after=' + localTimes['plannings'], function (code, data) {
|
||||||
if (code == 200) {
|
if (code == 200) {
|
||||||
var os = db.transaction('plannings', 'readwrite').objectStore('plannings');
|
var os = db.transaction('plannings', 'readwrite').objectStore('plannings');
|
||||||
console.log(data);
|
console.log(data);
|
||||||
@@ -550,7 +558,7 @@ function sync() {
|
|||||||
if (isLoggedIn()) {
|
if (isLoggedIn()) {
|
||||||
// TRIM_BOATS
|
// TRIM_BOATS
|
||||||
if (localTimes['trim_boats'] < serverTimes['trim_boats']) {
|
if (localTimes['trim_boats'] < serverTimes['trim_boats']) {
|
||||||
getJSON(QUERY_URL + 'get_trim_boats?changer-after=' + localTimes['trim_boats'], function (code, data) {
|
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('trim_boats', 'readwrite').objectStore('trim_boats');
|
||||||
console.log(data);
|
console.log(data);
|
||||||
@@ -582,7 +590,7 @@ function sync() {
|
|||||||
|
|
||||||
// TRIM_USERS
|
// TRIM_USERS
|
||||||
if (localTimes['trim_users'] < serverTimes['trim_users']) {
|
if (localTimes['trim_users'] < serverTimes['trim_users']) {
|
||||||
getJSON(QUERY_URL + 'get_trim_users?changer-after=' + localTimes['trim_users'], function (code, data) {
|
getJSON(QUERY_URL + 'get_trim_users?changed-after=' + localTimes['trim_users'], function (code, data) {
|
||||||
if (code == 200) {
|
if (code == 200) {
|
||||||
var os = db.transaction('trim_users', 'readwrite').objectStore('trim_users');
|
var os = db.transaction('trim_users', 'readwrite').objectStore('trim_users');
|
||||||
console.log(data);
|
console.log(data);
|
||||||
@@ -614,7 +622,7 @@ function sync() {
|
|||||||
|
|
||||||
// TRIM_TRIMS
|
// TRIM_TRIMS
|
||||||
if (localTimes['trim_trims'] < serverTimes['trim_trims']) {
|
if (localTimes['trim_trims'] < serverTimes['trim_trims']) {
|
||||||
getJSON(QUERY_URL + 'get_trim_trims?changer-after=' + localTimes['trim_trims'], function (code, data) {
|
getJSON(QUERY_URL + 'get_trim_trims?changed-after=' + localTimes['trim_trims'], function (code, data) {
|
||||||
if (code == 200) {
|
if (code == 200) {
|
||||||
var os = db.transaction('trim_trims', 'readwrite').objectStore('trim_trims');
|
var os = db.transaction('trim_trims', 'readwrite').objectStore('trim_trims');
|
||||||
console.log(data);
|
console.log(data);
|
||||||
@@ -650,7 +658,7 @@ function sync() {
|
|||||||
|
|
||||||
// USERS
|
// USERS
|
||||||
if (localTimes['users'] < serverTimes['users']) {
|
if (localTimes['users'] < serverTimes['users']) {
|
||||||
getJSON(QUERY_URL + 'get_users?changer-after=' + localTimes['users'], function (code, data) {
|
getJSON(QUERY_URL + 'get_users?changed-after=' + localTimes['users'], function (code, data) {
|
||||||
if (code == 200) {
|
if (code == 200) {
|
||||||
var os = db.transaction('users', 'readwrite').objectStore('users');
|
var os = db.transaction('users', 'readwrite').objectStore('users');
|
||||||
console.log(data);
|
console.log(data);
|
||||||
@@ -732,6 +740,8 @@ function initDatabase() {
|
|||||||
var lastSync = event.target.result.time;
|
var lastSync = event.target.result.time;
|
||||||
if (lastSync > 0) {
|
if (lastSync > 0) {
|
||||||
runPageScript();
|
runPageScript();
|
||||||
|
} else {
|
||||||
|
db.transaction('update_times', 'readwrite').objectStore('update_times').put({ table: 'loggedin', status: isLoggedIn() });
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -795,6 +805,12 @@ function initDatabase() {
|
|||||||
osUpdateTimes.put({ table: 'regattas', time: 0 });
|
osUpdateTimes.put({ table: 'regattas', time: 0 });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ((oldVersion < 4) && (newVersion >= 4)) {
|
||||||
|
console.log('to version 4');
|
||||||
|
var osUpdateTimes = upgradeTransaction.objectStore('update_times');
|
||||||
|
osUpdateTimes.add({ table: 'loggedin', status: isLoggedIn() });
|
||||||
|
}
|
||||||
|
|
||||||
var osUpdateTimes = upgradeTransaction.objectStore('update_times');
|
var osUpdateTimes = upgradeTransaction.objectStore('update_times');
|
||||||
osUpdateTimes.put({ table: 'last_sync', time: 0 });
|
osUpdateTimes.put({ table: 'last_sync', time: 0 });
|
||||||
}
|
}
|
||||||
@@ -802,3 +818,29 @@ function initDatabase() {
|
|||||||
runPageScript();
|
runPageScript();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function resetDb(silent = true) {
|
||||||
|
$('#menu-developer').hideMenu();
|
||||||
|
if (canUseLocalDB) {
|
||||||
|
showLoader();
|
||||||
|
var osUpdateTimes = db.transaction('update_times', 'readwrite').objectStore('update_times');
|
||||||
|
osUpdateTimes.put({ table: 'last_sync', time: 0 });
|
||||||
|
osUpdateTimes.put({ table: 'clubs', time: 0 });
|
||||||
|
osUpdateTimes.put({ table: 'boats', time: 0 });
|
||||||
|
osUpdateTimes.put({ table: 'sailors', time: 0 });
|
||||||
|
osUpdateTimes.put({ table: 'regattas', time: 0 });
|
||||||
|
osUpdateTimes.put({ table: 'results', time: 0 });
|
||||||
|
osUpdateTimes.put({ table: 'plannings', time: 0 });
|
||||||
|
osUpdateTimes.put({ table: 'trim_boats', time: 0 });
|
||||||
|
osUpdateTimes.put({ table: 'trim_users', time: 0 });
|
||||||
|
osUpdateTimes.put({ table: 'trim_trims', time: 0 });
|
||||||
|
osUpdateTimes.put({ table: 'users', time: 0 });
|
||||||
|
console.log('DB update times reset');
|
||||||
|
if (!silent)
|
||||||
|
toastInfo('The database was reset. Please reload or close this tab.<br>At the next visit, a full sync will be performed.');
|
||||||
|
hideLoader();
|
||||||
|
} else {
|
||||||
|
if (!silent)
|
||||||
|
toastWarn('Your device does not support storing data locally. All data is fetched directly from our server.<br>As a result, you can not reset your database.');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -200,26 +200,6 @@ var logout = function() {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function resetDb() {
|
|
||||||
$('#menu-developer').hideMenu();
|
|
||||||
if (canUseLocalDB) {
|
|
||||||
showLoader();
|
|
||||||
var request = window.indexedDB.deleteDatabase('regatten_app_db_' + BOATCLASS);
|
|
||||||
request.onerror = function (event) {
|
|
||||||
console.log("Cannot open DB: " + event.target.errorCode);
|
|
||||||
toastError('There was an error deleting your database.<br>Please report this to <a href="mailto:dev@regatten.net">dev@regatten.net</a>');
|
|
||||||
hideLoader();
|
|
||||||
};
|
|
||||||
request.onsuccess = function (event) {
|
|
||||||
console.log('DB deleted');
|
|
||||||
toastInfo('The database was deleted. Please reload or close this tab.<br>At the next visit, a new database will be created.');
|
|
||||||
hideLoader();
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
toastWarn('Your device does not support storing data locally. All data is fetched directly from our server.<br>As a result, you can not reset your database.');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function resetCache() {
|
function resetCache() {
|
||||||
$('#menu-developer').hideMenu();
|
$('#menu-developer').hideMenu();
|
||||||
navigator.serviceWorker.getRegistrations().then(function (registrations) {
|
navigator.serviceWorker.getRegistrations().then(function (registrations) {
|
||||||
|
|||||||
@@ -130,7 +130,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="menu-developer" class="menu menu-box-bottom menu-box-detached rounded-m" data-menu-height="310">
|
<div id="menu-developer" class="menu menu-box-bottom menu-box-detached rounded-m" data-menu-height="310">
|
||||||
<div class="menu-title"><h1>Entwickler-Optionen</h1><p class="color-highlight"> </p><a href="#" class="close-menu"><i class="fa fa-times"></i></a></div>
|
<div class="menu-title"><h1>Entwickler-Optionen</h1><p class="color-highlight">Version <?php echo PWA_VERSION; ?></p><a href="#" class="close-menu"><i class="fa fa-times"></i></a></div>
|
||||||
<div class="divider divider-margins mb-n2"></div>
|
<div class="divider divider-margins mb-n2"></div>
|
||||||
<div class="content">
|
<div class="content">
|
||||||
<div class="list-group list-custom-small">
|
<div class="list-group list-custom-small">
|
||||||
@@ -139,7 +139,7 @@
|
|||||||
<span>Infos zur BETA</span>
|
<span>Infos zur BETA</span>
|
||||||
<i class="fa fa-angle-right"></i>
|
<i class="fa fa-angle-right"></i>
|
||||||
</a>
|
</a>
|
||||||
<a href="javascript:resetDb();">
|
<a href="javascript:resetDb(false);">
|
||||||
<i class="fa font-14 fa-database rounded-s bg-highlight color-white"></i>
|
<i class="fa font-14 fa-database rounded-s bg-highlight color-white"></i>
|
||||||
<span>Reset Database</span>
|
<span>Reset Database</span>
|
||||||
<i class="fa fa-angle-right"></i>
|
<i class="fa fa-angle-right"></i>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<div id="$$html-id;" class="card card-style">
|
<div id="$$html-id;" class="card card-style $$css-class;">
|
||||||
<div class="content $$css-class;">
|
<div class="content">
|
||||||
$$0;
|
$$0;
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
<div class="input-style input-style-2 input-required">
|
<div class="input-style input-style-2 input-required $$css-class;">
|
||||||
<span class="color-highlight">$$placeholder;</span>
|
<span class="color-highlight">$$placeholder;</span>
|
||||||
<input id="$$html-id;" class="form-control $$css-class;" type="$$type;" placeholder="$$placeholder;" value="$$value;" />
|
<input id="$$html-id;" class="form-control" type="$$type;" placeholder="$$placeholder;" value="$$value;" />
|
||||||
</div>
|
</div>
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
<div class="input-style input-style-2 input-required">
|
<div class="input-style input-style-2 input-required $$css-class;">
|
||||||
<span class="color-highlight input-style-1-active">$$placeholder;</span>
|
<span class="color-highlight input-style-1-active">$$placeholder;</span>
|
||||||
<select id="$$html-id;" class="form-control $$css-class;">
|
<select id="$$html-id;" class="form-control">
|
||||||
$$options;
|
$$options;
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
<div class="input-style input-style-2 input-required">
|
<div class="input-style input-style-2 input-required $$css-class;">
|
||||||
<span class="color-highlight">$$placeholder;</span>
|
<span class="color-highlight">$$placeholder;</span>
|
||||||
<textarea id="$$html-id;" class="form-control $$css-class;" placeholder="$$placeholder;">$$value;</textarea>
|
<textarea id="$$html-id;" class="form-control" placeholder="$$placeholder;">$$value;</textarea>
|
||||||
</div>
|
</div>
|
||||||
Reference in New Issue
Block a user