think_feel_do_engine 3.12.3 → 3.12.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 294cb733b7d6aaab9041418769aadaf0af82f003
4
- data.tar.gz: ea4ca81298e6edfc3f6d92fcd559910c195c71ee
3
+ metadata.gz: d2f279384413ae9527ed63dccf63ac46f933d377
4
+ data.tar.gz: aa19128c6c22d29d07d829ec1cf65e9eb67c8303
5
5
  SHA512:
6
- metadata.gz: d82dfd3f54e0bbb82f27c16dd77f8e33d184a71df5598f5bba85c627e6988855645d857e06049f07b789277615fff3aed79b27a2c9c0df298cf2790e6d10abc3
7
- data.tar.gz: 4c7a4ae3116ef79dd1495b5ef419b48db9482494eafdede5519f9aa5ce01550d69eb2ab7a270634e10ef3d75435e524cdf787f608588adca5b494347842a8882
6
+ metadata.gz: 28b0dc6f1d139ee57be4f1eee004dba48269bfaa606f171dd8f89077f8077404d0696b3e81ea45f836e9626475f54f4d4374e29b6ed05090c193c4c9d8e2847c
7
+ data.tar.gz: 3a664d335ad7e15538aeaf5c9f1ef22db659d8d245eb1bb0400f7af99a34467196ae8c5c2b2df6c0103b5e32164231a5dd739d956aa46a24519bee28e051f75e
data/Rakefile CHANGED
@@ -25,7 +25,7 @@ end
25
25
 
26
26
  require "jshintrb/jshinttask"
27
27
  Jshintrb::JshintTask.new :jshint do |t|
28
- t.pattern = %w( spec/dummy/spec/javascripts/**/*.js app/assets/javascripts/think_feel_do_engine/**/mood.js )
28
+ t.pattern = %w( spec/dummy/spec/javascripts/**/*.js app/assets/javascripts/think_feel_do_engine/**/draw_graphs.js )
29
29
  t.options = :defaults
30
30
  t.globals = ["$".to_sym, :spyOn, :afterEach, :beforeEach, :describe, :expect, :it, :jasmine, :sc, :Graph, :appendDateRange, :columnChart, :d3, :moment]
31
31
  end
