511343d2aa
Originally we assumed all settings would be editable in the settings page, but over time we've added thigns to localStorage that aren't user settable settings. This means we shouldn't save all you localStorage settings everything time only a single setting has been saved. This change only changes the setting you've changed via the settings page, meaning it will never update non-user-settable settings.
42 lines
1.1 KiB
JavaScript
42 lines
1.1 KiB
JavaScript
import Route from '@ember/routing/route';
|
|
import { inject as service } from '@ember/service';
|
|
import { hash } from 'rsvp';
|
|
import { get, set } from '@ember/object';
|
|
|
|
export default Route.extend({
|
|
client: service('client/http'),
|
|
repo: service('settings'),
|
|
dcRepo: service('repository/dc'),
|
|
nspacesRepo: service('repository/nspace/disabled'),
|
|
model: function(params) {
|
|
const app = this.modelFor('application');
|
|
return hash({
|
|
item: this.repo.findAll(),
|
|
dc: this.dcRepo.getActive(undefined, app.dcs),
|
|
nspace: this.nspacesRepo.getActive(),
|
|
}).then(model => {
|
|
if (typeof get(model.item, 'client.blocking') === 'undefined') {
|
|
set(model, 'item.client', { blocking: true });
|
|
}
|
|
return model;
|
|
});
|
|
},
|
|
setupController: function(controller, model) {
|
|
controller.setProperties(model);
|
|
},
|
|
actions: {
|
|
update: function(slug, item) {
|
|
switch (slug) {
|
|
case 'client':
|
|
if (!get(item, 'client.blocking')) {
|
|
this.client.abort();
|
|
}
|
|
break;
|
|
}
|
|
this.repo.persist({
|
|
[slug]: item,
|
|
});
|
|
},
|
|
},
|
|
});
|