RA-#29 Follow Sailors

This commit is contained in:
ostertun
2020-10-15 19:02:25 +02:00
parent 9f3019b4c5
commit 5962e1cc90
4 changed files with 153 additions and 27 deletions

View File

@@ -2,6 +2,49 @@ var firstCall = true;
var today;
var onUpdatePushBadge;
var onUnfollowClicked = async function() {
var id = $('#menu-item-unfollow').attr('data-sailor-id');
showLoader();
$('#menu-favorite').hideMenu();
var auth = {
id: localStorage.getItem('auth_id'),
hash: localStorage.getItem('auth_hash')
}
$.ajax({
url: QUERY_URL + 'sailor_unfollow',
method: 'POST',
data: {
auth: auth,
sailor: id
},
error: function (xhr, status, error) {
if (xhr.status == 0) {
toastError('Du bist momentan offline.<br>Stelle eine Internetverbindung her, um Deine Favoriten zu bearbeiten.');
} else {
log('Unfollow: unbekannter Fehler', status, error);
log(xhr);
toastError('Ein unbekannter Fehler ist aufgetreten. Bitte versuche es noch einmal', 5000);
}
hideLoader();
},
success: async function (data, status, xhr) {
await sync();
toastOk('Erfolgreich');
hideLoader();
}
});
}
var onFavoriteClicked = async function(id) {
var sailor = await dbGetData('sailors', id);
$('#menu-favorite').find('.menu-title').find('p').text(sailor.name);
$('#menu-item-unfollow').attr('data-sailor-id', sailor.id);
$('#menu-favorite').showMenu();
}
var siteScript = async function() {
today = getToday();
@@ -33,6 +76,7 @@ var siteScript = async function() {
}
onUpdatePushBadge();
}
$('#menu-item-unfollow').click(onUnfollowClicked);
}
if (isLoggedIn()) {
@@ -50,31 +94,41 @@ var siteScript = async function() {
}
if (watched.length > 0) {
var year = (new Date()).getFullYear();
$('#th-ranking').html('Rangliste ' + year);
var ranking = (await dbGetRanking(parseDate('01.12.' + (year - 1)), parseDate('30.11.' + year), false, false))[0];
tbody = '';
var list = '';
for (i in watched) {
sailor = watched[i];
tbody += '<tr><td>' + sailor.name + '</td><td>';
var club = null;
if (sailor.club != null)
club = await dbGetData('clubs', sailor.club);
var rank = null;
for (r in ranking) {
if (ranking[r].id == sailor.id) {
rank = ranking[r].rank;
rank = ranking[r];
break;
}
}
list += '<div onclick="onFavoriteClicked(' + sailor.id + ');">';
list += '<div>';
// Name
list += '<div><b>' + sailor.name + '</b></div>';
list += '</div><div>';
if (rank == null) {
tbody += '<i>nicht in der Rangliste</i>';
list += '<div>Nicht in der Rangliste</div>';
} else {
tbody += '<b>' + rank + '.</b> Platz';
// Rank
list += '<div>Platz <b>' + rank.rank + '</b></div>';
// rlp
list += '<div>' + rank.rlp.toFixed(3) + ' Punkte</div>';
}
tbody += '</td></tr>';
list += '</div></div>';
}
$('#table-favorites').find('tbody').html(tbody);
$('#div-favorites').html(list);
$('#p-favorites').hide();
$('#table-favorites').show();
$('#div-favorites').show();
} else {
$('#table-favorites').hide();
$('#div-favorites').hide();
$('#p-favorites').show();
}
$('#card-favorites').show();

View File

@@ -4,6 +4,40 @@ var displayed = [];
var page = 1;
var pageCount = 0;
const showCount = 25;
var followedSailors = [];
async function onFollowChange() {
var id = $('#menu-item-follow').attr('data-sailor-id');
showLoader();
$('#menu-sailor').hideMenu();
var auth = {
id: localStorage.getItem('auth_id'),
hash: localStorage.getItem('auth_hash')
}
$.ajax({
url: QUERY_URL + ($('#menu-item-follow').prop('checked') ? 'sailor_follow' : 'sailor_unfollow'),
method: 'POST',
data: {
auth: auth,
sailor: id
},
error: function (xhr, status, error) {
if (xhr.status == 0) {
toastError('Du bist momentan offline.<br>Stelle eine Internetverbindung her, um Deine Favoriten zu bearbeiten.');
} else {
log('Un/Follow: unbekannter Fehler', status, error);
log(xhr);
toastError('Ein unbekannter Fehler ist aufgetreten. Bitte versuche es noch einmal', 5000);
}
hideLoader();
},
success: async function (data, status, xhr) {
await sync();
toastOk('Erfolgreich');
hideLoader();
}
});
}
async function onEditYearClick() {
var id = $('#button-edityear').attr('data-sailor-id');
@@ -50,6 +84,26 @@ async function onListClicked(id) {
$('#menu-sailor').find('.menu-title').find('p').text(sailor.name);
// Follow
if (isLoggedIn()) {
var found = false;
for (var i in followedSailors) {
if (followedSailors[i].id == sailor.id) found = true;
}
if (found || (followedSailors.length < 5)) {
$('#menu-item-follow').attr('data-sailor-id', sailor.id);
$('#menu-item-follow').prop('checked', found);
$('#menu-item-follow').parent().parent().show();
$('#menu-item-follow-disabled').hide();
} else {
$('#menu-item-follow').parent().parent().hide();
$('#menu-item-follow-disabled').show();
}
} else {
$('#menu-item-follow').parent().parent().hide();
$('#menu-item-follow-disabled').hide();
}
// Edit Year
$('#button-edityear').attr('data-sailor-id', sailor.id);
$('#menu-edityear').find('.menu-title').find('p').text(sailor.name);
@@ -134,6 +188,19 @@ var siteScript = async function() {
$('#input-search').on('input', reSearch);
$('#menu-item-year').click(function(){ $('#menu-sailor').hideMenu(); $('#menu-edityear').showMenu(); });
$('#button-edityear').click(onEditYearClick);
$('#menu-item-follow').parent().parent().click(onFollowChange);
$('#menu-item-follow-disabled').click(function(){ $('#menu-sailor').hideMenu(); toastInfo('Du kannst maximal 5 Seglern folgen. Entferne erst einen Segler aus Deinen Favoriten, bevor Du andere aufnimmst.', 5000); });
}
if (isLoggedIn()) {
var user = await dbGetData('users', USER_ID);
followedSailors = [];
for (var i = 1; i <= 5; i ++) {
sailor_id = user['sailor' + i];
if (sailor_id != null) {
followedSailors.push(await dbGetData('sailors', sailor_id));
}
}
}
var results = await dbGetData('sailors');