diff options
author | Maksim Sukharev <antreesy.web@gmail.com> | 2023-07-03 17:42:20 +0200 |
---|---|---|
committer | backportbot-nextcloud[bot] <backportbot-nextcloud[bot]@users.noreply.github.com> | 2023-08-08 07:46:18 +0000 |
commit | deb36aa846a9e00062b77be1ea28e595bc82e087 (patch) | |
tree | f083523aaa20fcf5e630411ea48094f25527da68 | |
parent | 24e123a4b1dc1f3e6711970ced7511481bfd859f (diff) |
handle 'moderator_promoted', 'moderator_demoted'
Signed-off-by: Maksim Sukharev <antreesy.web@gmail.com>
-rw-r--r-- | src/components/MessagesList/MessagesGroup/MessagesSystemGroup.vue | 118 |
1 files changed, 118 insertions, 0 deletions
diff --git a/src/components/MessagesList/MessagesGroup/MessagesSystemGroup.vue b/src/components/MessagesList/MessagesGroup/MessagesSystemGroup.vue index eb399d6a0..32fde8207 100644 --- a/src/components/MessagesList/MessagesGroup/MessagesSystemGroup.vue +++ b/src/components/MessagesList/MessagesGroup/MessagesSystemGroup.vue @@ -185,6 +185,18 @@ export default { return 'call_left' } + // Group users promoted one by one + if ((message1.systemMessage === 'moderator_promoted' || message1.systemMessage === 'guest_moderator_promoted') + && (message2.systemMessage === 'moderator_promoted' || message2.systemMessage === 'guest_moderator_promoted')) { + return 'moderator_promoted' + } + + // Group users demoted one by one + if ((message1.systemMessage === 'moderator_demoted' || message1.systemMessage === 'guest_moderator_demoted') + && (message2.systemMessage === 'moderator_demoted' || message2.systemMessage === 'guest_moderator_demoted')) { + return 'moderator_demoted' + } + return '' }, @@ -377,6 +389,112 @@ export default { } } + // Handle cases when actor promoted several users to moderators + if (type === 'moderator_promoted') { + const selfIsActor = combinedMessage.actorId === this.$store.getters.getActorId() + && combinedMessage.actorType === this.$store.getters.getActorType() + messages.forEach(message => { + if (this.checkIfSelfIsUser(message)) { + selfIsUser = true + } else { + combinedMessage.messageParameters[`user${referenceIndex}`] = message.messageParameters.user + referenceIndex++ + } + usersCounter++ + }) + + if (selfIsActor) { + if (usersCounter === 2) { + combinedMessage.message = t('spreed', 'You promoted {user0} and {user1} to moderators') + } else { + combinedMessage.message = n('spreed', + 'You promoted {user0}, {user1} and %n more participant to moderators', + 'You promoted {user0}, {user1} and %n more participants to moderators', usersCounter - 2) + } + } else if (selfIsUser) { + if (usersCounter === 2) { + combinedMessage.message = actorIsAdministrator + ? t('spreed', 'An administrator promoted you and {user0} to moderators') + : t('spreed', '{actor} promoted you and {user0} to moderators') + } else { + combinedMessage.message = actorIsAdministrator + ? n('spreed', + 'An administrator promoted you, {user0} and %n more participant to moderators', + 'An administrator promoted you, {user0} and %n more participants to moderators', usersCounter - 2) + : n('spreed', + '{actor} promoted you, {user0} and %n more participant to moderators', + '{actor} promoted you, {user0} and %n more participants to moderators', usersCounter - 2) + } + } else { + if (usersCounter === 2) { + combinedMessage.message = actorIsAdministrator + ? t('spreed', 'An administrator promoted {user0} and {user1} to moderators') + : t('spreed', '{actor} promoted {user0} and {user1} to moderators') + } else { + combinedMessage.message = actorIsAdministrator + ? n('spreed', + 'An administrator promoted {user0}, {user1} and %n more participant to moderators', + 'An administrator promoted {user0}, {user1} and %n more participants to moderators', usersCounter - 2) + : n('spreed', + '{actor} promoted {user0}, {user1} and %n more participant to moderators', + '{actor} promoted {user0}, {user1} and %n more participants to moderators', usersCounter - 2) + } + } + } + + // Handle cases when actor demoted several users from moderators + if (type === 'moderator_demoted') { + const selfIsActor = combinedMessage.actorId === this.$store.getters.getActorId() + && combinedMessage.actorType === this.$store.getters.getActorType() + messages.forEach(message => { + if (this.checkIfSelfIsUser(message)) { + selfIsUser = true + } else { + combinedMessage.messageParameters[`user${referenceIndex}`] = message.messageParameters.user + referenceIndex++ + } + usersCounter++ + }) + + if (selfIsActor) { + if (usersCounter === 2) { + combinedMessage.message = t('spreed', 'You demoted {user0} and {user1} from moderators') + } else { + combinedMessage.message = n('spreed', + 'You demoted {user0}, {user1} and %n more participant from moderators', + 'You demoted {user0}, {user1} and %n more participants from moderators', usersCounter - 2) + } + } else if (selfIsUser) { + if (usersCounter === 2) { + combinedMessage.message = actorIsAdministrator + ? t('spreed', 'An administrator demoted you and {user0} from moderators') + : t('spreed', '{actor} demoted you and {user0} from moderators') + } else { + combinedMessage.message = actorIsAdministrator + ? n('spreed', + 'An administrator demoted you, {user0} and %n more participant from moderators', + 'An administrator demoted you, {user0} and %n more participants from moderators', usersCounter - 2) + : n('spreed', + '{actor} demoted you, {user0} and %n more participant from moderators', + '{actor} demoted you, {user0} and %n more participants from moderators', usersCounter - 2) + } + } else { + if (usersCounter === 2) { + combinedMessage.message = actorIsAdministrator + ? t('spreed', 'An administrator demoted {user0} and {user1} from moderators') + : t('spreed', '{actor} demoted {user0} and {user1} from moderators') + } else { + combinedMessage.message = actorIsAdministrator + ? n('spreed', + 'An administrator demoted {user0}, {user1} and %n more participant from moderators', + 'An administrator demoted {user0}, {user1} and %n more participants from moderators', usersCounter - 2) + : n('spreed', + '{actor} demoted {user0}, {user1} and %n more participant from moderators', + '{actor} demoted {user0}, {user1} and %n more participants from moderators', usersCounter - 2) + } + } + } + return combinedMessage }, |