mirror of https://github.com/rancher/ui.git
74 lines
1.6 KiB
JavaScript
74 lines
1.6 KiB
JavaScript
import Ember from 'ember';
|
|
|
|
export default Ember.Mixin.create({
|
|
actions: {
|
|
addTargetIp: function() {
|
|
this.get('targetIpArray').pushObject({value: null});
|
|
},
|
|
removeTargetIp: function(obj) {
|
|
this.get('targetIpArray').removeObject(obj);
|
|
},
|
|
},
|
|
|
|
which: null,
|
|
userHostname: null,
|
|
targetIpArray: null,
|
|
|
|
initFields: function() {
|
|
this._super();
|
|
this.initTargetIps();
|
|
},
|
|
|
|
initTargetIps: function() {
|
|
var hostname = this.get('service.hostname');
|
|
if ( hostname )
|
|
{
|
|
this.set('userHostname', hostname);
|
|
this.set('which','hostname');
|
|
}
|
|
else
|
|
{
|
|
var ips = this.get('service.externalIpAddresses');
|
|
var out = [];
|
|
if ( ips )
|
|
{
|
|
ips.forEach((ip) => {
|
|
out.push({ value: ip });
|
|
});
|
|
}
|
|
else
|
|
{
|
|
out.push({value: null});
|
|
}
|
|
|
|
this.set('targetIpArray', out);
|
|
this.set('which','ip');
|
|
}
|
|
},
|
|
|
|
valuesDidChange: function() {
|
|
if ( this.get('which') === 'hostname' )
|
|
{
|
|
this.setProperties({
|
|
'service.hostname': this.get('userHostname'),
|
|
'service.externalIpAddresses': null
|
|
});
|
|
}
|
|
else
|
|
{
|
|
var targets = this.get('targetIpArray');
|
|
if ( targets )
|
|
{
|
|
var out = targets.filterBy('value').map((choice) => {
|
|
return Ember.get(choice,'value');
|
|
}).uniq();
|
|
|
|
this.setProperties({
|
|
'service.hostname': null,
|
|
'service.externalIpAddresses': out
|
|
});
|
|
}
|
|
}
|
|
}.observes('targetIpArray.@each.{value}','userHostname','which'),
|
|
});
|