Skip to content

Commit 15bc073

Browse files
committed
[feature] Show only manual game events by default, with a show-all btn
1 parent 60fd0a6 commit 15bc073

File tree

3 files changed

+307
-129
lines changed

3 files changed

+307
-129
lines changed

src/components/events/Events.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
:per-page="perPage">
1111
</b-pagination>
1212

13-
<b-btn v-b-modal.new-event-modal size="sm" variant="primary">New</b-btn>
13+
<b-btn v-b-modal.new-event-modal size="sm" variant="primary">New Event</b-btn>
1414
<b-modal id="new-event-modal"
1515
title="New Game Event"
1616
:lazy="true">
@@ -20,7 +20,7 @@
2020
</div>
2121
</b-modal>
2222

23-
<b-btn v-b-modal.event-behavior-modal size="sm" variant="primary">Behaviors</b-btn>
23+
<b-btn v-b-modal.event-behavior-modal size="sm" variant="primary">Configure Behaviors</b-btn>
2424
<b-modal id="event-behavior-modal"
2525
title="Game Event Behaviors"
2626
:lazy="true">

src/components/events/NewEvent.vue

Lines changed: 113 additions & 127 deletions
Original file line numberDiff line numberDiff line change
@@ -2,146 +2,132 @@
22
<div>
33
<p>
44
Choose a game event and issue it in the current match. Most events are usually issued automatically
5-
by automatic referees, but for testing purposes and manual corrections, events can be added here, too.
5+
by automatic referees,
6+
but for testing purposes and manual corrections,
7+
events can be added here,
8+
too.
69
Only a subset of available parameters is presented here.
710
</p>
8-
<b-card no-body class="mb-1">
9-
<b-card-header header-tag="header" class="p-1" role="tab">
10-
<b-btn block href="#" v-b-toggle.accordion-event-match-proceeding variant="primary">Match proceeding
11-
</b-btn>
12-
</b-card-header>
13-
<b-collapse id="accordion-event-match-proceeding" accordion="accordion-event-category" role="tabpanel">
14-
<b-card-body>
15-
<p class="card-text">
16-
<EventAccordion accordion-name="match-proceeding" :categories="matchProceedingEvents"/>
17-
</p>
18-
</b-card-body>
19-
</b-collapse>
20-
</b-card>
21-
<b-card no-body class="mb-1">
22-
<b-card-header header-tag="header" class="p-1" role="tab">
23-
<b-btn block href="#" v-b-toggle.accordion-event-ball-left-field variant="primary">Ball left field
24-
</b-btn>
25-
</b-card-header>
26-
<b-collapse id="accordion-event-ball-left-field" accordion="accordion-event-category" role="tabpanel">
27-
<b-card-body>
28-
<EventAccordion accordion-name="ball-left-field" :categories="ballLeftFieldEvents"/>
29-
</b-card-body>
30-
</b-collapse>
31-
</b-card>
32-
<b-card no-body class="mb-1">
33-
<b-card-header header-tag="header" class="p-1" role="tab">
34-
<b-btn block href="#" v-b-toggle.accordion-event-minor-offense variant="primary">Minor Offense</b-btn>
35-
</b-card-header>
36-
<b-collapse id="accordion-event-minor-offense" accordion="accordion-event-category" role="tabpanel">
37-
<b-card-body>
38-
<p class="card-text">
39-
<EventAccordion accordion-name="minor-offense" :categories="minorOffenseEvents"/>
40-
</p>
41-
</b-card-body>
42-
</b-collapse>
43-
</b-card>
44-
<b-card no-body class="mb-1">
45-
<b-card-header header-tag="header" class="p-1" role="tab">
46-
<b-btn block href="#" v-b-toggle.accordion-event-foul variant="primary">Foul</b-btn>
47-
</b-card-header>
48-
<b-collapse id="accordion-event-foul" accordion="accordion-event-category" role="tabpanel">
49-
<b-card-body>
50-
<p class="card-text">
51-
<EventAccordion accordion-name="foul" :categories="foulEvents"/>
52-
</p>
53-
</b-card-body>
54-
</b-collapse>
55-
</b-card>
56-
<b-card no-body class="mb-1">
57-
<b-card-header header-tag="header" class="p-1" role="tab">
58-
<b-btn block href="#" v-b-toggle.accordion-event-repeated-foul variant="primary">Repeated Events</b-btn>
59-
</b-card-header>
60-
<b-collapse id="accordion-event-repeated-foul" accordion="accordion-event-category" role="tabpanel">
61-
<b-card-body>
62-
<p class="card-text">
63-
<EventAccordion accordion-name="repeated-foul" :categories="repeatedEvents"/>
64-
</p>
65-
</b-card-body>
66-
</b-collapse>
67-
</b-card>
68-
<b-card no-body class="mb-1">
69-
<b-card-header header-tag="header" class="p-1" role="tab">
70-
<b-btn block href="#" v-b-toggle.accordion-event-unsporting-behavior variant="primary">Unsporting Behavior</b-btn>
71-
</b-card-header>
72-
<b-collapse id="accordion-event-unsporting-behavior" accordion="accordion-event-category" role="tabpanel">
73-
<b-card-body>
74-
<p class="card-text">
75-
<EventAccordion accordion-name="unsporting-behavior" :categories="unsportingBehaviorEvents"/>
76-
</p>
77-
</b-card-body>
78-
</b-collapse>
79-
</b-card>
11+
<div v-if="!showAll">
12+
<EventAccordion accordion-name="all" :categories="allManualEvents"/>
13+
<b-btn variant="primary" @click="showAll=true">Show all</b-btn>
14+
</div>
15+
<div v-if="showAll">
16+
<b-card no-body class="mb-1">
17+
<b-card-header header-tag="header" class="p-1" role="tab">
18+
<b-btn block href="#" v-b-toggle.accordion-event-match-proceeding variant="primary">Match proceeding
19+
</b-btn>
20+
</b-card-header>
21+
<b-collapse id="accordion-event-match-proceeding" accordion="accordion-event-category" role="tabpanel">
22+
<b-card-body>
23+
<p class="card-text">
24+
<EventAccordion accordion-name="match-proceeding" :categories="matchProceedingEvents"/>
25+
</p>
26+
</b-card-body>
27+
</b-collapse>
28+
</b-card>
29+
<b-card no-body class="mb-1">
30+
<b-card-header header-tag="header" class="p-1" role="tab">
31+
<b-btn block href="#" v-b-toggle.accordion-event-ball-left-field variant="primary">Ball left field
32+
</b-btn>
33+
</b-card-header>
34+
<b-collapse id="accordion-event-ball-left-field" accordion="accordion-event-category" role="tabpanel">
35+
<b-card-body>
36+
<EventAccordion accordion-name="ball-left-field" :categories="ballLeftFieldEvents"/>
37+
</b-card-body>
38+
</b-collapse>
39+
</b-card>
40+
<b-card no-body class="mb-1">
41+
<b-card-header header-tag="header" class="p-1" role="tab">
42+
<b-btn block href="#" v-b-toggle.accordion-event-minor-offense variant="primary">Minor Offense
43+
</b-btn>
44+
</b-card-header>
45+
<b-collapse id="accordion-event-minor-offense" accordion="accordion-event-category" role="tabpanel">
46+
<b-card-body>
47+
<p class="card-text">
48+
<EventAccordion accordion-name="minor-offense" :categories="minorOffenseEvents"/>
49+
</p>
50+
</b-card-body>
51+
</b-collapse>
52+
</b-card>
53+
<b-card no-body class="mb-1">
54+
<b-card-header header-tag="header" class="p-1" role="tab">
55+
<b-btn block href="#" v-b-toggle.accordion-event-foul variant="primary">Foul</b-btn>
56+
</b-card-header>
57+
<b-collapse id="accordion-event-foul" accordion="accordion-event-category" role="tabpanel">
58+
<b-card-body>
59+
<p class="card-text">
60+
<EventAccordion accordion-name="foul" :categories="foulEvents"/>
61+
</p>
62+
</b-card-body>
63+
</b-collapse>
64+
</b-card>
65+
<b-card no-body class="mb-1">
66+
<b-card-header header-tag="header" class="p-1" role="tab">
67+
<b-btn block href="#" v-b-toggle.accordion-event-repeated-foul variant="primary">Repeated Events
68+
</b-btn>
69+
</b-card-header>
70+
<b-collapse id="accordion-event-repeated-foul" accordion="accordion-event-category" role="tabpanel">
71+
<b-card-body>
72+
<p class="card-text">
73+
<EventAccordion accordion-name="repeated-foul" :categories="repeatedEvents"/>
74+
</p>
75+
</b-card-body>
76+
</b-collapse>
77+
</b-card>
78+
<b-card no-body class="mb-1">
79+
<b-card-header header-tag="header" class="p-1" role="tab">
80+
<b-btn block href="#" v-b-toggle.accordion-event-unsporting-behavior variant="primary">Unsporting
81+
Behavior
82+
</b-btn>
83+
</b-card-header>
84+
<b-collapse id="accordion-event-unsporting-behavior" accordion="accordion-event-category"
85+
role="tabpanel">
86+
<b-card-body>
87+
<p class="card-text">
88+
<EventAccordion accordion-name="unsporting-behavior"
89+
:categories="unsportingBehaviorEvents"/>
90+
</p>
91+
</b-card-body>
92+
</b-collapse>
93+
</b-card>
94+
</div>
8095
</div>
8196
</template>
8297

