Added sidebar clases on-hover 'highlight' work

This commit is contained in:
Kenneth Jao 2016-08-25 23:31:34 -04:00
parent 2c1d8cddd8
commit e8799aeb27
6 changed files with 130 additions and 37 deletions

View File

@ -6,7 +6,7 @@
meteor-base@1.0.4 # Packages every Meteor app needs to have meteor-base@1.0.4 # Packages every Meteor app needs to have
mobile-experience@1.0.4 # Packages for a great mobile UX mobile-experience@1.0.4 # Packages for a great mobile UX
mongo@1.1.11 # The database Meteor supports right now mongo@1.1.12 # The database Meteor supports right now
blaze-html-templates@1.0.4 # Compile .html files into Meteor Blaze views blaze-html-templates@1.0.4 # Compile .html files into Meteor Blaze views
reactive-var@1.0.10 # Reactive variable for tracker reactive-var@1.0.10 # Reactive variable for tracker
jquery@1.11.9 # Helpful client-side library jquery@1.11.9 # Helpful client-side library
@ -30,5 +30,5 @@ alanning:roles
rzymek:fullcalendar rzymek:fullcalendar
momentjs:moment momentjs:moment
eternicode:bootstrap-datepicker eternicode:bootstrap-datepicker
shell-server shell-server@0.2.1
http http@1.2.9

View File

@ -1 +1 @@
METEOR@1.4.1 METEOR@1.4.1.1

View File

@ -19,7 +19,7 @@ caching-compiler@1.1.7
caching-html-compiler@1.0.6 caching-html-compiler@1.0.6
callback-hook@1.0.9 callback-hook@1.0.9
check@1.2.3 check@1.2.3
coffeescript@1.2.4 coffeescript@1.2.4_1
dandv:caret-position@2.1.1 dandv:caret-position@2.1.1
ddp@1.2.5 ddp@1.2.5
ddp-client@1.3.1 ddp-client@1.3.1
@ -68,9 +68,9 @@ mobile-status-bar@1.0.12
modules@0.7.6 modules@0.7.6
modules-runtime@0.7.6 modules-runtime@0.7.6
momentjs:moment@2.14.4 momentjs:moment@2.14.4
mongo@1.1.11 mongo@1.1.12
mongo-id@1.0.5 mongo-id@1.0.5
npm-mongo@1.5.46 npm-mongo@1.5.48
oauth@1.1.11 oauth@1.1.11
oauth2@1.1.10 oauth2@1.1.10
observe-sequence@1.0.12 observe-sequence@1.0.12

View File

