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('service'),
|
||||
store.findAllUnremoved('serviceconsumemap'),
|
||||
store.findAllUnremoved('host'),
|
||||
]).then((results) => {
|
||||
return Ember.Object.create({
|
||||
environments: results[0],
|
||||
services: results[1],
|
||||
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);
|
||||
}
|
||||
|
||||
done();
|
||||
return done();
|
||||
|
||||
function done() {
|
||||
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 state = model.get('project.orchestrationState');
|
||||
debugger;
|
||||
if ( !project.get('isReady') )
|
||||
{
|
||||
this.replaceWith('authenticated.project.waiting', project.get('id'));
|
||||
}
|
||||
},
|
||||
|
||||
loadingError(err, transition, ret) {
|
||||
|
|
|
|||
|
|
@ -6,9 +6,10 @@ export default Ember.Controller.extend({
|
|||
settings: Ember.inject.service(),
|
||||
docsBase: C.EXT_REFERENCES.DOCS,
|
||||
|
||||
/*
|
||||
thingsChanged: function() {
|
||||
//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') )
|
||||
{
|
||||
|
|
@ -16,6 +17,7 @@ export default Ember.Controller.extend({
|
|||
}
|
||||
}
|
||||
}.observes('model.hosts.length','model.services.length'),
|
||||
*/
|
||||
|
||||
actions: {
|
||||
newService() {
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
import Ember from 'ember';
|
||||
|
||||
export default Ember.Route.extend({
|
||||
/*
|
||||
redirect: function() {
|
||||
var main = this.modelFor('applications-tab');
|
||||
if ( main.get('hosts.length') && main.get('services.length') )
|
||||
|
|
@ -22,4 +23,5 @@ export default Ember.Route.extend({
|
|||
|
||||
return main;
|
||||
}
|
||||
*/
|
||||
});
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
Welcome, You've got Mail
|
||||
{{#unless model.hosts.length}}
|
||||
<section class="welcome well">
|
||||
<i class="icon icon-host"></i>
|
||||
|
|
|
|||
|
|
@ -3,6 +3,8 @@ import PolledResource from 'ui/mixins/cattle-polled-resource';
|
|||
import Ember from 'ember';
|
||||
import C from 'ui/utils/constants';
|
||||
|
||||
const { getOwner } = Ember;
|
||||
|
||||
var Project = Resource.extend(PolledResource, {
|
||||
prefs: Ember.inject.service(),
|
||||
projects: Ember.inject.service(),
|
||||
|
|
@ -164,8 +166,8 @@ var Project = Resource.extend(PolledResource, {
|
|||
};
|
||||
}
|
||||
|
||||
|
||||
var promises = [];
|
||||
let projectStore = getOwner(this).lookup('store:main');
|
||||
let promises = [];
|
||||
|
||||
function _hasSystem(stacks) {
|
||||
stacks.forEach((stack) => {
|
||||
|
|
@ -183,7 +185,7 @@ var Project = Resource.extend(PolledResource, {
|
|||
}
|
||||
else
|
||||
{
|
||||
promises.push(this.get('store').findAllUnremoved('environment').then((stacks) => {
|
||||
promises.push(projectStore.findAllUnremoved('environment').then((stacks) => {
|
||||
this.set('_stacks', stacks);
|
||||
_hasSystem(stacks);
|
||||
}));
|
||||
|
|
@ -195,7 +197,7 @@ var Project = Resource.extend(PolledResource, {
|
|||
}
|
||||
else
|
||||
{
|
||||
promises.push(this.get('store').findAllActive('host').then((hosts) => {
|
||||
promises.push(projectStore.findAllActive('host').then((hosts) => {
|
||||
hash.hasHost = hosts.get('length') > 0;
|
||||
}));
|
||||
}
|
||||
|
|
@ -243,6 +245,21 @@ var Project = Resource.extend(PolledResource, {
|
|||
this.updateOrchestrationState(false);
|
||||
}
|
||||
}.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
|
||||
|
|
|
|||
Loading…
Reference in New Issue