유희정

change color

...@@ -9,7 +9,6 @@ var index = require('./routes/index'); ...@@ -9,7 +9,6 @@ var index = require('./routes/index');
9 var users = require('./routes/users'); 9 var users = require('./routes/users');
10 var calendar = require('./routes/calendar'); 10 var calendar = require('./routes/calendar');
11 var events = require('./routes/events'); 11 var events = require('./routes/events');
12 -var login = require('./routes/login')
13 12
14 passport.serializeUser(function(user,done) { 13 passport.serializeUser(function(user,done) {
15 console.log('serialized'); 14 console.log('serialized');
...@@ -45,7 +44,6 @@ app.use('/', index); ...@@ -45,7 +44,6 @@ app.use('/', index);
45 app.use('/users', users); 44 app.use('/users', users);
46 app.use('/calendar',calendar); 45 app.use('/calendar',calendar);
47 app.use('/events',events); 46 app.use('/events',events);
48 -app.use('/login',login);
49 47
50 // catch 404 and forward to error handler 48 // catch 404 and forward to error handler
51 app.use(function(req, res, next) { 49 app.use(function(req, res, next) {
......
...@@ -6,15 +6,6 @@ router.post('/calendar',function(req,res,next){ ...@@ -6,15 +6,6 @@ router.post('/calendar',function(req,res,next){
6 var id = req.body.id; 6 var id = req.body.id;
7 res.render('calendar',{id: id}); 7 res.render('calendar',{id: id});
8 }); 8 });
9 -//router.get('/',function(req,res,next){
10 - //var accessToken = req.session.access_token;
11 - //gcal(accessToken).calendarList.list(function(err,data){
12 - //if(err) return res.send(err);
13 - //return res.render('calendar',{calendars : data});
14 - //});
15 - //res.render('calendar',{id:1});
16 - console.log(1);
17 -//})
18 9
19 calList = new Array(); 10 calList = new Array();
20 11
...@@ -29,13 +20,10 @@ router.get('/', function(req, res, next) { ...@@ -29,13 +20,10 @@ router.get('/', function(req, res, next) {
29 if(err) return console.log(err); 20 if(err) return console.log(err);
30 else { 21 else {
31 calList = data.items; 22 calList = data.items;
32 - //console.log(calList);
33 res.render('calendar',{calList:calList,googleToken:googleToken,kakaoToken:kakaoToken}); 23 res.render('calendar',{calList:calList,googleToken:googleToken,kakaoToken:kakaoToken});
34 } 24 }
35 }); 25 });
36 }); 26 });
37 27
38 28
39 -module.exports = router;
40 -
41 -//db에서 calendar id에 해당하는 이벤트 출력
...\ No newline at end of file ...\ No newline at end of file
29 +module.exports = router;
...\ No newline at end of file ...\ No newline at end of file
......
...@@ -79,8 +79,6 @@ router.post('/add', function(req, res, next) { ...@@ -79,8 +79,6 @@ router.post('/add', function(req, res, next) {
79 79
80 router.post('/remove', function(req, res, next) { 80 router.post('/remove', function(req, res, next) {
81 var eId = req.body.eId; 81 var eId = req.body.eId;
82 - console.log(id);
83 - console.log(eId);
84 gcal(googleToken).events.delete(id, eId, function(err, data) { 82 gcal(googleToken).events.delete(id, eId, function(err, data) {
85 if(err) return res.send(err); 83 if(err) return res.send(err);
86 return res.redirect('/events'); 84 return res.redirect('/events');
...@@ -114,9 +112,7 @@ var timestamp = function (date) { ...@@ -114,9 +112,7 @@ var timestamp = function (date) {
114 112
115 function checkEvents(){ 113 function checkEvents(){
116 var nDate = new Date(); 114 var nDate = new Date();
117 - console.log(nDate);
118 for(var i = 0;i<events.length;i++){ 115 for(var i = 0;i<events.length;i++){
119 - console.log(events[i].start.dateTime)
120 var time = events[i].start.dateTime.split(/[-:+T]/); 116 var time = events[i].start.dateTime.split(/[-:+T]/);
121 var tDate = new Date(time[0],time[1]-1,time[2],time[3],time[4],time[5]); 117 var tDate = new Date(time[0],time[1]-1,time[2],time[3],time[4],time[5]);
122 if(nDate.getFullYear()==tDate.getFullYear()&&nDate.getMonth()==tDate.getMonth()&&nDate.getDate()==tDate.getDate()){ 118 if(nDate.getFullYear()==tDate.getFullYear()&&nDate.getMonth()==tDate.getMonth()&&nDate.getDate()==tDate.getDate()){
...@@ -135,12 +131,10 @@ var timestamp = function (date) { ...@@ -135,12 +131,10 @@ var timestamp = function (date) {
135 }; 131 };
136 132
137 function sendMessage(event,minute){ 133 function sendMessage(event,minute){
138 - console.log(event);
139 - console.log(minute);
140 let template_objectObj = { 134 let template_objectObj = {
141 "object_type" : 'text', 135 "object_type" : 'text',
142 - "text" : " Reminder Talk\n"+event.summary+"\n" 136 + "text" : " [Reminder Talk]\n"+"일정 : "+event.summary+
143 - +event.start.dateTime+" ~ "+event.end.dateTime+"\n일정시작까지 "+minute+"분 남았습니다!", 137 + "\n시작 : " + event.start.dateTime+"\n종료 : "+event.end.dateTime+"\n일정시작까지 "+minute+"분 남았습니다!",
144 "link":{ 138 "link":{
145 "web_url" :'https://developers.kakao.com', 139 "web_url" :'https://developers.kakao.com',
146 "mobile_web_url" : 'https://developers.kakao.com', 140 "mobile_web_url" : 'https://developers.kakao.com',
...@@ -175,6 +169,4 @@ var timestamp = function (date) { ...@@ -175,6 +169,4 @@ var timestamp = function (date) {
175 setInterval(checkEvents,5*60*1000); 169 setInterval(checkEvents,5*60*1000);
176 //5분에 한 번 수행 170 //5분에 한 번 수행
177 171
178 -module.exports = router;
179 -
180 -//timestamp(new Date(1983, 4, 9, 11, 5, 17));
...\ No newline at end of file ...\ No newline at end of file
172 +module.exports = router;
...\ No newline at end of file ...\ No newline at end of file
......
...@@ -3,8 +3,8 @@ var router = express.Router(); ...@@ -3,8 +3,8 @@ var router = express.Router();
3 const KakaoStrategy = require("passport-kakao").Strategy; 3 const KakaoStrategy = require("passport-kakao").Strategy;
4 var passport = require('passport'); 4 var passport = require('passport');
5 var GoogleStrategy = require('passport-google-oauth').OAuth2Strategy; 5 var GoogleStrategy = require('passport-google-oauth').OAuth2Strategy;
6 -var googleLogin = false; 6 +
7 -var kakaoLogin =false; 7 +//구글 로그인
8 passport.use(new GoogleStrategy({ 8 passport.use(new GoogleStrategy({
9 clientID:'978869138601-u3euf0c04sbdor68r30m599gilvjn91e.apps.googleusercontent.com', 9 clientID:'978869138601-u3euf0c04sbdor68r30m599gilvjn91e.apps.googleusercontent.com',
10 clientSecret:'9ERYhDZJK-CrX3moES2z11ol', 10 clientSecret:'9ERYhDZJK-CrX3moES2z11ol',
...@@ -23,11 +23,11 @@ router.get('/auth/google/callback',passport.authenticate('google',{ ...@@ -23,11 +23,11 @@ router.get('/auth/google/callback',passport.authenticate('google',{
23 failureRedirect:'/' 23 failureRedirect:'/'
24 }),function(req, res) { 24 }),function(req, res) {
25 req.session.googleToken = req.user.accessToken; 25 req.session.googleToken = req.user.accessToken;
26 - googleLogin = true;
27 if(!req.session.kakaoToken) return res.redirect('/'); 26 if(!req.session.kakaoToken) return res.redirect('/');
28 else return res.redirect('/calendar'); 27 else return res.redirect('/calendar');
29 }); 28 });
30 29
30 +//카카오 로그인
31 const kakaoKey = { 31 const kakaoKey = {
32 clientID: "cf6ae2286a1b022bafa454588f32878b", 32 clientID: "cf6ae2286a1b022bafa454588f32878b",
33 callbackURL: "/oauth/callback" 33 callbackURL: "/oauth/callback"
...@@ -36,7 +36,6 @@ const kakaoKey = { ...@@ -36,7 +36,6 @@ const kakaoKey = {
36 passport.use( 36 passport.use(
37 "kakao-login", 37 "kakao-login",
38 new KakaoStrategy(kakaoKey, (accessToken, refreshToken, profile, done) => { 38 new KakaoStrategy(kakaoKey, (accessToken, refreshToken, profile, done) => {
39 - console.log(profile);
40 profile.accessToken = accessToken; 39 profile.accessToken = accessToken;
41 return done(null,profile); 40 return done(null,profile);
42 }) 41 })
...@@ -46,25 +45,20 @@ router.get( ...@@ -46,25 +45,20 @@ router.get(
46 "/oauth/callback", 45 "/oauth/callback",
47 passport.authenticate("kakao-login",{failureRedirect:'/'}),function(req, res) { 46 passport.authenticate("kakao-login",{failureRedirect:'/'}),function(req, res) {
48 req.session.kakaoToken = req.user.accessToken; 47 req.session.kakaoToken = req.user.accessToken;
49 - kakaoLogin = true;
50 if(!req.session.googleToken) return res.redirect('/'); 48 if(!req.session.googleToken) return res.redirect('/');
51 else return res.redirect('/calendar'); 49 else return res.redirect('/calendar');
52 }); 50 });
53 51
54 52
55 router.get('/',function(req,res,next){ 53 router.get('/',function(req,res,next){
56 - res.render('index',{title:'Reminder-Talk',google:googleLogin,kakao:kakaoLogin}); 54 + res.render('index',{title:'Reminder-Talk'});
57 }); 55 });
58 56
59 router.get('/logout', function(req, res) { 57 router.get('/logout', function(req, res) {
60 req.logout(); 58 req.logout();
61 - console.log(req.session);
62 req.session = null; 59 req.session = null;
63 res.redirect('/'); 60 res.redirect('/');
64 }); 61 });
65 62
66 63
67 module.exports = router; 64 module.exports = router;
68 -
69 -//db에 id 별 이벤트 저장하고 calendar page 에서 출력해주자!
70 -//문제점 : 비동기식 진행이어서 getAllcalendarID 함수 실행 후 바로 list 출력 안됨. console.log 먼저 출력됨
......
1 -var express = require('express');
2 -var router = express.Router();
3 -
4 -/* GET users listing. */
5 -router.get('/', function(req, res, next) {
6 - console.log("accepted");
7 -});
8 -
9 -module.exports = router;
...@@ -2,20 +2,41 @@ ...@@ -2,20 +2,41 @@
2 <html> 2 <html>
3 <head> 3 <head>
4 <link rel='stylesheet' href='/stylesheets/style.css' /> 4 <link rel='stylesheet' href='/stylesheets/style.css' />
5 + <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Jua|Nanum+Brush+Script|Yeon+Sung&display=swap&subset=korean" >
6 + <style>
7 + #d{
8 + background-color: none;
9 + border: 1px solid #772f9c;
10 + line-height: 1;
11 + font-size: 17px;
12 + width: 65%;
13 + padding:10px 15px;
14 + display: block;
15 + box-sizing: border-box;
16 + border-radius: 60px;
17 + color: #772f9c;
18 + font-weight: 100;
19 + letter-spacing: 0.01em;
20 + position: relative;
21 + z-index: 1;
22 + margin-left: 100px;
23 + }
24 +}
25 + </style>
5 <ul><p><a href="/logout"><font size="4">Logout</font></a></p></ul> 26 <ul><p><a href="/logout"><font size="4">Logout</font></a></p></ul>
6 </head> 27 </head>
7 - <body bgcolor="#ff4a56"> 28 + <body bgcolor="e7ded9">
8 <center> 29 <center>
9 <br> 30 <br>
10 <h1>Calendar ID Lists</h1> 31 <h1>Calendar ID Lists</h1>
11 <p> 32 <p>
12 <form action="/events" method="POST"> 33 <form action="/events" method="POST">
13 - <input type=hidden name="googleToken" value=<%= googleToken %>> 34 + <input id='d' type=hidden name="googleToken" value=<%= googleToken %>>
14 <br><br> 35 <br><br>
15 - <input type=hidden name="kakaoToken" value=<%= kakaoToken %>> 36 + <input id='d' type=hidden name="kakaoToken" value=<%= kakaoToken %>>
16 <br><br> 37 <br><br>
17 <% calList.forEach(function(val){ %> 38 <% calList.forEach(function(val){ %>
18 - <input type=submit name="id" value=<%= val.id %>> 39 + <input id='d' type=submit name="id" value=<%= val.id %>>
19 <br><br> 40 <br><br>
20 <% }) %> 41 <% }) %>
21 </form> 42 </form>
......
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
3 <head> 3 <head>
4 <link rel='stylesheet' href='/stylesheets/style.css' /> 4 <link rel='stylesheet' href='/stylesheets/style.css' />
5 <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/normalize/5.0.0/normalize.min.css"/> 5 <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/normalize/5.0.0/normalize.min.css"/>
6 + <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Jua|Nanum+Brush+Script|Yeon+Sung&display=swap&subset=korean" >
6 <style> 7 <style>
7 /* NOTE: The styles were added inline because Prefixfree needs access to your styles and they must be inlined if they are on local disk! */ 8 /* NOTE: The styles were added inline because Prefixfree needs access to your styles and they must be inlined if they are on local disk! */
8 .transition, form button, form .question label, form .question input[type="text"] { 9 .transition, form button, form .question label, form .question input[type="text"] {
...@@ -13,17 +14,17 @@ ...@@ -13,17 +14,17 @@
13 } 14 }
14 15
15 * { 16 * {
16 - font-family: Helvetica, sans-serif;
17 font-weight: light; 17 font-weight: light;
18 -webkit-font-smoothing: antialiased; 18 -webkit-font-smoothing: antialiased;
19 } 19 }
20 20
21 html { 21 html {
22 - background-color: #ff4a56; 22 + background-color: #e7ded9;
23 } 23 }
24 24
25 -h2{ 25 +h1{
26 margin-left:20px; 26 margin-left:20px;
27 + font-family: 'Jua', sans-serif;
27 } 28 }
28 29
29 form { 30 form {
...@@ -31,8 +32,9 @@ form { ...@@ -31,8 +32,9 @@ form {
31 display: inline-block; 32 display: inline-block;
32 max-width: 300x; 33 max-width: 300x;
33 box-sizing: border-box; 34 box-sizing: border-box;
34 - padding: 30px 25px; 35 + padding: 20px 20px;
35 background-color: white; 36 background-color: white;
37 + border: 2px solid #772f9c;
36 border-radius: 40px; 38 border-radius: 40px;
37 left: 30%; 39 left: 30%;
38 margin:50px; 40 margin:50px;
...@@ -40,34 +42,37 @@ form { ...@@ -40,34 +42,37 @@ form {
40 -ms-transform: translate(-50%, 0); 42 -ms-transform: translate(-50%, 0);
41 -webkit-transform: translate(-50%, 0); 43 -webkit-transform: translate(-50%, 0);
42 transform: translate(-50%, 0); 44 transform: translate(-50%, 0);
45 + font-family: 'Yeon Sung', cursive;
43 } 46 }
44 -form h1 { 47 +form h2 {
45 - color: #ff4a56; 48 + color: #772f9c;
46 font-weight: 100; 49 font-weight: 100;
47 letter-spacing: 0.01em; 50 letter-spacing: 0.01em;
48 margin-left: 15px; 51 margin-left: 15px;
49 margin-bottom: 35px; 52 margin-bottom: 35px;
50 text-transform: uppercase; 53 text-transform: uppercase;
54 + font-family: 'Jua', sans-serif;
51 } 55 }
52 form button { 56 form button {
53 margin-top: 35px; 57 margin-top: 35px;
54 background-color: white; 58 background-color: white;
55 - border: 1px solid #ff4a56; 59 + border: 1px solid #772f9c;
56 line-height: 0; 60 line-height: 0;
57 font-size: 17px; 61 font-size: 17px;
58 display: inline-block; 62 display: inline-block;
59 box-sizing: border-box; 63 box-sizing: border-box;
60 padding: 20px 15px; 64 padding: 20px 15px;
61 border-radius: 60px; 65 border-radius: 60px;
62 - color: #ff4a56; 66 + color: #772f9c;
63 font-weight: 100; 67 font-weight: 100;
64 letter-spacing: 0.01em; 68 letter-spacing: 0.01em;
65 position: relative; 69 position: relative;
66 z-index: 1; 70 z-index: 1;
71 + align-self: flex-end;
67 } 72 }
68 form button:hover, form button:focus { 73 form button:hover, form button:focus {
69 color: white; 74 color: white;
70 - background-color: #ff4a56; 75 + background-color: #772f9c;
71 } 76 }
72 form .question { 77 form .question {
73 position: relative; 78 position: relative;
...@@ -81,7 +86,7 @@ form .question:last-of-type { ...@@ -81,7 +86,7 @@ form .question:last-of-type {
81 } 86 }
82 form .question label { 87 form .question label {
83 transform-origin: left center; 88 transform-origin: left center;
84 - color: #ff4a56; 89 + color: #772f9c;
85 font-weight: 100; 90 font-weight: 100;
86 letter-spacing: 0.01em; 91 letter-spacing: 0.01em;
87 font-size: 17px; 92 font-size: 17px;
...@@ -96,7 +101,7 @@ form .question label { ...@@ -96,7 +101,7 @@ form .question label {
96 form .question input[type="text"] { 101 form .question input[type="text"] {
97 appearance: none; 102 appearance: none;
98 background-color: none; 103 background-color: none;
99 - border: 1px solid #ff4a56; 104 + border: 1px solid #772f9c;
100 line-height: 0; 105 line-height: 0;
101 font-size: 17px; 106 font-size: 17px;
102 width: 100%; 107 width: 100%;
...@@ -104,7 +109,7 @@ form .question input[type="text"] { ...@@ -104,7 +109,7 @@ form .question input[type="text"] {
104 box-sizing: border-box; 109 box-sizing: border-box;
105 padding: 10px 15px; 110 padding: 10px 15px;
106 border-radius: 60px; 111 border-radius: 60px;
107 - color: #ff4a56; 112 + color: #772f9c;
108 font-weight: 100; 113 font-weight: 100;
109 letter-spacing: 0.01em; 114 letter-spacing: 0.01em;
110 position: relative; 115 position: relative;
...@@ -112,7 +117,7 @@ form .question input[type="text"] { ...@@ -112,7 +117,7 @@ form .question input[type="text"] {
112 } 117 }
113 form .question input[type="text"]:focus { 118 form .question input[type="text"]:focus {
114 outline: none; 119 outline: none;
115 - background: #ff4a56; 120 + background: #772f9c;
116 color: white; 121 color: white;
117 margin-top: 30px; 122 margin-top: 30px;
118 } 123 }
...@@ -152,7 +157,7 @@ form .question input[type="text"]:valid ~ label { ...@@ -152,7 +157,7 @@ form .question input[type="text"]:valid ~ label {
152 } 157 }
153 #ls{ 158 #ls{
154 transform-origin: left center; 159 transform-origin: left center;
155 - color: #ff4a56; 160 + color: #772f9c;
156 font-weight: 100; 161 font-weight: 100;
157 letter-spacing: 0.01em; 162 letter-spacing: 0.01em;
158 font-size: 17px; 163 font-size: 17px;
...@@ -165,15 +170,15 @@ form .question input[type="text"]:valid ~ label { ...@@ -165,15 +170,15 @@ form .question input[type="text"]:valid ~ label {
165 } 170 }
166 #d{ 171 #d{
167 background-color: none; 172 background-color: none;
168 - border: 1px solid #ff4a56; 173 + border: 1px solid #772f9c;
169 line-height: 1; 174 line-height: 1;
170 font-size: 17px; 175 font-size: 17px;
171 - width: 70%; 176 + width: 65%;
172 padding:10px 15px; 177 padding:10px 15px;
173 display: block; 178 display: block;
174 box-sizing: border-box; 179 box-sizing: border-box;
175 border-radius: 60px; 180 border-radius: 60px;
176 - color: #ff4a56; 181 + color: #772f9c;
177 font-weight: 100; 182 font-weight: 100;
178 letter-spacing: 0.01em; 183 letter-spacing: 0.01em;
179 position: relative; 184 position: relative;
...@@ -183,17 +188,21 @@ form .question input[type="text"]:valid ~ label { ...@@ -183,17 +188,21 @@ form .question input[type="text"]:valid ~ label {
183 #pad{ 188 #pad{
184 padding:10px 0; 189 padding:10px 0;
185 } 190 }
191 + #title{
192 + color: #772f9c;
193 + }
186 </style> 194 </style>
187 </head> 195 </head>
188 <body> 196 <body>
189 <div id="div_root"> 197 <div id="div_root">
190 198
191 <div id="div_top"> 199 <div id="div_top">
192 - <h1>Calendar ID : <%= id %></h1> 200 + <h1 id='title'>Calendar ID : <%= id %></h1>
193 </div> 201 </div>
194 <div id="div_center"> 202 <div id="div_center">
195 <% calendars.forEach(function(val){ %> 203 <% calendars.forEach(function(val){ %>
196 <form action="/events/remove" method="POST"> 204 <form action="/events/remove" method="POST">
205 + <p style="font-size:17px">일정</p>
197 <p>summary : <%= val.summary %></p> 206 <p>summary : <%= val.summary %></p>
198 <p>created : <%= val.created %></p> 207 <p>created : <%= val.created %></p>
199 <p>start : <%= val.start.dateTime %></p> 208 <p>start : <%= val.start.dateTime %></p>
......
1 <!DOCTYPE html> 1 <!DOCTYPE html>
2 <html> 2 <html>
3 <head> 3 <head>
4 - <br><br><br><br><br><br> 4 + <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Jua|Nanum+Brush+Script|Yeon+Sung&display=swap&subset=korean" >
5 <title><%= title %></title> 5 <title><%= title %></title>
6 <link rel='stylesheet' href='/stylesheets/style.css' /> 6 <link rel='stylesheet' href='/stylesheets/style.css' />
7 </head> 7 </head>
8 - <body bgcolor="#ff4a56"> 8 + <body bgcolor="#e7ded9">
9 <div id="container" > 9 <div id="container" >
10 <center> 10 <center>
11 <div id='item1'><p><font size="7"> 11 <div id='item1'><p><font size="7">
......