mumuki-laboratory 7.7.6 → 7.10.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (92) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +83 -3
  3. data/Rakefile +7 -1
  4. data/app/assets/javascripts/mumuki_laboratory/application/alias-modes.js +1 -1
  5. data/app/assets/javascripts/mumuki_laboratory/application/bridge.js +66 -57
  6. data/app/assets/javascripts/mumuki_laboratory/application/codemirror-builder.js +28 -25
  7. data/app/assets/javascripts/mumuki_laboratory/application/codemirror.js +8 -10
  8. data/app/assets/javascripts/mumuki_laboratory/application/confirmation.js +2 -2
  9. data/app/assets/javascripts/mumuki_laboratory/application/console.js +41 -43
  10. data/app/assets/javascripts/mumuki_laboratory/application/csrf-token.js +9 -12
  11. data/app/assets/javascripts/mumuki_laboratory/application/custom-editor.js +11 -15
  12. data/app/assets/javascripts/mumuki_laboratory/application/discussions.js +1 -3
  13. data/app/assets/javascripts/mumuki_laboratory/application/editors.js +104 -0
  14. data/app/assets/javascripts/mumuki_laboratory/application/elipsis.js +5 -4
  15. data/app/assets/javascripts/mumuki_laboratory/application/events.js +51 -0
  16. data/app/assets/javascripts/mumuki_laboratory/application/exercise.js +68 -0
  17. data/app/assets/javascripts/mumuki_laboratory/application/inputs.js +4 -2
  18. data/app/assets/javascripts/mumuki_laboratory/application/interval.js +2 -4
  19. data/app/assets/javascripts/mumuki_laboratory/application/kids.js +1 -1
  20. data/app/assets/javascripts/mumuki_laboratory/application/load-analytics.js +1 -1
  21. data/app/assets/javascripts/mumuki_laboratory/application/load-error-svg.js +1 -1
  22. data/app/assets/javascripts/mumuki_laboratory/application/messages.js +2 -2
  23. data/app/assets/javascripts/mumuki_laboratory/application/multiple-choice.js +1 -1
  24. data/app/assets/javascripts/mumuki_laboratory/application/multiple-scenarios.js +3 -6
  25. data/app/assets/javascripts/mumuki_laboratory/application/pin.js +3 -5
  26. data/app/assets/javascripts/mumuki_laboratory/application/profile.js +71 -0
  27. data/app/assets/javascripts/mumuki_laboratory/application/progress.js +24 -6
  28. data/app/assets/javascripts/mumuki_laboratory/application/results-renderer.js +20 -11
  29. data/app/assets/javascripts/mumuki_laboratory/application/speech-bubble-renderer.js +12 -5
  30. data/app/assets/javascripts/mumuki_laboratory/application/submission.js +19 -101
  31. data/app/assets/javascripts/mumuki_laboratory/application/submissions-store.js +93 -0
  32. data/app/assets/javascripts/mumuki_laboratory/application/sync-mode.js +75 -0
  33. data/app/assets/javascripts/mumuki_laboratory/application/timer.js +5 -6
  34. data/app/assets/javascripts/mumuki_laboratory/application/tooltip.js +1 -1
  35. data/app/assets/javascripts/mumuki_laboratory/application/upload.js +1 -1
  36. data/app/assets/javascripts/mumuki_laboratory/application/user.js +1 -1
  37. data/app/assets/stylesheets/mumuki_laboratory/application.scss +1 -1
  38. data/app/assets/stylesheets/mumuki_laboratory/application/_modules.scss +19 -17
  39. data/app/assets/stylesheets/mumuki_laboratory/application/modules/_avatar.scss +41 -0
  40. data/app/assets/stylesheets/mumuki_laboratory/application/modules/_gs-board.scss +3 -0
  41. data/app/assets/stylesheets/mumuki_laboratory/application/modules/{guide-corollary.scss → _guide_corollary.scss} +0 -0
  42. data/app/assets/stylesheets/mumuki_laboratory/application/modules/_kids.scss +1 -2
  43. data/app/assets/stylesheets/mumuki_laboratory/application/modules/_kindergarten.scss +2 -1
  44. data/app/assets/stylesheets/mumuki_laboratory/application/modules/{popover.scss → _popover.scss} +0 -0
  45. data/app/assets/stylesheets/mumuki_laboratory/application/modules/_user_profile.scss +36 -0
  46. data/app/controllers/application_controller.rb +2 -1
  47. data/app/controllers/users_controller.rb +5 -1
  48. data/app/helpers/application_helper.rb +6 -4
  49. data/app/helpers/avatar_helper.rb +9 -0
  50. data/app/helpers/discussions_helper.rb +2 -2
  51. data/app/helpers/{locale_helper.rb → globals_helper.rb} +6 -2
  52. data/app/helpers/profile_helper.rb +5 -0
  53. data/app/mailers/user_mailer.rb +24 -11
  54. data/app/views/book/show.html.erb +1 -1
  55. data/app/views/exercises/show.html.erb +3 -0
  56. data/app/views/layouts/_main.html.erb +1 -2
  57. data/app/views/layouts/_progress.html.erb +1 -1
  58. data/app/views/layouts/_progress_bar.html.erb +7 -1
  59. data/app/views/layouts/_runner_assets.html.erb +1 -2
  60. data/app/views/layouts/application.html.erb +2 -2
  61. data/app/views/layouts/modals/_avatar_picker.html.erb +16 -0
  62. data/app/views/users/_avatar_list.html.erb +11 -0
  63. data/app/views/users/_edit_user_form.html.erb +22 -0
  64. data/app/views/users/_user_form.html.erb +21 -8
  65. data/app/views/users/edit.html.erb +5 -0
  66. data/app/views/users/show.html.erb +0 -4
  67. data/config/routes.rb +1 -1
  68. data/lib/mumuki/laboratory/controllers.rb +1 -0
  69. data/lib/mumuki/laboratory/controllers/incognito_mode.rb +28 -0
  70. data/lib/mumuki/laboratory/locales/datetime.es.yml +14 -14
  71. data/lib/mumuki/laboratory/locales/en.yml +12 -4
  72. data/lib/mumuki/laboratory/locales/es.yml +12 -4
  73. data/lib/mumuki/laboratory/locales/pt.yml +10 -2
  74. data/lib/mumuki/laboratory/version.rb +1 -1
  75. data/spec/dummy/db/schema.rb +13 -1
  76. data/spec/features/chapter_spec.rb +17 -0
  77. data/spec/features/exercise_flow_spec.rb +54 -6
  78. data/spec/features/home_public_flow_spec.rb +16 -0
  79. data/spec/helpers/avatar_helper_spec.rb +26 -0
  80. data/spec/javascripts/editors-spec.js +54 -0
  81. data/spec/javascripts/events-spec.js +33 -0
  82. data/spec/javascripts/exercise-spec.js +41 -0
  83. data/spec/javascripts/global-spec.js +6 -0
  84. data/spec/javascripts/spec-helper.js +4 -0
  85. data/spec/javascripts/submissions-store-spec.js +44 -0
  86. data/spec/javascripts/sync-mode-spec.js +15 -0
  87. data/spec/mailers/user_mailer_spec.rb +23 -3
  88. data/spec/teaspoon_env.rb +8 -2
  89. data/vendor/assets/javascripts/codemirror-modes/gobstones.js +3 -3
  90. metadata +38 -11
  91. data/app/assets/stylesheets/mumuki_laboratory/application/modules/_follow_us.scss +0 -16
  92. data/app/helpers/version_helper.rb +0 -5
