mumuki-laboratory 6.6.1 → 6.7.0
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 +4 -4
- data/README.md +8 -3
- data/app/assets/config/mumuki_laboratory_engine.js +2 -0
- data/app/assets/javascripts/{application → mumuki_laboratory/application}/alias-modes.js +0 -0
- data/app/assets/javascripts/{application → mumuki_laboratory/application}/bridge.js +0 -0
- data/app/assets/javascripts/{application → mumuki_laboratory/application}/characters.js +1 -1
- data/app/assets/javascripts/{application → mumuki_laboratory/application}/codemirror-builder.js +0 -0
- data/app/assets/javascripts/{application → mumuki_laboratory/application}/codemirror.js +0 -0
- data/app/assets/javascripts/{application → mumuki_laboratory/application}/confirmation.js +0 -0
- data/app/assets/javascripts/{application → mumuki_laboratory/application}/console.js +0 -0
- data/app/assets/javascripts/{application → mumuki_laboratory/application}/csrf-token.js +0 -0
- data/app/assets/javascripts/{application → mumuki_laboratory/application}/custom-editor.js +0 -0
- data/app/assets/javascripts/{application → mumuki_laboratory/application}/discussions.js +0 -0
- data/app/assets/javascripts/{application → mumuki_laboratory/application}/free-form.js +0 -0
- data/app/assets/javascripts/{application → mumuki_laboratory/application}/inputs.js +0 -0
- data/app/assets/javascripts/{application → mumuki_laboratory/application}/kids.js +31 -6
- data/app/assets/javascripts/{application → mumuki_laboratory/application}/load-analytics.js +0 -0
- data/app/assets/javascripts/{application → mumuki_laboratory/application}/load-error-svg.js +0 -0
- data/app/assets/javascripts/{application → mumuki_laboratory/application}/messages.js +0 -0
- data/app/assets/javascripts/{application → mumuki_laboratory/application}/multiple-choice.js +0 -0
- data/app/assets/javascripts/{application → mumuki_laboratory/application}/multiple-files.js +29 -15
- data/app/assets/javascripts/{application → mumuki_laboratory/application}/multiple-scenarios.js +0 -0
- data/app/assets/javascripts/{application → mumuki_laboratory/application}/pin.js +0 -0
- data/app/assets/javascripts/{application → mumuki_laboratory/application}/popover.js +0 -0
- data/app/assets/javascripts/{application → mumuki_laboratory/application}/progress.js +0 -0
- data/app/assets/javascripts/{application → mumuki_laboratory/application}/submission.js +0 -0
- data/app/assets/javascripts/{application → mumuki_laboratory/application}/timer.js +0 -0
- data/app/assets/javascripts/{application → mumuki_laboratory/application}/tooltip.js +0 -0
- data/app/assets/javascripts/{application → mumuki_laboratory/application}/upload.js +0 -0
- data/app/assets/javascripts/{application → mumuki_laboratory/application}/user.js +0 -0
- data/app/assets/javascripts/{application.js → mumuki_laboratory/application.js} +1 -1
- data/app/assets/stylesheets/{application → mumuki_laboratory/application}/_alerts.scss +0 -0
- data/app/assets/stylesheets/{application → mumuki_laboratory/application}/_errors.scss +0 -0
- data/app/assets/stylesheets/{application → mumuki_laboratory/application}/_fonts.scss +0 -0
- data/app/assets/stylesheets/{application → mumuki_laboratory/application}/_invitations.scss +0 -0
- data/app/assets/stylesheets/{application → mumuki_laboratory/application}/_layout.scss +0 -0
- data/app/assets/stylesheets/{application → mumuki_laboratory/application}/_mixins.scss +0 -0
- data/app/assets/stylesheets/{application → mumuki_laboratory/application}/_modules.scss +0 -0
- data/app/assets/stylesheets/{application → mumuki_laboratory/application}/_tooltip.scss +0 -0
- data/app/assets/stylesheets/{application → mumuki_laboratory/application}/_vendor.scss +0 -0
- data/app/assets/stylesheets/{application → mumuki_laboratory/application}/hovers.scss +0 -0
- data/app/assets/stylesheets/{application → mumuki_laboratory/application}/modules/_book_header.scss +0 -0
- data/app/assets/stylesheets/{application → mumuki_laboratory/application}/modules/_breadcrumb.scss +0 -0
- data/app/assets/stylesheets/{application → mumuki_laboratory/application}/modules/_chapter_show.scss +0 -0
- data/app/assets/stylesheets/{application → mumuki_laboratory/application}/modules/_checkboxes.scss +0 -0
- data/app/assets/stylesheets/{application → mumuki_laboratory/application}/modules/_console.scss +0 -0
- data/app/assets/stylesheets/{application → mumuki_laboratory/application}/modules/_discussion.scss +0 -0
- data/app/assets/stylesheets/{application → mumuki_laboratory/application}/modules/_dropdown.scss +0 -0
- data/app/assets/stylesheets/{application → mumuki_laboratory/application}/modules/_editor.scss +0 -0
- data/app/assets/stylesheets/{application → mumuki_laboratory/application}/modules/_exercise_assignment.scss +0 -0
- data/app/assets/stylesheets/{application → mumuki_laboratory/application}/modules/_exercise_results.scss +0 -0
- data/app/assets/stylesheets/{application → mumuki_laboratory/application}/modules/_flash.scss +0 -0
- data/app/assets/stylesheets/{application → mumuki_laboratory/application}/modules/_follow_us.scss +0 -0
- data/app/assets/stylesheets/{application → mumuki_laboratory/application}/modules/_gs-board.scss +0 -0
- data/app/assets/stylesheets/{application → mumuki_laboratory/application}/modules/_highlight.scss +0 -0
- data/app/assets/stylesheets/{application → mumuki_laboratory/application}/modules/_kids.scss +111 -38
- data/app/assets/stylesheets/{application → mumuki_laboratory/application}/modules/_kids_results.scss +0 -0
- data/app/assets/stylesheets/{application → mumuki_laboratory/application}/modules/_modal.scss +0 -0
- data/app/assets/stylesheets/{application → mumuki_laboratory/application}/modules/_organization_chooser.scss +0 -0
- data/app/assets/stylesheets/{application → mumuki_laboratory/application}/modules/_overlap.scss +0 -0
- data/app/assets/stylesheets/{application → mumuki_laboratory/application}/modules/_progress_bar.scss +0 -0
- data/app/assets/stylesheets/{application → mumuki_laboratory/application}/modules/_progress_listing.scss +0 -0
- data/app/assets/stylesheets/{application → mumuki_laboratory/application}/modules/_timer.scss +0 -0
- data/app/assets/stylesheets/{application → mumuki_laboratory/application}/modules/_upload.scss +0 -0
- data/app/assets/stylesheets/{application → mumuki_laboratory/application}/modules/guide-corollary.scss +0 -0
- data/app/assets/stylesheets/{application → mumuki_laboratory/application}/modules/popover.scss +0 -0
- data/app/assets/stylesheets/{application.scss → mumuki_laboratory/application.scss} +3 -3
- data/app/controllers/invitations_controller.rb +1 -1
- data/app/helpers/assets_helper.rb +2 -2
- data/app/helpers/authors_helper.rb +10 -0
- data/app/helpers/discussions_helper.rb +6 -2
- data/app/views/book/show.html.erb +1 -1
- data/app/views/discussions/show.html.erb +1 -1
- data/app/views/invitations/show.html.erb +1 -1
- data/app/views/layouts/_authoring.html.erb +1 -1
- data/app/views/layouts/_kids.html.erb +5 -2
- data/app/views/layouts/_submission_result_error_body.html.erb +1 -1
- data/app/views/layouts/exercise_inputs/read_only_editors/_custom.html.erb +3 -3
- data/lib/mumuki/laboratory/locales/en.yml +5 -4
- data/lib/mumuki/laboratory/locales/es.yml +5 -4
- data/lib/mumuki/laboratory/locales/pt.yml +5 -4
- data/lib/mumuki/laboratory/version.rb +1 -1
- data/spec/dummy/public/character/animations.json +1 -0
- data/spec/features/invitations_flow_spec.rb +46 -0
- data/spec/helpers/authors_helper_spec.rb +18 -0
- data/vendor/assets/javascripts/codemirror-modes/index.js +1 -0
- metadata +73 -66
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '0847a01d85f5a6b32a8c181b47930d4bd8a4963844107befc5f327c762f5cbc7'
|
4
|
+
data.tar.gz: 37f4f2fb0551b55a5ff8bd5e7d63faf529a6cd34bc0a920a26b7a8492e28c270
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b0669c5d38531eb94e9b84e8ab395d51e12014569f355448144aa39bf77786de1426d3231f6731acee57d7aa7b9dcae3ae2bf023f30b61e9e7cf51812049158c
|
7
|
+
data.tar.gz: 194ee095c0fefbdec24876a58c994115a064b97244e16847918d887c4e9a6a751e042c76cfcb57942822904b072d10d0e94c280e847e90e7ac648447935dc56e
|
data/README.md
CHANGED
@@ -36,8 +36,8 @@ echo 'eval "$(rbenv init -)"' >> ~/.bashrc # or .bash_profile
|
|
36
36
|
> Now we have rbenv installed, we can install ruby and [bundler](http://bundler.io/)
|
37
37
|
|
38
38
|
```bash
|
39
|
-
rbenv install 2.3
|
40
|
-
rbenv global 2.3
|
39
|
+
rbenv install 2.6.3
|
40
|
+
rbenv global 2.6.3
|
41
41
|
rbenv rehash
|
42
42
|
gem install bundler
|
43
43
|
```
|
@@ -191,6 +191,11 @@ which are granted to be safe and stable.
|
|
191
191
|
* `currentScenarioIndex`
|
192
192
|
* `resetIndicators`
|
193
193
|
* `updateIndicators`
|
194
|
+
* `mumuki.multipleFileEditor`
|
195
|
+
* `setUpAddFile`
|
196
|
+
* `setUpDeleteFiles`
|
197
|
+
* `setUpDeleteFile`
|
198
|
+
* `updateButtonsVisibility`
|
194
199
|
* `mumuki.version`
|
195
200
|
|
196
201
|
### Kids Call order
|
@@ -207,7 +212,7 @@ content URL in the current organization transparently:
|
|
207
212
|
|
208
213
|
* `GET <organization-url>/topics/<organization>/<repository>`
|
209
214
|
* `GET <organization-url>/guides/<organization>/<repository>`
|
210
|
-
* `GET <organization-url>/
|
215
|
+
* `GET <organization-url>/exercises/<organization>/<repository>/<bibliotheca-id>`
|
211
216
|
|
212
217
|
## REST API Docs
|
213
218
|
|
File without changes
|
File without changes
|
data/app/assets/javascripts/{application → mumuki_laboratory/application}/codemirror-builder.js
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -1,6 +1,5 @@
|
|
1
1
|
mumuki.load(function () {
|
2
2
|
var $bubble = $('.mu-kids-character-speech-bubble').children('.mu-kids-character-speech-bubble-normal');
|
3
|
-
if(!$bubble.length) return;
|
4
3
|
|
5
4
|
var availableTabs = ['.description', '.hint'];
|
6
5
|
var $speechParagraphs, paragraphHeight, scrollHeight, nextSpeechBlinking;
|
@@ -12,6 +11,9 @@ mumuki.load(function () {
|
|
12
11
|
var $speechTabs = $('.mu-kids-character-speech-bubble-tabs > li:not(.separator)');
|
13
12
|
var $defaultSpeechTabName = 'description';
|
14
13
|
var $texts = $bubble.children(availableTabs.join(", "));
|
14
|
+
var $hint = $('.mu-kids-hint');
|
15
|
+
var discussionsLinkHtml = $('#mu-kids-discussion-link-html').html();
|
16
|
+
var $description = $('.mu-kids-description');
|
15
17
|
|
16
18
|
function floatFromPx(value) {
|
17
19
|
return parseFloat(value.substring(0, value.length - 2));
|
@@ -120,7 +122,7 @@ mumuki.load(function () {
|
|
120
122
|
mumuki.kids._hideMessageOnCharacterBubble();
|
121
123
|
var $bubble = mumuki.kids._getCharacterBubble();
|
122
124
|
Object.keys(mumuki.kids.resultAction).forEach($bubble.removeClass.bind($bubble));
|
123
|
-
mumuki.presenterCharacter.playAnimation('talk', mumuki.kids.
|
125
|
+
mumuki.presenterCharacter.playAnimation('talk', mumuki.kids._getCharacterImage());
|
124
126
|
},
|
125
127
|
|
126
128
|
// ===========
|
@@ -139,7 +141,7 @@ mumuki.load(function () {
|
|
139
141
|
return $('#kids-results-aborted');
|
140
142
|
},
|
141
143
|
|
142
|
-
|
144
|
+
_getCharacterImage: function () {
|
143
145
|
return $('.mu-kids-character > img');
|
144
146
|
},
|
145
147
|
|
@@ -156,6 +158,7 @@ mumuki.load(function () {
|
|
156
158
|
$bubble.find('.mu-kids-character-speech-bubble-tabs').show();
|
157
159
|
$bubble.find('.mu-kids-character-speech-bubble-normal').show();
|
158
160
|
$bubble.find('.mu-kids-character-speech-bubble-failed').hide();
|
161
|
+
$bubble.find('.mu-kids-discussion-link').remove();
|
159
162
|
Object.keys(mumuki.kids.resultAction).forEach($bubble.removeClass.bind($bubble));
|
160
163
|
mumuki.kids._getOverlay().hide();
|
161
164
|
},
|
@@ -169,12 +172,19 @@ mumuki.load(function () {
|
|
169
172
|
if (data.status === 'passed_with_warnings') {
|
170
173
|
$bubble.find('.mu-kids-character-speech-bubble-failed').append(data.expectations_html);
|
171
174
|
}
|
175
|
+
if (this._shouldDisplayDiscussionsLink(data.status)) {
|
176
|
+
$bubble.append(discussionsLinkHtml);
|
177
|
+
}
|
172
178
|
mumuki.kids._getOverlay().show();
|
173
179
|
},
|
174
180
|
|
181
|
+
_shouldDisplayDiscussionsLink: function (status) {
|
182
|
+
return ['failed', 'passed_with_warnings'].some(it => it === status);
|
183
|
+
},
|
184
|
+
|
175
185
|
_showOnSuccessPopup: function (data) {
|
176
186
|
mumuki.kids._updateSubmissionResult(data.html);
|
177
|
-
mumuki.presenterCharacter.playAnimation('success_l', mumuki.kids.
|
187
|
+
mumuki.presenterCharacter.playAnimation('success_l', mumuki.kids._getCharacterImage());
|
178
188
|
mumuki.kids._showMessageOnCharacterBubble(data);
|
179
189
|
mumuki.presenterCharacter.playAnimation('success2_l', $('.mu-kids-character-success'));
|
180
190
|
setTimeout(function () {
|
@@ -199,7 +209,7 @@ mumuki.load(function () {
|
|
199
209
|
},
|
200
210
|
|
201
211
|
_showOnCharacterBubble: function (data) {
|
202
|
-
mumuki.presenterCharacter.playAnimation('failure', mumuki.kids.
|
212
|
+
mumuki.presenterCharacter.playAnimation('failure', mumuki.kids._getCharacterImage());
|
203
213
|
mumuki.kids._showMessageOnCharacterBubble(data);
|
204
214
|
},
|
205
215
|
|
@@ -250,7 +260,11 @@ mumuki.load(function () {
|
|
250
260
|
}
|
251
261
|
|
252
262
|
function animateSpeech() {
|
253
|
-
mumuki.presenterCharacter.playAnimation('talk', mumuki.kids.
|
263
|
+
mumuki.presenterCharacter.playAnimation('talk', mumuki.kids._getCharacterImage());
|
264
|
+
}
|
265
|
+
|
266
|
+
function animateHint() {
|
267
|
+
mumuki.presenterCharacter.playAnimation('hint', mumuki.kids._getCharaterImage());
|
254
268
|
}
|
255
269
|
|
256
270
|
mumuki.kids.resultAction.passed = mumuki.kids._showOnSuccessPopup;
|
@@ -262,8 +276,13 @@ mumuki.load(function () {
|
|
262
276
|
mumuki.kids.resultAction.errored = mumuki.kids._showOnCharacterBubble;
|
263
277
|
mumuki.kids.resultAction.pending = mumuki.kids._showOnCharacterBubble;
|
264
278
|
|
279
|
+
$('.mu-kids-context').on('hidden.bs.modal', function () {
|
280
|
+
animateSpeech();
|
281
|
+
});
|
282
|
+
|
265
283
|
$(document).ready(() => {
|
266
284
|
// Speech initialization
|
285
|
+
if(!$bubble.length) return;
|
267
286
|
|
268
287
|
availableTabs.forEach(function (tabSelector) {
|
269
288
|
tabParagraphs(tabSelector).contents().unwrap().wrapAll('<p>');
|
@@ -290,6 +309,12 @@ mumuki.load(function () {
|
|
290
309
|
|
291
310
|
$nextSpeech.click(showNextParagraph);
|
292
311
|
$prevSpeech.click(showPrevParagraph);
|
312
|
+
$description.click(animateSpeech);
|
313
|
+
|
314
|
+
$hint.click(function () {
|
315
|
+
animateHint();
|
316
|
+
this.classList.remove('blink');
|
317
|
+
});
|
293
318
|
|
294
319
|
// States initial resizing
|
295
320
|
|
File without changes
|
File without changes
|
File without changes
|
data/app/assets/javascripts/{application → mumuki_laboratory/application}/multiple-choice.js
RENAMED
File without changes
|
@@ -23,6 +23,10 @@ mumuki.load(() => {
|
|
23
23
|
return this.tab.find(File.NAME_CLASS).text(name);
|
24
24
|
}
|
25
25
|
|
26
|
+
get deleteButton() {
|
27
|
+
return this.tab.find(File.DELETE_BUTTON_CLASS);
|
28
|
+
}
|
29
|
+
|
26
30
|
get isSelected() {
|
27
31
|
return this.tab.hasClass("active");
|
28
32
|
}
|
@@ -71,7 +75,15 @@ mumuki.load(() => {
|
|
71
75
|
this.MAX_TABS = 5;
|
72
76
|
|
73
77
|
this._addFileButton = this.tabsContainer.siblings('.add-file-button');
|
74
|
-
this.
|
78
|
+
this.updateButtonsVisibility();
|
79
|
+
}
|
80
|
+
|
81
|
+
get mainFile() {
|
82
|
+
return this._mainFile || '';
|
83
|
+
}
|
84
|
+
|
85
|
+
set mainFile(mainFile) {
|
86
|
+
this._mainFile = mainFile;
|
75
87
|
}
|
76
88
|
|
77
89
|
get files() {
|
@@ -111,7 +123,16 @@ mumuki.load(() => {
|
|
111
123
|
}
|
112
124
|
|
113
125
|
setUpDeleteFile(file) {
|
114
|
-
file.setUpOnRemove(this._deleteFile
|
126
|
+
file.setUpOnRemove(() => this._deleteFile(file));
|
127
|
+
}
|
128
|
+
|
129
|
+
updateButtonsVisibility() {
|
130
|
+
const filesCount = this._getFilesCount();
|
131
|
+
|
132
|
+
this._setVisibility(this._addFileButton, filesCount < this.MAX_TABS);
|
133
|
+
this.files.toArray().forEach(file => {
|
134
|
+
this._setVisibility(file.deleteButton, file.name !== this.mainFile && filesCount > 1)
|
135
|
+
});
|
115
136
|
}
|
116
137
|
|
117
138
|
_addFile() {
|
@@ -126,27 +147,19 @@ mumuki.load(() => {
|
|
126
147
|
const file = this.files.last().get(0).initialize(name);
|
127
148
|
this.setUpDeleteFile(file);
|
128
149
|
|
129
|
-
this.
|
150
|
+
this.updateButtonsVisibility();
|
130
151
|
}
|
131
152
|
|
132
153
|
_deleteFile(file) {
|
133
|
-
const index
|
134
|
-
.map(
|
154
|
+
const index = this.files.toArray()
|
155
|
+
.map(file => file.name)
|
135
156
|
.indexOf(file.name);
|
136
157
|
const previousIndex = Math.max(index - 1, 0);
|
137
158
|
|
138
159
|
const wasSelected = file.remove();
|
139
160
|
if (wasSelected) this.files[previousIndex].select();
|
140
161
|
|
141
|
-
this.
|
142
|
-
}
|
143
|
-
|
144
|
-
_updateButtonsVisibility() {
|
145
|
-
const filesCount = this._getFilesCount();
|
146
|
-
const deleteButtons = this.tabs.find(File.DELETE_BUTTON_CLASS);
|
147
|
-
|
148
|
-
this._setVisibility(this._addFileButton, filesCount < this.MAX_TABS);
|
149
|
-
this._setVisibility(deleteButtons, filesCount > 1);
|
162
|
+
this.updateButtonsVisibility();
|
150
163
|
}
|
151
164
|
|
152
165
|
_createTab(name, id) {
|
@@ -212,16 +225,17 @@ mumuki.load(() => {
|
|
212
225
|
}
|
213
226
|
}
|
214
227
|
|
215
|
-
|
216
228
|
const setUpTabsBehavior = () => {
|
217
229
|
const tabsContainer = $('.nav-tabs').last();
|
218
230
|
if (!tabsContainer.length) return;
|
219
231
|
const editorsContainer = $('.tab-content');
|
220
232
|
|
221
233
|
const multipleFileEditor = new MultipleFileEditor(tabsContainer, editorsContainer);
|
234
|
+
mumuki.multipleFileEditor = multipleFileEditor;
|
222
235
|
multipleFileEditor.setUpAddFile();
|
223
236
|
multipleFileEditor.setUpDeleteFiles();
|
224
237
|
};
|
225
238
|
|
226
239
|
$(document).ready(setUpTabsBehavior);
|
240
|
+
|
227
241
|
});
|
data/app/assets/javascripts/{application → mumuki_laboratory/application}/multiple-scenarios.js
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
data/app/assets/stylesheets/{application → mumuki_laboratory/application}/modules/_book_header.scss
RENAMED
File without changes
|
data/app/assets/stylesheets/{application → mumuki_laboratory/application}/modules/_breadcrumb.scss
RENAMED
File without changes
|
data/app/assets/stylesheets/{application → mumuki_laboratory/application}/modules/_chapter_show.scss
RENAMED
File without changes
|
data/app/assets/stylesheets/{application → mumuki_laboratory/application}/modules/_checkboxes.scss
RENAMED
File without changes
|
data/app/assets/stylesheets/{application → mumuki_laboratory/application}/modules/_console.scss
RENAMED
File without changes
|
data/app/assets/stylesheets/{application → mumuki_laboratory/application}/modules/_discussion.scss
RENAMED
File without changes
|
data/app/assets/stylesheets/{application → mumuki_laboratory/application}/modules/_dropdown.scss
RENAMED
File without changes
|
data/app/assets/stylesheets/{application → mumuki_laboratory/application}/modules/_editor.scss
RENAMED
File without changes
|
File without changes
|
File without changes
|
data/app/assets/stylesheets/{application → mumuki_laboratory/application}/modules/_flash.scss
RENAMED
File without changes
|
data/app/assets/stylesheets/{application → mumuki_laboratory/application}/modules/_follow_us.scss
RENAMED
File without changes
|
data/app/assets/stylesheets/{application → mumuki_laboratory/application}/modules/_gs-board.scss
RENAMED
File without changes
|
data/app/assets/stylesheets/{application → mumuki_laboratory/application}/modules/_highlight.scss
RENAMED
File without changes
|
data/app/assets/stylesheets/{application → mumuki_laboratory/application}/modules/_kids.scss
RENAMED
@@ -110,6 +110,18 @@ $kids-speech-tabs-width: 40px;
|
|
110
110
|
height: 100%;
|
111
111
|
}
|
112
112
|
.mu-kids-character-speech-bubble {
|
113
|
+
&.failed, &.passed_with_warnings {
|
114
|
+
padding-right: 20px;
|
115
|
+
}
|
116
|
+
.mu-kids-discussion-link {
|
117
|
+
i {
|
118
|
+
width: 13px;
|
119
|
+
height: 13px;
|
120
|
+
line-height: 13px;
|
121
|
+
border-radius: 50%;
|
122
|
+
}
|
123
|
+
|
124
|
+
}
|
113
125
|
|
114
126
|
@media screen and (max-width: $screen-sm-max) {
|
115
127
|
h4 {
|
@@ -342,50 +354,111 @@ $kids-speech-tabs-width: 40px;
|
|
342
354
|
}
|
343
355
|
}
|
344
356
|
}
|
357
|
+
}
|
345
358
|
|
346
|
-
|
347
|
-
|
348
|
-
|
349
|
-
|
350
|
-
|
351
|
-
|
352
|
-
|
353
|
-
|
354
|
-
|
355
|
-
|
356
|
-
|
357
|
-
|
358
|
-
|
359
|
-
|
360
|
-
|
361
|
-
|
362
|
-
|
363
|
-
|
364
|
-
|
365
|
-
|
366
|
-
|
367
|
-
|
368
|
-
|
369
|
-
|
370
|
-
|
371
|
-
|
359
|
+
.mu-kids-blocks, .mu-read-only-editor {
|
360
|
+
form,
|
361
|
+
[id*="custom-editor"],
|
362
|
+
gs-element-blockly,
|
363
|
+
#blocklyDiv,
|
364
|
+
.blocklySvg {
|
365
|
+
min-width: 100% !important;
|
366
|
+
min-height: 100% !important;
|
367
|
+
width: 100% !important;
|
368
|
+
height: 100% !important;
|
369
|
+
}
|
370
|
+
gs-element-blockly {
|
371
|
+
padding: 0;
|
372
|
+
margin: 0;
|
373
|
+
}
|
374
|
+
.blocklyMainBackground {
|
375
|
+
rx: 10px !important;
|
376
|
+
ry: 10px !important;
|
377
|
+
}
|
378
|
+
.blocklyScrollbarHandle {
|
379
|
+
fill: $kids-scrollbar-background-color !important;
|
380
|
+
stroke: $kids-speech-border-color !important;
|
381
|
+
stroke-width: 1px !important;
|
382
|
+
}
|
383
|
+
.blocklyMainWorkspaceScrollbar {
|
384
|
+
display: none;
|
385
|
+
}
|
386
|
+
.blocklyScrollbarHorizontal {
|
387
|
+
display: none;
|
388
|
+
}
|
389
|
+
.blocklyToolboxDiv {
|
390
|
+
background-color: $kids-speech-background-color !important;
|
391
|
+
border: $kids-speech-border !important;
|
392
|
+
border-right: none !important;
|
393
|
+
border-top-left-radius: 10px !important;
|
394
|
+
border-bottom-left-radius: 10px !important;
|
395
|
+
}
|
396
|
+
.blocklyFlyoutBackground {
|
397
|
+
fill: $kids-speech-background-color !important;
|
398
|
+
border: $kids-speech-border !important;
|
399
|
+
border-right: none !important;
|
400
|
+
}
|
401
|
+
}
|
402
|
+
|
403
|
+
$statuses-glow-animation: (
|
404
|
+
failed: $mu-color-danger,
|
405
|
+
passed_with_warnings: $mu-color-warning
|
406
|
+
);
|
407
|
+
|
408
|
+
@each $status, $color in $statuses-glow-animation {
|
409
|
+
@keyframes glow-#{$status} {
|
410
|
+
0% {
|
411
|
+
box-shadow: 0 0 0 #ffff7f;
|
372
412
|
}
|
373
|
-
|
374
|
-
|
413
|
+
50% {
|
414
|
+
box-shadow: 0 0 15px 4px $color;
|
415
|
+
color: darken($color, 10%);
|
416
|
+
transform: scale(1.2);
|
375
417
|
}
|
376
|
-
|
377
|
-
|
378
|
-
border: $kids-speech-border !important;
|
379
|
-
border-right: none !important;
|
380
|
-
border-top-left-radius: 10px !important;
|
381
|
-
border-bottom-left-radius: 10px !important;
|
418
|
+
100% {
|
419
|
+
box-shadow: 0 0 25px 4px transparent;
|
382
420
|
}
|
383
|
-
|
384
|
-
|
385
|
-
|
386
|
-
|
421
|
+
}
|
422
|
+
|
423
|
+
.#{$status} .mu-kids-discussion-link {
|
424
|
+
color: $color;
|
425
|
+
i {
|
426
|
+
-webkit-animation: glow-#{$status} 1.5s ease infinite;
|
427
|
+
-moz-animation: glow-#{$status} 1.5s ease infinite;
|
428
|
+
animation: glow-#{$status} 1.5s ease infinite;
|
387
429
|
}
|
388
430
|
}
|
431
|
+
|
432
|
+
}
|
433
|
+
|
434
|
+
.mu-kids-hint.blink i {
|
435
|
+
width: 8px;
|
436
|
+
height: 8px;
|
437
|
+
line-height: 12px;
|
438
|
+
margin: 0 2px 4px 0;
|
439
|
+
-webkit-animation: hint-blink 1.5s ease infinite;
|
440
|
+
-moz-animation: hint-blink 1.5s ease infinite;
|
441
|
+
animation: hint-blink 1.5s ease infinite;
|
442
|
+
}
|
443
|
+
|
444
|
+
@keyframes hint-blink {
|
445
|
+
50% {
|
446
|
+
color: #7f7f00;
|
447
|
+
background-color: rgba(255,255,0, 0.5);
|
448
|
+
transform: scale(1.2);
|
449
|
+
}
|
450
|
+
}
|
451
|
+
|
452
|
+
.mu-read-only-editor {
|
453
|
+
#blocklyDiv {
|
454
|
+
height: 400px !important;
|
455
|
+
}
|
456
|
+
#blocklyDiv {
|
457
|
+
border: $kids-speech-border !important;
|
458
|
+
}
|
459
|
+
.blocklyMainBackground {
|
460
|
+
stroke-width: 0px;
|
461
|
+
}
|
389
462
|
}
|
390
463
|
|
391
464
|
.mu-kids-landscape-support {
|
data/app/assets/stylesheets/{application → mumuki_laboratory/application}/modules/_kids_results.scss
RENAMED
File without changes
|
data/app/assets/stylesheets/{application → mumuki_laboratory/application}/modules/_modal.scss
RENAMED
File without changes
|
File without changes
|
data/app/assets/stylesheets/{application → mumuki_laboratory/application}/modules/_overlap.scss
RENAMED
File without changes
|
data/app/assets/stylesheets/{application → mumuki_laboratory/application}/modules/_progress_bar.scss
RENAMED
File without changes
|
File without changes
|
data/app/assets/stylesheets/{application → mumuki_laboratory/application}/modules/_timer.scss
RENAMED
File without changes
|
data/app/assets/stylesheets/{application → mumuki_laboratory/application}/modules/_upload.scss
RENAMED
File without changes
|
File without changes
|
data/app/assets/stylesheets/{application → mumuki_laboratory/application}/modules/popover.scss
RENAMED
File without changes
|
@@ -1,6 +1,6 @@
|
|
1
|
-
$icon-font-path: '
|
2
|
-
$fa-font-path: '
|
3
|
-
$da-font-path: '
|
1
|
+
$icon-font-path: asset-path('assets/bootstrap');
|
2
|
+
$fa-font-path: asset-path('assets');
|
3
|
+
$da-font-path: asset-path('assets');
|
4
4
|
|
5
5
|
@import "scss/mumuki-styles";
|
6
6
|
@import "codemirror/codemirror.min";
|
@@ -9,8 +9,8 @@ module AssetsHelper
|
|
9
9
|
|
10
10
|
def laboratory_assets_include_tags
|
11
11
|
%Q{
|
12
|
-
#{stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload'}
|
13
|
-
#{javascript_include_tag 'application', 'data-turbolinks-track': 'reload'}
|
12
|
+
#{stylesheet_link_tag 'mumuki_laboratory/application', media: 'all', 'data-turbolinks-track': 'reload'}
|
13
|
+
#{javascript_include_tag 'mumuki_laboratory/application.js', 'data-turbolinks-track': 'reload'}
|
14
14
|
}
|
15
15
|
end
|
16
16
|
|
@@ -0,0 +1,10 @@
|
|
1
|
+
module AuthorsHelper
|
2
|
+
|
3
|
+
def attribution_caption(guide)
|
4
|
+
if guide.collaborators.present?
|
5
|
+
t(:authoring_note_with_collaborators_html, authors: guide.authors, collaborators: "https://raw.githubusercontent.com/#{guide.slug}/master/COLLABORATORS.txt")
|
6
|
+
else
|
7
|
+
t(:authoring_note_html, authors: guide.authors)
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|