mumuki-laboratory 9.0.5 → 9.1.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (160) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/mumuki_laboratory/application/codemirror.js +10 -2
  3. data/app/assets/javascripts/mumuki_laboratory/application/discussions.js +10 -10
  4. data/app/assets/javascripts/mumuki_laboratory/application/gamification.js +3 -3
  5. data/app/assets/javascripts/mumuki_laboratory/application/kids.js +11 -7
  6. data/app/assets/javascripts/mumuki_laboratory/application/kindergarten.js +3 -3
  7. data/app/assets/javascripts/mumuki_laboratory/application/messages.js +3 -3
  8. data/app/assets/javascripts/mumuki_laboratory/application/mu-modal-carrousel.js +4 -4
  9. data/app/assets/javascripts/mumuki_laboratory/application/multiple-files.js +18 -5
  10. data/app/assets/javascripts/mumuki_laboratory/application/multiple-scenarios.js +1 -1
  11. data/app/assets/javascripts/mumuki_laboratory/application/primary.js +4 -4
  12. data/app/assets/javascripts/mumuki_laboratory/application/profile.js +0 -6
  13. data/app/assets/javascripts/mumuki_laboratory/application/progress.js +1 -1
  14. data/app/assets/javascripts/mumuki_laboratory/application/speech-bubble-renderer.js +1 -1
  15. data/app/assets/javascripts/mumuki_laboratory/application/submission.js +4 -3
  16. data/app/assets/javascripts/mumuki_laboratory/application/toast.js +3 -0
  17. data/app/assets/javascripts/mumuki_laboratory/application/tooltip.js +1 -1
  18. data/app/assets/javascripts/mumuki_laboratory/application/upload.js +2 -2
  19. data/app/assets/stylesheets/mumuki_laboratory/application.scss +0 -1
  20. data/app/assets/stylesheets/mumuki_laboratory/application/_errors.scss +1 -1
  21. data/app/assets/stylesheets/mumuki_laboratory/application/_layout.scss +1 -27
  22. data/app/assets/stylesheets/mumuki_laboratory/application/_modules.scss +0 -2
  23. data/app/assets/stylesheets/mumuki_laboratory/application/modules/_activity.scss +7 -5
  24. data/app/assets/stylesheets/mumuki_laboratory/application/modules/_avatar.scss +5 -0
  25. data/app/assets/stylesheets/mumuki_laboratory/application/modules/_breadcrumb.scss +2 -2
  26. data/app/assets/stylesheets/mumuki_laboratory/application/modules/_datepicker.scss +0 -4
  27. data/app/assets/stylesheets/mumuki_laboratory/application/modules/_discussion.scss +38 -60
  28. data/app/assets/stylesheets/mumuki_laboratory/application/modules/_editor.scss +16 -18
  29. data/app/assets/stylesheets/mumuki_laboratory/application/modules/_exercise_assignment.scss +2 -11
  30. data/app/assets/stylesheets/mumuki_laboratory/application/modules/_exercise_results.scss +1 -7
  31. data/app/assets/stylesheets/mumuki_laboratory/application/modules/_faqs.scss +3 -3
  32. data/app/assets/stylesheets/mumuki_laboratory/application/modules/_flash.scss +7 -46
  33. data/app/assets/stylesheets/mumuki_laboratory/application/modules/_kids.scss +19 -4
  34. data/app/assets/stylesheets/mumuki_laboratory/application/modules/_kids_results.scss +18 -23
  35. data/app/assets/stylesheets/mumuki_laboratory/application/modules/_kindergarten.scss +1 -9
  36. data/app/assets/stylesheets/mumuki_laboratory/application/modules/_overlap.scss +1 -1
  37. data/app/assets/stylesheets/mumuki_laboratory/application/modules/_progress_bar.scss +5 -5
  38. data/app/assets/stylesheets/mumuki_laboratory/application/modules/_terms.scss +3 -2
  39. data/app/assets/stylesheets/mumuki_laboratory/application/modules/_timer.scss +1 -3
  40. data/app/assets/stylesheets/mumuki_laboratory/application/modules/_user_menu.scss +13 -6
  41. data/app/assets/stylesheets/mumuki_laboratory/application/modules/_user_profile.scss +0 -2
  42. data/app/controllers/application_controller.rb +4 -2
  43. data/app/controllers/discussions_messages_controller.rb +3 -1
  44. data/app/helpers/application_helper.rb +5 -5
  45. data/app/helpers/assignment_result_helper.rb +3 -2
  46. data/app/helpers/assistance_box_helper.rb +1 -1
  47. data/app/helpers/concerns/with_student_path_navigation.rb +8 -3
  48. data/app/helpers/concerns/with_student_path_navigation/continue_navigation.rb +1 -1
  49. data/app/helpers/concerns/with_student_path_navigation/finish_navigation.rb +1 -1
  50. data/app/helpers/concerns/with_student_path_navigation/next_parent_navigation.rb +7 -0
  51. data/app/helpers/concerns/with_student_path_navigation/revisit_navigation.rb +1 -1
  52. data/app/helpers/discussions_helper.rb +61 -24
  53. data/app/helpers/editor_tabs_helper.rb +10 -6
  54. data/app/helpers/email_helper.rb +2 -2
  55. data/app/helpers/exercise_input_helper.rb +2 -3
  56. data/app/helpers/links_helper.rb +12 -9
  57. data/app/helpers/menu_bar_helper.rb +1 -1
  58. data/app/helpers/messages_helper.rb +1 -1
  59. data/app/helpers/multiple_file_editor_helper.rb +2 -1
  60. data/app/helpers/overlapped_buttons_helper.rb +22 -12
  61. data/app/helpers/profile_helper.rb +3 -3
  62. data/app/helpers/toast_helper.rb +27 -0
  63. data/app/helpers/user_activity_helper.rb +1 -1
  64. data/app/views/book/show.html.erb +2 -2
  65. data/app/views/certificates/verify.html.erb +1 -1
  66. data/app/views/chapters/show.html.erb +2 -2
  67. data/app/views/discussions/_message.html.erb +31 -6
  68. data/app/views/discussions/_new_message.html.erb +4 -4
  69. data/app/views/discussions/index.html.erb +8 -10
  70. data/app/views/discussions/new.html.erb +1 -1
  71. data/app/views/discussions/show.html.erb +20 -12
  72. data/app/views/exam_registrations/show.html.erb +10 -11
  73. data/app/views/exercise_solutions/_assistant_rules_box.html.erb +1 -1
  74. data/app/views/exercise_solutions/_contextualization_results_body.html.erb +1 -1
  75. data/app/views/exercise_solutions/_contextualization_results_container.html.erb +1 -1
  76. data/app/views/exercise_solutions/_kids_results_button.html.erb +2 -2
  77. data/app/views/exercise_solutions/_results.html.erb +1 -1
  78. data/app/views/exercises/_exercise_assignment.html.erb +2 -2
  79. data/app/views/exercises/_exercise_skipped.html.erb +1 -1
  80. data/app/views/exercises/_read_only.html.erb +108 -105
  81. data/app/views/exercises/show.html.erb +7 -7
  82. data/app/views/guides/_guide.html.erb +1 -1
  83. data/app/views/guides/_guide_container.html.erb +4 -4
  84. data/app/views/invitations/_invitation_form.html.erb +5 -4
  85. data/app/views/layouts/_authoring.html.erb +1 -1
  86. data/app/views/layouts/_discussions.html.erb +7 -7
  87. data/app/views/layouts/_kids.html.erb +5 -5
  88. data/app/views/layouts/_kindergarten.html.erb +10 -6
  89. data/app/views/layouts/_main.html.erb +6 -10
  90. data/app/views/layouts/_organizations_listing.html.erb +2 -2
  91. data/app/views/layouts/_progress_bar.html.erb +2 -0
  92. data/app/views/layouts/_submission_result_error.html.erb +1 -1
  93. data/app/views/layouts/_test_results.html.erb +1 -1
  94. data/app/views/layouts/_timer.html.erb +1 -1
  95. data/app/views/layouts/_user_menu.html.erb +3 -3
  96. data/app/views/layouts/application.html.erb +39 -42
  97. data/app/views/layouts/exercise_inputs/editors/_code.html.erb +4 -4
  98. data/app/views/layouts/exercise_inputs/editors/_free_form.html.erb +1 -1
  99. data/app/views/layouts/exercise_inputs/editors/_multiple_choice.html.erb +7 -9
  100. data/app/views/layouts/exercise_inputs/editors/_multiple_files.html.erb +10 -10
  101. data/app/views/layouts/exercise_inputs/editors/_single_choice.html.erb +6 -8
  102. data/app/views/layouts/exercise_inputs/editors/_text.html.erb +2 -3
  103. data/app/views/layouts/exercise_inputs/editors/_upload.html.erb +5 -5
  104. data/app/views/layouts/exercise_inputs/forms/_form.html.erb +1 -1
  105. data/app/views/layouts/exercise_inputs/forms/_interactive_form.html.erb +2 -2
  106. data/app/views/layouts/exercise_inputs/forms/_kids_form.html.erb +1 -1
  107. data/app/views/layouts/exercise_inputs/forms/_playground_form.html.erb +2 -2
  108. data/app/views/layouts/exercise_inputs/forms/_problem_form.html.erb +13 -9
  109. data/app/views/layouts/exercise_inputs/layouts/_input_primary.html.erb +2 -2
  110. data/app/views/layouts/exercise_inputs/layouts/_input_right.html.erb +2 -2
  111. data/app/views/layouts/exercise_inputs/read_only_editors/_code.html.erb +1 -1
  112. data/app/views/layouts/exercise_inputs/read_only_editors/_free_form.html.erb +1 -1
  113. data/app/views/layouts/exercise_inputs/read_only_editors/_multiple_choice.html.erb +4 -4
  114. data/app/views/layouts/exercise_inputs/read_only_editors/_multiple_files.html.erb +2 -2
  115. data/app/views/layouts/exercise_inputs/read_only_editors/_single_choice.html.erb +4 -4
  116. data/app/views/layouts/exercise_inputs/read_only_editors/_text.erb +1 -1
  117. data/app/views/layouts/modals/_avatar_picker.html.erb +2 -5
  118. data/app/views/layouts/modals/_guide_corollary.html.erb +4 -8
  119. data/app/views/layouts/modals/_kids_context.html.erb +7 -5
  120. data/app/views/layouts/modals/_kids_results.html.erb +2 -2
  121. data/app/views/layouts/modals/_kids_results_aborted.html.erb +2 -2
  122. data/app/views/layouts/modals/_kindergarten_context.html.erb +3 -3
  123. data/app/views/layouts/modals/_kindergarten_results.html.erb +3 -3
  124. data/app/views/layouts/modals/_kindergarten_results_aborted.html.erb +2 -2
  125. data/app/views/layouts/modals/_level_up.html.erb +2 -5
  126. data/app/views/layouts/modals/_new_message.html.erb +5 -5
  127. data/app/views/notifications/_dropdown.html.erb +3 -3
  128. data/app/views/users/_activity_indicator.html.erb +14 -14
  129. data/app/views/users/_edit_user_form.html.erb +6 -6
  130. data/app/views/users/_profile_fields.html.erb +6 -6
  131. data/app/views/users/_user_form.html.erb +2 -2
  132. data/app/views/users/activity.html.erb +29 -29
  133. data/app/views/users/certificates.html.erb +26 -24
  134. data/app/views/users/discussions.html.erb +23 -21
  135. data/app/views/users/messages.html.erb +22 -20
  136. data/app/views/users/show.html.erb +5 -3
  137. data/app/views/users/terms.html.erb +4 -2
  138. data/config/initializers/inflections.rb +3 -0
  139. data/lib/mumuki/laboratory.rb +1 -1
  140. data/lib/mumuki/laboratory/locales/en.yml +15 -1
  141. data/lib/mumuki/laboratory/locales/es-CL.yml +15 -1
  142. data/lib/mumuki/laboratory/locales/es.yml +15 -1
  143. data/lib/mumuki/laboratory/locales/pt.yml +15 -2
  144. data/lib/mumuki/laboratory/version.rb +1 -1
  145. data/spec/capybara_helper.rb +1 -0
  146. data/spec/controllers/discussions_messages_controller_spec.rb +64 -2
  147. data/spec/dummy/db/schema.rb +20 -3
  148. data/spec/features/discussion_flow_spec.rb +20 -2
  149. data/spec/features/exercise_flow_spec.rb +1 -1
  150. data/spec/features/guide_reset_spec.rb +1 -1
  151. data/spec/features/terms_flow_spec.rb +1 -2
  152. data/spec/helpers/breadcrumbs_helper_spec.rb +2 -2
  153. data/spec/helpers/with_navigation_spec.rb +51 -13
  154. data/spec/javascripts/editors-spec.js +3 -3
  155. data/spec/javascripts/kids-button-spec.js +2 -2
  156. data/spec/javascripts/upload-spec.js +8 -8
  157. metadata +118 -117
  158. data/app/assets/stylesheets/mumuki_laboratory/application/hovers.scss +0 -12
  159. data/app/assets/stylesheets/mumuki_laboratory/application/modules/_checkboxes.scss +0 -34
  160. data/app/assets/stylesheets/mumuki_laboratory/application/modules/_guide_corollary.scss +0 -9
