Page MenuHomePhabricator

Annouce Persistent Chat option in Conpherence
Closed, DuplicatePublic

Assigned To
None
Authored By
chad
Jan 22 2015, 9:52 PM
Referenced Files
F330926: pasted_file
Mar 5 2015, 6:43 PM
F330918: Screen_Shot_2015-01-23_at_3-1.52.10_PM.png
Mar 5 2015, 6:40 PM
F328021: imgres.jpg
Mar 3 2015, 3:57 AM
F319556: Screen_Shot_2015-01-23_at_3.52.10_PM.png
Feb 26 2015, 12:11 AM
F273855: persistent_v2.png
Jan 23 2015, 12:37 AM
F273848: Screen_Shot_2015-01-22_at_4.00.54_PM.png
Jan 23 2015, 12:04 AM
F273850: Screen_Shot_2015-01-22_at_4.01.03_PM.png
Jan 23 2015, 12:04 AM
F273802: pasted_file
Jan 22 2015, 9:58 PM
Tokens
"The World Burns" token, awarded by joshuaspence."Like" token, awarded by johnny-bit."Like" token, awarded by btrahan."Like" token, awarded by qgil.

Description

This task now just represents letting the good people know we've shipped...!

persistent_v2.png (1×1 px, 370 KB)

Been thinking about this for a few weeks, put together a mock for how it'd work in Conpherence v2 land. Essentially, give users the option to have a Conpherence Sidebar with whatever current room they'd like to have open (along with easy switching). This would persist everywhere in Phabricator (I'd imagine I would have a bit of CSS work to do) and give Phabricator a more connected feel. When combined with Workboards, you start to have an everything in-one-place environment for quick scrums / agile planning. In a Chatlog is gone v2 world, we have a simple means of having Phabricator and the Support Channels open on one screen (screen width depending).

Room Switching:

Screen_Shot_2015-01-23_at_3.52.10_PM.png (910×996 px, 190 KB)

Related Objects

Event Timeline

There are a very large number of changes, so older changes are hidden. Show Older Changes
chad triaged this task as Normal priority.Jan 23 2015, 5:44 PM

I don't really think T7025 blocks this? The list of conpherences in the persistent pane is just the most recent ones like it is in the notification bubble.

If that's the agreed upon UI, I didn't think it everyone was onboard yet.

Basically, we have to have a solution for Pinned Conpherences, and can plan backwards from there. If what I designed is essentially cool and ready to go, then this isn't blocked anymore.

My take on this is that we should build this UI first:

Screen_Shot_2015-01-23_at_3.52.10_PM.png (910×996 px, 190 KB)

...and the actual rule for how things get in there doesn't matter. v0 should just use the existing rule or pick them at random or something. Then we can decide whether we really want pinning, how much control users get over adding/rearranging/dismissing, what lets conpherences "ping" or jump into or around the bar, etc.

I removed the old switcher UI from the description for clarity, assume ^^ is the switcher moving forward.

I was still a little confused post this discussion so I broke out another task. To me its just a "how can I build this in smaller chunks?" sort of thing and practically speaking it should all come out relatively at the same time for users. We can keep the persistent chat thing hidden / buried for as long as folks want for it to hit quality standards.

This has been a struggle 'cuz I am the bad at the JS and its kind of everything all at once, but I like how its turning out. I've basically gone with a much simpler model than the craziness that is Conpherence as we know it today.

Should have a diff tomorrow.

See D11968 for a good summary of whats still to come here / blatantly broken at this time. :D

@chad - product questions from me:

  • is the menu dropdown the correct UI? (the thing to pick between thread, people, files, etc)
    • kind of broken now and I don't want to over invest in fixing it if its totally wrong
  • what do users with no conpherences see when they toggle the persistent chat?
  • what happens when you navigate to the actual conpherence application but have the sticky chat open?
  • what happens on mobile / tablet / when you resize the window?

There's more diffs to come here... Next few will probably be

  • make clicking the conpherence title pop a dialogue to set the title a la /conherence/
  • draft support (note toggling the column persists what the user has entered; loading a new conpherence blows it away as no draft is ever saved to the server)
  • fix menu dropdown

I'll see if I can figure out the scrollbar thing once I get to a good breakpoint on T2009.

(Unless you managed to fix that.)

I don't believe there is a widget-picker in the durable column designs. It should just be a chat column.

Haha -- what did you mean for the "=" menu to do? @btrahan and I both assumed that was widgets.

Screen_Shot_2015-01-23_at_3-1.52.10_PM.png (910×996 px, 190 KB)

Anyway, it's a widget picker for now!

is the menu dropdown the correct UI? (the thing to pick between thread, people, files, etc)

Should only exist in full Conpherence.

kind of broken now and I don't want to over invest in fixing it if its totally wrong

No worries! (though delete it if it made it in there, sorry if that menu wasn't specific as to it's function). I built in into the Photoshop mock, but I don't think I put the interaction up on here. It's really a settings menu for the Conpherence itself.

pasted_file (312×321 px, 60 KB)

what do users with no conpherences see when they toggle the persistent chat?

For now just "New Message" like in Conpherence, but we'll probably expand this to joinable rooms in the future.

what happens when you navigate to the actual conpherence application but have the sticky chat open?

The panel should disappear.

what happens on mobile / tablet / when you resize the window?

The panel should disappear.

Oh, looks like you did get the scrollbar working (at least, works for me).

I still don't have the scrollbar working locally... Do you need a mouse plugged in or something?

Oh, let me try without a mouse.

Working fine for me with or without a mouse in Chrome + Safari...

I still can't get the scrolling to work anywhere. :/

Next diffs in no particular order

  • write a js class to handle state stuff as opposed to duplicate code across behaviors
  • draft support (note toggling the column persists what the user has entered; loading a new conpherence blows it away as no draft is ever saved to the server)
  • support resize events (when tablet or mobile, durable column should close. we should react in js and hide stuff in css too.)
  • new user UI ("Create message" like in normal conpherence)
  • fix when you navigate to conpherence via other UI with durable column open (currently a 404 error..!)

Not sure if you guys have seen this before:

[06-Mar-2015 12:06:51 Australia/Sydney] [2015-03-06 12:06:51] EXCEPTION: (RuntimeException) Undefined variable: transaction at [<phutil>/src/error/PhutilErrorHandler.php:210]
[06-Mar-2015 12:06:51 Australia/Sydney] arcanist(head=master, ref.master=c36b4ceb1849), phabricator(head=master, ref.master=9564b0a40e88), phlab(head=master, ref.master=4689d11dbe69), phutil(head=master, ref.master=eaa6ebecef8e)
[06-Mar-2015 12:06:51 Australia/Sydney]   #0 PhutilErrorHandler::handleError(integer, string, string, integer, array) called at [<phabricator>/src/applications/conpherence/view/ConpherenceTransactionView.php:197]
[06-Mar-2015 12:06:51 Australia/Sydney]   #1 ConpherenceTransactionView::renderTransactions(PhabricatorUser, ConpherenceThread, boolean) called at [<phabricator>/src/applications/conpherence/controller/ConpherenceUpdateController.php:315]
[06-Mar-2015 12:06:51 Australia/Sydney]   #2 ConpherenceUpdateController::loadAndRenderUpdates(string, string, integer) called at [<phabricator>/src/applications/conpherence/controller/ConpherenceUpdateController.php:150]
[06-Mar-2015 12:06:51 Australia/Sydney]   #3 ConpherenceUpdateController::processRequest() called at [<phabricator>/src/aphront/AphrontController.php:33]
[06-Mar-2015 12:06:51 Australia/Sydney]   #4 AphrontController::handleRequest(AphrontRequest) called at [<phabricator>/src/aphront/configuration/AphrontApplicationConfiguration.php:196]
[06-Mar-2015 12:06:51 Australia/Sydney]   #5 AphrontApplicationConfiguration::processRequest(AphrontRequest, PhutilDeferredLog, AphrontPHPHTTPSink) called at [<phabricator>/src/aphront/configuration/AphrontApplicationConfiguration.php:121]
[06-Mar-2015 12:06:51 Australia/Sydney]   #6 AphrontApplicationConfiguration::runHTTPRequest(AphrontPHPHTTPSink) called at [<phabricator>/webroot/index.php:19]

My current TODO list is...

  • support resize events (when tablet or mobile, durable column should close. we should react in js and hide stuff in css too.)

Once I get this done I'll close this and future work can go in T7531.

@chad - other than being blocked by T7539 and T7529, what do you think is left in this task? I think other things have their own task (e.g. T7380) My inclination is to just close it and try the blocking tasks next since the work here is done as I see it.

I added one Quicksand task, which is a pretty bad experience, buuut maybe that doesn't really block this closing. Since this feature is already in the wild, closing it to me means being able to "announce" it and not feel like the experience of using it is broken. Everything else remaining falls under polish.

Quicksand is going to take a long time to sort out sufficiently -- I expect we're a minimum of 2-3 weeks away from making this public/announced, since I'm probably not even going to start working on it until later next week at the very earliest.

btrahan renamed this task from Enable Persistent Chat option in Conpherence to Annouce Persistent Chat option in Conpherence.Mar 12 2015, 8:04 PM
btrahan removed btrahan as the assignee of this task.
btrahan updated the task description. (Show Details)