In some cases the Move action on a Tabs Panels works, but the graphical interface shows that action as disabled.
Steps to reproduce:
- From user A:
- Create two panels - editable by: User A
- From user B:
- Create a "Tabs Panel" in a Dashboard
- Attach the panels from User A (so, editable by, not you)
Then, from User B, see the Move actions that are grayed out:
But the Move actions actually works :) and that is OK.
I can reproduce this problem on this Dashboard where I attached some panels that are not mine, and the Move actions are disabled, but they work as expected:
https://phab.wmflabs.org/dashboard/view/12/
In short, the Tabs should be movable only if you can:
- Edit the parent Tabs Panel
But at the moment, these actions are disabled from the frontend also if you cannot edit the Sub-Panel themselves. But this is misleading, since you are not touching the Sub-Panel(s) at all, you are just showing many of them in a different order decided by you, that you created a parent Tabs Panel.
So the error is probably here:
$dropdown_menu->addAction( id(new PhabricatorActionView()) ->setName(pht('Move Tab Left')) ->setIcon('fa-chevron-left') ->setHref($prev_uri) ->setWorkflow(true) ->setDisabled(($prev_key === null) || !$can_edit)); $dropdown_menu->addAction( id(new PhabricatorActionView()) ->setName(pht('Move Tab Right')) ->setIcon('fa-chevron-right') ->setHref($next_uri) ->setWorkflow(true) ->setDisabled(($next_key === null) || !$can_edit));
So maybe the issue is just about removing the || !$can_edit, since that is an additional check not really intended, and also not consistent with the backend.
In short:
If you can Edit the Tabs Panel, of course you should also be able to Move things in it.