Vue
new Vue({
el: "#app",
data: {
sites: [{name:'NSAG',roles: ['Admin', 'Security Rep User','Security Rep Standard','Security Rep Super','Sponsor','Contractor','Visitor']}, {name:'NSAH',roles: ['Admin', 'Security Rep User','Security Rep Standard','Security Rep Super','Sponsor','Contractor','Visitor']}, {name:'NSAP',roles: ['Admin', 'Security Rep User','Security Rep Standard','Security Rep Super','Sponsor','Contractor','Visitor']}, {name:'NSAW',roles: ['Admin', 'Security Rep User','Security Rep Standard','Security Rep Super','Sponsor','Contractor','Visitor']}, {name:'NSAS',roles: ['Admin', 'Security Rep User','Security Rep Standard','Security Rep Super','Sponsor','Contractor','Visitor']}, {name:'NSAT',roles: ['Admin', 'Security Rep User','Security Rep Standard','Security Rep Super','Sponsor','Contractor','Visitor']}, {name:'UDC',roles: ['Admin', 'Security Rep User','Security Rep Standard','Security Rep Super','Sponsor','Contractor','Visitor']}, {name:'F6',roles: ['Admin', 'Security Rep User','Security Rep Standard','Security Rep Super','Sponsor','Contractor','Visitor']}],
roles: ['Admin', 'Security Rep User','Security Rep Standard','Security Rep Super','Sponsor','Contractor','Visitor'],
username:'',
email:''
},
methods: {
getSites(){
return this.sites.filter(site=>site.roles.length>=1);
},
toggleSite(sidx){
if(this.sites[sidx].roles.length===this.roles.length){
this.sites[sidx].roles=[]
}else{
this.sites[sidx].roles=[...this.roles]
}
},
allRole(ridx){
this.sites.map(site=>{
if(!site.roles.includes(this.roles[ridx])){
site.roles.push(this.roles[ridx])
}
return site
})
},
getQuery(){
return `db.users.update({${this.username==''?`email:'${this.email}'`:`sid:'${this.username}'`}},{$set:{sites:${JSON.stringify(this.getSites())}},$unset:{roles:1}})`
}
}
})