-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathlogparser.html
More file actions
190 lines (169 loc) · 9.03 KB
/
Copy pathlogparser.html
File metadata and controls
190 lines (169 loc) · 9.03 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
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
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
<!DOCTYPE html>
<html>
<head>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-115047347-1"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-115047347-1');
</script>
<meta charset="UTF-8">
<link rel="stylesheet" type="text/css" href="Tools/LogsParser/logsparser.css"/>
<title>Log Parser</title>
</head>
<body>
<div class="page-settings">
<input data-bind="value: reportKey" placeholder="Report Link/Key" />
<button class="button grey large" data-bind="css: {active: mode() == 'buffs'}, click: function(){mode('buffs')}">Buffs</button>
<button class="button grey large" data-bind="css: {active: mode() == 'defensives'}, click: function(){mode('defensives')}">Defensives</button>
</div>
<div class="help">
<div data-bind="visible: mode() == 'buffs'">
<p>
Enter a report link/key to load. Each column corresponds to a boss and will include all attempts on the boss. By default, the colored bars represent the percentage of attempts for the boss for which the player had each aura. Click an encounter with multiple attempts to expand it, and the bars become a yes or no.
</p>
<br>
<p>
<strong class="metric battlerune">Runes</strong> are based on if the player had a 'Veiled Augmentation' or 'Eternal Augmentation' buff at the start of the attempt.
</p>
<p>
<strong class="metric prepot">Pre Pots</strong> are based on if the player had a 9.2 potion buff in the first 30 seconds of the attempt.
</p>
<p>
<strong class="metric combatpot">Combat Pots</strong> are if the player used a 9.2 potion any point during a fight EXCEPT the first 30 seconds of the attempt.
</p>
<p>
<strong class="metric healthstone">Healthstone</strong> is based on if the player casted a health stone at any point during a fight.
</p>
<p>
<strong class="metric healingpotion">Healing Potion</strong> is based on if the player casted a 'Spiritual Healing Potion' or a 'Cosmic Healing Potion' at any point during a fight.
</p>
<br>
<p>
<strong class="metric missed">Red Cells</strong> indicate a player was missing for the attempt/encounter.
</p>
</div>
<div data-bind="visible: mode() == 'defensives'">
<p>
Enter a report link/key to load. Each column corresponds to a boss and will include all attempts on the boss. Some abilities are specific to one or more specs and will list the spec name next to the ability. If a player switches specs during a boss, all abilities for that class will be shown.
</p>
<br>
<p>
Click on a player name to collapse the abilities for that player.
</p>
</div>
</div>
<!-- ko if: mode() == 'buffs' -->
<div style="display: none" class="container buffs_mode" data-bind="with: report, visible: report()">
<div class="controls">
<button class="button small grey" data-bind="toggleClick: $root.showBattleRune, css: {active: $root.showBattleRune}">Rune</button>
<button class="button small orange" data-bind="toggleClick: $root.showPrePot, css: {active: $root.showPrePot}">Pr. Pot</button>
<button class="button small red" data-bind="toggleClick: $root.showCombatPot, css: {active: $root.showCombatPot}">Co. Pot</button>
<button class="button small blue" data-bind="toggleClick: $root.showCastedHealthStone, css: {active: $root.showCastedHealthStone}">Healthstone</button>
<button class="button small green" data-bind="toggleClick: $root.showCastedHealingPotion, css: {active: $root.showCastedHealingPotion}">H. Potion</button>
</div>
<!-- ko foreach: bosses -->
<!-- ko if: expanded -->
<!-- ko foreach: fights -->
<div class="boss-icon" data-bind="css: {kill: kill, wipe: !kill}, click: $parent.toggleExpand, style: {cursor: $parent.canExpand ? 'pointer' : ''}">
<img data-bind="attr: {src: $parent.bossIconUrl, title: name}" />
<span class="bosspercent" data-bind="text: (bossPercentage/100).toFixed(0) + '%', visible: !kill"></span>
</div>
<!-- /ko -->
<!-- /ko -->
<!-- ko ifnot: expanded -->
<div class="boss-icon" data-bind="css: killClass, click: toggleExpand, style: {cursor: canExpand ? 'pointer' : ''}">
<img data-bind="attr: {src: bossIconUrl, title: name}" />
<span class="attemptcount" data-bind="text: fights().length"></span>
<span class="bosspercent" data-bind="text: (bossPercentage()/100).toFixed(0) + '%', visible: killClass == 'wipe'"></span>
</div>
<!-- /ko -->
<!-- /ko -->
<!-- ko foreach: sortedPlayers -->
<div class="nameblock" data-bind="text: name, css: type, style: {'grid-row': $index() + 2}"></div>
<!-- ko foreach: fightModels -->
<!-- ko if: boss.expanded -->
<!-- ko foreach: personalFights -->
<div class="block" data-bind="style: {'grid-row': $parentContext.$parentContext.$index() + 2}, css: {missed: wasMissing}">
<!-- ko if: $root.showBattleRune -->
<div class="metric battlerune" data-bind="style: {height: hasBattleRune() ? '100%' : '0%'}"></div>
<!-- /ko -->
<!-- ko if: $root.showPrePot -->
<div class="metric prepot" data-bind="style: {height: hasPrePot() ? '100%' : '0%'}"></div>
<!-- /ko -->
<!-- ko if: $root.showCombatPot -->
<div class="metric combatpot" data-bind="style: {height: hasCombatPot() ? '100%' : '0%'}"></div>
<!-- /ko -->
<!-- ko if: $root.showCastedHealthStone -->
<div class="metric healthstone" data-bind="style: {height: castedHealthStone() ? '100%' : '0%'}"></div>
<!-- /ko -->
<!-- ko if: $root.showCastedHealingPotion -->
<div class="metric healingpotion" data-bind="style: {height: castedHealingPotion() ? '100%' : '0%'}"></div>
<!-- /ko -->
</div>
<!-- /ko -->
<!-- /ko -->
<!-- ko ifnot: boss.expanded -->
<div class="block" data-bind="style: {'grid-row': $parentContext.$index() + 2}, css: {missed: missedEncounter}">
<!-- ko if: $root.showBattleRune -->
<div class="metric battlerune" data-bind="style: {height: battleRunePercent() + '%'}, attr: {title: Math.floor(battleRunePercent()) + '%'}"></div>
<!-- /ko -->
<!-- ko if: $root.showPrePot -->
<div class="metric prepot" data-bind="style: {height: prePotPercent() + '%'}, attr: {title: Math.floor(prePotPercent()) + '%'}"></div>
<!-- /ko -->
<!-- ko if: $root.showCombatPot -->
<div class="metric combatpot" data-bind="style: {height: combatPotPercent() + '%'}, attr: {title: Math.floor(combatPotPercent()) + '%'}"></div>
<!-- /ko -->
<!-- ko if: $root.showCastedHealthStone -->
<div class="metric healthstone" data-bind="style: {height: castedHealthStonePercent() + '%'}, attr: {title: Math.floor(castedHealthStonePercent()) + '%'}"></div>
<!-- /ko -->
<!-- ko if: $root.showCastedHealingPotion -->
<div class="metric healingpotion" data-bind="style: {height: castedHealingPotionPercent() + '%'}, attr: {title: Math.floor(castedHealingPotionPercent()) + '%'}"></div>
<!-- /ko -->
</div>
<!-- /ko -->
<!-- /ko -->
<!-- /ko -->
</div>
<!-- /ko -->
<!-- ko if: mode() == 'defensives' -->
<div style="display: none" class="container defensives_mode" data-bind="with: report, visible: report()">
<div class="controls">
<button class="button blue" data-bind="click: collapseButtonClick, text: collapseButtonText"></button>
</div>
<!-- ko foreach: bosses -->
<div class="boss-icon" data-bind="css: killClass">
<img data-bind="attr: {src: bossIconUrl, title: name}" />
<span class="attemptcount" data-bind="text: fights().length"></span>
<span class="bosspercent" data-bind="text: (bossPercentage()/100).toFixed(0) + '%', visible: killClass == 'wipe'"></span>
</div>
<!-- /ko -->
<!-- ko foreach: sortedPlayers -->
<div class="nameblock" data-bind="style: {'grid-row': $index() + 2}">
<span class="header" data-bind="text: name + (expandAbilities() ? '' : '...'), css: type, toggleClick: expandAbilities" style="grid-row: 1; cursor: pointer"></span>
<!-- ko if: expandAbilities -->
<!-- ko foreach: abilityModels -->
<span data-bind="text: ability.displayName, style: {'grid-row': $index() + 2}"></span>
<!-- /ko -->
<!-- /ko -->
</div>
<!-- ko foreach: fightModels -->
<div class="block" data-bind="style: {'grid-row': $parentContext.$index() + 2}">
<span class="header" data-bind="text: defensiveUses" style="grid-row: 1"></span>
<!-- ko if: $parent.expandAbilities -->
<!-- ko foreach: abilityModels -->
<span data-bind="text: uses, style: {'grid-row': $index() + 2}"></span>
<!-- /ko -->
<!-- /ko -->
</div>
<!-- /ko -->
<!-- /ko -->
</div>
<!-- /ko -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script>
<script src="Tools/LogsParser/defensives.js"></script>
<script src="Tools/LogsParser/logsparser.js"></script>
</body>
</html>