I wanted to make sure the community is aware of our planned refactor of the Sugar 7 Record view in Sugar 7.8. The main point of the refactor is to move the Record view header pane out of the scrollable DIV that it is inside today.
Open up your browser's developer tools and inspect the the HTML of a Sugar 7 Record view. Notice that .headerpane DIV element that contains the header is actually inside the left-hand side .main-pane DIV? This main pane can scroll up and down and contains the record view and subpanels.
However! If you scroll the Record view, the header pane does not move at all. This is because we use some CSS trickery to stick it to top of the page under the Sugar 7 application main menu. Unfortunately this has not worked consistently on all browsers and there has been a variety of bugs.
The plan is to refactor the current implementation of Record view away from being one monolithic Sidecar view into multiple Sidecar views that will read view metadata from a single location (using the same record.php we use today). Ultimately we'll be able to improve the architecture of the page, fix some bugs, as well as make parts of the current Record view (such as the header pane) easier to customize. All good stuff.
Since the Record view is often customized already, we plan to limit the impact on those customizations as much as possible. For example, record view metadata customizations will be unaffected. We will also not change the existing Record view controller, instead deprecating it and creating entirely new views and layouts. But Sugar Engineering needs to make sure we understand all of your Record view customization use cases so that we can be prepared to make you prepared for these changes.
I've collected some of the common Record view customization use cases that I know about below.
- Adding custom field validation (such as validation tasks) to Record view (Example from Sugar Developer Guide)
- Adding buttons to Record view including overriding view controller to implement a custom action (Example from Sugar Developer Guide)
- Adding event listeners to Record context or layout (Example from Sugar Developer Guide)
- Adding metadata customizations such as new custom fields, panels, or Sugar Logic dependencies (Via Studio, Extensions framework, or custom directory)
- Adding custom views to Record layout (Example from Sugar Developer Blog)
Are we missing your use case? Please post your thoughts into this Sugar Community thread or send them to firstname.lastname@example.org. We will also have Sugar Engineers on hand to discuss this topic at UnCon at SugarCon.