-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathtestbed.html
115 lines (101 loc) · 4.38 KB
/
testbed.html
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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<title>MIPS Studio</title>
<script type="text/javascript" src="/file?path=react/JSXTransformer.js"></script>
<script type="text/javascript" src="/file?path=react/react.js"></script>
<script type="text/jsx" src="/file?path=react/components.js"></script>
<script type="text/javascript" src="/file?path=require.js"></script>
<script type="text/javascript" src="/file?path=io.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<link rel="stylesheet" href="/file?path=style.css" type="text/css">
<script type="text/javascript">
// Create a small library for interacting with the database
var database = (function () {
var create = function (name,text,callback) {
var url = "/create?name=" + encodeURIComponent(name) + "&text=" + encodeURIComponent(text);
$.get(url, function (data) {
callback(data);
});
};
var save = function (name, text, callback) {
var url = "/save?name=" + encodeURIComponent(name) + "&text=" + encodeURIComponent(text);
$.get(url, function (data) {
callback(data);
});
};
var remove = function (name, callback) {
var url = "/delete?name=" + encodeURIComponent(name);
$.get(url, function (data) {
callback(data);
});
};
var open = function (name, callback) {
var url = "/open?name=" + encodeURIComponent(name);
$.get(url, function (data) {
callback(data);
});
};
var list = function (callback) {
var url = "/list";
$.get(url, function (data) {
callback(data);
});
};
// Return out the interface
return {
create: create,
save: save,
remove: remove,
list: list,
open: open
}
})();
// Closes the current overlay, if any
var close_overlay = function () {
var overlay = document.querySelector('.overlay');
var to_remove = document.querySelector('.overlay');
to_remove.parentNode.removeChild(to_remove);
var to_remove = document.querySelector('.clickeater');
to_remove.parentNode.removeChild(to_remove);
};
// Wrapper to react to show an overlay
var show_overlay = function (comp, props) {
var display_overlay = function (content) {
var overlay = document.createElement('DIV');
overlay.setAttribute('class', 'overlay');
overlay.appendChild(content);
var clickeater = document.createElement('DIV');
clickeater.setAttribute('title', 'click to close the pop-up');
clickeater.setAttribute('class', 'clickeater');
// remove when clicked
clickeater.addEventListener('click', close_overlay);
document.body.appendChild(clickeater);
document.body.appendChild(overlay);
};
// Render the react component into the dummy element and display
var dummy = document.createElement("DIV");
var handle = React.render(React.createElement(comp, props), dummy);
display_overlay(dummy);
}
// Render the UI
window.onload = function () {
require(["mips", "tests"], function (MIPS, Tests) {
// Render the UI (this is really it.)
React.render(
React.createElement(Studio, {
MIPS: MIPS,
Tests: Tests
}),
document.querySelector('body')
);
// Test the overlay
// show_overlay(Breakpoint, { line_num: 666, breakpoints: { points: [1, 2, 3], toggle: null } });
});
};
</script>
</head>
<body>
</body>
</html>