5e857df549ce6deae130eb7b6ffc4c8d1939a08d
[samples/web/TemporaryStorage.git] / js / main.js
1 var local = localStorage;\r
2 var session = sessionStorage;\r
3 var array = new Array();\r
4 \r
5 $(document).ready(function() {\r
6 \r
7     // Get information storage\r
8     getStorage();\r
9 \r
10     // Task Save\r
11     $("#register").on("click", function() {\r
12         var filter=/\d{4}-\d{2}-\d{2}/;\r
13         if ($("#txtTask").val() == "") {\r
14             alert("Please enter the task.");\r
15         } else if (filter.test($("#datePiker").val())==false) {\r
16             alert("Please use the Date Picker.")\r
17         } else {\r
18             if (confirm("Are you sure you want to store the task?")) {\r
19                 var key = getKeyToDate($("#datePiker").val());\r
20                 var taskText = $("#txtTask").val();\r
21                 var plainStr = htmlTagToPlain(taskText);\r
22 \r
23                 // Store localStorage data\r
24                 local.setItem(key, plainStr);\r
25                 location.reload();\r
26             }\r
27         }\r
28     });\r
29 \r
30     // Task Delete\r
31     $("#delete").on("click", function() {\r
32         $(":checkbox[name='storageCheck']:checked").each(function(i, v) {\r
33             // The completed Task is deleted from localStorage.\r
34             local.removeItem(v.value);\r
35             session.removeItem(v.value);\r
36             getStorage();\r
37         });\r
38     });\r
39 \r
40     // disable keyboard for date input field\r
41     $("#datePiker").on("keypress", function(e)  {\r
42         e.preventDefault();\r
43     });\r
44 \r
45     //add eventListener for tizenhwkey\r
46     window.addEventListener('tizenhwkey', function(e) {\r
47         if(e.keyName == "back")\r
48             window.setTimeout(exitCurrentApplication, 1000)\r
49     });\r
50 });\r
51 \r
52 /**\r
53  * Exit current application\r
54  */\r
55 function exitCurrentApplication() {\r
56     tizen.application.getCurrentApplication().exit();\r
57 }\r
58 \r
59 /**\r
60  * Change htmlTag to plaintext\r
61  */\r
62 function htmlTagToPlain(str){\r
63     var plainFilter1 = /[&]/gi;\r
64     var plainFilter2 = /[<]/gi;\r
65     var plainFilter3 = /[>]/gi;\r
66     \r
67     var tempStr1 = str.replace(plainFilter1, "&amp;");\r
68     var tempStr2 = tempStr1.replace(plainFilter2, "&lt;");\r
69     return tempStr2.replace(plainFilter3, "&gt;");\r
70 }\r
71 \r
72 /**\r
73  * Call Task data stored in Storage\r
74  */\r
75 function getHtmlToStorage(index) {\r
76     return "<li id='"\r
77             + "list_"\r
78             + array[index]\r
79             + "'>"\r
80             + local.getItem(array[index])\r
81             + "<input type='checkbox' id='"\r
82             + array[index]\r
83             + "' value='"\r
84             + array[index]\r
85             + "' name='storageCheck' onclick='taskComplete(this.value)' /></li>";\r
86 }\r
87 \r
88 /**\r
89  * Get information storage\r
90  */\r
91 function getStorage() {\r
92 \r
93     var $todayHtml = $("#todayList");\r
94     var $beforeHtml = $("#beforeList");\r
95     var $afterHtml = $("#afterList");\r
96     var $datePiker = $("#datePiker");\r
97     var $pDate = $("#pDate");\r
98     var taskDate;\r
99     var today = new Date();\r
100     var year = today.getFullYear();\r
101     var month = (today.getMonth() + 1) > 9 ? "" + (today.getMonth() + 1) : "0"\r
102             + (today.getMonth() + 1);\r
103     var date = today.getDate() > 9 ? "" + today.getDate() : "0"\r
104             + today.getDate();\r
105     var currentDate = year + month + date;\r
106 \r
107     array = new Array();\r
108 \r
109     $datePiker.val(year + "-" + month + "-" + date);\r
110     $pDate[0].innerHTML = "";\r
111     $todayHtml[0].innerHTML = "";\r
112     $beforeHtml[0].innerHTML = "";\r
113     $afterHtml[0].innerHTML = "";\r
114     $pDate.append("Today (" + year + "." + month + "." + date + ")");\r
115 \r
116 \r
117     for (var i = 0; i < local.length; i++) {\r
118         var taskTime = local.key(i);\r
119         array.push(taskTime);\r
120     }\r
121     array.sort(function(a, b) { return b - a; });\r
122 \r
123     // Call Task data stored in localStorage\r
124     for ( var i = 0; i < array.length; i++) {\r
125         \r
126         // Import localStorage key to compared with the current date\r
127         taskDate = array[i].substring(0, 8);\r
128 \r
129         // Today Task\r
130         if (currentDate == taskDate) {\r
131             $todayHtml.append(getHtmlToStorage(i));\r
132             // Previous Task\r
133         } else if (currentDate > taskDate) {\r
134             $beforeHtml.append(getHtmlToStorage(i));\r
135             // After Task\r
136         } else {\r
137             $afterHtml.append(getHtmlToStorage(i));\r
138         }\r
139 \r
140         for ( var j = 0; j < session.length; j++) {\r
141             if (array[i] == session.key(j)) {\r
142                 // Shows Task Completed data until the browser (App) is re-executed\r
143                 $("#list_" + session.key(j)).addClass("del");\r
144                 $("#" + session.key(j)).attr("checked", true);\r
145             }\r
146         }\r
147     }\r
148 \r
149     $todayHtml[0].innerHTML == "" ? $("#divToday").hide() : "";\r
150     $beforeHtml[0].innerHTML == "" ? $("#divPrevious").hide() : "";\r
151     $afterHtml[0].innerHTML == "" ? $("#divAfter").hide() : "";\r
152 \r
153     if (local.length == 0 && session.length == 0)\r
154         $("#divList").hide();\r
155 }\r
156 \r
157 /**\r
158  * task complete stored in sessionStorage\r
159  */\r
160 function taskComplete(key) {\r
161 \r
162     if ($("#" + key).is(":checked")) {\r
163 \r
164         // For completed Task, Strikeout is indicated\r
165         $("#list_" + key).addClass("del");\r
166 \r
167         // task Complete stored in sessionStorage\r
168         session.setItem(key, local.getItem(key));\r
169     } else {\r
170         $("#list_" + key).removeClass("del");\r
171         session.removeItem(key);\r
172     }\r
173 }\r
174 \r
175 /**\r
176  * Create key by using the storage date\r
177  */\r
178 function getKeyToDate(date) {\r
179     if (date) {\r
180         var time = new Date();\r
181         var hourFormat;\r
182         var minuteFormat;\r
183         var secondFormat;\r
184         if (time.getHours() < 10)\r
185             hourFormat = "0" + time.getHours();\r
186         else\r
187             hourFormat = time.getHours();\r
188         if (time.getMinutes() < 10)\r
189             minuteFormat = "0" + time.getMinutes();\r
190         else\r
191             minuteFormat = time.getMinutes();\r
192         if (time.getSeconds() < 10)\r
193             secondFormat = "0" + time.getSeconds();\r
194         else\r
195             secondFormat = time.getSeconds();\r
196         return (date.replace(/\-/g, "") + hourFormat + minuteFormat + secondFormat).replace(/\./g, "");\r
197     }\r
198 }\r