@ -394,10 +394,10 @@ input, textarea {
box-shadow: 2px 2px 5px 3px #666; box-shadow: 2px 2px 5px 3px #666;
cursor: pointer; cursor: pointer;
-webkit-transition: background-color 0.4s ease; -webkit-transition: background-color 0.4s ease, transform 0.3s ease;
-moz-transition: background-color 0.4s ease; -moz-transition: background-color 0.4s ease, transform 0.3s ease;
-ms-transition: background-color 0.4s ease; -ms-transition: background-color 0.4s ease, transform 0.3s ease;
transition: background-color 0.4s ease; transition: background-color 0.4s ease, transform 0.3s ease;
} }
.workCard:hover { .workCard:hover {
@ -691,6 +691,13 @@ input, textarea {
background-color: rgba(255,255,255,0.9) !important; background-color: rgba(255,255,255,0.9) !important;
} }
.workevent {
-webkit-transition: transform 0.4s ease;
-moz-transition: transform 0.4s ease;
-ms-transition: transform 0.4s ease;
transition: transform 0.4s ease;
}
.workevent span { .workevent span {
padding: 2%; padding: 2%;
display: inline-block; display: inline-block;

View File

@ -89,7 +89,7 @@
{{#if currMode 'calendar'}} {{#if currMode 'calendar'}}
<div id="calbg" style="{{calbg}}"></div> <div id="calbg" style="{{calbg}}"></div>
<div id="calendar" style="{{calCenter}}{{calColor}}"> <div id="calendar" style="{{calCenter}}{{calColor}}{{highlight}}">
{{> fullcalendar calendarOptions}} {{> fullcalendar calendarOptions}}
</div> </div>
{{/if}} {{/if}}
@ -175,17 +175,17 @@
<h4>Add Work</h4> <h4>Add Work</h4>
</div> </div>
<div class="workHolder"> <div class="workHolder">
{{#each thisClassWork}} {{#each thisClassWork}}
{{> classModeWork}} {{> classModeWork}}
{{/each}} {{/each}}
</div> </div>
</div> </div>
</template> </template>
<template name="classModeWork"> <template name="classModeWork">
<div class="workCard" workid="{{_id}}"> <div class="workCard" workid="{{_id}}" style="{{scale}}">
<div class="cWorkType" style="background-color:{{typeColor}}"></div> <div class="cWorkType" style="background-color:{{typeColor}}"></div>
<div class="cWorkCont"> <div class="cWorkCont" style="background-color:{{divColor 'cards'}}">
<p class="cWorkName">{{name}}</p> <p class="cWorkName">{{name}}</p>
<span class="cWorkDate">{{dueDate}}</span> <span class="cWorkDate">{{dueDate}}</span>
</div> </div>

View File

@ -64,6 +64,8 @@ Session.set("serverData",null);
Session.set("noclass",null); Session.set("noclass",null);
Session.set("creCalWork",null); Session.set("creCalWork",null);
Session.set("calWorkDate",null); Session.set("calWorkDate",null);
Session.set("classDisp",[]);
Session.set("classDispHover",null);
Template.registerHelper('divColor', (div) => { Template.registerHelper('divColor', (div) => {
return themeColors[Meteor.user().profile.preferences.theme][div]; return themeColors[Meteor.user().profile.preferences.theme][div];
@ -112,6 +114,12 @@ Template.registerHelper('myClasses', () => {
sameElse: 'MMMM Do' sameElse: 'MMMM Do'
}); });
thisWork[j].typeColor = workColors[thisWork[j].type]; thisWork[j].typeColor = workColors[thisWork[j].type];
var hoverHighlight = Session.get("classDispHover");
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 = "";
}
} }
array[i].thisClassWork = thisWork; array[i].thisClassWork = thisWork;
} }
@ -190,6 +198,7 @@ Template.main.helpers({
events: function(start, end, timezone, callback) { events: function(start, end, timezone, callback) {
var events = []; var events = [];
var cursor = work.find({class: {$in: Session.get("calendarclasses")}}); var cursor = work.find({class: {$in: Session.get("calendarclasses")}});
var hoverHighlight = Session.get("classDispHover");
cursor.forEach(function(current) { cursor.forEach(function(current) {
var inRole = false; var inRole = false;
if(Meteor.userId() === current.creator || if(Meteor.userId() === current.creator ||
@ -208,7 +217,7 @@ Template.main.helpers({
backgroundColor: backgroundColor, backgroundColor: backgroundColor,
borderColor: "#444", borderColor: "#444",
startEditable: inRole, startEditable: inRole,
className: "workevent", className: "workevent "+current.class,
}); });
}); });
callback(events); callback(events);
@ -263,6 +272,36 @@ Template.main.helpers({
return; return;
} }
}, },
highlight() {
var hoverHighlight = Session.get("classDispHover");
if(hoverHighlight === null) {
try {
works[i].style.webkitTransform = '';
works[i].style.msTransform = '';
works[i].style.transform = '';
} catch(err) {}
return;
}
var works = document.getElementsByClassName("workevent");
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);
console.log(id);console.log(hoverHighlight);
if(id === hoverHighlight) {
works[i].style.webkitTransform = 'scale(1.12)';
works[i].style.msTransform = 'scale(1.12)';
works[i].style.transform = 'scale(1.12)';
} else {
try {
works[i].style.webkitTransform = '';
works[i].style.msTransform = '';
works[i].style.transform = '';
} catch(err) {}
}
}
return;
},
workCenter() { workCenter() {
var w = window.innerWidth * 0.3; var w = window.innerWidth * 0.3;
var h = window.innerHeight * 0.7; var h = window.innerHeight * 0.7;
@ -487,7 +526,6 @@ Template.main.events({
span.appendChild(document.createTextNode(num.toString() + " characters left")); span.appendChild(document.createTextNode(num.toString() + " characters left"));
ele.parentNode.appendChild(span); ele.parentNode.appendChild(span);
} }
}, },
'click .radio' (event) { 'click .radio' (event) {
var op = event.target; var op = event.target;
@ -608,29 +646,51 @@ Template.main.events({
}); });
}, },
'click .sideClass' (event) { 'click .sideClass' (event) {
if(!Session.equals("mode","calendar")) return;
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");
if(Session.get("calCreWork")) { if(!Session.equals("mode","calendar")) {
Session.set("calCreWork",null); if(Session.get("calCreWork")) {
Session.set("sidebar",null); Session.set("calCreWork",null);
Session.set("sidebar",null);
var date = Session.get("calWorkDate").split("-"); var date = Session.get("calWorkDate").split("-");
var date = new Date(date[0],parseInt(date[1])-1,date[2],11,59,59); var date = new Date(date[0],parseInt(date[1])-1,date[2],11,59,59);
Session.set("newWork", true); Session.set("newWork", true);
Session.set("currentReadableWork", Session.set("currentReadableWork",
{ {
name:"Name | Click here to edit...", name:"Name | Click here to edit...",
class:classid, class:classid,
dueDate:getReadableDate(date), dueDate:getReadableDate(date),
description:"Click here to edit...", description:"Click here to edit...",
type:"Click here to edit..." type:"Click here to edit..."
}); });
Session.set("currentWork",{class:classid,dueDate:date}); Session.set("currentWork",{class:classid,dueDate:date});
openDivFade(document.getElementsByClassName("overlay")[0]); openDivFade(document.getElementsByClassName("overlay")[0]);
} }
} else if(!Session.get("calCreWork")) {
var array = Session.get("classDisp");
array.push(classid);
Session.set("classDisp",array);
}
},
'mouseover .sideClass' (event) {
if(event.target.className !== "sideClass") {
var div = event.target.parentNode;
} else {
var div = event.target;
}
while(div.getAttribute("classid") === null) div = div.parentNode;
var classid = div.getAttribute("classid");
Session.set("classDispHover",classid);
},
'mouseleave .sideClass' (event) {
if(event.target.className !== "sideClass") {
var div = event.target.parentNode;
if(div.contains(event.target)) return;
}
Session.set("classDispHover",null);
} }
}); });
@ -749,3 +809,29 @@ function formReadable(input) {
input.type = input.type[0].toUpperCase() + input.type.slice(1); input.type = input.type[0].toUpperCase() + input.type.slice(1);
return input; return input;
} }
function changeColor(hex, amt) {
hex = hex.slice(1);
var num = parseInt(hex,16);
var r = (num >> 16) + amt;
if (r > 255) r = 255;
else if (r < 0) r = 0;
var b = ((num >> 8) & 0x00FF) + amt;
if (b > 255) b = 255;
else if (b < 0) b = 0;
var g = (num & 0x0000FF) + amt;
if (g > 255) g = 255;
else if (g < 0) g = 0;
var final = (g | (b << 8) | (r << 16)).toString(16);
// Adds preceeding zeros
while (final.length < 6) {final = "0" + final};
return "#" + final;
}