1+ function attachEvents ( ) {
2+ let baseUrl = `https://messenger-9668a.firebaseio.com/messenger` ;
3+ let textArea = $ ( "#messages" ) ;
4+ let author = $ ( "#author" ) ;
5+ let content = $ ( "#content" ) ;
6+
7+ loadMessages ( ) ;
8+
9+ $ ( "#submit" ) . click ( postNewMessage ) ;
10+ $ ( "#refresh" ) . click ( loadMessages ) ;
11+
12+ function postNewMessage ( ) {
13+ if ( author . val ( ) . length === 0 || content . val ( ) . length === 0 ) {
14+ return ;
15+ }
16+ let msg = { author : author . val ( ) , content : content . val ( ) , timestamp : Date . now ( ) } ;
17+ let req = {
18+ method : "POST" ,
19+ url : baseUrl + ".json" ,
20+ data : JSON . stringify ( msg ) ,
21+ success : ( ) => {
22+ author . val ( "" ) ;
23+ content . val ( "" ) ;
24+ } ,
25+ error : handleError
26+ } ;
27+ $ . ajax ( req ) ;
28+ }
29+
30+ function loadMessages ( ) {
31+ let req = {
32+ method : "GET" ,
33+ url : baseUrl + ".json" ,
34+ success : displayMsg ,
35+ error : handleError
36+ } ;
37+ $ . ajax ( req )
38+ }
39+
40+ function displayMsg ( data ) {
41+ let text = "" ;
42+ let sortedIds = Object . keys ( data ) . sort ( ( a , b ) => sortByDate ( a , b , data ) ) ;
43+ for ( let id of sortedIds ) {
44+ text += data [ id ] . author + ": " + data [ id ] . content + "\n" ;
45+ }
46+ textArea . text ( text ) ;
47+ }
48+
49+ function handleError ( err ) {
50+ console . log ( err ) ;
51+ }
52+
53+ function sortByDate ( obj1 , obj2 , data ) {
54+ let timeOne = data [ obj1 ] . timestamp ;
55+ let timeTwo = data [ obj2 ] . timestamp ;
56+
57+ return timeOne - timeTwo ;
58+ }
59+ }
0 commit comments