Skip to content

Commit d876eef

Browse files
authored
Convert core JS files into modules (#1386)
1 parent ae98717 commit d876eef

18 files changed

+1443
-1238
lines changed

.eslintrc.yml

+1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ globals:
88
SharedArrayBuffer: readonly
99
parserOptions:
1010
ecmaVersion: 2018
11+
sourceType: module
1112
rules:
1213
indent:
1314
- error

web/blockframe.html

+5-7
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,6 @@
4747

4848
<script src="../js/blocks_runmain.js"></script>
4949
<script>
50-
let upperParent = null;
5150
let frameId = null;
5251

5352
function loadXml(data) {
@@ -72,20 +71,19 @@
7271
frameId = j_id_param;
7372
}
7473

75-
function setParent(par) {
76-
upperParent = par;
77-
}
78-
7974
document.getElementById("blocklyDiv").addEventListener(
8075
"click",
8176
() => {
82-
if (upperParent) {
77+
if (window.parent) {
8378
let workspace = Blockly.getMainWorkspace();
8479

8580
let xml = Blockly.Xml.workspaceToDom(workspace);
8681
let xml_text = Blockly.Xml.domToText(xml);
8782

88-
upperParent.loadSample(xml_text);
83+
window.parent.postMessage(
84+
{ type: "loadSample", code: xml_text },
85+
"*"
86+
);
8987
}
9088
},
9189
false

web/blocks.html

+13-42
Original file line numberDiff line numberDiff line change
@@ -37,33 +37,19 @@
3737
<div class="ui-layout-container">
3838
<div id="nav" class="dropbox ui-layout-west">
3939
<div class="nav_items">
40-
<a id="newFolderButton" class="cw-button red" onclick="newFolder()">
40+
<a id="newFolderButton" class="cw-button red">
4141
<i class="mdi mdi-18px mdi-folder"></i>&nbsp; New Folder
4242
</a>
43-
<a id="newButton" class="cw-button red" onclick="newProject()">
43+
<a id="newButton" class="cw-button red">
4444
<i class="mdi mdi-18px mdi-plus"></i>&nbsp; New
4545
</a>
46-
<a
47-
id="saveButton"
48-
class="cw-button blue"
49-
style="display: none;"
50-
onclick="saveProject()"
51-
>
46+
<a id="saveButton" class="cw-button blue" style="display: none;">
5247
<i class="mdi mdi-18px mdi-cloud-upload"></i>&nbsp; Save
5348
</a>
54-
<a
55-
id="saveAsButton"
56-
class="cw-button blue"
57-
onclick="saveProjectAs()"
58-
>
49+
<a id="saveAsButton" class="cw-button blue">
5950
<i class="mdi mdi-18px mdi-dots-horizontal"></i>&nbsp; Save As
6051
</a>
61-
<a
62-
id="deleteButton"
63-
class="cw-button red"
64-
style="display: none;"
65-
onclick="deleteProject()"
66-
>
52+
<a id="deleteButton" class="cw-button red" style="display: none;">
6753
<i class="mdi mdi-18px mdi-delete"></i>&nbsp; Delete
6854
</a>
6955
</div>
@@ -119,19 +105,16 @@
119105
id="navButton"
120106
class="cw-button blue"
121107
onclick="window.mainLayout.toggle('west')"
108+
style="display: none;"
122109
><i class="mdi mdi-18px mdi-menu"></i
123110
></a>
124-
<a id="signin" class="cw-button blue" onclick="signin()"
111+
<a id="signin" class="cw-button blue"
125112
><i class="mdi mdi-18px mdi-login"></i>&nbsp; Sign In</a
126113
>
127-
<a
128-
id="signout"
129-
class="cw-button blue"
130-
style="display: none;"
131-
onclick="signout()"
114+
<a id="signout" class="cw-button blue" style="display: none;"
132115
><i class="mdi mdi-18px mdi-logout"></i>&nbsp; Sign Out</a
133116
>
134-
<a id="docButton" class="cw-button blue" onclick="help()"
117+
<a id="docButton" class="cw-button blue"
135118
><i class="mdi mdi-18px mdi-book-open-variant"></i>&nbsp; Guide</a
136119
>
137120
<a
@@ -148,21 +131,16 @@
148131
id="shareFolderButton"
149132
class="cw-button yellow"
150133
style="display: none;"
151-
onclick="shareFolder()"
152134
><i class="mdi mdi-18px mdi-folder-outline"></i>&nbsp; Share
153135
Folder</a
154136
>
155-
<a
156-
id="shareButton"
157-
class="cw-button yellow"
158-
style="display: none;"
159-
onclick="share()"
137+
<a id="shareButton" class="cw-button yellow" style="display: none;"
160138
><i class="mdi mdi-18px mdi-share"></i>&nbsp; Share</a
161139
>
162-
<a class="cw-button red" id="btnStop"
140+
<a id="btnStop" class="cw-button red"
163141
><i class="mdi mdi-18px mdi-stop"></i>&nbsp; Stop</a
164142
>
165-
<a class="cw-button green" id="btnRun"
143+
<a id="btnRun" class="cw-button green"
166144
><i class="mdi mdi-18px mdi-play"></i>&nbsp; Run</a
167145
>
168146
</div>
@@ -176,10 +154,7 @@
176154
></script>
177155

178156
<!-- Initialization in JS -->
179-
<script src="js/utils/index.js"></script>
180-
<script src="js/utils/directoryTree.js"></script>
181-
<script src="js/codeworld_shared.js"></script>
182-
<script src="js/funblocks.js"></script>
157+
<script type="module" src="js/funblocks.js"></script>
183158

184159
<script language="javascript" src="js/blocks_rts.js"></script>
185160
<script language="javascript" src="js/blocks_lib.js"></script>
@@ -258,10 +233,6 @@
258233
src="https://cdn.jsdelivr.net/npm/[email protected]/dist/promise.min.js"
259234
></script>
260235

261-
<script type="text/javascript">
262-
init();
263-
</script>
264-
265236
<xml id="toolbox" style="display: none;">
266237
<category name="Programs">
267238
<block type="cwDrawingOf"></block>

web/css/codeworld.css

+4
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,10 @@ body {
116116
margin: 0px;
117117
}
118118

119+
.cw-button.inspect-button__active {
120+
color: black;
121+
}
122+
119123
#keyboard-shortcuts {
120124
text-align: center;
121125
height: 50vh;

web/doc.html

+1-2
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,7 @@
5757
charset="UTF-8"
5858
></script>
5959
<script type="text/javascript" src="js/codeworld-mode.js"></script>
60-
<script type="text/javascript" src="js/codeworld_shared.js"></script>
61-
<script type="text/javascript" src="js/doc.js"></script>
60+
<script type="module" src="js/doc.js"></script>
6261
</head>
6362

6463
<body>

web/env.html

+19-57
Original file line numberDiff line numberDiff line change
@@ -45,39 +45,25 @@
4545
<div class="ui-layout-container">
4646
<div id="nav" class="dropbox ui-layout-west">
4747
<div class="nav_items">
48-
<a id="newFolderButton" class="cw-button red" onclick="newFolder()">
48+
<a id="newFolderButton" class="cw-button red">
4949
<i class="mdi mdi-18px mdi-folder"></i>&nbsp; New Folder
5050
</a>
51-
<a id="newButton" class="cw-button red" onclick="newProject()">
51+
<a id="newButton" class="cw-button red">
5252
<i class="mdi mdi-18px mdi-plus"></i>&nbsp; New
5353
</a>
54-
<a
55-
id="saveButton"
56-
class="cw-button blue"
57-
style="display: none;"
58-
onclick="saveProject()"
59-
>
54+
<a id="saveButton" class="cw-button blue" style="display: none;">
6055
<i class="mdi mdi-18px mdi-cloud-upload"></i>&nbsp; Save
6156
</a>
62-
<a
63-
id="saveAsButton"
64-
class="cw-button blue"
65-
onclick="saveProjectAs()"
66-
>
57+
<a id="saveAsButton" class="cw-button blue">
6758
<i class="mdi mdi-18px mdi-dots-horizontal"></i>&nbsp; Save As
6859
</a>
69-
<a
70-
id="deleteButton"
71-
class="cw-button red"
72-
style="display: none;"
73-
onclick="deleteProject()"
74-
>
60+
<a id="deleteButton" class="cw-button red" style="display: none;">
7561
<i class="mdi mdi-18px mdi-delete"></i>&nbsp; Delete
7662
</a>
7763
<a
7864
id="downloadButton"
7965
class="cw-button blue"
80-
onclick="downloadProject()"
66+
style="display: none;"
8167
>
8268
<i class="mdi mdi-18px mdi-download"></i>&nbsp; Download
8369
</a>
@@ -92,7 +78,7 @@
9278
<div id="result" style="display: none;" class="ui-layout-east">
9379
<div class="runner-box">
9480
<div id="obsolete-code-alert" class="obsolete-code-alert-fadeout">
95-
Press Run to run your current code.
81+
Changes detected. Press 'Run' button to compile your current code.
9682
</div>
9783
<iframe
9884
id="runner"
@@ -109,19 +95,16 @@
10995
id="navButton"
11096
class="cw-button blue"
11197
onclick="window.mainLayout.toggle('west')"
98+
style="display: none;"
11299
><i class="mdi mdi-18px mdi-menu"></i
113100
></a>
114-
<a id="signin" class="cw-button blue" onclick="signin()"
101+
<a id="signin" class="cw-button blue"
115102
><i class="mdi mdi-18px mdi-login"></i>&nbsp; Sign In</a
116103
>
117-
<a
118-
id="signout"
119-
class="cw-button blue"
120-
style="display: none;"
121-
onclick="signout()"
104+
<a id="signout" class="cw-button blue" style="display: none;"
122105
><i class="mdi mdi-18px mdi-logout"></i>&nbsp; Sign Out</a
123106
>
124-
<a id="docButton" class="cw-button blue" onclick="help()"
107+
<a id="docButton" class="cw-button blue"
125108
><i class="mdi mdi-18px mdi-book-open-variant"></i>&nbsp; Guide</a
126109
>
127110
<a
@@ -132,10 +115,10 @@
132115
><i class="mdi mdi-18px mdi-bug"></i>&nbsp; Report a Bug</a
133116
>
134117
<a
118+
id="toggleThemeButton"
135119
class="cw-button blue theme-marker-day"
136120
title="Toggle theme"
137121
target="_blank"
138-
onclick="toggleTheme()"
139122
><i class="mdi mdi-18px mdi-weather-sunny"></i
140123
></a>
141124
</div>
@@ -145,7 +128,6 @@
145128
id="shareFolderButton"
146129
class="cw-button yellow"
147130
style="display: none;"
148-
onclick="shareFolder()"
149131
><i class="mdi mdi-18px mdi-folder-outline"></i>&nbsp; Share
150132
Folder</a
151133
>
@@ -158,38 +140,25 @@
158140
<!--Recording Icon--></i
159141
></span
160142
>
161-
<a
162-
id="startRecButton"
163-
style="display: none;"
164-
class="cw-button red"
165-
onclick="captureStart()"
143+
<a id="startRecButton" style="display: none;" class="cw-button red"
166144
><i class="mdi mdi-18px mdi-record"></i>&nbsp; Start Recording</a
167145
>
168-
<a
169-
id="stopRecButton"
170-
style="display: none;"
171-
class="cw-button yellow"
172-
onclick="stopRecording()"
146+
<a id="stopRecButton" style="display: none;" class="cw-button yellow"
173147
><i class="mdi mdi-18px mdi-stop"></i>&nbsp; Stop Recording</a
174148
>
175-
<a
176-
id="shareButton"
177-
class="cw-button yellow"
178-
style="display: none;"
179-
onclick="share()"
149+
<a id="shareButton" class="cw-button yellow" style="display: none;"
180150
><i class="mdi mdi-18px mdi-share"></i>&nbsp; Share</a
181151
>
182152
<a
183153
id="inspectButton"
184-
class="cw-button cyan"
154+
class="inspect-button cw-button cyan"
185155
style="display: none;"
186-
onclick="inspect()"
187156
><i class="mdi mdi-18px mdi-magnify"></i>&nbsp; Inspect</a
188157
>
189-
<a class="cw-button red" onclick="stopRun()"
158+
<a id="stopButton" class="cw-button red"
190159
><i class="mdi mdi-18px mdi-stop"></i>&nbsp; Stop</a
191160
>
192-
<a class="cw-button green" onclick="compile()"
161+
<a id="runButton" class="cw-button green"
193162
><i class="mdi mdi-18px mdi-play"></i>&nbsp; Run</a
194163
>
195164
</div>
@@ -270,18 +239,11 @@
270239
type="text/javascript"
271240
src="js/details-element-polyfill.js"
272241
></script>
273-
<script type="text/javascript" src="js/utils/index.js"></script>
274-
<script type="text/javascript" src="js/utils/directoryTree.js"></script>
275242
<script type="text/javascript" src="js/codeworld-mode.js"></script>
276-
<script type="text/javascript" src="js/codeworld_shared.js"></script>
277-
<script type="text/javascript" src="js/codeworld.js"></script>
278-
<script type="text/javascript" src="js/treedialog.js"></script>
243+
<script type="module" src="js/codeworld.js"></script>
279244
<script
280245
type="text/javascript"
281246
src="https://cdn.jsdelivr.net/npm/[email protected]/dist/promise.min.js"
282247
></script>
283-
<script type="text/javascript">
284-
init();
285-
</script>
286248
</body>
287249
</html>

0 commit comments

Comments
 (0)