Pick/clear roles

This commit is contained in:
Vincent Fiduccia 2018-02-05 11:25:52 -07:00
parent 6196ec13ee
commit d3362d36f9
No known key found for this signature in database
GPG Key ID: 2B29AD6BB2BB2582
4 changed files with 35 additions and 25 deletions

View File

@ -158,10 +158,6 @@ export default Controller.extend(ACC, {
isDedicated: equal('scope', 'dedicated'),
filteredMachines: computed('model.cluster.nodes.@each.{id,state}', function () {
return (get(this, 'model.cluster.nodes') || []);
}),
etcdCount: computed('model.cluster.nodes.@each.role', function () {
return (get(this, 'model.cluster.nodes')||[])
.filter((x) => (get(x,'role')||[])
@ -218,8 +214,15 @@ export default Controller.extend(ACC, {
nodes.removeObject(node);
},
pickRoles() {
clearRoles() {
const nodes = get(this, 'model.cluster.nodes');
nodes.forEach((node) => {
node.set('role',[]);
});
},
pickRoles() {
const nodes = get(this, 'model.cluster.nodes').sortBy('displayName');
const numNodes = get(nodes, 'length');
let haveEtcd = get(this,'etcdCount');
let haveCp = get(this,'cpCount');
@ -280,19 +283,19 @@ export default Controller.extend(ACC, {
},
toggleRole(node, type) {
if (get(node, 'role')) {
let roles = get(node, 'role').slice();
if (roles.includes(type)) {
set(node, 'role', roles.without(type));
} else {
roles.pushObject(type);
// wont notify of change with out this
node.notifyPropertyChange('role');
}
} else {
set(node, 'role', [type]);
let roles = get(node, 'role');
if ( !roles ) {
roles = [];
set(node, 'role', roles);
}
if ( roles.includes(type) ) {
roles.removeObject(type);
} else {
roles.addObject(type);
}
node.notifyPropertyChange('role');
}
},

View File

@ -42,10 +42,10 @@
<div class="radio">
<label>{{radio-button selection=createNodes value=true}} {{t 'clustersPage.addPage.rke.new.nodes.createNow'}}</label>
</div>
{{#liquid-if createNodes}}
{{#if createNodes}}
{{#sortable-table
classNames="grid sortable-table"
body=filteredMachines
body=model.cluster.nodes
sortBy=sortBy
suffix=true
search=false
@ -102,9 +102,15 @@
{{/sortable-table}}
<div class="mt-20">
<button class="btn bg-transparent p-0 pull-right btn-sm" {{action "pickRoles"}}>
{{t 'clustersPage.addPage.rke.new.setRoles'}}
</button>
<div class="pull-right">
<button class="btn bg-transparent p-0 mr-20 btn-sm" {{action "clearRoles"}}>
{{t 'clustersPage.addPage.rke.new.clearRoles'}}
</button>
<button class="btn bg-transparent p-0 btn-sm" {{action "pickRoles"}}>
{{t 'clustersPage.addPage.rke.new.setRoles'}}
</button>
</div>
<button class="btn bg-primary icon-btn p-0" {{action "addNode"}}>
<span class="darken"><i class="icon icon-plus text-small"/></span>
<span>{{t 'clustersPage.addPage.rke.new.addNode'}}</span>
@ -112,7 +118,7 @@
</div>
{{else}}
<span class="text-muted mt-20 mb-20">{{t 'clustersPage.addPage.rke.new.nodes.createLaterDetail'}}</span>
{{/liquid-if}}
{{/if}}
{{/accordion-list-item}}
{{#accordion-list-item

View File

@ -244,7 +244,7 @@ export default Mixin.create(NewOrEdit, ManageLabels, {
requestedHostname: get(this, 'primaryResource.name'),
displayName: get(this, 'primaryResource.name'),
state: 'to-create',
role: [],
role: ['worker'],
});
} else {
tpl = get(this, 'globalStore').createRecord({
@ -272,7 +272,7 @@ export default Mixin.create(NewOrEdit, ManageLabels, {
requestedHostname: get(this, 'primaryResource.name'),
displayName: get(this, 'primaryResource.name'),
state: 'to-create',
role: [],
role: ['worker'],
});
} else {
// The model was the first one, add subsequent numbers

View File

@ -690,6 +690,7 @@ clustersPage:
header: Add Cluster
new:
addNode: Add a new node
clearRoles: Clear all roles
setRoles: Pick roles for me
nodes:
header: Nodes