From 8fd8a9412aff7332fbdcc008fa82d1770e85568d Mon Sep 17 00:00:00 2001 From: Yaman Qalieh Date: Sun, 4 Sep 2016 19:13:44 -0400 Subject: [PATCH 1/5] fix buggy characters left --- hourglass/client/main/main.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hourglass/client/main/main.js b/hourglass/client/main/main.js index 265adbc..78285ac 100644 --- a/hourglass/client/main/main.js +++ b/hourglass/client/main/main.js @@ -693,7 +693,7 @@ Template.main.events({ sendData("deleteWork"); closeDivFade(document.getElementsByClassName("overlay")[0]); }, - 'keyup #workComment' (event) { // Restrict length on comment. + 'input #workComment' (event) { // Restrict length on comment. var chars = 200-event.target.value.length; document.getElementById("commentRestrict").style.color = "#7E7E7E"; if(chars === 200) { // Don't display if nothing in comment. From b98f229c0b8d8c27abb678653c8c151dad555c7e Mon Sep 17 00:00:00 2001 From: Yaman Qalieh Date: Sun, 4 Sep 2016 20:10:58 -0400 Subject: [PATCH 2/5] fix emacs warnings --- hourglass/client/main/main.js | 83 +++++++++++++++++++---------------- 1 file changed, 44 insertions(+), 39 deletions(-) diff --git a/hourglass/client/main/main.js b/hourglass/client/main/main.js index 78285ac..ed08761 100644 --- a/hourglass/client/main/main.js +++ b/hourglass/client/main/main.js @@ -1,3 +1,4 @@ +/* jshint esversion: 6 */ import { Template } from 'meteor/templating'; @@ -13,7 +14,7 @@ var openValues = { "options": "-20%" }; -//Sets colors for different assignment statuses +// Sets colors for different assignment statuses var workColors = { "normal": "#2E4F74", "quiz": "#409333", @@ -22,7 +23,7 @@ var workColors = { "other": "#852E6D" }; -//Creates variables for due dates +// Creates variables for due dates var ref = { "1 Day":1, @@ -60,7 +61,7 @@ Template.registerHelper('textColor', () => { // Reactive color for text. }); Template.registerHelper('overlayDim', (part) => { // Gets size of the overlay container. - if(Meteor.user() === undefined) return; + if (Meteor.user() === undefined) return; var dim = [window.innerWidth * 0.25, window.innerHeight * 0.2]; var width = "width:" + dim[0].toString() + "px;"; var height = "height:" + dim[1].toString() + "px;"; @@ -96,11 +97,11 @@ Template.registerHelper('myClasses', () => { // Gets all classes and respective array[i].thisClassWork = []; continue; } - + for(var j = 0; j < thisWork.length; j++) { // For each work in class. if(hide !== 0) { // Time to hide isn't never. - var due = (moment(thisWork[j].dueDate))["_d"]; - var offset = (moment().subtract(hide,'days'))["_d"]; + var due = (moment(thisWork[j].dueDate))._d; + var offset = (moment().subtract(hide,'days'))._d; if(offset > due) { // If due is before hide days before today thisWork[j] = "no"; j = 0; @@ -112,11 +113,11 @@ Template.registerHelper('myClasses', () => { // Gets all classes and respective j = 0; } } - - } + + } while(thisWork.indexOf("no") !== -1) thisWork.splice(thisWork.indexOf("no"),1); // Splice all filtered works. - for(var j = 0; j < thisWork.length; j++) { + for(j = 0; j < thisWork.length; j++) { thisWork[j].realDate = thisWork[j].dueDate; thisWork[j].dueDate = moment(thisWork[j].dueDate).calendar(null, { sameDay: '[Today]', @@ -134,9 +135,9 @@ Template.registerHelper('myClasses', () => { // Gets all classes and respective } thisWork[j].typeColor = workColors[thisWork[j].type]; - thisWork[j].confirmationLength = thisWork[j].confirmations.length // Counts the number of confirmations and reports for a particular work. - thisWork[j].reportLength = thisWork[j].reports.length - + thisWork[j].confirmationLength = thisWork[j].confirmations.length; // Counts the number of confirmations and reports for a particular work. + thisWork[j].reportLength = thisWork[j].reports.length; + var hoverHighlight = Session.get("classDispHover"); // Highlight/scale related class works on hover. if(hoverHighlight !== null && hoverHighlight === found._id) { thisWork[j].scale = "-ms-transform: scale(1.12)-webkit-transform: scale(1.12);transform: scale(1.12)"; @@ -241,7 +242,7 @@ Template.main.helpers({ var works = userClasses[i].thisClassWork; for(var j = 0; j < works.length; j++) { var work = works[j]; - var currClass = classes.findOne({_id: work.class}) + var currClass = classes.findOne({_id: work.class}); var inRole = false; if(Meteor.userId() === work.creator || @@ -258,7 +259,7 @@ Template.main.helpers({ borderColor: "#444", startEditable: inRole, className: "workevent "+work.class, - }) + }); } } callback(events); @@ -272,7 +273,7 @@ Template.main.helpers({ }, eventClick: function(event, jsEvent, view) { // On-click for work. Session.set("newWork",false); - var thisWork = work.findOne({_id:event.id}) + var thisWork = work.findOne({_id:event.id}); Session.set("currentWork",thisWork); var thisReadWork = formReadable(thisWork); Session.set("currentReadableWork",thisReadWork); @@ -331,7 +332,7 @@ Template.main.helpers({ works[i].style.webkitTransform = ''; works[i].style.msTransform = ''; works[i].style.transform = ''; - } + } } return; }, @@ -344,7 +345,7 @@ Template.main.helpers({ var work = Session.get("currentWork"); if(Session.equals("newWork",null) || work === null) return; if(Session.get("newWork") || work.comments.length <= 3) return; - return 0.23*window.innerHeight.toString() + "px"; + return 0.23 * window.innerHeight.toString() + "px"; }, work(value) { // Returns the specified work value. if(Session.equals("currentWork",null)) return; @@ -371,8 +372,8 @@ Template.main.helpers({ if(Session.get("newWork")) { return true; } else { - var currClass = classes.findOne({_id: Session.get("currentWork")["class"]}) - if(Meteor.userId() === Session.get("currentWork").creator || + var currClass = classes.findOne({_id: Session.get("currentWork")["class"]}); + if(Meteor.userId() === Session.get("currentWork").creator || Roles.userIsInRole(Meteor.userId(), ['superadmin', 'admin']) || currClass.moderators.indexOf(Meteor.userId()) !== -1 || currClass.banned.indexOf(Meteor.userId()) !== -1 @@ -412,7 +413,7 @@ Template.main.events({ calWorkOpen = false; } else { Session.set("sidebar",null); - } + } } if(e === "overlay") { // Overlay closing. @@ -434,10 +435,11 @@ Template.main.events({ !event.target.parentNode.className.includes("workOptions") && !event.target.parentNode.className.includes("prefOptions") && event.target.readOnly !== true) { + var radio; if(Session.equals("sidebar","optionsContainer") || Session.equals("sidebar","both")) { - var radio = "prefOptions"; + radio = "prefOptions"; } else { - var radio = "workOptions"; + radio = "workOptions"; } for (var i = 0; i < document.getElementsByClassName(radio).length; i++) { try { @@ -492,10 +494,11 @@ Template.main.events({ Session.set("sidebar",null); // Closes all sidebars. }, 'click .creWork' (event) { // Cick add work button. + var attr; if(event.target.className !== "creWork") { - var attr = event.target.parentNode.getAttribute("classid"); + attr = event.target.parentNode.getAttribute("classid"); } else { - var attr = event.target.getAttribute("classid"); + attr = event.target.getAttribute("classid"); } Session.set("newWork", true); Session.set("currentReadableWork", // Default readable work. @@ -508,7 +511,7 @@ Template.main.events({ }); Session.set("currentWork",{class:attr}); openDivFade(document.getElementsByClassName("overlay")[0]); - }, + }, 'click .workCard' (event) { // Display work information on work card click. var dom = event.target; while(event.target.className !== "workCard") event.target = event.target.parentNode; @@ -527,7 +530,7 @@ Template.main.events({ currClass.moderators.indexOf(Meteor.userId()) !== -1 || currClass.banned.indexOf(Meteor.userId()) !== -1)) { var inputs = $('#editWork .change').css("cursor","default"); - }; + } } openDivFade(document.getElementsByClassName("overlay")[0]); }, @@ -604,10 +607,11 @@ Template.main.events({ } var op = event.target; + var radio; if(Session.equals("sidebar","optionsContainer") || Session.equals("sidebar","both")) { - var radio = "prefOptions"; + radio = "prefOptions"; } else { - var radio = "workOptions"; + radio = "workOptions"; } try { for (var i = 0; i < document.getElementsByClassName(radio).length; i++) { // Close any previously open menus. @@ -702,19 +706,18 @@ Template.main.events({ } else if(chars === 0) { document.getElementById("commentRestrict").style.color = "#FF1A1A"; // Make text red if 0 characters left. } - Session.set("commentRestrict", "Characters left: " + chars.toString()); - - }, + Session.set("commentRestrict",chars.toString() + " characters left"); + }, 'click #markDone' () { // Click done button. - serverData = [Session.get("currentWork")._id, "done"] + serverData = [Session.get("currentWork")._id, "done"]; sendData("toggleWork"); }, 'click #markConfirm' () { // Click confirm button. - serverData = [Session.get("currentWork")._id, "confirmations"] + serverData = [Session.get("currentWork")._id, "confirmations"]; sendData("toggleWork"); }, 'click #markReport' () { // Click report button. - serverData = [Session.get("currentWork")._id, "reports"] + serverData = [Session.get("currentWork")._id, "reports"]; sendData("toggleWork"); }, // CLASS FILTERS @@ -728,7 +731,7 @@ Template.main.events({ Session.set("sidebar",null); var date = calWorkDate.split("-"); - var date = new Date(date[0],parseInt(date[1])-1,date[2],11,59,59); + date = new Date(date[0],parseInt(date[1])-1,date[2],11,59,59); Session.set("newWork", true); Session.set("currentReadableWork", { @@ -754,10 +757,11 @@ Template.main.events({ Session.set("classDisp",[]); }, 'mouseover .sideClass' (event) { // Highlight/scale filter on-hover. + var div; if(event.target.className !== "sideClass") { - var div = event.target.parentNode; + div = event.target.parentNode; } else { - var div = event.target; + div = event.target; } while(div.getAttribute("classid") === null) div = div.parentNode; var classid = div.getAttribute("classid"); @@ -802,10 +806,11 @@ function sendData(funcName) { // Call Meteor function, and do actions after func function closeInput(modifyingInput) { // Close a changeable input and change it back to span. var input = document.getElementById(modifyingInput + "a"); var span = document.getElementById(modifyingInput); + var color; if(Session.equals("sidebar","optionsContainer") || Session.equals("sidebar","both")) { - var color = "#000"; + color = "#000"; } else { - var color = "#8C8C8C"; + color = "#8C8C8C"; } span.style.color = color; input.parentNode.removeChild(input); From 8eaaff37f4a537fbffccfc1545ef97fb15790035 Mon Sep 17 00:00:00 2001 From: Yaman Qalieh Date: Sun, 4 Sep 2016 20:13:31 -0400 Subject: [PATCH 3/5] web-beautify filter --- hourglass/client/main/main.js | 511 ++++++++++++++++++---------------- 1 file changed, 275 insertions(+), 236 deletions(-) diff --git a/hourglass/client/main/main.js b/hourglass/client/main/main.js index ed08761..4ad8573 100644 --- a/hourglass/client/main/main.js +++ b/hourglass/client/main/main.js @@ -26,36 +26,36 @@ var workColors = { // Creates variables for due dates var ref = { - "1 Day":1, - "2 Days":2, - "1 Week":7, - "1 Month":30, - "Never":0, - "Yes":true, - "No":false + "1 Day": 1, + "2 Days": 2, + "1 Week": 7, + "1 Month": 30, + "Never": 0, + "Yes": true, + "No": false }; // Reactive variables. Session.set("calendarClasses", null); Session.set("sidebar", null); // Status of sidebar -Session.set("newWork",null); // If user creating new work. -Session.set("currentWork",null); // Stores current selected work info. -Session.set("currentReadableWork",null); // Stores readable selected work info. -Session.set("modifying",null); // Stores current open input. -Session.set("noclass",null); // If user does not have classes. -Session.set("calCreWork",null); // If user is creating a work from calendar. -Session.set("classDisp",[]); // Stores current filter for classes. -Session.set("classDispHover",null); // Stores current hovered filter. -Session.set("refetchEvents",null); // Stores whether to get calendar events again. -Session.set("commentRestrict",null); // Stores text for comment character restriction. +Session.set("newWork", null); // If user creating new work. +Session.set("currentWork", null); // Stores current selected work info. +Session.set("currentReadableWork", null); // Stores readable selected work info. +Session.set("modifying", null); // Stores current open input. +Session.set("noclass", null); // If user does not have classes. +Session.set("calCreWork", null); // If user is creating a work from calendar. +Session.set("classDisp", []); // Stores current filter for classes. +Session.set("classDispHover", null); // Stores current hovered filter. +Session.set("refetchEvents", null); // Stores whether to get calendar events again. +Session.set("commentRestrict", null); // Stores text for comment character restriction. Template.registerHelper('divColor', (div) => { // Reactive color changing based on preferences. Colors stored in themeColors. - if(Meteor.user() === undefined) return; + if (Meteor.user() === undefined) return; return themeColors[Meteor.user().profile.preferences.theme][div]; }); Template.registerHelper('textColor', () => { // Reactive color for text. - if(Meteor.user() === undefined) return; + if (Meteor.user() === undefined) return; document.getElementsByTagName("body")[0].style.color = themeColors[Meteor.user().profile.preferences.theme].text; return; }); @@ -71,8 +71,8 @@ Template.registerHelper('overlayDim', (part) => { // Gets size of the overlay co }); Template.registerHelper('myClasses', () => { // Gets all classes and respective works. - if(Meteor.user() === undefined) { // Null checking. - Session.set("noclass",true); // Makes sure to display nothing. + if (Meteor.user() === undefined) { // Null checking. + Session.set("noclass", true); // Makes sure to display nothing. return []; } else { var array = []; @@ -80,44 +80,48 @@ Template.registerHelper('myClasses', () => { // Gets all classes and respective var classDisp = Session.get("classDisp"); // Get sidebar class filter. var hide = Meteor.user().profile.preferences.timeHide; - for(var i = 0; i < courses.length; i++) { // For each user class. - found = classes.findOne({_id:courses[i]}); + for (var i = 0; i < courses.length; i++) { // For each user class. + found = classes.findOne({ + _id: courses[i] + }); found.subscribers = found.subscribers.length; found.mine = true; - if(found.admin === Meteor.userId()) { // If user owns this class. + if (found.admin === Meteor.userId()) { // If user owns this class. found.box = " owned"; found.mine = false; } - if(classDisp.indexOf(courses[i]) !== -1) found.selected = true; // Filter selected. + if (classDisp.indexOf(courses[i]) !== -1) found.selected = true; // Filter selected. array.push(found); - var thisWork = work.find({class: courses[i]}).fetch(); + var thisWork = work.find({ + class: courses[i] + }).fetch(); - if(classDisp.length !== 0 && classDisp.indexOf(found._id) === -1) { // Filter classes based on filter. + if (classDisp.length !== 0 && classDisp.indexOf(found._id) === -1) { // Filter classes based on filter. array[i].thisClassWork = []; continue; } - for(var j = 0; j < thisWork.length; j++) { // For each work in class. - if(hide !== 0) { // Time to hide isn't never. + for (var j = 0; j < thisWork.length; j++) { // For each work in class. + if (hide !== 0) { // Time to hide isn't never. var due = (moment(thisWork[j].dueDate))._d; - var offset = (moment().subtract(hide,'days'))._d; - if(offset > due) { // If due is before hide days before today + var offset = (moment().subtract(hide, 'days'))._d; + if (offset > due) { // If due is before hide days before today thisWork[j] = "no"; j = 0; } } - if(thisWork[j] !== "no" && Meteor.user().profile.preferences.done) { // If done filter is true - if(thisWork[j].done.indexOf(Meteor.userId()) !== -1) { // If user marked this work done. + if (thisWork[j] !== "no" && Meteor.user().profile.preferences.done) { // If done filter is true + if (thisWork[j].done.indexOf(Meteor.userId()) !== -1) { // If user marked this work done. thisWork[j] = "no"; j = 0; } } - } - while(thisWork.indexOf("no") !== -1) thisWork.splice(thisWork.indexOf("no"),1); // Splice all filtered works. + } + while (thisWork.indexOf("no") !== -1) thisWork.splice(thisWork.indexOf("no"), 1); // Splice all filtered works. - for(j = 0; j < thisWork.length; j++) { + for (j = 0; j < thisWork.length; j++) { thisWork[j].realDate = thisWork[j].dueDate; thisWork[j].dueDate = moment(thisWork[j].dueDate).calendar(null, { sameDay: '[Today]', @@ -128,18 +132,18 @@ Template.registerHelper('myClasses', () => { // Gets all classes and respective sameElse: 'MMMM Do' }); - if(thisWork[j].dueDate === "Today") { // Font weight based on date proximity. + if (thisWork[j].dueDate === "Today") { // Font weight based on date proximity. thisWork[j].cardDate = "600"; - } else if(thisWork[j].dueDate === "Tomorrow") { + } else if (thisWork[j].dueDate === "Tomorrow") { thisWork[j].cardDate = "400"; } thisWork[j].typeColor = workColors[thisWork[j].type]; - thisWork[j].confirmationLength = thisWork[j].confirmations.length; // Counts the number of confirmations and reports for a particular work. - thisWork[j].reportLength = thisWork[j].reports.length; + thisWork[j].confirmationLength = thisWork[j].confirmations.length; // Counts the number of confirmations and reports for a particular work. + thisWork[j].reportLength = thisWork[j].reports.length; var hoverHighlight = Session.get("classDispHover"); // Highlight/scale related class works on hover. - if(hoverHighlight !== null && hoverHighlight === found._id) { + if (hoverHighlight !== null && hoverHighlight === found._id) { thisWork[j].scale = "-ms-transform: scale(1.12)-webkit-transform: scale(1.12);transform: scale(1.12)"; } else { thisWork[j].scale = ""; @@ -147,17 +151,17 @@ Template.registerHelper('myClasses', () => { // Gets all classes and respective } array[i].thisClassWork = thisWork; } - Session.set("noclass",false); + Session.set("noclass", false); Session.set("calendarClasses", array); - Session.set("refetchEvents",true); + Session.set("refetchEvents", true); return array; } }); Template.registerHelper('pref', (val) => { // Obtains all user preferences. - if(Meteor.user() === undefined) return; + if (Meteor.user() === undefined) return; var preferences = Meteor.user().profile.preferences; - if(val === 'timeHide' || val === 'done') { + if (val === 'timeHide' || val === 'done') { var invert = _.invert(ref); return invert[preferences[val]]; } @@ -166,50 +170,50 @@ Template.registerHelper('pref', (val) => { // Obtains all user preferences. Template.main.helpers({ schoolName() { // Finds the name of the user's school. - if(Meteor.user().profile.school === undefined) return; + if (Meteor.user().profile.school === undefined) return; return " - " + Meteor.user().profile.school; }, iconColor(icon) { // Sidebar status color - if (Session.equals("sidebar",icon + "Container")) { + if (Session.equals("sidebar", icon + "Container")) { return themeColors[Meteor.user().profile.preferences.theme].statusIcons; - } else if (Session.equals("sidebar","both")) { + } else if (Session.equals("sidebar", "both")) { return themeColors[Meteor.user().profile.preferences.theme].statusIcons; } else { return; } }, defaultMode() { //Loads the default display mode for user. - if(load) { - Session.set("mode",Meteor.user().profile.preferences.mode); + if (load) { + Session.set("mode", Meteor.user().profile.preferences.mode); load = false; } return; }, bgSrc() { // Adjusts for different, larger screen sizes. var dim = [window.innerWidth, window.innerHeight]; - var pic = "Backgrounds/"+themeColors[Meteor.user().profile.preferences.theme].background; + var pic = "Backgrounds/" + themeColors[Meteor.user().profile.preferences.theme].background; return pic; }, menuStatus() { // Status of of menu sidebar. - if (Session.equals("sidebar","menuContainer")) { + if (Session.equals("sidebar", "menuContainer")) { return "0%"; - } else if (Session.equals("sidebar","both")) { + } else if (Session.equals("sidebar", "both")) { return "0%"; } else { return openValues.menu; } }, optionsStatus() { // Status of options sidebar. - if (Session.equals("sidebar","optionsContainer")) { + if (Session.equals("sidebar", "optionsContainer")) { return "0%"; - } else if (Session.equals("sidebar","both")) { + } else if (Session.equals("sidebar", "both")) { return "0%"; } else { return openValues.options; } }, modeStatus(status) { // Color status of display modes. - if (Session.equals("mode",status)) { + if (Session.equals("mode", status)) { return themeColors[Meteor.user().profile.preferences.theme].highlightText; } else { return; @@ -238,17 +242,19 @@ Template.main.helpers({ var events = []; var userClasses = Session.get("calendarClasses"); - for(var i = 0; i < userClasses.length; i++) { + for (var i = 0; i < userClasses.length; i++) { var works = userClasses[i].thisClassWork; - for(var j = 0; j < works.length; j++) { + for (var j = 0; j < works.length; j++) { var work = works[j]; - var currClass = classes.findOne({_id: work.class}); + var currClass = classes.findOne({ + _id: work.class + }); var inRole = false; - if(Meteor.userId() === work.creator || - Roles.userIsInRole(Meteor.userId(), ['superadmin', 'admin']) || - currClass.moderators.indexOf(Meteor.userId()) !== -1 || - currClass.banned.indexOf(Meteor.userId()) !== -1 + if (Meteor.userId() === work.creator || + Roles.userIsInRole(Meteor.userId(), ['superadmin', 'admin']) || + currClass.moderators.indexOf(Meteor.userId()) !== -1 || + currClass.banned.indexOf(Meteor.userId()) !== -1 ) inRole = true; events.push({ @@ -258,34 +264,38 @@ Template.main.helpers({ backgroundColor: workColors[work.type], borderColor: "#444", startEditable: inRole, - className: "workevent "+work.class, + className: "workevent " + work.class, }); } } callback(events); }, eventDrop: function(event, delta, revertFunc) { // When user drops from click-dragging. - var current = work.findOne({_id:event.id}); + 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); + current.dueDate = new Date(date[0], parseInt(date[1]) - 1, date[2], 11, 59, 59); serverData = current; sendData("editWork"); }, eventClick: function(event, jsEvent, view) { // On-click for work. - Session.set("newWork",false); - var thisWork = work.findOne({_id:event.id}); - Session.set("currentWork",thisWork); + Session.set("newWork", false); + var thisWork = work.findOne({ + _id: event.id + }); + Session.set("currentWork", thisWork); var thisReadWork = formReadable(thisWork); - Session.set("currentReadableWork",thisReadWork); + Session.set("currentReadableWork", thisReadWork); openDivFade(document.getElementsByClassName("overlay")[0]); }, dayClick: function(date, jsEvent, view) { // On-click for each day. - if(jsEvent.target.className.includes("fc-past")) return; + if (jsEvent.target.className.includes("fc-past")) return; Session.set("calCreWork", true); calWorkDate = date.format(); calWorkOpen = true; Session.set("newWork", true); - Session.set("sidebar","menuContainer"); + Session.set("sidebar", "menuContainer"); } }; }, @@ -294,7 +304,7 @@ Template.main.helpers({ return "width:" + width.toString() + "px;margin-left:" + (0.5 * window.innerWidth - 0.5 * width).toString() + "px;"; }, calColor() { // Sets the color of the calendar according to theme - return "color:"+themeColors[Meteor.user().profile.preferences.theme].calendar; + return "color:" + themeColors[Meteor.user().profile.preferences.theme].calendar; }, calbg() { //Sets size of the calendar var width = window.innerWidth * 0.865; @@ -302,29 +312,29 @@ Template.main.helpers({ return "width:" + width.toString() + "px;height:" + height.toString() + "px;margin-left:" + (0.5 * window.innerWidth - 0.5 * width).toString() + "px;margin-top:" + (0.47 * window.innerHeight - 0.5 * height).toString() + "px"; }, calCreWork() { // Display instructions for creating a work. - if(Session.get("calCreWork")) return true; + if (Session.get("calCreWork")) return true; return false; }, filterOn() { - if(Session.get("classDisp").length !== 0) return true; + if (Session.get("classDisp").length !== 0) return true; return false; }, highlight() { // Calendar highlight/scale option. var hoverHighlight = Session.get("classDispHover"); var works = document.getElementsByClassName("workevent"); var work = $('.workevent'); - if(hoverHighlight === null) { - work.css('-webkit-transform',''); - work.css('-ms-transform',''); - work.css('transform',''); + if (hoverHighlight === null) { + work.css('-webkit-transform', ''); + work.css('-ms-transform', ''); + work.css('transform', ''); return; } - for(var i = 0; i < works.length; i++) { + for (var i = 0; i < works.length; i++) { var id = works[i].className; var index = id.indexOf("workevent"); - id = id.substring(index+10,index+27); - if(id === hoverHighlight) { + id = id.substring(index + 10, index + 27); + if (id === hoverHighlight) { works[i].style.webkitTransform = 'scale(1.12)'; works[i].style.msTransform = 'scale(1.12)'; works[i].style.transform = 'scale(1.12)'; @@ -339,23 +349,23 @@ Template.main.helpers({ workCenter() { // Centers work overlay. var w = window.innerWidth * 0.3; var h = window.innerHeight * 0.7; - return "width:"+w.toString()+"px;height:"+h.toString()+"px;margin-left:"+-0.5*w.toString()+"px;margin-top:"+-0.5*h.toString()+"px"; + return "width:" + w.toString() + "px;height:" + h.toString() + "px;margin-left:" + -0.5 * w.toString() + "px;margin-top:" + -0.5 * h.toString() + "px"; }, commentDim() { // Dimensions of comment container. var work = Session.get("currentWork"); - if(Session.equals("newWork",null) || work === null) return; - if(Session.get("newWork") || work.comments.length <= 3) return; + if (Session.equals("newWork", null) || work === null) return; + if (Session.get("newWork") || work.comments.length <= 3) return; return 0.23 * window.innerHeight.toString() + "px"; }, work(value) { // Returns the specified work value. - if(Session.equals("currentWork",null)) return; + if (Session.equals("currentWork", null)) return; return Session.get("currentReadableWork")[value]; }, workType() { // Returns color for respective work type. - if(Session.equals("currentWork",null)) return; - if(Session.get("currentWork").type === undefined) return; + if (Session.equals("currentWork", null)) return; + if (Session.get("currentWork").type === undefined) return; type = Session.get("currentWork").type; - if(type.includes("edit")) { + if (type.includes("edit")) { return; } else { return workColors[type]; @@ -368,23 +378,26 @@ Template.main.helpers({ return Session.get("newWork"); }, inRole() { // Checks correct permissions. - if(Session.equals("currentWork",null)) return; - if(Session.get("newWork")) { + if (Session.equals("currentWork", null)) return; + if (Session.get("newWork")) { return true; } else { - var currClass = classes.findOne({_id: Session.get("currentWork")["class"]}); - if(Meteor.userId() === Session.get("currentWork").creator || - Roles.userIsInRole(Meteor.userId(), ['superadmin', 'admin']) || - currClass.moderators.indexOf(Meteor.userId()) !== -1 || - currClass.banned.indexOf(Meteor.userId()) !== -1 - ) return true; + var currClass = classes.findOne({ + _id: Session.get("currentWork")["class"] + }); + if (Meteor.userId() === Session.get("currentWork").creator || + Roles.userIsInRole(Meteor.userId(), ['superadmin', 'admin']) || + currClass.moderators.indexOf(Meteor.userId()) !== -1 || + currClass.banned.indexOf(Meteor.userId()) !== -1 + ) return true; } }, refetchEvents() { - if(Session.get("refetchEvents")) { - $("#fullcalendar").fullCalendar( 'refetchEvents' ); - Session.set("refetchEvents",null); - } } + if (Session.get("refetchEvents")) { + $("#fullcalendar").fullCalendar('refetchEvents'); + Session.set("refetchEvents", null); + } + } }); Template.main.events({ @@ -400,35 +413,35 @@ Template.main.events({ closeInput(modifyingInput); } - if (!Session.equals("sidebar",e) && // Sidebar closing. - !e.includes("fa-cog") && - !e.includes("fa-bars") && - !document.getElementById("menuContainer").contains(event.target) && - !document.getElementById("optionsContainer").contains(event.target)) { - if(Session.get("calCreWork")) { - if(!calWorkOpen) { - Session.set("calCreWork",false); - Session.set("sidebar",null); + if (!Session.equals("sidebar", e) && // Sidebar closing. + !e.includes("fa-cog") && + !e.includes("fa-bars") && + !document.getElementById("menuContainer").contains(event.target) && + !document.getElementById("optionsContainer").contains(event.target)) { + if (Session.get("calCreWork")) { + if (!calWorkOpen) { + Session.set("calCreWork", false); + Session.set("sidebar", null); } calWorkOpen = false; } else { - Session.set("sidebar",null); + Session.set("sidebar", null); } } - if(e === "overlay") { // Overlay closing. + if (e === "overlay") { // Overlay closing. closeDivFade(document.getElementsByClassName("overlay")[0]); - if(!Session.get("newWork")) { - if(getHomeworkFormData() === null) return; + if (!Session.get("newWork")) { + if (getHomeworkFormData() === null) return; 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",""); - Session.set("commentRestrict",null); + Session.set("newWork", null); + Session.set("currentWork", null); + Session.set("currentReadableWork", null); + $('.req').css("color", ""); + Session.set("commentRestrict", null); } if (!event.target.className.includes("radio") && // Dropdown closing. @@ -436,7 +449,7 @@ Template.main.events({ !event.target.parentNode.className.includes("prefOptions") && event.target.readOnly !== true) { var radio; - if(Session.equals("sidebar","optionsContainer") || Session.equals("sidebar","both")) { + if (Session.equals("sidebar", "optionsContainer") || Session.equals("sidebar", "both")) { radio = "prefOptions"; } else { radio = "workOptions"; @@ -474,75 +487,83 @@ Template.main.events({ } }, 'click .classes' () { // Click classes mode button. - if (Session.equals("mode","classes")) return; + if (Session.equals("mode", "classes")) return; var modeHolder = document.getElementById("mainBody"); closeDivFade(modeHolder); setTimeout(function() { Session.set("mode", "classes"); openDivFade(modeHolder); }, 300); - Session.set("sidebar",null); // Closes all sidebars. + Session.set("sidebar", null); // Closes all sidebars. }, 'click .calendar' () { // Click calendar mode button. - if (Session.equals("mode","calendar")) return; + if (Session.equals("mode", "calendar")) return; var modeHolder = document.getElementById("mainBody"); closeDivFade(modeHolder); setTimeout(function() { Session.set("mode", "calendar"); openDivFade(modeHolder); }, 300); - Session.set("sidebar",null); // Closes all sidebars. + Session.set("sidebar", null); // Closes all sidebars. }, 'click .creWork' (event) { // Cick add work button. var attr; - if(event.target.className !== "creWork") { + if (event.target.className !== "creWork") { attr = event.target.parentNode.getAttribute("classid"); } else { attr = event.target.getAttribute("classid"); } Session.set("newWork", true); Session.set("currentReadableWork", // Default readable work. - { - name:"Name | Click here to edit...", - class:attr, - dueDate:"Click here to edit...", - description:"Click here to edit...", - type:"Click here to edit..." + { + name: "Name | Click here to edit...", + class: attr, + dueDate: "Click here to edit...", + description: "Click here to edit...", + type: "Click here to edit..." + }); + Session.set("currentWork", { + class: attr }); - Session.set("currentWork",{class:attr}); openDivFade(document.getElementsByClassName("overlay")[0]); }, 'click .workCard' (event) { // Display work information on work card click. var dom = event.target; - while(event.target.className !== "workCard") event.target = event.target.parentNode; + while (event.target.className !== "workCard") event.target = event.target.parentNode; workid = event.target.getAttribute("workid"); - Session.set("newWork",false); - var thisWork = work.findOne({_id:workid}); - Session.set("currentWork",thisWork); + Session.set("newWork", false); + var thisWork = work.findOne({ + _id: workid + }); + Session.set("currentWork", thisWork); var thisReadWork = formReadable(thisWork); - Session.set("currentReadableWork",thisReadWork); + Session.set("currentReadableWork", thisReadWork); - if(!Session.get("newWork") && !document.getElementById("optionsContainer").contains(event.target)) { - var currClass = classes.findOne({_id: Session.get("currentWork")["class"]}); - if(!(Meteor.userId() === Session.get("currentWork").creator || // If user has permission. - Roles.userIsInRole(Meteor.userId(), ['superadmin', 'admin']) || - currClass.moderators.indexOf(Meteor.userId()) !== -1 || - currClass.banned.indexOf(Meteor.userId()) !== -1)) { - var inputs = $('#editWork .change').css("cursor","default"); + if (!Session.get("newWork") && !document.getElementById("optionsContainer").contains(event.target)) { + var currClass = classes.findOne({ + _id: Session.get("currentWork")["class"] + }); + if (!(Meteor.userId() === Session.get("currentWork").creator || // If user has permission. + Roles.userIsInRole(Meteor.userId(), ['superadmin', 'admin']) || + currClass.moderators.indexOf(Meteor.userId()) !== -1 || + currClass.banned.indexOf(Meteor.userId()) !== -1)) { + var inputs = $('#editWork .change').css("cursor", "default"); } } openDivFade(document.getElementsByClassName("overlay")[0]); }, // HANDLING INPUT CHANGING 'click .change' (event) { // Click changable inputs. Creates an input where the span is. - if(!Session.get("newWork") && !document.getElementById("optionsContainer").contains(event.target)) { - var currClass = classes.findOne({_id: Session.get("currentWork")["class"]}); - if(!(Meteor.userId() === Session.get("currentWork").creator || // If user has permission. - Roles.userIsInRole(Meteor.userId(), ['superadmin', 'admin']) || - currClass.moderators.indexOf(Meteor.userId()) !== -1 || - currClass.banned.indexOf(Meteor.userId()) !== -1 - )) return; + if (!Session.get("newWork") && !document.getElementById("optionsContainer").contains(event.target)) { + var currClass = classes.findOne({ + _id: Session.get("currentWork")["class"] + }); + if (!(Meteor.userId() === Session.get("currentWork").creator || // If user has permission. + Roles.userIsInRole(Meteor.userId(), ['superadmin', 'admin']) || + currClass.moderators.indexOf(Meteor.userId()) !== -1 || + currClass.banned.indexOf(Meteor.userId()) !== -1 + )) return; } // CSS and DOM manipulation. var ele = event.target; @@ -566,7 +587,7 @@ Template.main.events({ input.typ = "text"; input.style.height = 0.9 * dim.height.toString() + "px"; } - if(event.target.id !== "workDate") input.value = ele.childNodes[0].nodeValue; + if (event.target.id !== "workDate") input.value = ele.childNodes[0].nodeValue; input.className = "changeInput"; input.style.width = "70%"; @@ -580,7 +601,7 @@ Template.main.events({ } else { input.select(); } - if(ele.id === "workDate") { + if (ele.id === "workDate") { input.className += " form-control"; } input.focus(); @@ -597,18 +618,20 @@ Template.main.events({ } }, 'click .radio' (event) { // Click dropdown input. Opens the dropdown menu. - if(!Session.get("newWork") && !document.getElementById("optionsContainer").contains(event.target)) { - var currClass = classes.findOne({_id: Session.get("currentWork")["class"]}); - if(!(Meteor.userId() === Session.get("currentWork").creator || - Roles.userIsInRole(Meteor.userId(), ['superadmin', 'admin']) || - currClass.moderators.indexOf(Meteor.userId()) !== -1 || - currClass.banned.indexOf(Meteor.userId()) !== -1 - )) return; + if (!Session.get("newWork") && !document.getElementById("optionsContainer").contains(event.target)) { + var currClass = classes.findOne({ + _id: Session.get("currentWork")["class"] + }); + if (!(Meteor.userId() === Session.get("currentWork").creator || + Roles.userIsInRole(Meteor.userId(), ['superadmin', 'admin']) || + currClass.moderators.indexOf(Meteor.userId()) !== -1 || + currClass.banned.indexOf(Meteor.userId()) !== -1 + )) return; } var op = event.target; var radio; - if(Session.equals("sidebar","optionsContainer") || Session.equals("sidebar","both")) { + if (Session.equals("sidebar", "optionsContainer") || Session.equals("sidebar", "both")) { radio = "prefOptions"; } else { radio = "workOptions"; @@ -616,7 +639,7 @@ Template.main.events({ try { for (var i = 0; i < document.getElementsByClassName(radio).length; i++) { // Close any previously open menus. var curr = document.getElementsByClassName(radio)[i]; - if(curr.childNodes[1] !== op.parentNode.parentNode.childNodes[3].childNodes[1]) { + if (curr.childNodes[1] !== op.parentNode.parentNode.childNodes[3].childNodes[1]) { closeDivFade(document.getElementsByClassName(radio)[i]); } } @@ -670,26 +693,28 @@ Template.main.events({ var input = document.getElementById('workComment'); comment = input.value; input.value = ""; - Session.set("commentRestrict",null); + Session.set("commentRestrict", null); if (comment !== "") { document.getElementById('workComment').value = ""; - Meteor.call('addComment', [comment, workId], function(err,result) { - var thisWork = work.findOne({_id:workId}); - Session.set("currentWork",thisWork); + Meteor.call('addComment', [comment, workId], function(err, result) { + var thisWork = work.findOne({ + _id: workId + }); + Session.set("currentWork", thisWork); var thisReadWork = formReadable(thisWork); - Session.set("currentReadableWork",thisReadWork); + Session.set("currentReadableWork", thisReadWork); }); } }, 'click #workSubmit' () { // Click submit work to create a work. - if(getHomeworkFormData() === null) return; // Makes sure to check valid homework. + if (getHomeworkFormData() === null) return; // Makes sure to check valid homework. serverData = Session.get("currentWork"); - if(Session.get("newWork")) { + if (Session.get("newWork")) { sendData("createWork"); } else { sendData("editWork"); } - Session.set("newWork",null); + Session.set("newWork", null); closeDivFade(document.getElementsByClassName("overlay")[0]); }, 'click #workDelete' () { @@ -698,15 +723,15 @@ Template.main.events({ closeDivFade(document.getElementsByClassName("overlay")[0]); }, 'input #workComment' (event) { // Restrict length on comment. - var chars = 200-event.target.value.length; + var chars = 200 - event.target.value.length; document.getElementById("commentRestrict").style.color = "#7E7E7E"; - if(chars === 200) { // Don't display if nothing in comment. - Session.set("commentRestrict",""); + if (chars === 200) { // Don't display if nothing in comment. + Session.set("commentRestrict", ""); return; - } else if(chars === 0) { + } else if (chars === 0) { document.getElementById("commentRestrict").style.color = "#FF1A1A"; // Make text red if 0 characters left. } - Session.set("commentRestrict",chars.toString() + " characters left"); + Session.set("commentRestrict", chars.toString() + " characters left"); }, 'click #markDone' () { // Click done button. serverData = [Session.get("currentWork")._id, "done"]; @@ -723,56 +748,58 @@ Template.main.events({ // CLASS FILTERS 'click .sideClass' (event) { // Click class list in sidebar. 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"); - if(Session.get("calCreWork")) { // If creating work from calendar. - Session.get("calCreWork",null); - Session.set("sidebar",null); + if (Session.get("calCreWork")) { // If creating work from calendar. + Session.get("calCreWork", null); + Session.set("sidebar", null); var date = calWorkDate.split("-"); - date = new Date(date[0],parseInt(date[1])-1,date[2],11,59,59); + date = new Date(date[0], parseInt(date[1]) - 1, date[2], 11, 59, 59); Session.set("newWork", true); - Session.set("currentReadableWork", - { - name:"Name | Click here to edit...", - class:classid, - dueDate:getReadableDate(date), - description:"Click here to edit...", - type:"Click here to edit..." + Session.set("currentReadableWork", { + name: "Name | Click here to edit...", + class: classid, + dueDate: getReadableDate(date), + description: "Click here to edit...", + type: "Click here to edit..." }); - Session.set("currentWork",{class:classid,dueDate:date}); - openDivFade(document.getElementsByClassName("overlay")[0]); + Session.set("currentWork", { + class: classid, + dueDate: date + }); + openDivFade(document.getElementsByClassName("overlay")[0]); } else { // Normal clicking turns on filter. var array = Session.get("classDisp"); - if(array.indexOf(classid) !== -1) { - array.splice(array.indexOf(classid),1); + if (array.indexOf(classid) !== -1) { + array.splice(array.indexOf(classid), 1); } else { array.push(classid); } - Session.set("classDisp",array); + Session.set("classDisp", array); } }, 'click #disableFilter' () { - Session.set("classDisp",[]); + Session.set("classDisp", []); }, 'mouseover .sideClass' (event) { // Highlight/scale filter on-hover. var div; - if(event.target.className !== "sideClass") { + if (event.target.className !== "sideClass") { div = event.target.parentNode; } else { div = event.target; } - while(div.getAttribute("classid") === null) div = div.parentNode; + while (div.getAttribute("classid") === null) div = div.parentNode; var classid = div.getAttribute("classid"); - Session.set("classDispHover",classid); + Session.set("classDispHover", classid); }, 'mouseleave .sideClass' (event) { // Turn off highlight/scale filter on-leave. - if(event.target.className !== "sideClass") { + if (event.target.className !== "sideClass") { var div = event.target.parentNode; - if(div.contains(event.target)) return; + if (div.contains(event.target)) return; } - Session.set("classDispHover",null); + Session.set("classDispHover", null); } }); @@ -792,13 +819,15 @@ function closeDivFade(div) { } function sendData(funcName) { // Call Meteor function, and do actions after function is completed depending on function. - Meteor.call(funcName, serverData , function(err,result) { - if(funcName === "toggleWork") { + Meteor.call(funcName, serverData, function(err, result) { + if (funcName === "toggleWork") { var workId = Session.get("currentWork")._id; - var thisWork = work.findOne({_id:workId}); - Session.set("currentWork",thisWork); + var thisWork = work.findOne({ + _id: workId + }); + Session.set("currentWork", thisWork); var thisReadWork = formReadable(thisWork); - Session.set("currentReadableWork",thisReadWork); + Session.set("currentReadableWork", thisReadWork); } }); } @@ -807,7 +836,7 @@ function closeInput(modifyingInput) { // Close a changeable input and change it var input = document.getElementById(modifyingInput + "a"); var span = document.getElementById(modifyingInput); var color; - if(Session.equals("sidebar","optionsContainer") || Session.equals("sidebar","both")) { + if (Session.equals("sidebar", "optionsContainer") || Session.equals("sidebar", "both")) { color = "#000"; } else { color = "#8C8C8C"; @@ -826,11 +855,11 @@ function closeInput(modifyingInput) { // Close a changeable input and change it span.style.display = "initial"; Session.set("modifying", null); - if(Session.equals("sidebar","optionsContainer") || Session.equals("sidebar","both")) { // Close depending on work or preferences. + if (Session.equals("sidebar", "optionsContainer") || Session.equals("sidebar", "both")) { // Close depending on work or preferences. serverData = getPreferencesData(); sendData("editProfile"); - } else if(!Session.get("newWork")) { - if(getHomeworkFormData() === null) return; + } else if (!Session.get("newWork")) { + if (getHomeworkFormData() === null) return; serverData = Session.get("currentWork"); sendData("editWork"); } @@ -839,15 +868,15 @@ function closeInput(modifyingInput) { // Close a changeable input and change it function getHomeworkFormData() { // Get all data relating to work creation. var inputs = document.getElementsByClassName("req"); var stop; - for(var i = 0; i < inputs.length; i++) { + for (var i = 0; i < inputs.length; i++) { var value = inputs[i].childNodes[0].nodeValue; - if(value.includes("Click here to edit")) { + if (value.includes("Click here to edit")) { inputs[i].childNodes[0].nodeValue = "Missing field"; inputs[i].style.color = "#FF1A1A"; stop = true; } } - if(stop) return null; + if (stop) return null; var data = Session.get("currentWork"); data.name = document.getElementById("workName").childNodes[0].nodeValue; @@ -863,36 +892,36 @@ function getHomeworkFormData() { // Get all data relating to work creation. function getPreferencesData() { // Get all data relating to preferences. var profile = Meteor.user().profile; var options = { - "theme":document.getElementById("prefTheme").childNodes[0].nodeValue.toLowerCase(), - "mode":document.getElementById("prefMode").childNodes[0].nodeValue.toLowerCase(), - "timeHide":ref[document.getElementById("prefHide").childNodes[0].nodeValue], - "done":ref[document.getElementById("prefDone").childNodes[0].nodeValue] + "theme": document.getElementById("prefTheme").childNodes[0].nodeValue.toLowerCase(), + "mode": document.getElementById("prefMode").childNodes[0].nodeValue.toLowerCase(), + "timeHide": ref[document.getElementById("prefHide").childNodes[0].nodeValue], + "done": ref[document.getElementById("prefDone").childNodes[0].nodeValue] }; profile.preferences = options; return profile; } -var days = ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]; -var months = ["January","February","March","April","May","June","July","August","September","October","November","December"]; +var days = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]; +var months = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]; function getReadableDate(date) { // Get readable date from Date constructor. - return days[date.getDay()]+", "+months[date.getMonth()]+" "+date.getDate()+", "+date.getFullYear(); + return days[date.getDay()] + ", " + months[date.getMonth()] + " " + date.getDate() + ", " + date.getFullYear(); } function toDate(date) { // Turns formatted date back to Date constructor. - date = date.substring(date.search(",")+2,date.length); - month = months.indexOf(date.substring(0,date.search(" "))); - day = date.substring(date.search(" ")+1,date.search(",")); - year = date.substring(date.search(",")+2,date.length); - return new Date(year,month,day,11,59,59); + date = date.substring(date.search(",") + 2, date.length); + month = months.indexOf(date.substring(0, date.search(" "))); + day = date.substring(date.search(" ") + 1, date.search(",")); + year = date.substring(date.search(",") + 2, date.length); + return new Date(year, month, day, 11, 59, 59); } function formReadable(input) { // Makes work information readable by users. input.dueDate = getReadableDate(input.dueDate); input.type = input.type[0].toUpperCase() + input.type.slice(1); - if(!Session.get("newWork")) { - if(input.done.indexOf(Meteor.userId()) !== -1) { // If user marked as done. + if (!Session.get("newWork")) { + if (input.done.indexOf(Meteor.userId()) !== -1) { // If user marked as done. input.doneCol = "#27A127"; input.doneText = "Done!"; } else { @@ -900,17 +929,21 @@ function formReadable(input) { // Makes work information readable by users. input.doneText = "Mark done"; } - for(var i = 0; i < input.done.length; i++) { // Display users who marked as done. - input.done[i] = {"user":Meteor.users.findOne({_id:input.done[i]}).profile.name}; + for (var i = 0; i < input.done.length; i++) { // Display users who marked as done. + input.done[i] = { + "user": Meteor.users.findOne({ + _id: input.done[i] + }).profile.name + }; } - if(input.confirmations.indexOf(Meteor.userId()) !== -1) { // If user confirmed. - input.userConfirm = "#27A127"; + if (input.confirmations.indexOf(Meteor.userId()) !== -1) { // If user confirmed. + input.userConfirm = "#27A127"; } else { input.userConfirm = ""; } - if(input.reports.indexOf(Meteor.userId()) !== -1) { // If user reported. + if (input.reports.indexOf(Meteor.userId()) !== -1) { // If user reported. input.userReport = "#FF1A1A"; } else { input.userReport = ""; @@ -921,12 +954,18 @@ function formReadable(input) { // Makes work information readable by users. var comments = input.comments; var resort = []; - if(!Session.get("newWork")) { // Don't display comments if user is creating work. - for(var k = 0; k < comments.length; k++) { - var re = comments.length-k-1; - resort[re] = {"comment":comments[k].comment,"date":null,"user":null}; - resort[re].user = Meteor.users.findOne({_id:comments[k].user}).profile.name; - resort[re].date = moment(comments[k].date).fromNow(); + if (!Session.get("newWork")) { // Don't display comments if user is creating work. + for (var k = 0; k < comments.length; k++) { + var re = comments.length - k - 1; + resort[re] = { + "comment": comments[k].comment, + "date": null, + "user": null + }; + resort[re].user = Meteor.users.findOne({ + _id: comments[k].user + }).profile.name; + resort[re].date = moment(comments[k].date).fromNow(); } input.comments = resort; } From a213cfde23d25fd4e91fa0f45b018bd0a746fcc9 Mon Sep 17 00:00:00 2001 From: Yaman Qalieh Date: Sun, 4 Sep 2016 20:16:13 -0400 Subject: [PATCH 4/5] filter on server/main --- hourglass/server/main.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hourglass/server/main.js b/hourglass/server/main.js index 1f904c4..7e1c013 100644 --- a/hourglass/server/main.js +++ b/hourglass/server/main.js @@ -1,4 +1,4 @@ -//meteor things +/* jshint esversion: 6 */ import { Meteor } from 'meteor/meteor'; From 3a9fd1ed0df59dc5c7936bedcb5ce3271a526ece Mon Sep 17 00:00:00 2001 From: Yaman Qalieh Date: Sun, 4 Sep 2016 20:20:40 -0400 Subject: [PATCH 5/5] filter on router --- hourglass/lib/router.js | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/hourglass/lib/router.js b/hourglass/lib/router.js index b85af25..5bdbcf9 100644 --- a/hourglass/lib/router.js +++ b/hourglass/lib/router.js @@ -4,11 +4,11 @@ Router.route('/', { this.redirect('/login'); } else { return [ - Meteor.subscribe('classes',this.params._id), - Meteor.subscribe('schools',this.params._id), - Meteor.subscribe('work',this.params._id), - Meteor.subscribe('requests',this.params._id), - Meteor.subscribe('users',this.params._id) + Meteor.subscribe('classes', this.params._id), + Meteor.subscribe('schools', this.params._id), + Meteor.subscribe('work', this.params._id), + Meteor.subscribe('requests', this.params._id), + Meteor.subscribe('users', this.params._id) ]; } }, @@ -33,15 +33,15 @@ Router.route('/profile', { this.redirect('/login'); } else { return [ - Meteor.subscribe('classes',this.params._id), - Meteor.subscribe('schools',this.params._id), - Meteor.subscribe('work',this.params._id), - Meteor.subscribe('requests',this.params._id), - Meteor.subscribe('users',this.params._id) + Meteor.subscribe('classes', this.params._id), + Meteor.subscribe('schools', this.params._id), + Meteor.subscribe('work', this.params._id), + Meteor.subscribe('requests', this.params._id), + Meteor.subscribe('users', this.params._id) ]; } }, - action: function() { + action: function() { this.render("profile"); } }); @@ -50,17 +50,17 @@ Router.route('/admin', { waitOn: function() { if (Roles.userIsInRole(Meteor.userId(), ['admin', 'superadmin'])) { return [ - Meteor.subscribe('classes',this.params._id), - Meteor.subscribe('schools',this.params._id), - Meteor.subscribe('work',this.params._id), - Meteor.subscribe('requests',this.params._id), - Meteor.subscribe('users',this.params._id) + Meteor.subscribe('classes', this.params._id), + Meteor.subscribe('schools', this.params._id), + Meteor.subscribe('work', this.params._id), + Meteor.subscribe('requests', this.params._id), + Meteor.subscribe('users', this.params._id) ]; } else { this.render('NotFound'); } }, - action: function() { + action: function() { this.render("admin"); } });