103 lines
2.4 KiB
JavaScript

var inInfo = false;
var openUserDisplay = null;
Template.adminUserDisplay.helpers({
info() {
var ids = (this.value instanceof Array) ? this.value : [this.value];
var userInfo = [];
for(var i = 0; i < ids.length; i++) {
var user = Meteor.users.findOne({_id: ids[i]});
userInfo.push({
name: user.profile.name,
email: user.services.google.email,
id: user._id,
icon: user.services.google.picture
});
}
return userInfo;
}
});
Template.statusButton.helpers({
status() {
return (this.value) ? "on" : "off";
}
});
Template.adminUserDisplay.events({
'click .adminUserIcon' (event) {
var icoCoords = $(event.target)[0].getBoundingClientRect();
var x = window.innerWidth - icoCoords.right;
var y = icoCoords.bottom;
openUserDisplay = $(event.target).next();
$(".adminUserInfo").fadeOut(200);
openUserDisplay
.css({'right': x, 'top': y})
.fadeIn(200);
},
'mouseenter .adminUserInfo' () {
inInfo = true;
},
'mouseleave .adminUserInfo' (event) {
if(inInfo) openUserDisplay.fadeOut(200);
inInfo = false;
openUserDisplay = null;
}
});
Template.AdminLTE.events({
'click' (event) {
if(!event.target.className.includes("adminUserInfo") &&
!event.target.className.includes("adminUserIcon") &&
openUserDisplay !== null) {
if(!openUserDisplay[0].contains(event.target)) {
openUserDisplay.fadeOut(200, function() {
openUserDisplay = null;
});
}
}
}
});
Template.statusButton.events({
'click .approveStatus' () {
Meteor.call("approveClass", this.doc._id);
}
});
Template.userEditor.helpers({
userInfo : function() {
return Session.get("admin_doc")
},
superAdmin: function() {
return Roles.userIsInRole(Meteor.userId(), ['superadmin']);
}
});
Template.createAdmin.helpers({
userComplete() {
return {
position: "bottom",
limit: 7,
rules: [{
token: '',
collection: Meteor.users,
field: 'services.google.email',
filter: {roles: {$not: {$elemMatch: {$eq: "admin"}}}},
template: Template.simpleUser
}]
};
},
superAdmin: function() {
return Roles.userIsInRole(Meteor.userId(), ['superadmin']);
}
});
Template.createAdmin.events({
'click #addAdmin' () {
var value = document.getElementsByClassName("form-control")[0].value;
var user = Meteor.users.findOne({'services.google.email': value});
if(user === undefined) return;
Meteor.call("addAdmin", user._id);
}
})