1+ <template >
2+ <div >
3+ <h2 >Current Game Events</h2 >
4+ <div class =" content" >
5+ <span v-if =" !gameEventsPresent" >None</span >
6+ <div class =" game-event-item"
7+ v-if =" gameEventsPresent"
8+ v-for =" (gameEvent, index) in gameEvents"
9+ :key =" index" >
10+ <span :class =" {'team-blue': byTeam(gameEvent) === 2, 'team-yellow': byTeam(gameEvent) === 1}" >
11+ {{gameEvent.type}}
12+ </span >
13+ <p >
14+ <span v-for =" detail in detailsList(gameEvent)"
15+ :key =" detail.key" >{{detail.key}}: {{detail.value}}<br /></span >
16+ </p >
17+ <div class =" btn-revoke"
18+ v-b-tooltip.hover.righttop =" 'Revoke this game event'" >
19+ <a @click =" revoke(index)" >
20+ <font-awesome-icon icon =" times-circle" class =" fa-lg" ></font-awesome-icon >
21+ </a >
22+ </div >
23+ </div >
24+ </div >
25+ </div >
26+ </template >
27+
28+ <script >
29+ export default {
30+ name: " CurrentEvents" ,
31+ computed: {
32+ state () {
33+ return this .$store .state .refBoxState
34+ },
35+ gameEvents () {
36+ return this .state .gameEvents ;
37+ },
38+ gameEventsPresent () {
39+ return this .gameEvents != null && this .gameEvents .length > 0 ;
40+ }
41+ },
42+ methods: {
43+ details (gameEvent ) {
44+ let key = Object .keys (gameEvent .details )[0 ];
45+ return gameEvent .details [key];
46+ },
47+ detailsList (gameEvent ) {
48+ let list = [];
49+ let details = this .details (gameEvent);
50+ let i = 0 ;
51+ Object .keys (details).forEach (function (key ) {
52+ if (key !== ' by_team' ) {
53+ list[i++ ] = {key: key, value: details[key]};
54+ }
55+ });
56+ return list;
57+ },
58+ byTeam (gameEvent ) {
59+ let details = this .details (gameEvent);
60+ if (details .hasOwnProperty (' by_team' )) {
61+ return details .by_team ;
62+ }
63+ return ' ' ;
64+ },
65+ revoke (index ) {
66+ this .$socket .sendObj ({
67+ " modify" : {" removeGameEvent" : index}
68+ });
69+ },
70+ }
71+ }
72+ </script >
73+
74+ <style scoped>
75+ .content {
76+ text-align : left ;
77+ overflow-y : auto ;
78+ max-height : 15em ;
79+ }
80+
81+ .game-event-item {
82+ position : relative ;
83+ min-height : 2em ;
84+ }
85+
86+ .btn-revoke {
87+ position : absolute ;
88+ right : 0 ;
89+ bottom : 0 ;
90+ margin : 0.3em ;
91+ }
92+ </style >
0 commit comments