forked from algorithm-visualizer/algorithm-visualizer
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsetup_top_menu.js
More file actions
82 lines (67 loc) · 1.94 KB
/
setup_top_menu.js
File metadata and controls
82 lines (67 loc) · 1.94 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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
'use strict';
const app = require('../../app');
const Server = require('../../server');
const Toast = require('../toast');
const TopMenu = require('../top_menu');
const create = require('../../create');
module.exports = () => {
// shared
$('#shared').mouseup(function () {
$(this).select();
});
$('#btn_share').click(function () {
const $icon = $(this).find('.fa-share');
$icon.addClass('fa-spin fa-spin-faster');
Server.shareScratchPaper().then((url) => {
$icon.removeClass('fa-spin fa-spin-faster');
$('#shared').removeClass('collapse');
$('#shared').val(url);
Toast.showInfoToast('Shareable link is created.');
});
});
// control
const $btnRun = $('#btn_run');
const $btnTrace = $('#btn_trace');
const $btnPause = $('#btn_pause');
const $btnPrev = $('#btn_prev');
const $btnNext = $('#btn_next');
const $btnGenerate = $('#btn_generate');
// initially, control buttons are disabled
TopMenu.disableFlowControl();
$btnRun.click(() => {
$btnTrace.click();
$btnPause.removeClass('active');
$btnRun.addClass('active');
TopMenu.enableFlowControl();
var err = app.getEditor().execute();
if (err) {
console.error(err);
Toast.showErrorToast(err);
TopMenu.resetTopMenuButtons();
}
});
$btnPause.click(() => {
$btnRun.toggleClass('active');
$btnPause.toggleClass('active');
if (app.getTracerManager().isPause()) {
app.getTracerManager().resumeStep();
} else {
app.getTracerManager().pauseStep();
}
});
$btnPrev.click(() => {
$btnRun.removeClass('active');
$btnPause.addClass('active');
app.getTracerManager().pauseStep();
app.getTracerManager().prevStep();
});
$btnNext.click(() => {
$btnRun.removeClass('active');
$btnPause.addClass('active');
app.getTracerManager().pauseStep();
app.getTracerManager().nextStep();
});
$btnGenerate.click(() => {
create.init();
});
};