diff --git a/assets/misuzu.js/messages/messages.js b/assets/misuzu.js/messages/messages.js index 5edb46b..5799d56 100644 --- a/assets/misuzu.js/messages/messages.js +++ b/assets/misuzu.js/messages/messages.js @@ -160,6 +160,7 @@ const MszMessages = () => { if(msgsRecipient !== undefined) msgsRecipient.onUpdate(async info => { msgsReply.setRecipient(typeof info.id === 'string' ? info.id : ''); + msgsReply.setWarning(info.ban ? `${(typeof info.name === 'string' ? info.name : 'This user')} has been banned and will be unable to respond to your messages.` : undefined); }); msgsReply.onSubmit(async form => { diff --git a/assets/misuzu.js/messages/reply.jsx b/assets/misuzu.js/messages/reply.jsx index 3786899..3b0c041 100644 --- a/assets/misuzu.js/messages/reply.jsx +++ b/assets/misuzu.js/messages/reply.jsx @@ -11,6 +11,8 @@ const MszMessagesReply = function(element) { const parserSelect = form.querySelector('.js-messages-reply-parser'); const saveBtn = form.querySelector('.js-messages-reply-save'); const sendBtn = form.querySelector('.js-messages-reply-send'); + const warnElem = form.querySelector('.js-reply-form-warning'); + const warnText = warnElem instanceof Element ? warnElem.querySelector('.js-reply-form-warning-text') : undefined; let submitHandler; form.addEventListener('submit', ev => { @@ -133,6 +135,18 @@ const MszMessagesReply = function(element) { return { getElement: () => element, + setWarning: text => { + if(warnElem === undefined || warnText === undefined) + return; + + if(text === undefined) { + warnElem.hidden = true; + warnText.textContent = ''; + } else { + warnElem.hidden = false; + warnText.textContent = text; + } + }, setRecipient: userId => { for(const field of form.elements) if(field.name === 'recipient') { diff --git a/src/Messages/MessagesRoutes.php b/src/Messages/MessagesRoutes.php index 6938bc7..3398116 100644 --- a/src/Messages/MessagesRoutes.php +++ b/src/Messages/MessagesRoutes.php @@ -174,6 +174,7 @@ class MessagesRoutes extends RouteHandler { return [ 'id' => $userInfo->getId(), 'name' => $userInfo->getName(), + 'ban' => $this->usersCtx->hasActiveBan($userInfo), 'avatar' => $this->urls->format('user-avatar', [ 'user' => $userInfo->getId(), 'res' => 200, diff --git a/templates/messages/compose.twig b/templates/messages/compose.twig index 7b4fda6..e32b206 100644 --- a/templates/messages/compose.twig +++ b/templates/messages/compose.twig @@ -40,6 +40,11 @@
{{ input_hidden('recipient', '') }} +
{{ input_text('title', 'messages-reply-subject-input', '', 'text', 'Subject', true) }}