説明
Some organizations require a message explaining why a topic was resolved, and it would be helpful to have a Zulip feature for enforcing that norm.
Setting
We should add a new setting:
- Where: Settings / Organization permissions > Moving messages , just below "Who can resolve topics".
- Label: Topic resolution message (dropdown setting)
- Options: Not required [default], Optional, Required
How it works
When a topic resolution message is required, clicking the resolution checkmark should:
- Open the compose box with that topic as the destination, saving any prior content as a draft if needed.
- Show a blue banner explaining what's up (exact wording TBD):
To resolve this topic, enter a resolution message.
- We should have a minimum character count, and the "send" button should be disabled if the message is too short, with a tooltip: "Resolution message must be {N}+ characters."
- Once the minimum character count is reached, the "Send" button tooltip should be "Resolve topic".
- Sending the message should trigger a Notification Bot message, rather than a message from the user:
@_Desdemona|9 has marked this topic as resolved with the following message:
{user's message in a quote block}
Closing the compose box should clear the "I'm resolving this topic" state.
When a resolution message is optional
In this case, the banner should have a [Resolve without a message] button. This should resolve the topic, and clear the special resolution state for the compose box.
Everything else can be the same as above.
Questions
- Should a message be required to unresolve a topic? Probably not?
Notes
I guess we should just turn off topic resolution via the move topic UI when this setting is "required", with an appropriate error message.
Follow-ups
- We should plan to implement a per-channel version of this setting, perhaps as a drop-down that adds an "Automatic" option to follow org-wide settings.
- There could be an additional compose UI for entering the topic resolution flow, perhaps.
CZO thread: #feedback > Feature request - Mark as Resolved dialog