From 9998323cfb2bc71836a6c75ae05d4014032c431e Mon Sep 17 00:00:00 2001 From: "Emanuel F. Oliveira" Date: Mon, 14 Nov 2016 23:56:04 -0200 Subject: [PATCH] LT-331 Study list context menu behaviour issues --- .../longitudinalStudyListContextMenu.html | 15 ++++-- .../longitudinalStudyListContextMenu.js | 54 +++++++++++++++++++ .../studyContextMenu/studyContextMenu.js | 17 ++++-- 3 files changed, 78 insertions(+), 8 deletions(-) diff --git a/Packages/ohif-measurements/client/components/longitudinal/longitudinalStudyListContextMenu/longitudinalStudyListContextMenu.html b/Packages/ohif-measurements/client/components/longitudinal/longitudinalStudyListContextMenu/longitudinalStudyListContextMenu.html index 318ae510a..ce76cab1d 100644 --- a/Packages/ohif-measurements/client/components/longitudinal/longitudinalStudyListContextMenu/longitudinalStudyListContextMenu.html +++ b/Packages/ohif-measurements/client/components/longitudinal/longitudinalStudyListContextMenu/longitudinalStudyListContextMenu.html @@ -2,17 +2,26 @@ {{#dropdownForm}}
  • View
  • -
  • - Associate + + {{#let classes=getAssociationClasses}} +
  • + Associate
  • -
  • + Remove Association
  • + {{/let}} +
  • 0) { + assessment.selected = selectedStudies.length; + // Loop through the selected Studies and return true if at least one study has no association. + for (let i = selectedStudies.length - 1; i >= 0; --i) { + let study = selectedStudies[i], + timepoints = timepointApi.study(study.studyInstanceUid); + if (timepoints && timepoints.length > 0) { + assessment.associated++; + } + } + } + } + return assessment; +} + +Template.longitudinalStudyListContextMenu.helpers({ + + getAssociationClasses() { + const disabledClass = 'disabled'; + let classList = ''; + + const assessment = getAssociationAssessment(); + if (assessment.selected < 1 || assessment.associated > 0) { + classList += disabledClass; + } + + return classList; + }, + + getRemoveAssociationClasses() { + const disabledClass = 'disabled'; + let classList = ''; + + const assessment = getAssociationAssessment(); + if (assessment.selected < 1 || assessment.selected !== assessment.associated) { + classList += disabledClass; + } + + return classList; + } +}); + Template.longitudinalStudyListContextMenu.replaces(defaultTemplate); +Template[defaultTemplate].inheritsHelpersFrom('longitudinalStudyListContextMenu'); StudyList.functions.launchStudyAssociation = () => OHIF.ui.showFormDialog('dialogStudyAssociation'); StudyList.functions.removeTimepointAssociations = removeTimepointAssociations; diff --git a/Packages/ohif-study-list/client/components/studyContextMenu/studyContextMenu.js b/Packages/ohif-study-list/client/components/studyContextMenu/studyContextMenu.js index fbaedadd3..c1528a108 100644 --- a/Packages/ohif-study-list/client/components/studyContextMenu/studyContextMenu.js +++ b/Packages/ohif-study-list/client/components/studyContextMenu/studyContextMenu.js @@ -1,4 +1,5 @@ import { OHIF } from 'meteor/ohif:core'; +import { $ } from 'meteor/jquery'; /** * This function is used inside the StudyList package to define a right click callback @@ -55,12 +56,18 @@ function viewSeriesDetails() { Template.studyContextMenu.events({ 'click a': function(e) { - var study = Template.studyContextMenu.$study; - var id = $(e.currentTarget).attr('id'); + var id, fn, target = $(e.currentTarget); - var fn = StudyList.functions[id]; - if (fn && typeof(fn) === 'function') { - fn(study); + if (target.hasClass('disabled')) { + return; + } + + id = target.attr('id'); + if (id in StudyList.functions) { + fn = StudyList.functions[id]; + if (typeof fn === 'function') { + fn(Template.studyContextMenu.$study); + } } var dialog = $('#studyContextMenu');