1+ window . onload = function ( ) {
2+ let initialbuses = [
3+
4+ ] ;
5+
6+ if ( localStorage . getItem ( "currentbuses" ) == null ) {
7+ localStorage . setItem ( "currentbuses" , JSON . stringify ( initialbuses ) ) ;
8+ }
9+ } ;
10+
11+ function display ( busarray = undefined ) {
12+ let tabledata = "" ;
13+ let allbuses ;
14+ if ( busarray == undefined ) {
15+ allbuses = JSON . parse ( localStorage . getItem ( "currentbuses" ) ) ;
16+ } else {
17+ allbuses = busarray ;
18+ }
19+
20+ allbuses . forEach ( function ( bus , index ) {
21+ let currentrow = `<tr>
22+ <td>${ index + 1 } </td>
23+ <td>${ bus . name } </td>
24+ <td>${ bus . source } </td>
25+ <td>${ bus . destination } </td>
26+ <td>${ bus . number } </td>
27+ <td>${ bus . passcap } </td>
28+ <td>
29+ <button onclick='deleteBus(${ index } )'>delete</button>
30+ <button onclick='showModal(${ index } )'>update</button>
31+ </td>
32+ </tr>` ;
33+
34+ tabledata += currentrow ;
35+ } ) ;
36+
37+ document . getElementsByClassName ( "tdata" ) [ 0 ] . innerHTML = tabledata ;
38+
39+ }
40+
41+ display ( ) ;
42+
43+ function addBus ( e ) {
44+ e . preventDefault ( ) ;
45+ let newBus = { } ;
46+ let name = document . getElementById ( "name" ) . value ;
47+ let source = document . getElementById ( "source" ) . value ;
48+ let destination = document . getElementById ( "destination" ) . value ;
49+ let number = document . getElementById ( "number" ) . value ;
50+ let passenger_capacity = document . getElementById ( "passcap" ) . value ;
51+ newBus . name = name ;
52+ newBus . number = Number ( number ) ;
53+ newBus . destination = destination ;
54+ newBus . source = source ;
55+ newBus . passcap = passenger_capacity ;
56+
57+
58+ let allbuses = JSON . parse ( localStorage . getItem ( "currentbuses" ) ) ;
59+ allbuses . push ( newBus ) ;
60+ localStorage . setItem ( "currentbuses" , JSON . stringify ( allbuses ) ) ;
61+
62+ display ( ) ;
63+
64+ document . getElementById ( "name" ) . value = "" ;
65+ document . getElementById ( "source" ) . value = "" ;
66+ document . getElementById ( "destination" ) . value = "" ;
67+ document . getElementById ( "number" ) . value = "" ;
68+ document . getElementById ( "passcap" ) . value = "" ;
69+ }
70+
71+ function searchBySource ( ) {
72+ let searchValue = document . getElementById ( "searchSource" ) . value ;
73+ let searchvalue = document . getElementById ( "searchDestination" ) . value ;
74+ let allbuses = JSON . parse ( localStorage . getItem ( "currentbuses" ) ) ;
75+ let newdata = allbuses . filter ( function ( bus ) {
76+ return (
77+ bus . source . toUpperCase ( ) . indexOf ( searchValue . toUpperCase ( ) ) != - 1 && bus . destination . toUpperCase ( ) . indexOf ( searchvalue . toUpperCase ( ) ) != - 1
78+ ) ;
79+ } ) ;
80+
81+ display ( newdata ) ;
82+ }
83+
84+ function searchByDestination ( ) {
85+ let searchValue = document . getElementById ( "searchDestination" ) . value ;
86+ let searchvalue = document . getElementById ( "searchSource" ) . value ;
87+ let allbuses = JSON . parse ( localStorage . getItem ( "currentbuses" ) ) ;
88+ let newdata = allbuses . filter ( function ( bus ) {
89+ return (
90+ bus . destination . toUpperCase ( ) . indexOf ( searchValue . toUpperCase ( ) ) != - 1 && bus . source . toUpperCase ( ) . indexOf ( searchvalue . toUpperCase ( ) ) != - 1
91+ ) ;
92+ } ) ;
93+
94+ display ( newdata ) ;
95+ }
96+
97+
98+
99+ let updateIndex ;
100+
101+ function copyBus ( index ) {
102+ let allbuses = JSON . parse ( localStorage . getItem ( "currentbuses" ) ) ;
103+ updateIndex = index ; console . log ( updateIndex ) ;
104+ let currentBus = allbuses [ index ] ;
105+
106+ document . getElementById ( "upname" ) . value = currentBus . name ;
107+ document . getElementById ( "upsrc" ) . value = currentBus . source ;
108+ document . getElementById ( "updest" ) . value = currentBus . destination ;
109+ document . getElementById ( "upnumber" ) . value = currentBus . number ;
110+ document . getElementById ( "uppasscap" ) . value = currentBus . passcap ;
111+
112+ }
113+
114+ function updateBus ( e ) {
115+ e . preventDefault ( ) ;
116+ let allbuses = JSON . parse ( localStorage . getItem ( "currentbuses" ) ) ;
117+ let currentBus = allbuses [ updateIndex ] ;
118+ let name = document . getElementById ( "upname" ) . value ;
119+ let source = document . getElementById ( "upsrc" ) . value ;
120+ let destination = document . getElementById ( "updest" ) . value ;
121+ let number = document . getElementById ( "upnumber" ) . value ;
122+ let passenger_capacity = document . getElementById ( "uppasscap" ) . value ;
123+ currentBus . name = name ;
124+ currentBus . number = Number ( number ) ;
125+ currentBus . destination = destination ;
126+ currentBus . source = source ;
127+ currentBus . passcap = passenger_capacity ;
128+
129+ localStorage . setItem ( "currentbuses" , JSON . stringify ( allbuses ) ) ;
130+ display ( allbuses ) ;
131+
132+
133+ let modal = document . getElementsByClassName ( "modal" ) [ 0 ] ;
134+ modal . style . display = "none" ;
135+ }
136+
137+ function deleteBus ( index ) {
138+ let allbuses = JSON . parse ( localStorage . getItem ( "currentbuses" ) ) ;
139+ allbuses . splice ( index , 1 ) ;
140+ localStorage . setItem ( "currentbuses" , JSON . stringify ( allbuses ) ) ;
141+ display ( ) ;
142+ }
143+
144+
145+
146+ function showModal ( index ) {
147+ let modal = document . getElementsByClassName ( "modal" ) [ 0 ] ;
148+ modal . style . display = "block" ;
149+
150+ copyBus ( index ) ;
151+ }
152+
153+ function hideModal ( event ) {
154+ if ( event . target . className == "modal" ) {
155+ let modal = document . getElementsByClassName ( "modal" ) [ 0 ] ;
156+ modal . style . display = "none" ;
157+ }
158+ }
0 commit comments