1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-12-03 20:22:46 +01:00
phorge-phorge/webroot/rsrc/js/application
epriestley 17caecdda3 Make workboard real-time updates mostly work
Summary:
Depends on D20654. Ref T4900. When a task is edited, emit a "workboards" event for all boards it appears on (in a future change, this should also include all boards it //previously// appeared on, and all parents of both sets of boards -- but I'm just getting things working for now).

When we receive a "workboards" event, check if the visible board should be updated.

Aphlict has a complicated intra-window leader/follower election system which could let us process this update event exactly once no matter how many windows a user has open with the same workboard. I'm not trying to do any of this since it seems fairly rare. It makes sense for events like "you have new notifications" where we don't want to generate 100 Ajax calls if the user has 100 windows open, but very few users seem likely to have 100 copies of the same workboard open.

Test Plan:
  - Ran `bin/aphlict debug`.
  - Opened workboard A in two windows, X and Y.
  - Edited and moved tasks in window X.
  - Saw "workboards" messages in the Aphlict log.
  - Saw window Y update in nearly-real-time (locally, this is fast enough that it feels instantaneous).

Then:

  - Stopped the Aphlcit server.
  - Edited a task.
  - Started the Aphlict server.
  - Saw window Y update after a few moments (i.e., update in response to a reconnect).

Reviewers: amckinley

Reviewed By: amckinley

Maniphest Tasks: T4900

Differential Revision: https://secure.phabricator.com/D20656
2019-07-18 10:00:17 -07:00
..
aphlict Correct the behavior of "Desktop Only" in Notifications preferences 2018-03-16 15:17:49 -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 spelling 2017-10-09 10:48:04 -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 Reduce drag-and-drop jank on dashboards 2019-04-17 12:20:44 -07:00
diff Correct various minor diff copy behaviors 2019-02-19 15:18:45 -08:00
differential Remove an old Differential selection behavior 2019-02-20 10:09:34 -08:00
diffusion When drawing a very wide graph line diagram, smush it together a bit 2019-03-28 21:18:52 -07:00
doorkeeper Allow Doorkeeper references to have multiple display variations (full, short, etc.) 2018-03-13 11:29:52 -07:00
drydock Show a more reasonable status element for pull requests 2015-10-21 11:28:26 -07:00
fact Provide chart function labels over the wire instead of making them up 2019-05-22 05:22:59 -07:00
files Add a view option to disable blame in Diffusion and fix some view transition bugs 2018-04-30 15:32:23 -07:00
harbormaster Fix an issue in the new Harbormaster build log view where clicking the "^" icon doesn't work right 2018-04-27 11:51:59 -07:00
herald Remove 750ms timeout on owners path validation 2018-08-13 13:52:26 -07:00
maniphest Remove the legacy chart behavior from Maniphest 2019-05-22 04:48:24 -07:00
owners Use a tokenizer, not a gigantic poorly-ordered "<select />", to choose repositories in Owners 2018-03-07 20:57:24 -08:00
passphrase Rename Passphrase credential control JS 2015-03-02 13:01:00 -08:00
pholio Fix spelling 2017-10-09 10:48:04 -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 Make workboard real-time updates mostly work 2019-07-18 10:00:17 -07:00
releeph Make scrolling happen relative to the main content frame 2015-01-25 08:42:40 -08:00
repository Remove hidden zero-width spaces affecting copy behavior 2019-02-19 15:10:04 -08:00
search Allow profile menu items to be reordered 2016-01-13 11:45:57 -08:00
transactions Pass timeline view data to comment previews, restoring Differential comment previews 2019-01-03 13:06:54 -08:00
trigger Improve trigger editor behavior when switching to/from tokenizers 2019-04-17 12:24:23 -07:00
typeahead Implement viewer() and members(project) typeahead functions 2015-04-17 11:06:58 -07:00
uiexample Remove some old UIExamples 2017-05-30 18:00:28 -07:00