diff --git a/app/authenticated/route.js b/app/authenticated/route.js index 2c7629430..5069d9311 100644 --- a/app/authenticated/route.js +++ b/app/authenticated/route.js @@ -61,7 +61,17 @@ export default Ember.Route.extend(AuthenticatedRouteMixin, { }, loadPreferences: function() { - return this.get('store').find('userpreference', null, {forceReload: true}); + var store = this.get('store'); + if ( store.hasRecordFor('schema','userpreference') ) + { + this.set('app.hasUserPreferences', true); + return this.get('store').find('userpreference', null, {forceReload: true}); + } + else + { + this.set('app.hasUserPreferences', false); + return Ember.RSVP.resolve(); + } }, selectDefaultProject: function(active, controller) { diff --git a/app/containers/new/route.js b/app/containers/new/route.js index 8f69a9ba9..d3864520c 100644 --- a/app/containers/new/route.js +++ b/app/containers/new/route.js @@ -32,7 +32,7 @@ export default Ember.Route.extend({ var data; if ( params.containerId ) { - data = results[3].serializeForNew(); + data = results[2].serializeForNew(); } else { diff --git a/app/initializers/prefs.js b/app/initializers/prefs.js index d509a62b6..1b79a6129 100644 --- a/app/initializers/prefs.js +++ b/app/initializers/prefs.js @@ -10,6 +10,7 @@ export function initialize(container, application) { var prefs = UserPreferences.create({ // Store isn't automatically injected in store: container.lookup('store:main'), + app: application, }); // Inject GitHub lookup as 'github' property diff --git a/app/utils/user-preferences.js b/app/utils/user-preferences.js index d038861fd..5c1f665f1 100644 --- a/app/utils/user-preferences.js +++ b/app/utils/user-preferences.js @@ -1,23 +1,34 @@ import Ember from "ember"; import UnremovedArrayProxy from 'ui/utils/unremoved-array-proxy'; +import LocalStorage from 'ui/utils/local-storage'; + +var localStore = LocalStorage.create(); export default Ember.Object.extend({ + app: null, store: null, + localStore: null, + + init: function() { + this._super(); + }, unremoved: function() { - console.log('unremoved'); return UnremovedArrayProxy.create({ sourceContent: this.get('store').all('userpreference') }); }.property(), findByName: function(key) { - console.log('findByName',key); return this.get('unremoved').filterProperty('name',key)[0]; }, unknownProperty: function(key) { - console.log('unknownProperty',key); + if ( !this.get('app.hasUserPreferences') ) + { + return localStore.get(key); + } + var value; // = undefined; var existing = this.findByName(key); @@ -38,7 +49,13 @@ export default Ember.Object.extend({ }, setUnknownProperty: function(key, value) { - console.log('setUnknownProperty', key, value); + if ( !this.get('app.hasUserPreferences') ) + { + var out = localStore.set(key,value); + this.notifyPropertyChange(key); + return out; + } + var obj = this.findByName(key); // Delete by set to undefined @@ -69,7 +86,11 @@ export default Ember.Object.extend({ }, clear: function() { - console.log('clear'); + if ( !this.get('app.hasUserPreferences') ) + { + return localStore.clear(); + } + this.beginPropertyChanges(); this.get('unremoved').forEach((obj) => {