Compare commits
6 Commits
a53.2
...
register_o
| Author | SHA1 | Date | |
|---|---|---|---|
| bd4fc4c255 | |||
| 027abe5364 | |||
|
|
29f83814ee | ||
|
|
744be24410 | ||
|
|
633e39ce5d | ||
|
|
2e6eb25e68 |
1
.gitignore
vendored
1
.gitignore
vendored
@@ -3,3 +3,4 @@ server/config.php
|
|||||||
api/config.php
|
api/config.php
|
||||||
.htaccess
|
.htaccess
|
||||||
!.keepfolder
|
!.keepfolder
|
||||||
|
.idea
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
const DB_VERSION = 8;
|
const DB_VERSION = 9;
|
||||||
|
|
||||||
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');
|
||||||
@@ -619,7 +619,7 @@ function sync() {
|
|||||||
localTimes[entry['table']] = entry['time'];
|
localTimes[entry['table']] = entry['time'];
|
||||||
});
|
});
|
||||||
|
|
||||||
syncInProgress = 13;
|
syncInProgress = 14;
|
||||||
var syncOkay = true;
|
var syncOkay = true;
|
||||||
log("[db] Sync Start");
|
log("[db] Sync Start");
|
||||||
$('#i-sync').addClass('fa-spin');
|
$('#i-sync').addClass('fa-spin');
|
||||||
@@ -1008,8 +1008,35 @@ function sync() {
|
|||||||
syncInProgress --;
|
syncInProgress --;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// FOLLOWS
|
||||||
|
getJSON(QUERY_URL + 'get_follows', function (code, data) {
|
||||||
|
if (code == 200) {
|
||||||
|
var os = db.transaction('follows', 'readwrite').objectStore('follows');
|
||||||
|
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 {
|
} else {
|
||||||
syncInProgress -= 3;
|
syncInProgress --;
|
||||||
|
log('[db] follows synced, remaining:', syncInProgress);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
} else {
|
||||||
|
log("[db] follows: Something went wrong (HTTP " + code + ")");
|
||||||
|
syncOkay = false;
|
||||||
|
syncInProgress --;
|
||||||
|
log('[db] follows failed, remaining:', syncInProgress);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
} else {
|
||||||
|
syncInProgress -= 4;
|
||||||
}
|
}
|
||||||
|
|
||||||
// NEWS
|
// NEWS
|
||||||
@@ -1236,6 +1263,11 @@ function initDatabase() {
|
|||||||
var osRankings = db.createObjectStore('rankings', { keyPath: 'id' });
|
var osRankings = db.createObjectStore('rankings', { keyPath: 'id' });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ((oldVersion < 9) && (newVersion >= 9)) {
|
||||||
|
log('[db] to version 9');
|
||||||
|
var osFollows = db.createObjectStore('follows', { keyPath: 'id' });
|
||||||
|
}
|
||||||
|
|
||||||
// Force resync after db update
|
// Force resync after db update
|
||||||
if (oldVersion >= 1) {
|
if (oldVersion >= 1) {
|
||||||
var osUpdateTimes = upgradeTransaction.objectStore('update_times');
|
var osUpdateTimes = upgradeTransaction.objectStore('update_times');
|
||||||
|
|||||||
@@ -157,51 +157,6 @@ function findGetParameter(parameterName) {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
var signup = function() {
|
|
||||||
log('[app] Signup');
|
|
||||||
var username = $('#input-signup-username').val();
|
|
||||||
var email = $('#input-signup-email').val();
|
|
||||||
var password = $('#input-signup-password').val();
|
|
||||||
if (username == '') { $('#input-signup-username').focus(); return; }
|
|
||||||
if (email == '') { $('#input-signup-email').focus(); return; }
|
|
||||||
if (password == '') { $('#input-signup-password').focus(); return; }
|
|
||||||
log('[app] Signup: All fields okay');
|
|
||||||
showLoader();
|
|
||||||
$('#input-signup-username').val('').trigger('focusin').trigger('focusout');
|
|
||||||
$('#input-signup-email').val('').trigger('focusin').trigger('focusout');
|
|
||||||
$('#input-signup-password').val('').trigger('focusin').trigger('focusout');
|
|
||||||
$.ajax({
|
|
||||||
url: QUERY_URL + 'signup',
|
|
||||||
method: 'POST',
|
|
||||||
data: {
|
|
||||||
username: username,
|
|
||||||
email: email,
|
|
||||||
password: password
|
|
||||||
},
|
|
||||||
error: function (xhr, status, error) {
|
|
||||||
log('[app] Signup: error:', xhr.status, status);
|
|
||||||
if (xhr.status == 409) {
|
|
||||||
toastError('Benutzername bereits vergeben');
|
|
||||||
$('#input-signup-email').val(email).trigger('focusin').trigger('focusout');
|
|
||||||
} else if (xhr.status == 0) {
|
|
||||||
toastError('Du bist momentan offline.<br>Stelle eine Internetverbindung her, um Dich anzumelden');
|
|
||||||
$('#menu-signup').hideMenu();
|
|
||||||
} else {
|
|
||||||
log('[app] Signup: unbekannter Fehler', status, error);
|
|
||||||
log(xhr);
|
|
||||||
toastError('Ein unbekannter Fehler ist aufgetreten. Bitte versuche es noch einmal', 5000);
|
|
||||||
}
|
|
||||||
hideLoader();
|
|
||||||
},
|
|
||||||
success: function (data, status, xhr) {
|
|
||||||
log('[app] Signup successful, logging in');
|
|
||||||
$('#input-login-username').val(username);
|
|
||||||
$('#input-login-password').val(password);
|
|
||||||
login();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
var login = function() {
|
var login = function() {
|
||||||
log('[app] Login');
|
log('[app] Login');
|
||||||
showLoader();
|
showLoader();
|
||||||
|
|||||||
@@ -32,7 +32,7 @@
|
|||||||
$content = '<h2>Nicht angemeldet</h2>';
|
$content = '<h2>Nicht angemeldet</h2>';
|
||||||
$content .= '<p class="mt-3">';
|
$content .= '<p class="mt-3">';
|
||||||
$content .= 'Um alle Funktionen dieser Seite nutzen zu können, <a href="#" data-menu="menu-login">logge Dich bitte ein</a>.<br>';
|
$content .= 'Um alle Funktionen dieser Seite nutzen zu können, <a href="#" data-menu="menu-login">logge Dich bitte ein</a>.<br>';
|
||||||
$content .= 'Solltest Du noch kein Benutzerkonto haben, kannst Du Dich kostenlos <a href="#" data-menu="menu-signup">registrieren</a>.';
|
$content .= 'Solltest Du noch kein Benutzerkonto haben, kannst Du Dich kostenlos <a href="https://regatten.net/#signup">registrieren</a>.';
|
||||||
$content .= '</p>';
|
$content .= '</p>';
|
||||||
|
|
||||||
$sp['output'] .= $tpl->load('card', [$content, 'html-id' => 'card-notloggedin']);
|
$sp['output'] .= $tpl->load('card', [$content, 'html-id' => 'card-notloggedin']);
|
||||||
@@ -72,7 +72,7 @@
|
|||||||
$content .= '<p>Du willst alle Regatta-Termine in deinem Kalender, aber nicht alles abtippen?<br>Kein Problem! Abonniere einfach unseren ics-Kalender.</p>';
|
$content .= '<p>Du willst alle Regatta-Termine in deinem Kalender, aber nicht alles abtippen?<br>Kein Problem! Abonniere einfach unseren ics-Kalender.</p>';
|
||||||
$content .= '<p><b>Nur die Regatten, zu denen Du gehst?</b><br>Auch kein Problem! ';
|
$content .= '<p><b>Nur die Regatten, zu denen Du gehst?</b><br>Auch kein Problem! ';
|
||||||
$content .= '<font class="show-loggedin">Erstelle einfach eine <a href="' . LINK_PRE . 'planning">Saison-Planung</a> und abonniere Deinen persönlichen Kalender.</font>';
|
$content .= '<font class="show-loggedin">Erstelle einfach eine <a href="' . LINK_PRE . 'planning">Saison-Planung</a> und abonniere Deinen persönlichen Kalender.</font>';
|
||||||
$content .= '<font class="show-notloggedin"><a href="#" data-menu="menu-signup">Registriere Dich einfach kostenlos</a>, erstelle eine Saison-Planung und wir erstellen Dir einen persönlichen Kalender.</font>';
|
$content .= '<font class="show-notloggedin"><a href="https://regatten.net/#signup">Registriere Dich einfach kostenlos</a>, erstelle eine Saison-Planung und wir erstellen Dir einen persönlichen Kalender.</font>';
|
||||||
$content .= '</p>';
|
$content .= '</p>';
|
||||||
$content .= $tpl->load('button', ['<i class="fas fa-calendar-alt"></i> Regatta-Kalender', 'https://ranglisten.net/client/calendar/' . BOATCLASS . '/everything.ics', 'css-class' => 'mb-2']);
|
$content .= $tpl->load('button', ['<i class="fas fa-calendar-alt"></i> Regatta-Kalender', 'https://ranglisten.net/client/calendar/' . BOATCLASS . '/everything.ics', 'css-class' => 'mb-2']);
|
||||||
$content .= $tpl->load('button', ['<i class="fas fa-calendar-alt"></i> Kalender für <font class="replace-username"></font>', 'https://ranglisten.net/client/calendar/' . BOATCLASS . '/user_%USERID%.ics', 'css-class' => 'show-loggedin replace-userid-href']);
|
$content .= $tpl->load('button', ['<i class="fas fa-calendar-alt"></i> Kalender für <font class="replace-username"></font>', 'https://ranglisten.net/client/calendar/' . BOATCLASS . '/user_%USERID%.ics', 'css-class' => 'show-loggedin replace-userid-href']);
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
|
|
||||||
// Not loggedin
|
// Not loggedin
|
||||||
$content = '<h1>Saison-Planung</h1>';
|
$content = '<h1>Saison-Planung</h1>';
|
||||||
$content .= '<p>Um Deine Saison-Planung zu sehen, musst Du angemeldet sein.<br><a href="#" data-menu="menu-login">Melde Dich hier an</a> oder <a href="#" data-menu="menu-signup">registriere Dich jetzt kostenlos</a>.</p>';
|
$content .= '<p>Um Deine Saison-Planung zu sehen, musst Du angemeldet sein.<br><a href="#" data-menu="menu-login">Melde Dich hier an</a> oder <a href="https://regatten.net/#signup">registriere Dich jetzt kostenlos</a>.</p>';
|
||||||
|
|
||||||
$sp['output'] .= $tpl->load('card', [$content, 'css-class' => 'show-notloggedin']);
|
$sp['output'] .= $tpl->load('card', [$content, 'css-class' => 'show-notloggedin']);
|
||||||
|
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
|
|
||||||
// Not loggedin
|
// Not loggedin
|
||||||
$content = '<h1>Saison-Planungen</h1>';
|
$content = '<h1>Saison-Planungen</h1>';
|
||||||
$content .= '<p>Um die Saison-Planungen anderer zu sehen, musst Du angemeldet sein.<br><a href="#" data-menu="menu-login">Melde Dich hier an</a> oder <a href="#" data-menu="menu-signup">registriere Dich jetzt kostenlos</a>.</p>';
|
$content .= '<p>Um die Saison-Planungen anderer zu sehen, musst Du angemeldet sein.<br><a href="#" data-menu="menu-login">Melde Dich hier an</a> oder <a href="https://regatten.net/#signup">registriere Dich jetzt kostenlos</a>.</p>';
|
||||||
|
|
||||||
$sp['output'] .= $tpl->load('card', [$content, 'css-class' => 'show-notloggedin']);
|
$sp['output'] .= $tpl->load('card', [$content, 'css-class' => 'show-notloggedin']);
|
||||||
|
|
||||||
|
|||||||
@@ -21,7 +21,7 @@
|
|||||||
$content = '<p>Du planst, hier hinzufahren, aber stehst nicht auf dieser Liste?<br>';
|
$content = '<p>Du planst, hier hinzufahren, aber stehst nicht auf dieser Liste?<br>';
|
||||||
$content .= 'Das kannst Du ändern! ';
|
$content .= 'Das kannst Du ändern! ';
|
||||||
$content .= '<font class="show-loggedin">Erstelle einfach <a href="' . LINK_PRE . 'planning">hier</a> Deine eigene Saison-Planung.</font>';
|
$content .= '<font class="show-loggedin">Erstelle einfach <a href="' . LINK_PRE . 'planning">hier</a> Deine eigene Saison-Planung.</font>';
|
||||||
$content .= '<font class="show-notloggedin"><a href="#" data-menu="menu-login">Melde Dich an</a> oder <a href="#" data-menu="menu-signup">registriere Dich kostenlos</a> und erstelle Deine eigene Saison-Planung.</font>';
|
$content .= '<font class="show-notloggedin"><a href="#" data-menu="menu-login">Melde Dich an</a> oder <a href="https://regatten.net/#signup">registriere Dich kostenlos</a> und erstelle Deine eigene Saison-Planung.</font>';
|
||||||
$content .= '</p>';
|
$content .= '</p>';
|
||||||
|
|
||||||
$sp['output'] .= $tpl->load('card', [$content]);
|
$sp['output'] .= $tpl->load('card', [$content]);
|
||||||
|
|||||||
@@ -110,7 +110,7 @@
|
|||||||
<span>Login</span>
|
<span>Login</span>
|
||||||
<i class="fa fa-angle-right"></i>
|
<i class="fa fa-angle-right"></i>
|
||||||
</a>
|
</a>
|
||||||
<a href="#" data-menu="menu-signup" class="show-notloggedin">
|
<a href="https://regatten.net/#signup" class="show-notloggedin">
|
||||||
<i class="fa font-14 fa-user-plus rounded-s bg-highlight color-white"></i>
|
<i class="fa font-14 fa-user-plus rounded-s bg-highlight color-white"></i>
|
||||||
<span>Registrieren</span>
|
<span>Registrieren</span>
|
||||||
<span class="badge bg-red2-dark color-white">FREE</span>
|
<span class="badge bg-red2-dark color-white">FREE</span>
|
||||||
@@ -266,28 +266,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="menu-signup" class="menu menu-box-top menu-box-detached rounded-m" data-menu-height="340">
|
|
||||||
<div class="content bottom-0">
|
|
||||||
<h1 class="text-center mt-5 font-900">Registrieren</h1>
|
|
||||||
<div class="input-style input-style-2 has-icon input-required">
|
|
||||||
<i class="input-icon fa fa-user color-theme"></i>
|
|
||||||
<span class="color-highlight">Benutzername</span>
|
|
||||||
<input id="input-signup-username" class="form-control" type="name" placeholder="Benutzername" />
|
|
||||||
</div>
|
|
||||||
<div class="input-style input-style-2 has-icon input-required">
|
|
||||||
<i class="input-icon fa fa-envelope color-theme"></i>
|
|
||||||
<span class="color-highlight">Email</span>
|
|
||||||
<input id="input-signup-email" class="form-control" type="email" placeholder="Email" />
|
|
||||||
</div>
|
|
||||||
<div class="input-style input-style-2 has-icon input-required">
|
|
||||||
<i class="input-icon fa fa-lock color-theme"></i>
|
|
||||||
<span class="color-highlight">Passwort</span>
|
|
||||||
<input id="input-signup-password" class="form-control" type="password" placeholder="Passwort" />
|
|
||||||
</div>
|
|
||||||
<a class="btn btn-m mt-2 mb-2 btn-full bg-green2-dark text-uppercase font-900" href="#" onclick="signup();">Registrieren</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="menu-welcome" class="menu menu-box-bottom" style="height: 70vh">
|
<div id="menu-welcome" class="menu menu-box-bottom" style="height: 70vh">
|
||||||
<div class="content bottom-0">
|
<div class="content bottom-0">
|
||||||
<h1 class="text-center font-900">Willkommen</h1>
|
<h1 class="text-center font-900">Willkommen</h1>
|
||||||
|
|||||||
@@ -85,12 +85,10 @@ var siteScript = async function() {
|
|||||||
var user = await dbGetData('users', localStorage.getItem('auth_user'));
|
var user = await dbGetData('users', localStorage.getItem('auth_user'));
|
||||||
|
|
||||||
// Favorites
|
// Favorites
|
||||||
|
var follows = await dbGetData('follows');
|
||||||
var watched = [];
|
var watched = [];
|
||||||
for (var i = 1; i <= 5; i ++) {
|
for (var i in follows) {
|
||||||
sailor_id = user['sailor' + i];
|
watched.push(await dbGetData('sailors', follows[i].sailor));
|
||||||
if (sailor_id != null) {
|
|
||||||
watched.push(await dbGetData('sailors', sailor_id));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if (watched.length > 0) {
|
if (watched.length > 0) {
|
||||||
var year = (new Date()).getFullYear();
|
var year = (new Date()).getFullYear();
|
||||||
|
|||||||
@@ -194,12 +194,10 @@ var siteScript = async function() {
|
|||||||
|
|
||||||
if (isLoggedIn()) {
|
if (isLoggedIn()) {
|
||||||
var user = await dbGetData('users', USER_ID);
|
var user = await dbGetData('users', USER_ID);
|
||||||
|
var follows = await dbGetData('follows');
|
||||||
followedSailors = [];
|
followedSailors = [];
|
||||||
for (var i = 1; i <= 5; i ++) {
|
for (var i in follows) {
|
||||||
sailor_id = user['sailor' + i];
|
followedSailors.push(await dbGetData('sailors', follows[i].sailor));
|
||||||
if (sailor_id != null) {
|
|
||||||
followedSailors.push(await dbGetData('sailors', sailor_id));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
define('PWA_VERSION', '1.12.1h7');
|
define('PWA_VERSION', '1.12.1h8');
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
|||||||
Reference in New Issue
Block a user