- Place the code below into
yourappWEB-INF\pages\header.script.others.ftl
- Update
$tm1Ui
service to update cube structure and data
//JS:
app.run([’$rootScope’, ‘$state’, ‘$stateParams’, ‘$location’, ‘$tm1Ui’, ‘$timeout’, ‘$window’, function ($rootScope, $state, $stateParams, $location, $tm1Ui, $timeout, $window) {
console.log('STATISTICS states %o', $state);
//$broadcast: $locationChangeSuccess, $locationChangeStart, $destroy, $routeUpdate, $routeChangeStart, $routeChangeSuccess, $routeChangeError
var appName = $tm1Ui.applicationInfo().then(function (appInfo) {
console.log('STATISTICS application %o', appInfo.name);
return appInfo.name;
});
var userStatisticsUpdate = function () {
$tm1Ui.applicationInstances().then(function (appInstInfo) {
console.log('STATISTICS application appInstances %o', appInstInfo);
for (i = 0; i < appInstInfo.length; i++) {
if (appInstInfo[i]) {
var currentInstance = appInstInfo[i].name;
//console.log(currentInstance );
var currentUser = appUser(currentInstance);
//console.log(currentUser );
var currentAppName = appName;
console.log('STATISTICS app Name %o', currentAppName);
var currentPage = $location.path();
var currentState = $state.getCurrentPath();
$tm1Ui.applicationUser(currentInstance).then(function (user) {
// console.log('user details %o', user);
//return {user:user};
console.log('STATISTICS USER %o', user);
if (user && !user.error) {
updateStatistics(currentInstance, user.Name, currentAppName, currentState, currentPage);
} else {
console.warn('STATISTICS Not logged In');
};
});
}
}
});
}
var appUser = function (instance) {
$tm1Ui.applicationUser(instance).then(function (user) {
console.log('STATISTICS user details %o', user);
return { user: user };
});
};
var updateStatistics = function (instance, user, appName, state, page) {
// console.log($state);
// var state = toState;
state = $location.path();
// console.log('STATISTICS location ---- %o', $location.state());
// console.log($state.current.name);
var d = new Date();
var n = d.getTime();
var currentTime = d.getHours() + ':' + ((d.getMinutes() < 10) ? '0' : '') + d.getMinutes();
var currentDate = d.toLocaleDateString();
console.log(currentDate + ' ' + user + ' ' + appName.name + ' ' + $state.current.name + ' ' + page + ' ' + currentTime + ' ' + n);
// update dimensions first
//
// add here your cube for Statistics For example:
// $tm1Ui.cellPut(currentTime, instance, 'Your Statistics cube', appName, page, user, currentDate, 'time')
}
/*$rootScope.$on('$locationChangeStart', function(event, url, oldUrl, state, oldState){
});*/
$rootScope.$on('$locationChangeSuccess', function (event, url, oldUrl, state, oldState) {
var navStart = $window.performance.timing.navigationStart;
var loadTime = $window.performance.timing.domContentLoadedEventEnd - $window.performance.timing.navigationStart;
// console.log("Work time: ", loadTime)
/* console.log("PAGE LOAD TIME 0___ Time until reaching run phase: ", Date.now() - $window.timerStart); */
console.log("STATISTICS Time until reaching run phase: ", Date.now() - navStart);
/* window.onload = function(){
setTimeout(function(){
var t = performance.timing;
console.log('PAGE LOAD TIME 3: ',t.loadEventEnd - t.responseEnd);
}, 0);
}*/
console.log('STATISTICS old url to url %o', oldUrl + ' to ' + url);
console.log('STATISTICS location state %o', state + ' ' + oldState);
console.log('STATISTICS location path %o', $location.path());
console.log(appName);
userStatisticsUpdate();
});
}]);