diff --git a/app/applications-tab/route.js b/app/applications-tab/route.js index 2dc73c12c..3ce5c13a7 100644 --- a/app/applications-tab/route.js +++ b/app/applications-tab/route.js @@ -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'); - } - } - } }); diff --git a/app/authenticated/project/route.js b/app/authenticated/project/route.js index 74dbdd9c8..e03d47cf3 100644 --- a/app/authenticated/project/route.js +++ b/app/authenticated/project/route.js @@ -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) { diff --git a/app/authenticated/project/waiting/controller.js b/app/authenticated/project/waiting/controller.js index 3f1c5815b..70092aea0 100644 --- a/app/authenticated/project/waiting/controller.js +++ b/app/authenticated/project/waiting/controller.js @@ -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() { diff --git a/app/authenticated/project/waiting/route.js b/app/authenticated/project/waiting/route.js index 0fdcf4737..531f632cb 100644 --- a/app/authenticated/project/waiting/route.js +++ b/app/authenticated/project/waiting/route.js @@ -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; } +*/ }); diff --git a/app/authenticated/project/waiting/template.hbs b/app/authenticated/project/waiting/template.hbs index 0d9da3026..2260ef573 100644 --- a/app/authenticated/project/waiting/template.hbs +++ b/app/authenticated/project/waiting/template.hbs @@ -1,3 +1,4 @@ +Welcome, You've got Mail {{#unless model.hosts.length}}
diff --git a/app/models/project.js b/app/models/project.js index 812bac6b9..f42a03ba5 100644 --- a/app/models/project.js +++ b/app/models/project.js @@ -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