Quantcast
Channel: SalesLogix 8.1 – Customer FX
Viewing all articles
Browse latest Browse all 25

Modifying the duration control drop down in the Infor CRM (formerly Saleslogix) activity area

$
0
0

Infor CRM (formerly Saleslogix) has decided in their wisdom to hard code the duration control with some random elements.  Changing this random list is way harder than it needs to be, but lets look at what it takes.

First we need to add a new javascript file extending the DurationSelect control.  We will call this CustomControlsModule.js

define(‘CFX/CustomControlsModule’, [
‘dojo/_base/declare’,
‘dojo/ready’,
‘dojo/aspect’,
‘dojo/_base/lang’,
‘Sage/UI/Controls/DurationSelect’
],

    function (
        declare,
        ready,
        aspect,
        lang,
        DurationSelect
    ) {
        var customControlsModule = declare(‘CFX.CustomControlsModule’, null, {
            initailize: function () {
                var arr = getPicklistItems(‘Activity Duration’);               
                lang.extend(Sage.UI.Controls.DurationSelect, {
                    timeIncrements: arr //[0, 5, 10, 15, 30, 60, 120, 240, 480, 960, 1]
                });
            }
        });

        function getPicklistItems(
        picklistName
     ) {
            var service = Sage.Data.SDataServiceRegistry.getSDataService(‘system’);
            var request = new Sage.SData.Client.SDataResourceCollectionRequest(service)
            //var items = new Array();
            var items = [];
            request.setResourceKind(‘picklists’);
            request.setQueryArg(“where”, “name eq ‘” + picklistName + “‘”);
            request.setQueryArg(“include”, “items”);
            request.read({
                success: function (feed) {
                    for (var i = 0; i < feed.$resources.length; i++) {
                        var entry = feed.$resources[i];                       
                        for (var i2 = 0; i2 < entry.items.$resources.length; i2++) {
                            var item = entry.items.$resources[i2];                           
                            items.push(item.text);
                        }
                    }

                    return items;
                },
                failure: function (feed) { }
            });           
            return items;
        }

        return customControlsModule;

    });

 Next we need to add a main,js file that will inject our custom control into the standard pages:

define([                     



‘CFX/CustomControlsModule’,

],

function(CustomControlsModule) {

var customControlsModule = new CustomControlsModule();

customControlsModule.initailize();


  });

 Finally we have to add our custom main,js to get loaded into the base.master and dashboard.master files.


Viewing all articles
Browse latest Browse all 25

Trending Articles