1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-12-23 14:00:56 +01:00
phorge-phorge/webroot/rsrc/js/application
epriestley 1ee6ecf397 Move "BoardResponseEngine" toward a more comprehensive update model
Summary:
Depends on D20639. Ref T4900. Currently, "BoardResponseEngine" has a `setObjectPHID()` method. This is called after edit operations to mean "we just edited object X, so we know it needs to be updated".

Move toward `setUpdatePHIDs(...)` in all cases, with `setUpdatePHIDs(array(the-object-we-just-edited))` as a special case of that. After this change, callers pass:

  - An optional list of PHIDs they know need to be updated on the client. Today, this is always be a card we just edited (on edit/move flows), or a sort of made-up list of PHIDs for the moment (when you press "R"). In the future, the "R" endpoint will do a better job of figuring out a more realistic update set.
  - An optional list of PHIDs currently visible on the client. This is used to update ordering details and mark cards for removal. This is currently passed by edit/move, but not by pressing "R" (it will be in the future).
  - An optional list of objects. The "R" workflow has to load these anyway, so we can save a couple queries by letting callers pass them. For now, the edit/move flows still rely on the engine to figure out what it needs to load.

This does very little to actually change client behavior, it mostly just paves the way for the next update to the "R" workflow to make it handle add/remove cases properly.

Test Plan:
  - Edited and moved cards on a workboard.
  - Pressed "R" to reload a workboard.

Neither of these operations seem any worse off than they were before. They still don't fully work:

  - When you edit a card and delete the current workboard project from it, it remains visible. This is also the behavior on `master`. This is sort of intentional since we don't necessarily want to make these cards suddenly disappear? Ideally, we would probably have some kind of "tombstone" state where the card can still be edited but can't be dragged, and the next explicit user interaction would clean up old tombstones. This interaction is very rare and I don't think it's particularly important to specialize.
  - When a card is removed from the board, "R" can't currently figure out that it should be removed from the client. This is because the client does not yet pass a "visiblePHIDs" state. It will in an upcoming change.
  - The "R" flow always sends a full set of card updates, and can not yet detect that some cards have not changed.
  - There's a TODO, but some ordering stuff isn't handled yet.

Reviewers: amckinley

Reviewed By: amckinley

Maniphest Tasks: T4900

Differential Revision: https://secure.phabricator.com/D20652
2019-07-17 13:13:15 -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 Move "BoardResponseEngine" toward a more comprehensive update model 2019-07-17 13:13:15 -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