-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscript.js
More file actions
90 lines (70 loc) · 1.9 KB
/
Copy pathscript.js
File metadata and controls
90 lines (70 loc) · 1.9 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
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
let jsonLexer = null,
jsonParser = null;
let $ = document.querySelector.bind(document),
wrapper = null;
let tree = null;
function init() {
jsonLexer = new JSONLexer();
jsonParser = new JSONParser();
let json = {"testing": "json"};
wrapper = $('#wrapper');
tree = jsonTree.create(json, wrapper);
tree.expand();
/*fetch('https://api.github.com/users/yoksanherlie')
.then(response => response.text())
.then(res => {
let lexResult = jsonLexer.lex(res);
let json = jsonParser.parse(lexResult);
});*/
}
$('#source_text').addEventListener('input', () => {
let source = $('#source_text').value;
let lexResult = jsonLexer.lex(source);
let result = jsonParser.parse(lexResult);
if (result) {
tree.loadData(result);
} else {
console.log('error');
console.log(result);
}
});
$('#load_from_url').addEventListener('click', () => {
$('#modal_url').classList.add('active');
});
$('#load_url_button').addEventListener('click', () => {
fetchFromUrl($('#load_url').value);
});
function fetchFromUrl(url) {
fetch(url)
.then(response => response.text())
.then(res => {
let lexResult = jsonLexer.lex(res);
let result = jsonParser.parse(lexResult);
if (result) {
tree.loadData(result);
$('#source_text').value = res;
$('#modal_url').classList.remove('active');
$('#load_url').value = '';
}
})
}
function showErrorModal(msg) {
let modal = $('.error-modal.modal-template').cloneNode();
let allOtherModal = document.querySelectorAll('.error-modal.active');
let len = allOtherModal.length;
allOtherModal.forEach((el, i) => {
let top = (len - i) * 120 + 50;
el.style.top = `${top}px`;
});
modal.innerHTML = msg;
modal.classList.remove('modal-template');
$('body').appendChild(modal);
setTimeout(() => {
modal.classList.add('active');
}, 100);
setTimeout(() => {
modal.classList.remove('active');
$('body').removeChild(modal);
}, 3000);
}
window.onload = init();