3
3
<h2 >Proposed Game Events</h2 >
4
4
<div class =" content" >
5
5
<span v-if =" !eventProposalsPresent" >None</span >
6
- <div v-if =" eventProposalsPresent" v-for =" (proposal, index) in eventProposals"
6
+ <div class =" proposal-item"
7
+ v-if =" eventProposalsPresent"
8
+ v-for =" (proposal, index) in eventProposals"
7
9
:key =" index" >
8
- <span :class =" {'team-blue': byTeam(proposal) === 2, 'team-yellow': byTeam(proposal) === 1}" >
9
- {{proposal.gameEvent.type}}
10
- </span >
10
+ <span :class =" {'team-blue': byTeam(proposal) === 2, 'team-yellow': byTeam(proposal) === 1}" >
11
+ {{proposal.gameEvent.type}}
12
+ </span >
11
13
<span >by {{proposal.proposerId}}</span >
12
14
(<span v-format-ns-duration =" proposalTimeout(proposal.validUntil)" ></span >):
13
15
<p >
14
16
<span v-for =" detail in detailsList(proposal)"
15
17
:key =" detail.key" >{{detail.key}}: {{detail.value}}<br /></span >
16
18
</p >
19
+ <a class =" btn-accept"
20
+ v-b-tooltip.hover
21
+ title =" Accept this game event"
22
+ @click =" accept(proposal.gameEvent)" >
23
+ <font-awesome-icon icon =" check-circle" class =" fa-lg" ></font-awesome-icon >
24
+ </a >
17
25
</div >
18
26
</div >
19
27
</div >
38
46
let key = Object .keys (proposal .gameEvent .details )[0 ];
39
47
return proposal .gameEvent .details [key];
40
48
},
41
- detailsStr (proposal ) {
42
- let p = this .details (proposal);
43
- delete p .by_team ;
44
- return p;
45
- },
46
49
detailsList (proposal ) {
47
50
let list = [];
48
51
let details = this .details (proposal);
49
- delete details .by_team ;
50
- Object .keys (details).forEach (function (key , i ) {
51
- list[i] = {key: key, value: details[key]}
52
+ let i = 0 ;
53
+ Object .keys (details).forEach (function (key ) {
54
+ if (key !== ' by_team' ) {
55
+ list[i++ ] = {key: key, value: details[key]};
56
+ }
52
57
});
53
58
return list;
54
59
},
68
73
}
69
74
return remaining * 1e6 ;
70
75
},
76
+ accept (gameEvent ) {
77
+ this .$socket .sendObj ({
78
+ gameEvent: gameEvent
79
+ });
80
+ },
71
81
}
72
82
}
73
83
</script >
78
88
overflow-y : auto ;
79
89
max-height : 15em ;
80
90
}
91
+
92
+ .proposal-item {
93
+ position : relative ;
94
+ }
95
+
96
+ .btn-accept {
97
+ position : absolute ;
98
+ right : 0 ;
99
+ bottom : 0 ;
100
+ margin : 0.3em ;
101
+ }
81
102
</style >
0 commit comments