Skip to content

Commit 90bb0f0

Browse files
committed
[refactor] improve data module
1 parent 4c5296b commit 90bb0f0

File tree

3 files changed

+78
-85
lines changed

3 files changed

+78
-85
lines changed

‎src/js/data.js‎

Lines changed: 76 additions & 83 deletions
Original file line numberDiff line numberDiff line change
@@ -2,70 +2,16 @@ var data = (function(){
22

33
var_saveName="nitghTab";
44

5-
varset=function(key,data){
6-
localStorage.setItem(key,data);
7-
};
8-
9-
varget=function(key){
10-
returnlocalStorage.getItem(key);
11-
};
12-
13-
varremove=function(key){
14-
localStorage.removeItem(key);
15-
};
5+
varmod={};
166

17-
varsave=function(){
18-
vardata={
19-
nighttab: true,
20-
version: version.get(),
21-
state: state.get(),
22-
bookmarks: bookmarks.get()
23-
};
24-
set(_saveName,JSON.stringify(data));
25-
};
26-
27-
varwipe=function(){
28-
remove(_saveName);
29-
};
30-
31-
varload=function(){
32-
returnJSON.parse(get(_saveName));
33-
};
34-
35-
varrestore=function(data){
36-
if(data){
37-
if(!("version"indata)||data.version!=version.get()){
38-
console.log("data version "+data.version+" found less than current");
39-
data=update.run(data);
40-
set(_saveName,JSON.stringify(data));
41-
}else{
42-
console.log("data version "+version.get()+" no need to run update");
43-
set(_saveName,JSON.stringify(data));
44-
};
45-
}else{
46-
console.log("no data found to load");
7+
mod.import=function(){
8+
varfileList=helper.e(".control-data-import").files;
9+
if(fileList.length>0){
10+
_validateJsonFile(fileList);
4711
};
4812
};
4913

50-
varclearData=function(){
51-
varclearContent=helper.node("div");
52-
varpara1=helper.node("p:Are you sure you want to clear all nightTab Bookmarks and Settings?. nightTab will restore to the default state.");
53-
varpara2=helper.node("p:This can not be undone.");
54-
clearContent.appendChild(para1);
55-
clearContent.appendChild(para2);
56-
modal.render({
57-
heading: "Clear all nightTab data?",
58-
content: clearContent,
59-
successAction: function(){
60-
wipe();
61-
location.reload();
62-
},
63-
actionText: "Clear all data",
64-
size: "small"
65-
});
66-
};
67-
68-
varexportData=function(){
14+
mod.export=function(){
6915
vartempAchor=helper.node("a");
7016
vartimeStamp=helper.getDateTime();
7117
var_timeStampPrefix=function(value){
@@ -81,16 +27,42 @@ var data = (function(){
8127
timeStamp.month=_timeStampPrefix(timeStamp.month+1);
8228
timeStamp.year=_timeStampPrefix(timeStamp.year);
8329
timeStamp=timeStamp.hours+" "+timeStamp.minutes+" "+timeStamp.seconds+" - "+timeStamp.date+"."+timeStamp.month+"."+timeStamp.year;
84-
console.log(timeStamp);
8530
varfileName="nightTab backup - "+timeStamp+".json";
86-
varexportData="data:text/json;charset=utf-8,"+encodeURIComponent(JSON.stringify(load()));
87-
tempAchor.setAttribute("href",exportData);
31+
vardata="data:text/json;charset=utf-8,"+encodeURIComponent(JSON.stringify(load()));
32+
tempAchor.setAttribute("href",data);
8833
tempAchor.setAttribute("download",fileName);
8934
helper.e("html").appendChild(tempAchor);
9035
tempAchor.click();
9136
tempAchor.remove();
9237
};
9338

39+
mod.restore=function(data){
40+
if(data){
41+
if(!("version"indata)||data.version!=version.get()){
42+
console.log("data version "+data.version+" found less than current");
43+
data=update.run(data);
44+
mod.set(_saveName,JSON.stringify(data));
45+
}else{
46+
console.log("data version "+version.get()+" no need to run update");
47+
mod.set(_saveName,JSON.stringify(data));
48+
};
49+
}else{
50+
console.log("no data found to load");
51+
};
52+
};
53+
54+
mod.set=function(key,data){
55+
localStorage.setItem(key,data);
56+
};
57+
58+
mod.get=function(key){
59+
returnlocalStorage.getItem(key);
60+
};
61+
62+
mod.remove=function(key){
63+
localStorage.removeItem(key);
64+
};
65+
9466
varbind={};
9567

9668
bind.feedback={
@@ -117,6 +89,24 @@ var data = (function(){
11789

11890
varrender={};
11991

92+
render.clear=function(){
93+
varclearContent=helper.node("div");
94+
varpara1=helper.node("p:Are you sure you want to clear all nightTab Bookmarks and Settings?. nightTab will restore to the default state.");
95+
varpara2=helper.node("p:This can not be undone.");
96+
clearContent.appendChild(para1);
97+
clearContent.appendChild(para2);
98+
modal.render({
99+
heading: "Clear all nightTab data?",
100+
content: clearContent,
101+
successAction: function(){
102+
wipe();
103+
render.reload();
104+
},
105+
actionText: "Clear all data",
106+
size: "small"
107+
});
108+
};
109+
120110
render.reload=function(){
121111
location.reload();
122112
};
@@ -170,16 +160,6 @@ var data = (function(){
170160
}
171161
};
172162

173-
varimportData=function(){
174-
// get files from input
175-
varfileList=helper.e(".control-data-import").files;
176-
// if file was added
177-
if(fileList.length>0){
178-
// validate the file
179-
_validateJsonFile(fileList);
180-
};
181-
};
182-
183163
var_validateJsonFile=function(fileList){
184164
// make new file reader
185165
varreader=newFileReader();
@@ -191,7 +171,7 @@ var data = (function(){
191171
if(JSON.parse(event.target.result).nighttab){
192172
render.feedback.clear();
193173
render.feedback.success(fileList[0].name,function(){
194-
restore(JSON.parse(event.target.result));
174+
mod.restore(JSON.parse(event.target.result));
195175
render.reload();
196176
});
197177
render.input.clear();
@@ -212,23 +192,36 @@ var data = (function(){
212192
reader.readAsText(fileList.item(0));
213193
};
214194

195+
varsave=function(){
196+
mod.set(_saveName,JSON.stringify({
197+
nighttab: true,
198+
version: version.get(),
199+
state: state.get(),
200+
bookmarks: bookmarks.get()
201+
}));
202+
};
203+
204+
varload=function(){
205+
returnJSON.parse(mod.get(_saveName));
206+
};
207+
208+
varwipe=function(){
209+
mod.remove(_saveName);
210+
render.reload();
211+
};
212+
215213
varinit=function(){
216-
restore(data.load());
214+
mod.restore(data.load());
217215
render.feedback.empty();
218216
};
219217

220218
return{
221219
init: init,
220+
mod: mod,
221+
render: render,
222222
save: save,
223-
remove: remove,
224-
set: set,
225-
get: get,
226223
load: load,
227-
wipe: wipe,
228-
restore: restore,
229-
importData: importData,
230-
exportData: exportData,
231-
clearData: clearData
224+
wipe: wipe
232225
};
233226

234227
})();

‎src/js/version.js‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
varversion=(function(){
22

3-
varcurrent="3.43.0";
3+
varcurrent="3.44.0";
44

55
varcompare=function(a,b){
66
varpa=a.split(".");

‎src/manifest.json‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"name": "nightTab",
33
"short_name": "nightTab",
44
"description": "A neutral new tab page accented with a chosen colour. Customise the layout, style, background and bookmarks in nightTab.",
5-
"version": "3.43.0",
5+
"version": "3.44.0",
66
"manifest_version": 2,
77
"chrome_url_overrides":{
88
"newtab": "index.html"

0 commit comments

Comments
(0)