mirror of https://github.com/rancher/ui.git
124 lines
3.2 KiB
JavaScript
124 lines
3.2 KiB
JavaScript
import Ember from 'ember';
|
|
|
|
export default Ember.Controller.extend({
|
|
application: Ember.inject.controller(),
|
|
projects: Ember.inject.service(),
|
|
allServices: Ember.inject.service(),
|
|
|
|
service: Ember.computed.oneWay('model.service'),
|
|
rules: Ember.computed.oneWay('service.lbConfig.portRules'),
|
|
|
|
sortBy: 'priority',
|
|
fixedLaunchConfig: null,
|
|
activeLaunchConfig: null,
|
|
portSortBy: 'privatePort',
|
|
|
|
headers: [
|
|
{
|
|
name: 'priority',
|
|
sort: ['priority'],
|
|
translationKey: 'formBalancerRules.priority.label',
|
|
width: 85,
|
|
},
|
|
{
|
|
name: 'access',
|
|
sort: ['access'],
|
|
translationKey: 'formBalancerRules.access.label',
|
|
width: 85,
|
|
},
|
|
{
|
|
name: 'protocol',
|
|
sort: ['protocol'],
|
|
translationKey: 'formBalancerRules.protocol.label',
|
|
width: 95
|
|
},
|
|
{
|
|
name: 'hostname',
|
|
sort: ['hostname'],
|
|
translationKey: 'formBalancerRules.hostname.label',
|
|
},
|
|
{
|
|
name: 'sourcePort',
|
|
sort: ['sourcePort'],
|
|
translationKey: 'formBalancerRules.sourcePort.label',
|
|
width: 145
|
|
},
|
|
{
|
|
name: 'path',
|
|
sort: ['path'],
|
|
translationKey: 'formBalancerRules.path.label',
|
|
},
|
|
{
|
|
name: 'target',
|
|
translationKey: 'formBalancerRules.target',
|
|
},
|
|
{
|
|
name: 'targetPort',
|
|
sort: ['targetPort'],
|
|
translationKey: 'formBalancerRules.targetPort.label',
|
|
width: 80
|
|
},
|
|
{
|
|
name: 'backendName',
|
|
sort: ['backendName'],
|
|
translationKey: 'formBalancerRules.backendName.label',
|
|
},
|
|
],
|
|
|
|
portHeaders: [
|
|
{
|
|
name: 'publicIp',
|
|
sort: ['ipAddress'],
|
|
searchField: 'ipAddress',
|
|
translationKey: 'generic.ipAddress',
|
|
},
|
|
{
|
|
name: 'publicPort',
|
|
sort: ['port'],
|
|
searchField: 'port',
|
|
translationKey: 'containerPage.portsTab.table.public',
|
|
},
|
|
],
|
|
|
|
actions: {
|
|
selectMaster() {
|
|
this.set('activeLaunchConfig', this.get('fixedLaunchConfig'));
|
|
},
|
|
selectSidekick(idx) {
|
|
let service = this.get('model.service');
|
|
let configs = service.get('secondaryLaunchConfigs');
|
|
|
|
this.set('activeLaunchConfig', configs[idx]);
|
|
},
|
|
changeService(service) {
|
|
var transitionTo = this.get('application.currentRouteName');
|
|
|
|
if (service.type === 'dnsService') {
|
|
transitionTo = 'service.links';
|
|
}
|
|
|
|
this.transitionToRoute(transitionTo, service.get('id'));
|
|
}
|
|
},
|
|
|
|
serviceLinksNamed: Ember.computed('service.serviceLinks.[]', function() {
|
|
let as = this.get('allServices');
|
|
|
|
( this.get('service.serviceLinks') || []).forEach((link) => {
|
|
if (link) {
|
|
let matching = as.matching(link.name, this.get('model.stack'));
|
|
|
|
if (matching) {
|
|
link.setProperties({
|
|
service: matching
|
|
})
|
|
}
|
|
}
|
|
return link;
|
|
});
|
|
|
|
return this.get('service.serviceLinks');
|
|
|
|
})
|
|
});
|