Sunday, June 8, 2014

Ribbon and UI Customizations


Email Template Selector

On the form ribbon of the Template Record add a flyout to display a list of Email Templates for leads. On click of a button in the flyout, set the Template field to the id of the specified Email Template. The flyout should be enabled only for existing, editable records.


Code:
/************************************************
populateArticles - function to populate a button
on the ribbon with the available disclaimers
Policy is 1
************************************************/
function PopulateArticles1(CommandProperties) {

    var serverUrl = Xrm.Page.context.getClientUrl();
    var requestUrl = serverUrl + "/xrmservices/2011/OrganizationData.svc/cdi_emailtemplateSet?$select=cdi_emailtemplateId,cdi_name&$filter=statecode/Value eq 0";
    
    $.ajax({
        type: "GET",
        contentType: "application/json; charset=utf-8",
        datatype: "json",
        async: false,
        url: requestUrl,
        beforeSend: function (XMLHttpRequest) {
            //Specifying this header ensures that the results will be returned as JSON.             
            XMLHttpRequest.setRequestHeader("Accept", "application/json");
        },
        success: function (data, textStatus, XmlHttpRequest) {
            var engines = data.d["results"];

            var theXml = '<Menu Id=\"Columbus.new_templaterecord.ClickDimensionButton\"><MenuSection Id=\"Columbus.new_templaterecord.ClickDimensionButton.Section\" Sequence=\"10\"><Controls Id=\"Columbus.new_templaterecord.ClickDimensionButton.Controls\">';
            var i = 0;
            for (engineKey in engines) {
                theXml += '<Button Id=\"' + engines[engineKey].cdi_emailtemplateId + "||" + engines[engineKey].cdi_name + '\" Command=\"new.new_templaterecord.ClickDimensionEmailTemplate.Command\" Sequence=\"' + ((i + 1) * 10).toString() + '\" LabelText=\"' + engines[engineKey].cdi_name + '\" />';
                i++;
            }
            theXml += '</Controls></MenuSection></Menu>';
            //prompt("the xml", theXml);
            CommandProperties.PopulationXML = theXml;

        },
        error: function (XmlHttpRequest, textStatus, errorThrown) {
            alert(XmlHttpRequest.status + "\n" + textStatus + "\n" + errorThrown);
        }
    });
}
/***  end populateArticles    ***/


/************************************************
openKbArticle - function to append a specific
disclaimer to the field
************************************************/
function openKbArticle1(CommandProperties) {
    var controlId = CommandProperties.SourceControlId;
   // alert(controlId);
    Xrm.Utility.openEntityForm("kbarticle", controlId);
}


function MainAlert1(CommandProperties) {
    var controlId = CommandProperties.SourceControlId;
var Tem_Type='100000000';
if(controlId != null)
{
var str_array = controlId.split('||');
for (var i = 0; i < str_array.length; i++) {
            // Trim the excess whitespace.
            str_array[i] = str_array[i].replace(/^\s*/, "").replace(/\s*$/, "");
        }
controlId=str_array[0];
var name=str_array[1];
    Xrm.Page.getAttribute("new_template").setValue(controlId);
Xrm.Page.getAttribute("new_name").setValue(name);
Xrm.Page.getAttribute("new_templatesource").setValue(Tem_Type);
}
else
{
 alert("Please Select the Template!");
 return;
}
}
/***   end openKbArticle   ***/

No comments:

Post a Comment

Get files of last hour in Azure Data Factory

  Case I have a Data Factory pipeline that should run each hour and collect all new files added to the data lake since the last run. What is...