SugarClub
SugarClub
  • User
  • Site
  • Search
  • User
  • Groups & Discussions
    Groups & Discussions
    • Product Forums
      Product-focused Q&A, discussions, best practices, fixes, and help
      Product Forums
      • Sugar Market
      • Sugar Sell & Enterprise
      • Sugar Serve
      • sales-i
    • User Groups
      Professional, Industry, Language
    • Get Involved
      Learn how to become a Raving Fan
    • Social Club
      Live, interactive, virtual meetups with other Sugar customers and Sugar’s Subject Matter experts!
    • Leadership Lounge
      Network with fellow organizational leaders, ask questions, and share insights
    • Developers
      Visit DevClub, the SugarClub group for Sugar Developers
      Developers
      • DevClub
      • Mobile Developers
      • Developer Builds
        Supplemental access level required. Inquiries: developers@sugarcrm.com
    • Additional Groups (Access Required)
      Groups that require special access will be displayed here. Contact sugarclub@sugarcrm.com for assistance. Click here to see all groups
      Additional Groups (Access Required)
      • SugarCloud Platform
  • Product Information
    Product Information
    • Release Central
      Find release-specific content to prepare for your next Sugar update
    • Documentation & Resources
      Looking to expand your Sugar knowledge? Explore our in-depth documentation and other helpful resources!
    • Product Update Blogs
      Updates about each Sugar product
    • Customer Stories »
      Case Studies by SugarCRM
  • Training & Certification
    Training & Certification
    • Training & Certification Home
      Live & On-Demand classes, Quick Videos, Sugar Certifications, and more!
    • Quick Videos
      Short videos about using Sugar
    • My SugarU Dashboard »
    • SugarU News & Updates
  • Adoption
    Adoption
    • Grow Adoption Framework
      Get started on your adoption journey and review the adoption resources from SugarCRM
  • Calendar
  • News
    News
    • Sugar News
    • SugarCRM.com News »
    • Dev Blog
    • SugarCRM Marketplace Blog
  • Help
    Help
    • Welcome to Sugar!
      New to Sugar? Get started here!
    • SugarClub Help & Instructions
      Learn more about SugarClub and find answers to questions about this site
    • New to SugarClub?
      Start your community journey here
    • Technical Support
      Sugar's support resources
      Technical Support
      • Case Portal »
        Access the SugarCRM Case Portal
      • Working with Sugar Support »
        Find out more about engaging with the SugarCRM Support team
      • SugarCloud Information
        Find information about SugarCloud service updates and site status. Contact sugarclub@sugarcrm.com to request access
  • More from Sugar
    More from Sugar
    • DevClub
    • PartnerClub
    • Support
    • SugarOutfitters Marketplace
    • sugarcrm.com
  • DevClub
  • PartnerClub
  • Support
  • Marketplace
  • sugarcrm.com
DevClub
DevClub
Dev Tutorials Sugar 11.3 (Q1 2022) Customization Guide
Click here to join this group and curate your SugarClub experience.
  • +On-Boarding Framework
  • -Customization Guides
    • Sugar 25.1 Customization Guide
    • Sugar 14.2 (Q4 2024) Customization Guide
    • Sugar 14.1 (Q3 2024) Customization Guide
    • Sugar 14.0 (Q2 2024) Customization Guide
    • Sugar 13.3 (Q1 2024) Customization Guide
    • Sugar 13.2 (Q4 2023) Customization Guide
    • Sugar 13.1 (Q3 2023) Customization Guide
    • Sugar 13.0 (Q2 2023) Customization Guide
  • +Modern UI Technical Guide
  • +Automated PHP Compatibility Tool
  • Did you know? Copying related records is a breeze!
  • How to write code for SugarCloud webinar Q&A
  • HOW TO: enforce ACL on Tags
  • Programatically manage Dropdown List
  • Remove custom fields created via package installation
  • Sugar Developer Tools
  • Tutorial:  How to register custom platforms in Sugar instances via Platform extension
  • Adding a google reCAPTCHA in a Web-to-Lead form
  • Sugar Developer Blog Style Guide

Sugar 11.3 (Q1 2022) Customization Guide

The purpose of this document is to provide insight to Sugar Developers for adapting custom Sugar code, extensions, and integrations to the Sugar 11.3 (Q1 2022) release. This guide provides an overview of some of the new features and identifies changes in Sugar 11.3 (Q1 2022) that could cause an immediate impact on Sugar customizations and integrations built for earlier Sugar versions.

