Fixes T11623. Enables send-on-enter and shift-enter for linebreaks, per durable column. Also cleaned up UI for Joining Room or Logging In.
Details
- Reviewers
epriestley - Maniphest Tasks
- T11623: Make Conpherence send text with bare return key, like a chatroom
- Commits
- rP700666ae0a98: Make Conpherence Pontificate Send-on-Enter
See room I can join, click Join Room. Leave Room, Log out, visit room with login prompt. Login, Join Room again.
Diff Detail
- Repository
- rP Phabricator
- Lint
Lint Not Applicable - Unit
Tests Not Applicable
Event Timeline
I haven't actually patched this locally, but it's replacing "just send a message" with a "join room" button but no opportunity to write a message until you do?
I'm fine with that, but it's the solution I would expect to this problem:
Users are complaining that they are surprised that writing messages automatically causes them to join rooms.
But I don't think that's a problem we have, and I'm not entirely sure what problem this is trying to solve. It seems a little weird to me to not be able to write a message immediately if clicking the button otherwise would let me write a message.
I could imagine being hesitant to click the button unless I'm sure I have, e.g., a good question to ask, since I don't want everyone to get "join + leave" notifications if I decide not to say anything. That could lead to me opening up a new text document, writing my message there, then copy/pasting it into Conpherence, which feels weird. I don't know if that's a real issue, but my decision about whether or not I want to join a room would reasonably depend on having already written a message at least some of the time.
Is the problem we're trying to solve this one, instead?
If users just want to follow a room but don't have anything to say yet, it isn't obvious how to do that.
If so, maybe we could put a "Join Room" button in the upper right above the users list? Although I guess we hide that by default now. But maybe in the top menu or something?
On this specifically, we should likely be sharing this code but I expect a lot of rewriting to occur anyway when Conpherence v4 gets more of the pipeline and this doesn't materially dig us any deeper into things.
I think it's more confusing to have a text area and button that says "join room". It's not clear it's optional. I can't find other software that offers that same functionality so I think the two-step process is likely fine.
Unless there is some state I'm not considering? I assume adding someone sets them as joined.
I think sending a message should join the room, but it's slightly confusing/undesirable to me to not be able to compose a message prior first.
That is, the behavior I'd most prefer is:
- If you can join or have joined, the text area is available for composing a message (so I can compose a question that I'm happy with before making the decision to actually join the room and ask it).
- Button always says normal words ("Send Message").
- Sending a message autojoins the room if you haven't joined yet.
Then, if we believe we have the second problem (users wanting to join without saying anything):
- When viewing a room you haven't joined yet, a separate "Join Room" button appears somewhere.
I'm not sure we really have that problem, though. Alternate fix here might just be to keep the behavior as it is today and make the button always say "Send Message", until we get more feedback that users are having trouble figuring out how to join a room they don't want to write anything to?
I think this is fine to land in any case.
The problem it's solving is getting people into a room as quickly and obviously as possible.
At least personally, I think this UI is slightly worse for that in cases where I want to join a room in order to ask a question, which I think is somewhat common. Specifically, it adds more steps to the flow ("Join Room", then "Send Message" instead of just "Send Message") and requires me to commit to joining the room before I can write my question.
(It also slightly obscures the flow for writing a message at all -- although I would expect that "Join Room" would almost certainly lead to the ability to write a message, I could also imagine an interaction where "Join Room" just means "Follow Conversation" and doesn't let me write anything. I might not click the button at all if I wasn't sure.)
I am less likely to click "Join Room" without having a message already. If I click "Join Room", then start typing a message and figure out the answer on my own, I'll feel like a little I notified everyone pointlessly (I don't have any particular expectation about what notification rules are, but I expect "Join Room" to at least notify some users in some sense, and today this notification is a relatively loud one). This also teaches other users that "X has joined the room" means "X is about to ask a question", which I think tends to set up a "oh, I should wait for the question then I guess" mindset, but I think this just makes the software more synchronous and anxiety-producing to no real benefit.
I also can't immediately recall any feedback from users that they're having difficulty joining rooms or finding the process onerous (maybe I'm just misremembering)?
Overall, this feels to me like we're forcing the user make more choices to no real benefit, and basically putting a barrier to participation in place where we didn't have one before.
I think this is quicker and easier if you only want to follow a conversation, but it feels like we're optimizing for the read-only use case ("get as many people into the room as possible") over the read/write use case ("make it easy to participate in a conversation or ask a question"). Maybe that's the right product approach, but it feels like it's driving in the other direction from, e.g., T11308, which is a read-write use case, and I'd generally assume we care about making it easy to actually chat more than we care about making it easy to follow/subscribe.
Put another way, this has, from my perspective, replaced a box for chatting with a follow button that unlocks a box for chatting. Feels like a weird barrier to me, not a streamlining of the workflow.
Or, more constructively: why do you favor this over putting a separate "JOIN ROOM" button in the header if you haven't joined a room yet?
To me, that feels quicker and easier in both cases: if I want to ask a question, I just start typing it. If I want to follow, there's an easy button to click.
(It could possibly replace "Room Preferences", which currently just pops a dialog saying "this does nothing until you join a room", although I could imagine we might let you have preferences for rooms you haven't joined eventually.)
(Obviously, that's harder to implement.)
I dont think that workflow is common, in fact I'd say for corporations it's near non existent. Removing the send button makes the product more confusing in this regard. People familiar with similar software will expect to need to join to post, making the text area confusing. We could add to header but the additional space there was intended for search.
I do have some other rough ideas to do what you ask like adding a little "status" message under the text area for messages, overall I want to push joining a lot more. The common workflow from what I've seen is user joins company or project, sees what open rooms there are, previews them for interest, then joins. I don't generally expect searching for rooms and question adding to be very common.
src/applications/conpherence/controller/ConpherenceController.php | ||
---|---|---|
111–123 | What's the shortest path to have this POST instead of GET, since we're doing a write? Do we have a one-button form somewhere like setRenderAsForm I'm not finding? |