ui/lib/istio/addon/components/port-selector/component.js

38 lines
874 B
JavaScript

import Component from '@ember/component';
import layout from './template';
import { get, set, observer } from '@ember/object'
import { isNumeric } from 'shared/utils/util';
export default Component.extend({
layout,
editing: true,
model: null,
init() {
this._super(...arguments);
this.initPort();
},
portNumberOrNameDidChange: observer('portNumberOrName', function() {
const port = get(this, 'portNumberOrName');
const model = get(this, 'model');
if ( port && isNumeric(port) ) {
set(model, 'port', { number: parseInt(port, 10) });
} else if ( port ) {
set(model, 'port', { name: port });
} else {
delete model['port'];
}
}),
initPort() {
const port = get(this, 'model.port');
if ( port ) {
set(this, 'portNumberOrName', get(port, 'name') || get(port, 'number') || null);
}
}
});