• Hello and welcome to our new forums. We upgraded our forum sites to a more robust and modern system which we hope you will enjoy. Be sure to check out your profile by clicking the button on the top right and configure your preferences, signature, time zone, avatar, etc. as you wish. If you need help with using this new forum'ware try the help link on the bottom right.

    Click here to review your account now.

Question java script to run alert when session is expiring

rwahdan

New member
Joined
Dec 10, 2015
Messages
1
Programming Experience
1-3
Hi,

i got this code from someone and the dialogue comes out with "Yes/No" but it is not clickable. can someone help me with this?

Code:
/* String formatting, you might want to remove this if you already use it.
 * Example:
 * 
 * var location = 'World';
 * alert('Hello {0}'.format(location));
 */
String.prototype.format = function() {
  var s = this,
      i = arguments.length;


  while (i--) {
    s = s.replace(new RegExp('\\{' + i + '\\}', 'gm'), arguments[i]);
  }
  return s;
};


!function($) {
  $.timeoutDialog = function(options) {


    var settings = {
      timeout: 1200,
      countdown: 60,
      title : 'Your session is about to expire!',
      message : 'You will be logged out in {0} seconds.',
      question: 'Do you want to stay signed in?',
      keep_alive_button_text: 'Yes, Keep me signed in',
      sign_out_button_text: 'No, Sign me out',
      keep_alive_url: 'main_menu.aspx',
      logout_url: 'login.aspx',
      logout_redirect_url: null,
      restart_on_yes: true,
      dialog_width: 350
    }    


    $.extend(settings, options);


    var TimeoutDialog = {
      init: function () {
        this.setupDialogTimer();
      }, 


      setupDialogTimer: function() {
        var self = this;
        window.setTimeout(function() {
           self.setupDialog();
        }, (settings.timeout - settings.countdown) * 1000);
      },


      setupDialog: function() {
        var self = this;
        self.destroyDialog();


        $('<div id="timeout-dialog">' +
            '<p id="timeout-message">' + settings.message.format('<span id="timeout-countdown">' + settings.countdown + '</span>') + '</p>' + 
            '<p id="timeout-question">' + settings.question + '</p>' +
          '</div>')
        .appendTo('body')
        .dialog({
          modal: true,
          width: settings.dialog_width,
          minHeight: 'auto',
          zIndex: 10000,
          closeOnEscape: false,
          draggable: false,
          resizable: false,
          dialogClass: 'timeout-dialog',
          title: settings.title,
          buttons : {
            'keep-alive-button' : { 
              text: settings.keep_alive_button_text,
              id: "timeout-keep-signin-btn",
              click: function() {
                self.keepAlive();
              }
            },
            'sign-out-button' : {
              text: settings.sign_out_button_text,
              id: "timeout-sign-out-button",
              click: function() {
                self.signOut(true);
              }
            }
          }
        });


        self.startCountdown();
      },


      destroyDialog: function() {
        if ($("#timeout-dialog").length) {
          $(this).dialog("close");
          $('#timeout-dialog').remove();
        }
      },


      startCountdown: function() {
        var self = this,
            counter = settings.countdown;


        this.countdown = window.setInterval(function() {
          counter -= 1;
          $("#timeout-countdown").html(counter);


          if (counter <= 0) {
            window.clearInterval(self.countdown);
            self.signOut(false);
          }


        }, 1000);
      },


      keepAlive: function() {
        var self = this;
        this.destroyDialog();
        window.clearInterval(this.countdown);


        $.get(settings.keep_alive_url, function(data) {
          if (data == "OK") {
            if (settings.restart_on_yes) {
              self.setupDialogTimer();
            }
          }
          else {
            self.signOut(false);
          }
        });
      },


      signOut: function(is_forced) {
        var self = this;
        this.destroyDialog();


        if (settings.logout_url != null) {
            $.post(settings.logout_url, function(data){
                self.redirectLogout(is_forced);
            });
        }
        else {
            self.redirectLogout(is_forced);
        }
      }, 


      redirectLogout: function(is_forced){
        var target = settings.logout_redirect_url + '?next=' + encodeURIComponent(window.location.pathname + window.location.search);
        if (!is_forced)
          target += '&timeout=t';
        window.location = target;
      }
    };


    TimeoutDialog.init();
  };
}(window.jQuery);

thanks a lot
 
Top Bottom