Auto Save, Removed Stamps +more
Removed stamps so code stays stored until code has been reset. --> Added a feature which returns if the storage has been saved since last edit. *codeStorage.hasSaved()* --> Changed "localBonfire" to *codeStorage*
This commit is contained in:
@@ -42,7 +42,7 @@ editor.setOption("extraKeys", {
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
Local Storage Update System By Andrew Cay(Resto)
|
Local Storage Update System By Andrew Cay(Resto)
|
||||||
localBonfire: singleton object that contains properties and methods related to
|
codeStorage: singleton object that contains properties and methods related to
|
||||||
dealing with the localStorage system.
|
dealing with the localStorage system.
|
||||||
The keys work off of the variable challenge_name to make unique identifiers per bonfire
|
The keys work off of the variable challenge_name to make unique identifiers per bonfire
|
||||||
|
|
||||||
@@ -50,54 +50,49 @@ editor.setOption("extraKeys", {
|
|||||||
Added anonymous version checking system incase of future updates to the system
|
Added anonymous version checking system incase of future updates to the system
|
||||||
Added keyup listener to editor(myCodeMirror) so the last update has been saved to storage
|
Added keyup listener to editor(myCodeMirror) so the last update has been saved to storage
|
||||||
*/
|
*/
|
||||||
var localBonfire = {
|
var codeStorage = {
|
||||||
version: 0.01,
|
version: 0.01,
|
||||||
keyVersion:"saveVersion",
|
keyVersion:"saveVersion",
|
||||||
keyStamp: challenge_Name + 'Stamp',
|
|
||||||
keyValue: challenge_Name + 'Val',
|
keyValue: challenge_Name + 'Val',
|
||||||
stampExpireTime: (1000 *60) *60 *24,
|
updateWait: 2000,// 2 seconds
|
||||||
updateWait: 1500,// 1.5 seconds
|
|
||||||
updateTimeoutId: null
|
updateTimeoutId: null
|
||||||
};
|
};
|
||||||
localBonfire.getEditorValue = function(){
|
// Returns true if the editor code was saved since last key press (use this if you want to make a "saved" notification somewhere")
|
||||||
return localStorage.getItem(localBonfire.keyValue);
|
codeStorage.hasSaved = function(){
|
||||||
|
return ( updateTimeoutId === null );
|
||||||
};
|
};
|
||||||
localBonfire.getStampTime = function(){
|
codeStorage.getEditorValue = function(){
|
||||||
//localstorage always saves as strings.
|
return localStorage.getItem(codeStorage.keyValue);
|
||||||
return Number.parseInt( localStorage.getItem(localBonfire.keyStamp) );
|
|
||||||
};
|
};
|
||||||
localBonfire.isAlive = function(){// returns true if IDE was edited within expire time
|
codeStorage.updateStorage = function(){
|
||||||
return ( Date.now() - localBonfire.getStampTime() < localBonfire.stampExpireTime );
|
|
||||||
};
|
|
||||||
localBonfire.updateStorage = function(){
|
|
||||||
if(typeof(Storage) !== undefined) {
|
if(typeof(Storage) !== undefined) {
|
||||||
var stamp = Date.now(),
|
var value = editor.getValue();
|
||||||
value = editor.getValue();
|
localStorage.setItem(codeStorage.keyValue, value);
|
||||||
localStorage.setItem(localBonfire.keyValue, value);
|
|
||||||
localStorage.setItem(localBonfire.keyStamp, stamp);
|
|
||||||
} else {
|
} else {
|
||||||
|
var debugging = false;
|
||||||
if( debugging ){
|
if( debugging ){
|
||||||
console.log('no web storage');
|
console.log('no web storage');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
localBonfire.updateTimeoutId = null;
|
codeStorage.updateTimeoutId = null;
|
||||||
};
|
};
|
||||||
// ANONYMOUS 1 TIME UPDATE VERSION
|
// ANONYMOUS 1 TIME UPDATE VERSION
|
||||||
(function(){
|
(function(){
|
||||||
var savedVersion = localStorage.getItem('saveVersion');
|
var savedVersion = localStorage.getItem('saveVersion');
|
||||||
if( savedVersion === null ){
|
if( savedVersion === null ){
|
||||||
localStorage.setItem(localBonfire.keyVersion, localBonfire.version);//just write current version
|
localStorage.setItem(codeStorage.keyVersion, codeStorage.version);//just write current version
|
||||||
}else{
|
}else{
|
||||||
//do checking if not current version
|
//do checking if not current version
|
||||||
if( savedVersion !== localBonfire.version ){
|
if( savedVersion !== codeStorage.version ){
|
||||||
//update version
|
//update version
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})();
|
})();
|
||||||
|
|
||||||
|
/// Update local save when editor has changed
|
||||||
editor.on('keyup', function(codMir, event){
|
editor.on('keyup', function(codMir, event){
|
||||||
window.clearTimeout(localBonfire.updateTimeoutId);
|
window.clearTimeout(codeStorage.updateTimeoutId);
|
||||||
localBonfire.updateTimeoutId = window.setTimeout(localBonfire.updateStorage, localBonfire.updateWait);
|
codeStorage.updateTimeoutId = window.setTimeout(codeStorage.updateStorage, codeStorage.updateWait);
|
||||||
});
|
});
|
||||||
|
|
||||||
var attempts = 0;
|
var attempts = 0;
|
||||||
@@ -107,7 +102,7 @@ if (attempts) {
|
|||||||
|
|
||||||
var resetEditor = function() {
|
var resetEditor = function() {
|
||||||
editor.setValue(allSeeds);
|
editor.setValue(allSeeds);
|
||||||
localBonfire.updateStorage();
|
codeStorage.updateStorage();
|
||||||
};
|
};
|
||||||
|
|
||||||
var codeOutput = CodeMirror.fromTextArea(document.getElementById("codeOutput"), {
|
var codeOutput = CodeMirror.fromTextArea(document.getElementById("codeOutput"), {
|
||||||
@@ -145,7 +140,7 @@ var allSeeds = '';
|
|||||||
});
|
});
|
||||||
})();
|
})();
|
||||||
|
|
||||||
editorValue = (localBonfire.isAlive())? localBonfire.getEditorValue() : allSeeds;
|
editorValue = (codeStorage.isAlive())? codeStorage.getEditorValue() : allSeeds;
|
||||||
|
|
||||||
myCodeMirror.setValue(editorValue);
|
myCodeMirror.setValue(editorValue);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user