diff --git a/app/components/service-pod/template.hbs b/app/components/service-pod/template.hbs
index 70fff512e..0aebf272d 100644
--- a/app/components/service-pod/template.hbs
+++ b/app/components/service-pod/template.hbs
@@ -19,18 +19,16 @@
{{#each model.consumedServicesWithNames as |map|}}
- {{#with map.service controller="service" as |service|}}
-
- {{#link-to "service" service.environmentId service.id}}
-
- {{#if (eq map.name service.displayName)}}
- {{map.name}}
- {{else}}
- {{service.displayName}}{{#if map.name}} (as {{map.name}}){{/if}}
- {{/if}}
- {{/link-to}}
-
- {{/with}}
+
+ {{#link-to "service" map.service.environmentId map.service.id}}
+
+ {{#if (eq map.name map.service.displayName)}}
+ {{map.name}}
+ {{else}}
+ {{map.service.displayName}}{{#if map.name}} (as {{map.name}}){{/if}}
+ {{/if}}
+ {{/link-to}}
+
{{/each}}
{{#if model.externalIpAddresses.length}}
diff --git a/app/components/stack-section/template.hbs b/app/components/stack-section/template.hbs
index 79fc3807b..92b92a0dd 100644
--- a/app/components/stack-section/template.hbs
+++ b/app/components/stack-section/template.hbs
@@ -1,7 +1,9 @@
{{model.displayState}}
- {{resource-actions-menu model=model choices=model.availableActions}}
+ {{#with model controller="environment" as |ctrl|}}
+ {{resource-actions-menu model=ctrl choices=ctrl.availableActions parentController=this}}
+ {{/with}}
diff --git a/app/environment/controller.js b/app/environment/controller.js
index 88d7478ab..36fd2e2d8 100644
--- a/app/environment/controller.js
+++ b/app/environment/controller.js
@@ -16,7 +16,7 @@ export default Ember.Controller.extend(CattleTransitioningController, {
},
addService: function() {
- this.transitionToRoute('service.new', {
+ this.get('controllers.application').transitionToRoute('service.new', {
queryParams: {
environmentId: this.get('model.id'),
},
@@ -24,7 +24,7 @@ export default Ember.Controller.extend(CattleTransitioningController, {
},
addBalancer: function() {
- this.transitionToRoute('service.new-balancer', {
+ this.get('controllers.application').transitionToRoute('service.new-balancer', {
queryParams: {
environmentId: this.get('model.id'),
},
@@ -44,11 +44,11 @@ export default Ember.Controller.extend(CattleTransitioningController, {
},
viewCode: function() {
- this.transitionToRoute('environment.code', this.get('model.id'));
+ this.get('controllers.application').transitionToRoute('environment.code', this.get('model.id'));
},
viewGraph: function() {
- this.transitionToRoute('environment.graph', this.get('model.id'));
+ this.get('controllers.application').transitionToRoute('environment.graph', this.get('model.id'));
},
delete: function() {
diff --git a/app/host/model.js b/app/host/model.js
index 00acc20f4..f2218238a 100644
--- a/app/host/model.js
+++ b/app/host/model.js
@@ -1,4 +1,3 @@
-import Ember from 'ember';
import Resource from 'ember-api-store/models/resource';
var Host = Resource.extend({
diff --git a/app/mixins/edit-service.js b/app/mixins/edit-service.js
index 0fe4025ed..966acdf32 100644
--- a/app/mixins/edit-service.js
+++ b/app/mixins/edit-service.js
@@ -8,7 +8,7 @@ export default Ember.Mixin.create(EditLabels, {
actions: {
addServiceLink: function() {
- this.get('serviceLinksArray').pushObject(Ember.Object.create({serviceId: null, linkName: null}));
+ this.get('serviceLinksArray').pushObject(Ember.Object.create({name: '', serviceId: null}));
},
removeServiceLink: function(obj) {
this.get('serviceLinksArray').removeObject(obj);
@@ -25,7 +25,7 @@ export default Ember.Mixin.create(EditLabels, {
// Services
// ----------------------------------
serviceChoices: function() {
- var env = this.get('selectedEnvironment');
+ var env = this.get('model.selectedEnvironment');
var group = 'Stack: ' + (env.get('name') || '('+env.get('id')+')');
var list = (env.get('services')||[]).map((service) => {
@@ -47,7 +47,6 @@ export default Ember.Mixin.create(EditLabels, {
}.property('environment.services.@each.{id,name,state}'),
serviceLinksArray: null,
- serviceLinksAsMap: null,
initServiceLinks: function() {
var out = [];
var links;
@@ -63,11 +62,11 @@ export default Ember.Mixin.create(EditLabels, {
}
links.forEach(function(obj) {
- var linkName = obj.get('name');
+ var name = obj.get('name');
var service = obj.get('service');
out.push(Ember.Object.create({
- linkName: (linkName === service.get('name') ? '' : linkName),
+ name: (name === service.get('name') ? '' : name),
obj: service,
serviceId: service.get('id'),
}));
@@ -77,31 +76,7 @@ export default Ember.Mixin.create(EditLabels, {
},
serviceLinksDidChange: function() {
- // Sync with the actual environment
- var out = {};
- this.get('serviceLinksArray').forEach((row) => {
- if ( row.serviceId )
- {
- var name = row.linkName;
- if ( !name )
- {
- // If no name is given, use the name of the service
- var service = this.get('serviceChoices').filterProperty('id', row.serviceId)[0];
- if ( service )
- {
- name = service.get('obj.name');
- }
- }
-
- if ( name )
- {
- out[name] = row.serviceId;
- }
- }
- });
-
- this.set('serviceLinksAsMap', out);
- }.observes('serviceLinksArray.@each.{linkName,serviceId}'),
+ }.observes('serviceLinksArray.@each.{name,serviceId}'),
// ----------------------------------
// Scheduling
@@ -144,7 +119,15 @@ export default Ember.Mixin.create(EditLabels, {
var type = service.get('type').toLowerCase();
if ( type === 'service' )
{
- return service.doAction('setservicelinks', {serviceLinks: this.get('serviceLinksAsMap')});
+ var ary = []
+ this.get('serviceLinksArray').forEach((row) => {
+ if ( row.serviceId )
+ {
+ ary.push({name: row.name, serviceId: row.serviceId});
+ }
+ });
+
+ return service.doAction('setservicelinks', {serviceLinks: ary});
}
else if ( ['dnsservice','loadbalancerservice'].indexOf(type) >= 0 )
{
@@ -152,5 +135,4 @@ export default Ember.Mixin.create(EditLabels, {
return service.doAction('setservicelinks', {serviceIds: ids});
}
},
-
});
diff --git a/app/mixins/sortable.js b/app/mixins/sortable.js
index 4fa328dd0..eed7aae94 100644
--- a/app/mixins/sortable.js
+++ b/app/mixins/sortable.js
@@ -35,7 +35,7 @@ export default Ember.Mixin.create({
}.property('sortBy','sorts.@each.{name}'),
arranged: function(){
- var content = this.get('sortableContent');
+ var content = this.get('sortableContent')||[];
var currentSort = this.get('currentSort');
var out;
if ( currentSort )
diff --git a/app/router.js b/app/router.js
index ab2f73f09..04fcd305e 100644
--- a/app/router.js
+++ b/app/router.js
@@ -85,7 +85,7 @@ Router.map(function() {
});
// Applications
- this.resource('stacks-tab', {path: '/stacks'}, function() {
+ this.resource('applications-tab', {path: '/apps'}, function() {
this.resource('splash', {path: '/welcome'});
this.resource('service.new', {path: '/add-service'});
this.resource('service.new-balancer', {path: '/add-balancer'});
diff --git a/app/service/controller.js b/app/service/controller.js
index d7e56bb1a..d88b07d74 100644
--- a/app/service/controller.js
+++ b/app/service/controller.js
@@ -2,7 +2,7 @@ import Ember from 'ember';
import CattleTransitioningController from 'ui/mixins/cattle-transitioning-controller';
var ServiceController = Ember.Controller.extend(CattleTransitioningController, {
- needs: ['environment'],
+ needs: ['environment','application'],
environment: Ember.computed.alias('controllers.environment.model'),
actions: {
@@ -15,7 +15,10 @@ var ServiceController = Ember.Controller.extend(CattleTransitioningController, {
},
edit: function() {
- this.transitionToRoute('service.edit', this.get('environmentId'), this.get('model.id'));
+ this.get('controllers.application').setProperties({
+ editService: true,
+ originalModel: this.get('model'),
+ });
},
scaleUp: function() {
diff --git a/app/service/edit/controller.js b/app/service/edit/controller.js
deleted file mode 100644
index ed7f7590c..000000000
--- a/app/service/edit/controller.js
+++ /dev/null
@@ -1,32 +0,0 @@
-import Ember from 'ember';
-import Cattle from 'ui/utils/cattle';
-import EditService from 'ui/mixins/edit-service';
-import EditTargetIp from 'ui/mixins/edit-targetip';
-import C from 'ui/utils/constants';
-
-export default Ember.ObjectController.extend(Cattle.LegacyNewOrEditMixin, EditService, EditTargetIp, {
- editing: true,
-
- canScale: function() {
- if ( ['service','loadbalancerservice'].indexOf(this.get('service.type').toLowerCase()) >= 0 )
- {
- return !this.getLabel(C.LABEL.SCHED_GLOBAL);
- }
- else
- {
- return false;
- }
- }.property('service.type'),
-
- hasServiceLinks: function() {
- return this.get('service.type').toLowerCase() !== 'externalservice';
- }.property('service.type'),
-
- hasTargetIp: function() {
- return this.get('service.type').toLowerCase() === 'externalservice';
- }.property('service.type'),
-
- doneSaving: function() {
- this.send('goToPrevious');
- }
-});
diff --git a/app/service/edit/route.js b/app/service/edit/route.js
deleted file mode 100644
index a2e67d26e..000000000
--- a/app/service/edit/route.js
+++ /dev/null
@@ -1,39 +0,0 @@
-import Ember from 'ember';
-
-export default Ember.Route.extend({
- model: function(/*params, transition*/) {
- var store = this.get('store');
- var service = this.modelFor('service');
-
- var dependencies = [
- store.find('environment', service.get('environmentId')).then(function(env) {
- return env.importLink('services');
- })
- ];
-
- return Ember.RSVP.all(dependencies, 'Load service dependencies').then((results) => {
- return Ember.Object.create({
- service: service,
- selectedEnvironment: results[0],
- });
- });
- },
-
- setupController: function(controller, model) {
- var service = model.get('service');
- model.set('service', service.clone());
- controller.set('originalModel', service);
- controller.set('model', model);
- controller.initFields();
- },
-
- renderTemplate: function() {
- this.render('service/edit', {into: 'application', outlet: 'overlay'});
- },
-
- actions: {
- cancel: function() {
- this.goToPrevious();
- },
- }
-});
diff --git a/app/service/edit/template.hbs b/app/service/edit/template.hbs
deleted file mode 100644
index c6ee8bcd2..000000000
--- a/app/service/edit/template.hbs
+++ /dev/null
@@ -1,39 +0,0 @@
-
-
-{{partial "save-cancel"}}
diff --git a/app/service/edit/view.js b/app/service/edit/view.js
deleted file mode 100644
index 1e62fcc00..000000000
--- a/app/service/edit/view.js
+++ /dev/null
@@ -1,17 +0,0 @@
-import Overlay from "ui/overlay/view";
-import { addAction } from 'ui/utils/add-view-action';
-
-export default Overlay.extend({
- actions: {
- addServiceLink: addAction('addServiceLink', '.service-link'),
- addTargetIp: addAction('addTargetIp', '.target-ip'),
-
- overlayClose: function() {
- this.get('controller').send('cancel');
- },
-
- overlayEnter: function() {
- this.get('controller').send('save');
- },
- }
-});
diff --git a/app/service/model.js b/app/service/model.js
index 28cc951c7..3445bc598 100644
--- a/app/service/model.js
+++ b/app/service/model.js
@@ -16,7 +16,7 @@ var Service = Resource.extend(ReadLabels, {
consumedServicesUpdated: 0,
serviceLinks: null, // Used for clone
reservedKeys: ['_allMaps','consumedServicesUpdated','serviceLinks'],
- labelResource: Ember.computed.alias('model.launchConfig'),
+ labelResource: Ember.computed.alias('launchConfig'),
init: function() {
this._super();
@@ -163,7 +163,7 @@ var Service = Resource.extend(ReadLabels, {
}.property('type'),
activeIcon: function() {
- return activeIcon(this.get('model'));
+ return activeIcon(this);
}.property('type'),
});
diff --git a/app/services/endpoint.js b/app/services/endpoint.js
index 4528bb27d..e59b420b2 100644
--- a/app/services/endpoint.js
+++ b/app/services/endpoint.js
@@ -1,5 +1,6 @@
import Ember from 'ember';
import Util from 'ui/utils/util';
+import C from 'ui/utils/constants';
export default Ember.Service.extend({
cookies: Ember.inject.service(),
diff --git a/app/templates/container/edit-links.hbs b/app/templates/container/edit-links.hbs
index c92b57c17..a4f042218 100644
--- a/app/templates/container/edit-links.hbs
+++ b/app/templates/container/edit-links.hbs
@@ -7,7 +7,7 @@
{{#unless editing}}
{{#if containersOnRequestedHostIfUnmanaged.length}}
-
+
{{else}}
There are no other containers to link to.
{{/if}}
@@ -39,9 +39,9 @@
{{#if link.existing}}
- {{link.linkName}}
+ {{link.name}}
{{else}}
- {{input class="form-control input-sm" type="text" value=link.linkName placeholder="e.g. database"}}
+ {{input class="form-control input-sm" type="text" value=link.name placeholder="e.g. database"}}
{{/if}}
|
diff --git a/app/templates/container/edit-services.hbs b/app/templates/container/edit-services.hbs
index 694f69677..8b8078bee 100644
--- a/app/templates/container/edit-services.hbs
+++ b/app/templates/container/edit-services.hbs
@@ -39,7 +39,7 @@
|
- {{input class="form-control input-sm" type="text" value=link.linkName placeholder="e.g. database"}}
+ {{input class="form-control input-sm" type="text" value=link.name placeholder="e.g. database"}}
|
{{/if}}
diff --git a/app/utils/add-view-action.js b/app/utils/add-view-action.js
index fc84f2c16..1e137fc9a 100644
--- a/app/utils/add-view-action.js
+++ b/app/utils/add-view-action.js
@@ -2,7 +2,7 @@ import Ember from 'ember';
export function addAction(action, selector) {
return function() {
- this.get('controller').send(action);
+ this._super();
Ember.run.next(this, function() {
this.$(selector).last().focus();
});
|