This document describes the changes and functionality available in Sugar® Professional 7.8.0.0.
Sugar 7.8.0.0 is available for both On-Demand (Sugar-hosted SaaS) and On-Site deployments.
Administrator and End User
Feature Enhancements
The following feature enhancements are included in the 7.8.0.0 release:
- Additional recurrence types : Calls and meetings now have expanded types of recurrence available, especially concerning monthly recurrences.
- Invitee missing email address indicator : Users will now be alerted of call and meeting invitees who will not receive email invites due to empty or invalid email addresses in Sugar.
- Start date color coding in Calls, Meetings, Tasks subpanels : The start dates in the Calls, Meetings, and Tasks subpanels are now highlighted according to when their start date occurs.
- Email address validation in Compose Email window : Email addresses are now validated when composing emails from Sidecar modules (e.g. via Emails subpanel in Accounts module) in order to detect any invalid emails.
- Refresh option for list views and subpanels : Users now have the ability to refresh the records displayed in list views and subpanels by clicking the Refresh button to the right of the search bar.
- Quantities of zero : Quoted Line Items and Product Catalog records can now have quantities of zero and allow for manual entry of fields typically calculated based on a non-zero quantity.
- View Change Log option in Tasks module : Users can now view a history of changes to audited fields for task records.
- Command key supported for keyboard shortcuts : The shortcut key now supports the use of “Command” for Macs.
- Customizable shortcut keys : Users can now customize the key combinations which trigger Sugar’s shortcuts via the Keyboard Shortcuts page.
- Dependent fields respected in list view’s intelligence pane : Dependent field formulas controlling a field’s visibility are now respected when previewing records via the list view’s intelligence pane.
- Total for grouped data in report chart dashlets : Bar charts can now display the total for grouped data in report chart dashlets.
- UTF-8 non-English characters supported for email address : Email addresses containing UTF-8 non-English characters may now be saved.
Fixed Issues
The following issues have been resolved in version 7.8.0.0:
- 67445 : Multiple panels cannot be added as expected to the Record View layout in Studio.
- 69382 : Campaign tracker URLs may log campaign status entries with no recipient information when clicked from outside the campaign email.
- 70815, 70890 : Custom relationship field values may not display as expected in related module subpanels.
- 71289 : The Reports module may be missing from the Mobile settings page if the module was previously moved from the Enabled Modules column to the Disabled Modules column via Admin > Mobile.
- 71797 : The meeting invitations may not display the ó character correctly when sent from Sugar logged in with the Spanish (Latin) language.
- 72155 : Blank spaces may appear in record views when dependent fields are hidden in layouts (e.g. record view).
- 72165 : When the import file includes the user name in the Assigned User Name field, the import may not complete as expected.
- 72861 : The report chart may not display correctly in chronological order when the report is grouped by date fields (e.g. Date: Start Date).
- 73025 : Changes made to audited custom relate fields do not display in the View Change Log as expected.
- 73259 : Accepting or rejecting a recurring call or meeting accepts the first meeting or call in the series instead of the full recurring series.
- 73490 : When a user’s access to the Forecasts module is disabled, it improperly causes the Forecast Pipeline Chart dashlet to be unavailable to add even though the user has access to the Opportunities module.
- 74004 : When sending emails, Sugar may display an error due to the SMTP server exceeding Sugar’s default timeout. A new config setting,
email_mailer_timeout
, has been added where you can set a higher timeout value than the default 20 seconds, if needed. - 74423 : Dependent field value may not appear in the related record subpanels as expected even though the dependency criteria has been met.
- 74431 : Downloading a quote to PDF may result in a TCPDF error if the PDF file includes a header image and spans multiple pages.
- 74583 : When relating a quote record to a module (e.g. Tasks), filtering the Search and Select list view by the Account Name field may not work as expected.
- 74585 : When the meeting’s start date is changed, the date picker for the End Date field improperly retains the previous date and does not reflect the new updated date as expected.
- 74623 : After upgrading, previously created integer fields with no default value defined may improperly display the field value as “0” after saving the record.
- 74670 : Setting the Precision value to “0” when creating a Float-type field in Studio does not get preserved as expected and reverts back to “8”.
- 74746 : Logging into Sugar without using SAML for instances with SAML authentication enabled, may result in unexpected behavior upon log in.
- 74812 : Records are incorrectly able to be deleted via
PUT
API calls rather than the correctDELETE
method. - 74814 : Modified dropdown lists are improperly reverted after upgrading to 7.6.1.0 and may cause the dropdown values to not display as expected.
- 74961 : Records with calculated fields using the
add()
function may display an incorrect value of “NaN” and cause the record to not save as expected. - 74968 : Custom calculated currency-type fields may incorrectly prevent a record being saved when the fields used in their calculations are blank.
- 75065 : Summation and Summation with Details reports may display incorrect whole-report totals.
- 75066 : When a user who is assigned a role with no access to a particular field (e.g. Office Phone) tries to view a subpanel that is sorted by that field, the subpanel will display a “Loading…” message and not display data as expected for the accessible fields.
- 75089 : Setting the Bar chart value placement field to “None” for the Saved Reports Chart Dashlet may not work as expected and continue to display the value in the bar chart.
- 75204 : Summation or Summation With Details reports with a Display Summary sum of zero (due to positive and negative values being summed) may not display the report chart correctly.
- 75217 : Creating or editing records (e.g. Accounts) with blank Decimal-type fields improperly populate with a value (0.00) upon save.
- 75233 : Using the
today()
function in calculated fields improperly returns both date and time values instead of just the current date value. - 75247 : Dragging and dropping the Type field from the Default column to the Hidden column may cause the field to disappear from the list upon clicking “Save & Deploy”.
- 75282 : Dependent fields containing a
related()
function may improperly appear in the layout (e.g. Record View) even though the formula evaluates to “false”. - 75306 : When attempting to create activities (e.g. meetings) via the Quick Create menu, the Unsaved changes warning message may unexpectedly appear.
- 75307 : Contacts may be duplicated in a related account’s Contacts subpanel when the contact is related to multiple accounts.
- 75485 : The record’s change log may not display the timestamp value correctly for Datetime fields that are marked as “Audit”.
- 75614 : Sorting may not work as expected for module list views (e.g. Accounts) filtered by “Recently Viewed”.
- 76098 : Sorting the My Archived Emails folder containing a large number of emails may cause performance issues when accessing the Emails module.
- 76129 : When a module is renamed via Admin > Rename Modules, the Related to field in Sugar continues to display the previous module name instead of the new name.
- 76147 : Editing a record improperly changes dropdown fields set to a blank value to
NULL
in the database upon save. - 76219 : Attachments may not get uploaded to the Amazon AWS
./upload
directory or S3 bucket as expected. - 76407 : Modules may incorrectly appear in the navigation menus even when the module has been disabled from appearing in the menu by an admin.
- 76449 : Dependent dropdown field may not display the correct value in SugarCRM Mobile and in the desktop version of Sugar if the selected dropdown value’s item name includes a trailing space.
- 76487 : Studio label changes may not be respected when multiple extension language files exist for the module.
- 76561 : After upgrade to 7.7.0.0, custom filters on multiselect fields may not work as expected.
- 76572 : Attachments uploaded to the subpanel (e.g. Notes) via inline edit may not open as expected and result in an error.
- 76636 : When logged into Sugar with the Japanese language, changing the default time setting to a 12-hour time format (e.g. 11:00pm) may cause the Datetime field (e.g. Start Date) in modules (e.g. Calls and Meetings) to become uneditable.
- 76660 : Clicking “Save and Send Invites” when modifying calls or meetings, only emails the Assigned To user rather than the entire invitee list.
- 76703 : The “Show Active Users” and “Active User Count” report results may not display correctly on the Tracker Reports dashlet in the My Legacy Dashboard after upgrading from 6.x to 7.x.
- 76728, 77529 : Inserting Tracker URLs may not insert the links correctly causing the link to not work as expected in the email campaign.
- 76737 : Hovering over stacked bar charts (e.g. vertical) in reports (e.g. Summation report) may not display the corresponding percentage values as expected.
- 76762 : Required, dependent fields may incorrectly appear in subpanels during in-line editing when the dependent conditions are not satisfied.
- 76775 : Merging records assigned to more than 10 teams may cause the Merge Records page to display incorrectly.
- 76931 : Changing panel labels via the module’s layout (e.g. Opportunities Record View) in Studio may not update as expected after upgrading to 7.7.1.0.
- 77096 : Double clicking on module tabs (e.g. Contacts) may cause previously applied filters to not appear in the list view.
- 77237 : The Active label may be translated incorrectly when logged into Sugar with the Norwegian language.
- 77258 : Image-type fields in module records (e.g. Notes) may not display the uploaded image as expected.
- 77400 : Email address fails to import to Sugar for any newly created records where a workflow triggers on.
- 77452 : Custom checkbox values do not evaluate properly when used in Gateway decisions.
- 77598 : When logged into Sugar with the Dutch language, the quote’s tax may not get calculated properly and display $0 upon saving the record.
For more information on a bug or to provide feedback, use the SugarCRM Bug Tracker located at http://www.sugarcrm.com/support/bugs.html. To view the complete list of bugs fixed in this specific release, run a search using “7.8.0.0” in the Targeted In Release field. Look for the bugs marked “Fixed” in the Resolution field.
Known Issues
The following are known issues in version 7.8.0.0:
- 53969 : The Projects module does not have the option (star icon) to designate records as favorites. As a workaround, the Favorites option can be enabled by changing
favorites
from “false” to “true” in the./modules/Projects/vardefs.php file
. - 61338 : When test entries are deleted from the campaign, the related campaign emails that are sent to targets may not be viewable and display an error (Error retrieving record. This record may be deleted or you may not be authorized to view it).
- 64880 : Certain fields (e.g. email address, phone, etc.) in the Users module may not be available to add as field variables in PDF templates.
- 65527 : The SugarCRM® cube icon is used as the system-wide favicon even when “Display module icon as favicon” is enabled in Admin > System Settings.
- 65647 : Users will not see updates to their avatar images without first logging out and back into Sugar.
- 65674 : Selecting an item from the Recently Viewed list under the module tab does not correctly update the list to include the selected record.
- 66209 : Help text is not being displayed.
- 66520 : Notes may not be edited directly from the Contracts module’s Notes subpanel.
- 66573 : More than one user attempting to merge records simultaneously results in errors.
- 66580 : List view loads may experience performance issues as quantity of records loaded increases.
- 66826 : Numerical fields such as Bug Number may not be used with type-ahead functionality to generate a list of potential matches when relating records.
- 66842 : Relate fields cannot be sorted as expected in the list view.
- 66900, 67294 : Resetting the forecast time period does not set the current time period correctly and causes various issues in the application.
- 66910 : The notification for Cases module does not include the case number as expected when triggered via the workflow.
- 66995 : The Display server response times option is improperly available to select via Admin > System Settings.
- 68024 : The Case Number, Date Created, and Created By field values for the Cases module may not get populated in workflow alerts that are triggered on first save.
- 68095 : Text provided for Campaign Tracker URLs is unexpectedly shortened after the first 30 characters.
- 68112 : Matrix-type reports display incorrectly when exported to PDF.
- 68245 : Calendar dashlet may be missing from Legacy dashboard after upgrading to 7.2.0.
- 68426 : New panels added to the Record View layout in Studio do not display the panel options (Display Type, Collapse?) until the layout is saved in Studio.
- 68440 : Quick creating (e.g. Leads, Contacts, etc.) via the Emails dashlet on the Legacy dashboard opens up the legacy create view instead of the sidecar record view.
- 68461 : Searching by non-primary email addresses in the module’s list view (e.g. Accounts) does not pull up results as expected.
- 68464 : Changes made to record view layouts via studio are not reflected when quick creating records until after the full creation view is used.
- 68975 : Changing the order of subpanels via Admin > Display Modules and Subpanels does not preserve the order upon save.
- 68979 : Changing the currency of a quote multiple times may introduce rounding errors to the line item price fields.
- 69184 : Creating a custom field may not work as expected if there are numerous custom fields and large amounts of data existing in the module.
- 69391 : Changes made to module names via Admin > Rename Modules are not reflected on list views columns for modules which relate to the affected module. The column names may be corrected individually by modifying each listview’s column labels via Studio.
- 69508 : Relating a new record via the Legacy module subpanel (e.g. Calls) in a module’s record view (e.g. Leads) causes the Next and Previous buttons to no longer appear in the record view. Navigating back to the list view and selecting a record will correct the issue by restoring the buttons again in the record view.
- 69801, 69918 : Changing the style attributes for table tags, image tags, etc. on email templates via HTML may result in parts of the code getting removed upon save.
- 69982 : Old Value variables (e.g.
{::past::Opportunities::sales_stage::}
) inserted in workflow alert templates may not display the correct value in the email as expected. - 69985 : If a custom module has a relationship with an individual Activity-type module (e.g. Tasks), this related module may not be available to select when creating a workflow action to create a record in a module (Tasks) associated with the target module (e.g. custom module). As a workaround, create a one-to-many relationship between the custom module and the Activities module, and the appropriate Activity-type module (e.g. Tasks) will be available to select when creating the workflow action
- 70024 : Scheduled reports may have incorrect or missing charts in the emailed PDF. Select “Print as PDF” from the report’s Actions menu to see the updated chart.
- 70106 : The Skype icon does not appear next to the phone number as expected when the SkypeOut integration is enabled.
- 70124 : Studio’s formula builder displays several undesired functions (getListWhere, isForecastClosed, isForecastClosedWon, and isForecastClosedLost).
- 70389 : Tabbing while inline editing the address block in the record view does not work as expected as it does not tab through all the fields (e.g. state, postal code, etc.) within the address block.
- 70542 : The “Show Completed Meetings, Calls, and Tasks” option is not available in Calendar > Settings, which can cause performance issues in the Calendar module for users who have a large number of activity records. Setting Admin > System Settings > vCal Updates Time Period to “-1” will relieve the performance delay, however this will prevent user availability information from appearing when scheduling a call or meeting.
- 70553 : Disabling export via Admin > Locale does not remove the Export option as expected from the list view.
- 70601 : Custom HTML files including javascript may not render correctly after upgrade to 7.5.0.0.
- 71446 : For opportunities, changes made to labels via Studio > Opportunities > Labels do not affect list view labels. Make changes to labels via Studio > Opportunities > Layouts > List View to modify list view layouts.
- 71733 : Printing archived emails via the browser’s print option may not display correctly.
- 71807 : Studio layouts appear in reverse order when right-to-left themes are enabled.
- 72000 : Changing the Admin user with user ID = 1 to a regular user may cause the system index to not index records properly in Sugar. To resolve the issue, change the Admin user (user ID = 1) back to a System Administrator User.
- 72022 : The Projects module is incorrectly available to select via Admin > Mobile.
- 72098 : Clicking the “Restore Default” button in Admin > Studio automatically saves and displays the out-of-the-box default layout despite not saving the change in Studio.
- 72264 : Clicking on the opportunity’s name in the Quotes detail view after downloading the quote to PDF improperly redirects to the home page instead of the opportunity’s record view. As a workaround, right-click on the opportunity name after downloading the quote to PDF and the opportunity’s record view will open accordingly.
- 72286 : The Opportunity module’s amount fields cannot accept negative values.
- 72409 : When generating a report, labels may improperly overlap in the chart (e.g. Vertical Bar chart) causing the labels to be unreadable.
- 72588 : Synchronizing the Google Calendar with the Sugar calendar may not sync the tasks as expected.
- 72590 : The Due Date field may not be available to select when mass updating in the Tasks module. To resolve the issue, navigate to Admin > Studio > Tasks > Fields and disable the Mass Update option for the Due Date field then enable it again.
- 72882 : When accessing Sugar using Internet Explorer, the date picker does not display properly and disappears when using the scroll bar on the page. As a workaround, scrolling with your mouse or trackpad will display the calendar picker properly.
- 72887 : Customizing a role-list while creating a custom DropDown field in Studio causes the new field to not be saved. As a workaround, create and save the new field before making changes to any role-lists.
- 72955 : Module loader does not prevent packages containing invalid characters from being uploaded to Sugar which can issues when upgrading to version 7.x as invalid characters are not allowed.
- 72956, 73729 : Populating a target list by selecting a report for a module (e.g. Accounts) may not add all records as expected if the report contains a large amount of data.
- 72962 : Dependent fields containing a
related()
function may cause the data to not display as expected in the module’s list view. - 73009 : When the total file size in the
./upload/upgrades/module/
directory is large, it may cause performance issues in Admin > Module Loader. - 73301 : Attempting to edit Sugar Logic formulas with too many lines in the formula may cause an error (“Formula Builder: Error Loading Content”) in Studio’s formula builder. As a workaround, edit the formula to remove any line breaks.
- 73468 : Time-elapse workflow may not trigger as expected when a date field (e.g. Expected Close Date) in the condition is set to a date in the future.
- 73485 : Parent modules incorrectly appear in related module dropdown lists.
- 73488 : Re-ordering list view columns does not work as expected for iPad and mobile devices.
- 73492 : Sorting the Forecasts module by Likely, Best, or Worst fields may not sort by the base currency amount as expected.
- 73689 : When users adjust the list view or subpanel column widths, the user’s preferred column size may not be preserved if the browser window is resized.
- 73891 : Attempting to reorder subpanels in the module’s record view may not work as expected when logged into Sugar using Chrome on Windows. As a workaround, disable the “Enable Touch Events” option for Chrome and users should be able to drag and drop subpanels accordingly.
- 73929 : Cases created from inbound emails may improperly display the case’s description as HTML.
- 74382 : The Case Summary dashlet may not work as expected and cause an internal server error if the account record has a large number of related cases.
- 74421 : Passing text including an ampersand (&) into an API call may cause the call to fail.
- 74475 : Clicking a button (e.g. Plus button) in the subpanel (e.g. Emails) before the module’s record view completes loading may result in unexpected errors.
- 74539 : Custom fields may not display as expected when previewing call and meeting records via the intelligence pane.
- 74628 : Certain workflows using a Relate-type field in the condition may fail to load as expected and result in errors after upgrading to 7.6.x.x. As a workaround, run the following query in the instance’s expressions table:
UPDATE expressions SET exp_type = "id" WHERE exp_type = "relate" AND lhs_field = "assigned_user_id"
- 74687 : Avatar field marked as required in Admin > Studio may cause Sidecar modules to not save as expected and result in an error.
- 74818 : List view column widths for custom modules may appear collapsed after upgrading from Sugar 7.5.x.x to 7.7.x.x. To resolve the issue, administrators can navigate to Admin > Studio to change the module’s list view column width or users can manually resize the column widths via the module’s list view.
- 74919 : Performing certain actions (e.g. Quick Repair and Rebuild) in Sugar that rebuild the cache files may cause unexpected issues in the system if there are multiple users logged in and utilizing Sugar. As a workaround, perform such actions during off-hours where users are not utilizing the system.
- 75254 : Printing reports (e.g. Summation With Details report) to PDF may not work as expected when logged into Sugar via a mobile browser.
- 75258 : Mass updating or importing records (e.g. cases) that are related to records (e.g. accounts) with large datasets may result in PHP memory errors.
- 75302 : Activities (e.g. calls and meetings) created via the Calendar module tab’s actions menu may not appear in the calendar grid as expected. Reloading the web browser will display the newly created activity (e.g. call) in the calendar grid.
- 75481 : When duplicating a PDF template via Admin > PDF Manager, the template’s body is not visible. Save then edit the duplicate record to view and modify the template.
- 75482 : Editing all recurrences of a call or meeting with invalid recurrence rules may result in unexpected behavior.
- 75689 : Users assigned a role where access to the Contacts module is disabled may see the Import button improperly appear on the D&B: Contact Information dashlet which results in an error when clicked.
- 75916 : Customizing JS and other core files may cause customizations to not work as expected after upgrading to 7.7.x.
- 75937 : Users assigned a role where access to the Project Tasks module is disabled are improperly able to create project tasks via the Project Tasks subpanel.
- 75939 : Importing a large number of records (e.g. 8,000) in Sugar may fail to import as expected. As a workaround, break up the import file into smaller batches with less than 5,000 records.
- 75940 : Mass deleting more than 20 Account records with numerous related records may fail to delete as expected and result in an error.
- 75960 : Running JSMin version 2.x (e.g. 2.0.1) in PHP may cause unexpected issues when utilizing Sugar. Reverting to JSMin version 1.x (e.g. 1.1.0) should resolve the issue.
- 76007 : Inline editing the User field for records in the module’s list view (e.g. Accounts) may display an error upon save for users assigned a role with View and Edit permissions set to “Owner”. Reloading the web browser will resolve the issue and display the updated assigned user’s name for the record in the list view.
- 76040 : Certain modules may be marked as customized in Admin > Studio > Export Customizations after installing or upgrading to 7.7.0.0.
- 76067 : Certain meters (e.g. Standard Contacts, Family Tree, Accounts) in the D&B: Usage Meter dashlet may not show the used credit levels in green.
- 76068 : The D&B: Usage Meter dashlet may not display correctly when the connector is enabled for the Standard license type.
- 76107 : Generating Calls, Meetings, or Tasks reports grouped by “Day” for Date or Datetime fields (e.g. Day: Start Date, Day: Date Created, etc.) may result in a database failure error for certain database stacks (e.g. DB2).
- 76113 : When accessing Sugar using Chrome or Firefox, clicking the “i” icon for Call, Meeting, or Task record cells on the calendar view may cause the calendar grid to appear blank and improperly display the more information pop-up window at the bottom of the screen.
- 76124 : Users assigned a role with View permission set to “None” for a module (e.g. Contacts) may be able to preview the module record via the Search and Add drawer for Sidecar modules.
- 76126 : When entering a dependency formula for a DropDown-type field, clicking the Cancel button on Studio’s formula builder may not close the window as expected and result in an error.
- 76130 : Printing reports with charts (e.g. Summation-type reports) to PDF may not display correctly when logged in with languages using right-to-left script (e.g. Arabic, Hebrew).
- 76141 : When related record subpanels in Legacy module detail views (e.g. Contracts) are collapsed for newly created records, the double arrow icon may no longer appear for users to expand the subpanel. As a workaround, refresh the page and the double arrow icons will appear again.
- 76151 : When viewing Sidecar module records in list view, Firefox users cannot click the “x” to cancel an applied saved filter as expected. As a workaround, apply the All {Records} filter to reset the list view.
- 76166, 76167 : Users are improperly allowed to set the lead’s status to “Converted” via the Leads subpanel and Mass Update panel.
- 76494 : For some On-Demand instances, the Forecasts list view may not display as expected after upgrading to 7.7.0.0.
- 76524 : Dependent fields may not appear in the layout (e.g. Record View) as expected if the parent field (e.g. parent dropdown) is not present.
- 76574 : Disabling and enabling modules via Admin > Search then scheduling a system index prior to saving may cause a 500 error to occur when performing a global search.
- 76647 : Configuring the email settings and sending a test email via Admin > Email Settings may not work as expected when logged into Sugar with Brazilian Portuguese language. As a workaround, log into Sugar with the English (US) language to configure and send test email.
- 76698 : Previously existing reports may not display the Primary Team Name field values (e.g. East) as hyperlinks after upgrading to 7.7.1.0. Creating a new report including the Primary Team Name field will display the field values as hyperlinks as expected.
- 76699 : When logged into Sugar using certain browsers (e.g. Internet Explorer 11), multiselect-type fields may not display properly when inline editing or mass updating the field via the module’s list view.
- 76779 : Removing the Guests field from the Calls or Meetings record view layout may cause the browser to load indefinitely when attempting to access the module’s record view (e.g. Calls).
- 76968 : Deploying packages in Module Builder may fail with an error when temp files are detected in the file system by the package scanner.
- 77005 : The View Change Log option may disappear from the custom module’s record view after upgrading to 7.7.1.0.
- 77015 : When using the
SetRequired
dependency, any required fields that are not completed do not get highlighted when in-line editing and saving the record. - 77100 : When defining the report’s filter, the autocomplete may fail to pull up matches as expected.
- 77205 : Viewing a page (e.g. list view) in Sugar without performing any actions for a period of time (e.g. 3 minutes) may cause an error message (Request Timeout: The server is not responding. Check your internet connection.) to appear unexpectedly.
- 77260 : Session locking may cause performance issues in Sugar.
- 77302 : Upgrades may fail due to queries posted by the upgrade exceeding the
max_allowed_packet
database setting. - 77311 : Subpanels may not work as expected after upgrading to 7.7.1.1 if certain files exist in the instance.
- 77340 : Removing the Expected Close Date column via Admin > Forecasts Settings may cause the forecast worksheet and the Forecast Bar Chart dashlet to display incorrectly.
- 77362 : When creating or editing an alert email template for workflows, certain related modules may not be available to select as expected in the Related Module dropdown field.
- 77673 : When logged into Sugar using Safari 9, clicking the team name (e.g. East) in reports may improperly open Sugar’s home page instead of navigating to the team’s detail view.
- 77725 : List view loads may experience performance issues if dependent fields containing a
related()
function is added to the module’s list view.
Developer
Development Changes
The following changes in release 7.8.0.0 may affect developers:
- The
['csrf']['soft_fail_form']
config secodeing now defaults tofalse
and the['csrf']['opt_in']
setting has been removed. This means that CSRF tokens are now enabled out-of-the-box. If necessary, developers can set$sugar_config['csrf']['soft_fail_form'] = true;
in non-production instances to disable enforcement of CSRF tokens, but FATAL notices will be generated in thesugarcrm.log
whenever a CSRF authentication failure happens. For more information, please refer to this developer blog post. - The new config setting
allow_oauth_via_get
can be set to true to permit anoauth_token
URL parameter to be used to pass the access token to Sugar’s v10 REST API. The default value isfalse
. This setting is provided for compatibility reasons, but enabling it is not recommended due to security concerns with passing session identifiers as URL parameters. - The new config setting
email_mailer_timeout
can be used to change how long Sugar will wait for confirmation from an SMTP server as the default value of 20 seconds may be insufficient depending on your email server’s processes and needs. - For those Sugar Developers with access to Sugar Test Tools, Gulp is now used instead of Grunt for unit test automation. Refer to the Gulp website for more information.
- The
DashboardHeaderpaneView
has been changed to extend fromHeaderpaneView
instead of fromRecordView
. - JavaScript source maps have been introduced for Sidecar libraries. The Sidecar source map will be loaded automatically by browser developer tools to allow you an unminified look at sidecar.min.js. This replaces the need for sidecar.js to be shipped with the product. Source Maps support may need to be enabled in your browser. For example, this Chrome Dev Tools page provides guidance for doing so in Chrome. The Sidecar source map is located at
sidecar/minified/sidecar.min.js.map
. - Empty Sidecar components
BaseLayout
andBaseView
have been added which can be useful for Sugar Developers who want to override existing Sidecar Layouts and Views without inheriting from an existing implementation. - Previously, the Preview components were initialized only when first rendering the page, which sometimes meant the Preview components were not properly initialized for the correct module when a record was previewed. The Preview components (such as the
PreviewView
) are now re-initialized and re-rendered whenever a preview icon is clicked to ensure it is properly initialized. - The
oauth_token
URL parameter can should longer be used with Sugar v10 REST API due to security concerns with passing session identifiers as a URL parameter. This parameter is now disabled by default. Please use theOAuth-Token
HTTP header to pass access tokens to Sugar v10 REST API. - The default model class for Sidecar’s
Data.BeanCollection
is nowData.Bean
instead ofBackbone.Model
. - The parent Sidecar controller used with a Sidecar component can be controlled using the
type
property in view metadata. A warning has been added when new Sidecar controllers are created that only extend from a different parent controller since using thetype
property is preferred and will reduce use of browser memory and increase performance. - The Sugar user interface can now be embedded as an iframe within other websites.
- The Sugar
ModuleInstaller
class can now be customized using the custom directory and is located atModuleInstall/ModuleInstaller.php
. - With the addition of new password hashing backends, legacy (MD5) password hashing is now disabled by default but can be enabled by using the
$sugar_config['passwordHash']['allowLegacy'] = true;
config setting. A utility for working with new Sugar password hashing methods is available on Github. - Sugar installs will fail if an unsupported version of Elasticsearch is installed. Please review the Supported Platforms documentation for supported Elasticsearch versions.
- The following commands have been added to the
sugarcrm
command line interface:elastic:explain Return search results with the "explain" details to show relevance score. password:config Show password hash configuration. password:reset Reset user password for local user authentication. password:weak Show users having weak or non-compliant password hashes.
- The
SugarQuery
object byFilterApi
class can now be extended by overriding the newly introducedFilterApi#newSugarQuery()
static method. This makes it easy to inject customSugarQuery
objects intoFilterApi
subclasses. - The Sidecar routes used with the Home module have been moved from
include/javascript/sugar7.js
tomodules/Home/clients/base/routes/routes.js
. - There has been a change in the supported parameters for Sidecar’s
Layout#loadData()
andView#loadData()
. Previously, the optionalsetFields
parameter could be used to change the fields set on the current context. This allowed a single component on the page to alter the behavior of other components on the page, which was unwise. Support for thesetFields
parameter has been removed. The method signature for SidecarloadData()
functions are nowloadData(options);
. - A new boolean flag called
fetch
has been added to SidecarContext
. This flag can be used to control if the currentContext
will fetch data from the server. For example,var context = app.context.getContext({ collection: new app.BeanCollection(), fetch: false, });
When
fetch === false
then theContext#loadData()
method will immediately return when called. - The method signature for error callbacks for
Model#fetch
,Model#destroy
,Model#save
, andCollection#fetch
has changed. TheBackbone.Model
orBackbone.Collection
is passed as the first parameter and the second parameter is now the HttpError XHR object.
Example using the previous method signature:>this.model.save({}, { error: function(error) { ... } });
Example using the new signature:
this.model.save({}, { error: function(model, error) { ... } });
- The Sidecar
app.metadata.getField()
API has been updated to allow access to module-specific field metadata. This additional behavior relies on new method signature with anoptions
object. The existing method signature forapp.metadata.getField()
continues to work but is deprecated in this Sugar release. For example, to fetch the metadata for the Accounts module’s description field you can useapp.metadata.getField({ module: 'Accounts', name: 'description' });
. - Sugar Developers are advised in this and future Sugar releases to not modify the
this.meta
property in Sidecar controllers. Sidecar metadata should be defined in PHP and not modified at runtime by the JavaScript controller. Doing so can introduce errors. - The function signature for
app.acl.hasAccess((action, module, ownerId, field, recordAcls)
has been refactored. It is now possible to pass anoptions
object for the optional parameters (field
andrecordAcls
). TheownerId
parameter was not previously used or supported since the current user was respected. Callingapp.acl.hasAccess()
using the old convention continues to work for compatibility reasons.
Example using previous signature:app.acl.hasAccess('edit', 'Accounts', null, 'industry', null);
Example using new signature:
app.acl.hasAccess('edit', 'Accounts', {field: 'industry'});
- The default automatic close timeout when using Sidecar Alerts is now 5 seconds instead of 9 seconds. Sugar Developers can optionally provide a delay time in milliseconds to change the delay before closing. For example:
// This Sidecar Alert message will automatically close after 10 seconds app.alert.show('message-id', { level: 'success', messages: 'Task completed!', autoClose: true autoCloseDelay : 10000 });
- A boolean
lazy_loaded
metadata property is now supported in Sidecar Layouts. When set totrue
, the Layout components will not be initialized automatically when the Layout is initialized which prevents data from being loaded automatically. Sugar Developers can later manually initialize components by callingthis.initComponents(this._componentsMeta)
and fetch data when necessary. - The SugarBean
update_date_modified
flag now behaves as expected forbefore_save
logic hooks. Refer to the SugarBean documentation for more details. - The structure of the Preview Layout metadata has changed as a result of performance improvements in the design. This means that custom Preview Layout metadata must set the
lazy_loaded
flag totrue
. For example,$viewdefs['base']['layout']['preview'] = array( 'lazy_loaded' => 'true, 'components' => array( ... ), ... )
- The Sugar record view (RecordView) was being rendered twice on each page load. This performance issue has been corrected. Now the record view renders once and the individual field components are re-rendered when data is available. Sugar Developers should test their record view customizations to ensure this does not introduce any regressions in code that relied on this behavior. Specifically, Developers should test any custom Sidecar code which relies on field data being available during record view render, since it will likely break as the views are rendered before fields.
- The following classes are now loaded using the
SugarAutoLoader::requireWithCustom()
API which allows overriding and extending the following Module Builder parser classes via the custom directory:DashletMetaDataParser
GridLayoutMetaDataParser
ListLayoutMetaDataParser
ParserDropDown
ParserLabel
ParserVisibility
PopupMetaDataParser
SearchViewMetaDataParser
SidecarFilterLayoutMetaDataParser
SidecarGridLayoutMetaDataParser
SidecarListLayoutMetaDataParser
SidecarPortalListLayoutMetaDataParser
SidecarSubpanelLayoutMetaDataParser
SubpanelMetaDataParser
- The Sidecar Router has a new method called
app.router.get(name)
. It returns the callback function associated with the routename
. This can be used, for example, to allow fallback behavior to an existing core Sidecar route, as demonstrated below:var routes = [ { name: 'myRouteCreate', route: 'HelloWorld/create', callback: function() { // HelloWorld module specific logic for record creation // ... // then fallback to default create record route app.router.get('create')('HelloWorld'); } }, { name:"myRoute", route: "HelloWorld(/:my_custom_route)", callback: myRoute }, ... ];
- It is now possible for Sugar Developers to mark global Sidecar Events (events triggered on
app.events
) as deprecated. When registering a global event, you can specify an optionaldeprecated
boolean parameter using anoptions
object argument. This will trigger warnings in the JavaScript console whenever a listener subscribes usingapp.events.on()
. For example,app.events.register('app:old_event:start', this, {deprecated: true}); ... app.events.on('app:old_event:start', ...); // Throws deprecation warning
- The Filter metadata property called
filter_relate
should only be used to dynamically filter based upon a Relate field. All other field types should use thefilter_populate
property which allows filtering based upon pre-defined values. See the Developer Guide for full documentation on Filters. An example of the supported usage is shown below://record to filter related fields by var contact = app.data.createBean('Contacts', { 'first_name': 'John', 'last_name': 'Smith', 'assigned_user_id': 'seed_sally_id' }); //create filter var filterOptions = new app.utils.FilterOptions() .config({ 'initial_filter': 'filterAccountTemplate', 'initial_filter_label': 'LBL_FILTER_ACCOUNT_TEMPLATE', 'filter_populate': { 'account_type': ['Customer'], }, 'filter_relate': { 'assigned_user_id': 'assigned_user_id' } }) .populateRelate(contact) .format(); //open drawer app.drawer.open({ layout: 'selection-list', context: { module: 'Accounts', filterOptions: filterOptions, parent: this.context } });
- Sugar Developers can now provide the filter ID as part of a Filter API request rather than passing full filter definitions. This means a user’s filters do not need to be fetched from server prior to being used. The Filter API will now throw a
SugarApiExceptionInvalidParameter
whenever a filter ID is improperly specified. For example,<instance>/rest/v10/<module>/filter?filter_id=<filter id>
would execute a pre-existing filter with the given ID. Another example,<instance>/rest/v10/<module>/filter?filter=<filter definition>&filter_id=<filter id>
would append additional filter criteria to a pre-existing filter. - The Sidecar property
app.config.logLevel
has been deprecated and will be removed in a future release. Useapp.config.logger.level
instead. - The SubpanelCreateLayout controller (
clients/base/layouts/subpanel-create
) has been deprecated. The SubpanelCreateLayout will use the SubpanelLayout controller instead of extending it. - Sidecar’s
Core.CacheManager#add
method has been deprecated and will be removed in a future release. - The Sidecar
meta
property in views and layout definitions has been deprecated. This property allowed you to anonymously define Sidecar components within a Sidecar Layout. Sugar Developers should define Sidecar components within individual metadata files and reference them by name within Layout metadata. Sugar Developers that want to extend metadata for a particular component within a Sidecar Layout should use thexmeta
property instead.
For example, if you wanted to create a custom filterpanel that overrides the metadata defined in base filterpanel, then you could create a component like the following.$viewdefs['base']['layout']['custom-filterpanel'] = array( 'components' => array( array( 'layout' => 'filterpanel', 'xmeta' => array( 'filter_options' => array( 'auto_apply' => false, 'stickiness' => false, 'show_actions' => false, ), ), ), ), );
- The
./clients/base/layouts/subpanels-create/subpanels-create
Sidecar layout has been deprecated and will be removed in a future release. - The Sidecar Field controller’s property
this.def
has been deprecated in this release.this.def
is the combination of a field’s definition from Vardefs (set of properties defining the field and its internal behavior) and the field’s definition in Viewdefs (set of properties defining how the field will render from a view/UI standpoint) which caused problems when there were name collisions. Sugar Developers should rely onthis.viewDefs
andthis.fieldDef
when accessing metadata from Sidecar Field controllers. - The jQuery
timepicker
plugin has been upgraded from version 1.4.10 to version 1.8.8. No changelog is available, so please use the jQuery timepicker Github repository to review API changes. - The Tooltip plug-in has been deprecated and will be removed in a future release. There has been a change in behavior for how tooltips are attached to UI elements, resulting in a significant rendering performance improvement. Sugar Developers using custom tooltips on sidecar components will no longer need to use Tooltip plug-in. If the
rel=tooltip
attribute is in the Handlebars template, then tooltips will continue to work. - The EllipsisInline plug-in has been deprecated and will be removed in a future release. Sugar Developers using the EllipsisInline plugin will no longer need to use this plug-in for their Sidecar components. If the ellipsis_inline class is in component’s Handlebars template, then ellipsis behavior will continue to work. Event bubbling is being used to implement these features rather than a DOM search, which significantly improves rendering performance. Developers should verify that the
ellipsis_inline
class andrel=tooltip
attribute are not used where it is not needed to prevent ellipsis and tooltips from appearing. - The Sidecar Field controller functions named
createErrorTooltips
anddestroyAllErrorTooltips
have been deprecated and will be removed in a future release. - The
ErrorDecoration
Sidecar plug-in functions namedshowTooltip
andhideTooltip
have been deprecated and will be removed in a future release. - The
app.utils.tooltip
JavaScript class has been deprecated and will be removed in a future Sugar release. - The v10 REST
GET /<module>/filter/:record
endpoint has been deprecated in favor of theGET /<module>/filter
endpoint and will be removed in future REST API versions. An equivalent call toGET /<module>/filter/?
can be accomplished usingGET/<module>/filter?filter_id=?
. - The deprecated
PasswordmodalView
has been removed for both portal and base platforms in this Sugar release. There is no replacement API because these views were rarely used. The views were located at./clients/base/views/passwordmodal
and./clients/portal/views/passwordmodal
. - The unused and empty SugarMVC Notifications module controller has been removed. The file was located at
./modules/Notifications/controller.php
. - The
AvatarField#_getModuleName()
method has been removed from AvatarField (clients/base/fields/avatar/avatar.js
). - The deprecated Sidecar method
app.lang.getModuleSingular
has been removed in this release. Sugar Developers should useapp.lang.getModuleName
instead. - The Sidecar
NewsView
which was used for the News dashlet has been removed after previously being disabled and deprecated in Sugar 7.7.2.0. The./clients/base/views/news/
directory was removed. Any remaining News dashlets appearing on user dashboards will be removed during upgrade. - The code for an external job queue framework that was added in Sugar 7.7 has been removed including
queueManager.php
andsrc/JobQueue/
. The 7.7 implementation of job queue will not be completed. Thecron.php
based job queue and scheduler continues to be supported. - The deprecated boolean
visible
and stringaccess
parameters supported by Sidecarapp.metadata.getModuleNames()
method have been removed in this release. Theapp.metadata.getModuleNames(options)
method now only accepts anoptions
hash. - The following elements were previously deprecated and have now been removed:
JavaScript functions:Data.Bean.setDefaultAttributes
Data.Bean.setDefaultAttribute
Data.Bean.removeDefaultAttribute
Data.Bean.getDefaultAttribute
Data.Bean.getDefaultAttributes
App.File.checkFileFieldsAndProcessUpload
App.view.View.getTemplateFromMeta
App.view.fields.BaseParentField.checkAcl
App.view.layouts.BaseHeaderLayout.showMenu
App.view.layouts.BaseHeaderLayout.hideMenu
App.view.views.BaseBwcView.beforeRoute
Handlebars Helper functions:
getFieldValue
JavaScript classes and associated files:
App.view.layouts.CreateActionsLayout
App.view.views.BaseCreateActionsView
App.view.views.BaseRecordlistView.setScrollAtLeftBorder
App.view.views.BaseRecordlistView.setScrollAtRightBorder
JavaScript namespaces:
App.file
(It is now hardcoded to an unmodifiable empty object)
Sidecar utility functions:
app.date.compareDates()
(useapp.util.compare()
instead)app.date.isDateAfter()
(useapp.util.isAfter()
instead)app.date.isDateBefore()
(useapp.util.isBefore()
instead)app.date.isDateOn()
(useapp.util.isSame()
instead)app.date.isDateBetween()
(useapp.util.isBetween()
instead)
- jQuery has been updated from version 1.7.1 to version 1.11.3. The jQuery Migrate 1.2.1 plug-in has been included to preserve compatibility for custom code using pre-1.9 jQuery APIs. The jQuery Migrate plug-in will be removed in a future release so Sugar Developers should start migrating code using pre-1.9 jQuery APIs to prevent future breakages. Refer to the JQuery Migrate Readme for more details. Refer to the JQuery Migrate Readme for more details.
- The version of jQuery that is used within Legacy modules has been upgraded to version 1.11.1. BWC customizations that used jQuery APIs should be retested to verify they continue to work with this version of jQuery.
- The TinyMCE library has been upgraded from version 3.5.8 to version 4.1.8.
- The
Backbone.js
library has been upgraded from version 0.9.10 to version 1.2.3. Developers that have written code directly against Backbone.js APIs should test their customizations to ensure regressions have not occurred. There are, in some cases, a change in order of parameters used in some Backbone APIs. Usage of Sidecar provided APIs would be unaffected. Refer to the Backbone documentation for more details. - The
Underscore.js
library has been upgraded from version 1.4.4 to version 1.8.3. Developers that have written code directly against Underscore APIs should test their customizations to ensure regressions have not occurred. There are, in some cases, a change in order of parameters used in some Underscore APIs. Usage of Sidecar-provided APIs are unaffected. An Underscore API change introduced in version 1.5.0 means that using_.bindAll(object)
no longer works. You must specify the specific method names to bind using_.bindAll(object, methodNames)
. Any custom Sugar code that relies on_.bindAll(object)
needs to be updated. We recommend Sugar Developers use Underscore_.bind()
or some other alternative to pass context to individual callback methods instead.
Additional Product Information
Sugar 7.8.0.0 does not include support for the following pieces of functionality:
- Sugar Mobile Plus
Supported Platforms
For information on supported platform components, see Sugar 7.8.x Supported Platforms.
Upgrade Paths
Package | From Version(s) | MySQL | SQLServer | DB2 | Oracle |
New Installs | ✓ | ✓ | ✓ | ✓ | |
7.7.x-to-7.8.0.0 | 7.7.1.1 7.7.1.2 7.7.2.0 |
✓ | ✓ | ✓ | ✓ |
Recent Comments