127 lines
3.8 KiB
JavaScript
127 lines
3.8 KiB
JavaScript
Session.set('defaultSignInMessage', 'Tumor tracking in your browser.');
|
|
|
|
Template.lesionTrackerLayout.helpers({
|
|
fullName: function() {
|
|
return Meteor.user().profile.fullName;
|
|
},
|
|
|
|
showWorklistMenu: function() {
|
|
return Template.instance().showWorklistMenu.get();
|
|
},
|
|
|
|
currentUser: function() {
|
|
var verifyEmail = Meteor.settings && Meteor.settings.public && Meteor.settings.public.verifyEmail || false;
|
|
|
|
if (!Meteor.user() || !Meteor.userId()) {
|
|
return false;
|
|
}
|
|
|
|
if (!verifyEmail) {
|
|
return true;
|
|
}
|
|
|
|
if (Meteor.user().emails[0].verified) {
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
});
|
|
|
|
Template.lesionTrackerLayout.onCreated(function() {
|
|
// showViewer to go to viewer from audit
|
|
this.showWorklistMenu = new ReactiveVar(true);
|
|
// Get url and check worklist
|
|
var currentRoute = Router.current();
|
|
if (!currentRoute || !currentRoute.route) {
|
|
return;
|
|
}
|
|
|
|
var currentPath = currentRoute.route.path(this);
|
|
if (currentPath === '/' || currentPath === '/worklist') {
|
|
this.showWorklistMenu.set(false);
|
|
}
|
|
|
|
// Show countdown dialog
|
|
var handle;
|
|
$(document).on('TriggerOpenTimeoutCountdownDialog', function(e, leftTime) {
|
|
// Show modal dialog
|
|
handle = setInterval(function() {
|
|
leftTime--;
|
|
// Set countdownDialogLeftTime session
|
|
Session.set('countdownDialogLeftTime', leftTime);
|
|
|
|
// Show dialog
|
|
var dialog = $('#timeoutCountdownDialog');
|
|
if (dialog.css('display') === 'none') {
|
|
dialog.css('display', 'block');
|
|
}
|
|
}, 1000);
|
|
|
|
});
|
|
|
|
$(document).on('TriggerCloseTimeoutCountdownDialog', function(e) {
|
|
var dialog = $('#timeoutCountdownDialog');
|
|
dialog.css('display', 'none');
|
|
if (handle) {
|
|
clearInterval(handle);
|
|
// Close the dialog
|
|
dialog.css('display', 'none');
|
|
|
|
// Remove reviewers info for the user
|
|
Meteor.call('removeUserFromReviewers', Meteor.userId());
|
|
}
|
|
});
|
|
});
|
|
|
|
Template.lesionTrackerLayout.onRendered(function() {
|
|
var oldUserId = undefined;
|
|
var userName;
|
|
var lastLoginModalInterval;
|
|
|
|
Tracker.autorun(function() {
|
|
// Hook login/logout
|
|
var newUserId = Meteor.userId();
|
|
if (oldUserId === null && newUserId) {
|
|
Session.set('showLastLoginModal', true);
|
|
userName = Meteor.user().profile.fullName;
|
|
// Log
|
|
HipaaLogger.logEvent({
|
|
eventType: 'init',
|
|
userId: Meteor.userId(),
|
|
userName: userName
|
|
});
|
|
} else if (newUserId === null && oldUserId) {
|
|
// Set showLastLoginModal as null
|
|
Session.set('showLastLoginModal', null);
|
|
// Destroy interval for last login modal
|
|
Meteor.clearInterval(lastLoginModalInterval);
|
|
console.log('The user logged out');
|
|
|
|
// Log
|
|
// TODO: eventype is not defined for logout in hipaa-audit-log
|
|
/*HipaaLogger.logEvent({
|
|
eventType: 'logout',
|
|
userId: oldUserId,
|
|
userName: userName
|
|
});*/
|
|
|
|
// Remove the user from Reviewers
|
|
Meteor.call('removeUserFromReviewers', oldUserId);
|
|
}
|
|
oldUserId = Meteor.userId();
|
|
|
|
// Trigger last login date popup
|
|
if (Session.get('showLastLoginModal')) {
|
|
Modal.show('lastLoginModal');
|
|
lastLoginModalInterval = Meteor.setInterval( function() {
|
|
Modal.hide('lastLoginModal');
|
|
Session.set("showLastLoginModal", null);
|
|
}, 3000);
|
|
return true;
|
|
}
|
|
});
|
|
});
|
|
|
|
|