1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-11-13 18:32:41 +01:00
phorge-phorge/webroot/rsrc/js/application
epriestley ab2aa74d6e Fix several duplication/replay behaviors in Aphlict
Summary:
Ref T12566. Ref T12563. This fixes three bugs with Aphlict replay stuff:

First, Conphernece would try to repaint the UI even if no thread was open. Only repaint when a thread is open.

Second, although we deduplicate JX.Leader messages, we didn't deduplicate actual notification messages. If you browsed the leader window, then it re-elected itelf as a leader and replayed history, it could rebroadcast notifications and other windows could show doubles. Deduplicate notifications to prevent this.

Third, we always replayed the last 60 seconds of history. When you browsed the leader window, whichever window became the new leader (possibly the one you just browsed) could replay messages from before it had opened, leading to duplicate messages. Particularly, after receiving a message and then browsing you could see that message again. Instead, only replay history as far back as when the window first opened.

Test Plan:
  - Clicked "Repaint" with a thread open, saw a repaint. Clicked "Repaint" with Conpherence open but no thread, no repaint and no 404 request to `/update/null/`.
  - In browser A, opened three windows. In browser B, sent a notification. In browser A, browsed the leader window away twice in a row. Observed that the window which never became a leader doesn't duplicate notifications.
  - In browser A, opened three windows. In browser B, sent a notification. In browser A, browsed the leader window away over and over again. Observed that replay requests issued with appropriate history windows.

Reviewers: chad

Reviewed By: chad

Maniphest Tasks: T12566, T12563

Differential Revision: https://secure.phabricator.com/D17722
2017-04-18 12:10:12 -07:00
..
aphlict Fix several duplication/replay behaviors in Aphlict 2017-04-18 12:10:12 -07:00
calendar Remove obsolete Calendar event date storage fields 2016-11-02 09:49:08 -07:00
config Fix custom field selector control in cases where the user doesn't edit anything 2015-05-25 05:34:23 -07:00
conpherence Fix several duplication/replay behaviors in Aphlict 2017-04-18 12:10:12 -07:00
countdown Define JavaScript functions before they are used 2014-12-30 02:53:32 -08:00
daemon Execute Maniphest batch edits in the background with a web UI progress bar 2015-06-23 13:36:16 -07:00
dashboard Restrict movable panels to non-tab panels 2017-02-14 14:15:59 -08:00
diff Make "View" links on Differential inline comment previews work again 2017-01-02 13:24:02 -08:00
differential Use EditEngine stacked comments in Diffusion 2017-01-11 14:46:48 -08:00
diffusion Improve "thread" rendering of unusually-shaped graphs 2016-07-01 11:15:24 -07:00
doorkeeper Various linter fixes. 2014-02-26 12:44:58 -08:00
drydock Show a more reasonable status element for pull requests 2015-10-21 11:28:26 -07:00
files Remove defunt project image choices 2016-01-19 08:50:59 -08:00
herald Fix an initialization issue in Herald rules in Chrome 2016-03-22 09:13:51 -07:00
maniphest Reorganize phui-object-item CSS, add drag ui 2016-12-14 11:53:17 -08:00
owners Change double quotes to single quotes in JavaScript. 2014-06-24 03:35:39 +10:00
passphrase Rename Passphrase credential control JS 2015-03-02 13:01:00 -08:00
pholio Allow Pholio mocks to be created and edited without drag-and-drop 2016-06-09 08:43:38 -07:00
phortune Don't try to access the Stripe object until the user submits the credit card form 2017-02-10 08:40:14 -08:00
policy De-garbage the horrible garbage project section of the policy selection control 2016-02-05 09:50:06 -08:00
projects On workboards, provide all of the supported "create task" forms in the dropdown 2017-03-02 04:24:40 -08:00
releeph Make scrolling happen relative to the main content frame 2015-01-25 08:42:40 -08:00
repository Symbol Search: Allow ctrl-click with no hover 2015-08-27 04:17:38 -07:00
search Allow profile menu items to be reordered 2016-01-13 11:45:57 -08:00
slowvote Replace the primary scrollbar with a fake one to prepare for a persistent chat column 2015-01-23 13:29:15 -08:00
transactions When a transaction has no quote ref, render "@user wrote:" properly 2017-04-18 09:51:53 -07:00
typeahead Implement viewer() and members(project) typeahead functions 2015-04-17 11:06:58 -07:00
uiexample Use window.confirm instead of confirm 2014-12-30 02:55:12 -08:00