<html><head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<meta><meta><meta><meta><meta><meta><meta><meta><meta><meta><meta><meta><meta><meta><meta><meta><meta><meta></head>
<body style="word-wrap: break-word;" onfocusout="parent.setEmailRange();" lang="en-US" dir="LTR">
    <div id="Loading" style="font-family: undefined;">Loading...</div>
    <script language="javascript">
function CheckStatus() {
    var d = new Date();

    var settings = {
        "async": true,
        "crossDomain": true,
        "url": EventManagerUrl + "/get?transactionId=" + TransactionId + "&Rnd=" + d.valueOf(),
        "method": "GET",
        "headers": {
            "cache-control": "no-cache"
        }
    }
    $.ajax(settings).done(function (response) {
        
        if (response.result.toLowerCase() == "found") {
            switch (response.state) {
                case "Complete":
                    if (response.status.toLowerCase() == "failure")
                    {
                        $("#Loading").html("<b>Error: </b>" + response.message);
                    }
                    else
                        GoToWorkspace();
                    break;
                case "Queued":
                    setTimeout("CheckStatus()", 2000);
                    break;
                case "InProgress":
                    setTimeout("CheckStatus()", 2000);
                    break;
                case "Retrying":
                    alert("Retrying");
                    break;
                default:
                    debugger;
                    break;
            }

        }
        else {
        }

    });
}

function PublishProject()
{
    $("#Loading").text("Setting Up Plan...");
    var settings = {
        "async": true,
        "crossDomain": true,
        "url": EventManagerUrl + "/" + IntegrationId,
        "data": '{itemid:"' + ItemId + '",strategy:"OnePlanUpdate"}',
        "method": "POST",
        "headers": {
            "cache-control": "no-cache"
        }
    }

    $.ajax(settings).done(function (response) {
        if (response.success) {
            TransactionId = response.transactionId;
            CheckStatus();
        }
        else {
            alert(response.message);
        }

    });
}

function CheckMap()
{
var settings = {
            "async": true,
            "crossDomain": true,
            "url": EventManagerUrl + "/GetMapId?IntegrationId=" + IntegrationId + "&Direction=1&ItemId=" + ItemId,
            "method": "GET",
            "headers": {
                "cache-control": "no-cache"
            }
        }

        $.ajax(settings).done(function (response) {

            if (response.status == "Success") {
                if(response.mapId == "")
                {
                PublishProject();
                }
                else
                {
                GoToWorkspace();
                }
            }
            else {
                alert(response.message);
            }
        });
}

function GoToWorkspace()
{
    var settings = {
        "async": true,
        "crossDomain": true,
        "url": EventManagerUrl  + "/GetButtonUrl?IntegrationId=" + IntegrationId + "&Direction=0&Buttons=ItemUrl.BaseGrid&ItemId=" + ItemId,
        "method": "GET",
        "headers": {
            "cache-control": "no-cache"
        }
    }

    $.ajax(settings).done(function (response) {
        location.href=response[0].url
    });

}

var IntegrationId;
var ItemId = parent.window.Xrm.Page.data.entity.getId().replace('{','').replace('}','').toLocaleLowerCase()
var MapId;
var tries = 0;
var EventManagerUrl = "https://services.oneconnect.ai/projectconnect/events";
var TransactionId ;

var settings = {
    "async": true,
    "crossDomain": true,
    "url":  EventManagerUrl   + "/GetIntegrationsForSite?siteid=" + parent.window.Xrm.Page.context.getClientUrl() + "&strategy=OnePlanUpdate",
    "method": "GET",
    "headers": {
        "cache-control": "no-cache",
        "postman-token": "971b5492-1473-90fb-be27-f60a623f4425"
    }
}


$.ajax(settings).done(function (response) {

    if (response.length > 0) {

            IntegrationId=response[0].integrationId;
    CheckMap();
    }
    else {
        alert("This site has not been configured for integrations.");

    }
});


    </script>

</body></html>