mirror of https://github.com/rancher/ui.git
commit
b21dc31cde
|
|
@ -22,12 +22,6 @@ export default Controller.extend(ACC, {
|
||||||
memberArray: null,
|
memberArray: null,
|
||||||
|
|
||||||
actions: {
|
actions: {
|
||||||
updateLists(toAdd, toUpdate, toRemove) {
|
|
||||||
setProperties(this, {
|
|
||||||
toAdd, toUpdate, toRemove
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
cancel() {
|
cancel() {
|
||||||
this.goBack();
|
this.goBack();
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@ export default Ember.Route.extend({
|
||||||
|
|
||||||
return hash({
|
return hash({
|
||||||
users: get(this, 'globalStore').findAll('user'),
|
users: get(this, 'globalStore').findAll('user'),
|
||||||
user: get(this, 'globalStore').find('user', null, {forceReload: true, filter: {me:true}}),
|
user: get(this, 'globalStore').find('user', null, {filter: {me:true}}),
|
||||||
clusterRoleTemplateBinding: get(this, 'globalStore').findAll('clusterRoleTemplateBinding', { forceReload: true }),
|
clusterRoleTemplateBinding: get(this, 'globalStore').findAll('clusterRoleTemplateBinding', { forceReload: true }),
|
||||||
}).then((hash) => {
|
}).then((hash) => {
|
||||||
return {
|
return {
|
||||||
|
|
|
||||||
|
|
@ -92,9 +92,11 @@
|
||||||
editing=false
|
editing=false
|
||||||
memberArray=memberArray
|
memberArray=memberArray
|
||||||
memberConfig=memberConfig
|
memberConfig=memberConfig
|
||||||
|
project=primaryResource
|
||||||
roles=userData.roles
|
roles=userData.roles
|
||||||
users=userData.users
|
users=userData.users
|
||||||
type="cluster"
|
type="cluster"
|
||||||
|
initAlert=(action "initAlert")
|
||||||
}}
|
}}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
import Component from '@ember/component';
|
import Component from '@ember/component';
|
||||||
import layout from './template';
|
import layout from './template';
|
||||||
import { get, set, computed } from '@ember/object';
|
import { computed, observer, get, set } from '@ember/object';
|
||||||
|
import { on } from '@ember/object/evented';
|
||||||
import { inject as service } from '@ember/service';
|
import { inject as service } from '@ember/service';
|
||||||
import { all as PromiseAll } from 'rsvp';
|
import { all as PromiseAll } from 'rsvp';
|
||||||
|
|
||||||
|
|
@ -32,6 +33,15 @@ export default Component.extend({
|
||||||
this.sendAction('initAlert', this.primaryResourceSaved.bind(this));
|
this.sendAction('initAlert', this.primaryResourceSaved.bind(this));
|
||||||
},
|
},
|
||||||
|
|
||||||
|
didReceiveAttrs() {
|
||||||
|
let ma = get(this, 'memberArray').filter(( m ) => {
|
||||||
|
return get(m, 'roleTemplateId').indexOf('-owner') < 0 && !get(this, 'toAdd').includes(m);
|
||||||
|
});
|
||||||
|
if (ma && get(ma, 'length') > 0) {
|
||||||
|
set(this, 'toUpdate', ma);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
primaryResourceSaved: function() {
|
primaryResourceSaved: function() {
|
||||||
// returns a promise of all the adds/removes/updates to the parent
|
// returns a promise of all the adds/removes/updates to the parent
|
||||||
const pr = get(this, 'project');
|
const pr = get(this, 'project');
|
||||||
|
|
@ -42,6 +52,7 @@ export default Component.extend({
|
||||||
|
|
||||||
add.forEach((x) => {
|
add.forEach((x) => {
|
||||||
x.set(`${get(this, 'type')}Id`, resourceId);
|
x.set(`${get(this, 'type')}Id`, resourceId);
|
||||||
|
x.set('name', null);
|
||||||
});
|
});
|
||||||
|
|
||||||
return PromiseAll(add.map(x => x.save())).then(() => {
|
return PromiseAll(add.map(x => x.save())).then(() => {
|
||||||
|
|
@ -67,19 +78,14 @@ export default Component.extend({
|
||||||
get(this, 'toAdd').pushObject(record);
|
get(this, 'toAdd').pushObject(record);
|
||||||
},
|
},
|
||||||
|
|
||||||
updateMember(obj) {
|
|
||||||
get(this,'toUpdate').addObject(obj);
|
|
||||||
},
|
|
||||||
|
|
||||||
|
|
||||||
removeMember(obj) {
|
removeMember(obj) {
|
||||||
get(this,'memberArray').removeObject(obj);
|
get(this,'memberArray').removeObject(obj);
|
||||||
get(this, 'toRemove').pushObject(obj);
|
get(this, 'toRemove').pushObject(obj);
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
filteredUsers: computed('users', function() {
|
filteredUsers: computed('users.@each.{id,state}', function() {
|
||||||
return get(this, 'users').filter(u => !u.hasOwnProperty('me')).sortBy('username');
|
return get(this, 'users').filter(u => !u.hasOwnProperty('me')).sortBy('displayName');
|
||||||
}),
|
}),
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -10,9 +10,9 @@
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
{{project-member-row member=member roles=roles users=users remove="removeMember" owner=creator type=type}}
|
{{project-member-row member=member roles=roles users=users owner=creator type=type}}
|
||||||
{{#each memberArray as |member|}}
|
{{#each memberArray as |member|}}
|
||||||
{{project-member-row member=member roles=roles users=filteredUsers remove="removeMember" update="updateMember"}}
|
{{project-member-row member=member roles=roles users=filteredUsers remove="removeMember" }}
|
||||||
{{/each}}
|
{{/each}}
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
import Component from '@ember/component';
|
import Component from '@ember/component';
|
||||||
import layout from './template';
|
import layout from './template';
|
||||||
import { computed, observer, get, set } from '@ember/object';
|
import { computed, observer, get, set } from '@ember/object';
|
||||||
|
import { on } from '@ember/object/evented';
|
||||||
|
|
||||||
export default Component.extend({
|
export default Component.extend({
|
||||||
layout,
|
layout,
|
||||||
|
|
@ -45,7 +46,4 @@ export default Component.extend({
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
|
|
||||||
changed: observer('member.{roleTemplateId,subjectName}', function() {
|
|
||||||
this.sendAction('update', get(this,'member'));
|
|
||||||
}),
|
|
||||||
});
|
});
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue