So what does Sugar Engineering have planned for the Hackathon?

The Hackathon will be informal and will run at the same time as the Roundtables in a separate part of the UnCon space.  The Hackathon space will be a lounge atmosphere with couches, beverages, food, etc.  People can work on whatever they want to but we’ll have planned projects lined up and a crowd of Sugar Engineers ready and willing to help out with anything you’re working on.  Whether that’s helping you get a local Sugar development environment setup, help you troubleshoot some problems, or design a fancy CRM implementation or integration with another application.

The only prize for Sugar Developers at the Hackathon is knowledge (meaning there will be no “winner”).  But if a Sugar Developer creates a project or prototype and stands up and presents it at the end of UnCon then they’ll also get a coveted SugarCRM UnCon hoodie.

You know you want it.

Limited Edition.  You know you want this.

However, we’ve done some homework and prepared some projects that you can work.  We’re in the process of creating a public GitHub repository with the UnCon materials included.  So it’s a good idea to create a GitHub account if you haven’t yet already.

Continue Reading…

I want to let Sugar Developers know that we’re really excited about the new format for UnCon this year!

Part of the new format this year is to have the UnCon venue separated into two sections.  When you first enter the space, we will have a lounge atmosphere with couches and refreshments.  This first section will be the Hackathon space and will be a topic of a later blog post.  The second half of the space furthest from the door will be where we will have (for the first time) Sugar Engineering hosted un-conference roundtable discussions and workshops.

So what the heck does that mean anyway?

Continue Reading…

Hey Sugar 7 Developers!

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.

Notice the location of the headerpane DIV in the Sugar 7.5 Record view HTML screenshot

Notice the location of the .headerpane DIV in this Sugar 7.5 Record view HTML screenshot

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.

  1. Adding custom field validation (such as validation tasks) to Record view (Example from Sugar Developer Guide)
  2. Adding buttons to Record view including overriding view controller to implement a custom action (Example from Sugar Developer Guide)
  3. Adding event listeners to Record context or layout (Example from Sugar Developer Guide)
  4. Adding metadata customizations such as new custom fields, panels, or Sugar Logic dependencies (Via Studio, Extensions framework, or custom directory)
  5. 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  We will also have Sugar Engineers on hand to discuss this topic at UnCon at SugarCon.

Sugar 7 allows you to define your own view metadata for creating new custom layouts and views.  In these custom view definitions, the correct use of the type and name attributes is essential when you want to reuse metadata, controllers, or templates from other Sidecar components. But what are type and name?  How are they used? In this post, we hope to provide you a better understanding of these attributes and how they are used by Sidecar when your components get created.  Most importantly, this post will serve as a guide for the correct use of type and name in your Sugar 7 view metadata that will maximize your ability to reuse.

Read more below!

Continue Reading…

In a recent blog post by W-Systems, an Elite SugarCRM Partner, Christian Wettre showed off a cool enhancement to the Sugar 7 Saved Report Chart dashlet.  Very conveniently, they included a package you can download so you can easily install it and look at the code to see how it works without any fuss.  I just tried it in a Sugar 7.5.1 instance and it worked like a charm!

Since some of the most effective SugarCRM dashboard elements are charts based on reports, I find my dashboards full of those charts. These charts scream out for the ability to dig down into the underlying details. In the current release of SugarCRM 7 it is a little cumbersome to actually do this. We solved this with a code enhancement module that adds a drill down link to any Saved Report Chart dashlet. With this module installed you can click on the drill down link on any report based dashlet to open the dashlets underlying report in a new browser tab.

Head over to the W-Systems blog to see an instructional video and download this package for yourself!

A quick aside.  In production, SugarCRM recommends deploying new custom dashlets instead of overriding the built-in dashlets.  Users will be able find your custom dashlet just as easily as built-in dashlets while allowing the built-in dashlets to get upgraded.

If you’ve browsed the Sugar 7 JavaScript codebase much then you’ll notice that we use Underscore.js all over the place. Use of _.each, _.bind, _.debounce, _.filter, and more are littered throughout the Sugar 7 codebase.  It’s not uncommon to see multiple usages of it on the same line of code.

 this.resize = _.bind(_.debounce(this.resize, 200), this);

In order to get a quick estimate of how often Underscore is used, you can do a quick search for “_.” within JavaScript sources.  The Sugar 7.5 JavaScript codebase turns up 5,976 uses of Underscore.js!

We love Underscore for a couple different reasons.  First off, it helps make our JavaScript code much more readable than if we used vanilla JavaScript everywhere.  Secondly, there’s some handy utilities in Underscore that can be expertly applied to improve Sugar 7 application performance.

Read below to learn how several Underscore.js Function utilities can be used to improve performance and responsiveness of your apps.

Continue Reading…

This would be a good post to bookmark!

Francesca, one of our Sugar Community members, has a great post on the Sugar Community where she lists some of her favorite Sugar 7 resources and asks the community to list their own.  It has become one of our most active conversation threads in the Sugar Community.

In the same spirit, I wanted to summarize the Sugar 7 resources that the community shared in that thread including a few of my own. Let me know if I’m missing anything below!

Continue Reading…