serverData make global variable

This commit is contained in:
Yaman Qalieh 2016-08-29 21:02:02 -04:00
parent 9356b4b04c
commit cb8c9025f4
3 changed files with 42 additions and 44 deletions

View File

@ -37,13 +37,12 @@ var ref = {
}; };
// Reactive variables. // Reactive variables.
Session.set("calendarclasses", null); // Session.set("calendarclasses", null); //
Session.set("sidebar", null); Session.set("sidebar", null);
Session.set("newWork",null); Session.set("newWork",null);
Session.set("currentWork",null); Session.set("currentWork",null);
Session.set("currentReadableWork",null); Session.set("currentReadableWork",null);
Session.set("modifying",null); Session.set("modifying",null);
Session.set("serverData",null);
Session.set("noclass",null); Session.set("noclass",null);
Session.set("calCreWork",null); Session.set("calCreWork",null);
Session.set("calWorkDate",null); Session.set("calWorkDate",null);
@ -51,7 +50,7 @@ Session.set("classDisp",[]);
Session.set("classDispHover",null); Session.set("classDispHover",null);
Session.set("commentRestrict",null); Session.set("commentRestrict",null);
Template.registerHelper('divColor', (div) => { // Reactive color changing based on preferences. Colors stored in Session.get("themeColors"). Template.registerHelper('divColor', (div) => { // Reactive color changing based on preferences. Colors stored in themeColors.
return themeColors[Meteor.user().profile.preferences.theme][div]; return themeColors[Meteor.user().profile.preferences.theme][div];
}); });
@ -69,7 +68,7 @@ Template.registerHelper('overlayDim', (part) => { // Gets size of the overlay co
return width + height + margin + bg; return width + height + margin + bg;
}); });
Template.registerHelper('myClasses', () => { Template.registerHelper('myClasses', () => {
if (Meteor.user().profile.classes === undefined || Meteor.user().profile.classes.length === 0) { if (Meteor.user().profile.classes === undefined || Meteor.user().profile.classes.length === 0) {
Session.set("noclass",true); Session.set("noclass",true);
return []; return [];
@ -114,7 +113,7 @@ Template.registerHelper('myClasses', () => {
} }
while(thisWork.indexOf("no") !== -1) thisWork.splice(thisWork.indexOf("no"),1); while(thisWork.indexOf("no") !== -1) thisWork.splice(thisWork.indexOf("no"),1);
for(var j = 0; j < thisWork.length; j++) { for(var j = 0; j < thisWork.length; j++) {
thisWork[j].dueDate = moment(thisWork[j].dueDate).calendar(null, { thisWork[j].dueDate = moment(thisWork[j].dueDate).calendar(null, {
sameDay: '[Today]', sameDay: '[Today]',
nextDay: '[Tomorrow]', nextDay: '[Tomorrow]',
@ -150,7 +149,7 @@ Template.registerHelper('pref', (val) => {
if(Object.keys(Meteor.user().profile.preferences).length !== Object.keys(defaults).length) { if(Object.keys(Meteor.user().profile.preferences).length !== Object.keys(defaults).length) {
var array = Meteor.user().profile; var array = Meteor.user().profile;
array.preferences = defaults; array.preferences = defaults;
Session.set("serverData",array); serverData = array;
sendData("editProfile"); sendData("editProfile");
if(val === 'timeHide' || val === 'done') return defaults[val]; if(val === 'timeHide' || val === 'done') return defaults[val];
return defaults[val].charAt(0).toUpperCase() + defaults[val].slice(1); return defaults[val].charAt(0).toUpperCase() + defaults[val].slice(1);
@ -180,7 +179,7 @@ Template.main.helpers({
defaultMode() { defaultMode() {
if(load) { if(load) {
Session.set("mode",Meteor.user().profile.preferences.mode); Session.set("mode",Meteor.user().profile.preferences.mode);
load = false; load = false;
} }
return; return;
}, },
@ -246,14 +245,14 @@ Template.main.helpers({
var today = (moment().subtract(hide,'days'))["_d"]; var today = (moment().subtract(hide,'days'))["_d"];
if(today > due) { if(today > due) {
disp = false; disp = false;
} }
} }
if(Meteor.user().profile.preferences.done && current.done.indexOf(Meteor.userId()) !== -1) disp = false; if(Meteor.user().profile.preferences.done && current.done.indexOf(Meteor.userId()) !== -1) disp = false;
var inRole = false; var inRole = false;
var currClass = classes.findOne({_id: current.class}) var currClass = classes.findOne({_id: current.class})
if(Meteor.userId() === current.creator || if(Meteor.userId() === current.creator ||
Roles.userIsInRole(Meteor.userId(), ['superadmin', 'admin']) || Roles.userIsInRole(Meteor.userId(), ['superadmin', 'admin']) ||
currClass.moderators.indexOf(Meteor.userId()) !== -1 || currClass.moderators.indexOf(Meteor.userId()) !== -1 ||
currClass.banned.indexOf(Meteor.userId()) !== -1 currClass.banned.indexOf(Meteor.userId()) !== -1
@ -281,7 +280,7 @@ Template.main.helpers({
var current = work.findOne({_id:event.id}); var current = work.findOne({_id:event.id});
var date = event.start.format().split("-"); var date = event.start.format().split("-");
current.dueDate = new Date(date[0],parseInt(date[1])-1,date[2],11,59,59); current.dueDate = new Date(date[0],parseInt(date[1])-1,date[2],11,59,59);
Session.set("serverData",current); serverData = current;
sendData("editWork"); sendData("editWork");
}, },
eventClick: function(event, jsEvent, view) { eventClick: function(event, jsEvent, view) {
@ -296,7 +295,7 @@ Template.main.helpers({
if(jsEvent.target.className.includes("fc-other-month") || jsEvent.target.className.includes("fc-past")) return; if(jsEvent.target.className.includes("fc-other-month") || jsEvent.target.className.includes("fc-past")) return;
Session.set("calCreWork",true); Session.set("calCreWork",true);
Session.set("calWorkDate",date.format()); Session.set("calWorkDate",date.format());
Session.set("sidebar","menuContainer"); Session.set("sidebar","menuContainer");
} }
}; };
}, },
@ -472,14 +471,14 @@ Template.main.events({
closeDivFade(document.getElementsByClassName("overlay")[0]); closeDivFade(document.getElementsByClassName("overlay")[0]);
if(!Session.get("newWork")) { if(!Session.get("newWork")) {
if(getHomeworkFormData() === null) return; if(getHomeworkFormData() === null) return;
Session.set("serverData",Session.get("currentWork")); serverData = Session.get("currentWork");
sendData("editWork"); sendData("editWork");
document.getElementById("workComment").value = ""; document.getElementById("workComment").value = "";
} }
Session.set("newWork",null); Session.set("newWork",null);
Session.set("currentWork",null); Session.set("currentWork",null);
Session.set("currentReadableWork",null); Session.set("currentReadableWork",null);
$('.req').css("color","") $('.req').css("color","");
Session.set("commentRestrict",null); Session.set("commentRestrict",null);
} }
@ -525,7 +524,7 @@ Template.main.events({
Roles.userIsInRole(Meteor.userId(), ['superadmin', 'admin']) || Roles.userIsInRole(Meteor.userId(), ['superadmin', 'admin']) ||
currClass.moderators.indexOf(Meteor.userId()) !== -1 || currClass.moderators.indexOf(Meteor.userId()) !== -1 ||
currClass.banned.indexOf(Meteor.userId()) !== -1 currClass.banned.indexOf(Meteor.userId()) !== -1
)) return; )) return;
} }
var ele = event.target; var ele = event.target;
@ -587,7 +586,7 @@ Template.main.events({
Roles.userIsInRole(Meteor.userId(), ['superadmin', 'admin']) || Roles.userIsInRole(Meteor.userId(), ['superadmin', 'admin']) ||
currClass.moderators.indexOf(Meteor.userId()) !== -1 || currClass.moderators.indexOf(Meteor.userId()) !== -1 ||
currClass.banned.indexOf(Meteor.userId()) !== -1 currClass.banned.indexOf(Meteor.userId()) !== -1
)) return; )) return;
} }
var op = event.target; var op = event.target;
@ -675,7 +674,7 @@ Template.main.events({
}, },
'click #workSubmit' () { 'click #workSubmit' () {
if(getHomeworkFormData() === null) return; if(getHomeworkFormData() === null) return;
Session.set("serverData",Session.get("currentWork")); serverData = Session.get("currentWork");
if(Session.get("newWork")) { if(Session.get("newWork")) {
sendData("createWork"); sendData("createWork");
} else { } else {
@ -705,7 +704,7 @@ Template.main.events({
currClass.moderators.indexOf(Meteor.userId()) !== -1 || currClass.moderators.indexOf(Meteor.userId()) !== -1 ||
currClass.banned.indexOf(Meteor.userId()) !== -1)) { currClass.banned.indexOf(Meteor.userId()) !== -1)) {
var inputs = $('#editWork .change').css("cursor","default"); var inputs = $('#editWork .change').css("cursor","default");
}; };
} }
openDivFade(document.getElementsByClassName("overlay")[0]); openDivFade(document.getElementsByClassName("overlay")[0]);
@ -747,7 +746,7 @@ Template.main.events({
array.splice(array.indexOf(classid),1); array.splice(array.indexOf(classid),1);
} else { } else {
array.push(classid); array.push(classid);
} }
Session.set("classDisp",array); Session.set("classDisp",array);
$("#fullcalendar").fullCalendar( 'refetchEvents' ); $("#fullcalendar").fullCalendar( 'refetchEvents' );
} }
@ -756,7 +755,7 @@ Template.main.events({
if(event.target.className !== "sideClass") { if(event.target.className !== "sideClass") {
var div = event.target.parentNode; var div = event.target.parentNode;
} else { } else {
var div = event.target; var div = event.target;
} }
while(div.getAttribute("classid") === null) div = div.parentNode; while(div.getAttribute("classid") === null) div = div.parentNode;
var classid = div.getAttribute("classid"); var classid = div.getAttribute("classid");
@ -778,15 +777,15 @@ Template.main.events({
Session.set("commentRestrict", "Characters left: " + (200-chars).toString()); Session.set("commentRestrict", "Characters left: " + (200-chars).toString());
}, },
'click #markDone' () { 'click #markDone' () {
Session.set("serverData", [Session.get("currentWork")._id, "done"]) serverData = [Session.get("currentWork")._id, "done"]
sendData("toggleWork"); sendData("toggleWork");
}, },
'click #markConfirm' () { 'click #markConfirm' () {
Session.set("serverData", [Session.get("currentWork")._id, "confirmations"]) serverData = [Session.get("currentWork")._id, "confirmations"]
sendData("toggleWork"); sendData("toggleWork");
}, },
'click #markReport' () { 'click #markReport' () {
Session.set("serverData", [Session.get("currentWork")._id, "reports"]) serverData = [Session.get("currentWork")._id, "reports"]
sendData("toggleWork"); sendData("toggleWork");
} }
}); });
@ -807,7 +806,7 @@ function closeDivFade(div) {
} }
function sendData(funcName) { 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") { if((funcName === "editWork" || funcName === "createWork") && Session.get("mode") === "calendar") {
$("#fullcalendar").fullCalendar( 'refetchEvents' ); $("#fullcalendar").fullCalendar( 'refetchEvents' );
} else if(funcName === "toggleWork") { } else if(funcName === "toggleWork") {
@ -819,7 +818,7 @@ function sendData(funcName) {
} else if(funcName === "editProfile") { } else if(funcName === "editProfile") {
$("#fullcalendar").fullCalendar( 'refetchEvents' ); $("#fullcalendar").fullCalendar( 'refetchEvents' );
} }
}); });
} }
function closeInput(sessval) { function closeInput(sessval) {
@ -845,11 +844,11 @@ function closeInput(sessval) {
Session.set("modifying", null); Session.set("modifying", null);
if(Session.equals("sidebar","optionsContainer") || Session.equals("sidebar","both")) { if(Session.equals("sidebar","optionsContainer") || Session.equals("sidebar","both")) {
Session.set("serverData",getPreferencesData()); serverData = getPreferencesData();
sendData("editProfile"); sendData("editProfile");
} else if(!Session.get("newWork")) { } else if(!Session.get("newWork")) {
if(getHomeworkFormData() === null) return; if(getHomeworkFormData() === null) return;
Session.set("serverData",Session.get("currentWork")); serverData = Session.get("currentWork");
sendData("editWork"); sendData("editWork");
} }
} }

View File

@ -4,15 +4,13 @@
// Sets up global variables // Sets up global variables
Session.set("profInputOpen", null);
Session.set("profClassTab", "manClass"); Session.set("profClassTab", "manClass");
Session.set("modifying", null); Session.set("modifying", null);
Session.set("notsearching", true); Session.set("notsearching", true);
Session.set("confirm", null); Session.set("confirm", null);
Session.set("serverData", null);
Session.set("autocompleteDivs", null); Session.set("autocompleteDivs", null);
Session.set("confirmText", null); Session.set("confirmText", null);
Session.set("selectedClass",null); Session.set("selectedClass",null);
Session.set("selectClassId",null); Session.set("selectClassId",null);
Session.set("code",null); Session.set("code",null);
Session.set("noclass",null); Session.set("noclass",null);
@ -419,7 +417,7 @@ Template.profile.events({
var attribute = event.target.getAttribute("classid"); var attribute = event.target.getAttribute("classid");
} }
var data = [attribute, ""]; var data = [attribute, ""];
Session.set("serverData", data); serverData = data;
Session.set("confirm", "joinClass"); Session.set("confirm", "joinClass");
Session.set("confirmText", "Join class?"); Session.set("confirmText", "Join class?");
@ -435,18 +433,18 @@ Template.profile.events({
var form = document.getElementById("create"); var form = document.getElementById("create");
for(var i = 0; i < form.length; i++) form[i].value = ""; for(var i = 0; i < form.length; i++) form[i].value = "";
} }
Session.set("serverData", null); serverData = null;
Session.set("confirm", null); Session.set("confirm", null);
}, },
'click .fa-times-circle-o' () { // Deny Button 'click .fa-times-circle-o' () { // Deny Button
closeDivFade(document.getElementsByClassName("overlay")[0]); closeDivFade(document.getElementsByClassName("overlay")[0]);
Session.set("serverData", null); serverData = null;
Session.set("confirm", null); Session.set("confirm", null);
}, },
'click #creSubmit' () { //Submits form data for class 'click #creSubmit' () { //Submits form data for class
var data = getCreateFormData(); var data = getCreateFormData();
if (data === null) return; if (data === null) return;
Session.set("serverData", data); serverData = data;
Session.set("confirm", "createClass"); Session.set("confirm", "createClass");
Session.set("confirmText", "Submit request?"); Session.set("confirmText", "Submit request?");
@ -478,29 +476,29 @@ Template.profile.events({
return; return;
} }
var user = Meteor.users.findOne({"services.google.email":value}); var user = Meteor.users.findOne({"services.google.email":value});
Session.set("serverData", [ serverData = [
user._id, user._id,
classid, classid,
event.target.parentNode.childNodes[1].childNodes[0].nodeValue.replace(":","").toLowerCase() event.target.parentNode.childNodes[1].childNodes[0].nodeValue.replace(":","").toLowerCase()
]); ];
sendData("trackUserInClass"); sendData("trackUserInClass");
}, },
'click .classBox .fa-times' (event) { // Leaves a class 'click .classBox .fa-times' (event) { // Leaves a class
var box = event.target.parentNode; var box = event.target.parentNode;
var classid = box.getAttribute("classid"); var classid = box.getAttribute("classid");
Session.set("serverData", box.getAttribute("classid")); serverData = box.getAttribute("classid");
Session.set("confirm","leaveClass"); Session.set("confirm","leaveClass");
Session.set("confirmText", "Leave this class?"); Session.set("confirmText", "Leave this class?");
openDivFade(document.getElementsByClassName("overlay")[0]); openDivFade(document.getElementsByClassName("overlay")[0]);
}, },
'click .userBox .fa-times' (event) { // Removes user from permissions 'click .userBox .fa-times' (event) { // Removes user from permissions
var box = event.target.parentNode; var box = event.target.parentNode;
Session.set("serverData", [ serverData = [
box.getAttribute("userid"), box.getAttribute("userid"),
document.getElementById("createdClasses").getAttribute("classid"), document.getElementById("createdClasses").getAttribute("classid"),
box.parentNode.parentNode.childNodes[1].childNodes[1].childNodes[0].nodeValue.replace(":","").toLowerCase() box.parentNode.parentNode.childNodes[1].childNodes[1].childNodes[0].nodeValue.replace(":","").toLowerCase()
]) ];
sendData("untrackUserInClass"); sendData("untrackUserInClass");
}, },
'click #copy' () { //Copies googlee-classroom style code 'click #copy' () { //Copies googlee-classroom style code
@ -509,7 +507,7 @@ Template.profile.events({
document.execCommand("copy"); document.execCommand("copy");
}, },
'click #deleteClass' () { 'click #deleteClass' () {
Session.set("serverData",document.getElementById("createdClasses").getAttribute("classid")); serverData = document.getElementById("createdClasses").getAttribute("classid");
Session.set("confirm", "deleteClass"); Session.set("confirm", "deleteClass");
Session.set("confirmText", "Delete this class?"); Session.set("confirmText", "Delete this class?");
openDivFade(document.getElementsByClassName("overlay")[0]); openDivFade(document.getElementsByClassName("overlay")[0]);
@ -538,7 +536,7 @@ Template.profile.events({
return; return;
} }
var user = Meteor.users.findOne({"services.google.email":value}); 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("confirm","changeAdmin");
Session.set("confirmText", "Are you really sure?"); Session.set("confirmText", "Are you really sure?");
openDivFade(document.getElementsByClassName("overlay")[0]) openDivFade(document.getElementsByClassName("overlay")[0])
@ -555,7 +553,7 @@ Template.profile.events({
var input = document.getElementById("privateCode"); var input = document.getElementById("privateCode");
var code = input.value; var code = input.value;
input.value = ""; input.value = "";
Session.set("serverData", code); serverData = code;
Meteor.call("joinPrivateClass", code, function(error, result) { Meteor.call("joinPrivateClass", code, function(error, result) {
if(result) { if(result) {
document.getElementById("joinPrivClass").style.marginBottom = "-10%"; document.getElementById("joinPrivClass").style.marginBottom = "-10%";
@ -597,12 +595,12 @@ function closeInput(sessval) {
} }
span.style.display = "initial"; span.style.display = "initial";
Session.set("modifying", null); Session.set("modifying", null);
Session.set("serverData", getProfileData()); serverData = getProfileData();
sendData("editProfile"); sendData("editProfile");
} }
function sendData(funcName) { function sendData(funcName) {
Meteor.call(funcName, Session.get("serverData")); Meteor.call(funcName, serverData);
} }
function getProfileData() { function getProfileData() {
@ -668,4 +666,4 @@ function checkUser(email,classid) {
if(classes.findOne({_id:classid}).subscribers) if(classes.findOne({_id:classid}).subscribers)
return false; return false;
} }
} }

View File

@ -26,3 +26,4 @@ themeColors = {
} }
}; };
serverData = null;