-
Notifications
You must be signed in to change notification settings - Fork 13
/
UserPicker.vue
executable file
·77 lines (70 loc) · 2.07 KB
/
UserPicker.vue
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
<template>
<md-dialog
md-open-from="#userPicker" md-close-to="#userPicker" ref="userPicker">
<md-dialog-title>Role Mappings</md-dialog-title>
<md-dialog-content>
<div v-for="(role,index) in roles" :key="role.name">
<md-input-container>
<label>{{role.name}}</label>
<user-autocomplete
v-model="users[role.name]"
></user-autocomplete>
</md-input-container>
</div>
</md-dialog-content>
<md-dialog-actions>
<md-button class="md-primary" @click="confirmUser">Confirm</md-button>
<md-button class="md-primary" @click="closeUserPicker">Close</md-button>
</md-dialog-actions>
</md-dialog>
</template>
<script>
export default {
props: {
roles: Array,
id: String
},
created: function () {
this.loadUsers()
},
data: function () {
return {
users: {}
};
},
mounted: function () {
var me = this;
},
methods: {
closeUserPicker(ref) {
this.$refs['userPicker'].close();
},
openUserPicker(ref) {
this.loadUsers();
this.$refs['userPicker'].open();
},
confirmUser: function () {
var me = this;
$.each(me.roles, function (index, arg) {
if (me.users[arg.name] != undefined) {
var data = {_type: "org.uengine.kernel.RoleMapping", endpoint: me.users[arg.name]};
me.$root.codi('instance{/id}/role-mapping{/roleName}').save({id: me.id, roleName: arg.name}, data)
.then(function (response) {
})
}
})
this.$refs['userPicker'].close();
},
loadUsers: function () {
var me = this;
$.each(me.roles, function (index, arg) {
me.$root.codi('instance{/id}/role-mapping{/roleName}').get({id: me.id, roleName: arg.name})
.then(function (response) {
//me.users[arg.name] = response.data.endpoint; ---- X
Vue.set(me.users, arg.name, response.data.endpoint) //----O
})
})
}
}
}
</script>