@@ -149,6 +149,28 @@ function inflateData(result){
149149 $ ( "#db-data-div" ) . remove ( ) ;
150150 $ ( "#parent-data-div" ) . append ( '<div id="db-data-div"><table class="display nowrap" cellpadding="0" border="0" cellspacing="0" width="100%" class="table table-striped table-bordered display" id="db-data"></table></div>' ) ;
151151
152+ var availableButtons ;
153+ if ( result . isEditable ) {
154+ availableButtons = [
155+ {
156+ text : 'Add' ,
157+ name : 'add' // don not change name
158+ } ,
159+ {
160+ extend : 'selected' , // Bind to Selected row
161+ text : 'Edit' ,
162+ name : 'edit' // do not change name
163+ } ,
164+ {
165+ extend : 'selected' ,
166+ text : 'Delete' ,
167+ name : 'delete'
168+ }
169+ ] ;
170+ } else {
171+ availableButtons = [ ] ;
172+ }
173+
152174 $ ( tableId ) . dataTable ( {
153175 "data" : columnData ,
154176 "columnDefs" : columnHeader ,
@@ -162,18 +184,7 @@ function inflateData(result){
162184 "dom" : "Bfrtip" ,
163185 select : 'single' ,
164186 altEditor : true , // Enable altEditor
165- buttons : [
166- {
167- extend : 'selected' , // Bind to Selected row
168- text : 'Edit' ,
169- name : 'edit' // do not change name
170- } ,
171- {
172- extend : 'selected' ,
173- text : 'Delete' ,
174- name : 'delete'
175- }
176- ]
187+ buttons : availableButtons
177188 } )
178189
179190 //attach row-updated listener
@@ -208,6 +219,24 @@ function inflateData(result){
208219 deleteTableData ( data , callback ) ;
209220 } ) ;
210221
222+
223+
224+ $ ( tableId ) . on ( 'add-row.dt' , function ( e , updatedRowData , callback ) {
225+ var deleteRowDataArray = JSON . parse ( updatedRowData ) ;
226+
227+ console . log ( deleteRowDataArray ) ;
228+
229+ //add value for each column
230+ var data = columnHeader ;
231+ for ( var i = 0 ; i < data . length ; i ++ ) {
232+ data [ i ] . value = deleteRowDataArray [ i ] . value ;
233+ data [ i ] . dataType = deleteRowDataArray [ i ] . dataType ;
234+ }
235+
236+ //send delete table data request to server
237+ addTableData ( data , callback ) ;
238+ } ) ;
239+
211240 // hack to fix alignment issue when scrollX is enabled
212241 $ ( ".dataTables_scrollHeadInner" ) . css ( { "width" :"100%" } ) ;
213242 $ ( ".table " ) . css ( { "width" :"100%" } ) ;
@@ -272,8 +301,6 @@ function deleteTableData(deleteData, callback) {
272301 }
273302 } ) ;
274303
275- console . log ( filteredUpdatedData ) ;
276-
277304 //build request parameters
278305 var requestParameters = { } ;
279306 requestParameters . dbName = selectedTableElement . attr ( 'data-db-name' ) ;
@@ -299,6 +326,48 @@ function deleteTableData(deleteData, callback) {
299326 } )
300327}
301328
329+ function addTableData ( deleteData , callback ) {
330+
331+ var selectedTableElement = $ ( "#table-list .list-group-item.selected" ) ;
332+ var filteredUpdatedData = deleteData . map ( function ( columnData ) {
333+ return {
334+ title : columnData . title ,
335+ isPrimary : columnData . isPrimary ,
336+ value : columnData . value ,
337+ dataType : columnData . dataType
338+ }
339+ } ) ;
340+
341+ console . log ( filteredUpdatedData ) ;
342+
343+ //build request parameters
344+ var requestParameters = { } ;
345+ requestParameters . dbName = selectedTableElement . attr ( 'data-db-name' ) ;
346+ requestParameters . tableName = selectedTableElement . attr ( 'data-table-name' ) ; ;
347+ requestParameters . addData = encodeURIComponent ( JSON . stringify ( filteredUpdatedData ) ) ;
348+
349+ console . log ( requestParameters ) ;
350+
351+ //execute request
352+ $ . ajax ( {
353+ url : "addTableData" ,
354+ type : 'GET' ,
355+ data : requestParameters ,
356+ success : function ( response ) {
357+ response = JSON . parse ( response ) ;
358+ if ( response . isSuccessful ) {
359+ console . log ( "Data Added successfully" ) ;
360+ callback ( true ) ;
361+ getData ( requestParameters . tableName ) ;
362+ showSuccessInfo ( "Data Added Successfully" ) ;
363+ } else {
364+ console . log ( "Data Adding failed" ) ;
365+ callback ( false ) ;
366+ }
367+ }
368+ } ) ;
369+ }
370+
302371function showSuccessInfo ( message ) {
303372 var snackbarId = "snackbar" ;
304373 var snackbarElement = $ ( "#" + snackbarId ) ;
0 commit comments