@@ -0,0 +1,78 @@
1
+ (function () {
2
+ 'use strict';
3
+
4
+ sc.appendDateRange = function (graphParameters) {
5
+ var FORMAT = 'MMM DD YYYY';
6
+
7
+ $('div#date-range strong')
8
+ .empty()
9
+ .append(graphParameters.startDate.format(FORMAT) + ' - ' + graphParameters.endDate.format(FORMAT));
10
+ };
11
+
12
+ sc.drawEmotionViz = function(graphParameters) {
13
+ var GRAPH_DIV_ID = '#emotions';
14
+ var GRAPH_TITLE = 'Positive and Negative Emotions*';
15
+ var LEGEND = [['Positive', '#4682B4'], ['Negative', '#A52A2A'], ['Daily Average', 'green']];
16
+ var LEGEND_DIV_ID = '#emotion-legend';
17
+ var PIXEL_HEIGHT = 400;
18
+ var Y_MAX = 10;
19
+ var Y_MIN = -10;
20
+ var YLABEL = 'Intensity';
21
+
22
+ $('div#emotions, div#emotion-legend').empty();
23
+ d3.select(GRAPH_DIV_ID)
24
+ .datum(graphParameters.emotionsData)
25
+ .call(columnChart(graphParameters.startDate, graphParameters.endDate, Y_MIN, Y_MAX, GRAPH_TITLE, YLABEL)
26
+ .width(graphParameters.graphWidth)
27
+ .height(PIXEL_HEIGHT)
28
+ .drawLegend(LEGEND_DIV_ID, LEGEND, ['*Click each day for more information.']));
29
+ };
30
+
31
+ sc.drawMoodViz = function(graphParameters) {
32
+ var GRAPH_DIV_ID = '#mood';
33
+ var GRAPH_TITLE = 'Mood*';
34
+ var LEGEND = [['Mood', '#4682B4'], ['Daily Average', 'green']];
35
+ var LEGEND_DIV_ID = '#mood-legend';
36
+ var PIXEL_HEIGHT = 300;
37
+ var Y_MAX = 10;
38
+ var Y_MIN = 0;
39
+ var YLABEL = 'mood';
40
+
41
+ $('div#mood, div#mood-legend').empty();
42
+ d3.select(GRAPH_DIV_ID)
43
+ .datum(graphParameters.moodData)
44
+ .call(columnChart(graphParameters.startDate, graphParameters.endDate, Y_MIN, Y_MAX, GRAPH_TITLE, YLABEL)
45
+ .width(graphParameters.graphWidth)
46
+ .height(PIXEL_HEIGHT)
47
+ .y(function(date, i) {
48
+ return date.intensity;
49
+ })
50
+ .drawLegend(LEGEND_DIV_ID, LEGEND, ['*Click each day for more information.']));
51
+ };
52
+
53
+ sc.drawPHQViz = function(graphParameters) {
54
+ var GRAPH_DIV_ID = '#phq';
55
+ var GRAPH_TITLE = "PHQ9";
56
+ var PIXEL_HEIGHT = 300;
57
+ var Y_MAX = 27;
58
+ var Y_MIN = 0;
59
+ var YLABEL = 'Score';
60
+
61
+ $(GRAPH_DIV_ID).empty();
62
+ d3.select(GRAPH_DIV_ID)
63
+ .datum(graphParameters.phqData)
64
+ .call(columnChart(graphParameters.startDate, graphParameters.endDate, Y_MIN, Y_MAX, GRAPH_TITLE, YLABEL)
65
+ .width(graphParameters.graphWidth)
66
+ .height(PIXEL_HEIGHT)
67
+ .y(function(date, i) {
68
+ return date.intensity;
69
+ }));
70
+ };
71
+
72
+ sc.drawGraphs = function(graphParameters) {
73
+ sc.drawPHQViz(graphParameters);
74
+ sc.drawMoodViz(graphParameters);
75
+ sc.drawEmotionViz(graphParameters);
76
+ sc.appendDateRange(graphParameters);
77
+ };
78
+ })();
@@ -11,7 +11,7 @@
11
11
  graphParameters.interval = input.val();
12
12
  graphParameters.offset = 1;
13
13
  sc.offsetInterval(graphParameters);
14
- sc.drawGraphs();
14
+ sc.drawGraphs(graphParameters);
15
15
  });
16
16
 
17
17
  $('.offset').on('click', function(event) {
@@ -24,7 +24,7 @@
24
24
  } else {
25
25
  graphParameters.offset += parseInt($(this).data('value'), 10);
26
26
  sc.offsetInterval(graphParameters);
27
- sc.drawGraphs();
27
+ sc.drawGraphs(graphParameters);
28
28
  }
29
29
  });
30
30
  };
@@ -438,13 +438,6 @@ sc.offsetInterval = function (graphParameters) {
438
438
  graphParameters.endDate = moment().subtract(endOffset, 'days').startOf('day');
439
439
  }
440
440
 
441
- function appendDateRange (graphParameters) {
442
- var FORMAT = 'MMM DD YYYY'
443
- $('div#date-range strong')
444
- .empty()
445
- .append(graphParameters.startDate.format(FORMAT) + ' - ' + graphParameters.endDate.format(FORMAT));
446
- }
447
-
448
441
  function maxOffset (activationDate, interval) {
449
442
  return Math.ceil(moment().diff(activationDate, 'days')/interval)
450
443
  }
@@ -1,6 +1,7 @@
1
1
  module ContentModules
2
2
  # Container for didactic content.
3
3
  class LessonModule < BitCore::ContentModule
4
+ SLIDESHOW_PROVIDER_TYPE = "BitCore::ContentProviders::SlideshowProvider"
4
5
  after_save :update_slideshow
5
6
 
6
7
  def self.sort(arm_id, lesson_ids)
@@ -39,9 +40,9 @@ module ContentModules
39
40
  end
40
41
 
41
42
  def lesson_provider
42
- @lesson_provider ||= (content_providers.first ||
43
- add_content_provider("BitCore::ContentProviders::SlideshowProvider")
44
- )
43
+ @lesson_provider ||=
44
+ (content_providers.find_by_type(SLIDESHOW_PROVIDER_TYPE) ||
45
+ add_content_provider(SLIDESHOW_PROVIDER_TYPE))
45
46
  end