@@ -0,0 +1,6 @@
1
+ describe("global loading", () => {
2
+ it("produces no global loading errors", () => {
3
+ const error = window['__globalLoadingError__'];
4
+ expect(!error).toBe(true, `Expected no global loading errors but got ${error && error.message}`)
5
+ })
6
+ })
@@ -28,3 +28,7 @@
28
28
  // the configuration and use this file as a manifest.
29
29
  //
30
30
  // For more information: http://github.com/modeset/teaspoon
31
+
32
+ window.addEventListener("error", (e) => {
33
+ window['__globalLoadingError__'] = e;
34
+ });
@@ -0,0 +1,44 @@
1
+ describe("SubmissionsStore", () => {
2
+ const emptyProgramSubmission = {"solution[content]": "program {}"};
3
+ /** @type {SubmissionResult} */
4
+ const passedSubmissionResult = {status: 'passed'};
5
+ /** @type {SubmissionAndResult} */
6
+ const passedEmptyProgramSubmissionAndResult = { submission: emptyProgramSubmission, result: passedSubmissionResult };
7
+
8
+ beforeEach(() => {
9
+ window.localStorage.clear()
10
+ });
11
+
12
+ describe('getLastSubmission', () => {
13
+ it("answers null if submission not present", () => {
14
+ expect(mumuki.SubmissionsStore.getLastSubmissionAndResult(1)).toBe(null)
15
+ })
16
+
17
+ it("answers the last submission result if already sent", () => {
18
+ mumuki.SubmissionsStore.setSubmissionResultFor(1, passedEmptyProgramSubmissionAndResult)
19
+ expect(mumuki.SubmissionsStore.getLastSubmissionAndResult(1)).toEqual(passedEmptyProgramSubmissionAndResult)
20
+ })
21
+ })
22
+
23
+ describe('getLastSubmissionStatus', () => {
24
+ it("answers pending if submission not present", () => {
25
+ expect(mumuki.SubmissionsStore.getLastSubmissionStatus(1)).toBe('pending')
26
+ })
27
+
28
+ it("answers the last submission status if previously sent", () => {
29
+ mumuki.SubmissionsStore.setSubmissionResultFor(1, passedEmptyProgramSubmissionAndResult)
30
+ expect(mumuki.SubmissionsStore.getLastSubmissionStatus(1)).toBe('passed')
31
+ })
32
+ });
33
+
34
+ describe('getCachedResultFor', () => {
35
+ it("answers null if submission not present", () => {
36
+ expect(mumuki.SubmissionsStore.getSubmissionResultFor(1, emptyProgramSubmission)).toBe(null)
37
+ })
38
+
39
+ it("answers the last submission if previously sent", () => {
40
+ mumuki.SubmissionsStore.setSubmissionResultFor(1, passedEmptyProgramSubmissionAndResult)
41
+ expect(mumuki.SubmissionsStore.getSubmissionResultFor(1, emptyProgramSubmission)).toEqual(passedSubmissionResult)
42
+ })
43
+ });
44
+ })
@@ -0,0 +1,15 @@
1
+ describe('sync mode', () => {
2
+ it('can choose server mode', () => {
3
+ mumuki.incognitoUser = false;
4
+ mumuki.syncMode._selectSyncMode();
5
+
6
+ expect(mumuki.syncMode._current instanceof mumuki.syncMode.ServerSyncMode).toBe(true);
7
+ })
8
+
9
+ it('can choose local mode', () => {
10
+ mumuki.incognitoUser = true;
11
+ mumuki.syncMode._selectSyncMode();
12
+
13
+ expect(mumuki.syncMode._current instanceof mumuki.syncMode.ClientSyncMode).toBe(true);
14
+ })
15
+ })
@@ -148,21 +148,21 @@ RSpec.describe UserMailer, type: :mailer do
148
148
 
