From d014c72aa4d3968e98e1f9712f35059ca8d5d1a6 Mon Sep 17 00:00:00 2001 From: Bruno Alves de Faria Date: Wed, 8 Jun 2016 08:24:40 -0300 Subject: [PATCH] LT-247: Adding behavior for All timepoints option --- .../studyTimepointBrowser.html | 2 +- .../studyTimepointBrowser.js | 30 ++++++++++++++++--- 2 files changed, 27 insertions(+), 5 deletions(-) diff --git a/Packages/lesiontracker/client/components/studyTimepointBrowser/studyTimepointBrowser.html b/Packages/lesiontracker/client/components/studyTimepointBrowser/studyTimepointBrowser.html index c74a91c2d..15312adac 100644 --- a/Packages/lesiontracker/client/components/studyTimepointBrowser/studyTimepointBrowser.html +++ b/Packages/lesiontracker/client/components/studyTimepointBrowser/studyTimepointBrowser.html @@ -4,7 +4,7 @@
{{#each timepoint in timepoints}} {{#if shouldShowTimepoint timepoint @index}} -
+
diff --git a/Packages/lesiontracker/client/components/studyTimepointBrowser/studyTimepointBrowser.js b/Packages/lesiontracker/client/components/studyTimepointBrowser/studyTimepointBrowser.js index 7e835f98d..ac2d3c732 100644 --- a/Packages/lesiontracker/client/components/studyTimepointBrowser/studyTimepointBrowser.js +++ b/Packages/lesiontracker/client/components/studyTimepointBrowser/studyTimepointBrowser.js @@ -1,3 +1,18 @@ +Template.studyTimepointBrowser.onRendered(() => { + const instance = Template.instance(); + instance.autorun(() => { + // Runs this computation everytime the timepointViewType is changed + const type = instance.data.timepointViewType.get(); + + // Removes all active classes to collapse the timepoints and studies + instance.$('.timepointEntry, .studyTimepointStudy').removeClass('active'); + if (type === 'key') { + // Show only first timepoint expanded for key timepoints + instance.$('.timepointEntry:first').addClass('active'); + } + }); +}); + Template.studyTimepointBrowser.events({ 'click .timepointHeader'(event, instance) { const $timepoint = $(event.currentTarget).closest('.timepointEntry'); @@ -11,21 +26,28 @@ Template.studyTimepointBrowser.events({ }); Template.studyTimepointBrowser.helpers({ - timepoints: function() { + timepoints() { + // Sort timepoints based on timeline and type const sort = { sort: { - earliestDate: -1 + earliestDate: -1, + timepointType: -1 } }; + // Returns all timepoints with sorting return Timepoints.find({}, sort); }, + // Decides if a timepoint should be shown or omitted shouldShowTimepoint(timepoint, index) { const instance = Template.instance(); + + // Show all timepoints when view type is all if (instance.data.timepointViewType.get() === 'all') { return true; } - return index < 4 || timepoint.timepointType === 'baseline'; + // Show only the latest timepoints and baseline + return index < 3 || timepoint.timepointType === 'baseline'; }, // Build the timepoint title based on its date timepointTitle(timepoint, total, index) { @@ -39,7 +61,7 @@ Template.studyTimepointBrowser.helpers({ 2: '(Nadir)' }; // TODO: [design] find out how to define the nadir timepoint - const followUp = total - index - 1; + const followUp = total - index; const parenthesis = states[index] || ''; return `Follow-up ${followUp} ${parenthesis}`; }