Removing timeoutCountdownDialog from DOM
This commit is contained in:
parent
efb4ca23b5
commit
0153354004
@ -19,7 +19,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{{>timeoutCountdownDialog}}
|
|
||||||
<div id="studylistTabs" class="tab-content">
|
<div id="studylistTabs" class="tab-content">
|
||||||
<div class="tab-pane active" id="studylistTab">
|
<div class="tab-pane active" id="studylistTab">
|
||||||
<div class="studylistContainer">
|
<div class="studylistContainer">
|
||||||
|
|||||||
@ -6,7 +6,9 @@
|
|||||||
{{#each message in this.messages}}
|
{{#each message in this.messages}}
|
||||||
<div class="message">{{{message}}}</div>
|
<div class="message">{{{message}}}</div>
|
||||||
{{else}}
|
{{else}}
|
||||||
<div class="message">An error has ocurred.</div>
|
{{#let message=(choose this.message 'An error has ocurred.')}}
|
||||||
|
<div class="message">{{message}}</div>
|
||||||
|
{{/let}}
|
||||||
{{/each}}
|
{{/each}}
|
||||||
</div>
|
</div>
|
||||||
{{/dialogSimple}}
|
{{/dialogSimple}}
|
||||||
|
|||||||
@ -1,10 +1,5 @@
|
|||||||
<template name="timeoutCountdownDialog">
|
<template name="timeoutCountdownDialog">
|
||||||
<div id="timeoutCountdownDialog">
|
{{#dialogSimple title='Your session is about to expire'}}
|
||||||
<div class="dialogHeader">
|
<div>You will be logged out in {{timeLeft}}.</div>
|
||||||
<h5>Your session is about to expire.</h5>
|
{{/dialogSimple}}
|
||||||
</div>
|
|
||||||
<div class="dialogContent">
|
|
||||||
<p>You will be logged out in {{timeLeft}}.</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</template>
|
</template>
|
||||||
@ -1,39 +1,63 @@
|
|||||||
|
import { Meteor } from 'meteor/meteor';
|
||||||
|
import { Template } from 'meteor/templating';
|
||||||
|
import { Session } from 'meteor/session';
|
||||||
|
import { Tracker } from 'meteor/tracker';
|
||||||
|
import { OHIF } from 'meteor/ohif:core';
|
||||||
|
|
||||||
|
Meteor.startup(() => {
|
||||||
|
const closeObserver = new Tracker.Dependency();
|
||||||
|
$.event.add(window, 'TriggerCloseTimeoutCountdownDialog', () => closeObserver.changed());
|
||||||
|
$.event.add(window, 'TriggerOpenTimeoutCountdownDialog', (event, timeLeft) => {
|
||||||
|
OHIF.ui.showDialog('timeoutCountdownDialog', {
|
||||||
|
timeLeft,
|
||||||
|
closeObserver
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
Template.timeoutCountdownDialog.helpers({
|
Template.timeoutCountdownDialog.helpers({
|
||||||
timeLeft: function() {
|
timeLeft() {
|
||||||
var timeLeft = Session.get('countdownDialogLeftTime');
|
const timeLeft = Session.get('countdownDialogTimeLeft');
|
||||||
var suffix = timeLeft > 1 ? 'seconds': 'second';
|
const suffix = timeLeft > 1 ? 'seconds': 'second';
|
||||||
return timeLeft + suffix;
|
return `${timeLeft} ${suffix}`;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
Template.timeoutCountdownDialog.onRendered(function() {
|
Template.timeoutCountdownDialog.onCreated(() => {
|
||||||
// Show countdown dialog
|
const instance = Template.instance();
|
||||||
var timeoutCountdownInterval;
|
const { timeLeft, closeObserver } = instance.data;
|
||||||
$(document).on('TriggerOpenTimeoutCountdownDialog', function(e, leftTime) {
|
|
||||||
// Show modal dialog
|
|
||||||
timeoutCountdownInterval = setInterval(function() {
|
|
||||||
// Set countdownDialogLeftTime session
|
|
||||||
Session.set('countdownDialogLeftTime', --leftTime);
|
|
||||||
|
|
||||||
var dialog = $('#timeoutCountdownDialog');
|
instance.close = callback => {
|
||||||
|
const $modal = instance.$('.modal');
|
||||||
// Show dialog
|
$modal.on('hidden.bs.modal', () => callback()).modal('hide');
|
||||||
dialog.css('display', 'block');
|
};
|
||||||
}, 1000);
|
|
||||||
|
|
||||||
|
instance.autorun(computation => {
|
||||||
|
closeObserver.depend();
|
||||||
|
if (computation.firstRun) return;
|
||||||
|
instance.close(instance.data.promiseResolve);
|
||||||
});
|
});
|
||||||
|
|
||||||
$(document).on('TriggerCloseTimeoutCountdownDialog', function() {
|
Session.set('countdownDialogTimeLeft', timeLeft);
|
||||||
var dialog = $('#timeoutCountdownDialog');
|
});
|
||||||
|
|
||||||
// Close the dialog
|
Template.timeoutCountdownDialog.onRendered(() => {
|
||||||
dialog.css('display', 'none');
|
const instance = Template.instance();
|
||||||
|
let timeLeft = instance.data.timeLeft;
|
||||||
if (timeoutCountdownInterval) {
|
|
||||||
clearInterval(timeoutCountdownInterval);
|
|
||||||
|
|
||||||
|
// Update countdownDialogTimeLeft session every second
|
||||||
|
instance.interval = setInterval(() => {
|
||||||
|
Session.set('countdownDialogTimeLeft', --timeLeft);
|
||||||
|
if (!timeLeft) {
|
||||||
// Remove reviewer info for the user
|
// Remove reviewer info for the user
|
||||||
Meteor.call('removeUserFromReviewers', Meteor.userId());
|
Meteor.call('removeUserFromReviewers', Meteor.userId());
|
||||||
|
instance.close(instance.data.promiseReject);
|
||||||
}
|
}
|
||||||
});
|
}, 1000);
|
||||||
|
});
|
||||||
|
|
||||||
|
Template.timeoutCountdownDialog.onDestroyed(() => {
|
||||||
|
const instance = Template.instance();
|
||||||
|
clearInterval(instance.interval);
|
||||||
|
Session.delete('countdownDialogTimeLeft');
|
||||||
});
|
});
|
||||||
|
|||||||
@ -1,15 +0,0 @@
|
|||||||
#timeoutCountdownDialog
|
|
||||||
display: none
|
|
||||||
position: absolute
|
|
||||||
top: 0
|
|
||||||
bottom: 0
|
|
||||||
left: 0
|
|
||||||
right: 0
|
|
||||||
margin: auto
|
|
||||||
width: 20%
|
|
||||||
height: 15%
|
|
||||||
z-index: 100
|
|
||||||
border-radius: 5px
|
|
||||||
padding: 10px 20px 10px 20px
|
|
||||||
background-color: rgba(255,255,255,1)
|
|
||||||
outline: none
|
|
||||||
@ -49,7 +49,6 @@ Package.onUse(function(api) {
|
|||||||
api.addFiles('client/components/hipaaLogPage/hipaaLogPage.js', 'client');
|
api.addFiles('client/components/hipaaLogPage/hipaaLogPage.js', 'client');
|
||||||
|
|
||||||
api.addFiles('client/components/timeoutCountdownDialog/timeoutCountdownDialog.html', 'client');
|
api.addFiles('client/components/timeoutCountdownDialog/timeoutCountdownDialog.html', 'client');
|
||||||
api.addFiles('client/components/timeoutCountdownDialog/timeoutCountdownDialog.styl', 'client');
|
|
||||||
api.addFiles('client/components/timeoutCountdownDialog/timeoutCountdownDialog.js', 'client');
|
api.addFiles('client/components/timeoutCountdownDialog/timeoutCountdownDialog.js', 'client');
|
||||||
|
|
||||||
api.addFiles('client/components/lastLoginModal/lastLoginModal.html', 'client');
|
api.addFiles('client/components/lastLoginModal/lastLoginModal.html', 'client');
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user