46
47
 
47
48
  def slides
@@ -280,7 +280,7 @@ class Participant < ActiveRecord::Base
280
280
  def emotional_rating_daily_averages
281
281
  averaged_ratings = []
282
282
 
283
- daily_ratings = emotional_ratings.group_by { |er| er.created_at.to_date }
283
+ daily_ratings = emotional_ratings.group_by(&:created_at)
284
284
  # rubocop:disable all
285
285
  daily_ratings.each do |day, emotion_array|
286
286
  # rubocop:enable all
@@ -25,49 +25,15 @@
25
25
  <div id="mood"></div>
26
26
  <div id="emotions"></div>
27
27
  <script>
28
- // starting graph parameters assume 7 day view ending in today
29
- var activationDate = activation("<%= patient.created_at %>")
30
- var graphParameters = new Graph(
31
- <%= sanitize(patient.mood_rating_daily_averages.to_json) %>,
32
- <%= sanitize(patient.emotional_rating_daily_averages.to_json) %>,
33
- <%= phq_features? ? sanitize(patient.phq_scores.to_json) : "null" %>,
34
- $("div#viz-container")
35
- );
28
+ // starting graph parameters assume 7 day view ending in today
29
+ var activationDate = activation("<%= patient.created_at %>")
30
+ var graphParameters = new Graph(
31
+ <%= sanitize(patient.mood_rating_daily_averages.to_json) %>,
32
+ <%= sanitize(patient.emotional_rating_daily_averages.to_json) %>,
33
+ <%= phq_features? ? sanitize(patient.phq_scores.to_json) : "null" %>,
34
+ $("div#viz-container")
35
+ );
36
36
 
37
- sc.drawGraphs = function() {
38
- $("div#mood, div#emotions").empty();
39
-
40
- <% if phq_features? %>
41
- $("div#phq").empty();
42
- var phqGraphTitle = "PHQ9";
43
- d3.select("#phq")
44
- .datum(graphParameters.phqData)
45
- .call(columnChart(graphParameters.startDate, graphParameters.endDate, 0, 27, phqGraphTitle, "Score")
46
- .width(graphParameters.graphWidth)
47
- .height(300)
48
- .x(function(d, i) { return moment(d.day).startOf('day')._d; })
49
- .y(function(d, i) { return d.intensity; }));
50
- <% end %>
51
-
52
- var moodGraphTitle = "Mood";
53
- d3.select("#mood")
54
- .datum(graphParameters.moodData)
55
- .call(columnChart(graphParameters.startDate, graphParameters.endDate, 0, 10, moodGraphTitle, "mood")
56
- .width(graphParameters.graphWidth)
57
- .height(300)
58
- .x(function(d, i) { return moment(d.day).startOf('day')._d; })
59
- .y(function(d, i) { return d.intensity; }));
60
-
61
- var emotionGraphTitle = "Positive and Negative Emotions";
62
- d3.select("#emotions")
63
- .datum(graphParameters.emotionsData)
64
- .call(columnChart(graphParameters.startDate, graphParameters.endDate, -10, 10, emotionGraphTitle, "Intensity")
65
- .width(graphParameters.graphWidth)
66
- .height(400));
67
-
68
- appendDateRange(graphParameters);
69
- }
70
-
71
- sc.drawGraphs();
72
- sc.filterEmotionMoodViz(graphParameters);
37
+ sc.drawGraphs(graphParameters);
38
+ sc.filterEmotionMoodViz(graphParameters);
73
39
  </script>
@@ -32,6 +32,6 @@
32
32
 
33
33
  var graphParameters = new Graph(<%= sanitize(mood_ratings.to_json) %>, <%= sanitize(emotional_ratings.to_json) %>, null, $("#viz-container"));
34
34
 
35
- sc.drawMoodEmotionGraphs(graphParameters);
35
+ sc.drawGraphs(graphParameters);
36
36
  sc.filterEmotionMoodViz(graphParameters);
37
37
  </script>
@@ -1,4 +1,4 @@
1
1
  # nodoc
2
2
  module ThinkFeelDoEngine
