-
Notifications
You must be signed in to change notification settings - Fork 30
Expand file tree
/
Copy pathcommunity_solution.js
More file actions
53 lines (46 loc) · 1.89 KB
/
community_solution.js
File metadata and controls
53 lines (46 loc) · 1.89 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
$(document).on('turbo-migration:load', function() {
if ($.isController('community_solutions') && $('#community-solution-editor').isPresent()) {
CodeOceanEditor.sendEvents = false;
CodeOceanEditor.editors = [];
CodeOceanEditor.initializeDescriptionToggle();
CodeOceanEditor.initializeEditors();
CodeOceanEditor.initializeEditors(true);
CodeOceanEditor.initializeFileTree();
CodeOceanEditor.initializeFileTree(true);
CodeOceanEditor.showFirstFile();
CodeOceanEditor.showFirstFile(true);
CodeOceanEditor.resizeAceEditors();
CodeOceanEditor.resizeAceEditors(true);
$.extend(
CodeOceanEditor,
CodeOceanEditorAJAX,
CodeOceanEditorSubmissions
)
$(document).on('theme:change:ace', CodeOceanEditor.handleAceThemeChangeEvent.bind(CodeOceanEditor));
$('#submit').one('click', submitCode.bind(CodeOceanEditor));
$('#accept').one('click', submitCode.bind(CodeOceanEditor));
}
});
$(document).one('turbo-migration:load', function() {
if ($.isController('community_solutions') && $('#community-solution-editor').isPresent()) {
$(document).one('turbo:visit', unloadEditorHandler);
$(window).one('beforeunload', unloadEditorHandler);
}
});
function unloadEditorHandler() {
CodeOceanEditor.autosaveIfChanged();
CodeOceanEditor.unloadEditor();
}
function submitCode(event) {
const button = $(event.target) || $('#submit');
this.newSentryTransaction(button, async () => {
const submission = await this.createSubmission(button, null).catch((response) => {
this.ajaxError(response);
button.one('click', this.submitCode.bind(this));
});
if (!submission) return;
if (!submission.redirect) return;
unloadEditorHandler();
Turbo.visit(submission.redirect);
});
}