@@ -66,15 +66,15 @@
66
66
  cursor: pointer;
67
67
  &.active {
68
68
  border-left: 3px solid transparent;
69
- border-color: darken($brand-primary, 5%);
69
+ border-color: darken($primary, 5%);
70
70
  margin-left: -3px;
71
71
  }
72
72
  a {
73
- color: $brand-primary;
73
+ color: $primary;
74
74
  &:hover {
75
75
  text-decoration: none;
76
76
  }
77
- @media (min-width: $container-lg) {
77
+ @include media-breakpoint-up(xl) {
78
78
  font-size: 1.1em;
79
79
  }
80
80
  }
@@ -1,57 +1,18 @@
1
- #toast-container {
1
+ .toast-container {
2
2
  position: fixed;
3
- bottom: 12px;
4
- left: 15px;
3
+ color: white;
5
4
  z-index: 9999;
6
- * {
7
- -moz-box-sizing: border-box;
8
- -webkit-box-sizing: border-box;
9
- box-sizing: border-box;
10
- }
11
- .toast {
12
- position: relative;
13
- overflow: hidden;
14
- margin: 0 0 6px;
15
- padding: 15px 15px 15px 50px;
16
- width: 300px;
17
- -moz-border-radius: 3px 3px 3px 3px;
18
- -webkit-border-radius: 3px 3px 3px 3px;
19
- border-radius: 3px 3px 3px 3px;
20
- background-color: $mu-color-info;
21
- background-position: 15px center;
22
- background-repeat: no-repeat;
23
- -moz-box-shadow: 0 0 12px #999999;
24
- -webkit-box-shadow: 0 0 12px #999999;
25
- box-shadow: 0 0 12px #999999;
26
- color: #FFFFFF;
27
- opacity: 0.8;
28
- &:hover {
29
- -moz-box-shadow: 0 0 12px #000000;
30
- -webkit-box-shadow: 0 0 12px #000000;
31
- box-shadow: 0 0 12px #000000;
32
- opacity: 1;
33
- cursor: pointer;
34
- }
35
- }
36
- .toast-info {
37
- background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGwSURBVEhLtZa9SgNBEMc9sUxxRcoUKSzSWIhXpFMhhYWFhaBg4yPYiWCXZxBLERsLRS3EQkEfwCKdjWJAwSKCgoKCcudv4O5YLrt7EzgXhiU3/4+b2ckmwVjJSpKkQ6wAi4gwhT+z3wRBcEz0yjSseUTrcRyfsHsXmD0AmbHOC9Ii8VImnuXBPglHpQ5wwSVM7sNnTG7Za4JwDdCjxyAiH3nyA2mtaTJufiDZ5dCaqlItILh1NHatfN5skvjx9Z38m69CgzuXmZgVrPIGE763Jx9qKsRozWYw6xOHdER+nn2KkO+Bb+UV5CBN6WC6QtBgbRVozrahAbmm6HtUsgtPC19tFdxXZYBOfkbmFJ1VaHA1VAHjd0pp70oTZzvR+EVrx2Ygfdsq6eu55BHYR8hlcki+n+kERUFG8BrA0BwjeAv2M8WLQBtcy+SD6fNsmnB3AlBLrgTtVW1c2QN4bVWLATaIS60J2Du5y1TiJgjSBvFVZgTmwCU+dAZFoPxGEEs8nyHC9Bwe2GvEJv2WXZb0vjdyFT4Cxk3e/kIqlOGoVLwwPevpYHT+00T+hWwXDf4AJAOUqWcDhbwAAAAASUVORK5CYII=") !important;
5
+
6
+ .mu-toast-info {
38
7
  background-color: $mu-color-info;
39
8
  }
40
- .toast-error {
41
- background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHOSURBVEhLrZa/SgNBEMZzh0WKCClSCKaIYOED+AAKeQQLG8HWztLCImBrYadgIdY+gIKNYkBFSwu7CAoqCgkkoGBI/E28PdbLZmeDLgzZzcx83/zZ2SSXC1j9fr+I1Hq93g2yxH4iwM1vkoBWAdxCmpzTxfkN2RcyZNaHFIkSo10+8kgxkXIURV5HGxTmFuc75B2RfQkpxHG8aAgaAFa0tAHqYFfQ7Iwe2yhODk8+J4C7yAoRTWI3w/4klGRgR4lO7Rpn9+gvMyWp+uxFh8+H+ARlgN1nJuJuQAYvNkEnwGFck18Er4q3egEc/oO+mhLdKgRyhdNFiacC0rlOCbhNVz4H9FnAYgDBvU3QIioZlJFLJtsoHYRDfiZoUyIxqCtRpVlANq0EU4dApjrtgezPFad5S19Wgjkc0hNVnuF4HjVA6C7QrSIbylB+oZe3aHgBsqlNqKYH48jXyJKMuAbiyVJ8KzaB3eRc0pg9VwQ4niFryI68qiOi3AbjwdsfnAtk0bCjTLJKr6mrD9g8iq/S/B81hguOMlQTnVyG40wAcjnmgsCNESDrjme7wfftP4P7SP4N3CJZdvzoNyGq2c/HWOXJGsvVg+RA/k2MC/wN6I2YA2Pt8GkAAAAASUVORK5CYII=") !important;
9
+ .mu-toast-error {
42
10
  background-color: $mu-color-danger;
43
11
  }
44
- .toast-success {
45
- background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADsSURBVEhLY2AYBfQMgf///3P8+/evAIgvA/FsIF+BavYDDWMBGroaSMMBiE8VC7AZDrIFaMFnii3AZTjUgsUUWUDA8OdAH6iQbQEhw4HyGsPEcKBXBIC4ARhex4G4BsjmweU1soIFaGg/WtoFZRIZdEvIMhxkCCjXIVsATV6gFGACs4Rsw0EGgIIH3QJYJgHSARQZDrWAB+jawzgs+Q2UO49D7jnRSRGoEFRILcdmEMWGI0cm0JJ2QpYA1RDvcmzJEWhABhD/pqrL0S0CWuABKgnRki9lLseS7g2AlqwHWQSKH4oKLrILpRGhEQCw2LiRUIa4lwAAAABJRU5ErkJggg==") !important;
12
+ .mu-toast-success {
46
13
  background-color: $mu-color-success;
47
14
  }
48
- .toast-warning {
49
- background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGYSURBVEhL5ZSvTsNQFMbXZGICMYGYmJhAQIJAICYQPAACiSDB8AiICQQJT4CqQEwgJvYASAQCiZiYmJhAIBATCARJy+9rTsldd8sKu1M0+dLb057v6/lbq/2rK0mS/TRNj9cWNAKPYIJII7gIxCcQ51cvqID+GIEX8ASG4B1bK5gIZFeQfoJdEXOfgX4QAQg7kH2A65yQ87lyxb27sggkAzAuFhbbg1K2kgCkB1bVwyIR9m2L7PRPIhDUIXgGtyKw575yz3lTNs6X4JXnjV+LKM/m3MydnTbtOKIjtz6VhCBq4vSm3ncdrD2lk0VgUXSVKjVDJXJzijW1RQdsU7F77He8u68koNZTz8Oz5yGa6J3H3lZ0xYgXBK2QymlWWA+RWnYhskLBv2vmE+hBMCtbA7KX5drWyRT/2JsqZ2IvfB9Y4bWDNMFbJRFmC9E74SoS0CqulwjkC0+5bpcV1CZ8NMej4pjy0U+doDQsGyo1hzVJttIjhQ7GnBtRFN1UarUlH8F3xict+HY07rEzoUGPlWcjRFRr4/gChZgc3ZL2d8oAAAAASUVORK5CYII=") !important;
15
+ .mu-toast-warning {
50
16
  background-color: $mu-color-warning;
51
17
  }
52
- .toast-bottom-left {
53
- bottom: 15px;
54
- left: 15px;
55
- z-index: 999999;
56
- }
57
18
  }
@@ -1,4 +1,4 @@
1
- $kids-height: calc(100vh - 80px - 30px) !default;
1
+ $kids-height: calc(100vh - 100px - 30px) !default;
2
2
 
3
3
  $kids-characters-height: 120px;
4
4
  $kids-speech-arrow-size: 10px;
@@ -18,6 +18,12 @@ $kids-speech-tabs-width: 40px;
18
18
  height: $kids-height;
19
19
  min-height: $kids-height;
20
20
  max-height: $kids-height;
21
+ @include media-breakpoint-down(lg) {
22
+ //slightly larger navbar on lg, xl, xxl
23
+ height: calc(#{$kids-height} + 30px);
24
+ min-height: calc(#{$kids-height} + 30px);
25
+ max-height: calc(#{$kids-height} + 30px);
26
+ }
21
27
 
22
28
  display: flex;
23
29
  flex-direction: row;
@@ -34,6 +40,10 @@ $kids-speech-tabs-width: 40px;
34
40
  .mu-kids-states {
35
41
  padding-bottom: 15px;
36
42
  height: $kids-height;
43
+ @include media-breakpoint-down(lg) {
44
+ //slightly larger navbar on lg, xl, xxl
45
+ height: calc(#{$kids-height} + 30px);
46
+ }
37
47
  }
38
48
  .mu-kids-character {
39
49
  padding: 15px;
@@ -52,6 +62,11 @@ $kids-speech-tabs-width: 40px;
52
62
  }
53
63
  .mu-kids-blocks {
54
64
  height: calc(#{$kids-height} - #{$kids-characters-height} - 30px);
65
+ @include media-breakpoint-down(lg) {
66
+ //slightly larger navbar on lg, xl, xxl
67
+ height: calc(#{$kids-height} - #{$kids-characters-height});
68
+ }
69
+
55
70
  margin-left: 0;
56
71
  margin-right: 0;
57
72
  position: relative;
@@ -127,7 +142,7 @@ $kids-speech-tabs-width: 40px;
127
142
 
128
143
  }
129
144
 
130
- @media screen and (max-width: $screen-sm-max) {
145
+ @include media-breakpoint-only(md) {
131
146
  h4 {
132
147
  &.text-warning {
133
148
  font-size: 18px;
@@ -142,7 +157,7 @@ $kids-speech-tabs-width: 40px;
142
157
  }
143
158
  }
144
159
 
145
- @media screen and (max-width: $screen-xs-max) {
160
+ @include media-breakpoint-down(sm) {
146
161
  h4 {
147
162
  font-size: 20px;
148
163
  &.text-warning {
@@ -500,7 +515,7 @@ $statuses-glow-animation: (
500
515
  }
501
516
  }
502
517
 
503
- @media screen and (max-height: $screen-xs-min) {
518
+ @media screen and (max-height: map_get($grid-breakpoints, sm)) {
504
519
  .mu-kids-exercise {
505
520
  height: 100vh;
506
521
  min-height: 100vh;
@@ -58,29 +58,16 @@ $capital-animation-width: 135px;
58
58
  }
59
59
  }
60
60
 
61
- .mu-kids-modal-border {
62
-
61
+ .mu-kids-modal {
63
62
  .modal-dialog {
63
+ @extend .modal-lg;
64
+ @extend .modal-dialog-centered;
64
65
 
65
- height: 100vh;
66
- width: 100vw;
67
- margin: 0;
66
+ .modal-header {
67
+ @extend .justify-content-center;
68
+ }
68
69
 
69
70
  .modal-content {
70
-
71
- position: absolute;
72
-
73
- $width-lg: 800px;
74
-
75
- width: $width-lg;
76
-
77
- top: 60px;
78
- left: calc(50% - #{$width-lg} / 2);
79
-
80
- @media (max-width: $width-lg + 30px) {
81
- width: calc(100vw - 30px);
82
- }
83
-
84
71
  $border-width: 16px;
85
72
  border-width: $border-width;
86
73
  border-style: solid;
@@ -132,7 +119,6 @@ $capital-animation-width: 135px;
132
119
  'warning': $mu-color-warning,
133
120
  'passed': $mu-color-success,
134
121
  'passed_with_warnings': $mu-color-warning,
135
- 'passed-with-warnings': $mu-color-warning,
136
122
  'failed': $mu-color-danger,
137
123
  'errored': $mu-color-broken,
138
124
  'aborted': $mu-color-broken,
@@ -147,18 +133,27 @@ $capital-animation-width: 135px;
147
133
  }
148
134
  }
149
135
  .mu-kids-character.kindergarten {
150
- @include full-size-character;
136
+ img {
137
+ width: 100%;
138
+ height: 100%;
139
+ object-position: center;
140
+ object-fit: contain;
141
+ }
151
142
  }
152
143
 
153
144
  .submission-results.kindergarten {
154
145
  width: 100%;
155
- height: 100%;
156
146
  .mu-kids-callout-#{$class},
157
147
  p {
158
148
  display: none;
159
149
  }
160
150
  .mu-kids-default-#{$class} {
161
- @include full-size-character;
151
+ img {
152
+ flex-grow: 1;
153
+ margin: 0;
154
+ width: 100%;
155
+ object-fit: contain;
156
+ }
162
157
  }
163
158
  }
164
159
  }
@@ -94,28 +94,20 @@ $modal-footer-height: 95px;
94
94
  width: $width-lg;
95
95
  height: $height-lg;
96
96
 
97
- top: calc(50vh - #{$height-lg} / 2);
98
-
99
97
  @media (orientation: landscape) and (max-height: $height-lg + 50px) {
100
98
  $height-sm: 85vh;
101
99
  $width-sm: $height-sm / 0.625;
102
100
 
103
101
  width: $width-sm;
104
102
  height: $height-sm;
105
-
106
- top: calc(50vh - #{$height-sm} / 2);
107
- left: calc(50vw - #{$width-sm} / 2);
108
103
  }
109
104
 
110
105
  @media (orientation: portrait) {
111
- $height-sm: 85vh;
106
+ $height-sm: 75vh;
112
107
  $width-sm: 85vw;
113
108
 
114
109
  width: $width-sm;
115
110
  height: $height-sm;
116
-
117
- top: calc(50vh - #{$height-sm} / 2);
118
- left: calc(50vw - #{$width-sm} / 2);
119
111
  }
120
112
 
121
113
  .modal-header,
@@ -11,7 +11,7 @@
11
11
  flex-direction: column;
12
12
  a {
13
13
  cursor: pointer;
14
- padding: 5px;
14
+ margin: 5px;
15
15
  }
16
16
  &.multiple-files {
17
17
  top: 43px;
@@ -8,7 +8,7 @@
8
8
  border-style: solid;
9
9
  width: 100%;
10
10
  height: 10px;
11
- background-color: $gray-lighter;
11
+ background-color: $gray-200;
12
12
  &:hover {
13
13
  text-decoration: none;
14
14
  }
@@ -17,15 +17,15 @@
17
17
  }
18
18
  }
19
19
  .success {
20
- background-color: $brand-success;
20
+ background-color: $success;
21
21
  }
22
22
  .warning {
23
- background-color: $brand-warning;
23
+ background-color: $warning;
24
24
  }
25
25
  .danger {
26
- background-color: $brand-danger;
26
+ background-color: $danger;
27
27
  }
28
28
  .info {
29
- background-color: $brand-info;
29
+ background-color: $info;
30
30
  }
31
31
  }
@@ -31,6 +31,9 @@
31
31
  }
32
32
  .terms-card-body {
33
33
  padding: 1.25rem;
34
+ p {
35
+ text-align: justify;
36
+ }
34
37
  }
35
38
 
36
39
  .terms-acceptance {
@@ -41,5 +44,3 @@
41
44
  display: block
42
45
  }
43
46
  }
44
-
45
-
@@ -1,8 +1,6 @@
1
1
  .timer {
2
- color: $brand-complementary;
2
+ color: $complementary;
3
3
  border-size: 0.1em;
4
4
  font-size: 1.25em;
5
5
  font-weight: bold;
6
- color: $brand-complementary;
7
6
  }
8
-
@@ -11,11 +11,9 @@
11
11
  font-size: 15px;
12
12
  color: $mu-color-disabled;
13
13
  text-transform: uppercase;
14
- padding-left: 2px;
15
14
  cursor: pointer;
16
15
 
17
- @media only screen and (min-width: $screen-md-min) {
18
- padding-left: 15px;
16
+ @include media-breakpoint-up(md) {
19
17
  cursor: auto;
20
18
 
21
19
  i {
@@ -23,7 +21,7 @@
23
21
  }
24
22
 
25
23
  span {
26
- padding-left: 0px;
24
+ padding-left: 0;
27
25
  }
28
26
  }
29
27
  }
@@ -31,8 +29,13 @@
31
29
  .mu-user-menu-items {
32
30
  margin-top: 30px;
33
31
 
32
+ @include media-breakpoint-down(md) {
33
+ margin-left: 15px;
34
+ margin-right: 15px;
35
+ }
36
+
34
37
  &.mu-hidden-sm-screen {
35
- @media only screen and (max-width: $screen-sm-max) {
38
+ @include media-breakpoint-down(md) {
36
39
  display: none;
37
40
  }
38
41
  }
@@ -43,7 +46,7 @@
43
46
  margin-bottom: 5px;
44
47
 
45
48
  a {
46
- color: $brand-primary;
49
+ color: $primary;
47
50
  &.active {
48
51
  font-weight: bold;
49
52
  }
@@ -59,5 +62,9 @@
59
62
  border-top: 2px solid $mu-color-separator;
60
63
 
61
64
  margin: 25px 0;
65
+
66
+ @include media-breakpoint-up(md) {
67
+ margin-right: 15px;
68
+ }
62
69
  }
63
70
  }
@@ -6,12 +6,10 @@
6
6
  }
7
7
 
8
8
  .mu-profile-actions {
9
- vertical-align: middle;
10
9
  margin-left: auto;
11
10
 
12
11
  .btn {
13
12
  width: 150px;
14
- height: 55px;
15
13
  margin-left: 15px;
16
14
  transition: background-color 0.3s, border-color 0.3s;
17
15
 
@@ -43,6 +43,8 @@ class ApplicationController < ActionController::Base
43
43
  :extension_javascript_url,
44
44
  :current_immersive_path
45
45
 
46
+ add_flash_types :info
47
+
46
48
  def immersive_context_wrong?
47
49
  current_immersive_context != Organization.current
48
50
  end
@@ -124,7 +126,7 @@ class ApplicationController < ActionController::Base
124
126
  def validate_user_profile!
125
127
  unless current_user.profile_completed?
126
128
  save_location_before! :profile_completion
127
- flash.notice = I18n.t :please_fill_profile_data
129
+ flash[:info] = I18n.t :please_fill_profile_data
128
130
  redirect_to edit_user_path
129
131
  end
130
132
  end
@@ -132,7 +134,7 @@ class ApplicationController < ActionController::Base
132
134
  def validate_accepted_role_terms!
133
135
  if current_user&.has_role_terms_to_accept?
134
136
  save_location_before! :terms_acceptance
135
- flash.notice = I18n.t :accept_terms_to_continue
137
+ flash[:info] = I18n.t :accept_terms_to_continue
136
138
  redirect_to terms_user_path
137
139
  end
138
140
  end
@@ -11,7 +11,9 @@ class DiscussionsMessagesController < AjaxController
11
11
  end
12
12
 
13
13
  def destroy
14
- current_message.destroy!
14
+ authorize_moderator! unless params[:motive] == :self_deleted.to_s
15
+
16
+ current_message.soft_delete! params[:motive], current_user
15
17
  redirect_back(fallback_location: root_path)
16
18
  end
17
19
 
@@ -12,12 +12,12 @@ module ApplicationHelper
12
12
  end
13
13
 
14
14
  def avatar_image(avatar_url, **options)
15
- options.merge!(class: "img-circle #{options[:class]}")
15
+ options.merge!(class: "rounded-circle #{options[:class]}")
16
16
  image_tag(image_url(avatar_url), options)
17
17
  end
18
18
 
19
19
  def paginate(object, options = {})
20
- "<div class=\"text-center\">#{super(object, {theme: 'twitter-bootstrap-3'}.merge(options))}</div>".html_safe
20
+ super(object, {theme: 'bootstrap-5', pagination_class: 'flex-wrap justify-content-center'}.merge(options))
21
21
  end
22
22
 
23
23
  def last_box_class(trailing_boxes)
@@ -38,10 +38,10 @@ module ApplicationHelper
38
38
  t :chapter_finished_html, chapter: link_to_path_element(chapter) if chapter
39
39
  end
40
40
 
41
- def span_toggle(hidden_text, active_text, active, **options)
41
+ def btn_toggle(hidden_text, active_text, active, **options)
42
42
  %Q{
43
- <span class="#{'hidden' if active} #{options[:class]}">#{hidden_text}</span>
44
- <span class="#{'hidden' unless active} #{options[:class]}">#{active_text}</span>
43
+ <button class="btn btn-complementary #{'d-none' if active} #{options[:class]}" onclick="#{options[:onclick]}">#{hidden_text}</button>
44
+ <button class="btn btn-secondary #{'d-none' unless active} #{options[:class]}" onclick="#{options[:onclick]}">#{active_text}</button>
45
45
  }.html_safe
46
46
  end
47
47