territori-aperti-theme/src/main/webapp/js/gcube-context.js

48 lines
1.7 KiB
JavaScript

/*
* Author: Massimiliano Assante, CNR-ISTI
* */
/*The following function simply injects the Liferay object fields userId and scopeGroupId in the XMLHttpRequest header.
* So that every ajax call performed in the page has those parameters set.*/
function injectClientContext() {
if (Liferay != null) {
var userId;
var groupId;
if (Liferay.ThemeDisplay.isSignedIn()) {
userId = Liferay.ThemeDisplay.getUserId();
groupId = Liferay.ThemeDisplay.getScopeGroupId();
console.log("groupid is = " + groupId);
}
else {
groupId = Liferay.ThemeDisplay.getScopeGroupId();
//console.log('Not logged in, injecting groupId only');
}
//attach the 3 header params in all the XHR sends
(function(send) {
XMLHttpRequest.prototype.send = function(data) {
this.setRequestHeader("gcube-userId", userId);
this.setRequestHeader("gcube-vreid", groupId);
this.setRequestHeader("gcube-request-url", location.href);
send.call(this, data);
};
})(XMLHttpRequest.prototype.send);
}
}
/*
* Override the expire function of the Liferay.Session javascript object. It makes the default behaviour and then open a modal
* */
$(function () {
AUI().use('liferay-session', function(A) {
if(Liferay.Session) {
console.log('Liferay session default overridden');
Liferay.Session.expire = function() {
var instance = this;
instance.set('sessionState', 'expired', {});
$("#expirationModal").css("display", "block");
$("#expirationModal").modal({backdrop: 'static', keyboard: false},'show');
$("body div.alert.alert-block.popup-alert-warning.alert-error").html("Due to inactivity your session has expired, please <a class='refresh' href=''>Refresh</a>");
};
}
});
});