Please check out the Q1 2022 Developer Webinar recording for more developer highlights. For Admin and End User release notes, please visit the Sugar 11.3.0 Release Notes.

User Experience Updates

Admin UI Redesign

We're introducing a new redesigned Admin landing page built on Sidecar. Sugar has kept compatibility as much as possible therefore, error messages shown on the admin page remain the same in terms of content and all the links are shown as per the role/license similar to the old admin landing page. (customers can still access the old BWC admin page via the old URL.)

Notable changes that require attention:

  • Admin icons are now 12px by 12px (before was 16x16, so please update your icons)
  • New Admin API endpoint to retrieve landing page definitions
  • New icons use SugarIcon library instead of gif files
  • Admin can search for link text/description on the admin landing page and see the results on a pop up.
  • HTML markups are not supported going forward (text strings should be plain or escaped now in Sidecar)

On upgrade customers would see the new landing page UI.

We encourage you to update your references from #bwc/index.php?module=Administration to #Administration

Dropdown-Conditional RV Layouts

This release we give you the ability to create dropdown-conditional Record Views and in 11.3, we want to create a Dropdown driven RV layout that displays different Record Views depending on the Type of Record. Therefore you'll be able to control conditional field availability and position with minimal effort as well as move fields to different positions based on which are more important for some records than others. You don't need to maintain and manage duplicate dependency formulas on individual fields. 

These changes were applied to [module]>Layouts>Record View:

Updates made to fields that disappear after a DBV field is triggered will not be saved. We’ll only save values in fields that are still present in the UI. a Popup warning will appear when a user is editing the Record and then selects a Dropdown field that’s going to change the layout, to let the user know that the dropdown selected will change their view and they will lose some of their edits. If a user has no access to the selected Dropdown field, they will still see the layout view of the Record’s selected Dropdown.

On upgrade, we don’t touch users existing customizations.

Dark mode compatibility to filter divider rows

Filters and mass update row dividers have dark mode compatibility. We also improved the filter view by using a dynamic color variable “@ borderColor” when dark mode is enabled. Added to (List views, Search and select, Subpanel filters, List views dashlet configuration, Data archiver, Console config)

Node we added two css utility classes:

  • border-{side}-n where side is empty, t (top), b (bottom), l (left), r (right) and n is 0, 1, 2px
  • border-{style} where style is solid, dashed, dotted, double

wUtilities. Import into SugarCRM

We are bringing former wUtilities into Sugar in this release. You may want to check your code for conflicts (or became obsolete now that is part of the core). We're adding the following:

  • Clone - this item allows admin to copy some of a given user's setup such as their Default Teams, Favorite Reports, Navigation Bar Module Selection, and Scheduled Reports to another user or users in a particular team or role
  • Dashboards - allows to clone the already configured dashboards from particular modules to the particular user/teams/roles
  • Filters - allows to clone existing user’s filters to particular user/teams/roles
  • User settings - enables an option to set up different user-level preferences like Date format, Time zone, Preferred currency, etc., for a user/teams/roles

Border around Dashlets being removed

We have removed borders around dashlets in favor of box-shadows, specifically for Dashlets, we have added an extra shadow on over for header with exterior strokes.

Please check your dashlet customizations to comply with this change.

Introduce newly reusable UI components in Sugar

We are going to start looking at creating newly designed, more reusable components in Sugar. For start, we've added a new utility class that allows you to specify the background colou for a given component using only classes. Ex. bg-content-background will set background-color: var(--content-background).

There’s been added utility for border-radius: rounded-{size}. Right now, there are a few different sizes: rounded-none, rounded-sm, rounded, rounded-md, rounded-lg, rounded-xl, rounded-2xl , rounded-3xl, rounded-full.

Tasks card in the Timeline Dashlet

We've added tasks card for all the Timelines for Sugar App. For all the modules for which timeline is enabled, if tasks can be related as sub-panel to that module then the task card would show up on that timeline. Users would be able to filter the timeline based on Tasks. If you've customized that, make sure you review your code.

Improvements on Loading... message

We have made an improvement on this "Loading..." message when there was a javascript error it would just stay there, now when there is a persistent “Loading…” message that does not disappear, user can close the message by clicking an “X” at the top right.. Please check your customizations if you've made an improvement on this behavior.

Forecasting at the Opportunity Level

We introduced two new fields in the Opportunity Level, "Forecast" and "Forecast Likely".  “Forecasted Likely” field in Opps adds up the Likely amount for RLIs that have their values set to an included Forecast range. This is available for users using Opps + RLIs. The field will only appear on Opps not related RLIs. Users will be able to filter and report on the new field. 

