lavkach3

Форк
0
/
jquery.sessionTimeout.min.simple.modal.js 
93 строки · 2.5 Кб
1
(function (e) {
2
  jQuery.sessionTimeout = function (t) {
3
    function u(t) {
4
      switch (t) {
5
        case "start":
6
          s = setTimeout(function () {
7
            e.each(i.closeModals, function (t, n) {
8
              e("#" + n).modal("hide");
9
            });
10
            document.title = i.titleMessage;
11
            e("#sessionTimeout-dialog").modal("show");
12
            a("start");
13
          }, i.warnAfter);
14
          break;
15
        case "stop":
16
          clearTimeout(s);
17
          break;
18
      }
19
    }
20

21
    function a(e) {
22
      switch (e) {
23
        case "start":
24
          o = setTimeout(function () {
25
            window.location = i.redirUrl;
26
          }, i.redirAfter - i.warnAfter);
27
          break;
28
        case "stop":
29
          clearTimeout(o);
30
          break;
31
      }
32
    }
33
    var n = [];
34
    var r = {
35
      title: "Your session is about to expire!",
36
      message: "Your session is about to expire.",
37
      titleMessage: "Warning: Time Out",
38
      stayConnectedBtn: "Stay connected",
39
      logoutBtn: "Logout",
40
      closeModals: n,
41
      keepAliveUrl: "/keep-alive",
42
      redirUrl: "/timed-out",
43
      logoutUrl: "/log-out",
44
      warnAfter: 9e5,
45
      redirAfter: 12e5,
46
    };
47
    var i = r,
48
      s,
49
      o;
50
    if (t) {
51
      i = e.extend(r, t);
52
    }
53
    e("body").append(
54
      '<div class="modal fade" id="sessionTimeout-dialog">' +
55
        '<div class="modal-dialog">' +
56
        '<div class="modal-content">' +
57
        '<div class="modal-header">' +
58
        '<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>' +
59
        '<h4 class="modal-title">' +
60
        i.title +
61
        "</h4>" +
62
        "</div>" +
63
        '<div class="modal-body">' +
64
        i.message +
65
        "</div>" +
66
        '<div class="modal-footer">' +
67
        '<div class="btn-group">' +
68
        '<button id="sessionTimeout-dialog-logout" type="button" class="btn btn-danger">' +
69
        i.logoutBtn +
70
        "</button>" +
71
        '<button id="sessionTimeout-dialog-keepalive" type="button" class="btn btn-success" data-dismiss="modal">' +
72
        i.stayConnectedBtn +
73
        "</button>" +
74
        "</div>" +
75
        "</div>" +
76
        "</div>" +
77
        "</div>" +
78
        "</div>"
79
    );
80
    e("#sessionTimeout-dialog-logout").on("click", function () {
81
      window.location = i.logoutUrl;
82
    });
83
    e("#sessionTimeout-dialog").on("hide.bs.modal", function () {
84
      e.ajax({
85
        type: "POST",
86
        url: i.keepAliveUrl,
87
      });
88
      a("stop");
89
      u("start");
90
    });
91
    u("start");
92
  };
93
})(jQuery);
94

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.