diff --git a/css/_materialFullCalendar.css b/css/_materialFullCalendar.css
index 8a91f6ef..3f5ef991 100644
--- a/css/_materialFullCalendar.css
+++ b/css/_materialFullCalendar.css
@@ -114,6 +114,57 @@ Colors: Use the following - https://www.google.com/design/spec/style/color.html#
/* Material design button */
+.matbut {
+ border: none;
+ outline: none;
+ cursor: pointer;
+ color: white;
+ margin: 10px 10px 10px 0px;
+ padding: 10px 10px;
+ border-radius: 10px;
+ font-size: medium;
+ font-style: bold;
+ box-shadow: 2px 2px 4px rgba(0, 0, 0, 0.4);
+}
+
+.matbut {
+ position: relative;
+ overflow: hidden;
+}
+
+.matbut:after {
+ content: "";
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ width: 5px;
+ height: 5px;
+ background: rgba(255, 255, 255, 0.5);
+ opacity: 0;
+ border-radius: 100%;
+ transform: scale(1, 1) translate(-50%);
+ transform-origin: 50% 50%;
+}
+
+@keyframes ripple {
+ 0% {
+ transform: scale(0, 0);
+ opacity: 1;
+ }
+ 20% {
+ transform: scale(25, 25);
+ opacity: 1;
+ }
+ 100% {
+ opacity: 0;
+ transform: scale(40, 40);
+ }
+}
+
+.matbut:focus:not(:active)::after {
+ animation: ripple 1s ease-out;
+}
+
.fc-button {
display: inline-block;
position: relative;
@@ -171,4 +222,60 @@ Colors: Use the following - https://www.google.com/design/spec/style/color.html#
.fc-state-default {
box-shadow: None;
+}
+
+.modal {
+ display: none;
+ position: fixed;
+ z-index: 1;
+ padding-top: 300px;
+ left: 0;
+ top: 0;
+ width: 100%;
+ height: 100%;
+ background-color: rgb(0, 0, 0);
+ background-color: rgba(0, 0, 0, 0.4);
+}
+
+.modal-content {
+ background-color: #fefefe;
+ margin: auto;
+ max-height: 85%;
+ overflow-y: auto;
+ padding: 20px;
+ border: 1px solid #888;
+ width: 20%;
+}
+
+/* The Close Button */
+
+.close {
+ color: #aaaaaa;
+ float: right;
+ padding: 5px;
+ font-size: 28px;
+ font-weight: bold;
+}
+
+.close:hover,
+.close:focus {
+ color: #000;
+ text-decoration: none;
+ cursor: pointer;
+}
+
+.card {
+ transition: 0.3s;
+ margin-bottom: 10px;
+ box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12);
+}
+
+.card:hover {
+ box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.2), 0 4px 20px 0 rgba(0, 0, 0, 0.19);
+}
+
+.cardcontainer {
+ padding: 2px 16px;
+ display: flex;
+ transition: width 300ms ease-in-out, height 300ms ease-in-out;
}
\ No newline at end of file
diff --git a/js/calendar.js b/js/calendar.js
index a4b0cef8..b2ed4b5a 100644
--- a/js/calendar.js
+++ b/js/calendar.js
@@ -11,12 +11,16 @@ $(function () {
["TH", "Thursday"],
["F", "Friday"]
]);
-
+ const fadetime = 150;
+ const butdelay = 75;
+ $("#calendar").prepend('
×Some text in the Modal..
');
// Counter to iterate through material colors to avoid duplicates
var colorCounter = 0;
// Each schedule needs to store 'TITLE - START TIME - END TIME - COLOR'
var classSchedules = [];
var savedCourses = [];
+ var currLink = "";
+ var currunique = "";
chrome.storage.sync.get("savedCourses", function (data) {
// Iterate through each saved course and add to 'event'
savedCourses = data.savedCourses;
@@ -48,16 +52,43 @@ $(function () {
$(element).css("margin-bottom", "5px");
},
- eventClick: function (calEvent, jsEvent, view) {
- console.log(calEvent);
- // $(this).css('background-color', 'green');
- alert('Event: ' + savedCourses[0].coursename);
- // change the border color just for fun
+ eventClick: function (data, event, view) {
+ $("#myModal").fadeIn(fadetime);
+ currunique = data.unique;
+ currLink = data.courseLink;
+ $("#unique").text(`Unique : ${data.unique}`);
+ // When the user clicks on (x), close the modal
+
+
}
});
});
+
+ $(".close").click(() => {
+ $("#myModal").fadeOut(fadetime);
+ });
+ $("#info").click(() => {
+ setTimeout(() => {
+ window.open(currLink);
+ }, butdelay);
+ });
+ /*Close Modal when hit escape*/
+ $(document).keydown((e) => {
+ if (e.keyCode == 27) {
+ $("#myModal").fadeOut(fadetime);
+ }
+ $("#snackbar").attr("class", "");
+ });
+ // When the user clicks anywhere outside of the modal, close it
+ window.onclick = (event) => {
+ var modal = document.getElementById("myModal");
+ if (event.target == modal) {
+ $("#myModal").fadeOut(fadetime);
+ }
+ }
+
// Iterate through each saved course and add to 'event'
function setAllEvents(savedCourses) {
colorCounter = 0;
@@ -68,17 +99,18 @@ $(function () {
var course_nbr = classInfo.coursename.substring(classInfo.coursename.search(/\d/), classInfo.coursename.indexOf(" ", classInfo.coursename.search(/\d/)));
var uncapProf = classInfo.profname;
uncapProf = uncapProf.charAt(0) + uncapProf.substring(1).toLowerCase();
-
+ var uniquenum = classInfo.unique;
+ var link = classInfo.link;
for (let j = 0; j < classInfo.datetimearr.length; j++) {
let session = classInfo.datetimearr[j]; // One single session for a class
- setEventForSection(session, colorCounter, department, course_nbr, uncapProf);
+ setEventForSection(session, colorCounter, department, course_nbr, uncapProf, uniquenum, link);
}
colorCounter++;
}
}
//create the event object for every section
- function setEventForSection(session, colorCounter, department, course_nbr, uncapProf) {
+ function setEventForSection(session, colorCounter, department, course_nbr, uncapProf, uniquenum, link) {
var fullday = days.get(session[0]);
classSchedules.push({
title: `${department}-${course_nbr} with ${uncapProf}`,
@@ -99,6 +131,8 @@ $(function () {
session[1][1] +
":00",
color: materialColors[colorCounter],
+ unique: uniquenum,
+ courseLink: link,
allday: false
});
}
diff --git a/js/content.js b/js/content.js
index c809cb9c..096feb33 100644
--- a/js/content.js
+++ b/js/content.js
@@ -21,7 +21,7 @@ const days = new Map([
["F", "Friday"]
]);
const fadetime = 150;
-const butdelay = 100;
+const butdelay = 75;
//This extension may be super lit, but you know what's even more lit?
//Matthew Tran's twitter and insta: @MATTHEWTRANN and @matthew.trann
$(function () {