<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="author" content="Maether IT" />
<meta name="publisher" content="Maether IT" />
<title>{% block title %}Welcome!{% endblock %}</title>
<link rel="shortcut icon" type="image/x-icon" href="{{ asset('resources/img/mit_logo_small.png') }}" />
<link rel="icon" type="image/x-icon" href="{{ asset('resources/img/mit_logo_small.png') }}" />
{% block stylesheets %}
<!-- Vendor styles -->
<link rel="stylesheet" href="{{ asset('resources/vendors/zwicon/zwicon.min.css') }}">
<link rel="stylesheet" href="{{ asset('resources/vendors/animate.css/animate.min.css') }}">
<link rel="stylesheet" href="{{ asset('resources/vendors/overlay-scrollbars/OverlayScrollbars.min.css') }}">
<link rel="stylesheet" href="{{ asset('resources/vendors/fullcalendar/core/main.min.css') }}">
<link rel="stylesheet" href="{{ asset('resources/vendors/fullcalendar/daygrid/main.min.css') }}">
<!-- App styles -->
<link rel="stylesheet" href="{{ asset('resources/css/app.min.css') }}">
{% endblock %}
</head>
<body data-sa-theme="2">
<div id="content-wrapper">
{% block body %}{% endblock %}
</div>
{% if app.getUser %}
{% set randomKey = [] %}
{% set alpha = 'abcdefghijklmnopqrstuvwxyz' %}
{% set numbers = '0123456789' %}
{% for i in 1..10 %}
{% set randomCharacter = random(alpha ~ alpha|upper ~ numbers ~ '-_') %}
{% set randomKey = randomKey|merge([randomCharacter]) %}
{% endfor %}
{% set randomKey = randomKey|join %}
<div id="content-lockscreen" style="display:none;" class="login">
<!-- Login -->
<div class="login__block active">
<div class="login__block__header">
<img src="{{ asset('demo/img/profile-pics/2.jpg') }}" alt="">
Welcome back {{ app.getUser.getName }}!
</div>
<div class="login__block__body">
<form id="formLockscreen">
<div class="form-group">
<input type="hidden" id="lockscreenEmail" name="{{ randomKey }}" value="{{ app.getUser.getEmail }}">
<input type="password" class="form-control text-center" id="lockscreenPassword" name="password" placeholder="Password" autocomplete="">
</div>
<button type="submit" class="btn btn--icon btn-theme"><i id="lockscreenIcon" class="zwicon-checkmark"></i></button>
</form>
</div>
</div>
</div>
{% endif %}
{% block javascripts %}
<!-- Javascript -->
<!-- Vendors -->
<script src="{{ asset('resources/vendors/jquery/jquery.min.js') }}"></script>
<script src="{{ asset('resources/vendors/popper.js/popper.min.js') }}"></script>
<script src="{{ asset('resources/vendors/bootstrap/js/bootstrap.min.js') }}"></script>
<script src="{{ asset('resources/vendors/overlay-scrollbars/jquery.overlayScrollbars.min.js') }}"></script>
<!-- App functions and actions -->
<script src="{{ asset('resources/js/app.min.js') }}"></script>
{% if app.getUser %}
<script>
var sessionExtenderActive = true;
var sessionExtenderDelay = 30000;
var csrfToken = '{{ csrf_token("authenticate") }}';
$('body').mousemove(throttle(sessionExtenderDelay, function() {
if (sessionExtenderActive) {
triggerActivity(sessionExtenderDelay);
}
}));
window.addEventListener('beforeunload', (event) => {
sessionExtenderActive = false;
});
function triggerActivity(timeout) {
$.ajax({
type: "GET",
url:"{{ path('session') }}",
timeout: timeout,
success:function(data) {
//console.log(data);
},
error:function(data) {
//console.log(data);
if (sessionExtenderActive) {
sessionExtenderActive = false;
toggleLockscreen();
}
},
});
}
var previousCall = new Date().getTime() + sessionExtenderDelay;
function throttle(delay, callback) {
return function() {
var time = new Date().getTime();
if ((time - previousCall) >= delay) {
previousCall = time;
callback.apply(null, arguments);
}
};
}
function toggleLockscreen() {
$('#content-wrapper').toggle();
$('#content-lockscreen').toggle();
}
function toggleLockscreenIcon() {
var e = $('#lockscreenIcon');
if (e.hasClass('zwicon-checkmark')) {
e.removeClass('zwicon-checkmark').addClass('zwicon-rotate-right');
} else {
e.removeClass('zwicon-rotate-right').addClass('zwicon-checkmark');
}
}
$('#formLockscreen').submit(function(){
toggleLockscreenIcon();
$.ajax({
type: "POST",
url:"/login_check?_target_path={{ path('session') }}",
data: {
email: $('#lockscreenEmail').val(),
password: $('#lockscreenPassword').val(),
_csrf_token: csrfToken,
noredirect: true,
},
success:function(data) {
if (data === 'OK') {
previousCall = new Date().getTime() + sessionExtenderDelay;
sessionExtenderActive = true;
toggleLockscreen();
toggleLockscreenIcon();
} else {
console.log(data);
toggleLockscreenIcon();
}
},
error:function(data) {
toggleLockscreenIcon();
},
});
return false;
});
</script>
{% endif %}
{% endblock %}
</body>
</html>