3 Replies Latest reply on Sep 10, 2007 2:12 PM by emmim44

    Time Out Msg

    emmim44 Level 1
      Hi all.

      Does any one know how to implement this :
      A time-out warning message box (with a choice of continue or close) to remind the users before the session times out?

      I am using MX8 on Linux box with oracle...And using CFlogin..I have session page...The session page times out after 15 mins idle time...
        • 1. Re: Time Out Msg
          Level 7
          This requires some javascript used in conjunction with the cfml. You
          create a standard bit of JS that will fire an event the will show the
          desired dialog box at the same time (or shortly before -- to allow for
          lag) the session time out.

          If you want the continue to do something it will need to do some kind of
          request to the server to refresh the session. Ajax, inline frames,
          <img...> pipelines or an old fashioned page refresh can be utilized for
          this.



          • 2. Re: Time Out Msg
            c_wigginton Level 1
            /*
            Author: Robert Hashemian
            http://www.hashemian.com/

            You can use this code in any manner so long as the author's
            name, Web address and this disclaimer is kept intact.
            ********************************************************
            Usage Sample:

            <script language="JavaScript">
            TargetDate = "12/31/2020 5:00 AM";
            BackColor = "palegreen";
            ForeColor = "navy";
            CountActive = true;
            CountStepper = -1;
            DisplayFormat = "%%D%% Days, %%H%% Hours, %%M%% Minutes, %%S%% Seconds.";
            FinishMessage = "It is finally here!";
            </script>
            <script language="JavaScript" src=" http://www.hashemian.com/js/countdown.js"></script>
            */

            function calcage(secs, num1, num2) {
            s = ((Math.floor(secs/num1))%num2).toString();
            if (s.length < 2)
            s = "0" + s;
            return "<b>" + s + "</b>";
            }

            function CountBack(secs) {
            if (secs < 0) {
            document.getElementById("cntdwn").innerHTML = FinishMessage;
            return;
            }
            DisplayStr = DisplayFormat.replace(/%%D%%/g, calcage(secs,86400,100000));
            DisplayStr = DisplayStr.replace(/%%H%%/g, calcage(secs,3600,24));
            DisplayStr = DisplayStr.replace(/%%M%%/g, calcage(secs,60,60));
            DisplayStr = DisplayStr.replace(/%%S%%/g, calcage(secs,1,60));

            document.getElementById("cntdwn").innerHTML = DisplayStr;
            if (CountActive)
            setTimeout("CountBack(" + (secs+CountStepper) + ")", SetTimeOutPeriod);
            }

            function putspan(backcolor, forecolor) {
            document.write("<span id='cntdwn' style='background-color:" + backcolor +
            "; color:" + forecolor + "'></span>");
            }

            if (typeof(BackColor)=="undefined")
            BackColor = "white";
            if (typeof(ForeColor)=="undefined")
            ForeColor= "black";
            if (typeof(TargetDate)=="undefined")
            TargetDate = "12/31/2020 5:00 AM";
            if (typeof(DisplayFormat)=="undefined")
            DisplayFormat = "%%D%% Days, %%H%% Hours, %%M%% Minutes, %%S%% Seconds.";
            if (typeof(CountActive)=="undefined")
            CountActive = true;
            if (typeof(FinishMessage)=="undefined")
            FinishMessage = "";
            if (typeof(CountStepper)!="number")
            CountStepper = -1;

            CountStepper = Math.ceil(CountStepper);
            if (CountStepper == 0)
            CountActive = false;
            var SetTimeOutPeriod = (Math.abs(CountStepper)-1)*1000 + 990;
            //putspan(BackColor, ForeColor);
            var dthen = new Date(TargetDate);
            var dnow = new Date();
            if(CountStepper>0)
            ddiff = new Date(dnow-dthen);
            else
            ddiff = new Date(dthen-dnow);
            gsecs = Math.floor(ddiff.valueOf()/1000);
            CountBack(gsecs);
            • 3. Re: Time Out Msg
              emmim44 Level 1
              Where should i place this code inside the session file?