Page MenuHomePhabricator

When creating a new task, tags should be middle-clickable to go to their description page
Closed, DeclinedPublic

Description

When creating a new task, tags should be middle-clickable (either during the autocomplete suggestion, or after they have been added, ideally both) to go to their description page.
Note that during the autocomplete, the URL is shown in the browser status bar. But there is no way to go to it.

Currently it's plain tedious to go to these pages (that's why I never do it, and I guess I'm not the only one).
Solving this issue would probably save many work to @Aklapper ;)

Event Timeline

Aklapper edited projects, added Phabricator (Upstream); removed JavaScript, Phabricator.

You can see a short summary when using the magnifier class icon in the "Tags" field to choose tags.
As far as I know the upstream Phabricator developers currently have no plans to make tags middle-clickable hence I'm closing this task as declined to reflect reality. See https://secure.phabricator.com/T6579#151107 for upstream's approach.

Even in this "Browse Projects" modal, there is no link to go to the tag page!

I think this request should be reconsidered. It shouldn't be that hard to implement, while bringing a great ergonomy improvement.

Feel free to discuss with upstream developers as this is not up to Wikimedia and we will not maintain a custom patch for Wikimedia only.
As you found out that it shouldn't be that hard to implement you might propose a patch if they agree?

Phabricator's Contributing Code:

To contribute to the Phabricator upstream, you must first pass a series of ancient trials and be invited to register an account in the ancestral homeland of Phabricator

What...?

I'll just drop a patch draft here, if anyone is interested in pursuing it.

--- webroot/rsrc/externals/javelin/lib/control/typeahead/Typeahead.js	Wed Feb 07 17:55:00 2018
+++ webroot/rsrc/externals/javelin/lib/control/typeahead/Typeahead.js	Wed Feb 07 17:55:53 2018
@@ -81,10 +81,10 @@
 
     JX.DOM.listen(
       this._root,
-      'mousedown',
+      'click',
       'tag:a',
       JX.bind(this, function(e) {
-        if (!e.isRightButton()) {
+        if (e.isNormalMouseEvent()) {
           this._choose(e.getNode('tag:a'));
         }
       }));

I guess it's not sufficient as there are other events that may interfere, but it's a starting point.

Links: