@@ -8,8 +8,30 @@ Copyright (c) 2019 - present AppSeed.us
88const doc = document ;
99doc . addEventListener ( "DOMContentLoaded" , function ( event ) {
1010
11+ // Used for API Requests
1112 var xhr1 = new XMLHttpRequest ( ) ;
1213
14+ // Toasts
15+ const notyf = new Notyf ( {
16+ position : {
17+ x : 'right' ,
18+ y : 'top' ,
19+ } ,
20+ types : [
21+ {
22+ type : 'info' ,
23+ background : '#FA5252' ,
24+ icon : {
25+ className : 'fas fa-comment-dots' ,
26+ tagName : 'span' ,
27+ color : '#fff'
28+ } ,
29+ dismissible : false
30+ }
31+ ]
32+ } ) ;
33+
34+ // Used by cell edit
1335 document . addEventListener ( 'keydown' , event => {
1436
1537 // Catch 'ENTER' event
@@ -20,32 +42,35 @@ doc.addEventListener("DOMContentLoaded", function(event) {
2042
2143 // Drop the default event
2244 event . preventDefault ( ) ;
23-
24- // Log the clicked element in the console
25- // console.log(event.target);
26- console . log ( 'EVENT -> Cell Save' ) ;
27-
45+
2846 let td = event . target ;
2947 let tr = event . target . closest ( 'tr.editable' ) ;
3048
3149 let data_id = tr . dataset . id ;
3250 let data_name = td . dataset . name ;
3351 let data_value = td . textContent ;
3452
35- console . log ( ' >> Save Data [' + data_id + '] ' + data_name + ' = [' + data_value + ']' ) ;
36-
3753 xhr1 . open ( "PUT" , "/api/data/field/" + data_id ) ;
3854 xhr1 . setRequestHeader ( "Content-Type" , "application/json" ) ;
3955
4056 // Check Status
4157 xhr1 . onreadystatechange = function ( ) {
4258
4359 if ( this . status == 200 && this . readyState == 4 ) {
44- console . log ( ' >>> Editing OK' ) ;
60+
61+ notyf . open ( {
62+ type : 'success' ,
63+ message : 'Information saved successfully'
64+ } ) ;
4565 }
4666
47- if ( this . status != 200 ) {
48- console . log ( ' >>> Editing ERR ' + this . status ) ;
67+ // XMLHttpRequest returns 0 on success
68+ if ( ( this . status > 0 ) && ( this . status != 200 ) ) {
69+
70+ notyf . open ( {
71+ type : 'error' ,
72+ message : 'Error!'
73+ } ) ;
4974 }
5075
5176 } ; //end onreadystate
@@ -70,18 +95,12 @@ doc.addEventListener("DOMContentLoaded", function(event) {
7095 // Drop the default event
7196 event . preventDefault ( ) ;
7297
73- // Log the clicked element in the console
74- // console.log(event.target);
75- console . log ( 'EVENT -> Cell Edit' ) ;
76-
7798 let td = event . target ;
7899 let tr = event . target . closest ( 'tr.editable' ) ;
79100
80101 let data_id = tr . dataset . id ;
81102 let data_name = td . dataset . name ;
82-
83- console . log ( ' >> Edit Data ' + data_id + ' -> ' + data_name ) ;
84-
103+
85104 // Enable 'EDITABLE' property
86105 td . setAttribute ( "contenteditable" , "true" ) ;
87106 }
@@ -92,26 +111,31 @@ doc.addEventListener("DOMContentLoaded", function(event) {
92111 // Drop the default event
93112 event . preventDefault ( ) ;
94113
95- // console.log(event.target);
96- console . log ( 'EVENT -> ROW Delete' ) ;
97-
98114 let tr = event . target . closest ( 'tr.editable' ) ;
99115 let data_id = tr . dataset . id ;
100116
101- console . log ( ' >>> DELETE ID = ' + data_id ) ;
102-
103117 xhr1 . open ( 'DELETE' , "/api/data/" + data_id , true ) ;
104118
105119 // Check Status
106120 xhr1 . onreadystatechange = function ( ) {
107121
108122 if ( this . status == 200 && this . readyState == 4 ) {
109- console . log ( ' >>> Deletion OK' ) ;
123+
110124 tr . remove ( ) ;
125+
126+ notyf . open ( {
127+ type : 'success' ,
128+ message : 'Information deleted successfully'
129+ } ) ;
111130 }
112-
113- if ( this . status != 200 ) {
114- console . log ( ' >>> Deletion ERR ' + this . status ) ;
131+
132+ // XMLHttpRequest returns 0 on success
133+ if ( ( this . status > 0 ) && ( this . status != 200 ) ) {
134+
135+ notyf . open ( {
136+ type : 'error' ,
137+ message : 'Error! ' + this . status
138+ } ) ;
115139 }
116140
117141 } ; //end onreadystate
0 commit comments