ohif-viewer/Packages/ohif-study-list/client/components/progressDialog/progressDialog.js
2016-11-15 08:24:01 +01:00

79 lines
2.2 KiB
JavaScript

import { Template } from 'meteor/templating';
import { Session } from 'meteor/session';
import { _ } from 'meteor/underscore';
import { OHIF } from 'meteor/ohif:core';
const updateProgress = numberOfCompleted => {
const progressDialogSettings = Session.get('progressDialogSettings');
progressDialogSettings.numberOfCompleted = numberOfCompleted;
Session.set('progressDialogSettings', progressDialogSettings);
if (progressDialogSettings.numberOfCompleted === progressDialogSettings.numberOfTotal) {
OHIF.studylist.progressDialog.close();
}
};
const setProgressMessage = message => {
let progressDialogSettings = Session.get('progressDialogSettings');
progressDialogSettings.message = message;
Session.set('progressDialogSettings', progressDialogSettings);
};
OHIF.studylist.progressDialog = {
update: _.debounce(updateProgress, 100),
setMessage: _.debounce(setProgressMessage, 100),
show: function(title, numberOfTotal) {
Session.set('progressDialogSettings', {
title: title,
numberOfCompleted: 0,
numberOfTotal: numberOfTotal
});
$('#progressDialog').css('display', 'block');
},
close: function() {
Session.set('progressDialogSettings', {
title: '',
numberOfCompleted: 0,
numberOfTotal: 1
});
$('#progressDialog').css('display', 'none');
}
};
Template.progressDialog.helpers({
progressDialogTitle() {
const settings = Session.get('progressDialogSettings');
if (!settings) {
return;
}
return settings.title;
},
progressStatus() {
const settings = Session.get('progressDialogSettings');
if (!settings) {
return;
}
if (settings.numberOfCompleted === undefined ||
settings.numberOfTotal === undefined) {
return;
}
return (settings.numberOfCompleted / settings.numberOfTotal) * 100;
},
progressMessage() {
const settings = Session.get('progressDialogSettings');
if (!settings) {
return;
}
return settings.message;
}
});