1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-12-02 19:52:44 +01:00
phorge-phorge/src/applications
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
..
almanac Convert complex query subclasses to use internal cursors 2019-03-19 13:02:16 -07:00
aphlict Add a CLI workflow for testing that notifications are being delivered 2018-12-10 16:05:53 -08:00
arcanist/conduit
audit Fix missing link targets for "View Object" header buttons in HTML email 2019-06-18 13:20:56 -07:00
auth Fix transaction title rendering for AuthenticationConfigs 2019-07-17 12:41:00 -07:00
badges Convert simple query subclasses to use internal cursors 2019-03-19 13:00:27 -07:00
base Don't show a "Manage" button in Legalpad if the user is signing a TOS document 2019-03-25 11:30:46 -07:00
cache Remove an old digest in Celerity code and some obsolete configuration options 2019-01-04 13:43:38 -08:00
calendar Convert simple query subclasses to use internal cursors 2019-03-19 13:00:27 -07:00
celerity Fix "Actions" button on Phame standalone/live pages (bonus: JX.sprintf()) 2019-04-04 06:10:14 -07:00
chatlog Replace "getRequestURI()->setQueryParams(array())" with "getPath()" 2019-02-12 14:43:33 -08:00
conduit Fix an exception with user cache generation in "bin/conduit call --as <user>" 2019-03-07 11:48:24 -08:00
config Remove "phd.pid-directory" configuration and stop passing "piddir" to daemons 2019-06-24 11:28:58 -07:00
conpherence Improve Conpherence behavior for logged out users. 2019-04-02 14:03:08 -07:00
console Fix some minor errors (DarkConsole warning, unstable Ferret sort) 2018-03-18 15:12:25 -07:00
countdown Convert simple query subclasses to use internal cursors 2019-03-19 13:00:27 -07:00
daemon Fix a bad call to "writeInfo()" in "bin/phd stop" with no PHABRICATOR_INSTANCE defined 2019-07-12 09:15:17 -07:00
dashboard Consolidate burndown logic into a "BurndownChartEngine" 2019-05-22 05:10:42 -07:00
differential Fix missing link targets for "View Object" header buttons in HTML email 2019-06-18 13:20:56 -07:00
diffusion Remove "unstable" status and T2784-specific warning message 2019-07-15 14:05:26 -07:00
diviner Convert simple query subclasses to use internal cursors 2019-03-19 13:00:27 -07:00
doorkeeper Recognize self-URI links to Diffusion files and give them special rendering behavior 2019-05-21 13:07:37 -07:00
draft/storage When purging drafts after a transaction edit, purge all drafts 2018-02-11 06:01:09 -08:00
drydock Fix two straggling pagination issues in Drydock 2019-05-23 18:50:06 -07:00
fact Stack chart functions in a more physical way 2019-05-22 05:40:39 -07:00
favorites Make "Favorites" work more like other customizable menus 2019-04-09 13:59:35 -07:00
feed Support export of feed transactions to CSV/Excel/etc 2019-05-21 12:47:46 -07:00
files Make "bin/files" parsing of working set arguments more consistent 2019-06-24 16:02:39 -07:00
flag Fix paging fatal with flagged objects 2019-07-05 14:25:06 -07:00
fund Improve UI/UX when users try to add an invalid card with Stripe 2019-02-09 05:54:42 -08:00
guides Remove legacy "DashboardInstall" table 2019-04-14 10:27:52 -07:00
harbormaster Update "phabricator/" for "topological" API changes 2019-06-20 16:11:56 -07:00
help Redesign header menus and search 2017-01-17 12:13:06 -08:00
herald Modularize PhabricatorEditEngineConfigurationTransaction 2019-06-20 16:25:21 -07:00
home Make "Favorites" work more like other customizable menus 2019-04-09 13:59:35 -07:00
legalpad Don't show a "Manage" button in Legalpad if the user is signing a TOS document 2019-03-25 11:30:46 -07:00
lipsum Add "--force" and "--quickly" flags to bin/lipsum 2017-02-27 09:09:41 -08:00
macro Improve timeline rendering for old macros 2019-04-18 18:25:17 -07:00
maniphest Move "BoardResponseEngine" toward a more comprehensive update model 2019-07-17 13:13:15 -07:00
meta Recognize self-URI links to Diffusion files and give them special rendering behavior 2019-05-21 13:07:37 -07:00
metamta Don't count "Cc: x@y.com" as a legitimate recipient if the user who has "x@y.com" attached to their account has not verified the address 2019-06-19 12:51:00 -07:00
multimeter Fix a PhutilURI issue in Multimeter 2019-02-17 17:39:34 -08:00
notification Add "Move Left" and "Move Right" to dashboard tab panels 2019-05-01 15:35:53 -07:00
nuance Remove "getApplicationTransactionObject()" from ApplicationTransactionInterface 2018-12-20 15:16:19 -08:00
oauthserver Lightly modernize OAuth server application view pages 2019-07-02 05:15:37 -07:00
owners Fix an issue in Owners where a transaction change could show too many effects 2019-06-20 16:08:31 -07:00
packages Remove "getApplicationTransactionObject()" from ApplicationTransactionInterface 2018-12-20 15:16:19 -08:00
passphrase Make the default behavior of getApplicationTransactionCommentObject() "return null" instead of "throw" 2019-02-07 14:56:38 -08:00
paste Remove "metamta.*.subject-prefix" options 2019-01-17 19:18:50 -08:00
people Fix some overlooked profile menu construction callsites 2019-04-09 14:47:44 -07:00
phame Fix "Actions" button on Phame standalone/live pages (bonus: JX.sprintf()) 2019-04-04 06:10:14 -07:00
phid Update search indexes for Dashboards and Panels to Ferret, plus various minor fixes 2019-04-14 10:28:19 -07:00
phlux Convert simple query subclasses to use internal cursors 2019-03-19 13:00:27 -07:00
pholio Fix "add more metadata" fatal in Pholio 2019-07-11 15:55:56 -07:00
phortune Consider "all account members are disabled" to be a permanent failure when billing a Phortune subscription 2019-06-24 15:29:31 -07:00
phpast
phragment Update many Phabricator queries for new %Q query semantics 2018-11-15 03:48:10 -08:00
phrequent Convert simple query subclasses to use internal cursors 2019-03-19 13:00:27 -07:00
phriction When creating a Phriction document, mark initial transactions as "create" transactions to fix weird email 2019-05-22 16:28:25 -07:00
phurl Convert simple query subclasses to use internal cursors 2019-03-19 13:00:27 -07:00
policy Test for "CAN_INTERACT" on comment edits in a way that survives objects which only implement "CAN_VIEW" 2019-05-28 10:14:43 -07:00
ponder Fix a missing pht() in Ponder 2019-04-12 12:18:56 -07:00
project Move "BoardResponseEngine" toward a more comprehensive update model 2019-07-17 13:13:15 -07:00
releeph Convert simple query subclasses to use internal cursors 2019-03-19 13:00:27 -07:00
remarkup Recognize self-URI links to Diffusion files and give them special rendering behavior 2019-05-21 13:07:37 -07:00
repository Update "phabricator/" for "topological" API changes 2019-06-20 16:11:56 -07:00
search Remove the "search_documentfield" table 2019-05-23 19:11:38 -07:00
settings Fix more "msort()" vs "msortv()" callsites 2019-06-18 11:36:22 -07:00
slowvote Fix two very, very minor correctness issues in Slowvote 2019-02-07 12:45:11 -08:00
spaces Make the default behavior of getApplicationTransactionCommentObject() "return null" instead of "throw" 2019-02-07 14:56:38 -08:00
subscriptions Index and show Owners packages affected by Herald rules 2019-04-17 12:17:30 -07:00
support/application
system Allow objects to specify custom policy unlocking behavior, and tasks to have owners unlocked 2019-03-07 12:27:11 -08:00
tokens Allow tokens to be awarded to MFA-required objects 2018-12-28 00:14:48 -08:00
transactions Update one straggling "CAN_INTERACT" check in comment removal 2019-07-11 16:09:52 -07:00
typeahead Make Portals indexable with Ferret 2019-04-10 13:33:54 -07:00
uiexample Reduce the cost of generating default user profile images 2018-03-01 16:53:17 -08:00
xhprof Allow XHProf profiles to be drag-and-dropped to upload them 2017-02-23 11:16:19 -08:00