Added classesfor admin

This commit is contained in:
Kenneth Jao 2016-09-06 00:27:43 -04:00
parent 1d66a88ef1
commit f5ee6f7aff
4 changed files with 164 additions and 23 deletions

View File

@ -1,6 +1,8 @@
#adminBanner {
width: 100%;
height: 32%;
position: relative;
background-size: 100vw;
}
#adminTabs {
@ -106,6 +108,58 @@
#adminContent {
width: 90%;
height: 100%;
height: 68%;
float: right;
overflow-y: scroll;
}
.classItem {
width: 20%;
margin: 2% 0 2% 2%;
padding: 1.5%;
box-shadow: 2px 2px 5px 3px #666;
display: inline-block;
}
.classItem h2 {
-webkit-filter: none;
filter: none;
}
.basicInfo, .userInfo {
width: 90%;
padding: 2% 0 5% 10%;
display: table;
}
.keyContainer {
width: 100%;
margin: 5% 0 0 0;
display: table-row;
}
.key {
font-weight: 400;
font-size: 120%;
width: 40%;
padding-top: 2%;
display: table-cell;
}
.modify {
width: 60%;
padding: 0;
display: table-cell;
}
.aUserContainer {
margin-left: -50%;
}
.aUserContainer p {
margin: 0;
padding: 1%;
}

View File

@ -1,11 +1,11 @@
<template name="admin">
<div id="{{userProfile}}adminBanner" style="{{banner}}{{textColor}}">
<ul id="adminTabs">
<li id="aClasses" style="background-color:{{divColor 'adminButtons'}};margin-left:0">Classes</li>
<li id="aUsers" style="background-color:{{divColor 'adminButtons'}}">Users</li>
<li id="aWork" style="background-color:{{divColor 'adminButtons'}}">Work</li>
<li id="aSchools" style="background-color:{{divColor 'adminButtons'}}">Schools</li>
<li id="aReports" style="background-color:{{divColor 'adminButtons'}}">Reports</li>
<li id="aClasses" style="background-color:{{adminTabColor 'aClasses'}};margin-left:0">Classes</li>
<li id="aUsers" style="background-color:{{adminTabColor 'aUsers'}}">Users</li>
<li id="aWork" style="background-color:{{adminTabColor 'aWork'}}">Work</li>
<li id="aSchools" style="background-color:{{adminTabColor 'aSchools'}}">Schools</li>
<li id="aReports" style="background-color:{{adminTabColor 'aReports'}}">Reports</li>
</ul>
</div>
<div id="aContainer">
@ -37,7 +37,70 @@
<div id="adminContent" style="background-color:{{divColor 'header'}}">
{{#if adminTab 'aClasses'}}
{{#each collection 'classes'}}
<div class="classItem" style="background-color:{{divColor 'classes'}}">
<h2>Basic Info</h2>
<div class="basicInfo">
<div class="keyContainer">
<span class="key">Name: </span>
<span class="modify">{{name}}</span>
</div>
<div class="keyContainer">
<span class="key">Hour: </span>
<span class="modify">{{hour}}</span>
</div>
<div class="keyContainer">
<span class="key">Teacher: </span>
<span class="modify">{{teacher}}</span>
</div>
<div class="keyContainer">
<span class="key">School: </span>
<span class="modify">{{school}}</span>
</div>
<div class="keyContainer">
<span class="key">Category: </span>
<span class="modify">{{category}}</span>
</div>
<div class="keyContainer">
<span class="key">Privacy: </span>
<span class="modify">{{privacy}}</span>
</div>
<div class="keyContainer">
<span class="key">Code: </span>
<span class="modify">{{code}}</span>
</div>
</div>
<h2>User Info</h2>
<div class="userInfo">
<div class="keyContainer">
<span class="key">Creator: </span>
<span class="modify">{{admin}}</span>
</div>
<div class="keyContainer">
<span class="key">Subscribers: </span><br>
<div class="aUserContainer">
{{#each subscribers}}
<p>{{email}}</p>
{{/each}}
</div>
</div>
<div class="keyContainer">
<span class="key">Moderators: </span><br>
<div class="aUserContainer">
{{#each moderators}}
<p>{{email}}</p>
{{/each}}
</div>
</div>
<div class="keyContainer">
<span class="key">Banned: </span><br>
<div class="aUserContainer">
{{#each banned}}
<p>{{email}}</p>
{{/each}}
</div>
</div>
</div>
</div>
{{/each}}
{{/if}}
{{#if adminTab 'aUsers'}}
@ -59,4 +122,3 @@
</div>
</div>
</template>

View File

@ -2,10 +2,7 @@ Session.set("adminTab","aClasses");
Template.admin.helpers({
banner() {
if(Meteor.user() === null || Meteor.user() === undefined) return;
var w = window.innerWidth;
var h = window.innerHeight * 0.3;
return "width:" + w + "px;height:" + h + "px;background-image:url(\'" + Meteor.user().profile.banner + "\');background-size:" + w+"px";
return "background-image:url(" + Session.get("user").banner + ")";
},
filters() {
return [{filter:"Lol"}];
@ -13,13 +10,41 @@ Template.admin.helpers({
adminTab(val) {
return Session.equals("adminTab",val);
},
adminTabColor(val) {
var value = {true:"header",false:"adminButtons"};
return themeColors[Session.get("user").preferences.theme][value[Session.equals("adminTab",val)]];
},
collection(val) {
switch(val) {
case "classes":
var classes = classes.find().fetch();
for(var i = 0; i < classes.length; i++) {
var userClasses = classes.find().fetch();
for(var i = 0; i < userClasses.length; i++) {
if(userClasses[i].privacy) {
userClasses[i].privacy = "True";
} else {
userClasses[i].privacy = "False";
}
if(userClasses[i].code === "") {
userClasses[i].code = "None";
}
userClasses[i].category = userClasses[i].category.charAt(0).toUpperCase() + userClasses[i].category.slice(1);
userClasses[i].admin = getEmail(userClasses[i].admin);
var types = ["subscribers","moderators","banned"];
for(var j = 0; j < types.length; j++) {
if(userClasses[i][types[j]].length === 0) {
userClasses[i][types[j]][k] = {"email":"None"};
continue;
}
for(var k = 0; k < userClasses[i][types[j]].length; k++) {
userClasses[i][types[j]][k] = {
"email": getEmail(userClasses[i][types[j]][k])
};
}
}
}
return userClasses;
break;
case "users":
break;
@ -35,10 +60,10 @@ Template.admin.helpers({
Template.admin.events({
'click #adminTabs li' (event) {
var id = event.target.id;
document.getElementById(Session.get("adminTab")).style.backgroundColor = themeColors[Meteor.user().profile.preferences.theme].adminButtons;
Session.set("adminTab",id);
document.getElementById(id).style.backgroundColor = themeColors[Meteor.user().profile.preferences.theme].header;
Session.set("adminTab",event.target.id);
}
})
});
function getEmail(id) {
return Meteor.users.findOne({_id:id}).services.google.email;
}

View File

@ -36,7 +36,7 @@ var ref = {
};
// Reactive variables.
Session.set("user",null); // Stores user preferences.
Session.set("user",{}); // Stores user preferences.
Session.set("calendarClasses", null);
Session.set("sidebar", null); // Status of sidebar
Session.set("newWork", null); // If user creating new work.