-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.coffee
More file actions
44 lines (37 loc) · 1.37 KB
/
index.coffee
File metadata and controls
44 lines (37 loc) · 1.37 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
dropZone = document.getElementById 'drop-zone'
# Prevent default behaviors for dragover and drop events
dropZone.addEventListener 'dragover', (e) ->
e.preventDefault()
dropZone.classList.add 'dragover'
dropZone.addEventListener 'dragleave', ->
dropZone.classList.remove 'dragover'
dropZone.addEventListener 'drop', (e) ->
e.preventDefault()
dropZone.classList.remove 'dragover'
# Get the dropped file
file = e.dataTransfer.files[0]
if file
reader = new FileReader()
reader.onload = (event) ->
xmlText = event.target.result
xmlParser = new DOMParser()
xml = xmlParser.parseFromString xmlText, "application/xml"
showTable xml, file.name
reader.readAsText file
showTable = (xml, fileName) ->
originalTexts = xml.documentElement.getElementsByTagName "originalText"
data = Array.from(originalTexts).map (originalText) ->
elementName = originalText.nodeName
text = originalText.textContent
treeHierarki = Array.from(originalText.parentElement.children).map((child) -> child.nodeName).join " > "
[elementName, text, treeHierarki, fileName]
getPathway = (element) ->
path = []
while element
path.unshift element.nodeName
element = element.parentElement
path.join " > "
new gridjs.Grid(
columns: ['Element', 'Text', 'Tree hierarki', 'File name']
data: data
).render document.getElementById 'table'