1+ const form = document . querySelector ( "#itemForm" ) ;
2+ const itemInput = document . querySelector ( "#itemInput" ) ;
3+ const itemList = document . querySelector ( "#itemList" ) ;
4+ const messageDiv = document . querySelector ( "#message" ) ;
5+ const clearButton = document . querySelector ( "#clearBtn" ) ;
6+ const filters = document . querySelectorAll ( ".nav-item" ) ;
7+
8+ let todoItems = [ ] ;
9+
10+ function handleitem ( itemData )
11+ {
12+ const items = document . querySelectorAll ( ".list-group-item" )
13+ items . forEach ( ( item ) => {
14+ console . log ( "aisi" ) ;
15+ console . log ( item . querySelector ( ".title" ) . getAttribute ( "data-time" ) )
16+ console . log ( itemData . addat )
17+ if ( item . querySelector ( ".title" ) . getAttribute ( "data-time" ) == itemData . addat )
18+ {
19+ console . log ( "aisi1" ) ;
20+ item . querySelector ( "[data-done]" ) . addEventListener ( "click" , function ( e ) {
21+ e . preventDefault ( ) ;
22+ const itemIndex = todoItems . indexOf ( itemData ) ;
23+ const currentItem = todoItems [ itemIndex ] ;
24+ currentItem . isdone = currentItem . isdone ? false :true ;
25+ todoItems . splice ( itemIndex , 1 , currentItem ) ;
26+ setlocalstorage ( todoItems ) ;
27+ } ) ;
28+ //delete
29+ item
30+ . querySelector ( "[data-delete]" )
31+ . addEventListener ( "click" , function ( e ) {
32+ e . preventDefault ( ) ;
33+ itemList . removeChild ( item ) ;
34+ const removeIndex = todoItems . indexOf ( item ) ;
35+ todoItems . splice ( removeIndex , 1 ) ;
36+ setlocalstorage ( todoItems ) ;
37+ } ) ;
38+ }
39+ } )
40+ }
41+
42+ function getList ( todoItems ) {
43+ itemList . innerHTML = "" ;
44+ console . log ( todoItems . length )
45+ if ( todoItems . length > 0 ) {
46+ todoItems . forEach ( ( item ) => {
47+ if ( item . isdone == true )
48+ {
49+ itemN = `<del>${ item . name } </del>`
50+ }
51+ else
52+ {
53+ itemN = `${ item . name } `
54+ }
55+ itemList . insertAdjacentHTML (
56+ "beforeend" ,
57+ `<li class="list-group-item d-flex justify-content-between align-items-center">
58+ <span class="title" data-time="${ item . addat } ">${ itemN } </span>
59+ <span>
60+ <a href="#" data-done><i class="bi bi-check-circle green"></i></a>
61+ <a href="#" data-delete><i class="bi bi-x-circle red"></i></a>
62+ </span>
63+ </li>`
64+
65+ ) ;
66+ handleitem ( item ) ;
67+ } ) ;
68+ }
69+ else
70+ {
71+ console . log ( "nai" )
72+ }
73+ } ;
74+
75+ function setlocalstorage ( todoItems )
76+ {
77+ localStorage . setItem ( "todoItems" , JSON . stringify ( todoItems ) ) ;
78+ getlocalstorage ( ) ;
79+ }
80+
81+ function getlocalstorage ( )
82+ {
83+ todostorage = localStorage . getItem ( "todoItems" )
84+ if ( todostorage == "undefine" || todostorage == null )
85+ {
86+ todoItems = [ ] ;
87+ }
88+ else
89+ {
90+ todoItems = JSON . parse ( todostorage ) ;
91+ }
92+ console . log ( todoItems )
93+ getList ( todoItems ) ;
94+ }
95+
96+ document . addEventListener ( 'DOMContentLoaded' , ( ) => {
97+ form . addEventListener ( "submit" , ( e ) => {
98+ e . preventDefault ( ) ;
99+ const itemname = itemInput . value . trim ( ) ;
100+ if ( itemname . length == 0 )
101+ {
102+
103+ }
104+ else
105+ {
106+ const itemobj = {
107+ name : itemname ,
108+ isdone : false ,
109+ addat : new Date ( ) . getTime ( ) ,
110+ } ;
111+ console . log ( itemname )
112+ todoItems . push ( itemobj )
113+ setlocalstorage ( todoItems )
114+ //showAlert("New item has been added.", "alert-success");
115+ }
116+ console . log ( itemname )
117+ } ) ;
118+ getlocalstorage ( ) ;
119+ } ) ;
0 commit comments