Page MenuHomePhabricator

Conpherence - introduce ConpherenceThreadManager
ClosedPublic

Authored by btrahan on Mar 9 2015, 8:35 PM.
Tags
None
Referenced Files
F14064088: D12029.id28953.diff
Mon, Nov 18, 9:45 PM
F14063209: D12029.diff
Mon, Nov 18, 5:19 PM
F14052946: D12029.diff
Fri, Nov 15, 11:44 AM
F14040367: D12029.diff
Mon, Nov 11, 9:40 AM
F14024967: D12029.diff
Thu, Nov 7, 1:45 PM
F14018162: D12029.id28953.diff
Tue, Nov 5, 5:31 AM
F13998629: D12029.diff
Thu, Oct 24, 10:20 AM
F13992053: D12029.id.diff
Tue, Oct 22, 2:08 PM
Subscribers

Details

Summary

Ref T7014. Fixes T7473. This adds a class to handle thread state about what thread is loaded and what transaction we've seen last. It is deployed 100% in the durable column and only partially deployed in the regular view. Future diff(s) should clean up regular view. Note ConpherenceThreadManager API might change a bit at that time.

Also includes a bonus bug fix so logged out users can't toggle this column

Test Plan

tried to use durable column while logged out and nothing happened. sent messages, aphlict-received messages, added people, and changed title from both views

Diff Detail

Repository
rP Phabricator
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

btrahan retitled this revision from to Conpherence - introduce ConpherenceThreadManager.
btrahan updated this object.
btrahan edited the test plan for this revision. (Show Details)
btrahan added a reviewer: epriestley.
src/view/page/PhabricatorStandardPageView.php
85–90

we need this because the JX.ConpherenceThreadManager is a singleton, so we don't want to init it twice.

webroot/rsrc/js/application/conpherence/behavior-durable-column.js
73–76

I can't seem to scroll the area in JS?

epriestley edited edge metadata.

At some point, it might be worth separating this out so it works like this:

  • ConpherenceUIManager (or whatever) handles overall UI state -- this part might vary between Conpherence and the Column.
  • ConpherneceThreadManager handles just one thread and doesn't interact with the DOM much.
  • ConpherenceUIManager has a bunch of ConpherenceThreadManager objects to track loaded threads.

In particular, I can imagine possibly wanting to do things like:

  • If you receive a message for a thread you aren't currently looking at, we still load it so if you click over to that thread it's immediately available without needing an ajax call.

That seems easier if each thread's state is held in some object for the thread.

This revision is now accepted and ready to land.Mar 9 2015, 8:48 PM
webroot/rsrc/js/application/conpherence/behavior-durable-column.js
73–76

We need to put a scrollTo() method on JX.Scrollbar, then you need to save the object and call scrollbar.scrollTo(...) to scroll it. The scrollable node may or may not be the toplevel frame node.

This revision was automatically updated to reflect the committed changes.