@@ -56,6 +56,18 @@ export class MgtAgenda extends MgtTemplatedComponent {
5656 } )
5757 eventQuery : string ;
5858
59+ @property ( {
60+ attribute : 'show-max' ,
61+ type : Number
62+ } )
63+ showMax : number ;
64+
65+ @property ( {
66+ attribute : 'group-id' ,
67+ type : String
68+ } )
69+ groupId : string ;
70+
5971 static get styles ( ) {
6072 return styles ;
6173 }
@@ -83,7 +95,7 @@ export class MgtAgenda extends MgtTemplatedComponent {
8395 }
8496
8597 attributeChangedCallback ( name , oldValue , newValue ) {
86- if ( name === 'date' || name === 'days' ) {
98+ if ( oldValue !== newValue && ( name === 'date' || name === 'days' || name === 'group-id' ) ) {
8799 this . events = null ;
88100 this . loadData ( ) ;
89101 }
@@ -136,7 +148,11 @@ export class MgtAgenda extends MgtTemplatedComponent {
136148 let end = new Date ( ) ;
137149 end . setHours ( 0 , 0 , 0 , 0 ) ;
138150 end . setDate ( start . getDate ( ) + this . days ) ;
139- this . events = await p . graph . getEvents ( start , end ) ;
151+ try {
152+ this . events = await p . graph . getEvents ( start , end , this . groupId ) ;
153+ } catch ( error ) {
154+ // noop - possible error with graph
155+ }
140156 }
141157 this . _loading = false ;
142158 } else if ( p && p . state === ProviderState . Loading ) {
@@ -161,17 +177,19 @@ export class MgtAgenda extends MgtTemplatedComponent {
161177 }
162178
163179 if ( this . events ) {
164- let renderedTemplate = this . renderTemplate ( 'default' , { events : this . events } ) ;
180+ let events = this . showMax && this . showMax > 0 ? this . events . slice ( 0 , this . showMax ) : this . events ;
181+
182+ let renderedTemplate = this . renderTemplate ( 'default' , { events : events } ) ;
165183 if ( renderedTemplate ) {
166184 return renderedTemplate ;
167185 }
168186
169187 if ( this . groupByDay ) {
170188 let grouped = { } ;
171- for ( let i = 0 ; i < this . events . length ; i ++ ) {
172- let header = this . getDateHeaderFromDateTimeString ( this . events [ i ] . start . dateTime ) ;
189+ for ( let i = 0 ; i < events . length ; i ++ ) {
190+ let header = this . getDateHeaderFromDateTimeString ( events [ i ] . start . dateTime ) ;
173191 grouped [ header ] = grouped [ header ] || [ ] ;
174- grouped [ header ] . push ( this . events [ i ] ) ;
192+ grouped [ header ] . push ( events [ i ] ) ;
175193 }
176194
177195 return html `
@@ -192,7 +210,7 @@ export class MgtAgenda extends MgtTemplatedComponent {
192210 ` ;
193211 }
194212
195- return this . renderListOfEvents ( this . events ) ;
213+ return this . renderListOfEvents ( events ) ;
196214 } else {
197215 return this . renderTemplate ( 'no-data' , null ) || html `` ;
198216 }
0 commit comments