Skip to content

Instantly share code, notes, and snippets.

@bartrail
Created June 6, 2012 14:15
Show Gist options
  • Save bartrail/2882109 to your computer and use it in GitHub Desktop.
Save bartrail/2882109 to your computer and use it in GitHub Desktop.
a Simple local storage handler using jStorage and jQuery. Use it to save objects/arrays under one namespace with a customized object structure
var localStorageHandler = function(namespace, dataStructure) {
this.namespace = namespace;
this.dataStructure = dataStructure ? dataStructure : {};
this.saveItem = function(id, data) {
var oldData = this.getItem(id);
var saveData = $.extend(true, {}, oldData, data);
var metaData = this.getData();
metaData[id] = saveData;
this.saveData(metaData);
}
this.saveData = function(data) {
$.jStorage.set(this.namespace, { data: data })
}
this.removeItem = function(id) {
var data = this.getData();
if(data[id] != undefined) {
delete data[id];
this.saveData(data);
}
}
this.getItem = function(id) {
var data = this.getData();
if(data[id] != undefined) {
return data[id];
}else{
return this.dataStructure;
}
}
this.getData = function() {
var metaData = $.jStorage.get(this.namespace);
if( metaData == null) {
metaData = {
data: {}
};
}
return metaData.data;
}
this.reset = function() {
$.jStorage.set(this.namespace, null);
}
}
var reloadHandler = new localStorageHandler('reloadData', {
uri : null,
step : null,
trainingStatus : null,
product : null,
supplierId : null,
processed : null
});
var updateHandler = new localStorageHandler('updateData', {
supplierId : null,
type : null
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment