Display a count of Sites selected

AshwiniR
Tera Contributor

    When the "Multiple Sites Visibility" checkbox is checked or unchecked, a message indicating the count of sites present in the 'Multiple Sites' field is displayed below the "Multiple Sites Visibility" field.

in the below image ,2 sites are selected. So message below 'Multiple Sites Visibility ' field should be - " Number of Sites  affected are 2".

 

 

4 REPLIES 4

KeerthiP
Mega Guru

Hi

 

You can create a client script to achieve the same.

Create an Onchange Client script ..I have basic script below ..You can modify that accordingly

 

function onChange(control, oldValue, newValue, isLoading) {
if (isLoading) {
return;
}

// Get  count of sites from the 'Multiple Sites' field
var multipleSitesField = g_form.getValue('multiple_sites');
var sitesCount = multipleSitesField ? multipleSitesField.split(',').length : 0;

var message = 'Number of Sites affected are ' + sitesCount;
g_form.showFieldMsg('multiple_sites_visibility', message, 'info');
}

sunil maddheshi
Tera Guru

@AshwiniR 

Please write onchange client script, 

  • Table: Your case table (e.g., case)
  • Type: onChange
  • Field: Multiple Sites Visibility (u_multiple_sites_visibility)
 var multipleSites = gForm.getValue('u_multiple_sites'); 

    // Count the number of sites (assuming they are comma-separated)
    var siteCount = multipleSites ? multipleSites.split(',').length : 0;

    // Display the message
    gForm.clearMessages(); // Clear previous messages
    gForm.addInfoMessage("Number of Sites affected are " + siteCount);

Please mark correct/helpful if this helps you!

 

 

AshwiniR
Tera Contributor

No.. Both are not working as expected. But Thanks for the promt reply.

AshwiniR
Tera Contributor

The solution is given below, We tried Script include .

Script include

countSites: function() {
        var multisites = this.getParameter('sysparm_multipleSites');
        var count = " ";
        var multisite = new GlideRecord('sn_customerservice_case');
        multisite.addQuery('sys_id', multisites);
        multisite.query();
        if (multisite.next()) {
            var mSite = multisite.u_multiple_site_name;
            // gs.print(mSite);
            var sitesArray = mSite.split(',');
            count = sitesArray.length.toString();
            //gs.print(count);
            // return mSite;


        }
        return "Number of Sites are:" + count;


Client script-



function onLoad() {
    //Type appropriate comment here, and begin script below

    var ga = new GlideAjax('GCXSiteBasedAutoPopulation');
    ga.addParam('sysparm_name', 'countSites');
    ga.addParam('sysparm_multipleSites', g_form.getUniqueValue());

    ga.getXML(validate);

    function validate(response) {
        var answer = response.responseXML.documentElement.getAttribute("answer");
       


        g_form.showFieldMsg('u_multiple_sites_visibility', answer, 'info');
    }

}