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() {
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) {

View File

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

View File

@ -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

View File

@ -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) => {