Changing the Address Control to Open Google Maps Instead of Mapquest in Infor CRM Web

Out of the box in the Infor CRM (Saleslogix) Web client, when you click an address control to view it on a map it opens Mapquest. I have no idea who actually uses Mapquest, so this isn’t ideal and opening the address in Google Maps would be a far better option. This is changing in future versions of Infor CRM, however, why wait? It’s a pretty easy change to make.

Create a new Javascript file with the following code:

require([
    'dojo/_base/lang',
    'dojo/dom-attr',
    'dojo/aspect',
    'Sage/UI/Controls/Address'
], function (lang, domAttr, aspect, Address) {
	
    aspect.after(Address.prototype, 'startup', function() {
        domAttr.set(this.clientId + '-MapQuest', 'title', 'Google Maps');
    });
     
    lang.extend(Address, {
        showMap: function() {
            this.createFormItems();
            var values = this.getAddressValues();
            var map = { 'streetaddress': 'addr1', 'addr2': 'addr2', 'city': 'city', 'state': 'state', 'zip': 'postalcode', 'country': 'country' };
             
            var queryParams = []; 
            for (var key in map) {
                if (values[map[key]])
                    queryParams.push(encodeURIComponent((typeof values[map[key]] === 'object') ? values[map[key]].text : values[map[key]]));
            } 
 
            var win = window.open('http://maps.google.com/?&q=' + queryParams.join('+'));
        }
    });
     
});

This code overrides the showMap function in the Address control and replaces it with a new one that opens Google Maps instead of Mapquest.

To use the code above, I would recommend using our free Custom Loader Module. Once, that is installed, go to the SlxClient portal and select the SupportFiles tab, open the Custom\Modules folder. Then create a new folder named “Address” and create a file named “main.js” inside of that and paste in the code from above. If you’re not using the Custom Loader Module (really, you should be. It makes things so much easier), then you’ll need to wire up the code above in the base.master (or just add it in there enclosed in script tags).

ABOUT THE AUTHOR

Ryan Farley

Ryan Farley is the Director of Development for Customer FX and creator of slxdeveloper.com. He's been blogging regularly about SalesLogix, now Infor CRM, since 2001 and believes in sharing with the community. His new passion for CRM is Creatio, formerly bpm'online. He loves C#, Javascript, web development, open source, and Linux. He also loves his hobby as an amateur filmmaker.

Submit a Comment

Your email address will not be published. Required fields are marked *

Subscribe To Our Newsletter

Join our mailing list to receive the latest Infor CRM (Saleslogix) and Creatio (bpm'online) news and product updates!

You have Successfully Subscribed!