mirror of https://github.com/rancher/ui.git
WIP
This commit is contained in:
parent
2a10611de9
commit
6633ec0500
|
|
@ -9,43 +9,12 @@ export default Ember.Route.extend({
|
||||||
store.findAllUnremoved('environment'),
|
store.findAllUnremoved('environment'),
|
||||||
store.findAllUnremoved('service'),
|
store.findAllUnremoved('service'),
|
||||||
store.findAllUnremoved('serviceconsumemap'),
|
store.findAllUnremoved('serviceconsumemap'),
|
||||||
store.findAllUnremoved('host'),
|
|
||||||
]).then((results) => {
|
]).then((results) => {
|
||||||
return Ember.Object.create({
|
return Ember.Object.create({
|
||||||
environments: results[0],
|
environments: results[0],
|
||||||
services: results[1],
|
services: results[1],
|
||||||
consumeMaps: results[2],
|
consumeMaps: results[2],
|
||||||
hosts: results[3],
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
afterModel: function(model /*, transition*/) {
|
|
||||||
var ready = !!model.get('services.length') && !!model.get('hosts.length');
|
|
||||||
var hasKubernetes = this.controllerFor('authenticated').get('hasKubernetes');
|
|
||||||
var hasSwarm = this.controllerFor('authenticated').get('hasSwarm');
|
|
||||||
|
|
||||||
if ( ready )
|
|
||||||
{
|
|
||||||
if ( this.controllerFor('authenticated').get('hasKubernetes') )
|
|
||||||
{
|
|
||||||
this.transitionTo('environments', this.get('projects.current.id'), {queryParams: {which: 'not-kubernetes'}});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if ( hasSwarm )
|
|
||||||
{
|
|
||||||
this.transitionTo('swarm-tab.waiting');
|
|
||||||
}
|
|
||||||
else if ( hasKubernetes )
|
|
||||||
{
|
|
||||||
this.transitionTo('k8s-tab.waiting', this.get('projects.current.id'));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
this.transitionTo('splash');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -27,7 +27,7 @@ export default Ember.Route.extend({
|
||||||
return project.updateOrchestrationState().then(done);
|
return project.updateOrchestrationState().then(done);
|
||||||
}
|
}
|
||||||
|
|
||||||
done();
|
return done();
|
||||||
|
|
||||||
function done() {
|
function done() {
|
||||||
return Ember.Object.create({
|
return Ember.Object.create({
|
||||||
|
|
@ -39,10 +39,12 @@ export default Ember.Route.extend({
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
afterModel(model, transition) {
|
afterModel(model/*, transition*/) {
|
||||||
var project = model.get('project');
|
var project = model.get('project');
|
||||||
var state = model.get('project.orchestrationState');
|
if ( !project.get('isReady') )
|
||||||
debugger;
|
{
|
||||||
|
this.replaceWith('authenticated.project.waiting', project.get('id'));
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
loadingError(err, transition, ret) {
|
loadingError(err, transition, ret) {
|
||||||
|
|
|
||||||
|
|
@ -6,9 +6,10 @@ export default Ember.Controller.extend({
|
||||||
settings: Ember.inject.service(),
|
settings: Ember.inject.service(),
|
||||||
docsBase: C.EXT_REFERENCES.DOCS,
|
docsBase: C.EXT_REFERENCES.DOCS,
|
||||||
|
|
||||||
|
/*
|
||||||
thingsChanged: function() {
|
thingsChanged: function() {
|
||||||
//console.log(this.get('application.currentRouteName'),this.get('model.hosts.length'),this.get('model.services.length'));
|
//console.log(this.get('application.currentRouteName'),this.get('model.hosts.length'),this.get('model.services.length'));
|
||||||
if ( this.get('application.currentRouteName') === 'splash')
|
if ( this.get('application.currentRouteName') === 'authenticated.project.waiting')
|
||||||
{
|
{
|
||||||
if ( this.get('model.hosts.length') && this.get('model.services.length') )
|
if ( this.get('model.hosts.length') && this.get('model.services.length') )
|
||||||
{
|
{
|
||||||
|
|
@ -16,6 +17,7 @@ export default Ember.Controller.extend({
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}.observes('model.hosts.length','model.services.length'),
|
}.observes('model.hosts.length','model.services.length'),
|
||||||
|
*/
|
||||||
|
|
||||||
actions: {
|
actions: {
|
||||||
newService() {
|
newService() {
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
import Ember from 'ember';
|
import Ember from 'ember';
|
||||||
|
|
||||||
export default Ember.Route.extend({
|
export default Ember.Route.extend({
|
||||||
|
/*
|
||||||
redirect: function() {
|
redirect: function() {
|
||||||
var main = this.modelFor('applications-tab');
|
var main = this.modelFor('applications-tab');
|
||||||
if ( main.get('hosts.length') && main.get('services.length') )
|
if ( main.get('hosts.length') && main.get('services.length') )
|
||||||
|
|
@ -22,4 +23,5 @@ export default Ember.Route.extend({
|
||||||
|
|
||||||
return main;
|
return main;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
Welcome, You've got Mail
|
||||||
{{#unless model.hosts.length}}
|
{{#unless model.hosts.length}}
|
||||||
<section class="welcome well">
|
<section class="welcome well">
|
||||||
<i class="icon icon-host"></i>
|
<i class="icon icon-host"></i>
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,8 @@ import PolledResource from 'ui/mixins/cattle-polled-resource';
|
||||||
import Ember from 'ember';
|
import Ember from 'ember';
|
||||||
import C from 'ui/utils/constants';
|
import C from 'ui/utils/constants';
|
||||||
|
|
||||||
|
const { getOwner } = Ember;
|
||||||
|
|
||||||
var Project = Resource.extend(PolledResource, {
|
var Project = Resource.extend(PolledResource, {
|
||||||
prefs: Ember.inject.service(),
|
prefs: Ember.inject.service(),
|
||||||
projects: Ember.inject.service(),
|
projects: Ember.inject.service(),
|
||||||
|
|
@ -164,8 +166,8 @@ var Project = Resource.extend(PolledResource, {
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let projectStore = getOwner(this).lookup('store:main');
|
||||||
var promises = [];
|
let promises = [];
|
||||||
|
|
||||||
function _hasSystem(stacks) {
|
function _hasSystem(stacks) {
|
||||||
stacks.forEach((stack) => {
|
stacks.forEach((stack) => {
|
||||||
|
|
@ -183,7 +185,7 @@ var Project = Resource.extend(PolledResource, {
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
promises.push(this.get('store').findAllUnremoved('environment').then((stacks) => {
|
promises.push(projectStore.findAllUnremoved('environment').then((stacks) => {
|
||||||
this.set('_stacks', stacks);
|
this.set('_stacks', stacks);
|
||||||
_hasSystem(stacks);
|
_hasSystem(stacks);
|
||||||
}));
|
}));
|
||||||
|
|
@ -195,7 +197,7 @@ var Project = Resource.extend(PolledResource, {
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
promises.push(this.get('store').findAllActive('host').then((hosts) => {
|
promises.push(projectStore.findAllActive('host').then((hosts) => {
|
||||||
hash.hasHost = hosts.get('length') > 0;
|
hash.hasHost = hosts.get('length') > 0;
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
|
@ -243,6 +245,21 @@ var Project = Resource.extend(PolledResource, {
|
||||||
this.updateOrchestrationState(false);
|
this.updateOrchestrationState(false);
|
||||||
}
|
}
|
||||||
}.observes('_stacks.@each.externalId','_hosts.[]'),
|
}.observes('_stacks.@each.externalId','_hosts.[]'),
|
||||||
|
|
||||||
|
isReady: function() {
|
||||||
|
var state = this.get('orchestrationState');
|
||||||
|
|
||||||
|
if ( !state )
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return ( state.hasHost &&
|
||||||
|
(!state.hasKubernetes || state.kubernetesReady) &&
|
||||||
|
(!state.hasSwarm || state.swarmReady) &&
|
||||||
|
(!state.hasMesos || state.mesosReady)
|
||||||
|
);
|
||||||
|
}.property('orchestrationState'), // The state object is always completely replaced, so this is ok
|
||||||
});
|
});
|
||||||
|
|
||||||
// Projects don't get pushed by /subscribe WS, so refresh more often
|
// Projects don't get pushed by /subscribe WS, so refresh more often
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue