mirror of https://github.com/rancher/ui.git
Bugs
This commit is contained in:
parent
0853752cf0
commit
cc6d95056f
|
|
@ -41,7 +41,9 @@
|
|||
|
||||
<div class="btn-group r-ml10">
|
||||
{{#link-to "stack.index" classNames="btn btn-sm btn-default"}}{{tooltip-link icon="icon-tasks" text=(t 'tooltipLink.list') options=listLinkOptions}}{{/link-to}}
|
||||
{{#if model.canViewConfig}}
|
||||
{{#link-to "stack.graph" classNames="btn btn-sm btn-default"}}{{tooltip-link icon="icon-share" text=(t 'tooltipLink.linkGraph') options=graphLinkOptions}}{{/link-to}}
|
||||
{{/if}}
|
||||
{{#link-to "stack.code" classNames="btn btn-sm btn-default"}}{{tooltip-link icon="icon-file" text=(t 'tooltipLink.composeYaml') options=yamlLinkOptions}}{{/link-to}}
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
import Ember from 'ember';
|
||||
import Util from 'ui/utils/util';
|
||||
import C from 'ui/utils/constants';
|
||||
|
||||
export default Ember.Mixin.create({
|
||||
reservedKeys: ['delayTimer','pollTimer'],
|
||||
|
|
@ -113,4 +114,16 @@ export default Ember.Mixin.create({
|
|||
// but leave delay set so that it doesn't restart, (don't clearDelay())
|
||||
});
|
||||
},
|
||||
|
||||
stateChanged: function() {
|
||||
// Get rid of things that are removed
|
||||
if ( C.REMOVEDISH_STATES.includes(this.state) ) {
|
||||
try {
|
||||
this.clearPoll();
|
||||
this.clearDelay();
|
||||
this.get('store')._remove(this.get('type'), this);
|
||||
} catch (e) {
|
||||
}
|
||||
}
|
||||
}.observes('state'),
|
||||
});
|
||||
|
|
|
|||
|
|
@ -2,8 +2,6 @@ import Ember from 'ember';
|
|||
import Socket from 'ui/utils/socket';
|
||||
import C from 'ui/utils/constants';
|
||||
|
||||
let DEADTOME = ['removed','purging','purged'];
|
||||
|
||||
const ORCHESTRATION_STACKS = [
|
||||
'k8s',
|
||||
'swarm',
|
||||
|
|
@ -56,7 +54,7 @@ export default Ember.Mixin.create({
|
|||
this[key](d);
|
||||
}
|
||||
|
||||
if ( resource && DEADTOME.includes(resource.state) ) {
|
||||
if ( resource && C.REMOVEDISH_STATES.includes(resource.state) ) {
|
||||
store._remove(resource.type, resource);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,14 @@
|
|||
import Resource from 'ember-api-store/models/resource';
|
||||
import PolledResource from 'ui/mixins/cattle-polled-resource';
|
||||
|
||||
var Password = Resource.extend({
|
||||
var Password = Resource.extend(PolledResource, {
|
||||
type: 'password',
|
||||
});
|
||||
|
||||
// Passwords don't get pushed by /subscribe WS, so refresh more often
|
||||
Password.reopenClass({
|
||||
pollTransitioningDelay: 1000,
|
||||
pollTransitioningInterval: 5000,
|
||||
});
|
||||
|
||||
export default Password;
|
||||
|
|
|
|||
|
|
@ -152,6 +152,10 @@ var Stack = Resource.extend({
|
|||
return out;
|
||||
}.property('actionLinks.{remove,purge,exportconfig,finishupgrade,cancelupgrade,rollback,cancelrollback,update}','canActivate','canDeactivate','externalIdInfo.kind'),
|
||||
|
||||
canViewConfig: function() {
|
||||
return !!this.get('actionLinks.exportconfig');
|
||||
}.property('actionLinks.exportconfig'),
|
||||
|
||||
combinedState: function() {
|
||||
var stack = this.get('state');
|
||||
var health = this.get('healthState');
|
||||
|
|
|
|||
|
|
@ -18,6 +18,13 @@ export default Ember.Service.extend({
|
|||
return this.get('projects.current.orchestration') || 'cattle';
|
||||
}),
|
||||
|
||||
reset() {
|
||||
this.setProperties({
|
||||
cache: null,
|
||||
catalogs: null,
|
||||
});
|
||||
},
|
||||
|
||||
refresh() {
|
||||
const store = this.get('store');
|
||||
|
||||
|
|
|
|||
|
|
@ -186,14 +186,19 @@ export default Ember.Service.extend(Ember.Evented, {
|
|||
let version = this.get('rancherVersion');
|
||||
if ( !version )
|
||||
{
|
||||
return 'latest';
|
||||
return null;
|
||||
}
|
||||
|
||||
return minorVersion(version);
|
||||
}.property('rancherVersion'),
|
||||
|
||||
docsBase: function() {
|
||||
let version = this.get('minorVersion');
|
||||
let full = this.get('rancherVersion');
|
||||
let version = 'latest';
|
||||
if ( full ) {
|
||||
version = minorVersion(full);
|
||||
}
|
||||
|
||||
let lang = ((this.get('intl._locale')||[])[0]||'').replace(/-.*$/,'');
|
||||
if ( !lang || lang === 'none' || C.LANGUAGE.DOCS.indexOf(lang) === -1 ) {
|
||||
lang = 'en';
|
||||
|
|
|
|||
|
|
@ -7,12 +7,14 @@ import Volume from 'ui/models/volume';
|
|||
export default Ember.Service.extend({
|
||||
store: Ember.inject.service(),
|
||||
userStore: Ember.inject.service('user-store'),
|
||||
catalog: Ember.inject.service(),
|
||||
|
||||
reset: function() {
|
||||
// Forget all the things
|
||||
console.log('Store Reset');
|
||||
this.get('userStore').reset();
|
||||
this.get('store').reset();
|
||||
this.get('catalog').reset();
|
||||
|
||||
// Some classes have extra special hackery to cache relationships
|
||||
Backup.reset();
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ export default Ember.Route.extend({
|
|||
|
||||
model() {
|
||||
return Ember.RSVP.hash({
|
||||
catalogInfo: this.get('catalog').fetchTemplates({templateBase: 'infra', category: 'all'}),
|
||||
catalogInfo: this.get('catalog').fetchTemplates({templateBase: C.EXTERNAL_ID.KIND_INFRA, category: C.EXTERNAL_ID.KIND_ALL}),
|
||||
serviceChoices: this.get('allServices').choices(),
|
||||
}).then((hash) => {
|
||||
let existing = this.modelFor('settings.projects').projectTemplates;
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ export default Ember.Route.extend({
|
|||
return Ember.RSVP.hash({
|
||||
all: userStore.findAllUnremoved('project'),
|
||||
projectTemplates: userStore.findAll('projectTemplate'),
|
||||
catalogTemplates: this.get('catalog').fetchTemplates({templateBase: C.EXTERNAL_ID.KIND_INFRA}),
|
||||
catalogTemplates: this.get('catalog').fetchTemplates({templateBase: C.EXTERNAL_ID.KIND_INFRA, category: C.EXTERNAL_ID.KIND_ALL}),
|
||||
}).then((hash) => {
|
||||
let tplId = null;
|
||||
let tpl = hash.projectTemplates.objectAt(0);
|
||||
|
|
|
|||
|
|
@ -35,6 +35,14 @@ function comparePart(in1, in2) {
|
|||
}
|
||||
|
||||
export function compare(in1, in2) {
|
||||
if ( !in1 ) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
if ( !in2 ) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
let p1 = parse(in1);
|
||||
let p2 = parse(in2);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue