ui/app/admin-tab/settings/controller.js

78 lines
1.6 KiB
JavaScript

import Ember from 'ember';
import C from 'ui/utils/constants';
export default Ember.Controller.extend({
settings: Ember.inject.service(),
queryParams: ['backToAdd'],
backToAdd: false,
errors: null,
editing: true,
saving: false,
actions: {
setActiveCatalog: function(value) {
var out = [];
Object.keys(value).forEach((item) => {
if (item) {
out.push(`${item}=${value[item]}`);
}
});
this.get('model').set('catalog', out.join(','));
},
save: function() {
var model = this.get('model');
var value = this.get('model.host');
var propsOut = {};
if (!value) {
this.set('errors', ['Please provide a DNS name or IP address.']);
return;
}
Object.keys(model).forEach((item) => {
switch (item) {
case 'host':
propsOut[C.SETTING.API_HOST] = model[item];
break;
case 'catalog':
propsOut[C.SETTING.CATALOG_URL] = model[item];
break;
case 'vm':
propsOut[C.SETTING.VM_ENABLED] = model[item];
break;
default:
break;
}
});
this.set('saving', true);
this.get('settings').setProperties(propsOut).one('settingsPromisesResolved', () => {
this.set('saving', false);
if (this.get('backToAdd')) {
this.transitionToRoute('hosts.new');
} else {
this.send('goToPrevious');
}
});
},
cancel: function() {
this.send('goToPrevious');
}
},
});