Popup Message after logging in to instance

ah16
Mega Expert

Hi,

Can you please provide steps to create popup window with a message after logging in to instance?

Similar like this one:  https://www.servicenowguru.com/system-definition/login-terms-conditions-dialog/

 

Thanks,

Ashraf

 

1 ACCEPTED SOLUTION

I have added a check so it will not run on login page. And changed to session variable so it will trigger each new login:

addLoadEvent(function () {
    var session = gs.getSession();
    if (session.getClientData('popup_triggered')) {
        return;
    }
    if ((window.name !== 'gsft_main') || (window.parent.document.URL.indexOf("login.do") > -1)) {
        console.log("Prevent popup in this window or on this page.");
        return;
    }

    session.putClientData('popup_triggered', 'true');


    //Ensure that we call the dialog for the correct frame
    if (window.frameElement) {
        if (window.frameElement.id == 'gsft_main') {
            showTerms();
        }
    }
    else if (!window.frameElement) {
        if (!$('gsft_main')) {
            showTerms();
        }
    }
});

View solution in original post

21 REPLIES 21

Thanks, this is very helpful. Let me try and how does it get invoked after login?

I think this will show each load, so we might want to add a condition to it. If we only want it to show once try this:

addLoadEvent(function () {
    var hasTriggered;
    if (!hasTriggered) {
        //Ensure that we call the dialog for the correct frame
        if (window.frameElement) {
            if (window.frameElement.id == 'gsft_main') {
                hasTriggered = true;
                showTerms();
            }
        }
        else if (!window.frameElement) {
            if (!$('gsft_main')) {
                hasTriggered = true;
                showTerms();
            }
        }
    }
});

var showTerms = function () {
    var dialog = new GlideDialogWindow('terms_and_conditions_dialog'); //Render the dialog containing the UI Page 'terms_and_conditions_dialog'
    dialog.setTitle('Terms and Conditions'); //Set the dialog title
    dialog.setSize(600, 600); //Set the dialog size
    dialog.removeCloseDecoration(); //Remove the dialog close icon
    dialog.setPreference('cancel_url', 'catalog_home.do?sysparm_view=catalog_default'); //Set optional cancel redirect URL
    dialog.render(); //Open the dialog
}

Thanks, I tried but it still loading on every page. Also, is there way we can disable navigation links until they accept or cancel button.

 

 

Can you check if it works with setting a user preference:

addLoadEvent(function () {
    if (!getPreference("popup_triggered")) {
        //Ensure that we call the dialog for the correct frame
        if (window.frameElement) {
            if (window.frameElement.id == 'gsft_main') {
                setPreference("popup_triggered", "true")
                showTerms();
            }
        }
        else if (!window.frameElement) {
            if (!$('gsft_main')) {
                setPreference("popup_triggered", "true")
                showTerms();
            }
        }
    }
});

var showTerms = function () {
    var dialog = new GlideDialogWindow('terms_and_conditions_dialog'); //Render the dialog containing the UI Page 'terms_and_conditions_dialog'
    dialog.setTitle('Terms and Conditions'); //Set the dialog title
    dialog.setSize(600, 600); //Set the dialog size
    dialog.removeCloseDecoration(); //Remove the dialog close icon
    dialog.setPreference('cancel_url', 'catalog_home.do?sysparm_view=catalog_default'); //Set optional cancel redirect URL
    dialog.render(); //Open the dialog
}

 

It came only once but when I login again and I don't see that alert.

We are trying to show that alert every time when you login. 

Appreciate all your help.