forked from algorithm-visualizer/algorithm-visualizer
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
89 lines (73 loc) · 2.12 KB
/
index.js
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
83
84
85
86
87
88
89
'use strict';
const RSVP = require('rsvp');
const app = require('./app');
const AppConstructor = require('./app/constructor');
const DOM = require('./dom');
const Server = require('./server');
const modules = require('./module');
const {
extend
} = $;
$.ajaxSetup({
cache: false,
dataType: 'text'
});
const {
isScratchPaper
} = require('./utils');
const {
getHashValue,
getParameterByName,
getPath
} = require('./server/helpers');
// set global promise error handler
RSVP.on('error', function (reason) {
console.assert(false, reason);
});
$(() => {
// initialize the application and attach in to the instance module
const appConstructor = new AppConstructor();
extend(true, app, appConstructor);
// load modules to the global scope so they can be evaled
extend(true, window, modules);
Server.loadCategories().then((data) => {
app.setCategories(data);
DOM.addCategories();
//enable search feature
DOM.enableSearch ();
//enable fullscreen feature
DOM.enableFullScreen ();
// determine if the app is loading a pre-existing scratch-pad
// or the home page
const {
category,
algorithm,
file
} = getPath();
if (isScratchPaper(category)) {
if (algorithm) {
Server.loadScratchPaper(algorithm).then(({category, algorithm, data}) => {
DOM.showAlgorithm(category, algorithm, data);
});
} else {
Server.loadAlgorithm(category).then((data) => {
DOM.showAlgorithm(category, null, data);
});
}
} else if (category && algorithm) {
DOM.showRequestedAlgorithm(category, algorithm, file);
} else {
DOM.showFirstAlgorithm();
}
});
Server.loadWikiList().then((data) => {
app.setWikiList(data.wikis);
DOM.showWiki('Tracer');
});
var v1LoadedScratch = getHashValue('scratch-paper');
var v2LoadedScratch = getParameterByName('scratch-paper');
var vLoadedScratch = v1LoadedScratch || v2LoadedScratch;
if (vLoadedScratch) {
window.location.href = window.location.protocol + '//' + window.location.host + window.location.pathname + '#path=scratch/' + vLoadedScratch;
}
});