templates/js/logout.js.twig line 1

Open in your IDE?
  1. let isLoggingOut = false;
  2. let logoutConnectionCheckInterval = null;
  3. async function logoutOnConnectionCheck() {
  4.     try {
  5.         const result = await Utils.fetch("{{ path('index') }}");
  6.         if (!isLoggingOut && result.xhr.status === 200) {
  7.             isLoggingOut = true;
  8.             clearInterval(logoutConnectionCheckInterval);
  9.             location.href = "{{ path('logout') }}";
  10.         }
  11.     } catch (error) {
  12.     }
  13. }
  14. function startLogoutOnConnectionCheck() {
  15.     if (logoutConnectionCheckInterval) {
  16.         return;
  17.     }
  18.     logoutOnConnectionCheck();
  19.     logoutConnectionCheckInterval = setInterval(() => {
  20.         logoutOnConnectionCheck();
  21.     }, 2000);
  22. }
  23. let isReloadAfter1Min = false;
  24. function reloadAfter1Min() {
  25.     if (isReloadAfter1Min) {
  26.         return;
  27.     }
  28.     isReloadAfter1Min = true;
  29.     setTimeout(() => {
  30.         setInterval(async () => {
  31.             try {
  32.                 const result = await Utils.fetch("{{ path('index') }}");
  33.                 if (result.xhr.status === 200) {
  34.                     location.reload();
  35.                 }
  36.             } catch (e) {}
  37.         }, 2000);
  38.     }, 60000);
  39. }
  40. function startLogoutOnSessionExpire() {
  41.     setInterval(async () => {
  42.         try {
  43.             const result = await Utils.fetch("{{ path('moderator_app_settings_session_seconds_left') }}");
  44.             if (result.response && result.response.toString() && result.response.toString().match(/^\d+$/)) {
  45.                 if (result.response <= 0) {
  46.                     startLogoutOnConnectionCheck();
  47.                 }
  48.             } else {
  49.                 startLogoutOnConnectionCheck();
  50.             }
  51.         } catch (error) {
  52.         }
  53.     }, 5000);
  54. }
  55. {% if app.request.attributes.get('_route') == 'login' %}
  56.     reloadAfter1Min();
  57. {% else %}
  58.     startLogoutOnSessionExpire();
  59. {% endif %}