PWV-1: Refactoring ohif:studylist package

This commit is contained in:
Bruno Alves de Faria authored and Erik Ziegler committed 2016-11-15 08:24:01 +01:00
1 parent 984ef94403
commit 4d79bf84a8
79 files changed
+450 -551

No files matched your search

@@ -0,0 +1,2 @@
import './studyContextMenu.html';
import './studyContextMenu.js';
@@ -1,25 +1,12 @@
<template name="studyContextMenu">
{{#if uiSettings.studyListFunctionsEnabled}}
<div id="studyContextMenu" class="studyContextMenu noselect"
oncontextmenu='return false;'
unselectable='on'
onselectstart='return false;'>
<ul>
<li>
<a id="viewSeriesDetails" type="button"
title="View Series Details">
View Series Details
</a>
<a class="disabled">Anonymize</a>
<a class="disabled">Send</a>
<hr/>
<a class="disabled">Delete</a>
<a id="exportSelectedStudies"
title="Export Selected Studies">
Export
</a>
</li>
</ul>
</div>
{{/if}}
{{#dropdownForm}}
<li><a id="viewSeriesDetails" type="button"
title="View Series Details"
>View Series Details</a></li>
<li class="disabled"><a class="disabled">Anonymize</a></li>
<li class="disabled"><a class="disabled">Send</a></li>
<li class="divider" role="separator"></li>
<li class="disabled"><a class="disabled">Delete</a></li>
<li><a id="exportSelectedStudies" title="Export Selected Studies">Export</a></li>
{{/dropdownForm}}
</template>
@@ -1,84 +1,48 @@
function closeHandler(dialog) {
// Hide the dialog
$(dialog).css('display', 'none');
// Remove the backdrop
$('.removableBackdrop').remove();
}
import { OHIF } from 'meteor/ohif:core';
/**
* This function is used inside the StudyList package to define a right click callback
*
* @param e
* @param event
*/
openStudyContextMenu = function(e) {
StudyList.functions['exportSelectedStudies'] = exportSelectedStudies;
StudyList.functions['viewSeriesDetails'] = viewSeriesDetails;
Template.studyContextMenu.study = $(e.currentTarget);
var dialog = $('#studyContextMenu');
// Show the nonTargetLesion dialog above
var dialogProperty = {
display: 'block'
};
var pageHeight = $(document).height();
dialogProperty.top = Math.max(e.pageY, 0);
dialogProperty.top = Math.min(dialogProperty.top, pageHeight - dialog.outerHeight());
var pageWidth = $(document).width();
dialogProperty.left = Math.max(e.pageX, 0);
dialogProperty.left = Math.min(dialogProperty.left, pageWidth - dialog.outerWidth());
// Device is touch device or not
// If device is touch device, set position center of screen vertically and horizontally
if (isTouchDevice()) {
// add dialogMobile class to provide a black, transparent background
dialog.addClass('dialogMobile');
dialogProperty.top = 0;
dialogProperty.left = 0;
dialogProperty.right = 0;
dialogProperty.bottom = 0;
dialogProperty.margin = 'auto';
openStudyContextMenu = event => {
if (!OHIF.uiSettings.studyListFunctionsEnabled) {
return;
}
dialog.css(dialogProperty);
dialog.focus();
StudyList.functions.exportSelectedStudies = exportSelectedStudies;
StudyList.functions.viewSeriesDetails = viewSeriesDetails;
// Show the backdrop
UI.render(Template.removableBackdrop, document.body);
Template.studyContextMenu.$study = $(event.currentTarget);
// Make sure the context menu is closed when the user clicks away
$('.removableBackdrop').one('mousedown touchstart', function() {
closeHandler(dialog);
});
const dropdown = OHIF.ui.showFormDropdown('studyContextMenu');
const $dropdown = $(dropdown);
const $dropdownMenu = $dropdown.children('.dropdown-menu');
dropdown.oncontextmenu = () => false;
$dropdownMenu.css({
position: 'fixed',
left: `${event.clientX}px`,
top: `${event.clientY}px`,
'z-index': 10000
}).bounded().focus();
};
/**
* Exports all selected studies on the studylist
*/
function exportSelectedStudies() {
var selectedStudies = StudyListSelectedStudies.find({}, {
sort: {
studyDate: 1
}
}).fetch() || [];
const selectedStudies = OHIF.studylist.getSelectedStudies();
exportStudies(selectedStudies);
OHIF.studylist.exportStudies(selectedStudies);
}
/**
* Display series details of study in modal
*/
function viewSeriesDetails() {
var selectedStudies = StudyListSelectedStudies.find({}, {
sort: {
studyDate: 1
}
}).fetch();
const selectedStudies = OHIF.studylist.getSelectedStudies();
if (!selectedStudies) {
return;
@@ -91,7 +55,7 @@ function viewSeriesDetails() {
Template.studyContextMenu.events({
'click a': function(e) {
var study = Template.studyContextMenu.study;
var study = Template.studyContextMenu.$study;
var id = $(e.currentTarget).attr('id');
var fn = StudyList.functions[id];
@@ -100,6 +64,5 @@ Template.studyContextMenu.events({
}
var dialog = $('#studyContextMenu');
closeHandler(dialog);
}
});
@@ -1,63 +0,0 @@
@import "{design}/app"
.studyContextMenu
z-index: 10000
display: none
position: absolute
color: #2f2f2f
background-color: #f2f2f2
width: -moz-fit-content
width: -webkit-fit-content
width: fit-content
width: 207px
height: -moz-fit-content
height: -webkit-fit-content
height: fit-content
min-width: 100px
font-size: 14px
text-align: left
-webkit-background-clip: padding-box
background-clip: padding-box
border: 1px solid rgba(0, 0, 0, .15)
border-radius: 3px
-webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, .175)
box-shadow: 0 6px 12px rgba(0, 0, 0, .175)
hr
border-top: solid 1px #d1d1d1
margin: 2px
ul
width: 100%
margin: 5px 0
list-style: none
padding: 0
li
clear: both
white-space: nowrap
a
padding: 3px 15px
display: block
text-decoration: none
cursor: pointer
font-size: 15px
line-height: 1.7
color: black
&:not(.disabled):hover
theme('color', '$activeColor')
text-decoration: none
&.disabled
opacity: 0.4
pointer-events: none
cursor: default
.fa-lg
width: 40px
text-align: center