From ef3d2b93bf05997c28efa40228f1e60a80dd7640 Mon Sep 17 00:00:00 2001 From: Kirk Scheibelhut Date: Fri, 5 Jul 2019 18:02:07 -0700 Subject: [PATCH] Unify duplicated join/leave display logic --- js/client-chat.js | 80 +++++++++++++++++------------------------------ 1 file changed, 29 insertions(+), 51 deletions(-) diff --git a/js/client-chat.js b/js/client-chat.js index 740bf10d9..fdf7277fe 100644 --- a/js/client-chat.js +++ b/js/client-chat.js @@ -1475,62 +1475,40 @@ this.joinLeave[action].push(user.group + user.name); var message = ''; if (this.joinLeave['join'].length) { - var preList = this.joinLeave['join']; - var list = []; - var named = {}; - for (var j = 0; j < preList.length; j++) { - if (!named[preList[j]]) list.push(preList[j]); - named[preList[j]] = true; - } - for (var j = 0; j < list.length; j++) { - if (j >= 5) { - message += ', and ' + (list.length - 5) + ' others'; - break; - } - if (j > 0) { - if (j == 1 && list.length == 2) { - message += ' and '; - } else if (j == list.length - 1) { - message += ', and '; - } else { - message += ', '; - } - } - message += BattleLog.escapeHTML(list[j]); - } - message += ' joined'; + message += this.displayJoinLeaves(this.joinLeave['join'], 'joined'); } if (this.joinLeave['leave'].length) { - if (this.joinLeave['join'].length) { - message += '; '; - } - var preList = this.joinLeave['leave']; - var list = []; - var named = {}; - for (var j = 0; j < preList.length; j++) { - if (!named[preList[j]]) list.push(preList[j]); - named[preList[j]] = true; - } - for (var j = 0; j < list.length; j++) { - if (j >= 5) { - message += ', and ' + (list.length - 5) + ' others'; - break; - } - if (j > 0) { - if (j == 1 && list.length == 2) { - message += ' and '; - } else if (j == list.length - 1) { - message += ', and '; - } else { - message += ', '; - } - } - message += BattleLog.escapeHTML(list[j]); - } - message += ' left
'; + if (this.joinLeave['join'].length) message += '; '; + message += this.displayJoinLeaves(this.joinLeave['leave'], 'left') + '
'; } this.$joinLeave.html('' + message + ''); }, + displayJoinLeaves: function (preList, action) { + var message = ''; + var list = []; + var named = {}; + for (var j = 0; j < preList.length; j++) { + if (!named[preList[j]]) list.push(preList[j]); + named[preList[j]] = true; + } + for (var j = 0; j < list.length; j++) { + if (j >= 5) { + message += ', and ' + (list.length - 5) + ' others'; + break; + } + if (j > 0) { + if (j == 1 && list.length == 2) { + message += ' and '; + } else if (j == list.length - 1) { + message += ', and '; + } else { + message += ', '; + } + } + message += BattleLog.escapeHTML(list[j]); + } + return message + ' ' + action; + }, addChat: function (name, message, pm, msgTime) { var userid = toUserid(name);