Matt Gilman created NIFI-16496:
----------------------------------

             Summary: Show disabled Drain on the connector canvas with the 
reason it is unavailable
                 Key: NIFI-16496
                 URL: https://issues.apache.org/jira/browse/NIFI-16496
             Project: Apache NiFi
          Issue Type: Task
          Components: Core UI
            Reporter: Matt Gilman
            Assignee: Matt Gilman


The connector canvas operate panel hides Drain unless DRAIN_FLOWFILES is 
currently allowed. Operators cannot tell that Drain exists, or why it is 
unavailable.

On connector-info-control:

* Show Drain when the user can operate the connector. Hide it when they cannot.
* Disable Drain when DRAIN_FLOWFILES is not allowed, and show reasonNotAllowed 
in a tooltip (for example "Connector must be stopped" or "No data is queued"). 
Use getConnectorActionDisabledReason.
* When CANCEL_DRAIN_FLOWFILES is allowed, show Cancel Drain instead of Drain. 
These actions are mutually exclusive: cancel is allowed only while the 
connector is draining, and drain is allowed only when the connector is stopped 
with data queued.
* Decide which control is mounted from isConnectorActionAllowed, not from 
canDrain() / canCancelDrain(). Those helpers are also false while the entity is 
saving. Saving should disable the mounted button so the label does not swap 
mid-request. While a request is in flight, reasonNotAllowed is empty because 
the action is still allowed, so use a separate tooltip such as "Request in 
progress".
* Put the tooltip on a wrapper that still receives pointer events. A tooltip on 
the disabled button itself does not show, because Angular Material sets 
pointer-events: none on disabled buttons. Keep the button's real disabled 
attribute.

Surface the server reason as returned. In troubleshooting that reason is 
"Connector must be stopped".

Leave the canvas context menu and the connector listing row menu unchanged. 
They can keep hiding Drain when it is not allowed.



--
This message was sent by Atlassian Jira
(v10.3.26#10030026)

Reply via email to