Merge remote-tracking branch 'origin/master'
# Conflicts: # client/main/main.js
This commit is contained in:
commit
ecb8ebae64
@ -11,6 +11,7 @@ var openValues = {
|
||||
"options": "-20%"
|
||||
};
|
||||
|
||||
<<<<<<< HEAD
|
||||
// Sets values for the different themes
|
||||
|
||||
Session.set('themeColors', {
|
||||
@ -43,6 +44,8 @@ Session.set('themeColors', {
|
||||
|
||||
//Sets colors for different assignment statuses
|
||||
|
||||
=======
|
||||
>>>>>>> origin/master
|
||||
var workColors = {
|
||||
"normal": "#2E4F74",
|
||||
"quiz": "#409333",
|
||||
@ -79,7 +82,6 @@ Session.set("newWork",null);
|
||||
Session.set("currentWork",null);
|
||||
Session.set("currentReadableWork",null);
|
||||
Session.set("modifying",null);
|
||||
Session.set("serverData",null);
|
||||
Session.set("noclass",null);
|
||||
Session.set("calCreWork",null);
|
||||
Session.set("calWorkDate",null);
|
||||
@ -87,12 +89,12 @@ Session.set("classDisp",[]);
|
||||
Session.set("classDispHover",null);
|
||||
Session.set("commentRestrict",null);
|
||||
|
||||
Template.registerHelper('divColor', (div) => { // Reactive color changing based on preferences. Colors stored in Session.get("themeColors").
|
||||
return Session.get("themeColors")[Meteor.user().profile.preferences.theme][div];
|
||||
Template.registerHelper('divColor', (div) => { // Reactive color changing based on preferences. Colors stored in themeColors.
|
||||
return themeColors[Meteor.user().profile.preferences.theme][div];
|
||||
});
|
||||
|
||||
Template.registerHelper('textColor', () => { // Reactive color for text.
|
||||
document.getElementsByTagName("body")[0].style.color = Session.get("themeColors")[Meteor.user().profile.preferences.theme].text;
|
||||
document.getElementsByTagName("body")[0].style.color = themeColors[Meteor.user().profile.preferences.theme].text;
|
||||
return;
|
||||
});
|
||||
|
||||
@ -101,7 +103,7 @@ Template.registerHelper('overlayDim', (part) => { // Gets size of the overlay co
|
||||
var width = "width:" + dim[0].toString() + "px;";
|
||||
var height = "height:" + dim[1].toString() + "px;";
|
||||
var margin = "margin-left:" + (-dim[0] / 2).toString() + "px;";
|
||||
var bg = "background-color:" + Session.get("themeColors")[Meteor.user().profile.preferences.theme].header + ";";
|
||||
var bg = "background-color:" + themeColors[Meteor.user().profile.preferences.theme].header + ";";
|
||||
return width + height + margin + bg;
|
||||
});
|
||||
|
||||
@ -186,7 +188,7 @@ Template.registerHelper('pref', (val) => {
|
||||
if(Object.keys(Meteor.user().profile.preferences).length !== Object.keys(defaults).length) {
|
||||
var array = Meteor.user().profile;
|
||||
array.preferences = defaults;
|
||||
Session.set("serverData",array);
|
||||
serverData = array;
|
||||
sendData("editProfile");
|
||||
if(val === 'timeHide' || val === 'done') return defaults[val];
|
||||
return defaults[val].charAt(0).toUpperCase() + defaults[val].slice(1);
|
||||
@ -206,9 +208,9 @@ Template.main.helpers({
|
||||
},
|
||||
iconColor(icon) { //Sets the color of the user's icon
|
||||
if (Session.get("sidebar") === icon + "Container") {
|
||||
return Session.get("themeColors")[Meteor.user().profile.preferences.theme].statusIcons;
|
||||
return themeColors[Meteor.user().profile.preferences.theme].statusIcons;
|
||||
} else if (Session.get("sidebar") === "both") {
|
||||
return Session.get("themeColors")[Meteor.user().profile.preferences.theme].statusIcons;
|
||||
return themeColors[Meteor.user().profile.preferences.theme].statusIcons;
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
@ -222,7 +224,7 @@ Template.main.helpers({
|
||||
},
|
||||
bgSrc() { // Adjusts for different, larger screen sizes
|
||||
var dim = [window.innerWidth, window.innerHeight];
|
||||
var pic = "Backgrounds/"+Session.get("themeColors")[Meteor.user().profile.preferences.theme].background;
|
||||
var pic = "Backgrounds/"+themeColors[Meteor.user().profile.preferences.theme].background;
|
||||
return pic;
|
||||
},
|
||||
menuStatus() {
|
||||
@ -245,7 +247,7 @@ Template.main.helpers({
|
||||
},
|
||||
modeStatus(status) {
|
||||
if (status === Session.get("mode")) {
|
||||
return Session.get("themeColors")[Meteor.user().profile.preferences.theme].highlightText;
|
||||
return themeColors[Meteor.user().profile.preferences.theme].highlightText;
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
@ -317,7 +319,7 @@ Template.main.helpers({
|
||||
var current = work.findOne({_id:event.id});
|
||||
var date = event.start.format().split("-");
|
||||
current.dueDate = new Date(date[0],parseInt(date[1])-1,date[2],11,59,59);
|
||||
Session.set("serverData",current);
|
||||
serverData = current;
|
||||
sendData("editWork");
|
||||
},
|
||||
eventClick: function(event, jsEvent, view) {
|
||||
@ -340,8 +342,13 @@ Template.main.helpers({
|
||||
var width = window.innerWidth * 0.85;
|
||||
return "width:" + width.toString() + "px;margin-left:" + (0.5 * window.innerWidth - 0.5 * width).toString() + "px;";
|
||||
},
|
||||
<<<<<<< HEAD
|
||||
calColor() { // Sets the color of the calendar according to theme
|
||||
return "color:"+Session.get("themeColors")[Meteor.user().profile.preferences.theme].calendar;
|
||||
=======
|
||||
calColor() {
|
||||
return "color:"+themeColors[Meteor.user().profile.preferences.theme].calendar;
|
||||
>>>>>>> origin/master
|
||||
},
|
||||
calbg() { //Sets size of the calendar
|
||||
var width = window.innerWidth * 0.865;
|
||||
@ -508,14 +515,14 @@ Template.main.events({
|
||||
closeDivFade(document.getElementsByClassName("overlay")[0]);
|
||||
if(!Session.get("newWork")) {
|
||||
if(getHomeworkFormData() === null) return;
|
||||
Session.set("serverData",Session.get("currentWork"));
|
||||
serverData = Session.get("currentWork");
|
||||
sendData("editWork");
|
||||
document.getElementById("workComment").value = "";
|
||||
}
|
||||
Session.set("newWork",null);
|
||||
Session.set("currentWork",null);
|
||||
Session.set("currentReadableWork",null);
|
||||
$('.req').css("color","")
|
||||
$('.req').css("color","");
|
||||
Session.set("commentRestrict",null);
|
||||
|
||||
}
|
||||
@ -711,7 +718,7 @@ Template.main.events({
|
||||
},
|
||||
'click #workSubmit' () { // Apples on the work submit button. If the current value, then terminate. Otherwise, create a new work or edit the current piece of work
|
||||
if(getHomeworkFormData() === null) return;
|
||||
Session.set("serverData",Session.get("currentWork"));
|
||||
serverData = Session.get("currentWork");
|
||||
if(Session.get("newWork")) {
|
||||
sendData("createWork");
|
||||
} else {
|
||||
@ -814,15 +821,15 @@ Template.main.events({
|
||||
Session.set("commentRestrict", "Characters left: " + (200-chars).toString());
|
||||
},
|
||||
'click #markDone' () {
|
||||
Session.set("serverData", [Session.get("currentWork")._id, "done"])
|
||||
serverData = [Session.get("currentWork")._id, "done"]
|
||||
sendData("toggleWork");
|
||||
},
|
||||
'click #markConfirm' () {
|
||||
Session.set("serverData", [Session.get("currentWork")._id, "confirmations"])
|
||||
serverData = [Session.get("currentWork")._id, "confirmations"]
|
||||
sendData("toggleWork");
|
||||
},
|
||||
'click #markReport' () {
|
||||
Session.set("serverData", [Session.get("currentWork")._id, "reports"])
|
||||
serverData = [Session.get("currentWork")._id, "reports"]
|
||||
sendData("toggleWork");
|
||||
}
|
||||
});
|
||||
@ -843,7 +850,7 @@ function closeDivFade(div) {
|
||||
}
|
||||
|
||||
function sendData(funcName) {
|
||||
Meteor.call(funcName, Session.get("serverData") , function(err,result) {
|
||||
Meteor.call(funcName, serverData , function(err,result) {
|
||||
if((funcName === "editWork" || funcName === "createWork") && Session.get("mode") === "calendar") {
|
||||
$("#fullcalendar").fullCalendar( 'refetchEvents' );
|
||||
} else if(funcName === "toggleWork") {
|
||||
@ -881,11 +888,11 @@ function closeInput(sessval) {
|
||||
Session.set("modifying", null);
|
||||
|
||||
if(Session.equals("sidebar","optionsContainer") || Session.equals("sidebar","both")) {
|
||||
Session.set("serverData",getPreferencesData());
|
||||
serverData = getPreferencesData();
|
||||
sendData("editProfile");
|
||||
} else if(!Session.get("newWork")) {
|
||||
if(getHomeworkFormData() === null) return;
|
||||
Session.set("serverData",Session.get("currentWork"));
|
||||
serverData = Session.get("currentWork");
|
||||
sendData("editWork");
|
||||
}
|
||||
}
|
||||
|
||||
@ -4,12 +4,10 @@
|
||||
|
||||
// Sets up global variables
|
||||
|
||||
Session.set("profInputOpen", null);
|
||||
Session.set("profClassTab", "manClass");
|
||||
Session.set("modifying", null);
|
||||
Session.set("notsearching", true);
|
||||
Session.set("confirm", null);
|
||||
Session.set("serverData", null);
|
||||
Session.set("autocompleteDivs", null);
|
||||
Session.set("confirmText", null);
|
||||
Session.set("selectedClass",null);
|
||||
@ -419,7 +417,7 @@ Template.profile.events({
|
||||
var attribute = event.target.getAttribute("classid");
|
||||
}
|
||||
var data = [attribute, ""];
|
||||
Session.set("serverData", data);
|
||||
serverData = data;
|
||||
Session.set("confirm", "joinClass");
|
||||
Session.set("confirmText", "Join class?");
|
||||
|
||||
@ -435,18 +433,18 @@ Template.profile.events({
|
||||
var form = document.getElementById("create");
|
||||
for(var i = 0; i < form.length; i++) form[i].value = "";
|
||||
}
|
||||
Session.set("serverData", null);
|
||||
serverData = null;
|
||||
Session.set("confirm", null);
|
||||
},
|
||||
'click .fa-times-circle-o' () { // Deny Button
|
||||
closeDivFade(document.getElementsByClassName("overlay")[0]);
|
||||
Session.set("serverData", null);
|
||||
serverData = null;
|
||||
Session.set("confirm", null);
|
||||
},
|
||||
'click #creSubmit' () { //Submits form data for class
|
||||
var data = getCreateFormData();
|
||||
if (data === null) return;
|
||||
Session.set("serverData", data);
|
||||
serverData = data;
|
||||
Session.set("confirm", "createClass");
|
||||
Session.set("confirmText", "Submit request?");
|
||||
|
||||
@ -478,29 +476,29 @@ Template.profile.events({
|
||||
return;
|
||||
}
|
||||
var user = Meteor.users.findOne({"services.google.email":value});
|
||||
Session.set("serverData", [
|
||||
serverData = [
|
||||
user._id,
|
||||
classid,
|
||||
event.target.parentNode.childNodes[1].childNodes[0].nodeValue.replace(":","").toLowerCase()
|
||||
]);
|
||||
];
|
||||
sendData("trackUserInClass");
|
||||
|
||||
},
|
||||
'click .classBox .fa-times' (event) { // Leaves a class
|
||||
var box = event.target.parentNode;
|
||||
var classid = box.getAttribute("classid");
|
||||
Session.set("serverData", box.getAttribute("classid"));
|
||||
serverData = box.getAttribute("classid");
|
||||
Session.set("confirm","leaveClass");
|
||||
Session.set("confirmText", "Leave this class?");
|
||||
openDivFade(document.getElementsByClassName("overlay")[0]);
|
||||
},
|
||||
'click .userBox .fa-times' (event) { // Removes user from permissions
|
||||
var box = event.target.parentNode;
|
||||
Session.set("serverData", [
|
||||
serverData = [
|
||||
box.getAttribute("userid"),
|
||||
document.getElementById("createdClasses").getAttribute("classid"),
|
||||
box.parentNode.parentNode.childNodes[1].childNodes[1].childNodes[0].nodeValue.replace(":","").toLowerCase()
|
||||
])
|
||||
];
|
||||
sendData("untrackUserInClass");
|
||||
},
|
||||
'click #copy' () { //Copies googlee-classroom style code
|
||||
@ -509,7 +507,7 @@ Template.profile.events({
|
||||
document.execCommand("copy");
|
||||
},
|
||||
'click #deleteClass' () {
|
||||
Session.set("serverData",document.getElementById("createdClasses").getAttribute("classid"));
|
||||
serverData = document.getElementById("createdClasses").getAttribute("classid");
|
||||
Session.set("confirm", "deleteClass");
|
||||
Session.set("confirmText", "Delete this class?");
|
||||
openDivFade(document.getElementsByClassName("overlay")[0]);
|
||||
@ -538,7 +536,7 @@ Template.profile.events({
|
||||
return;
|
||||
}
|
||||
var user = Meteor.users.findOne({"services.google.email":value});
|
||||
Session.set("serverData", [user._id,classid]);
|
||||
serverData = [user._id,classid];
|
||||
Session.set("confirm","changeAdmin");
|
||||
Session.set("confirmText", "Are you really sure?");
|
||||
openDivFade(document.getElementsByClassName("overlay")[0])
|
||||
@ -555,7 +553,7 @@ Template.profile.events({
|
||||
var input = document.getElementById("privateCode");
|
||||
var code = input.value;
|
||||
input.value = "";
|
||||
Session.set("serverData", code);
|
||||
serverData = code;
|
||||
Meteor.call("joinPrivateClass", code, function(error, result) {
|
||||
if(result) {
|
||||
document.getElementById("joinPrivClass").style.marginBottom = "-10%";
|
||||
@ -597,12 +595,12 @@ function closeInput(sessval) {
|
||||
}
|
||||
span.style.display = "initial";
|
||||
Session.set("modifying", null);
|
||||
Session.set("serverData", getProfileData());
|
||||
serverData = getProfileData();
|
||||
sendData("editProfile");
|
||||
}
|
||||
|
||||
function sendData(funcName) {
|
||||
Meteor.call(funcName, Session.get("serverData"));
|
||||
Meteor.call(funcName, serverData);
|
||||
}
|
||||
|
||||
function getProfileData() {
|
||||
|
||||
29
hourglass/lib/constants.js
Normal file
29
hourglass/lib/constants.js
Normal file
@ -0,0 +1,29 @@
|
||||
themeColors = {
|
||||
"light": {
|
||||
"background": "White.jpg",
|
||||
"header": "#EBEBEB",
|
||||
"sidebar": "#65839A",
|
||||
"funcButton": "#849CAE",
|
||||
"statusIcons": "#33ADFF",
|
||||
"highlightText": "#FF1A1A",
|
||||
"cards": "#FEFEFE",
|
||||
"classes":"#EBEBEB",
|
||||
"calendar": "#000",
|
||||
"text": "#000"
|
||||
},
|
||||
"dark": {
|
||||
"background": "Black.jpg",
|
||||
"header": "#373A56",
|
||||
"sidebar": "#35435D",
|
||||
"funcButton": "#5d75A2",
|
||||
"statusIcons": "#33ADFF",
|
||||
"highlightText": "#FF1A1A",
|
||||
"cards": "#151A2B",
|
||||
"classes":"#46396E",
|
||||
"calendar": "#000",
|
||||
//30313B
|
||||
"text": "#F6F6F6"
|
||||
}
|
||||
};
|
||||
|
||||
serverData = null;
|
||||
@ -8,12 +8,12 @@ import {
|
||||
|
||||
// Defines who the admins are - not added
|
||||
|
||||
superadmins = [
|
||||
var superadmins = [
|
||||
"ybq987@gmail.com",
|
||||
"ksjdragon@gmail.com"
|
||||
];
|
||||
|
||||
worktype = ["test", "quiz", "project", "normal", "other"];
|
||||
var worktype = ["test", "quiz", "project", "normal", "other"];
|
||||
var possiblelist = ["moderators", "banned"];
|
||||
|
||||
// Adds roles to superadmins
|
||||
@ -45,7 +45,7 @@ Meteor.publish('classes', function() {
|
||||
return classes.find();
|
||||
} else {
|
||||
// Return user classes (if private) and public classes.
|
||||
userclasses = Meteor.users.findOne(this.userId).profile.classes;
|
||||
var userclasses = Meteor.users.findOne(this.userId).profile.classes;
|
||||
if (userclasses !== undefined) {
|
||||
return classes.find({
|
||||
$or: [{
|
||||
@ -86,7 +86,7 @@ Meteor.publish('work', function() {
|
||||
if (Roles.userIsInRole(this.userId, ['superadmin', 'admin'])) {
|
||||
return work.find();
|
||||
} else {
|
||||
userclasses = Meteor.users.findOne(this.userId).profile.classes;
|
||||
var userclasses = Meteor.users.findOne(this.userId).profile.classes;
|
||||
if (userclasses !== undefined) {
|
||||
return work.find({
|
||||
// Only return work of enrolled classes
|
||||
@ -142,7 +142,7 @@ Meteor.methods({
|
||||
|
||||
//Generates private codes for classes - like google classroom
|
||||
'genCode': function() {
|
||||
currcode = Math.random().toString(36).substr(2, 6);
|
||||
var currcode = Math.random().toString(36).substr(2, 6);
|
||||
while (classes.findOne({
|
||||
code: currcode
|
||||
}) !== undefined) {
|
||||
@ -430,11 +430,11 @@ Meteor.methods({
|
||||
_id: workobject.class
|
||||
});
|
||||
var user = Meteor.userId();
|
||||
foundsubs = currentclass.subscribers;
|
||||
var foundsubs = currentclass.subscribers;
|
||||
if (typeof comment === "string" && comment.length <= 200 &&
|
||||
foundsubs.indexOf(Meteor.userId()) != -1 &&
|
||||
currentclass.banned.indexOf(Meteor.userId()) === -1) {
|
||||
commentInfo = {
|
||||
var commentInfo = {
|
||||
"comment":input[0],
|
||||
"user":user,
|
||||
"date": new Date()
|
||||
@ -460,7 +460,7 @@ Meteor.methods({
|
||||
_id: workobject.class
|
||||
});
|
||||
if (currentclass.subscribers.indexOf(Meteor.userId()) != -1 && ["confirmations", "reports", "done"].indexOf(input[1]) != -1) {
|
||||
userindex = workobject[input[1]].indexOf(Meteor.userId());
|
||||
var userindex = workobject[input[1]].indexOf(Meteor.userId());
|
||||
if (userindex === -1) {
|
||||
workobject[input[1]] = workobject[input[1]].concat(Meteor.userId());
|
||||
if (input[1] === "confirmations" &&
|
||||
@ -535,7 +535,7 @@ Meteor.methods({
|
||||
}
|
||||
},
|
||||
'createProfile': function(userId) {
|
||||
current = Meteor.users.findOne({
|
||||
var current = Meteor.users.findOne({
|
||||
_id: userId
|
||||
}).profile;
|
||||
current.classes = [];
|
||||
@ -559,7 +559,7 @@ Meteor.methods({
|
||||
found !== null &&
|
||||
pass === found.code &&
|
||||
prof.classes.indexOf(change) === -1) {
|
||||
foundsubs = found.subscribers;
|
||||
var foundsubs = found.subscribers;
|
||||
classes.update({
|
||||
_id: found._id
|
||||
}, {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user