149
149
  context "registered 1 week ago" do
150
150
  it { expect(user.should_remind?).to be true }
151
- it { expect(reminder.body.encoded).to include("you've never submitted solutions") }
151
+ it { expect(reminder.body.encoded).to include('you've never submitted solutions') }
152
152
  end
153
153
 
154
154
  context "last submission 2 weeks ago" do
155
155
  let(:days_since_user_creation) { 16 }
156
156
 
157
157
  it { expect(user.should_remind?).to be true }
158
- it { expect(reminder.body.encoded).to include("you've never submitted solutions") }
158
+ it { expect(reminder.body.encoded).to include('you've never submitted solutions') }
159
159
  end
160
160
 
161
161
  context "last submission 3 weeks ago" do
162
162
  let(:days_since_user_creation) { 26 }
163
163
 
164
164
  it { expect(user.should_remind?).to be true }
165
- it { expect(reminder.body.encoded).to include("you've never submitted solutions") }
165
+ it { expect(reminder.body.encoded).to include('you've never submitted solutions') }
166
166
  end
167
167
 
168
168
  context "last submission 4 weeks ago" do
@@ -178,4 +178,24 @@ RSpec.describe UserMailer, type: :mailer do
178
178
  it { expect(user.should_remind?).to be false }
179
179
  end
180
180
  end
181
+
182
+ describe 'welcome email' do
183
+ let(:email) { UserMailer.welcome_email(user, organization) }
184
+
185
+ let(:organization) { create :organization, welcome_email_template: 'hello <%= @user.first_name %>!' }
186
+
187
+ let(:user) { create :user, first_name: 'some name' }
188
+
189
+ it { expect(email.body.encoded).to eq 'hello some name!' }
190
+
191
+ context 'when organization does not have a custom sender address' do
192
+ it { expect(email.from).to eq ['support@mumuki.org'] }
193
+ end
194
+
195
+ context 'when organization does not have a custom sender address' do
196
+ before { organization.welcome_email_sender = 'info@mumuki.org' }
197
+
198
+ it { expect(email.from).to eq ['info@mumuki.org'] }
199
+ end
200
+ end
181
201
  end
@@ -3,6 +3,8 @@ unless defined?(Rails)
3
3
  require File.expand_path("../dummy/config/environment", __FILE__)
4
4
  end
5
5
 
6
+ # Enable this line for more verbose debugging
7
+ # Selenium::WebDriver.logger.level = :debug
6
8
 
7
9
  Teaspoon.configure do |config|
8
10
  # Determines where the Teaspoon routes will be mounted. Changing this to "/jasmine" would allow you to browse to
@@ -106,8 +108,12 @@ Teaspoon.configure do |config|
106
108
  # Capybara Webkit: https://github.com/modeset/teaspoon/wiki/Using-Capybara-Webkit
107
109
  # config.driver = :capybara_webkit
108
110
  config.driver = :selenium
109
- config.driver_options = {client_driver: :firefox}
110
-
111
+ config.driver_options = {
112
+ client_driver: :firefox,
113
+ selenium_options: {
114
+ options: Selenium::WebDriver::Firefox::Options.new(log_level: :warn)
115
+ }
116
+ }
111
117
 
112
118
  # Specify the timeout for the driver. Specs are expected to complete within this time frame or the run will be
113
119
  # considered a failure. This is to avoid issues that can arise where tests stall.
@@ -2,7 +2,7 @@
2
2
 
3
3
  (function() {
4
4
  var locale = document.querySelector("html").lang || 'es';
5
- var languageCode = locale.split("-")[0];
5
+ var language = new Intl.Locale(locale).language;
6
6
 
7
7
  var keywords = [
8
8
  "program", "procedure", "function", "interactive", "if",
@@ -23,8 +23,8 @@
23
23
  en: ["Put", "Grab", "Move", "GoToEdge", "EmptyBoardContents", "numStones", "anyStones", "canMove", "next", "prev", "opposite", "minBool", "maxBool", "minDir", "maxDir", "minColor", "maxColor"]
24
24
  };
25
25
 
26
- const localizedKeywordsAndBuiltins = keywords.concat(builtins[languageCode]);
27
- const localizedAtoms = atoms[languageCode];
26
+ const localizedKeywordsAndBuiltins = keywords.concat(builtins[language]);
27
+ const localizedAtoms = atoms[language];
28
28
 
29
29
  var buildList = function(values) {
30
30
  return values.join('|');
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mumuki-laboratory
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.7.6
4
+ version: 7.10.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Franco Bulgarelli
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-08-31 00:00:00.000000000 Z
11
+ date: 2020-09-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 7.7.3
33
+ version: 7.10.0
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 7.7.3
40
+ version: 7.10.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: mumukit-bridge
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -86,14 +86,14 @@ dependencies:
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '7.7'
89
+ version: '7.8'
90
90
  type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: '7.7'
96
+ version: '7.8'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: mumukit-content-type
99
99
  requirement: !ruby/object:Gem::Requirement
@@ -344,7 +344,10 @@ files:
344
344
  - app/assets/javascripts/mumuki_laboratory/application/csrf-token.js
345
345
  - app/assets/javascripts/mumuki_laboratory/application/custom-editor.js
346
346
  - app/assets/javascripts/mumuki_laboratory/application/discussions.js
347
+ - app/assets/javascripts/mumuki_laboratory/application/editors.js
347
348
  - app/assets/javascripts/mumuki_laboratory/application/elipsis.js
349
+ - app/assets/javascripts/mumuki_laboratory/application/events.js
350
+ - app/assets/javascripts/mumuki_laboratory/application/exercise.js
348
351
  - app/assets/javascripts/mumuki_laboratory/application/free-form.js
349
352
  - app/assets/javascripts/mumuki_laboratory/application/inputs.js
350
353
  - app/assets/javascripts/mumuki_laboratory/application/interval.js
@@ -357,10 +360,13 @@ files:
357
360
  - app/assets/javascripts/mumuki_laboratory/application/multiple-scenarios.js
358
361
  - app/assets/javascripts/mumuki_laboratory/application/pin.js
359
362
  - app/assets/javascripts/mumuki_laboratory/application/popover.js
363
+ - app/assets/javascripts/mumuki_laboratory/application/profile.js
360
364
  - app/assets/javascripts/mumuki_laboratory/application/progress.js
361
365
  - app/assets/javascripts/mumuki_laboratory/application/results-renderer.js
362
366
  - app/assets/javascripts/mumuki_laboratory/application/speech-bubble-renderer.js
363
367
  - app/assets/javascripts/mumuki_laboratory/application/submission.js
368
+ - app/assets/javascripts/mumuki_laboratory/application/submissions-store.js
369
+ - app/assets/javascripts/mumuki_laboratory/application/sync-mode.js
364
370
  - app/assets/javascripts/mumuki_laboratory/application/timer.js
365
371
  - app/assets/javascripts/mumuki_laboratory/application/tooltip.js
366
372
  - app/assets/javascripts/mumuki_laboratory/application/upload.js
@@ -377,6 +383,7 @@ files:
377
383
  - app/assets/stylesheets/mumuki_laboratory/application/_tooltip.scss
378
384
  - app/assets/stylesheets/mumuki_laboratory/application/_vendor.scss
379
385
  - app/assets/stylesheets/mumuki_laboratory/application/hovers.scss
386
+ - app/assets/stylesheets/mumuki_laboratory/application/modules/_avatar.scss
380
387
  - app/assets/stylesheets/mumuki_laboratory/application/modules/_book_header.scss
381
388
  - app/assets/stylesheets/mumuki_laboratory/application/modules/_breadcrumb.scss
382
389
  - app/assets/stylesheets/mumuki_laboratory/application/modules/_chapter_show.scss
@@ -389,8 +396,8 @@ files:
389
396
  - app/assets/stylesheets/mumuki_laboratory/application/modules/_exercise_assignment.scss
390
397
  - app/assets/stylesheets/mumuki_laboratory/application/modules/_exercise_results.scss
391
398
  - app/assets/stylesheets/mumuki_laboratory/application/modules/_flash.scss
392
- - app/assets/stylesheets/mumuki_laboratory/application/modules/_follow_us.scss
393
399
  - app/assets/stylesheets/mumuki_laboratory/application/modules/_gs-board.scss
400
+ - app/assets/stylesheets/mumuki_laboratory/application/modules/_guide_corollary.scss
394
401
  - app/assets/stylesheets/mumuki_laboratory/application/modules/_highlight.scss
395
402
  - app/assets/stylesheets/mumuki_laboratory/application/modules/_kids.scss
396
403
  - app/assets/stylesheets/mumuki_laboratory/application/modules/_kids_results.scss
@@ -398,12 +405,12 @@ files:
398
405
  - app/assets/stylesheets/mumuki_laboratory/application/modules/_modal.scss
399
406
  - app/assets/stylesheets/mumuki_laboratory/application/modules/_organization_chooser.scss
400
407
  - app/assets/stylesheets/mumuki_laboratory/application/modules/_overlap.scss
408
+ - app/assets/stylesheets/mumuki_laboratory/application/modules/_popover.scss
401
409
  - app/assets/stylesheets/mumuki_laboratory/application/modules/_progress_bar.scss
402
410
  - app/assets/stylesheets/mumuki_laboratory/application/modules/_progress_listing.scss
403
411
  - app/assets/stylesheets/mumuki_laboratory/application/modules/_timer.scss
404
412
  - app/assets/stylesheets/mumuki_laboratory/application/modules/_upload.scss
405
- - app/assets/stylesheets/mumuki_laboratory/application/modules/guide-corollary.scss
406
- - app/assets/stylesheets/mumuki_laboratory/application/modules/popover.scss
413
+ - app/assets/stylesheets/mumuki_laboratory/application/modules/_user_profile.scss
407
414
  - app/controllers/ajax_controller.rb
408
415
  - app/controllers/api/base_controller.rb
409
416
  - app/controllers/api/courses_controller.rb
@@ -448,6 +455,7 @@ files:
448
455
  - app/helpers/assignment_result_helper.rb
449
456
  - app/helpers/assistance_box_helper.rb
450
457
  - app/helpers/authors_helper.rb
458
+ - app/helpers/avatar_helper.rb
451
459
  - app/helpers/breadcrumbs_helper.rb
452
460
  - app/helpers/choices_helper.rb
453
461
  - app/helpers/concerns/with_student_path_navigation.rb
@@ -461,9 +469,9 @@ files:
461
469
  - app/helpers/editor_tabs_helper.rb
462
470
  - app/helpers/email_helper.rb
463
471
  - app/helpers/exercise_input_helper.rb
472
+ - app/helpers/globals_helper.rb
464
473
  - app/helpers/icons_helper.rb
465
474
  - app/helpers/links_helper.rb
466
- - app/helpers/locale_helper.rb
467
475
  - app/helpers/menu_bar_helper.rb
468
476
  - app/helpers/messages_helper.rb
469
477
  - app/helpers/multiple_file_editor_helper.rb
@@ -472,10 +480,10 @@ files:
472
480
  - app/helpers/organization_list_helper.rb
473
481
  - app/helpers/overlapped_buttons_helper.rb
474
482
  - app/helpers/page_title_helper.rb
483
+ - app/helpers/profile_helper.rb
475
484
  - app/helpers/progress_bar_helper.rb
476
485
  - app/helpers/progress_helper.rb
477
486
  - app/helpers/runner_assets_helper.rb
478
- - app/helpers/version_helper.rb
479
487
  - app/mailers/application_mailer.rb
480
488
  - app/mailers/user_mailer.rb
481
489
  - app/views/appendixes/show.html.erb
@@ -563,6 +571,7 @@ files:
563
571
  - app/views/layouts/exercise_inputs/read_only_editors/_text.erb
564
572
  - app/views/layouts/mailer.html.erb
565
573
  - app/views/layouts/mailer.text.erb
574
+ - app/views/layouts/modals/_avatar_picker.html.erb
566
575
  - app/views/layouts/modals/_guide_corollary.html.erb
567
576
  - app/views/layouts/modals/_kids_context.html.erb
568
577
  - app/views/layouts/modals/_kids_results.html.erb
@@ -578,8 +587,11 @@ files:
578
587
  - app/views/user_mailer/3rd_reminder.text.erb
579
588
  - app/views/user_mailer/no_submissions_reminder.html.erb
580
589
  - app/views/user_mailer/no_submissions_reminder.text.erb
590
+ - app/views/users/_avatar_list.html.erb
591
+ - app/views/users/_edit_user_form.html.erb
581
592
  - app/views/users/_profile_fields.html.erb
582
593
  - app/views/users/_user_form.html.erb
594
+ - app/views/users/edit.html.erb
583
595
  - app/views/users/show.html.erb
584
596
  - config/i18n-tasks.yml
585
597
  - config/initializers/form_builder.rb
@@ -595,6 +607,7 @@ files:
595
607
  - lib/mumuki/laboratory/controllers/dynamic_errors.rb
596
608
  - lib/mumuki/laboratory/controllers/embedded_mode.rb
597
609
  - lib/mumuki/laboratory/controllers/exercise_seed.rb
610
+ - lib/mumuki/laboratory/controllers/incognito_mode.rb
598
611
  - lib/mumuki/laboratory/controllers/nested_in_exercise.rb
599
612
  - lib/mumuki/laboratory/controllers/notifications.rb
600
613
  - lib/mumuki/laboratory/controllers/results_rendering.rb
@@ -709,6 +722,7 @@ files:
709
722
  - spec/features/topic_flow_spec.rb
710
723
  - spec/helpers/application_helper_spec.rb
711
724
  - spec/helpers/authors_helper_spec.rb
725
+ - spec/helpers/avatar_helper_spec.rb
712
726
  - spec/helpers/breadcrumbs_helper_spec.rb
713
727
  - spec/helpers/email_helper_spec.rb
714
728
  - spec/helpers/exercise_input_helper_spec.rb
@@ -719,10 +733,16 @@ files:
719
733
  - spec/helpers/with_navigation_spec.rb
720
734
  - spec/javascripts/bridge-spec.js
721
735
  - spec/javascripts/csrf-token-spec.js
736
+ - spec/javascripts/editors-spec.js
722
737
  - spec/javascripts/elipsis-spec.js
738
+ - spec/javascripts/events-spec.js
739
+ - spec/javascripts/exercise-spec.js
740
+ - spec/javascripts/global-spec.js
723
741
  - spec/javascripts/results-renderers-spec.js
724
742
  - spec/javascripts/spec-helper.js
725
743
  - spec/javascripts/speech-bubble-renderer-spec.js
744
+ - spec/javascripts/submissions-store-spec.js
745
+ - spec/javascripts/sync-mode-spec.js
726
746
  - spec/javascripts/timeout-spec.js
727
747
  - spec/javascripts/timer-spec.js
728
748
  - spec/login_helper.rb
@@ -868,6 +888,7 @@ test_files:
868
888
  - spec/helpers/breadcrumbs_helper_spec.rb
869
889
  - spec/helpers/with_navigation_spec.rb
870
890
  - spec/helpers/exercise_input_helper_spec.rb
891
+ - spec/helpers/avatar_helper_spec.rb
871
892
  - spec/helpers/test_results_rendering_spec.rb
872
893
  - spec/helpers/application_helper_spec.rb
873
894
  - spec/helpers/icons_helper_spec.rb
@@ -876,13 +897,19 @@ test_files:
876
897
  - spec/capybara_helper.rb
877
898
  - spec/evaluation_helper.rb
878
899
  - spec/javascripts/bridge-spec.js
900
+ - spec/javascripts/events-spec.js
901
+ - spec/javascripts/exercise-spec.js
902
+ - spec/javascripts/global-spec.js
879
903
  - spec/javascripts/speech-bubble-renderer-spec.js
880
904
  - spec/javascripts/timeout-spec.js
881
905
  - spec/javascripts/results-renderers-spec.js
882
906
  - spec/javascripts/csrf-token-spec.js
883
907
  - spec/javascripts/elipsis-spec.js
884
908
  - spec/javascripts/timer-spec.js
909
+ - spec/javascripts/editors-spec.js
885
910
  - spec/javascripts/spec-helper.js
911
+ - spec/javascripts/submissions-store-spec.js
912
+ - spec/javascripts/sync-mode-spec.js
886
913
  - spec/controllers/discussions_controller_spec.rb
887
914
  - spec/controllers/chapters_controller_spec.rb
888
915
  - spec/controllers/students_api_controller_spec.rb
@@ -1,16 +0,0 @@
1
- .social-icon {
2
- padding-top: 6px;
3
- font-size: 16px;
4
- text-align: center;
5
- width: 32px;
6
- height: 32px;
7
- border: 2px solid $brand-info;
8
- border-radius: 50%;
9
- margin: 5px;
10
- }
11
-
12
- a.social-icon:hover, a.social-icon:active, a.social-icon:focus {
13
- text-decoration: none;
14
- border-color: $brand-info-light;
15
- color: $brand-info-light;
16
- }
@@ -1,5 +0,0 @@
1
- module VersionHelper
2
- def version_tags
3
- %Q{<script type="text/javascript">mumuki.version = '#{Mumuki::Laboratory::VERSION}';</script>}.html_safe
4
- end
5
- end