Add scheduleac
This commit is contained in:
commit
1f80de1222
1
scheduleac/.gitignore
vendored
Normal file
1
scheduleac/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
*.out
|
||||||
12
scheduleac/.meteor/.finished-upgraders
Normal file
12
scheduleac/.meteor/.finished-upgraders
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
# This file contains information which helps Meteor properly upgrade your
|
||||||
|
# app when you run 'meteor update'. You should check it into version control
|
||||||
|
# with your project.
|
||||||
|
|
||||||
|
notices-for-0.9.0
|
||||||
|
notices-for-0.9.1
|
||||||
|
0.9.4-platform-file
|
||||||
|
notices-for-facebook-graph-api-2
|
||||||
|
1.2.0-standard-minifiers-package
|
||||||
|
1.2.0-meteor-platform-split
|
||||||
|
1.2.0-cordova-changes
|
||||||
|
1.2.0-breaking-changes
|
||||||
1
scheduleac/.meteor/.gitignore
vendored
Normal file
1
scheduleac/.meteor/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
local
|
||||||
7
scheduleac/.meteor/.id
Normal file
7
scheduleac/.meteor/.id
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
# This file contains a token that is unique to your project.
|
||||||
|
# Check it into your repository along with the rest of this directory.
|
||||||
|
# It can be used for purposes such as:
|
||||||
|
# - ensuring you don't accidentally deploy one app on top of another
|
||||||
|
# - providing package authors with aggregated statistics
|
||||||
|
|
||||||
|
19rhzs13b9azhvowgeq
|
||||||
29
scheduleac/.meteor/packages
Normal file
29
scheduleac/.meteor/packages
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
# Meteor packages used by this project, one per line.
|
||||||
|
# Check this file (and the other files in this directory) into your repository.
|
||||||
|
#
|
||||||
|
# 'meteor add' and 'meteor remove' will edit this file for you,
|
||||||
|
# but you can also edit it by hand.
|
||||||
|
|
||||||
|
meteor-base # Packages every Meteor app needs to have
|
||||||
|
mobile-experience # Packages for a great mobile UX
|
||||||
|
mongo # The database Meteor supports right now
|
||||||
|
blaze-html-templates # Compile .html files into Meteor Blaze views
|
||||||
|
session # Client-side reactive dictionary for your app
|
||||||
|
jquery # Helpful client-side library
|
||||||
|
tracker # Meteor's client-side reactive programming library
|
||||||
|
|
||||||
|
standard-minifiers # JS/CSS minifiers run for production mode
|
||||||
|
es5-shim # ECMAScript 5 compatibility for older browsers.
|
||||||
|
ecmascript # Enable ECMAScript2015+ syntax in app code
|
||||||
|
|
||||||
|
autopublish # Publish all data to the clients (for prototyping)
|
||||||
|
insecure # Allow all DB writes from clients (for prototyping)
|
||||||
|
rajit:bootstrap3-datepicker
|
||||||
|
twbs:bootstrap
|
||||||
|
accounts-google
|
||||||
|
accounts-ui
|
||||||
|
ongoworks:security
|
||||||
|
percolate:synced-cron
|
||||||
|
momentjs:moment
|
||||||
|
fortawesome:fontawesome
|
||||||
|
mystor:device-detection
|
||||||
2
scheduleac/.meteor/platforms
Normal file
2
scheduleac/.meteor/platforms
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
server
|
||||||
|
browser
|
||||||
1
scheduleac/.meteor/release
Normal file
1
scheduleac/.meteor/release
Normal file
@ -0,0 +1 @@
|
|||||||
|
METEOR@1.2.1
|
||||||
86
scheduleac/.meteor/versions
Normal file
86
scheduleac/.meteor/versions
Normal file
@ -0,0 +1,86 @@
|
|||||||
|
accounts-base@1.2.2
|
||||||
|
accounts-google@1.0.6
|
||||||
|
accounts-oauth@1.1.8
|
||||||
|
accounts-ui@1.1.6
|
||||||
|
accounts-ui-unstyled@1.1.8
|
||||||
|
autopublish@1.0.4
|
||||||
|
autoupdate@1.2.4
|
||||||
|
babel-compiler@5.8.24_1
|
||||||
|
babel-runtime@0.1.4
|
||||||
|
base64@1.0.4
|
||||||
|
binary-heap@1.0.4
|
||||||
|
blaze@2.1.3
|
||||||
|
blaze-html-templates@1.0.1
|
||||||
|
blaze-tools@1.0.4
|
||||||
|
boilerplate-generator@1.0.4
|
||||||
|
caching-compiler@1.0.0
|
||||||
|
caching-html-compiler@1.0.2
|
||||||
|
callback-hook@1.0.4
|
||||||
|
check@1.1.0
|
||||||
|
ddp@1.2.2
|
||||||
|
ddp-client@1.2.1
|
||||||
|
ddp-common@1.2.2
|
||||||
|
ddp-rate-limiter@1.0.0
|
||||||
|
ddp-server@1.2.2
|
||||||
|
deps@1.0.9
|
||||||
|
diff-sequence@1.0.1
|
||||||
|
ecmascript@0.1.6
|
||||||
|
ecmascript-runtime@0.2.6
|
||||||
|
ejson@1.0.7
|
||||||
|
es5-shim@4.1.14
|
||||||
|
fastclick@1.0.7
|
||||||
|
fortawesome:fontawesome@4.5.0
|
||||||
|
geojson-utils@1.0.4
|
||||||
|
google@1.1.7
|
||||||
|
hot-code-push@1.0.0
|
||||||
|
html-tools@1.0.5
|
||||||
|
htmljs@1.0.5
|
||||||
|
http@1.1.1
|
||||||
|
id-map@1.0.4
|
||||||
|
insecure@1.0.4
|
||||||
|
jquery@1.11.4
|
||||||
|
launch-screen@1.0.4
|
||||||
|
less@2.5.1
|
||||||
|
livedata@1.0.15
|
||||||
|
localstorage@1.0.5
|
||||||
|
logging@1.0.8
|
||||||
|
meteor@1.1.10
|
||||||
|
meteor-base@1.0.1
|
||||||
|
minifiers@1.1.7
|
||||||
|
minimongo@1.0.10
|
||||||
|
mobile-experience@1.0.1
|
||||||
|
mobile-status-bar@1.0.6
|
||||||
|
momentjs:moment@2.11.2
|
||||||
|
mongo@1.1.3
|
||||||
|
mongo-id@1.0.1
|
||||||
|
mystor:device-detection@0.2.0
|
||||||
|
npm-mongo@1.4.39_1
|
||||||
|
oauth@1.1.6
|
||||||
|
oauth2@1.1.5
|
||||||
|
observe-sequence@1.0.7
|
||||||
|
ongoworks:security@1.3.0
|
||||||
|
ordered-dict@1.0.4
|
||||||
|
percolate:synced-cron@1.3.0
|
||||||
|
promise@0.5.1
|
||||||
|
rajit:bootstrap3-datepicker@1.5.0
|
||||||
|
random@1.0.5
|
||||||
|
rate-limit@1.0.0
|
||||||
|
reactive-dict@1.1.3
|
||||||
|
reactive-var@1.0.6
|
||||||
|
reload@1.1.4
|
||||||
|
retry@1.0.4
|
||||||
|
routepolicy@1.0.6
|
||||||
|
service-configuration@1.0.5
|
||||||
|
session@1.1.1
|
||||||
|
spacebars@1.0.7
|
||||||
|
spacebars-compiler@1.0.7
|
||||||
|
standard-minifiers@1.0.2
|
||||||
|
templating@1.1.5
|
||||||
|
templating-tools@1.0.0
|
||||||
|
tracker@1.0.9
|
||||||
|
twbs:bootstrap@3.3.6
|
||||||
|
ui@1.0.8
|
||||||
|
underscore@1.0.4
|
||||||
|
url@1.0.5
|
||||||
|
webapp@1.2.3
|
||||||
|
webapp-hashing@1.0.5
|
||||||
4
scheduleac/README.md
Normal file
4
scheduleac/README.md
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
# scheduleac
|
||||||
|
Website for tracking if AC/Health class is Health or AC
|
||||||
|
|
||||||
|
Live at http://actoday.tk/
|
||||||
233
scheduleac/client/client.css
Normal file
233
scheduleac/client/client.css
Normal file
@ -0,0 +1,233 @@
|
|||||||
|
@font-face {
|
||||||
|
font-family: 'Lato';
|
||||||
|
src: url('./lato-light.woff');
|
||||||
|
}
|
||||||
|
|
||||||
|
html {
|
||||||
|
-webkit-touch-callout: none;
|
||||||
|
-webkit-user-select: none;
|
||||||
|
-moz-user-select: none;
|
||||||
|
-ms-user-select: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
background-image: url('./bg.png');
|
||||||
|
overflow-x: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1 {
|
||||||
|
font-family: Lato;
|
||||||
|
font-size: 300%;
|
||||||
|
margin-left: 4.2%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.datepicker {
|
||||||
|
margin-top: 10.3%;
|
||||||
|
}
|
||||||
|
|
||||||
|
#date {
|
||||||
|
margin-top:4%;
|
||||||
|
margin-left: 3.5%;
|
||||||
|
max-width: 50%;
|
||||||
|
}
|
||||||
|
|
||||||
|
#other {
|
||||||
|
margin-top: 3%;
|
||||||
|
margin-bottom: 2%;
|
||||||
|
width: 89%;
|
||||||
|
margin-left: 3%;
|
||||||
|
padding-left:5%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.selection {
|
||||||
|
font-size: 150%;
|
||||||
|
width: 35%;
|
||||||
|
min-height: 50%;
|
||||||
|
float: right;
|
||||||
|
margin-right: 8%;
|
||||||
|
}
|
||||||
|
|
||||||
|
#post {
|
||||||
|
margin-top: -18%;
|
||||||
|
}
|
||||||
|
|
||||||
|
#day {
|
||||||
|
margin-top: -4%;
|
||||||
|
}
|
||||||
|
|
||||||
|
#button {
|
||||||
|
margin-left: 3.5%;
|
||||||
|
margin-top: 3%;
|
||||||
|
font-size: 200%;
|
||||||
|
width: 88%;
|
||||||
|
color: #fff;
|
||||||
|
background-color: #DD655D;
|
||||||
|
border: 0;
|
||||||
|
cursor: pointer;
|
||||||
|
text-decoration: none;
|
||||||
|
text-align: left;
|
||||||
|
outline: none;
|
||||||
|
|
||||||
|
-webkit-transition: background-color 0.5s ease;
|
||||||
|
-moz-transition: background-color 0.5s ease;
|
||||||
|
-ms-transition: background-color 0.5s ease;
|
||||||
|
transition: background-color 0.5s ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
#button:hover {
|
||||||
|
background-color: #EA4D4D;
|
||||||
|
}
|
||||||
|
|
||||||
|
.login-display-name {
|
||||||
|
display: none !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.login-button {
|
||||||
|
margin-left: 20% !important;
|
||||||
|
width: 100% !important;
|
||||||
|
height: 28px !important;
|
||||||
|
}
|
||||||
|
.eachDay {
|
||||||
|
position: relative;
|
||||||
|
font-family: Lato;
|
||||||
|
max-width: 30%;
|
||||||
|
box-shadow: 4px 5px 3px 2px #444;
|
||||||
|
margin-left: auto;
|
||||||
|
margin-right: auto;
|
||||||
|
margin-bottom:2%;
|
||||||
|
padding-top: 1.5%;
|
||||||
|
padding-bottom: 1%;
|
||||||
|
padding-left: 3%;
|
||||||
|
padding-right: 5%;
|
||||||
|
|
||||||
|
-webkit-transition: transform 0.5s ease, background-color 0.5s ease;
|
||||||
|
-moz-transition: transform 0.5s ease, background-color 0.5s ease;
|
||||||
|
-ms-transition: transform 0.5s ease, background-color 0.5s ease;
|
||||||
|
transition: transform 0.5s ease, background-color 0.5s ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
.eachDay:hover {
|
||||||
|
-webkit-transform: scale(1.02);
|
||||||
|
-moz-transform: scale(1.02);
|
||||||
|
-ms-transform: scale(1.02);
|
||||||
|
transform: scale(1.02);
|
||||||
|
}
|
||||||
|
|
||||||
|
.recent {
|
||||||
|
color: #353535;
|
||||||
|
font-size: 160%;
|
||||||
|
min-width:45%;
|
||||||
|
max-width:45%;
|
||||||
|
padding-top:3%;
|
||||||
|
padding-bottom:3%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.scheduleList {
|
||||||
|
margin-top: 10%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.type {
|
||||||
|
font-size:600%;
|
||||||
|
max-width:30%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.date {
|
||||||
|
font-size:250%;
|
||||||
|
padding-top:2%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.AC {
|
||||||
|
background-color: #5BEF78;
|
||||||
|
}
|
||||||
|
|
||||||
|
.Health {
|
||||||
|
background-color: #136FB5;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pulltab {
|
||||||
|
position:fixed;
|
||||||
|
margin-top:0%;
|
||||||
|
width: 0;
|
||||||
|
height: 0;
|
||||||
|
border-top: 40px solid transparent;
|
||||||
|
border-bottom: 40px solid transparent;
|
||||||
|
|
||||||
|
border-left: 40px solid #FF746B;
|
||||||
|
|
||||||
|
-webkit-transition: transform 0.2s ease, border 0.2s ease, margin 0.3s ease;
|
||||||
|
-moz-transition: transform 0.2s ease, border 0.2s ease, margin 0.3s ease;
|
||||||
|
-ms-transition: transform 0.2s ease, border 0.2s ease, margin 0.3s ease;
|
||||||
|
transition: transform 0.2s ease, border 0.2s ease, margin 0.3s ease;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.pulltab:hover {
|
||||||
|
-webkit-transform: scale(1.3);
|
||||||
|
-moz-transform: scale(1.3);
|
||||||
|
-ms-transform: scale(1.3);
|
||||||
|
transform: scale(1.3);
|
||||||
|
}
|
||||||
|
|
||||||
|
.sidebar {
|
||||||
|
position:absolute;
|
||||||
|
min-height:100%;
|
||||||
|
|
||||||
|
background-color: #FF746B;
|
||||||
|
box-shadow: 2px 2px 5px 3px #444;
|
||||||
|
padding-left: 7%;
|
||||||
|
padding-right: 2%;
|
||||||
|
padding-top: 2%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.scale {
|
||||||
|
font-family: Lato;
|
||||||
|
min-height: 100%;
|
||||||
|
min-width: 17%;
|
||||||
|
position: fixed;
|
||||||
|
top: 0;
|
||||||
|
left: -20%;
|
||||||
|
|
||||||
|
-webkit-transition: transform 0.3s ease;
|
||||||
|
-moz-transition: transform 0.3s ease;
|
||||||
|
-ms-transition: transform 0.3s ease;
|
||||||
|
transition: transform 0.3s ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
.fa {
|
||||||
|
float:right;
|
||||||
|
clear:right;
|
||||||
|
position: absolute;
|
||||||
|
top: 3%;
|
||||||
|
right: 2.3%;
|
||||||
|
|
||||||
|
-webkit-transition: color 0.5s ease;
|
||||||
|
-moz-transition: color 0.5s ease;
|
||||||
|
-ms-transition: color 0.5s ease;
|
||||||
|
transition: color 0.5s ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
.fa:hover {
|
||||||
|
color: #FF746B;
|
||||||
|
}
|
||||||
|
|
||||||
|
.about {
|
||||||
|
position: absolute;
|
||||||
|
bottom: 3%;
|
||||||
|
max-width: 70%;
|
||||||
|
margin-left: 3.5%;
|
||||||
|
font-size: 110%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.github {
|
||||||
|
font-size: 120%;
|
||||||
|
|
||||||
|
-webkit-transition: color 0.3s ease;
|
||||||
|
-moz-transition: color 0.3s ease;
|
||||||
|
-ms-transition: color 0.3s ease;
|
||||||
|
transition: color 0.3s ease;
|
||||||
|
|
||||||
|
}
|
||||||
|
.github:hover {
|
||||||
|
text-decoration: none;
|
||||||
|
color: #69CBE4;
|
||||||
|
}
|
||||||
86
scheduleac/client/client.html
Normal file
86
scheduleac/client/client.html
Normal file
@ -0,0 +1,86 @@
|
|||||||
|
<head>
|
||||||
|
<title>AC/Health Schedule</title>
|
||||||
|
<link rel="icon" sizes="32x32" href="/favicon.ico">
|
||||||
|
<script>
|
||||||
|
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
|
||||||
|
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
|
||||||
|
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
|
||||||
|
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
|
||||||
|
|
||||||
|
ga('create', 'UA-40611162-4', 'auto');
|
||||||
|
ga('send', 'pageview');
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
{{#if isDesktop}}
|
||||||
|
{{> client}}
|
||||||
|
{{else}}
|
||||||
|
{{> phone}}
|
||||||
|
{{/if}}
|
||||||
|
</body>
|
||||||
|
|
||||||
|
<template name="day">
|
||||||
|
<p class="type">{{aftertext}} </p><p class="date">{{pretext}}</p> <p class="other">{{other}}</p>
|
||||||
|
{{#if allowed}}
|
||||||
|
<i class="fa fa-times fa-3x"></i>
|
||||||
|
{{/if}}
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<template name="recent">
|
||||||
|
<div class="recent eachDay {{aftertext}}">
|
||||||
|
<p class="type">{{aftertext}} </p><p class="date">{{pretext}}</p> <p class="other">{{other}}</p>
|
||||||
|
{{#if allowed}}
|
||||||
|
<i class="fa fa-times fa-3x"></i>
|
||||||
|
{{/if}}
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<template name="client">
|
||||||
|
<div class="pulltab"></div>
|
||||||
|
<div class="scale">
|
||||||
|
{{> sidebar}}
|
||||||
|
</div>
|
||||||
|
<div class="scheduleList">
|
||||||
|
{{#each mostrecent}}
|
||||||
|
{{> recent}}
|
||||||
|
{{/each}}
|
||||||
|
|
||||||
|
{{#each sched}}
|
||||||
|
<div class="eachDay {{aftertext}}">
|
||||||
|
{{> day}}
|
||||||
|
</div>
|
||||||
|
{{/each}}
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<template name="sidebar">
|
||||||
|
<div class="sidebar">
|
||||||
|
<h1>AC/Health Schedule</h1>
|
||||||
|
{{> loginButtons}}
|
||||||
|
{{#if allowed}}
|
||||||
|
<input type="text" class="form-control" id="date" placeholder="date">
|
||||||
|
<select class='selection' id="post">
|
||||||
|
<option value="AC">AC</option>
|
||||||
|
<option value="Health">Health</option>
|
||||||
|
</select>
|
||||||
|
<select class='selection' id="day">
|
||||||
|
<option value="A">A</option>
|
||||||
|
<option value="B">B</option>
|
||||||
|
</select>
|
||||||
|
<input type="text" id="other" placeholder="comments">
|
||||||
|
<button id="button">Update!</button>
|
||||||
|
{{/if}}
|
||||||
|
<div class='about'>
|
||||||
|
<p>Developed by Yaman Qalieh</p>
|
||||||
|
<p>Visuals by Kenny Jao</p>
|
||||||
|
<a class="github" target="_blank" href="https://github.com/yamanq/scheduleac">Github</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<template name="phone">
|
||||||
|
{{#each phone}}
|
||||||
|
{{> recent}}
|
||||||
|
{{/each}}
|
||||||
|
</template>
|
||||||
193
scheduleac/client/client.js
Normal file
193
scheduleac/client/client.js
Normal file
@ -0,0 +1,193 @@
|
|||||||
|
var allowedu = {};
|
||||||
|
var clicked = false;
|
||||||
|
allowedu["ybq987@gmail.com"] = true;
|
||||||
|
allowedu["dweinger@bloomfield.org"] = true;
|
||||||
|
allowedu["ksjdragon@gmail.com"] = true;
|
||||||
|
currentcard = 0;
|
||||||
|
|
||||||
|
Meteor.subscribe('schedule');
|
||||||
|
|
||||||
|
Template.client.helpers({
|
||||||
|
sched: function() {
|
||||||
|
beforeslice = schedule.find({}, {
|
||||||
|
sort: {
|
||||||
|
timestamp: 1
|
||||||
|
},
|
||||||
|
limit: 9
|
||||||
|
}).fetch();
|
||||||
|
return beforeslice.slice(1, beforeslice.length);
|
||||||
|
},
|
||||||
|
mostrecent: function() {
|
||||||
|
return schedule.find({}, {
|
||||||
|
sort: {
|
||||||
|
timestamp: 1
|
||||||
|
},
|
||||||
|
limit: 1
|
||||||
|
}).fetch();
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
Template.client.events({
|
||||||
|
"click button": function() {
|
||||||
|
pre = document.getElementById("date").value;
|
||||||
|
document.getElementById("date").value = "";
|
||||||
|
post = document.getElementById('post').value;
|
||||||
|
day = document.getElementById('day').value;
|
||||||
|
other = document.getElementById("other").value;
|
||||||
|
document.getElementById("other").value = "";
|
||||||
|
Meteor.call('add_button', this, pre, post, day, other);
|
||||||
|
},
|
||||||
|
"keypress input": function(event) {
|
||||||
|
if (event.keyCode === 13) {
|
||||||
|
pre = document.getElementById("date").value;
|
||||||
|
document.getElementById("date").value = "";
|
||||||
|
post = document.getElementById('post').value;
|
||||||
|
other = document.getElementById("other").value;
|
||||||
|
document.getElementById("other").value = "";
|
||||||
|
Meteor.call('add_button', this, pre, post, day, other);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"click .pulltab": function() {
|
||||||
|
clicked = !clicked;
|
||||||
|
Session.set("sidebar", clicked);
|
||||||
|
if (clicked) {
|
||||||
|
$(".pulltab").css("border-left", "40px solid #DD655D").css("margin-left", "17%");
|
||||||
|
$(".scale")
|
||||||
|
.css("-webkit-transform", "translateX(117%)")
|
||||||
|
.css("-moz-transform", "translateX(117%)")
|
||||||
|
.css("-ms-transform", "translateX(117%)")
|
||||||
|
.css("transform", "translateX(117%)");
|
||||||
|
} else {
|
||||||
|
$(".pulltab").css("border-left", "40px solid #FF746B").css("margin-left", "0");
|
||||||
|
$(".scale")
|
||||||
|
.css("-webkit-transform", "translateX(-59%)")
|
||||||
|
.css("-moz-transform", "translateX(-59%)")
|
||||||
|
.css("-ms-transform", "translateX(-59%)")
|
||||||
|
.css("transform", "translateX(-59%)");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
Template.day.helpers({
|
||||||
|
pretext: function() {
|
||||||
|
date = moment(this.pretext);
|
||||||
|
date = date.calendar(null, {
|
||||||
|
sameDay: '[Today]',
|
||||||
|
nextDay: '[Tomorrow]',
|
||||||
|
nextWeek: 'dddd',
|
||||||
|
lastDay: '[Yesterday]',
|
||||||
|
lastWeek: '[Last] dddd',
|
||||||
|
sameElse: 'MM/DD/YYYY'
|
||||||
|
});
|
||||||
|
if (this.day !== undefined) {
|
||||||
|
date = date + " (" + this.day + ")"
|
||||||
|
}
|
||||||
|
return date
|
||||||
|
},
|
||||||
|
aftertext: function() {
|
||||||
|
return this.aftertext;
|
||||||
|
},
|
||||||
|
other: function() {
|
||||||
|
return this.other;
|
||||||
|
},
|
||||||
|
allowed: function() {
|
||||||
|
return (Meteor.user() !== undefined && Meteor.user().services.google.email in allowedu);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
Template.day.events({
|
||||||
|
'click .fa': function() {
|
||||||
|
Meteor.call('remove', this);
|
||||||
|
},
|
||||||
|
'click .eachDay': function() {
|
||||||
|
var user_id = Session.get('user_id')
|
||||||
|
console.log(user_id);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
Template.recent.events({
|
||||||
|
'click .fa': function() {
|
||||||
|
Meteor.call('remove', this);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
Template.recent.helpers({
|
||||||
|
pretext: function() {
|
||||||
|
date = moment(this.pretext);
|
||||||
|
date = date.calendar(null, {
|
||||||
|
sameDay: '[Today]',
|
||||||
|
nextDay: '[Tomorrow]',
|
||||||
|
nextWeek: 'dddd',
|
||||||
|
lastDay: '[Yesterday]',
|
||||||
|
lastWeek: '[Last] dddd',
|
||||||
|
sameElse: 'MM/DD/YYYY'
|
||||||
|
});
|
||||||
|
if (this.day != undefined) {
|
||||||
|
date = date + " (" + this.day + ")"
|
||||||
|
}
|
||||||
|
return date
|
||||||
|
},
|
||||||
|
aftertext: function() {
|
||||||
|
return this.aftertext;
|
||||||
|
},
|
||||||
|
other: function() {
|
||||||
|
return this.other;
|
||||||
|
},
|
||||||
|
allowed: function() {
|
||||||
|
if (!(Meteor.user() === undefined) && Meteor.user().services.google.email in allowedu) {
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
Template.sidebar.helpers({
|
||||||
|
allowed: function() {
|
||||||
|
if (!(Meteor.user() === undefined) && Meteor.user().services.google.email in allowedu) {
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
Template.sidebar.events({
|
||||||
|
"focus input": function() {
|
||||||
|
today = new Date()
|
||||||
|
$('#date').datepicker({
|
||||||
|
startDate: today.toLocaleDateString(),
|
||||||
|
orientation: "top auto",
|
||||||
|
daysOfWeekDisabled: "0,6",
|
||||||
|
autoclose: true,
|
||||||
|
todayHighlight: true
|
||||||
|
});
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
/*Template.day.rendered = function() {
|
||||||
|
$('.eachDay').each(function ( index ) {
|
||||||
|
$('.eachDay').eq(index)
|
||||||
|
.css("z-index", 100-index)
|
||||||
|
.css("-webkit-transform", "scale(" + getScale(index, 0) + ")")
|
||||||
|
.css("-moz-transform", "scale(" + getScale(index, 0) + ")")
|
||||||
|
.css("-ms-transform", "scale(" + getScale(index, 0) + ")")
|
||||||
|
.css("transform", "scale(" + getScale(index, 0) + ")");
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
function getScale(index, start) {
|
||||||
|
return Math.abs(index-start) * -0.2 + 1.5
|
||||||
|
}*/
|
||||||
|
|
||||||
|
Template.phone.helpers({
|
||||||
|
phone: function() {
|
||||||
|
return schedule.find({}, {
|
||||||
|
sort: {
|
||||||
|
timestamp: 1
|
||||||
|
},
|
||||||
|
limit: 10
|
||||||
|
}).fetch();
|
||||||
|
}
|
||||||
|
});
|
||||||
1
scheduleac/collections/schedule.js
Normal file
1
scheduleac/collections/schedule.js
Normal file
@ -0,0 +1 @@
|
|||||||
|
schedule = new Mongo.Collection("schedule");
|
||||||
BIN
scheduleac/public/bg.png
Normal file
BIN
scheduleac/public/bg.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 5.1 KiB |
BIN
scheduleac/public/favicon.ico
Normal file
BIN
scheduleac/public/favicon.ico
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 31 KiB |
BIN
scheduleac/public/lato-light.woff
Normal file
BIN
scheduleac/public/lato-light.woff
Normal file
Binary file not shown.
56
scheduleac/server/serve.js
Normal file
56
scheduleac/server/serve.js
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
var allowed = {};
|
||||||
|
allowed["ybq987@gmail.com"] = true;
|
||||||
|
allowed["dweinger@bloomfield.org"] = true;
|
||||||
|
//allowed["ksjdragon@gmail.com"] = true;
|
||||||
|
|
||||||
|
schedule.permit(['insert', 'update', 'remove']).never().apply();
|
||||||
|
|
||||||
|
// schedule.remove({});
|
||||||
|
|
||||||
|
SyncedCron.add({
|
||||||
|
name: 'Remove Entries past today',
|
||||||
|
schedule: function(parser) {
|
||||||
|
return parser.recur().on('14:35:00').time();
|
||||||
|
},
|
||||||
|
job: function() {
|
||||||
|
var thedate = moment();
|
||||||
|
var today = thedate.format("X");
|
||||||
|
|
||||||
|
// Remove matching Documents
|
||||||
|
schedule.remove({timestamp: {$lt: today}});
|
||||||
|
console.log(thedate.format());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
SyncedCron.start();
|
||||||
|
|
||||||
|
|
||||||
|
Meteor.methods({
|
||||||
|
|
||||||
|
add_button: function(chrome, pre, post, day, other) {
|
||||||
|
if ((Meteor.user() != undefined) && (Meteor.user().services.google.email in allowed) && !(pre === "")) {
|
||||||
|
mymoment = moment(pre.replace("/", "-"), "MM-DD-YYYY");
|
||||||
|
thepretext = mymoment.toISOString().split("T")[0];
|
||||||
|
time = mymoment.format("X");
|
||||||
|
previous = schedule.find({"pretext": thepretext}).fetch();
|
||||||
|
if (previous.length > 0) {
|
||||||
|
entry = previous[0]
|
||||||
|
schedule.update(entry._id, {"aftertext": post, "pretext": entry.pretext, "day": day, "other": other, "timestamp": entry.timestamp});
|
||||||
|
} else {
|
||||||
|
schedule.insert({
|
||||||
|
"pretext": thepretext,
|
||||||
|
"aftertext": post,
|
||||||
|
"day": day,
|
||||||
|
"other": other,
|
||||||
|
"timestamp": time
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
},
|
||||||
|
remove: function(chrome) {
|
||||||
|
if (Meteor.user() != undefined && Meteor.user().services.google.email in allowed) {
|
||||||
|
schedule.remove(chrome._id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
Loading…
x
Reference in New Issue
Block a user