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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
|
/* globals $ */
var smapi = smapi || {};
var app;
smapi.logParser = function (data, sectionUrl) {
// internal filter counts
var stats = data.stats = {
modsShown: 0,
modsHidden: 0
};
function updateModFilters() {
// counts
stats.modsShown = 0;
stats.modsHidden = 0;
for (var key in data.showMods) {
if (data.showMods.hasOwnProperty(key)) {
if (data.showMods[key])
stats.modsShown++;
else
stats.modsHidden++;
}
}
}
// set local time started
if (data)
data.localTimeStarted = ("0" + data.logStarted.getHours()).slice(-2) + ":" + ("0" + data.logStarted.getMinutes()).slice(-2);
// init app
app = new Vue({
el: '#output',
data: data,
computed: {
anyModsHidden: function () {
return stats.modsHidden > 0;
},
anyModsShown: function () {
return stats.modsShown > 0;
}
},
methods: {
toggleLevel: function (id) {
if (!data.enableFilters)
return;
this.showLevels[id] = !this.showLevels[id];
},
toggleMod: function (id) {
if (!data.enableFilters)
return;
var curShown = this.showMods[id];
// first filter: only show this by default
if (stats.modsHidden === 0) {
this.hideAllMods();
this.showMods[id] = true;
}
// unchecked last filter: reset
else if (stats.modsShown === 1 && curShown)
this.showAllMods();
// else toggle
else
this.showMods[id] = !this.showMods[id];
updateModFilters();
},
toggleSection: function (name) {
if (!data.enableFilters)
return;
this.showSections[name] = !this.showSections[name];
},
showAllMods: function () {
if (!data.enableFilters)
return;
for (var key in this.showMods) {
if (this.showMods.hasOwnProperty(key)) {
this.showMods[key] = true;
}
}
updateModFilters();
},
hideAllMods: function () {
if (!data.enableFilters)
return;
for (var key in this.showMods) {
if (this.showMods.hasOwnProperty(key)) {
this.showMods[key] = false;
}
}
updateModFilters();
},
filtersAllow: function (modId, level) {
return this.showMods[modId] !== false && this.showLevels[level] !== false;
},
sectionsAllow: function (section) {
return this.showSections[section] !== false;
}
}
});
/**********
** Upload form
*********/
var input = $("#input");
if (input.length) {
// file upload
smapi.fileUpload({
chooseFileLink: $("#choose-file-link"),
chooseFileInput: $("#inputFile"),
contentArea: input,
submitButton: $("#submit")
});
}
};
|