// Function to call the Power Automate flow function g_CallFlow(flowUrl, payload, fnDisplayError, fnSuccess, fnFailure) { shell.ajaxSafePost({ type: "POST", url: flowUrl, contentType: "application/json", data: JSON.stringify(payload), processData: false, global: false, success: function (response) { if (fnSuccess) { fnSuccess(response); } }, error: function (xhr) { if (xhr.status >= 400) { if (fnDisplayError) { fnDisplayError("Failed to load data due to a server error."); } g_CheckIfUserSessionAvailable(); } if (fnFailure) { fnFailure(); } } }).fail(function (jqXHR, textStatus) { if (fnDisplayError) { fnDisplayError((textStatus === 'timeout') ? "The request timed out." : "Failed to load data due to a network or server error."); } g_CheckIfUserSessionAvailable(); if (fnFailure) { fnFailure(); } }); } // Function to check if user session is still available // If user session is timedout, then refresh main page to trigger for a timed-out properly function g_CheckIfUserSessionAvailable() { const div = $('#check-user-session'); const endpoint = '/_user-session'; div.load(endpoint, function (response) { if (!response.contains('user-already-logged')) { // Refresh page to redirect to Login page window.location.reload(); } }); } // Function to check if device is mobile function g_IsMobile() { return $(window).width() <= 576; }