This commit is contained in:
Vincent Fiduccia 2016-09-29 17:27:08 -07:00
parent c6fcd79bb3
commit 5b009b27bd
8 changed files with 27 additions and 43 deletions

View File

@ -1,9 +1,8 @@
import Ember from 'ember';
import C from 'ui/utils/constants';
import { parseExternalId } from 'ui/utils/parse-externalid';
import FilterState from 'ui/mixins/filter-state';
export default Ember.Component.extend(FilterState, {
export default Ember.Component.extend({
prefs : Ember.inject.service(),
projects : Ember.inject.service(),
hasVm : Ember.computed.alias('projects.current.virtualMachine'),
@ -14,8 +13,6 @@ export default Ember.Component.extend(FilterState, {
collapsed : true,
classNames : ['stack-section'],
filterableContent : Ember.computed.alias('model.services'),
actions: {
toggleCollapse() {
var collapsed = this.toggleProperty('collapsed');
@ -55,12 +52,12 @@ export default Ember.Component.extend(FilterState, {
instanceCount: function() {
var count = 0;
(this.get('filtered')||[]).forEach((service) => {
count += service.get('instances.length')||0;
(this.get('model.services')||[]).forEach((service) => {
count += service.get('instanceCount')||0;
});
return count;
}.property('filtered.@each.healthState'),
}.property('model.services.@each.instanceCount'),
outputs: function() {
var out = [];

View File

@ -81,7 +81,7 @@
{{#if model.services.length}}
<table class="grid fixed sized" style="margin-bottom: 0">
<tbody>
{{#each filtered as |service|}}
{{#each model.services as |service|}}
<tr>
<td data-title="{{t 'stackSection.table.dataTitle.state'}}:" class="state">
{{badge-state model=service}}

View File

@ -9,7 +9,6 @@ export default Ember.Mixin.create({
defaultPageSize: -1,
removeAfterDelete: false,
dropKeys: ['data'],
headers: function() {
let out = {

View File

@ -51,7 +51,7 @@ export default Ember.Mixin.create({
this[key](d);
}
if ( resource && DEADTOME.contains(resource.state) ) {
if ( resource && DEADTOME.includes(resource.state) ) {
store._remove(resource.type, resource);
}
}
@ -184,26 +184,6 @@ export default Ember.Mixin.create({
this._includeChanged('registry', 'credentials', 'registryId', change.data.resource);
},
loadBalancerServiceChanged: function(change) {
this._includeChanged('stack', 'services', 'stackId', change.data.resource);
},
dnsServiceChanged: function(change) {
this._includeChanged('stack', 'services', 'stackId', change.data.resource);
},
externalServiceChanged: function(change) {
this._includeChanged('stack', 'services', 'stackId', change.data.resource);
},
serviceChanged: function(change) {
this._includeChanged('stack', 'services', 'stackId', change.data.resource);
},
kubernetesServiceChanged: function(change) {
this._includeChanged('stack', 'services', 'stackId', change.data.resource);
},
k8sResourceChanged: function(changeType, obj) {
//console.log('k8s change', changeType, (obj && obj.metadata && obj.metadata.uid ? obj.metadata.uid : 'none'));
if ( obj && obj.metadata && obj.metadata.uid && this.get('k8sUidBlacklist').indexOf(obj.metadata.uid) >= 0 )

View File

@ -22,6 +22,7 @@ var Service = Resource.extend({
modalService: Ember.inject.service('modal'),
instances: denormalizeInstanceArray('instanceIds'),
instanceCount: Ember.computed.alias('instances.length'),
actions: {
activate() {

View File

@ -3,7 +3,7 @@ import Resource from 'ember-api-store/models/resource';
import { parseExternalId } from 'ui/utils/parse-externalid';
import C from 'ui/utils/constants';
import Util from 'ui/utils/util';
import { denormalizeInstanceArray } from 'ui/utils/denormalize-instance';
import { denormalizeIdArray } from 'ember-api-store/utils/denormalize';
export function activeIcon(stack)
{
@ -24,7 +24,21 @@ var Stack = Resource.extend({
k8s: Ember.inject.service(),
modalService: Ember.inject.service('modal'),
services: denormalizeInstanceArray('serviceIds'),
services: denormalizeIdArray('serviceIds'),
services2: Ember.computed('serviceIds.[]', function() {
let field = 'serviceIds';
let type = field.replace(/Ids$/,'');
let out = [];
let store = this.get('store');
(this.get(field)||[]).forEach((id) => {
let obj = store.getById(type, id);
if ( obj ) {
out.push(obj);
}
});
return out;
}),
actions: {
activateServices: function() {

View File

@ -5,16 +5,9 @@ export default Ember.Route.extend({
var store = this.get('store');
var all = this.modelFor('stacks');
return store.find('stack', params.stack_id).then((stack) => {
return store.find('service', null, {
filter: {
stackId: stack.get('id'),
},
}).then((services) => {
stack.set('services', services||[]);
return Ember.Object.create({
stack: stack,
all: all,
});
return Ember.Object.create({
stack: stack,
all: all,
});
});
},

View File

@ -23,7 +23,7 @@
"devDependencies": {
"ansi_up": "^1.3.0",
"broccoli-asset-rev": "^2.4.2",
"ember-api-store": "^2.0.0-dev4",
"ember-api-store": "^2.0.0-dev7",
"ember-browserify": "^1.0.1",
"ember-cli": "^2.8.0",
"ember-cli-app-version": "^1.0.0",