mirror of https://github.com/rancher/ui.git
91 lines
2.2 KiB
JavaScript
91 lines
2.2 KiB
JavaScript
import Ember from 'ember';
|
|
import NewOrEdit from 'ui/mixins/new-or-edit';
|
|
|
|
export default Ember.Controller.extend(NewOrEdit, {
|
|
editing: false,
|
|
primaryResource: Ember.computed.alias('model.registry'),
|
|
|
|
activeDriver: null,
|
|
isCustom: Ember.computed.equal('activeDriver','custom'),
|
|
|
|
actions: {
|
|
selectDriver: function(name) {
|
|
var driver = this.get('drivers').filterBy('name',name)[0];
|
|
this.set('activeDriver', driver.name);
|
|
this.set('model.registry.serverAddress', driver.value);
|
|
},
|
|
|
|
cancel: function() {
|
|
this.transitionToRoute('registries');
|
|
},
|
|
},
|
|
|
|
drivers: function() {
|
|
var drivers = [
|
|
{name: 'dockerhub', label: 'DockerHub', css: 'dockerhub', value: 'index.docker.io' },
|
|
{name: 'quay', label: 'Quay.io', css: 'quay', value: 'quay.io', },
|
|
{name: 'custom', label: 'Custom', css: 'custom', value: '', },
|
|
];
|
|
|
|
var active = this.get('activeDriver');
|
|
drivers.forEach(function(driver) {
|
|
driver.active = ( active === driver.name );
|
|
});
|
|
|
|
return drivers;
|
|
}.property('activeDriver'),
|
|
|
|
validate: function() {
|
|
this._super();
|
|
var errors = this.get('errors')||[];
|
|
|
|
var cred = this.get('model.credential');
|
|
cred.set('registryId', 'tbd');
|
|
|
|
errors.pushObjects(cred.validationErrors());
|
|
|
|
if ( errors.get('length') > 0 )
|
|
{
|
|
this.set('errors', errors.uniq());
|
|
return false;
|
|
}
|
|
|
|
return true;
|
|
},
|
|
|
|
doSave: function() {
|
|
var registry = this.get('model.registry');
|
|
var existing = this.get('model.allRegistries').filterBy('serverAddress', registry.get('serverAddress'))[0];
|
|
if ( existing )
|
|
{
|
|
this.set('model.registry', existing);
|
|
return Ember.RSVP.resolve();
|
|
}
|
|
else
|
|
{
|
|
return this._super();
|
|
}
|
|
},
|
|
|
|
didSave: function() {
|
|
var registry = this.get('model.registry');
|
|
var cred = this.get('model.credential');
|
|
|
|
var existing = registry.get('credentials.lastObject');
|
|
if ( existing )
|
|
{
|
|
existing.merge(cred);
|
|
return existing.save();
|
|
}
|
|
else
|
|
{
|
|
cred.set('registryId', registry.get('id'));
|
|
return cred.save();
|
|
}
|
|
},
|
|
|
|
doneSaving: function() {
|
|
this.transitionToRoute('registries');
|
|
},
|
|
});
|