33 <h2 >Proposed Game Events</h2 >
44 <div class =" content" >
55 <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"
79 :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 >
1113 <span >by {{proposal.proposerId}}</span >
1214 (<span v-format-ns-duration =" proposalTimeout(proposal.validUntil)" ></span >):
1315 <p >
1416 <span v-for =" detail in detailsList(proposal)"
1517 :key =" detail.key" >{{detail.key}}: {{detail.value}}<br /></span >
1618 </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 >
1725 </div >
1826 </div >
1927 </div >
3846 let key = Object .keys (proposal .gameEvent .details )[0 ];
3947 return proposal .gameEvent .details [key];
4048 },
41- detailsStr (proposal ) {
42- let p = this .details (proposal);
43- delete p .by_team ;
44- return p;
45- },
4649 detailsList (proposal ) {
4750 let list = [];
4851 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+ }
5257 });
5358 return list;
5459 },
6873 }
6974 return remaining * 1e6 ;
7075 },
76+ accept (gameEvent ) {
77+ this .$socket .sendObj ({
78+ gameEvent: gameEvent
79+ });
80+ },
7181 }
7282 }
7383 </script >
7888 overflow-y : auto ;
7989 max-height : 15em ;
8090 }
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+ }
81102 </style >
0 commit comments