diff options
author | symio <franck.huby@loamok.org> | 2014-09-13 13:14:30 +0200 |
---|---|---|
committer | symio <franck.huby@loamok.org> | 2014-09-13 13:14:30 +0200 |
commit | e41f8915d48819d8f3543ef6e57676fb4e7df956 (patch) | |
tree | d4716a96337052c6211fd5a4af73a150115a2f5d /js/wwwsqldesigner.js | |
parent | 53d32852bc0f7ebe3e1567a2ae93fea8f31f2e7f (diff) | |
download | wwwsqldesigner-e41f8915d48819d8f3543ef6e57676fb4e7df956.zip wwwsqldesigner-e41f8915d48819d8f3543ef6e57676fb4e7df956.tar.gz wwwsqldesigner-e41f8915d48819d8f3543ef6e57676fb4e7df956.tar.bz2 |
List schemas previously saved in localstorage for ease of reload.
fixes #202
Original issue n°:182
Signed-off-by:symio <franck.huby@loamok.org>
Diffstat (limited to 'js/wwwsqldesigner.js')
-rw-r--r-- | js/wwwsqldesigner.js | 35 |
1 files changed, 34 insertions, 1 deletions
diff --git a/js/wwwsqldesigner.js b/js/wwwsqldesigner.js index def3265..223c3e6 100644 --- a/js/wwwsqldesigner.js +++ b/js/wwwsqldesigner.js @@ -1254,7 +1254,7 @@ SQL.IO.prototype.init = function(owner) { container:OZ.$("io") }; - var ids = ["saveload","clientlocalsave", "clientsave", "clientlocalload","clientload", "clientsql", + var ids = ["saveload","clientlocalsave", "clientsave", "clientlocalload", "clientlocallist","clientload", "clientsql", "quicksave", "serversave", "serverload", "serverlist", "serverimport"]; for (var i=0;i<ids.length;i++) { @@ -1288,6 +1288,7 @@ SQL.IO.prototype.init = function(owner) { OZ.Event.add(this.dom.clientlocalsave, "click", this.bind(this.clientlocalsave)); OZ.Event.add(this.dom.clientsave, "click", this.bind(this.clientsave)); OZ.Event.add(this.dom.clientlocalload, "click", this.bind(this.clientlocalload)); + OZ.Event.add(this.dom.clientlocallist, "click", this.bind(this.clientlocallist)); OZ.Event.add(this.dom.clientload, "click", this.bind(this.clientload)); OZ.Event.add(this.dom.clientsql, "click", this.bind(this.clientsql)); OZ.Event.add(this.dom.quicksave, "click", this.bind(this.quicksave)); @@ -1427,6 +1428,38 @@ SQL.IO.prototype.clientlocalload = function() { this.fromXML(xmlDoc); } +SQL.IO.prototype.clientlocallist = function() { + if (!window.localStorage) { + alert("Sorry, your browser does not seem to support localStorage."); + return; + } + + /* --- Define some usefull vars --- */ + var baseKeysName = "wwwsqldesigner_databases_"; + var localLen = localStorage.length; + var data = ""; + var schemasFound = false; + var code = 200; + + /* --- work --- */ + try { + for (var i = 0; i< localLen; ++i) { + var key = localStorage.key(i); + if((new RegExp(baseKeysName)).test(key)) { + var result = key.substring(baseKeysName.length); + schemasFound = true; + data += result + "\n"; + } + } + if (!schemasFound) { + throw new Error("No data available"); + } + } catch (e) { + alert("Error loading database names from localStorage! ("+e.message+")"); + return; + } + this.listresponse(data, code); +} SQL.IO.prototype.clientsql = function() { var bp = this.owner.getOption("staticpath"); |