1,82 → 1,14 |
// configuration |
// prod : |
/*var urlRacine = 'https://www.tela-botanica.org', |
config = { |
prod: { |
urlWidgetNavigation : urlRacine + '/widget:cel:saisie2', |
urlBaseAuth : 'https://www.tela-botanica.org/service:annuaire:auth' |
} |
}; |
*/ |
// beta (test) : |
var urlRacine = 'https://beta.tela-botanica.org', |
config = { |
test: { |
urlWidgetNavigation : urlRacine + '/widget:cel:saisie2', |
urlBaseAuth : 'https://beta.tela-botanica.org/service:annuaire:auth' |
} |
}; |
var urlRacine = window.location.origin; |
|
// dev (localhost): |
/*var urlRacine = 'http://localhost', |
config = { |
local: { |
urlWidgetNavigation : urlRacine + '/widget:cel:saisie2', |
urlBaseAuth : 'https://api.tela-botanica.test/service:annuaire:auth' |
} |
};*/ |
|
/** |
* Charge la barre de navigation depuis le widget:reseau:navigation dans un <div id="tb-navigation"> , s'il existe |
* dans la page appelante. |
* |
* Nécessite jQuery |
* |
* Utilisation : |
* - prévoir un <div id="tb-navigation"> dans la page, qui accueillera la barre de navigation. |
* - si ce <div> contient déjà quelque chose, son contenu sera reporté à la place de la zone ayant l'id "contenu-source" |
* de la barre de navigation (si une telle zone existe) |
* - si ce <div> contient un attribut "data-courant" et si la valeur de cet attribut correspond à l'id d'un des éléments |
* de navigation, alors cet élément aura la classe "active" (pour localiser la page courante dans les menus) |
* - si ce <div> contient un attribut "data-squelette", alors le widget de navigation sera appelé avec le paramètre |
* "?squelette=contenu-de-data-squelette"; se reporter à la documentation du widget:reseau:navigation |
*/ |
|
$( document ).ready( function() { |
var $div = $( '#tb-navigation' ); |
if ( $div ) { |
var squelette = $div.data( 'squelette' ), |
courant = $div.data( 'courant' ), |
mode = $div.data( 'mode' ) || 'prod', |
contenu = $div.html(); |
var mode = $( '#tb-observateur' ).data( 'mode' ) || 'prod', |
urlBaseAuth = urlRacine + '/service:annuaire:auth'; |
|
// chargement de la barre |
var urlBaseAuth = config[mode]['urlBaseAuth']; |
var urlBarreNavigation = config[mode]['urlWidgetNavigation']; |
urlBarreNavigation += ( squelette ) ? '?squelette=' + squelette : ''; |
|
$.ajax({ |
url: urlBarreNavigation, |
type: 'get', |
success: function( data ) { |
// remplacement de la zone contenu-source |
var $zoneSource = $div.find( '#contenu-source' ); |
if ( $zoneSource ) { |
$zoneSource.replaceWith( contenu ); |
// Chargement des informations de connexion SSO |
chargerStatutSSO( urlBaseAuth ); |
} |
}, |
error: function() { |
$div.html( 'Erreur: impossible de charger la barre de navigation' ); |
} |
}); |
|
$( '#deconnexion a' ).click( function() { |
deconnecterUtilisateur( urlBaseAuth ); |
}); |
|
} |
chargerStatutSSO( urlBaseAuth, mode ); |
$( '#deconnexion a' ).click( function() { |
deconnecterUtilisateur( urlBaseAuth, mode ); |
}); |
}); |
|
/** |
83,15 → 15,13 |
* Interroge le SSO pour connaître le statut de l'utilisateur, et change le menu |
* à droite de la barre en fonction |
*/ |
function chargerStatutSSO( urlBaseAuth ) { |
function chargerStatutSSO( urlBaseAuth, mode ) { |
var urlAuth = urlBaseAuth + '/identite'; |
|
if( 'local' !== $( '#tb-navigation' ).data( 'mode' ) ) { |
|
if( 'local' !== mode ) { |
connexion( urlAuth, true ); |
|
} else { |
urlAuth ='http://localhost/widget:cel:modules/saisie2/test-token.json'; |
urlAuth = urlRacine + '/widget:cel:modules/apa/test-token.json'; |
$( '#connexion' ).click( function() { |
connexion( urlAuth, true ); |
return false; |
102,8 → 32,8 |
/** |
* Déconnecte l'utilisateur du SSO |
*/ |
function deconnecterUtilisateur( urlBaseAuth ) { |
if( 'local' === $( '#tb-navigation' ).data( 'mode' ) ) { |
function deconnecterUtilisateur( urlBaseAuth, mode ) { |
if( 'local' === mode ) { |
definirUtilisateur( undefined ); |
window.location.reload(); |
return; |
158,7 → 88,6 |
courriel = jetonDecode.sub; |
prenom = jetonDecode.prenom; |
nom = jetonDecode.nom; |
|
$( '#courriel, #courriel_confirmation' ).attr( 'disabled', 'disabled' ); |
$( '#prenom' ).attr( 'disabled', 'disabled' ); |
$( '#nom' ).attr( 'disabled', 'disabled' ); |
166,7 → 95,6 |
$( '#utilisateur-connecte, #anonyme, #zone-courriel-confirmation, #zone-prenom-nom' ).removeClass( 'hidden' ); |
$( '#date-releve' ).focus(); |
} |
|
$( '.warning' ).remove(); |
$( '#nom-complet' ).html( nomComplet ); |
$( '#courriel, #courriel_confirmation' ).val( courriel ); |
184,7 → 112,6 |
payload = parts[1]; |
payload = b64d( payload ); |
payload = JSON.parse( payload, true ); |
|
return payload; |
} |
|
201,9 → 128,7 |
input += '='; |
} |
} |
|
input = input.replace( '-', '+' ); |
input = input.replace( '_', '/' ); |
|
return atob( input ); |
} |