Infor CRM Web Client: Formatting the Phone Column in the Activity or History Participants Tab

I had a customer request that the phone number column on the Infor CRM Participant tab of the Activity or History screens be formatted like phone numbers are elsewhere in the client instead of just a run together string of numbers.

To do this you need to extend the ActivityEditorAttendeesTab widget.

The easiest way to do this is to get the super-awesome Customer Loader Module from Ryan Farley. This is seriously one of the best add-ins ever made for the Infor CRM Web Client. If you aren’t using it yet, do it now.

Once you have the custom loader module installed, all you need to do is add a new folder under the Modules folder and drop in a main.js file into the new folder. In the js file we will use dojo’s aspect.after to extend the ActivityEditorAttendeesTab (you could do something similar for the History one if you want).

The code for that looks something like what follows. Note I added a formatter function to the phone column. In that formatter function, I first strip out any spaces, dashes or parenthesis. Next, I parse apart the phone number string into the constituent parts for US formatting of area code, prefix, suffix, and anything after that.

  • The end result is a 10 digit number would look like: (651) 867-5309
  • Anything over 10 digits would look like (651) 867-5309 393939
  • Anything under 10 digits would display as-is with no formatting applied.

 

//Formats phone column
require([
    'dojo/aspect',
    'Sage/MainView/ActivityMgr/ActivityEditorAttendeesTab'
], function (
    aspect,
    attendees    
) {
    aspect.after(attendees.prototype, 'createColumnConfig', function (columns) {    
        var phone = columns[6];
        phone.formatter = function (rowIdx, rowItem) {            
            if (!rowIdx) {
                return this.defaultValue;
            }

            var number = rowIdx;
            number = number.replace('(', '').replace(')', '').replace(/-/g, '').replace(/\s/g, '');
			if (number.length<10) {
				//do nothing as it is less than 10 characters
			}
			else {
				var areacode = number.substring(0, 3);
				var prefix = number.substring(3, 6);
				var suffix = number.substring(6, 10);
				var extra = (number.length === 10 ? '' : number.substring(10));

				number = '(' + areacode + ') ' + prefix + '-' + suffix;
				if (extra) number += ' ';
				number += extra;
			}
      
            return number
        }
        return columns;
    });
});



ABOUT THE AUTHOR

Kris Halsrud

Kris Halsrud is a Senior Analyst / Developer for Customer FX Corporation.

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) news and product updates!

You have Successfully Subscribed!