mumuki-laboratory 6.6.1 → 6.7.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|