Saturday, November 17, 2018

Populate email fields by using email template


            var body = "";
            var subject = "";
            var titleInfo = "title info";
            var req = new XMLHttpRequest();
            req.open("GET", parent.Xrm.Page.context.getClientUrl() + "/api/data/v8.2/templates?$select=body,subject,templateid,templatetypecode,title&$filter=startswith(title,'" + titleInfo + "')", false);
            req.setRequestHeader("OData-MaxVersion", "4.0");
            req.setRequestHeader("OData-Version", "4.0");
            req.setRequestHeader("Accept", "application/json");
            req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
            req.setRequestHeader("Prefer", "odata.include-annotations=\"*\"");
            req.onreadystatechange = function () {
                if (this.readyState === 4) {
                    req.onreadystatechange = null;
                    if (this.status === 200) {
                        var result = JSON.parse(this.response);
                        for (var i = 0; i < result.value.length; i++) {
                            body = result.value[i]["body"];
                            subject = result.value[i]["subject"];
                        }
                    } else {
                        Xrm.Utility.alertDialog(this.statusText);
                    }
                }
            };
            req.send();
            /*Parsing Subject */
            if (DOMParser) {
                parser = new DOMParser();
                xmlDoc = parser.parseFromString(subject, "text/xml");
            } else {
                xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
                xmlDoc.async = false;
                xmlDoc.loadXML(subject);
            }
            var _subject = getInnerText(xmlDoc.childNodes[0].childNodes[1].firstChild.nodeValue);

            /*Parsing Body */
            if (DOMParser) {
                parser = new DOMParser();
                xmlDoc = parser.parseFromString(body, "text/xml");
            } else {
                xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
                xmlDoc.async = false;
                xmlDoc.loadXML(body);
            }
            var _body = xmlDoc.childNodes[0].childNodes[1].firstChild.nodeValue;

            if (_subject != "")
                Xrm.Page.getAttribute('subject').setValue(_subject);
            if (_body != "")
                Xrm.Page.getAttribute('description').setValue(_body);



//
function getInnerText(html) {
    var tmp = document.createElement("DIV");
    tmp.innerHTML = html;
    return tmp.textContent || tmp.innerText || "";
}