Commit 400397ec authored by Choi Ga Young's avatar Choi Ga Young
Browse files

Merge remote-tracking branch 'origin/on_submit' into rkyoung7

parents 4e10c469 7ebd7f6e
......@@ -9,6 +9,10 @@ const Nav = styled.nav`
a {
color: #ffffff;
}
& .logoutBtn:hover {
text-decoration: underline;
}
`
function Menu() {
......@@ -35,7 +39,6 @@ function Menu() {
<Link to="/notice" className="nav-link">공지사항</Link>
</li>
<li className="nav-item">
{console.log(name)}
<Link to="/home" className="nav-link">대관 현황</Link>
</li>
<li className="nav-item">
......@@ -59,9 +62,13 @@ function Menu() {
대관 확인/취소(관리자)</Link>
</li>
</ul>
<div>
<div>{name} 안녕하세요.</div>
<button onClick={logout} type="button">로그아웃</button>
<div className="h-100 mr-3">
<div className="text-white text-right font-weight-light"><small>{name} 안녕하세요</small></div>
<div className="text-white text-right font-weight-light"><small>
<Link to={{
pathname: `/change/${localStorage.getItem('_id')}`,
state: { id: localStorage.getItem('_id') },
}}>비밀번호 변경</Link> / <span className="logoutBtn" onClick={logout} >로그아웃</span></small></div>
</div>
</div>
</Nav>
......
......@@ -21,6 +21,30 @@ function Apply(props) {
}} />;
}
function time(starttime) {
console.log(starttime)
if (starttime == 21) {
return (<Field as="select" name="usetime">
<option value="">이용시간을 선택하세요</option>
<option value="1">1시간</option>
</Field>)
}
if (starttime == 20) {
return (<Field as="select" name="usetime">
<option value="">이용시간을 선택하세요</option>
<option value="1">1시간</option>
<option value="2">2시간</option>
</Field>)
}
return (<Field as="select" name="usetime">
<option value="">이용시간을 선택하세요</option>
<option value="1">1시간</option>
<option value="2">2시간</option>
<option value="3">3시간</option>
</Field>)
}
function getUser() {
axios.get(`/users/${props.match.params.id}`, {
headers: { authorization: localStorage.getItem('token') },
......@@ -44,7 +68,8 @@ function Apply(props) {
initialValues={{
_id: `${props.match.params.id}`,
date: '',
time: '',
starttime: '',
usetime: '',
room: '',
reason: '',
students: [
......@@ -56,8 +81,6 @@ function Apply(props) {
validationSchema={Yup.object({
date: Yup.string()
.required('날짜를 입력해주세요.'),
time: Yup.string()
.required('시간을 입력해주세요.'),
room: Yup.string()
.required('강의실 번호를 입력해주세요.'),
reason: Yup.string()
......@@ -92,7 +115,6 @@ function Apply(props) {
isSubmitting,
}) => (
<div className="row justify-content-center align-items-center">
{console.log(user)}
<form onSubmit={handleSubmit} className="col-sm-3">
<div className="form-group mb-4">
<label>대표자</label>
......@@ -102,27 +124,37 @@ function Apply(props) {
<label>신청날짜</label>
<input
className={(touched.date && errors.date ? 'form-control is-invalid' : "form-control")}
type="number"
type="text"
name="date"
{...getFieldProps('date')}
placeholder="2020mmdd"
placeholder="yyyy-mm-dd"
/>
{touched.date && errors.date ? (
<div className="invalid-feedback text-left">{errors.date}</div>
) : null}
</div>
<div className="form-group mb-4">
<label>이용시작시간</label>
<Field as="select" name="starttime">
<option value="">이용시작시간</option>
<option value="9">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
</Field>
</div>
<div className="form-group mb-4">
<label>이용시간</label>
<input
className={(touched.time && errors.time ? 'form-control is-invalid' : "form-control")}
type="text"
name="time"
{...getFieldProps('time')}
placeholder="ex) 11:00~14:00"
/>
{touched.time && errors.time ? (
<div className="invalid-feedback text-left">{errors.time}</div>
) : null}
{time(values.starttime)}
</div>
<div className="form-group mb-4">
<label>강의실</label>
......
......@@ -56,10 +56,10 @@ function Check(props) {
return (
<tr key={index}>
<td>{reserve.date}</td>
<td>{reserve.time}</td>
<td>{reserve.starttime}~{(Number(reserve.starttime) + reserve.usetime)}</td>
<td>{reserve.room}</td>
<td>{reserve.num}</td>
<td>{reserve.approve?"사용허가":"글쎄..."}</td>
<td>{reserve.approve ? "사용허가" : "글쎄..."}</td>
<td>
<button onClick={() => remove(index)} className="btn btn-danger">
취소
......
......@@ -10,10 +10,6 @@ function Home() {
home
<button><Link to="/login">로그인</Link></button>
<button><Link to="/signup">회원가입</Link></button>
<button><Link to={{
pathname: `/change/${localStorage.getItem('_id')}`,
state: { id: localStorage.getItem('_id') },
}}>비밀번호 수정</Link></button>
</div>
</div>
)
......
......@@ -109,7 +109,7 @@ function Login() {
<div className={mobile ? "mob-head" : ""}>
<img className={mobile ? "mob-img" : "img-fluid"} src={Logo} />
<div className={"d-flex " + (mobile ? "align-items-center" : "justify-content-center")}>
<h1 className="font-weight-bold text-white">고려대학교<br />대관 서비스</h1>
<h1 className="font-weight-bold text-white text-center">고려대학교<br/>대관 서비스</h1>
</div>
</div>
</Asd>
......
import React, { useState, useEffect } from 'react';
import React, { useState, useEffect, useRef } from 'react';
import Menu from '../Components/Menu';
import axios from 'axios';
import styled from 'styled-components';
function Notice() {
const [notices, setNotices] = useState([]);
......@@ -9,6 +10,19 @@ function Notice() {
getNotice();
}, []);
function dateForm(day) {
const post_day = new Date(day);
let year = post_day.getFullYear();
let month = post_day.getMonth() + 1;
let date = post_day.getDate();
month = month < 10 ? '0' + month : month;
date = date < 10 ? '0' + date : date;
const new_date = year + "-" + month + "-" + date;
return new_date
}
function getNotice() {
axios.get(`/notices`)
.then(res => {
......@@ -25,13 +39,32 @@ function Notice() {
return (
<div>
<Menu />
<div className="container">
<div className="row">
<div className="col-12">
{notices.map((notice) => <div>{notice.notice_title}</div>)}
<div className="container-fluid">
<div className="row justify-content-center vw-100 vh-90">
<div className="col-md-7 col-12">
<h2 className="p-3 border-bottom">공지사항</h2>
<div id="accordion w-90 pt-1">
{notices.map((notice, index) =>
<div className="card">
<div className="card-header collapsed card-link w-100 row m-0 p-1" id={"Hnotice_" + index} data-toggle="collapse" href={"#notice_" + index}>
<div>
<div className="col-6 p-0">{notice.notice_title}</div>
<div className="col-3 p-0 text-center">{notice.notice_author}</div>
<div className="col-3 p-0 text-right">{dateForm(notice.post_date)}</div>
</div>
</div>
<div id={"notice_" + index} aria-labelledby={"Hnotice_" + index} className="collapse" data-parent="#accordion">
<div className="card-body">{notice.notice_content}</div>
</div>
</div>
)}
</div>
</div>
</div >
</div >
</div>
)
}
......
......@@ -2,8 +2,8 @@ import React from 'react';
import ReactDOM from 'react-dom';
import * as serviceWorker from './serviceWorker';
import { BrowserRouter as Router, Route, Redirect, Switch } from 'react-router-dom';
// import 'bootstrap';
// import 'bootstrap/dist/css/bootstrap.css';
import 'bootstrap';
import 'bootstrap/dist/css/bootstrap.css';
import axios from 'axios';
import { PrivateRoute } from './Components/PrivateRoute';
......
......@@ -11,9 +11,11 @@ router.post('/', function (req, res, next) {
const reserve = new Reserve({
user: req.body._id,
date: req.body.date,
time: req.body.time,
starttime: Number(req.body.starttime),
usetime: Number(req.body.usetime),
start: `${req.body.date}T`+`${req.body.starttime}:00:00`,
end: `${req.body.date}T`+`${Number(req.body.starttime)+Number(req.body.usetime)}:00:00`,
room: req.body.room,
name: req.body.name,
reason: req.body.reason,
students: req.body.students,
approve: req.body.approve,
......@@ -35,6 +37,7 @@ router.post('/', function (req, res, next) {
router.get('/:_id', function (req, res, next) {
console.log('/reserves get req.params', req.params)
Reserve.find({ user: req.params._id }, function (err, reserve) {
console.log('id.name',reserve)
if (err) return res.status(500).json({ error: err });
console.log('reserve list', reserve)
res.status(201).json(reserve);
......
......@@ -11,15 +11,20 @@ const reserveSchema = new Schema({
date: {
type: String,
},
time: {
starttime: {
type: Number,
},
usetime: {
type: Number,
},
start: {
type: String,
},
room: {
end: {
type: String,
},
name: { //대표자 이름
room: {
type: String,
},
......@@ -39,8 +44,6 @@ const reserveSchema = new Schema({
num: {
type: Number,
},
});
module.exports = mongoose.model('Reserve', reserveSchema);
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment