1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2025-02-02 09:58:24 +01:00
phorge-phorge/webroot/rsrc/js/core
epriestley e869e7df0b When logged-out users hit a "Login Required" dialog, try to choose a better "next" URI
Summary:
Ref T10004. After a user logs in, we send them to the "next" URI cookie if there is one, but currently don't always do a very good job of selecting a "next" URI, especially if they tried to do something with a dialog before being asked to log in.

In particular, if a logged-out user clicks an action like "Edit Blocking Tasks" on a Maniphest task, the default behavior is to send them to the standalone page for that dialog after they log in. This can be pretty confusing.

See T2691 and D6416 for earlier efforts here. At that time, we added a mechanism to //manually// override the default behavior, and fixed the most common links. This worked, but I'd like to fix the //default// beahvior so we don't need to remember to `setObjectURI()` correctly all over the place.

ApplicationEditor has also introduced new cases which are more difficult to get right. While we could get them right by using the override and being careful about things, this also motivates fixing the default behavior.

Finally, we have better tools for fixing the default behavior now than we did in 2013.

Instead of using manual overrides, have JS include an "X-Phabricator-Via" header in Ajax requests. This is basically like a referrer header, and will contain the page the user's browser is on.

In essentially every case, this should be a very good place (and often the best place) to send them after login. For all pages currently using `setObjectURI()`, it should produce the same behavior by default.

I'll remove the `setObjectURI()` mechanism in the next diff.

Test Plan: Clicked various workflow actions while logged out, saw "next" get set to a reasonable value, was redirected to a sensible, non-confusing page after login (the page with whatever button I clicked on it).

Reviewers: chad

Reviewed By: chad

Maniphest Tasks: T10004

Differential Revision: https://secure.phabricator.com/D14804
2015-12-17 08:30:03 -08:00
..
behavior-active-nav.js Remove unused JavaScript variables. 2014-06-24 03:27:47 +10:00
behavior-audio-source.js Implement macros as audio sources 2013-09-27 16:02:02 -07:00
behavior-autofocus.js Move js/application/core/ one level up 2013-04-23 10:56:46 -07:00
behavior-choose-control.js Provide a "PHUIFormIconSetControl" 2015-12-16 08:46:51 -08:00
behavior-crop.js Remove unused JavaScript variables. 2014-06-24 03:27:47 +10:00
behavior-dark-console.js Quicksand - fix project board page and quicksand 2015-04-28 14:51:49 -07:00
behavior-device.js Improve column device behaviors 2015-03-28 06:54:23 -07:00
behavior-drag-and-drop-textarea.js Support HTML5 / Javascript chunked file uploads 2015-03-13 11:30:36 -07:00
behavior-error-log.js Let JSHint know that the show_details function is an exported global 2014-12-30 02:51:36 -08:00
behavior-fancy-datepicker.js Fix start in fancy datepicker calendar 2015-11-05 07:07:38 -08:00
behavior-file-tree.js Remove unused JavaScript variables. 2014-06-24 03:27:47 +10:00
behavior-form.js Apply some linter auto-fixes 2014-08-02 19:03:02 +10:00
behavior-gesture.js Remove unused JavaScript variables. 2014-06-24 03:27:47 +10:00
behavior-global-drag-and-drop.js Quicksand and global drag and drop - install quicksand listener on event only 2015-05-06 12:59:09 -07:00
behavior-high-security-warning.js Quicksand - make things work properly with high security mode 2015-04-23 16:37:56 -07:00
behavior-history-install.js Move js/application/core/ one level up 2013-04-23 10:56:46 -07:00
behavior-hovercard.js Remove unused JavaScript variables. 2014-06-24 03:27:47 +10:00
behavior-keyboard-pager.js Remove unused JavaScript variables. 2014-06-24 03:27:47 +10:00
behavior-keyboard-shortcuts.js Move js/application/core/ one level up 2013-04-23 10:56:46 -07:00
behavior-lightbox-attachments.js Catch undefinied title attribute in lightbox 2014-12-23 09:28:57 -08:00
behavior-line-linker.js Minor JavaScript fix 2014-12-30 02:50:32 -08:00
behavior-more.js Remove unused JavaScript variables. 2014-06-24 03:27:47 +10:00
behavior-object-selector.js Include object url in object selector selection 2014-11-03 08:20:15 -08:00
behavior-oncopy.js Change double quotes to single quotes in JavaScript. 2014-06-24 03:35:39 +10:00
behavior-phabricator-nav.js [Redesign] Fix filetree view in Differential 2015-05-28 11:32:17 -07:00
behavior-phabricator-remarkup-assist.js Quoted text remarkup should be smart enough to know when to add a '>' and when to add '> ' 2015-06-17 18:34:01 -07:00
behavior-refresh-csrf.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
behavior-remarkup-preview.js Partially generalize Remarkup previews and add support to Differential 2013-08-05 10:46:39 -07:00
behavior-reorder-applications.js Remove unused JavaScript variables. 2014-06-24 03:27:47 +10:00
behavior-reveal-content.js Remove unused JavaScript variables. 2014-06-24 03:27:47 +10:00
behavior-scrollbar.js Make scrolling happen relative to the main content frame 2015-01-25 08:42:40 -08:00
behavior-search-typeahead.js Update the search scope selector after Quicksand navigation 2015-04-24 14:20:48 -07:00
behavior-select-on-click.js Remove unused JavaScript variables. 2014-06-24 03:27:47 +10:00
behavior-time-typeahead.js Date controls should respect user time preferences 2015-06-15 10:11:10 -07:00
behavior-toggle-class.js Quicksand - fix toggle behavior to work with quicksand 2015-05-04 14:38:50 -07:00
behavior-tokenizer.js Move js/application/core/ one level up 2013-04-23 10:56:46 -07:00
behavior-tooltip.js Move project icon editing into "Edit Details" 2014-06-26 09:41:07 -07:00
behavior-watch-anchor.js Fix anchor-clicking scroll positions 2015-01-28 08:26:10 -08:00
behavior-workflow.js Provide a global router for Ajax requests 2014-05-05 10:57:42 -07:00
Busy.js Make busy indicator durable column aware 2015-04-01 20:10:32 -07:00
DragAndDropFileUpload.js Fix missing willUpload hook for drag-and-drop chunked upload 2015-09-08 16:20:58 -07:00
DraggableList.js Fix three issues with scrolling while dragging items (e.g., on workboards) 2014-09-09 14:20:27 -07:00
FileUpload.js Support HTML5 / Javascript chunked file uploads 2015-03-13 11:30:36 -07:00
Hovercard.js Hovercards - don't let them run off the right edge of the viewport anymore 2015-05-07 16:01:10 -07:00
KeyboardShortcut.js Move js/application/core/ one level up 2013-04-23 10:56:46 -07:00
KeyboardShortcutManager.js Make scrolling happen relative to the main content frame 2015-01-25 08:42:40 -08:00
MultirowRowManager.js Clean up Multirow Manager UI 2014-11-17 14:06:05 -08:00
Notification.js Desktop Notification support 2015-06-22 13:11:37 -07:00
phtize.js Use JsShrink if jsxmin is not available 2013-05-18 17:04:22 -07:00
Prefab.js Save stacked actions in drafts, not just comments 2015-12-04 16:29:43 -08:00
ShapedRequest.js Provide a global router for Ajax requests 2014-05-05 10:57:42 -07:00
TextAreaUtils.js Add a Javascript method to find the pixel position of a range in a textarea 2014-08-18 13:15:40 -07:00
Title.js Don't revert Conpherence page titles when updating notifications 2015-04-02 13:41:48 -07:00
ToolTip.js Use single quotes in JavaScript files 2015-01-20 08:53:47 +11:00