diff --git a/js/web/_main/js/_main.js b/js/web/_main/js/_main.js index af306afac..dd92620c3 100644 --- a/js/web/_main/js/_main.js +++ b/js/web/_main/js/_main.js @@ -1935,7 +1935,7 @@ let MainParser = { setConversations: (d)=> { // Falls der Cache leer ist den Speicher auslesen - if (MainParser.Conversations.length === 0){ + if (MainParser.Conversations.length === 0) { let StorageHeader = localStorage.getItem('ConversationsHeaders'); if (StorageHeader !== null) { MainParser.Conversations = JSON.parse(StorageHeader); @@ -1944,14 +1944,14 @@ let MainParser = { // neues Postfach if (d['category'] && d['category']['teasers']) { - for(let k in d['category']['teasers']){ - if (!d['category']['teasers'].hasOwnProperty(k)){ + for (let k in d['category']['teasers']) { + if (!d['category']['teasers'].hasOwnProperty(k)) { continue; } let key = MainParser.Conversations.findIndex((obj)=> (obj.id === d['category']['teasers'][k]['id'])); // Ist bereits ein Key vorhanden? - if (key !== -1){ + if (key !== -1) { MainParser.Conversations[key]['type'] = d['category']['type']; MainParser.Conversations[key]['title'] = d['category']['teasers'][k]['title']; MainParser.Conversations[key]['hidden'] = d['category']['teasers'][k]['isHidden']; @@ -2021,7 +2021,7 @@ let MainParser = { } } - if (MainParser.Conversations.length > 0){ + if (MainParser.Conversations.length > 0) { // Dopplungen entfernen und Daten lokal abspeichern MainParser.Conversations = [...new Set(MainParser.Conversations.map(s => JSON.stringify(s)))].map(s => JSON.parse(s)); localStorage.setItem('ConversationsHeaders', JSON.stringify(MainParser.Conversations)); diff --git a/js/web/infoboard/js/infoboard.js b/js/web/infoboard/js/infoboard.js index 4f5810de1..e067ab851 100644 --- a/js/web/infoboard/js/infoboard.js +++ b/js/web/infoboard/js/infoboard.js @@ -337,40 +337,55 @@ let Info = { * @returns {{class: 'message', msg: string, type: string}} */ ConversationService_getNewMessage: (d) => { - let msg; + let header; let message; let chat = MainParser.Conversations.find(obj => obj.id === d['conversationId']); + if (chat && chat['hidden']) return undefined; if (d['text'] !== '') { - msg = d['text'].replace(/(\r\n|\n|\r)/gm, '
'); + // normale Nachricht + message = d['text'].replace(/(\r\n|\n|\r)/gm, '
'); } else if (d['attachment'] !== undefined) { - - // Greatbuilding + // legendäres Bauwerk if (d['attachment']['type'] === 'great_building') { - msg = HTML.i18nReplacer( + message = HTML.i18nReplacer( i18n('Boxes.Infobox.Messages.MsgBuilding'), { 'building': MainParser.CityEntities[d['attachment']['cityEntityId']]['name'], 'level': d['attachment']['level'] - } - ) + }); } - // Trade + // Handelsangebot else if (d['attachment']['type'] === 'trade_offer') { - msg = `
x${d['attachment']['offeredAmount']} » x${d['attachment']['neededAmount']}
`; + message = `
x${d['attachment']['offeredAmount']} » x${d['attachment']['neededAmount']}
`; } + } else { + return undefined; } - if (undefined === d.sender) { - return { - class: 'message', - type: i18n('Boxes.Infobox.FilterMessage'), - msg: Info.GetConversationHeader(d.conversationId, null) + msg - }; + if (chat != null) { + if (d['sender']['name'] != null) { + // normale Chatnachricht (bekannte ID) + if (chat['important']) { + header = '
' + chat['title'] + ' - ' + d['sender']['name'] + ' ⚠️
'; + } else if (chat['favorite']) { + header = '
' + chat['title'] + ' - ' + d['sender']['name'] + '
'; + } else { + header = '
' + chat['title'] + ' - ' + d['sender']['name'] + '
'; + } + } else { + // Chatnachricht vom System (Betreten/Verlassen) + header = '
' + header.title + '
'; + } + } else if (d['sender']['name'] != null) { + // normale Chatnachricht (unbekannte ID) + header = '
' + name + '
'; + } else { + header = '' } return { class: 'message', type: i18n('Boxes.Infobox.FilterMessage'), - msg: Info.GetConversationHeader(d['conversationId'], d['sender']['name']) + msg + msg: header + message }; }, @@ -400,7 +415,7 @@ let Info = { if (data['lockedUntil'] !== undefined) { // keine Übernahme - if (data['lockedUntil'] < Date.now() + 14390) return undefined; + if (data['lockedUntil'] < Math.floor(Date.now() / 1000) + 14390) return undefined; let p = bP.find(o => (o['participantId'] === data['ownerId'])), colors = GildFights.SortedColors.find(c => (c['id'] === data['ownerId'])); @@ -553,30 +568,5 @@ let Info = { } ) }; - }, - - - /** - * Sucht den Titel einer Nachricht heraus - * - * @param id - * @param {string} name - * @returns {string} - */ - GetConversationHeader: (id, name) => { - let header = MainParser.Conversations.find(obj => obj.id === id); - if (header != null && name != null) { - // z.B. normale Chat-Nachricht mit bekannter Chat-ID - return '
' + header.title + ' - ' + name + '
'; - } else if (name != null) { - // z.B. normale Chat-Nachricht mit unbekannter Chat-ID - return '
' + name + '
'; - } else if (header != null) { - // z.B. normale Chat-ereignis-Nachricht mit bekannter Chat-ID (xyz wurde hinzugefügt/hat chat verlassen) - return '
' + header.title + '
'; - } - - return ''; } }; -