103 lines
2.4 KiB
JavaScript
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);
|
|
}
|
|
}) |