Skip to Main Content
Feature Request FR-4025
Product Area User Interface
Status CLOSED

4 Voters

Disable Content Row Interactivity when Read Only

jmattgiroux Public
· Sep 25 2024

Idea Summary
Content Row regions should not be interactive when they are set to Read Only.

This would include highlighting or focusing on the rows within the region.

Below are screenshots of the relevant areas of a Content Row region; the code shown in the screenshots isn't what's actually in our project, and is just there for illustrative purposes.

Use Case
My team is using a Content Row for displaying options that can be selected, since the Select List page item didn't work with our planned visual design for the element.

Sometimes we want the Content Row rows to be selectable (for users with authority to make decisions), and sometimes we want the Content Row rows to be un-interactive (so that users without authority don't get confused by being able to select rows, since the rows being interactive implies that they have authority to make decisions).

Preferred Solution (Optional)

The CSS attribute pointer-events: none; could be used to prevent mouse interactions with rows in the Content Row, and tabindex="-1" element attribute could be used to prevent the keyboard from focusing on the rows in the Content Row region. It would be great if the Read Only property applied those attributes to the Content Row region when Read Only is set to True.

Thank you for taking the time to read this; regardless of if this idea is implemented, my team and I are enjoying using APEX for development, and look forward to future updates.

Thanks!

We reviewed this idea carefully, and while it was interesting, we concluded that due to all the internal implications we need to take into account, it is unlikely to make its way into APEX.

Comments

Comments

  • john.snyders APEX Team OP 9 months ago

    I think there is some confusion between readonly and disabled. While all regions and items have Readonly attributes, it is not really applicable for most regions. For example try making a classic report or Interactive Report read only. I don't think there is any difference; all interaction such as paging and sorting is still functional. 

    Readonly should only be applicable to UI components that support some sort of editing. 

    Interactive Grid is a good example. It does support editing and when you make it readonly it turns off all editing features.

    Disabled should be applicable to any UI component and it does mean to disable all or most interaction. We do not have declarative attribute for disabled state. We have enable/disable API and DA action but only for items. It would not be a bad idea to support disabled state for regions also declarative and by API or DA action.

    I think what you want is to disable a Content Row report. The underlying selection code does support disabled state and it turns off selection and also keyboard navigation/focus management. We intend to allow pagination but not selection or any other interaction for disabled reports.

    The trouble is that Content Row and template component reports in general don't expose the disabled setting either by API or declaratively.

    Cards and IG grid and detail views do support APIs that allow disabled. (The disabled option and enable/disable methods are base jQuery UI functionality. We don't include it in our documentation but should. It used to be safe to assume (and still is) because we said when a widget was based on jQuery UI but since deprecating jQuery UI we should make this explicit in our API doc.)

    With cards or IG detail view you can achieve the look of Content Row with selection and support the disabled state using documented APIs and options. 

    The other alternative is to have 2 identical regions one with selection and one without and conditionally render one or the other.