3
- VERSION = "3.12.3"
3
+ VERSION = "3.12.4"
4
4
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: think_feel_do_engine
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.12.3
4
+ version: 3.12.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eric Carty-Fickes
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-02-26 00:00:00.000000000 Z
11
+ date: 2016-03-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -347,9 +347,9 @@ files:
347
347
  - app/assets/javascripts/think_feel_do_engine/dateWrapper.js
348
348
  - app/assets/javascripts/think_feel_do_engine/devise/passwords/edit.js.erb
349
349
  - app/assets/javascripts/think_feel_do_engine/event_capture/init.js
350
+ - app/assets/javascripts/think_feel_do_engine/feel/draw_graphs.js
350
351
  - app/assets/javascripts/think_feel_do_engine/feel/emotion_mood_viz.js
351
352
  - app/assets/javascripts/think_feel_do_engine/feel/emotions.js
352
- - app/assets/javascripts/think_feel_do_engine/feel/mood.js
353
353
  - app/assets/javascripts/think_feel_do_engine/feel/timeago.js
354
354
  - app/assets/javascripts/think_feel_do_engine/forms/multi_page.js.erb
355
355
  - app/assets/javascripts/think_feel_do_engine/forms/multi_page_thought.js.erb
@@ -1,63 +0,0 @@
1
- (function () {
2
- 'use strict';
3
-
4
- sc.calcStartOfDay = function(date) {
5
- return moment(date.day, 'YYYY-MM-DDTHH:mm:ss.sssZ').startOf('day')._d;
6
- };
7
-
8
- sc.drawMoodEmotionGraphs = function(graphParameters) {
9
- var NOTES = '*Click each day for more information.';
10
-
11
- function clearContainers() {
12
- $('div#mood, div#mood-legend, div#emotions, div#emotion-legend')
13
- .empty();
14
- }
15
-
16
- function drawMoodViz(graphParameters) {
17
- var GRAPH_DIV_ID = '#mood';
18
- var GRAPH_TITLE = 'Mood*';
19
- var LEGEND = [['Mood', '#4682B4'], ['Daily Average', 'green']];
20
- var LEGEND_DIV_ID = '#mood-legend';
21
- var PIXEL_HEIGHT = 300;
22
- var Y_MAX = 10;
23
- var Y_MIN = 0;
24
- var YLABEL = 'mood';
25
-
26
- d3.select(GRAPH_DIV_ID)
27
- .datum(graphParameters.moodData)
28
- .call(columnChart(graphParameters.startDate, graphParameters.endDate, Y_MIN, Y_MAX, GRAPH_TITLE, YLABEL)
29
- .width(graphParameters.graphWidth)
30
- .height(PIXEL_HEIGHT)
31
- .x(function(date, i) {
32
- return sc.calcStartOfDay(date);
33
- })
34
- .y(function(d, i) {
35
- return d.intensity;
36
- })
37
- .drawLegend(LEGEND_DIV_ID, LEGEND, [NOTES]));
38
- }
39
-
40
- function drawEmotionViz(graphParameters) {
41
- var GRAPH_DIV_ID = '#emotions';
42
- var GRAPH_TITLE = 'Positive and Negative Emotions*';
43
- var LEGEND = [['Positive', '#4682B4'], ['Negative', '#A52A2A'], ['Daily Average', 'green']];
44
- var LEGEND_DIV_ID = '#emotion-legend';
45
- var PIXEL_HEIGHT = 400;
46
- var Y_MAX = 10;
47
- var Y_MIN = -10;
48
- var YLABEL = 'Intensity';
49
-
50
- d3.select(GRAPH_DIV_ID)
51
- .datum(graphParameters.emotionsData)
52
- .call(columnChart(graphParameters.startDate, graphParameters.endDate, Y_MIN, Y_MAX, GRAPH_TITLE, YLABEL)
53
- .width(graphParameters.graphWidth)
54
- .height(PIXEL_HEIGHT)
55
- .drawLegend(LEGEND_DIV_ID, LEGEND, [NOTES]));
56
- }
57
-
58
- clearContainers();
59
- drawMoodViz(graphParameters);
60
- drawEmotionViz(graphParameters);
61
- return appendDateRange(graphParameters);
62
- };
63
- })();