​If users have edit access to “Forecast” on edit or create, they will see the “Set Across Revenue Line Items” checkbox and when checked, we’ll cascade the Opps value down to the related eligible RLIs. Cascading does not work on closed RLIs.

Update date on the left for timeline cards for few modules

We are updating the date on the left for Timeline Cards to be same as the date which is used for sort order i.e. Start Date for the following cards for Timeline dashlet.  Our default behavior prior to this release was to sort based on the start date but display the create date on the left. Also added tooltips as the field name for the Start Date on the left of the cards for Calls, Meetings and Messages cards in order to make it more clear for the user. Please check your customizations if you've made an improvement on this behavior

Sugar REST API updates

This Sugar release introduces REST v11_15.

Admin Landing page definitions

You can now get admin definitions metadata (used by Admin Landing page Sidecar). This endpoint is only available to administrators and developers with access to any module.

GET <sugar instance>/rest/v11_15/Administration/adminPanelDefs


* Important to note that this endpoint returns two icons definition (icon and customIcon)

  • icon refers to SugarIcon library (either customized/replaced or a default icon)
  • customIcon is the legacy icon defined in the admin extension

Admin Landing page Errors

You can now get current system errors or warnings available on Admin landing (used by Admin Landing page Sidecar). This endpoint is only available to administrators and developers with access to any module.

GET <sugar instance>/rest/v11_15/Administration/errors

PHP Library Upgrades

Adding vanderlee/php-stable-sort-functions

We are adding back this library as it was mistakenly removed instead of deprecated.

It is not used by our core platform therefore is deprecated and will be removed for good soon.

JS Library Upgrades

Update Sidecar's NodeJS to 10

In this release, we are upgrading our Sidecar core code to be compatible with Node >=10.24.1 and NPM >=6.14.12.

There's minimum impact for developers, you might need to upgrade your versions to run some of the unit tests that rely on this versions.

Configurability updates

Sugar Logic

Work in progress.

Sugar Catalog Server

Work in progress.

SugarBPM

Work in progress.

Studio

Work in progress

Sugar Config Settings

Setting Name

Default

Override Example

Description

proxy_visible

true (non cloud)

false (cloud)

$sugar_config['proxy_visible'] = false; Determines whether the Proxy Settings panel is visible to administrators in Admin > System Settings. Instances running on Sugar's cloud environment will have this setting enforced as false.
developer_mode_visible

true (non cloud)

false (cloud)

$sugar_config['developer_mode_visible'] = false; Determines whether the Developer Mode flag is visible to administrators in Admin > System Settings. Instances running on Sugar's cloud environment will have this setting enforced as false.

Removed Features

Changes on our Legacy SOAP API

In this release we are updating our SOAP API to be WS-I 1.0 Compliant, therefore when accessing the soap entry point, you will be provided with rpc/encoded formatting. 

You may change the encoded by literal if need be, however, we are not serving document style anymore, therefore valid options are:

  • https://{sugar_url)/service/v4_1/soap.php?wsdl
  • http:s//{sugar_url)/service/v2/soap.php?wsdl
  • https://{sugar_url)/service/v4_1/soap.php?wsdl&style=rpc&use=encoded
  • https://{sugar_url)/service/v4_1/soap.php?wsdl&style=rpc&use=literal
  • https://{sugar_url)/service/v2/soap.php?wsdl&style=rpc&use=literal
  • https://{sugar_url)/service/v2/soap.php?wsdl&style=rpc&use=encoded

Data Changes

Fixed attachment_flag is set to 1 for legacy note records

We've fixed this issue when a Note has an attachment and when you open the related Opportunity, the Note record does not appear in the Notes subpanel. The workaround was to update the attachment_flag field from 1 to 0 via an SQL query. This change will be reverted if a user edit/save the Note. Now it's fixed, so if you've customized/workaround it, please review your code.

Data Archiving process on the pmse_BpmFlow table

We no longer allow archiving directly on the pmse_bpmFlow table since this is not an exposed table in Sugar. Now the user can only see the pmse_Inbox table in the list of modules to archive dropdown.

Tre are several options on which to filter on for this table, however, the system requires that the user select ‘Process status’ as one of the filter options for this to be a valid data archiver.

When an archival process is run on the pmse_Inbox table, the entry from that table will be archived as well as all entries in pmse_BpmFlow and pmse_BpmThread that have the matching ‘cas_id’ related to that process

