diff --git a/app/authenticated/project/controller.js b/app/authenticated/project/controller.js index 7327130d6..911e28229 100644 --- a/app/authenticated/project/controller.js +++ b/app/authenticated/project/controller.js @@ -7,6 +7,7 @@ export function hasThings(stacks, project, tgt) hasSystem: false, hasKubernetes: !!project.get('kubernetes'), hasSwarm: !!project.get('swarm'), + hasMesos: !!project.get('mesos'), }; (stacks||[]).forEach((stack) => { @@ -25,5 +26,5 @@ export default Ember.Controller.extend({ hasThingsChanged: function() { hasThings(this.get('model.stacks'), this.get('model.project'), this.get('authenticated')); - }.observes('model.stacks.@each.externalId','model.project.{kubernetes,swarm}'), + }.observes('model.stacks.@each.externalId','model.project.{kubernetes,swarm,mesos}'), }); diff --git a/app/components/view-edit-project/component.js b/app/components/view-edit-project/component.js index f255e82d4..6f66b2b01 100644 --- a/app/components/view-edit-project/component.js +++ b/app/components/view-edit-project/component.js @@ -58,9 +58,11 @@ export default Ember.Component.extend(NewOrEdit, Sortable, { selectOrchestration(name) { var k8s = (name === 'kubernetes'); var swarm = (name === 'swarm'); + var mesos = (name === 'mesos'); this.get('project').setProperties({ kubernetes: k8s, swarm: swarm, + mesos: mesos, }); this.set('activeOrchestration', name); }, @@ -77,6 +79,10 @@ export default Ember.Component.extend(NewOrEdit, Sortable, { { orch = 'swarm'; } + else if ( this.get('project.mesos') ) + { + orch = 'mesos'; + } this.set('activeOrchestration', orch); }, @@ -113,6 +119,7 @@ export default Ember.Component.extend(NewOrEdit, Sortable, { {name: 'rancher', label: 'Corral', css: 'rancher'}, {name: 'kubernetes', label: 'Kubernetes', css: 'kubernetes'}, {name: 'swarm', label: 'Swarm', css: 'swarm'}, + {name: 'mesos', label: 'Mesos', css: 'mesos'}, ]; drivers.forEach(function(driver) { diff --git a/app/models/project.js b/app/models/project.js index 3e612584d..1ddc6bfdb 100644 --- a/app/models/project.js +++ b/app/models/project.js @@ -127,11 +127,15 @@ var Project = Resource.extend(PolledResource, { { return 'Swarm'; } + else if ( this.get('mesos') ) + { + return 'Mesos'; + } else { return 'Cattle'; } - }.property('kubernetes','swarm'), + }.property('kubernetes','swarm', 'mesos'), }); // Projects don't get pushed by /subscribe WS, so refresh more often diff --git a/app/styles/pages/_project.scss b/app/styles/pages/_project.scss index 22cbfdf3a..0c2c6bb52 100644 --- a/app/styles/pages/_project.scss +++ b/app/styles/pages/_project.scss @@ -1,4 +1,8 @@ .orchestration-driver { + &.mesos { + background-image: url('images/providers/mesos.svg'); + } + &.kubernetes { background-image: url('images/providers/kubernetes.svg'); } diff --git a/public/assets/images/providers/mesos.svg b/public/assets/images/providers/mesos.svg new file mode 100644 index 000000000..eb0e3d8d9 --- /dev/null +++ b/public/assets/images/providers/mesos.svg @@ -0,0 +1,76 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +