ui/app/components/edit-ssl-termination/component.js

56 lines
1.5 KiB
JavaScript

import Ember from 'ember';
export default Ember.Component.extend({
launchConfig: null,
listenersArray: null,
balancerService: null,
certificates: null,
alternates: null,
didInitAttrs() {
var alternates = (this.get('balancerService.certificateIds')||[]).map((id) => {
return {value: id};
});
this.set('alternates', alternates);
},
actions: {
addAlternate() {
this.get('alternates').pushObject({value: null});
},
removeAlternate(alt) {
this.get('alternates').removeObject(alt);
}
},
alternateCertificates: function() {
var def = this.get('balancerService.defaultCertificateId');
return this.get('certificates').slice().filter((obj) => {
return Ember.get(obj, 'id') !== def;
});
}.property('certificates.@each.id','balancerService.defaultCertificateId'),
hasSslListeners: function() {
return this.get('listenersArray').filterBy('ssl',true).get('length') > 0;
}.property('listenersArray.@each.ssl'),
defaultDidChange: function() {
var def = this.get('balancerService.defaultCertificateId');
this.get('alternates').forEach((obj) => {
if ( Ember.get(obj, 'value') === def )
{
Ember.set(obj,'value',null);
}
});
}.observes('balancerService.defaultCertificateId'),
alternatesDidChange: function() {
this.set('balancerService.certificateIds', this.get('alternates').map((obj) => {
return Ember.get(obj, 'value');
}).filter((id) => { return !!id; }).uniq());
}.observes('alternates.@each.value'),
});