$(window).on("load", function() {
// Adapt some class to fit Bootstrap theme
$("div.message-positive").addClass("alert-success");
$("div.message-warning").addClass("alert-warning");
$("div.message-negative").addClass("alert-danger");
$("table.info").addClass("table");
$(".notifCheck").addClass("checkbox");
// Collapse menu on click
$('.collapse li:not(".dropdown")').on('click', function() {
if (!$('.navbar-toggler').hasClass('collapsed')) {
$(".navbar-toggler").trigger("click");
}
});
// Remember selected tab
$('#authMenu .nav-link').on('click', function (e) {
window.datas.choicetab = e.target.hash.substr(1)
});
// Transmit attributes to remove2f modal
$('#remove2fModal').on('show.bs.modal', function (event) {
var button = $(event.relatedTarget) // Button that triggered the modal
var device = button.attr('device') // Extract device/epoch from button
var epoch = button.attr('epoch')
var prefix = button.attr('prefix')
var modal = $(this)
// Set device/epoch on modal remove2f button so that the portal JS code can find it
modal.find('.remove2f').attr('device', device)
modal.find('.remove2f').attr('epoch', epoch)
modal.find('.remove2f').attr('prefix', prefix)
})
// Set tab items (my applications, password, history, logout) tabbable
// (ie accessible via tab key)
// needed because of jquery-ui setting only active element tabbable
// (see #2561)
$('.nav-item').click(function() {
$('.nav-item').attr( "tabIndex", 0 );
});
$('.nav-item').focusin(function() {
$('.nav-item').attr( "tabIndex", 0 );
});
$('.nav-item').focusout(function() {
$('.nav-item').attr( "tabIndex", 0 );
});
});
$(document).on( "portalLoaded", { }, function( event, info ) {
// Make sure DOM is ready as well
$( document ).ready(function() {
// tick all checkboxes remembering the authentication choice
// when global checkbox is clicked
$("#globalrememberauthchoice").change(function() {
var checked = this.checked;
$( 'input[name="rememberauthchoice"]' ).each(function() {
$( this ).val(checked);
});
});
// if rememberStopped button has been clicked, stop the timer
// from lauching the previously remembered authentication
$("#buttonRememberStopped").click(function() {
var curval = $( "input#rememberStopped" ).val();
var newval;
if( curval != "stopped" )
{
newval = "stopped";
}
else
{
newval = "running";
window.setTimeout( launchAuthenticationChoice, 0 );
}
// store the new value
$( "input#rememberStopped" ).val(newval);
$( "#remembertimercontainer" ).hide();
$( "#globalrememberauthchoicecontainer" ).css('display', 'flex');
});
// function running the previously remembered authentication choice
// when the timer is over
function launchAuthenticationChoice()
{
var timer = $( "span#remembertimer" ).text();
var isStopped = $( "input#rememberStopped" ).val();
if ( isStopped != "stopped" )
{
timer--;
// display decremented timer in the appropriate html element
$( "span#remembertimer" ).text(timer);
if ( timer > 0 )
{
// wait for another 1s
window.setTimeout( launchAuthenticationChoice, 1000 );
}
else
{
// launch authentication choice defined in cookie
var sslform = $("#id_" + $.cookie(rememberCookieName) + " form .sslclick");
if (sslform.length) {
sslform.click();
} else {
var choiceform = $("#id_" + $.cookie(rememberCookieName) + " form");
choiceform?.submit();
}
}
}
};
// Check rememberauthchoice cookie
var rememberCookieName = $( "#rememberCookieName" ).val();
// if this is first access
if( window.datas.authError == 9 )
{
// if there is a rememberauthchoice cookie
if ( ! ( typeof rememberCookieName === 'undefined' ) &&
! ( typeof $.cookie(rememberCookieName) === 'undefined' )
)
{
// show timer
$( "#remembertimercontainer" ).css('display', 'flex');
// remember last authentication choice again
$("#globalrememberauthchoice").prop('checked',true);
$( 'input[name="rememberauthchoice"]' ).each(function() {
$( this ).val('true');
});
// increment timer for starting to correct time
$( "span#remembertimer" ).text( parseInt($( "span#remembertimer" ).text()) + 1 );
// launch remembered authentication choice when timer reaches 0
window.setTimeout( launchAuthenticationChoice, 0 );
}
else
{
// display the global checkbox
$( "#globalrememberauthchoicecontainer" ).css('display', 'flex');
}
}
});
});