Fix clone, support API without userpreferences

This commit is contained in:
Vincent Fiduccia 2015-05-13 12:23:53 -07:00
parent 913a3e07e4
commit 66cec22b87
4 changed files with 39 additions and 7 deletions

View File

@ -61,7 +61,17 @@ export default Ember.Route.extend(AuthenticatedRouteMixin, {
}, },
loadPreferences: function() { 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) { selectDefaultProject: function(active, controller) {

View File

@ -32,7 +32,7 @@ export default Ember.Route.extend({
var data; var data;
if ( params.containerId ) if ( params.containerId )
{ {
data = results[3].serializeForNew(); data = results[2].serializeForNew();
} }
else else
{ {

View File

@ -10,6 +10,7 @@ export function initialize(container, application) {
var prefs = UserPreferences.create({ var prefs = UserPreferences.create({
// Store isn't automatically injected in // Store isn't automatically injected in
store: container.lookup('store:main'), store: container.lookup('store:main'),
app: application,
}); });
// Inject GitHub lookup as 'github' property // Inject GitHub lookup as 'github' property

View File

@ -1,23 +1,34 @@
import Ember from "ember"; import Ember from "ember";
import UnremovedArrayProxy from 'ui/utils/unremoved-array-proxy'; import UnremovedArrayProxy from 'ui/utils/unremoved-array-proxy';
import LocalStorage from 'ui/utils/local-storage';
var localStore = LocalStorage.create();
export default Ember.Object.extend({ export default Ember.Object.extend({
app: null,
store: null, store: null,
localStore: null,
init: function() {
this._super();
},
unremoved: function() { unremoved: function() {
console.log('unremoved');
return UnremovedArrayProxy.create({ return UnremovedArrayProxy.create({
sourceContent: this.get('store').all('userpreference') sourceContent: this.get('store').all('userpreference')
}); });
}.property(), }.property(),
findByName: function(key) { findByName: function(key) {
console.log('findByName',key);
return this.get('unremoved').filterProperty('name',key)[0]; return this.get('unremoved').filterProperty('name',key)[0];
}, },
unknownProperty: function(key) { unknownProperty: function(key) {
console.log('unknownProperty',key); if ( !this.get('app.hasUserPreferences') )
{
return localStore.get(key);
}
var value; // = undefined; var value; // = undefined;
var existing = this.findByName(key); var existing = this.findByName(key);
@ -38,7 +49,13 @@ export default Ember.Object.extend({
}, },
setUnknownProperty: function(key, value) { 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); var obj = this.findByName(key);
// Delete by set to undefined // Delete by set to undefined
@ -69,7 +86,11 @@ export default Ember.Object.extend({
}, },
clear: function() { clear: function() {
console.log('clear'); if ( !this.get('app.hasUserPreferences') )
{
return localStore.clear();
}
this.beginPropertyChanges(); this.beginPropertyChanges();
this.get('unremoved').forEach((obj) => { this.get('unremoved').forEach((obj) => {