Planning-edit: Show known sailors

This commit is contained in:
ostertun
2020-11-01 16:58:47 +01:00
parent cd30ba1ce6
commit 84320f3a67

View File

@@ -69,6 +69,8 @@ async function planningSwitchChanged() {
var sailorIsSteuermann; var sailorIsSteuermann;
var sailors = []; var sailors = [];
var knownIds = [];
var known = [];
async function sailorSelected(sid) { async function sailorSelected(sid) {
$('#menu-sailor').hideMenu(); $('#menu-sailor').hideMenu();
@@ -103,8 +105,12 @@ async function sailorSelected(sid) {
}, },
success: async function (data, status, xhr) { success: async function (data, status, xhr) {
await sync(); await sync();
if ((sid === null) || (sid in knownIds)) {
planningEdit(rid); planningEdit(rid);
hideLoader(); hideLoader();
} else {
location.reload();
}
} }
}); });
} }
@@ -118,6 +124,11 @@ async function sailorsSearch() {
item += '</a>'; item += '</a>';
$('#menu-sailor').find('.content').find('.list-group').append(item); $('#menu-sailor').find('.content').find('.list-group').append(item);
} }
if ($('#input-edit-search').val().length == 0) {
known.forEach(function (entry) {
$('#menu-sailor').find('.content').find('.list-group').append(entry);
});
}
if ($('#input-edit-search').val().length >= 3) { if ($('#input-edit-search').val().length >= 3) {
sailors.forEach(function (entry) { sailors.forEach(function (entry) {
if (search($('#input-edit-search').val(), entry.keywords)) { if (search($('#input-edit-search').val(), entry.keywords)) {
@@ -125,18 +136,30 @@ async function sailorsSearch() {
} }
}); });
} else { } else {
var item = '<p class="item-sailor-search">Gib mindestens 3 Zeichen ein</p>'; var item = '<p class="item-sailor-search">Zum Suchen mindestens 3 Zeichen eingeben</p>';
$('#menu-sailor').find('.content').find('.list-group').append(item); $('#menu-sailor').find('.content').find('.list-group').append(item);
} }
} }
async function initSailors() { async function initSailors() {
sailors = []; sailors = [];
known = [];
var plannings = await dbGetDataIndex('plannings', 'user', USER_ID);
knownIds = {};
for (var p in plannings) {
p = plannings[p];
if (p.steuermann !== null) knownIds[p.steuermann] = true;
var crew = p.crew.split(',');
for (var c in crew) {
c = crew[c];
if (c != '') knownIds[c] = true;
}
}
var dbSailors = await dbGetData('sailors'); var dbSailors = await dbGetData('sailors');
dbSailors.sort(function(a,b){ dbSailors.sort(function(a,b){
return a.name.localeCompare(b.name); return a.name.localeCompare(b.name);
}); });
for (s in dbSailors) { for (var s in dbSailors) {
var item = '<a class="item-sailor-search" onclick="sailorSelected(' + dbSailors[s].id + ')">'; var item = '<a class="item-sailor-search" onclick="sailorSelected(' + dbSailors[s].id + ')">';
item += '<span>' + dbSailors[s].name + '</span>'; item += '<span>' + dbSailors[s].name + '</span>';
item += '<i class="fa fa-angle-right"></i>'; item += '<i class="fa fa-angle-right"></i>';
@@ -145,6 +168,7 @@ async function initSailors() {
keywords: [dbSailors[s].name], keywords: [dbSailors[s].name],
content: item content: item
}); });
if (dbSailors[s].id in knownIds) known.push(item);
} }
} }