33 class =" inner-calendar-container card bg-secondary"
44 :class =" expanded ? 'expanded' : 'minified'"
55 ref =" container" >
6- <div class =" flex between p-medium pb-small " >
6+ <div class =" flex between p-medium pb-2xsmall " >
77 <h2 class =" type-large color-text mb-none" >
88 Events
99 </h2 >
1717 <div class =" px-medium type-small mb-small" >
1818 <i >Includes unsanctioned events</i >
1919 </div >
20- <div v-if =" filtersOpen" class =" p-medium" >
21- <fieldset class =" row mb-xsmall" >
22- <legend >Types</legend >
20+ <div class =" px-medium pb-2xsmall" >
21+ <input v-model =" findInput" placeholder =" Find by name, location, details..." class =" search" />
22+ </div >
23+ <div v-if =" filtersOpen" class =" p-medium pt-2xsmall" >
24+ <div class =" row mb-2xsmall" >
2325 <div class =" flex middle col-sm-6" >
2426 <input type =" checkbox" id =" conference" v-model =" show.types.Conference" />
25- <label for =" conference" class =" ml-2xsmall" >Conference </label >
27+ <label for =" conference" class =" ml-2xsmall" >Conferences </label >
2628 </div >
2729 <div class =" flex middle col-sm-6" >
2830 <input type =" checkbox" id =" meetup" v-model =" show.types['Meet-up']" />
29- <label for =" meetup" class =" ml-2xsmall" >Meet-up </label >
31+ <label for =" meetup" class =" ml-2xsmall" >Meet-ups </label >
3032 </div >
3133 <div class =" flex middle col-sm-6" >
3234 <input type =" checkbox" id =" tutorial" v-model =" show.types.Tutorial" />
33- <label for =" tutorial" class =" ml-2xsmall" >Tutorial </label >
35+ <label for =" tutorial" class =" ml-2xsmall" >Tutorials </label >
3436 </div >
3537 <div class =" flex middle col-sm-6" >
3638 <input type =" checkbox" id =" workshop" v-model =" show.types.Workshop" />
37- <label for =" workshop" class =" ml-2xsmall" >Workshop </label >
39+ <label for =" workshop" class =" ml-2xsmall" >Workshops </label >
3840 </div >
39- </fieldset >
41+ </div >
4042 <div class =" flex middle col-sm-12" >
41- <input type =" checkbox" id =" past " v-model =" show.past " />
42- <label for =" past " class =" ml-2xsmall" >Show past events </label >
43+ <input type =" checkbox" id =" CFP " v-model =" show.types.CFP " />
44+ <label for =" CFP " class =" ml-2xsmall" >Call for Proposals </label >
4345 </div >
4446 <div class =" flex middle col-sm-12" >
45- <input type =" checkbox" id =" official " v-model =" show.officialOnly " />
46- <label for =" official " class =" ml-2xsmall" >Show only sanctioned events</label >
47+ <input type =" checkbox" id =" past " v-model =" show.past " />
48+ <label for =" past " class =" ml-2xsmall" >Past events</label >
4749 </div >
4850 <div class =" flex middle col-sm-12" >
49- <input type =" checkbox" id =" CFP " v-model =" show.types.CFP " />
50- <label for =" CFP " class =" ml-2xsmall" >List CFPs </label >
51+ <input type =" checkbox" id =" official " v-model =" show.officialOnly " />
52+ <label for =" official " class =" ml-2xsmall" >Only sanctioned events </label >
5153 </div >
5254 </div >
53- <!-- <div class="px-medium pb-small border-bottom-bg">
54- <input placeholder="Search by name, date, location..." class="search" />
55- </div> -->
5655 <h3 v-if =" loading" class =" type-medium px-small" >
5756 loading events...
5857 </h3 >
@@ -143,7 +142,8 @@ export default {
143142 },
144143 events: [],
145144 imgUrlParams: ' ?w=500&h=500' ,
146- selectedDate: new Date ()
145+ selectedDate: new Date (),
146+ findInput: ' '
147147 }),
148148 components: {
149149 CalendarIcon,
@@ -179,8 +179,13 @@ export default {
179179 ... event ,
180180 eventType: ' CFP'
181181 }))
182- if (this .show .types .CFP ) return [... cfps, ... events]
183- return events
182+
183+ const filterByString = (list ) => {
184+ if (this .findInput === ' ' ) return list
185+ return list .filter ((event ) => event .searchString .toLowerCase ().includes (this .findInput .toLowerCase ()))
186+ }
187+ if (this .show .types .CFP ) return filterByString ([... cfps, ... events])
188+ return filterByString (events)
184189 }
185190 },
186191 async mounted () {
@@ -191,6 +196,16 @@ export default {
191196 if (new Date (a .date ) < new Date (b .date )) return - 1
192197 return 1
193198 })
199+ .map ((event ) => ({
200+ ... event ,
201+ searchString: `
202+ ${ event .eventName }
203+ ${ event .description }
204+ ${ event .eventType }
205+ ${ event .location || ' ' }
206+ ${ event .link || ' ' }
207+ ${ this .getDateString (new Date (event .date ), new Date (event .dateEnd ))} `
208+ }))
194209 },
195210 methods: {
196211 isPast,
@@ -243,8 +258,8 @@ export default {
243258 }
244259 .search {
245260 width : 100% ;
246- padding : 0.25 rem ;
247- background-color : var ( --color-bg ) ;
261+ padding : 0.5 rem ;
262+ background-color : #00000033 ;
248263 color : var (--color-text );
249264 }
250265 .inner-calendar-container {
0 commit comments