diff --git a/CHANGES.md b/CHANGES.md index 0abf8a8..fdbee14 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -63,6 +63,7 @@ Storage: * new `save` and `saved` events are triggered for the whole set of entities being saved * new `saveentity` and `savedentity` events are triggered for each entity being saved * Options used when calling `saveRemote` are now passed on in the save-related events +* key prefix used with localStorage is now configurable Create.js internals: diff --git a/examples/create.js b/examples/create.js index c790cb1..bdbbfab 100644 --- a/examples/create.js +++ b/examples/create.js @@ -179,7 +179,8 @@ See http://createjs.org for more information vie: this.vie, url: this.options.url, localize: this.options.localize, - language: this.options.language + language: this.options.language, + storagePrefix: this.options.storagePrefix }); var widget = this; @@ -1754,6 +1755,8 @@ See http://createjs.org for more information options: { // Whether to use localstorage localStorage: false, + // String prefix for localStorage identifiers + storagePrefix: '', removeLocalstorageOnIgnore: true, // VIE instance to use for storage handling vie: null, @@ -2119,7 +2122,8 @@ See http://createjs.org for more information } return this._saveLocalReferences(model.primaryCollection.subject, model.primaryCollection.predicate, model); } - window.localStorage.setItem(model.getSubjectUri(), JSON.stringify(model.toJSONLD())); + var key = this.options.storagePrefix + model.getSubjectUri(); + window.localStorage.setItem(key, JSON.stringify(model.toJSONLD())); }, _getReferenceId: function (model, property) { @@ -2136,7 +2140,7 @@ See http://createjs.org for more information } var widget = this; - var identifier = subject + ':' + predicate; + var identifier = this.options.storagePrefix + subject + ':' + predicate; var json = model.toJSONLD(); if (window.localStorage.getItem(identifier)) { var referenceList = JSON.parse(window.localStorage.getItem(identifier)); @@ -2157,7 +2161,8 @@ See http://createjs.org for more information return false; } - var local = window.localStorage.getItem(model.getSubjectUri()); + var key = this.options.storagePrefix + model.getSubjectUri(); + var local = window.localStorage.getItem(key); if (!local) { return false; } @@ -2169,8 +2174,8 @@ See http://createjs.org for more information if (!this.options.localStorage) { return false; } - - if (!window.localStorage.getItem(model.getSubjectUri())) { + var key = this.options.storagePrefix + model.getSubjectUri(); + if (!window.localStorage.getItem(key)) { return false; } return true; @@ -2181,7 +2186,8 @@ See http://createjs.org for more information return; } - var local = window.localStorage.getItem(model.getSubjectUri()); + var key = this.options.storagePrefix + model.getSubjectUri(); + var local = window.localStorage.getItem(key); if (!local) { return; } @@ -2203,7 +2209,7 @@ See http://createjs.org for more information return; } - var identifier = this._getReferenceId(model, property); + var identifier = this.options.storagePrefix + this._getReferenceId(model, property); var local = window.localStorage.getItem(identifier); if (!local) { return; @@ -2243,8 +2249,8 @@ See http://createjs.org for more information if (!this.options.localStorage) { return; } - - window.localStorage.removeItem(model.getSubjectUri()); + var key = this.options.storagePrefix + model.getSubjectUri(); + window.localStorage.removeItem(key); } }); })(jQuery); diff --git a/src/jquery.Midgard.midgardCreate.js b/src/jquery.Midgard.midgardCreate.js index 57e7529..8bec2f7 100644 --- a/src/jquery.Midgard.midgardCreate.js +++ b/src/jquery.Midgard.midgardCreate.js @@ -184,7 +184,8 @@ vie: this.vie, url: this.options.url, localize: this.options.localize, - language: this.options.language + language: this.options.language, + storagePrefix: this.options.storagePrefix }); var widget = this; diff --git a/src/jquery.Midgard.midgardStorage.js b/src/jquery.Midgard.midgardStorage.js index 240cfba..75ef838 100644 --- a/src/jquery.Midgard.midgardStorage.js +++ b/src/jquery.Midgard.midgardStorage.js @@ -15,6 +15,8 @@ options: { // Whether to use localstorage localStorage: false, + // String prefix for localStorage identifiers + storagePrefix: '', removeLocalstorageOnIgnore: true, // VIE instance to use for storage handling vie: null, @@ -380,7 +382,8 @@ } return this._saveLocalReferences(model.primaryCollection.subject, model.primaryCollection.predicate, model); } - window.localStorage.setItem(model.getSubjectUri(), JSON.stringify(model.toJSONLD())); + var key = this.options.storagePrefix + model.getSubjectUri(); + window.localStorage.setItem(key, JSON.stringify(model.toJSONLD())); }, _getReferenceId: function (model, property) { @@ -397,7 +400,7 @@ } var widget = this; - var identifier = subject + ':' + predicate; + var identifier = this.options.storagePrefix + subject + ':' + predicate; var json = model.toJSONLD(); if (window.localStorage.getItem(identifier)) { var referenceList = JSON.parse(window.localStorage.getItem(identifier)); @@ -418,7 +421,8 @@ return false; } - var local = window.localStorage.getItem(model.getSubjectUri()); + var key = this.options.storagePrefix + model.getSubjectUri(); + var local = window.localStorage.getItem(key); if (!local) { return false; } @@ -430,8 +434,8 @@ if (!this.options.localStorage) { return false; } - - if (!window.localStorage.getItem(model.getSubjectUri())) { + var key = this.options.storagePrefix + model.getSubjectUri(); + if (!window.localStorage.getItem(key)) { return false; } return true; @@ -442,7 +446,8 @@ return; } - var local = window.localStorage.getItem(model.getSubjectUri()); + var key = this.options.storagePrefix + model.getSubjectUri(); + var local = window.localStorage.getItem(key); if (!local) { return; } @@ -464,7 +469,7 @@ return; } - var identifier = this._getReferenceId(model, property); + var identifier = this.options.storagePrefix + this._getReferenceId(model, property); var local = window.localStorage.getItem(identifier); if (!local) { return; @@ -504,8 +509,8 @@ if (!this.options.localStorage) { return; } - - window.localStorage.removeItem(model.getSubjectUri()); + var key = this.options.storagePrefix + model.getSubjectUri(); + window.localStorage.removeItem(key); } }); })(jQuery);