11function getProjects ( status ) {
22 var ProjectsRef = firebase . database ( ) . ref ( "v2/projects" ) . orderByChild ( "status" ) . equalTo ( status ) ;
3- var table = document . createElement ( 'table' )
4- table . classList . add ( "table" )
5- var tbody = document . createElement ( 'tbody' ) ;
63
7- tr = document . createElement ( 'tr' )
8- th = document . createElement ( 'th' )
9- th . innerHTML = "Project ID"
10- tr . appendChild ( th )
11-
12- th = document . createElement ( 'th' )
13- th . innerHTML = "Name"
14- tr . appendChild ( th )
15-
16- th = document . createElement ( 'th' )
17- th . innerHTML = "Project Type"
18- tr . appendChild ( th )
19-
20- th = document . createElement ( 'th' )
21- th . innerHTML = "Progress"
22- tr . appendChild ( th )
23-
24- th = document . createElement ( 'th' )
25- th . innerHTML = "Status"
26- tr . appendChild ( th )
27-
28- th = document . createElement ( 'th' )
29- th . innerHTML = "IsFeatured"
30- tr . appendChild ( th )
31-
32- th = document . createElement ( 'th' )
33- th . innerHTML = "Change Status"
34- tr . appendChild ( th )
35-
36- th = document . createElement ( 'th' )
37- th . innerHTML = "Change isFeatured"
38- tr . appendChild ( th )
39-
40- tr . appendChild ( th )
41- tbody . appendChild ( tr )
4+ var tableRef = document . getElementById ( 'projectsTable-' + status ) . getElementsByTagName ( 'tbody' ) [ 0 ] ;
425
436 ProjectsRef . once ( 'value' , function ( snapshot ) {
447 if ( snapshot . exists ( ) ) {
458 snapshot . forEach ( function ( data ) {
46- tr = document . createElement ( 'tr' )
479
10+ tr = tableRef . insertRow ( ) ;
4811 td = document . createElement ( 'td' )
4912 td . innerHTML = data . key
5013 tr . appendChild ( td )
@@ -73,47 +36,63 @@ function getProjects(status) {
7336 }
7437 tr . appendChild ( td )
7538
39+
7640 td = document . createElement ( 'td' )
77- btn = document . createElement ( 'button' )
78- btn . id = data . key
79- btn . classList . add ( "btn" )
80- btn . classList . add ( "btn-warning" )
81- btn . classList . add ( "status-" + data . val ( ) . status )
82- btn . addEventListener ( "click" , changeProjectStatus )
8341
8442 if ( data . val ( ) . status == "inactive" ) {
85- btn . innerHTML = "Activate"
43+ btn = addButton ( data . key , data . val ( ) . status , "active" )
44+ td . appendChild ( btn )
45+ btn = addButton ( data . key , data . val ( ) . status , "finished" )
46+ td . appendChild ( btn )
8647 } else if ( data . val ( ) . status == "active" ) {
87- btn . innerHTML = "Deactivate"
48+ btn = addButton ( data . key , data . val ( ) . status , "inactive" )
49+ td . appendChild ( btn )
50+ btn = addButton ( data . key , data . val ( ) . status , "finished" )
51+ td . appendChild ( btn )
8852 } else if ( data . val ( ) . status == "new" ) {
89- btn . innerHTML = "Activate"
53+ btn = addButton ( data . key , data . val ( ) . status , "active" )
54+ td . appendChild ( btn )
55+ } else if ( data . val ( ) . status == "finished" ) {
56+ btn = addButton ( data . key , data . val ( ) . status , "inactive" )
57+ td . appendChild ( btn )
9058 }
91- td . appendChild ( btn )
9259 tr . appendChild ( td )
9360
94- td = document . createElement ( 'td' )
95- btn = document . createElement ( 'button' )
96- btn . id = data . key
97- btn . classList . add ( "btn" )
98- btn . classList . add ( "btn-warning" )
99- btn . classList . add ( "isFeatured-" + data . val ( ) . isFeatured )
100- btn . addEventListener ( "click" , changeProjectIsFeatured )
101-
102- if ( data . val ( ) . isFeatured === true ) {
103- btn . innerHTML = 'set to "false"'
104- } else if ( data . val ( ) . isFeatured === false ) {
105- btn . innerHTML = 'set to "true"'
61+ if ( data . val ( ) . status == "active" ) {
62+ td = document . createElement ( 'td' )
63+ btn = document . createElement ( 'button' )
64+ btn . id = data . key
65+ btn . classList . add ( "btn" )
66+ btn . classList . add ( "btn-warning" )
67+ btn . classList . add ( "isFeatured-" + data . val ( ) . isFeatured )
68+ btn . addEventListener ( "click" , changeProjectIsFeatured )
69+
70+ if ( data . val ( ) . isFeatured === true ) {
71+ btn . innerHTML = 'set to "false"'
72+ } else if ( data . val ( ) . isFeatured === false ) {
73+ btn . innerHTML = 'set to "true"'
74+ }
75+ td . appendChild ( btn )
76+ tr . appendChild ( td )
10677 }
107- td . appendChild ( btn )
108- tr . appendChild ( td )
109-
110- tbody . appendChild ( tr )
111-
11278 } ) ;
113- }
79+ } ;
80+ $ ( "#projectsTable-" + status ) . DataTable ( ) ;
81+ $ ( '.dataTables_length' ) . addClass ( 'bs-select' ) ;
11482 } ) ;
115- table . appendChild ( tbody )
116- document . getElementById ( status + "-projects" ) . appendChild ( table )
83+
84+ }
85+
86+ function addButton ( id , oldStatus , newStatus ) {
87+ btn = document . createElement ( 'button' )
88+ btn . id = id
89+ btn . classList . add ( "btn" )
90+ btn . classList . add ( "btn-warning" )
91+ btn . classList . add ( "new-status-" + newStatus )
92+ btn . addEventListener ( "click" , changeProjectStatus )
93+ btn . innerHTML = "set to '" + newStatus + "'"
94+
95+ return btn
11796}
11897
11998function updateStatus ( projectId , newStatus ) {
@@ -133,42 +112,45 @@ function updateIsFeatured(projectId, newStatus) {
133112}
134113
135114function updateTableView ( ) {
136- var newProjects = document . getElementById ( "new-projects" )
115+ var newProjects = document . getElementById ( "projectsTable-new" ) . getElementsByTagName ( 'tbody' ) [ 0 ]
137116 while ( newProjects . firstChild ) {
138117 newProjects . removeChild ( newProjects . firstChild ) ;
139118 }
140119
141- var inactiveProjects = document . getElementById ( "inactive-projects" )
120+ var inactiveProjects = document . getElementById ( "projectsTable-inactive" ) . getElementsByTagName ( 'tbody' ) [ 0 ]
142121 while ( inactiveProjects . firstChild ) {
143122 inactiveProjects . removeChild ( inactiveProjects . firstChild ) ;
144123 }
145124
146- var activeProjects = document . getElementById ( "active-projects" )
125+ var activeProjects = document . getElementById ( "projectsTable-active" ) . getElementsByTagName ( 'tbody' ) [ 0 ]
147126 while ( activeProjects . firstChild ) {
148127 activeProjects . removeChild ( activeProjects . firstChild ) ;
149128 }
150129
130+ var finishedProjects = document . getElementById ( "projectsTable-finished" ) . getElementsByTagName ( 'tbody' ) [ 0 ]
131+ while ( finishedProjects . firstChild ) {
132+ finishedProjects . removeChild ( finishedProjects . firstChild ) ;
133+ }
134+
151135 getProjects ( "new" )
152136 getProjects ( "active" )
153137 getProjects ( "inactive" )
138+ getProjects ( "finished" )
154139}
155140
156141
157142function changeProjectStatus ( ) {
158143 console . log ( 'project selected: ' + this . id )
159144
160- if ( this . classList . contains ( "status-active" ) ) {
161- console . log ( "current status: active" )
162- updateStatus ( this . id , "inactive" )
163- console . log ( "new status: inactive" )
164- } else if ( this . classList . contains ( "status-inactive" ) ) {
165- console . log ( "current status: inactive" )
166- updateStatus ( this . id , "active" )
167- console . log ( "new status: active" )
168- } else if ( this . classList . contains ( "status-new" ) ) {
169- console . log ( "current status: new" )
145+ if ( this . classList . contains ( "new-status-active" ) ) {
170146 updateStatus ( this . id , "active" )
171147 console . log ( "new status: active" )
148+ } else if ( this . classList . contains ( "new-status-inactive" ) ) {
149+ updateStatus ( this . id , "inactive" )
150+ console . log ( "new status: inactive" )
151+ } else if ( this . classList . contains ( "new-status-finished" ) ) {
152+ updateStatus ( this . id , "finished" )
153+ console . log ( "new status: finished" )
172154 }
173155 updateTableView ( )
174156}
@@ -192,3 +174,4 @@ function changeProjectIsFeatured() {
192174getProjects ( "new" )
193175getProjects ( "active" )
194176getProjects ( "inactive" )
177+ getProjects ( "finished" )
0 commit comments