8398
<script>
8499
import EventAccordion from "./EventAccordion";
100+
import {
101+
ballLeftFieldEvents,
102+
foulEvents,
103+
matchProceedingEvents,
104+
minorOffenseEvents,
105+
repeatedEvents,
106+
unsportingBehaviorEvents
107+
} from "../../gameEvents";
85108
86109
export default {
87110
name: "NewEvent",
88111
components: {EventAccordion},
89112
data() {
90113
return {
91-
matchProceedingEvents: [
92-
{name: 'Prepared for kickoff or penalty kick', component: 'Prepared'},
93-
{name: 'No progress in game', component: 'NoProgressInGame'},
94-
{name: 'Placement failed by the team in favor', component: 'PlacementFailedByTeamInFavor'},
95-
{name: 'Placement failed by the opponent team', component: 'PlacementFailedByOpponent'},
96-
{name: 'Placement succeeded', component: 'PlacementSucceeded'},
97-
],
98-
ballLeftFieldEvents: [
99-
{name: 'via touch line', component: 'BallLeftFieldTouchLine'},
100-
{name: 'via goal line', component: 'BallLeftFieldGoalLine'},
101-
{name: 'Goal', component: 'Goal'},
102-
{name: 'Indirect Goal', component: 'IndirectGoal'},
103-
{name: 'Chipped Goal', component: 'ChippedGoal'},
104-
],
105-
minorOffenseEvents: [
106-
{name: 'Ball was kicked aimlessly', component: 'AimlessKick'},
107-
{name: 'Attacker failed to kick ball in time', component: 'KickTimeout'},
108-
{name: 'Keeper held the ball too long', component: 'KeeperHeldBall'},
109-
{name: 'Attacker double touched ball', component: 'AttackerDoubleTouchedBall'},
110-
{name: 'Attacker was in opponent defense area', component: 'AttackerInDefenseArea'},
111-
{name: 'Attacker touched keeper', component: 'AttackerTouchedKeeper'},
112-
{name: 'Ball was dribbled too far', component: 'BotDribbledBallTooFar'},
113-
{name: 'Ball was kicked too fast', component: 'BotKickedBallTooFast'},
114-
],
115-
foulEvents: [
116-
{
117-
name: 'Attacker was too close to defense area during free kick',
118-
component: 'AttackerTooCloseToDefenseArea'
119-
},
120-
{name: 'Opponent bot interfered ball placement procedure', component: 'BotInterferedPlacement'},
121-
{name: 'Two bots crashed with similar speeds', component: 'BotCrashDrawn'},
122-
{name: 'Bot crashed into another bot', component: 'BotCrashUnique'},
123-
{name: 'Bot crashed into another bot - decided to continue', component: 'BotCrashUniqueContinue'},
124-
{name: 'One bot pushed another one', component: 'BotPushedBot'},
125-
{name: 'One bot pushed another one - decided to continue', component: 'BotPushedBotContinue'},
126-
{name: 'Bot held ball deliberately', component: 'BotHeldBallDeliberately'},
127-
{name: 'A bot tipped over', component: 'BotTippedOver'},
128-
{name: 'Robot too fast during stop', component: 'BotTooFastInStop'},
129-
{name: 'Defender was too close to kick point', component: 'DefenderTooCloseToKickPoint'},
130-
{
131-
name: 'Defender touched ball while partially inside defense area',
132-
component: 'DefenderInDefenseAreaPartially'
133-
},
134-
{name: 'Defender touched ball in defense area', component: 'DefenderInDefenseArea'},
135-
],
136-
repeatedEvents: [
137-
{name: 'Multiple cards', component: 'MultipleCards'},
138-
{name: 'Multiple placement failures', component: 'MultiplePlacementFailures'},
139-
{name: 'Multiple fouls', component: 'MultipleFouls'},
140-
],
141-
unsportingBehaviorEvents: [
142-
{name: 'Minor unsporting behavior', component: 'UnsportingBehaviorMinor'},
143-
{name: 'Major unsporting behavior', component: 'UnsportingBehaviorMajor'},
144-
]
114+
showAll: false,
115+
matchProceedingEvents: matchProceedingEvents,
116+
ballLeftFieldEvents: ballLeftFieldEvents,
117+
minorOffenseEvents: minorOffenseEvents,
118+
foulEvents: foulEvents,
119+
repeatedEvents: repeatedEvents,
120+
unsportingBehaviorEvents: unsportingBehaviorEvents,
121+
}
122+
},
123+
computed: {
124+
allEvents() {
125+
return matchProceedingEvents.concat(ballLeftFieldEvents, minorOffenseEvents, foulEvents, repeatedEvents, unsportingBehaviorEvents);
126+
},
127+
allManualEvents() {
128+
return this.allEvents.filter(function (category) {
129+
return category.type === 'manual'
130+
});
145131
}
146132
}
147133
}

0 commit comments

Comments
 (0)