1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-12-25 23:10:57 +01:00
phorge-phorge/webroot/rsrc/externals/javelin/lib
epriestley 248d79f36d Fix "Actions" button on Phame standalone/live pages (bonus: JX.sprintf())
Summary:
See <https://discourse.phabricator-community.org/t/non-functional-actions-menu-on-live-phame-views/2593>. Several layers here:

The "Actions" button is broken because a menu behavior is failing, since we aren't rendering the menu.

When a behavior fails to initialize, catch and log the exception and continue. Previously, we stopped initializing behaviors if any failed, but behaviors are usually independent and continuing with an explicit exception seems reasonable.

Give "JX.log()" some "sprintf()" semantics to make logging the behavior failure easier. We can probably afford these extra 200 bytes now in 2019.

This fixes the button and gives us explicit errors in the log. So far, so good.

Then, when a page won't render chrome, don't try to render the main menu. This fixes the actual errors (we no longer try to initialize menu behaviors for nodes which don't exist).

Completely hide the "Actions" and "Comment" flows if the viewer isn't logged in. Although this isn't completely consistent with other applications, I think it's more appropriate for Phame. In applications like Maniphest, we show a full set of controls (but disable them) so that users who are not currently logged in have a clear path to interact with the content, under the assumption that this is a relatively common workflow. This is probably less common for Phame, where we expect most anonymous viewers not to log in or interact.

Finally, parametrize a one-off border color and add a border under the crumbs at the top of the page.

Test Plan:
  - Viewed a "Live" Phame blog post page, clicked "Actions", got a dropdown.

Reviewers: amckinley

Reviewed By: amckinley

Differential Revision: https://secure.phabricator.com/D20378
2019-04-04 06:10:14 -07:00
..
__tests__ Remove an unused variable 2015-01-20 21:25:40 +11:00
control Fix Javascript busy loop when trying to delete tokens from an empty tokenizer 2018-06-01 14:51:06 -07:00
behavior.js Fix "Actions" button on Phame standalone/live pages (bonus: JX.sprintf()) 2019-04-04 06:10:14 -07:00
Cookie.js Fix another undefined variable 2015-01-20 08:55:04 +11:00
DOM.js Move the "select a line range" inline code to DiffInline 2017-05-17 08:41:26 -07:00
History.js Fix an issue with returning to a the initial page in Quicksand 2015-03-28 07:38:14 -07:00
JSON.js Remove @group annotations 2014-07-10 08:12:48 +10:00
Leader.js Decrease JX.Leader lease duration from 16,000ms to 1,500ms and usurp more aggressively 2017-04-17 15:48:47 -07:00
Mask.js Remove @group annotations 2014-07-10 08:12:48 +10:00
Quicksand.js When logged-out users hit a "Login Required" dialog, try to choose a better "next" URI 2015-12-17 08:30:03 -08:00
Request.js Fix various lint issues in rJX 2015-01-14 07:59:56 +11:00
Resource.js Fix various lint issues in rJX 2015-01-14 07:59:56 +11:00
Routable.js Provide a global router for Ajax requests 2014-05-05 10:57:42 -07:00
Router.js Provide a global router for Ajax requests 2014-05-05 10:57:42 -07:00
Scrollbar.js Hide the Differential scroll objective list on trackpad systems 2017-05-20 07:56:21 -07:00
Sound.js Add a "Play Sound" workboard trigger rule 2019-03-25 14:03:57 -07:00
URI.js When logged-out users hit a "Login Required" dialog, try to choose a better "next" URI 2015-12-17 08:30:03 -08:00
Vector.js Fix anchor-clicking scroll positions 2015-01-28 08:26:10 -08:00
WebSocket.js When disconnected from Aphlict after a successful connection, retry the first reconnect right away 2017-04-17 15:53:29 -07:00
Workflow.js accidentally a word 2018-03-22 13:43:10 -07:00