@@ -139,6 +139,53 @@ export function main() {
139139 } , 10 ) ;
140140 } ) ;
141141 } ) ) ;
142+
143+ it ( 'should allow column templates' , injectAsync ( [ TestComponentBuilder , AsyncTestCompleter ] , ( tcb : TestComponentBuilder , async ) => {
144+ var template = '<div><ig-grid [(widgetId)]="gridID" [(options)]="opts1" [changeDetectionInterval]="cdi"></ig-grid></div>' ;
145+ tcb . overrideTemplate ( TestComponent , template )
146+ . createAsync ( TestComponent )
147+ . then ( ( fixture ) => {
148+ fixture . detectChanges ( ) ;
149+ fixture . componentInstance . data [ 0 ] . Age = 42 ;
150+ setTimeout ( ( ) => {
151+ fixture . detectChanges ( ) ;
152+ expect ( $ ( fixture . debugElement . nativeElement ) . find ( "#grid1 tr[data-id='1'] td[aria-describedby='grid1_Age']" ) . text ( ) )
153+ . toBe ( "Age: 42" ) ;
154+ async . done ( ) ;
155+ } , 10 ) ;
156+ } ) ;
157+ } ) ) ;
158+
159+ it ( 'should detect and apply changes of date columns to model' , injectAsync ( [ TestComponentBuilder , AsyncTestCompleter ] , ( tcb : TestComponentBuilder , async ) => {
160+ var template = '<div><ig-grid [(widgetId)]="gridID" [(options)]="opts1" [changeDetectionInterval]="cdi"></ig-grid></div>' ;
161+ tcb . overrideTemplate ( TestComponent , template )
162+ . createAsync ( TestComponent )
163+ . then ( ( fixture ) => {
164+ fixture . detectChanges ( ) ;
165+ $ ( fixture . debugElement . nativeElement ) . find ( "#grid1 tr[data-id='2'] td[aria-describedby='grid1_HireDate']" ) . click ( ) ;
166+ $ ( fixture . debugElement . nativeElement ) . find ( "#grid1" ) . igGridUpdating ( "setCellValue" , 2 , "HireDate" , "11/11/2016" ) ;
167+ $ ( fixture . debugElement . nativeElement ) . find ( "#grid1_container #grid1_updating_done" ) . click ( ) ;
168+ expect ( fixture . debugElement . componentInstance . data [ 1 ] . HireDate . getTime ( ) )
169+ . toBe ( new Date ( "11/11/2016" ) . getTime ( ) ) ;
170+ async . done ( ) ;
171+ } ) ;
172+ } ) ) ;
173+
174+ it ( 'should detect and apply changes of dates columns from model' , injectAsync ( [ TestComponentBuilder , AsyncTestCompleter ] , ( tcb : TestComponentBuilder , async ) => {
175+ var template = '<div><ig-grid [(widgetId)]="gridID" [(options)]="opts1" [changeDetectionInterval]="cdi"></ig-grid></div>' ;
176+ tcb . overrideTemplate ( TestComponent , template )
177+ . createAsync ( TestComponent )
178+ . then ( ( fixture ) => {
179+ fixture . detectChanges ( ) ;
180+ fixture . componentInstance . data [ 0 ] . HireDate = new Date ( "11/11/2016" ) ;
181+ setTimeout ( ( ) => {
182+ fixture . detectChanges ( ) ;
183+ expect ( $ ( fixture . debugElement . nativeElement ) . find ( "#grid1 tr:first td[aria-describedby='grid1_HireDate']" ) . text ( ) )
184+ . toBe ( "11/11/2016" ) ;
185+ async . done ( ) ;
186+ } , 10 ) ;
187+ } ) ;
188+ } ) ) ;
142189 } ) ;
143190}
144191
@@ -160,9 +207,9 @@ class TestComponent {
160207 this . gridID = "grid1" ;
161208 this . cdi = 0 ;
162209 this . data = [
163- { "Id" : 1 , "Name" : "John Smith" , "Age" : 45 } ,
164- { "Id" : 2 , "Name" : "Mary Johnson" , "Age" : 32 } ,
165- { "Id" : 3 , "Name" : "Bob Ferguson" , "Age" : 27 }
210+ { "Id" : 1 , "Name" : "John Smith" , "Age" : 45 , "HireDate" : "\/Date(704678400000)\/" } ,
211+ { "Id" : 2 , "Name" : "Mary Johnson" , "Age" : 32 , "HireDate" : "\/Date(794678400000)\/" } ,
212+ { "Id" : 3 , "Name" : "Bob Ferguson" , "Age" : 27 , "HireDate" : "\/Date(834678400000)\/" }
166213 ]
167214 this . opts = {
168215 primaryKey : "Id" ,
@@ -175,7 +222,19 @@ class TestComponent {
175222
176223 this . opts1 = {
177224 dataSource : this . data ,
178- height : "300px"
225+ height : "300px" ,
226+ autoGenerateColumns : false ,
227+ primaryKey : "Id" ,
228+ columns : [
229+ { key : "Id" , headerText : "Id" , dataType : "number" , hidden : true } ,
230+ { key : "Name" , headerText : "Name" , dataType : "string" , width : "100px" } ,
231+ { key : "Age" , headerText : "Age" , dataType : "number" , width : "100px" , template : "Age: ${Age}" } ,
232+ { key : "HireDate" , headerText : "HireDate" , dataType : "date" , width : "100px" } ,
233+ ] ,
234+ autoCommit : true ,
235+ features : [
236+ { name : "Updating" }
237+ ]
179238 } ;
180239 }
181240
0 commit comments