Filesystem Changes

Ex. Changes to Sugar filesystem structure.

Platform Updates

List View & Subpanel-Store Columns, Order, and Sort in the DB

In this release, we are storing users' List View and Sub-panel organization into the database not the browser so they can access it from anywhere and don’t have to worry about losing everything after clearing their browser. User can drag and drop their columns, change the order and widths, on LV, Subpanels, Filters, and everywhere they can change layout configs. Please check your customizations if you've implemented similar functionality.

Respect Product Categories' "Order" field in the PC dashlet

We have implemented ordering in the PC dashlet respecting the Order field, now you can choose which products show up first.

Check your customizations and/or naming If you've used the workaround (append numbers or letters) so it would order alphabetically.

Sidecar now provides an easy way to Check for License and user state

In this release, we are providing helper methods in Sidecar to check for various licenses and user states that can be used to determine if we should enable some functionality.

  • hasSellLicense()
    • checks if user has a Sell license
  • hasServeLicense()
    • checks if user has a Serve license
  • hasSellServeLicense(hasBoth = false)
    • if hasBoth is false, returns true if user has either Sell or Serve license
    • If hasBoth is true, returns true if user has Both Sell AND Serve licenses
  • hasLicense(licenseType<string | string[]>, hasAll = false)
    • allows a single license type string or an array of strings license types to be passed in
    • If hasAll is false, returns true if user matches any license types
    • If hasAll is true, returns true is user matches ALL license types
  • isSetupCompleted()
    • checks that the user has already accepted the Cookie Consent & that the user has already been through the User Setup Wizard
    • essentially covers the cases where we check:
    • app.user.get('cookie_consent') && !app.user.get('show_wizard')

New and Improved Charts!

In this release we have selected ChartJS our core charting engine which brings easier to use, faster and responsive charting experience. With this update you have:

  1. Default engine is now chartjs

  2. New implementation of JSChart that uses chartjs

  3. New implementation of sugarcharts.js that uses the SUGAR.charts namespace

  4. Added 2 new Chart Types: TreeMap and Donut

We have updated our report viewer with ChartJS which means that all Reports generated and rendered from the Reports module will render using ChartJS.

CSP - Content Security Policy UI

We've added the ability for admins to go to a new section “Content Security Policy Settings” and configured Trusted Domains for their instance.

We got 2 tabs now for this settings with the following attributes:

  • Basic
    • Trusted Domains ('default-src')

    • Trusted Parent Domains ('frame-ancestors’)

  • Advanced
    • connect-src

    • font-src

    • form-action

    • frame-src

    • script-src

    • style-src

Improvements on BWC modules loaded via an iframe

In this release we have made more improvements when loading BWC modules via iFrame. Specifically for authentication to work we have updated our cookies to set SameSite=None as well as setting of the secure flag, so such cookies will be served only by HTTPS.

Adding CSV in Scheduled Reports

In this release we have enabled a new option for users to select the report type which they wish to send via the report schedular. Before this release only PDF versions of reports were sent for scheduled reports. Now users would be able to select the option if they want to send the PDF, CSV or Both. Default option is PDF as that is the current behaviour. If the user selects the PDF option then only PDF version is sent. If the user selects the CSV option then only CSV version is sent. If the user selects the Both option then both PDF and CSV versions are sent as separate files (i.e. no zip file).

Font- change from Open Sans to Inter

Sugar is changing the base font in the application from Open Sans to Inter. This change doesn’t require backwards compatibility with Open Sans. Please check your customizations and make sure they still have the UX experience they had with the previous font. Those font files are planned to be removed in v12.2

Administration Links

As part of our efforts to support cross browsers, we are updating the way we navigate routes. 

Links need to be wrapped in javascript:void() (true for FF), e.g:

  • from javascript:parent.SUGAR.App.router.navigate("ContractTypes", {trigger: true}); 

  • to javascript:void(parent.SUGAR.App.router.navigate("ContractTypes", {trigger: true}));

void returns undefined after executing the expression and undefined tells the browser to stay on the same page on navigation.

Deprecated functions

Sucrose and NVD3 Deprecated

As we move towards making ChartJS our official charting engine, we are deprecating Sucrose and NVD3 charting engines.

Open Sans Font files deprecated

Those font and related files are planned to be removed in v12.2

  • Sugar Q1 2022
  • Sugar 11.3
  • 3 comments
  • 0 members are here
  • Sign in to reply
Related
Recommended