Hide scale up button on global services

This commit is contained in:
Vincent Fiduccia 2015-06-01 17:56:18 -07:00
parent 1c36c1b29b
commit 63692dd1fc
4 changed files with 63 additions and 24 deletions

View File

@ -1,7 +1,9 @@
import Ember from 'ember';
import ReadLabels from 'ui/mixins/read-labels';
export default Ember.Component.extend({
export default Ember.Component.extend(ReadLabels,{
model: null,
labelResource: Ember.computed.alias('model'),
classNames: ['pod','host','resource-action-hover'],
classNameBindings: ['stateBorder','isMachine:machine-host'],
@ -25,23 +27,4 @@ export default Ember.Component.extend({
stateBorder: function() {
return this.get('model.stateColor').replace("text-","border-top-");
}.property('model.stateColor'),
labelArray: function() {
var out = [];
var obj = this.get('model.labels')||{};
var keys = Ember.keys(obj).sort();
keys.forEach(function(key) {
if ( key.indexOf('io.rancher') === -1 )
{
out.push(Ember.Object.create({
key: key,
value: obj[key],
isUser: true,
kind: 'User',
}));
}
});
return out;
}.property('model.labels.@each.{key,value}'),
});

View File

@ -57,9 +57,9 @@
<div class="pod-info-item"><i class="ss-hdd"></i> {{model.diskBlurb}}</div>
{{/if}}
</div>
{{#if labelArray.length}}
{{#if userLabelArray.length}}
<div class="pod-info-line" style="white-space: normal; padding-top: 5px;">
{{#each label in labelArray}}
{{#each label in userLabelArray}}
<span class="label label-default clip" style="display: inline-block; max-width: 100%;">{{label.key}}{{#if label.value}}={{label.value}}{{/if}}</span>
{{/each}}
</div>

View File

@ -1,7 +1,10 @@
import Ember from 'ember';
import ReadLabels from 'ui/mixins/read-labels';
import C from 'ui/utils/constants';
export default Ember.Component.extend({
export default Ember.Component.extend(ReadLabels, {
model: null,
labelResource: Ember.computed.alias('model.launchConfig'),
classNames: ['pod','service','resource-action-hover'],
classNameBindings: ['stateBorder'],
@ -22,7 +25,14 @@ export default Ember.Component.extend({
}.property('model.type'),
showAdd: function() {
return this.get('isActive') && this.get('model.type') !== 'dnsService';
if ( this.get('isActive') && this.get('model.type') !== 'dnsService' )
{
return this.getLabel(C.LABEL.SCHED_GLOBAL) === null;
}
else
{
return false;
}
}.property('isActive','model.type'),
stateBackground: function() {

46
app/mixins/read-labels.js Normal file
View File

@ -0,0 +1,46 @@
import Ember from 'ember';
export default Ember.Mixin.create({
labelResource: null,
labelArray: function() {
var out = [];
var obj = this.get('labelResource.labels')||{};
var keys = Ember.keys(obj).sort();
keys.forEach(function(key) {
var isUser = key.indexOf('io.rancher') !== 0;
out.push(Ember.Object.create({
key: key,
value: obj[key],
isUser: isUser,
kind: (isUser ? 'User' : 'System'),
}));
});
return out;
}.property('labelResource.labels.@each.{key,value}'),
userLabelArray: function() {
return this.get('labelArray').filterProperty('isUser', true);
}.property('labelArray.@each.{key,value,isUser}'),
systemLabelArray: function() {
return this.get('labelArray').filterProperty('isUser', false);
}.property('labelArray.@each.{key,value,isUser}'),
getLabel: function(key) {
key = (key||'').toLowerCase();
var ary = this.get('labelArray');
var item;
for ( var i = 0 ; i < ary.get('length') ; i++ )
{
item = ary.objectAt(i);
if ( item.get('key').toLowerCase() === key )
{
return item;
}
}
return null;
},
});