Fixed calendar bugs

This commit is contained in:
Kenneth Jao 2016-09-02 00:15:29 -04:00
parent bd4f6017c8
commit fabe20ddfe
3 changed files with 40 additions and 19 deletions

View File

@ -711,6 +711,8 @@ input, textarea {
} }
.workevent { .workevent {
pointer-events: auto;
-webkit-transition: transform 0.4s ease; -webkit-transition: transform 0.4s ease;
-moz-transition: transform 0.4s ease; -moz-transition: transform 0.4s ease;
-ms-transition: transform 0.4s ease; -ms-transition: transform 0.4s ease;
@ -776,6 +778,15 @@ input, textarea {
box-shadow: inset 0 0 0 99999px rgba(0,0,0,0.15); box-shadow: inset 0 0 0 99999px rgba(0,0,0,0.15);
} }
.fc-slats, .fc-content-skeleton {
pointer-events: none;
}
.fc-more {
font-weight: 400;
pointer-events: auto;
}
#prefCont { #prefCont {
padding: 5%; padding: 5%;
} }

View File

@ -5,7 +5,7 @@
<template name="main"> <template name="main">
{{> loginButtons}} {{> loginButtons}}
<header style="background-color:{{divColor 'header'}}{{textColor}}{{defaultMode}}"> <header style="background-color:{{divColor 'header'}}{{textColor}}{{defaultMode}}{{refetchEvents}}">
<div id="aboveBar"> <div id="aboveBar">
<i class="fa fa-bars" aria-hidden="true" style="color:{{iconColor 'menu'}}"></i> <i class="fa fa-bars" aria-hidden="true" style="color:{{iconColor 'menu'}}"></i>
<h1>Hourglass</h1><h2>{{schoolName}}</h2> <h1>Hourglass</h1><h2>{{schoolName}}</h2>

View File

@ -5,7 +5,7 @@ import {
import './main.html'; import './main.html';
var load = true; var load = true;
var calCreWork = null; var calWorkOpen = null;
var calWorkDate = null; var calWorkDate = null;
var openValues = { var openValues = {
@ -18,7 +18,7 @@ var workColors = {
"normal": "#2E4F74", "normal": "#2E4F74",
"quiz": "#409333", "quiz": "#409333",
"test": "#AD3C44", "test": "#AD3C44",
"project": "#E6E619", "project": "#D8831A",
"other": "#852E6D" "other": "#852E6D"
}; };
@ -42,8 +42,10 @@ Session.set("currentWork",null); // Stores current selected work info.
Session.set("currentReadableWork",null); // Stores readable selected work info. Session.set("currentReadableWork",null); // Stores readable selected work info.
Session.set("modifying",null); // Stores current open input. Session.set("modifying",null); // Stores current open input.
Session.set("noclass",null); // If user does not have classes. 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("classDisp",[]); // Stores current filter for classes.
Session.set("classDispHover",null); // Stores current hovered filter. 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("commentRestrict",null); // Stores text for comment character restriction.
Template.registerHelper('divColor', (div) => { // Reactive color changing based on preferences. Colors stored in themeColors. Template.registerHelper('divColor', (div) => { // Reactive color changing based on preferences. Colors stored in themeColors.
@ -149,6 +151,7 @@ Template.registerHelper('myClasses', () => { // Gets all classes and respective
} }
Session.set("noclass",false); Session.set("noclass",false);
Session.set("calendarClasses", array); Session.set("calendarClasses", array);
Session.set("refetchEvents",true);
return array; return array;
} }
}); });
@ -231,6 +234,7 @@ Template.main.helpers({
week: 'Week', week: 'Week',
day: 'Day' day: 'Day'
}, },
eventLimit: 3,
events: function(start, end, timezone, callback) { events: function(start, end, timezone, callback) {
var events = []; var events = [];
var userClasses = Session.get("calendarClasses"); var userClasses = Session.get("calendarClasses");
@ -278,8 +282,9 @@ Template.main.helpers({
}, },
dayClick: function(date, jsEvent, view) { // On-click for each day. 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;
calCreWork = true; Session.set("calCreWork", true);
calWorkDate = date.format(); calWorkDate = date.format();
calWorkOpen = true;
Session.set("newWork", true); Session.set("newWork", true);
Session.set("sidebar","menuContainer"); Session.set("sidebar","menuContainer");
} }
@ -298,7 +303,7 @@ 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"; 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. calCreWork() { // Display instructions for creating a work.
if(calCreWork) { if(Session.get("calCreWork")) {
var div = document.getElementById("calCreWork"); var div = document.getElementById("calCreWork");
div.style.setProperty("display","inline-block","important"); div.style.setProperty("display","inline-block","important");
div.style.setProperty("opacity","0","important"); div.style.setProperty("opacity","0","important");
@ -383,7 +388,12 @@ Template.main.helpers({
currClass.banned.indexOf(Meteor.userId()) !== -1 currClass.banned.indexOf(Meteor.userId()) !== -1
) return true; ) return true;
} }
} },
refetchEvents() {
if(Session.get("refetchEvents")) {
$("#fullcalendar").fullCalendar( 'refetchEvents' );
Session.set("refetchEvents",null);
} }
}); });
Template.main.events({ Template.main.events({
@ -403,12 +413,16 @@ Template.main.events({
!e.includes("fa-cog") && !e.includes("fa-cog") &&
!e.includes("fa-bars") && !e.includes("fa-bars") &&
!document.getElementById("menuContainer").contains(event.target) && !document.getElementById("menuContainer").contains(event.target) &&
!document.getElementById("optionsContainer").contains(event.target) && !document.getElementById("optionsContainer").contains(event.target)) {
!(event.target.className.includes("fc-day") && !event.target.className.includes("fc-past"))) { if(Session.get("calCreWork")) {
if(calCreWork) { if(!calWorkOpen) {
calCreWork = false; 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.
@ -720,8 +734,8 @@ Template.main.events({
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");
if(calCreWork) { // If creating work from calendar. if(Session.get("calCreWork")) { // If creating work from calendar.
calCreWork = null; Session.get("calCreWork",null);
Session.set("sidebar",null); Session.set("sidebar",null);
var date = calWorkDate.split("-"); var date = calWorkDate.split("-");
@ -784,16 +798,12 @@ function closeDivFade(div) {
function sendData(funcName) { // Call Meteor function, and do actions after function is completed depending on function. function sendData(funcName) { // Call Meteor function, and do actions after function is completed depending on function.
Meteor.call(funcName, serverData , function(err,result) { Meteor.call(funcName, serverData , function(err,result) {
if((funcName === "editWork" || funcName === "createWork" || funcName === "deleteWork") && Session.get("mode") === "calendar") { if(funcName === "toggleWork") {
$("#fullcalendar").fullCalendar( 'refetchEvents' );
} else if(funcName === "toggleWork") {
var workId = Session.get("currentWork")._id; var workId = Session.get("currentWork")._id;
var thisWork = work.findOne({_id:workId}); var thisWork = work.findOne({_id:workId});
Session.set("currentWork",thisWork); Session.set("currentWork",thisWork);
var thisReadWork = formReadable(thisWork); var thisReadWork = formReadable(thisWork);
Session.set("currentReadableWork",thisReadWork); Session.set("currentReadableWork",thisReadWork);
} else if(funcName === "editProfile") {
$("#fullcalendar").fullCalendar( 'refetchEvents' );
} }
}); });
} }