@@ -3,6 +3,7 @@ import 'codemirror/mode/javascript/javascript'
3
3
import { Chart } from 'chart.js/dist/chart'
4
4
import analyze from '../js/analyze'
5
5
import taxonomy from '..'
6
+ /* global FileReader */
6
7
7
8
// From https://arxiv.org/abs/2201.02089
8
9
const EXAMPLE_JSON = {
@@ -178,8 +179,55 @@ function onAnalyze (value) {
178
179
}
179
180
}
180
181
181
- document . getElementById ( 'analyze' ) . addEventListener ( 'click' , ( ) => {
182
- return onAnalyze ( code . getValue ( ) )
182
+ const LoaderElement = document . createElement ( 'div' )
183
+ LoaderElement . classList . add ( 'loader' )
184
+ const fileInputElement = document . getElementById ( 'fileInput' )
185
+ const removeBtn = document . getElementById ( 'remove' )
186
+
187
+ function showLoader ( bool ) {
188
+ if ( bool ) {
189
+ document . querySelector ( 'main' ) . appendChild ( LoaderElement )
190
+ document . getElementById ( 'overlay' ) . style . display = 'block'
191
+ } else {
192
+ document . querySelector ( 'main' ) . removeChild ( LoaderElement )
193
+ document . getElementById ( 'overlay' ) . style . display = 'none'
194
+ }
195
+ }
196
+
197
+ function analyzer ( ) {
198
+ const file = fileInputElement . files [ 0 ]
199
+ showLoader ( true )
200
+ if ( file ) {
201
+ const reader = new FileReader ( )
202
+ reader . onload = function ( event ) {
203
+ const contents = event . target . result
204
+ onAnalyze ( contents )
205
+ showLoader ( false )
206
+ }
207
+ reader . readAsText ( file )
208
+ } else {
209
+ onAnalyze ( code . getValue ( ) )
210
+ showLoader ( false )
211
+ }
212
+ }
213
+
214
+ removeBtn . addEventListener ( 'click' , ( ) => {
215
+ fileInputElement . value = ''
216
+ code . setValue ( '' )
217
+ code . setOption ( 'readOnly' , false )
218
+ removeBtn . classList . add ( 'uk-disabled' )
219
+ } )
220
+
221
+ fileInputElement . addEventListener ( 'change' , ( e ) => {
222
+ if ( e . target . files [ 0 ] ) {
223
+ code . setValue ( 'Reading from input file' )
224
+ code . setOption ( 'readOnly' , true )
225
+ removeBtn . classList . remove ( 'uk-disabled' )
226
+ } else {
227
+ console . log ( 'else is clicked' )
228
+ removeBtn . classList . add ( 'uk-disabled' )
229
+ }
183
230
} )
184
231
232
+ document . getElementById ( 'analyze' ) . addEventListener ( 'click' , analyzer )
185
233
onAnalyze ( code . getValue ( ) )
0 commit comments