From 2155015bb65b2b7ea754ae696075aac659fef14b Mon Sep 17 00:00:00 2001 From: Jon Ziebell Date: Wed, 27 Jan 2021 21:01:10 -0500 Subject: [PATCH] Fixed #295 - If there are no announcements, clicking the announcements button breaks --- js/component/modal/announcements.js | 45 ++++++++++++++++------------- 1 file changed, 25 insertions(+), 20 deletions(-) diff --git a/js/component/modal/announcements.js b/js/component/modal/announcements.js index 04df105..4f45113 100644 --- a/js/component/modal/announcements.js +++ b/js/component/modal/announcements.js @@ -13,31 +13,36 @@ beestat.extend(beestat.component.modal.announcements, beestat.component.modal); */ beestat.component.modal.announcements.prototype.decorate_contents_ = function(parent) { var announcements = $.values(beestat.cache.announcement).reverse(); - announcements.forEach(function(announcement) { - parent.appendChild($.createElement('div').style({ - 'border-bottom': '1px solid #eee', - 'margin-left': (beestat.style.size.gutter * -1) + 'px', - 'margin-right': (beestat.style.size.gutter * -1) + 'px', - 'margin-top': (beestat.style.size.gutter) + 'px', - 'margin-bottom': (beestat.style.size.gutter) + 'px' - })); - var icon = new beestat.component.icon(announcement.icon) - .set_text(announcement.title + - ' • ' + - moment.utc(announcement.created_at).fromNow()); + if (announcements.length === 0) { + parent.appendChild($.createElement('p').innerText('No recent announcements! :)')); + } else { + announcements.forEach(function(announcement) { + parent.appendChild($.createElement('div').style({ + 'border-bottom': '1px solid #eee', + 'margin-left': (beestat.style.size.gutter * -1) + 'px', + 'margin-right': (beestat.style.size.gutter * -1) + 'px', + 'margin-top': (beestat.style.size.gutter) + 'px', + 'margin-bottom': (beestat.style.size.gutter) + 'px' + })); - icon.render(parent); + var icon = new beestat.component.icon(announcement.icon) + .set_text(announcement.title + + ' • ' + + moment.utc(announcement.created_at).fromNow()); - beestat.dispatcher.dispatchEvent('view_announcements'); + icon.render(parent); - parent.appendChild($.createElement('p').innerHTML(announcement.text)); - }); + beestat.dispatcher.dispatchEvent('view_announcements'); - beestat.setting( - 'last_read_announcement_id', - announcements[0].announcement_id - ); + parent.appendChild($.createElement('p').innerHTML(announcement.text)); + }); + + beestat.setting( + 'last_read_announcement_id', + announcements[0].announcement_id + ); + } }; /**