@@ -11,11 +11,11 @@ let SelectAllTableDemoTpl = require('./templates/SelectAllTableDemo.html');
1111let MovieTableDemoTpl = require ( './templates/MovieTableDemo.html' ) ;
1212let TotalFooterTableDemoTpl = require ( './templates/TotalFooterTableDemo.html' ) ;
1313// Vendor
14- import { DateCell , BaseRenderer , NovoTableElement , NovoTableConfig , TextBoxControl , TablePickerControl , SelectControl , NovoDropdownCell } from './../../../../index' ;
14+ import { DateCell , PercentageCell , BaseRenderer , NovoTableElement , NovoTableConfig , TextBoxControl , TablePickerControl , SelectControl , NovoDropdownCell } from './../../../../index' ;
1515
1616const template = `
1717<div class="container">
18- <h1>Table <small><a target="_blank" href="https://bullhorn.github.io/novo-elements/blob/master/src/elements/table">(source)</a></small></h1>
18+ <h1>Table <small><a target="_blank" href="https://bullhorn.github.io/novo-elements/blob/master/src/elements/table">(source)</a></small></h1>
1919 <p>Tables allow users to view date in a tabular format and perform actions such as Sorting and Filtering. Different configuration are possible for pagination or infinite scroll. Feature to be added include: Custom Item Renderers, etc...</p>
2020 <h2>Types</h2>
2121
@@ -186,6 +186,12 @@ export class TableDemoComponent implements OnInit {
186186 filtering : true ,
187187 range : true
188188 } ,
189+ {
190+ title : '%' ,
191+ name : 'percent' ,
192+ ordering : true ,
193+ renderer : PercentageCell
194+ } ,
189195 {
190196 title : 'Salary' ,
191197 name : 'salary' ,
@@ -318,26 +324,32 @@ export class TableDemoComponent implements OnInit {
318324 ] ;
319325 this . editable = {
320326 columns : [
321- { title : 'Name' , name : 'name' , ordering : true , filtering : true , editor : new TablePickerControl ( { key : 'name' , config : { options : names } } ) } ,
322- { title : 'Job Type' , name : 'jobType' , ordering : true , filtering : true , editor : new SelectControl ( { key : 'jobType' , options : [ 'Freelance' , 'Contract' , 'Billable' ] } ) } ,
327+ {
328+ title : 'Name' , name : 'name' , ordering : true , filtering : true , editorType : 'TablePickerControl' , editorConfig : { key : 'name' , config : { options : names } }
329+ } ,
330+ {
331+ title : 'Job Type' , name : 'jobType' , ordering : true , filtering : true , editorType : 'SelectControl' , editorConfig : { key : 'jobType' , options : [ 'Freelance' , 'Contract' , 'Billable' ] }
332+ } ,
323333 {
324334 title : 'Rate' ,
325335 name : 'rate' ,
326336 ordering : true ,
327337 filtering : true ,
328- editor : new TextBoxControl ( {
338+ renderer : PercentageCell ,
339+ editorType : 'TextBoxControl' ,
340+ editorConfig : {
329341 key : 'rate' ,
330- type : 'currency ' ,
342+ type : 'percentage ' ,
331343 required : true ,
332344 interactions : [
333345 {
334346 event : 'change' ,
335347 script : ( form ) => {
336348 console . log ( 'Form Interaction Called!' , form ) ; // tslint:disable-line
337349 if ( form . value . rate ) {
338- if ( Number ( form . value . rate ) >= 1000 ) {
350+ if ( Number ( form . value . rate ) >= .75 ) {
339351 form . controls . rating . setValue ( 'High' ) ;
340- } else if ( Number ( form . value . rate ) >= 100 ) {
352+ } else if ( Number ( form . value . rate ) >= .50 ) {
341353 form . controls . rating . setValue ( 'Medium' ) ;
342354 } else {
343355 form . controls . rating . setValue ( 'Low' ) ;
@@ -346,14 +358,14 @@ export class TableDemoComponent implements OnInit {
346358 }
347359 }
348360 ]
349- } )
361+ }
350362 } ,
351363 { title : 'Rating' , name : 'rating' }
352364 ] ,
353365 rows : new ArrayCollection ( [
354366 { id : 1 , name : 'Joshua Godi' , jobType : 'Freelance' , rate : null , rating : 'Low' } ,
355- { id : 2 , name : 'Brian Kimball' , jobType : 'Contact' , rate : 100 , rating : 'Medium' } ,
356- { id : 3 , name : 'Kameron Sween' , jobType : 'Billable' , rate : 1000 , rating : 'High' }
367+ { id : 2 , name : 'Brian Kimball' , jobType : 'Contact' , rate : .50 , rating : 'Medium' } ,
368+ { id : 3 , name : 'Kameron Sween' , jobType : 'Billable' , rate : 1.00 , rating : 'High' }
357369 ] ) ,
358370 config : {
359371 paging : {
@@ -446,7 +458,7 @@ export class TableDemoComponent implements OnInit {
446458 // TODO - save data - fetch the data
447459 setTimeout ( ( ) => {
448460 table . displayToastMessage ( { icon : 'check' , theme : 'success' , message : 'Saved!' } , 2000 ) ;
449- table . leaveEditMode ( ) ;
461+ table . saveChanges ( ) ;
450462 } , 2000 ) ;
451463 } else {
452464 console . log ( 'ERRORS!' , errorsOrData ) ; // tslint:disable-line
0 commit comments