-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.js
98 lines (82 loc) · 3.05 KB
/
main.js
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
function toggleExpandedState(el) {
var cls = el.className || 'collapsed';
el.className = cls.indexOf('collapsed') !== -1
? cls.replace('collapsed', 'expanded')
: cls.replace('expanded', 'collapsed');
}
// eslint-disable-next-line no-unused-vars
function toggleMenu() {
toggleExpandedState(document.getElementById('title-menu'));
}
window.onload = function() {
var html = '',
groups = Ext.samples.samplesCatalog,
ln = groups.length,
i = 0,
groupIndex = 0,
bodyEl = document.getElementById('body'),
group, example, j, examples, expanded, exampleLn;
function addListener(element, eventName, handler) {
if (element.addEventListener) {
element.addEventListener(eventName, handler, false);
}
else {
element.attachEvent('on' + eventName, handler);
}
}
for (; i < ln; i++) {
group = groups[i];
expanded = (groupIndex < 2);
html +=
'<div class="group-header ' + (expanded ? 'expanded' : 'collapsed') + '">' +
'<div class="wrap">' +
'<a class="group-title" href="javascript:void(0);">' + group.title + '</a>' +
'</div>' +
'</div>' +
'<div class="group">' +
'<div class="wrap">';
examples = group.items;
exampleLn = examples.length;
for (j = 0; j < exampleLn; j++) {
example = examples[j];
html +=
'<a class="example" target="_blank" href="' + example.url + '">' +
'<div class="example-icon icon-' + example.icon + '"></div>' +
'<div class="example-text-wrap">' +
'<div class="example-text-wrap-inner">' +
'<div class="example-title">' + example.text + '</div>' +
'<div class="example-description">' + example.desc + '</div>' +
'</div>' +
'</div>' +
'</a>';
}
html +=
'</div>' + // end wrap
'</div>'; // end group
++groupIndex;
}
bodyEl.innerHTML = html;
addListener(document.body, 'click', function(e) {
var target = e.target || e.srcElement,
groupHeaderClicked = false;
while (target) {
if (target.className && target.className.indexOf('group-header') !== -1) {
groupHeaderClicked = true;
break;
}
target = target.parentNode;
}
if (groupHeaderClicked) {
// Prevent click handling when fired from <a>
if (e.preventDefault) {
e.preventDefault();
}
toggleExpandedState(target);
// IE8 needs a repaint of the body el to trigger the stylesheet rules that hide
// and show the group
// eslint-disable-next-line no-self-assign
bodyEl.className = bodyEl.className;
return false;
}
});
};