Merge branch 'master' of http://192.168.0.157:3000/DBNT/GGWEB
commit
dd5b3f0589
|
|
@ -102,12 +102,17 @@ public class AdminController {
|
|||
searchVO.setSearchStartDate(searchStartDate.minusMonths(1).format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
|
||||
model.addAttribute("monthLoginCount", logService.selectLoginCnt(searchVO));
|
||||
|
||||
//일별 지도사용 추이 데이터
|
||||
//일별 지도사용 수
|
||||
UseHistorySearchVO useHistorySearchVO = new UseHistorySearchVO();
|
||||
useHistorySearchVO.setSearchEndDate(searchVO.getSearchEndDate());
|
||||
useHistorySearchVO.setSearchStartDate(searchStartDate.minusDays(14).format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
|
||||
List<UseHistoryChartVO> dataList = useHistoryService.selectDayMapUseData(useHistorySearchVO);
|
||||
model.addAttribute("dayMapUseDataList", dataList);
|
||||
List<ChartVO> dayMapUseDataList = useHistoryService.selectDayMapUseData(useHistorySearchVO);
|
||||
model.addAttribute("dayMapUseDataList", dayMapUseDataList);
|
||||
|
||||
// 지역별 현장수집 데이터 수
|
||||
List<ChartVO> areaDataList = fieldDataService.selectAreaDataList();
|
||||
model.addAttribute("areaDataList", areaDataList);
|
||||
|
||||
return "admin/dashBoard";
|
||||
|
||||
} catch (Exception e) {
|
||||
|
|
@ -128,18 +133,14 @@ public class AdminController {
|
|||
@ResponseBody
|
||||
public JSONArray dayMapUseData(@ModelAttribute("UseRequestSearchVO") UseHistorySearchVO useHistorySearchVO, Model model) throws Exception {
|
||||
try {
|
||||
List<UseHistoryChartVO> dataList = useHistoryService.selectDayMapUseData(useHistorySearchVO);
|
||||
List<ChartVO> dataList = useHistoryService.selectDayMapUseData(useHistorySearchVO);
|
||||
|
||||
JSONArray returnAry = new JSONArray();
|
||||
for(UseHistoryChartVO chartVO: dataList){
|
||||
for(ChartVO chartVO: dataList){
|
||||
JSONArray temp = new JSONArray();
|
||||
temp.put(chartVO.getDateStr());
|
||||
temp.put(chartVO.getUseCnt());
|
||||
temp.put(chartVO.getParam01());
|
||||
temp.put(chartVO.getValue01());
|
||||
returnAry.put(temp);
|
||||
// JSONObject temp = new JSONObject();
|
||||
// temp.put("date", chartVO.getDateStr());
|
||||
// temp.put("useCnt", chartVO.getUseCnt());
|
||||
// returnAry.put(temp);
|
||||
}
|
||||
System.out.println("결과 배열 수 : "+returnAry.length());
|
||||
return returnAry;
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ package com.mca.map.mapper;
|
|||
|
||||
import java.util.List;
|
||||
|
||||
import com.mca.map.vo.ChartVO;
|
||||
import com.mca.map.vo.FieldDataSearchVO;
|
||||
import com.mca.map.vo.FieldDataVO;
|
||||
|
||||
|
|
@ -15,4 +16,6 @@ public interface FieldDataMapper {
|
|||
int selectFieldDataCnt(FieldDataSearchVO fieldDataSearchVO);
|
||||
|
||||
FieldDataVO selectFieldData(String id);
|
||||
|
||||
List<ChartVO> selectAreaDataList();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ package com.mca.map.mapper;
|
|||
|
||||
import java.util.List;
|
||||
|
||||
import com.mca.map.vo.UseHistoryChartVO;
|
||||
import com.mca.map.vo.ChartVO;
|
||||
import com.mca.map.vo.UseHistorySearchVO;
|
||||
|
||||
import egovframework.rte.psl.dataaccess.mapper.Mapper;
|
||||
|
|
@ -14,5 +14,5 @@ public interface UseHistoryMapper {
|
|||
|
||||
int selectUseHistoryCnt(UseHistorySearchVO useHistorySearchVO);
|
||||
|
||||
List<UseHistoryChartVO> selectDayMapUseData(UseHistorySearchVO useHistorySearchVO);
|
||||
List<ChartVO> selectDayMapUseData(UseHistorySearchVO useHistorySearchVO);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ import java.util.List;
|
|||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import com.mca.map.vo.ChartVO;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import com.mca.map.mapper.FieldDataMapper;
|
||||
|
|
@ -31,4 +32,8 @@ public class FieldDataService {
|
|||
// TODO Auto-generated method stub
|
||||
return fieldDataMapper.selectFieldData(id);
|
||||
}
|
||||
|
||||
public List<ChartVO> selectAreaDataList() {
|
||||
return fieldDataMapper.selectAreaDataList();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ import java.util.List;
|
|||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import com.mca.map.vo.UseHistoryChartVO;
|
||||
import com.mca.map.vo.ChartVO;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.mca.map.mapper.UseHistoryMapper;
|
||||
import com.mca.map.vo.UseHistorySearchVO;
|
||||
|
|
@ -26,7 +26,7 @@ public class UseHistoryService {
|
|||
return useHistoryMapper.selectUseHistoryList(useHistorySearchVO);
|
||||
}
|
||||
|
||||
public List<UseHistoryChartVO> selectDayMapUseData(UseHistorySearchVO useHistorySearchVO) {
|
||||
public List<ChartVO> selectDayMapUseData(UseHistorySearchVO useHistorySearchVO) {
|
||||
return useHistoryMapper.selectDayMapUseData(useHistorySearchVO);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,41 @@
|
|||
package com.mca.map.vo;
|
||||
|
||||
public class ChartVO {
|
||||
private String param01;
|
||||
private String param02;
|
||||
private Integer value01;
|
||||
private Integer value02;
|
||||
|
||||
|
||||
public String getParam01() {
|
||||
return param01;
|
||||
}
|
||||
|
||||
public void setParam01(String param01) {
|
||||
this.param01 = param01;
|
||||
}
|
||||
|
||||
public String getParam02() {
|
||||
return param02;
|
||||
}
|
||||
|
||||
public void setParam02(String param02) {
|
||||
this.param02 = param02;
|
||||
}
|
||||
|
||||
public Integer getValue01() {
|
||||
return value01;
|
||||
}
|
||||
|
||||
public void setValue01(Integer value01) {
|
||||
this.value01 = value01;
|
||||
}
|
||||
|
||||
public Integer getValue02() {
|
||||
return value02;
|
||||
}
|
||||
|
||||
public void setValue02(Integer value02) {
|
||||
this.value02 = value02;
|
||||
}
|
||||
}
|
||||
|
|
@ -1,22 +0,0 @@
|
|||
package com.mca.map.vo;
|
||||
|
||||
public class UseHistoryChartVO {
|
||||
private String dateStr;
|
||||
private Integer useCnt;
|
||||
|
||||
public String getDateStr() {
|
||||
return dateStr;
|
||||
}
|
||||
|
||||
public void setDateStr(String dateStr) {
|
||||
this.dateStr = dateStr;
|
||||
}
|
||||
|
||||
public Integer getUseCnt() {
|
||||
return useCnt;
|
||||
}
|
||||
|
||||
public void setUseCnt(Integer useCnt) {
|
||||
this.useCnt = useCnt;
|
||||
}
|
||||
}
|
||||
|
|
@ -96,18 +96,25 @@
|
|||
|
||||
<select id="selectFieldData" parameterType="String" resultType="fieldDataVO">
|
||||
SELECT
|
||||
id,
|
||||
userid,
|
||||
save_date,
|
||||
data_path,
|
||||
layer_id,
|
||||
field_data,
|
||||
region,
|
||||
description,
|
||||
status,
|
||||
err_note
|
||||
id,
|
||||
userid,
|
||||
save_date,
|
||||
data_path,
|
||||
layer_id,
|
||||
field_data,
|
||||
region,
|
||||
description,
|
||||
status,
|
||||
err_note
|
||||
FROM
|
||||
map_field_data
|
||||
WHERE id = #{id}
|
||||
</select>
|
||||
|
||||
<select id="selectAreaDataList" resultType="ChartVO">
|
||||
select substring_index(region, ' ', 1) as param01,
|
||||
count(*) as value01
|
||||
from map_field_data
|
||||
group by param01
|
||||
</select>
|
||||
</mapper>
|
||||
|
|
@ -50,12 +50,12 @@
|
|||
</if>
|
||||
</select>
|
||||
|
||||
<select id="selectDayMapUseData" parameterType="useHistorySearchVO" resultType="UseHistoryChartVO" >
|
||||
select DATE_FORMAT(log_date ,'%m-%d') as dateStr,
|
||||
count(*) as useCnt
|
||||
<select id="selectDayMapUseData" parameterType="useHistorySearchVO" resultType="ChartVO" >
|
||||
select DATE_FORMAT(log_date ,'%m-%d') as param01,
|
||||
count(*) as value01
|
||||
from map_use_history
|
||||
where log_date >= CONCAT(#{searchStartDate}, ' 00:00:00')
|
||||
and log_date <= CONCAT(#{searchEndDate}, ' 23:59:59')
|
||||
group by dateStr
|
||||
group by param01
|
||||
</select>
|
||||
</mapper>
|
||||
|
|
@ -14,7 +14,7 @@
|
|||
<typeAlias alias="useRequestSearchVO" type="com.mca.map.vo.UseRequestSearchVO" />
|
||||
<typeAlias alias="useHistoryVO" type="com.mca.map.vo.UseHistoryVO"/>
|
||||
<typeAlias alias="useHistorySearchVO" type="com.mca.map.vo.UseHistorySearchVO" />
|
||||
<typeAlias alias="useHistoryChartVO" type="com.mca.map.vo.UseHistoryChartVO" />
|
||||
<typeAlias alias="ChartVO" type="com.mca.map.vo.ChartVO" />
|
||||
<typeAlias alias="fieldDataVO" type="com.mca.map.vo.FieldDataVO"/>
|
||||
<typeAlias alias="fieldDataSearchVO" type="com.mca.map.vo.FieldDataSearchVO" />
|
||||
|
||||
|
|
|
|||
|
|
@ -8,14 +8,23 @@
|
|||
<script type="text/javascript" src="<c:out value="/js/admin/dashBoard.js"/>"></script>
|
||||
<script type="text/javascript">
|
||||
const dayMapUseDataList = [];
|
||||
const areaDataList = [];
|
||||
</script>
|
||||
<c:forEach var="data" items="${dayMapUseDataList}">
|
||||
<script type="text/javascript">
|
||||
dayMapUseDataList.push(['${data.dateStr}',${data.useCnt}])
|
||||
dayMapUseDataList.push(['${data.param01}',${data.value01}])
|
||||
</script>
|
||||
</c:forEach>
|
||||
<c:forEach var="data" items="${areaDataList}">
|
||||
<script type="text/javascript">
|
||||
areaDataList.push(['${data.param01}',${data.value01}])
|
||||
</script>
|
||||
</c:forEach>
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="row mt-3">
|
||||
<div class="col-lg-12">
|
||||
<h4>대시보드</h4>
|
||||
</div>
|
||||
<div class="col-lg-3">
|
||||
<div class="card my-2">
|
||||
<div class="card-body row">
|
||||
|
|
@ -42,7 +51,7 @@
|
|||
<div class="card my-2">
|
||||
<div class="card-body row">
|
||||
<div class="col-auto">
|
||||
<img src="/images/icon/icon_003.png" width="60" height="60" alt="">
|
||||
<img src="/images/icon/icon_04.png" width="60" height="60" alt="">
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<a href="/admin/fieldData?status0=1&status1=1&status2=1&status3=1&status4=0"
|
||||
|
|
@ -52,28 +61,6 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<%--<div class="card my-2">
|
||||
<div class="card-body row">
|
||||
<div class="col-auto">
|
||||
<img src="/images/icon/icon_002.png" width="60" height="60" alt="">
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<p class="mb-0 text-black-50">-</p>
|
||||
<h3>0</h3>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card my-2">
|
||||
<div class="card-body row">
|
||||
<div class="col-auto">
|
||||
<img src="/images/icon/icon_002.png" width="60" height="60" alt="">
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<p class="mb-0 text-black-50">-</p>
|
||||
<h3>0</h3>
|
||||
</div>
|
||||
</div>
|
||||
</div>--%>
|
||||
<div class="card my-2">
|
||||
<div class="card-body row">
|
||||
<div class="col-auto">
|
||||
|
|
@ -98,28 +85,36 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="col-lg-9">
|
||||
<div class="card my-2">
|
||||
<div class="card-body">
|
||||
<p class="mb-0 text-black-50">지도사용 이력 추이</p>
|
||||
<div id="mapUseFromDayChart"></div>
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<div class="card my-2">
|
||||
<div class="card-body">
|
||||
<p class="mb-0 text-black-50">지도사용 이력 추이</p>
|
||||
<div id="mapUseFromDayChart"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<%--<div class="card my-2">
|
||||
<div class="card-body">
|
||||
<div class="col-auto">
|
||||
<p class="mb-0 text-black-50">-</p>
|
||||
그래프
|
||||
<div class="col-5">
|
||||
<div class="card my-2">
|
||||
<div class="card-body">
|
||||
<div class="col-auto">
|
||||
<p class="mb-0 text-black-50">지역별 현장수집 데이터 현황</p>
|
||||
<div id="areaDonutChart"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-7">
|
||||
<div class="card my-2">
|
||||
<div class="card-body">
|
||||
<div class="col-auto">
|
||||
<p class="mb-0 text-black-50">빈자리 메꿀 그래프</p>
|
||||
<div id="tempLineChart"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card my-2">
|
||||
<div class="card-body">
|
||||
<div class="col-auto">
|
||||
<p class="mb-0 text-black-50">-</p>
|
||||
그래프
|
||||
</div>
|
||||
</div>
|
||||
</div>--%>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -66,7 +66,7 @@
|
|||
<tr>
|
||||
<td><c:out value="${item.idx}"/></td>
|
||||
<%-- <td ><a href="/admin/request/ <c:out value='${item.idx}' />"><c:out value="${item.title}"/></a>--%>
|
||||
<td class="title-td" data-idx="${item.idx}">${item.title}</td>
|
||||
<td class="clickAbleObj title-td" data-idx="${item.idx}">${item.title}</td>
|
||||
<td><c:out value="${item.company}"/></td>
|
||||
<td><c:out value="${item.name}"/></td>
|
||||
<td class="td_date"><c:out value="${item.r_date}"/></td>
|
||||
|
|
|
|||
|
|
@ -69,6 +69,9 @@
|
|||
</tbody>
|
||||
</table>
|
||||
<div class="join_top mt-3">
|
||||
<p class="search_p1">
|
||||
<input class="btn btn-secondary" type="button" value="닫기" data-bs-dismiss="modal"/>
|
||||
</p>
|
||||
<p class="search_p2">
|
||||
<c:choose>
|
||||
<c:when test="${userVO.auth eq '99'}">
|
||||
|
|
|
|||
|
|
@ -5,31 +5,51 @@
|
|||
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
|
||||
|
||||
<script type="text/javascript">
|
||||
$(document).on('click', '#logoutLink', function () {
|
||||
$("#logoutForm").submit();
|
||||
})
|
||||
$(document).on('click', '.logoutLink', function () {
|
||||
$("#logoutForm").submit();
|
||||
})
|
||||
</script>
|
||||
<c:set var="tilesURI" value="${requestScope['javax.servlet.forward.request_uri']}"/>
|
||||
<c:set var="tilesURIParam" value="${requestScope['javax.servlet.forward.query_string']}"/>
|
||||
|
||||
<form id="logoutForm" action="/j_spring_security_logout" method="POST">
|
||||
<input name="${_csrf.parameterName}" type="hidden" value="${_csrf.token}"/>
|
||||
<input name="${_csrf.parameterName}" type="hidden" value="${_csrf.token}"/>
|
||||
</form>
|
||||
|
||||
<header class="header">
|
||||
<div class="header_title">
|
||||
<sec:authorize access="hasRole('ROLE_USER')">
|
||||
<a href="/map/request">모바일센터 관리시스템</a>
|
||||
</sec:authorize>
|
||||
<sec:authorize access="hasRole('ROLE_ADMIN')">
|
||||
<a href="/admin/dashBoard">모바일센터 관리시스템</a>
|
||||
</sec:authorize>
|
||||
</div>
|
||||
<sec:authorize access="hasAnyRole('ROLE_ADMIN','ROLE_USER')">
|
||||
<div class="header_info">
|
||||
<a id="logoutLink" href="#">
|
||||
<i class="bi bi-box-arrow-right"></i> 로그아웃
|
||||
</a>
|
||||
</div>
|
||||
<header class="header row justify-content-between">
|
||||
<div class="header_title col-auto">
|
||||
<sec:authorize access="hasRole('ROLE_USER')">
|
||||
<a href="/map/request">모바일센터 관리시스템</a>
|
||||
</sec:authorize>
|
||||
<sec:authorize access="hasRole('ROLE_ADMIN')">
|
||||
<a href="/admin/dashBoard">모바일센터 관리시스템</a>
|
||||
</sec:authorize>
|
||||
</div>
|
||||
<sec:authorize access="hasAnyRole('ROLE_ADMIN','ROLE_USER')">
|
||||
<div class="header_info col-auto">
|
||||
<a class="logoutLink d-none d-sm-block" href="#">
|
||||
<i class="bi bi-box-arrow-right"></i> 로그아웃
|
||||
</a>
|
||||
<div class="dropdown text-end d-block d-sm-none">
|
||||
<a href="#" class="d-block link-dark text-white text-decoration-none dropdown-toggle" id="dropdownUser1" data-bs-toggle="dropdown" aria-expanded="false">
|
||||
<i class="bi bi-list"></i>
|
||||
</a>
|
||||
<ul class="dropdown-menu text-small" aria-labelledby="dropdownUser1" style="">
|
||||
<sec:authorize access="hasRole('ROLE_USER')">
|
||||
<li><a class="dropdown-item" href="/map/request">지도사용 요청</a></li>
|
||||
<li><a class="dropdown-item" href="/map/userInfo">회원정보 수정</a></li>
|
||||
</sec:authorize>
|
||||
<sec:authorize access="hasRole('ROLE_ADMIN')">
|
||||
<li><a class="dropdown-item" href="/admin/dashBoard">대시보드</a></li>
|
||||
<li><a class="dropdown-item" href="/admin/request">지도사용 요청</a></li>
|
||||
<li><a class="dropdown-item" href="/admin/history">지도사용 이력</a></li>
|
||||
<li><a class="dropdown-item" href="/admin/fieldData?status0=1&status1=1&status2=1&status3=1&status4=1">현장수집 데이터</a></li>
|
||||
<li><a class="dropdown-item" href="/admin/userInfo?auth=99">회원 관리</a></li>
|
||||
</sec:authorize>
|
||||
<li><hr class="dropdown-divider"></li>
|
||||
<li><a class="dropdown-item logoutLink" href="#">로그아웃</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</sec:authorize>
|
||||
</header>
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
<c:set var="tilesURIParam" value="${requestScope['javax.servlet.forward.query_string']}"/>
|
||||
|
||||
<sec:authorize access="hasRole('ROLE_USER')">
|
||||
<nav class="common_nav">
|
||||
<nav class="common_nav d-none d-sm-block">
|
||||
<div class="header_menu">
|
||||
<ul>
|
||||
<li class="fs-6 ps-3 ${fn:contains(tilesURI, '/map/request')?"thisOn":""}"
|
||||
|
|
@ -25,7 +25,7 @@
|
|||
</nav>
|
||||
</sec:authorize>
|
||||
<sec:authorize access="hasRole('ROLE_ADMIN')">
|
||||
<nav class="common_nav">
|
||||
<nav class="common_nav d-none d-sm-block">
|
||||
<div class="header_menu">
|
||||
<ul>
|
||||
<li class="fs-6 ps-3 ${fn:contains(tilesURI, '/admin/dashBoard')?"thisOn":""}"
|
||||
|
|
|
|||
|
|
@ -8,40 +8,40 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="ko">
|
||||
<head>
|
||||
<meta charset="utf-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<link rel="stylesheet" type="text/css" href="<c:url value="/css/jquery-ui.min.css"/>">
|
||||
<link rel="stylesheet" type="text/css" href="<c:url value="/css/bootstrap-5.1.3.css"/>">
|
||||
<link rel="stylesheet" type="text/css" href="<c:url value="/images/bootstrap-icons-1.8.0/bootstrap-icons.css"/>">
|
||||
<link href="<c:out value="/css/normalize.css" />" rel="stylesheet">
|
||||
<link href="<c:out value="/css/style.css" />" rel="stylesheet">
|
||||
<style>
|
||||
#wrap {
|
||||
background-image: url("/images/main1.jpg");
|
||||
background-size: cover;
|
||||
height: 1080px;
|
||||
}
|
||||
</style>
|
||||
<title>
|
||||
<tiles:insertAttribute name="title" ignore="true"/>
|
||||
</title>
|
||||
<script src="<c:url value='/js/jquery-3.5.1.min.js' />"></script>
|
||||
<script src="<c:url value='/js/jquery-ui.min.js' />"></script>
|
||||
<script src="<c:url value="/js/bootstrap-5.1.3.min.js"/>"></script>
|
||||
<meta charset="utf-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<link rel="stylesheet" type="text/css" href="<c:url value="/css/jquery-ui.min.css"/>">
|
||||
<link rel="stylesheet" type="text/css" href="<c:url value="/css/bootstrap-5.1.3-dist/css/bootstrap.css"/>">
|
||||
<link rel="stylesheet" type="text/css" href="<c:url value="/images/bootstrap-icons-1.8.0/bootstrap-icons.css"/>">
|
||||
<link href="<c:out value="/css/normalize.css" />" rel="stylesheet">
|
||||
<link href="<c:out value="/css/style.css" />" rel="stylesheet">
|
||||
<style>
|
||||
#wrap {
|
||||
background-image: url("/images/main1.jpg");
|
||||
background-size: cover;
|
||||
height: 1080px;
|
||||
}
|
||||
</style>
|
||||
<title>
|
||||
<tiles:insertAttribute name="title" ignore="true"/>
|
||||
</title>
|
||||
<script src="<c:url value='/js/jquery-3.5.1.min.js' />"></script>
|
||||
<script src="<c:url value='/js/jquery-ui.min.js' />"></script>
|
||||
<script src="<c:url value="/js/bootstrap-5.1.3-dist/js/bootstrap.bundle.min.js"/>"></script>
|
||||
</head>
|
||||
<body class="overflow-hidden htmlBody">
|
||||
<div id="wrap">
|
||||
<tiles:insertAttribute name="center"/>
|
||||
<tiles:insertAttribute name="center"/>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function () {
|
||||
var errMsg = "${errMsg}";
|
||||
if (errMsg) {
|
||||
alert(errMsg);
|
||||
}
|
||||
});
|
||||
$(document).ready(function () {
|
||||
var errMsg = "${errMsg}";
|
||||
if (errMsg) {
|
||||
alert(errMsg);
|
||||
}
|
||||
});
|
||||
</script>
|
||||
</html>
|
||||
|
|
@ -8,28 +8,28 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="ko">
|
||||
<head>
|
||||
<meta charset="utf-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<link rel="stylesheet" type="text/css" href="<c:url value="/css/jquery-ui.min.css"/>">
|
||||
<link rel="stylesheet" type="text/css" href="<c:url value="/css/bootstrap-5.1.3.css"/>">
|
||||
<link rel="stylesheet" type="text/css" href="<c:url value="/images/bootstrap-icons-1.8.0/bootstrap-icons.css"/>">
|
||||
<link href="<c:out value="/css/normalize.css" />" rel="stylesheet">
|
||||
<link href="<c:out value="/css/style.css" />" rel="stylesheet">
|
||||
<title>
|
||||
<tiles:insertAttribute name="title" ignore="true"/>
|
||||
</title>
|
||||
<script src="<c:url value='/js/jquery-3.5.1.min.js' />"></script>
|
||||
<script src="<c:url value='/js/jquery-ui.min.js' />"></script>
|
||||
<script src="<c:url value="/js/bootstrap-5.1.3.min.js"/>"></script>
|
||||
<meta charset="utf-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<link rel="stylesheet" type="text/css" href="<c:url value="/css/jquery-ui.min.css"/>">
|
||||
<link rel="stylesheet" type="text/css" href="<c:url value="/css/bootstrap-5.1.3-dist/css/bootstrap.css"/>">
|
||||
<link rel="stylesheet" type="text/css" href="<c:url value="/images/bootstrap-icons-1.8.0/bootstrap-icons.css"/>">
|
||||
<link href="<c:out value="/css/normalize.css" />" rel="stylesheet">
|
||||
<link href="<c:out value="/css/style.css" />" rel="stylesheet">
|
||||
<title>
|
||||
<tiles:insertAttribute name="title" ignore="true"/>
|
||||
</title>
|
||||
<script src="<c:url value='/js/jquery-3.5.1.min.js' />"></script>
|
||||
<script src="<c:url value='/js/jquery-ui.min.js' />"></script>
|
||||
<script src="<c:url value="/js/bootstrap-5.1.3-dist/js/bootstrap.bundle.min.js"/>"></script>
|
||||
</head>
|
||||
<body class="htmlBody">
|
||||
<div id="wrap">
|
||||
<tiles:insertAttribute name="header"/>
|
||||
<tiles:insertAttribute name="left"/>
|
||||
<section class="section overflow-auto">
|
||||
<tiles:insertAttribute name="center"/>
|
||||
</section>
|
||||
<tiles:insertAttribute name="header"/>
|
||||
<tiles:insertAttribute name="left"/>
|
||||
<section class="section overflow-auto">
|
||||
<tiles:insertAttribute name="center"/>
|
||||
</section>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -0,0 +1,485 @@
|
|||
/*!
|
||||
* Bootstrap Reboot v5.1.3 (https://getbootstrap.com/)
|
||||
* Copyright 2011-2021 The Bootstrap Authors
|
||||
* Copyright 2011-2021 Twitter, Inc.
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
||||
* Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
|
||||
*/
|
||||
:root {
|
||||
--bs-blue: #0d6efd;
|
||||
--bs-indigo: #6610f2;
|
||||
--bs-purple: #6f42c1;
|
||||
--bs-pink: #d63384;
|
||||
--bs-red: #dc3545;
|
||||
--bs-orange: #fd7e14;
|
||||
--bs-yellow: #ffc107;
|
||||
--bs-green: #198754;
|
||||
--bs-teal: #20c997;
|
||||
--bs-cyan: #0dcaf0;
|
||||
--bs-white: #fff;
|
||||
--bs-gray: #6c757d;
|
||||
--bs-gray-dark: #343a40;
|
||||
--bs-gray-100: #f8f9fa;
|
||||
--bs-gray-200: #e9ecef;
|
||||
--bs-gray-300: #dee2e6;
|
||||
--bs-gray-400: #ced4da;
|
||||
--bs-gray-500: #adb5bd;
|
||||
--bs-gray-600: #6c757d;
|
||||
--bs-gray-700: #495057;
|
||||
--bs-gray-800: #343a40;
|
||||
--bs-gray-900: #212529;
|
||||
--bs-primary: #0d6efd;
|
||||
--bs-secondary: #6c757d;
|
||||
--bs-success: #198754;
|
||||
--bs-info: #0dcaf0;
|
||||
--bs-warning: #ffc107;
|
||||
--bs-danger: #dc3545;
|
||||
--bs-light: #f8f9fa;
|
||||
--bs-dark: #212529;
|
||||
--bs-primary-rgb: 13, 110, 253;
|
||||
--bs-secondary-rgb: 108, 117, 125;
|
||||
--bs-success-rgb: 25, 135, 84;
|
||||
--bs-info-rgb: 13, 202, 240;
|
||||
--bs-warning-rgb: 255, 193, 7;
|
||||
--bs-danger-rgb: 220, 53, 69;
|
||||
--bs-light-rgb: 248, 249, 250;
|
||||
--bs-dark-rgb: 33, 37, 41;
|
||||
--bs-white-rgb: 255, 255, 255;
|
||||
--bs-black-rgb: 0, 0, 0;
|
||||
--bs-body-color-rgb: 33, 37, 41;
|
||||
--bs-body-bg-rgb: 255, 255, 255;
|
||||
--bs-font-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
|
||||
--bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
|
||||
--bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));
|
||||
--bs-body-font-family: var(--bs-font-sans-serif);
|
||||
--bs-body-font-size: 1rem;
|
||||
--bs-body-font-weight: 400;
|
||||
--bs-body-line-height: 1.5;
|
||||
--bs-body-color: #212529;
|
||||
--bs-body-bg: #fff;
|
||||
}
|
||||
|
||||
*,
|
||||
*::before,
|
||||
*::after {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
@media (prefers-reduced-motion: no-preference) {
|
||||
:root {
|
||||
scroll-behavior: smooth;
|
||||
}
|
||||
}
|
||||
|
||||
body {
|
||||
margin: 0;
|
||||
font-family: var(--bs-body-font-family);
|
||||
font-size: var(--bs-body-font-size);
|
||||
font-weight: var(--bs-body-font-weight);
|
||||
line-height: var(--bs-body-line-height);
|
||||
color: var(--bs-body-color);
|
||||
text-align: var(--bs-body-text-align);
|
||||
background-color: var(--bs-body-bg);
|
||||
-webkit-text-size-adjust: 100%;
|
||||
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
|
||||
}
|
||||
|
||||
hr {
|
||||
margin: 1rem 0;
|
||||
color: inherit;
|
||||
background-color: currentColor;
|
||||
border: 0;
|
||||
opacity: 0.25;
|
||||
}
|
||||
|
||||
hr:not([size]) {
|
||||
height: 1px;
|
||||
}
|
||||
|
||||
h6, h5, h4, h3, h2, h1 {
|
||||
margin-top: 0;
|
||||
margin-bottom: 0.5rem;
|
||||
font-weight: 500;
|
||||
line-height: 1.2;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: calc(1.375rem + 1.5vw);
|
||||
}
|
||||
@media (min-width: 1200px) {
|
||||
h1 {
|
||||
font-size: 2.5rem;
|
||||
}
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: calc(1.325rem + 0.9vw);
|
||||
}
|
||||
@media (min-width: 1200px) {
|
||||
h2 {
|
||||
font-size: 2rem;
|
||||
}
|
||||
}
|
||||
|
||||
h3 {
|
||||
font-size: calc(1.3rem + 0.6vw);
|
||||
}
|
||||
@media (min-width: 1200px) {
|
||||
h3 {
|
||||
font-size: 1.75rem;
|
||||
}
|
||||
}
|
||||
|
||||
h4 {
|
||||
font-size: calc(1.275rem + 0.3vw);
|
||||
}
|
||||
@media (min-width: 1200px) {
|
||||
h4 {
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
}
|
||||
|
||||
h5 {
|
||||
font-size: 1.25rem;
|
||||
}
|
||||
|
||||
h6 {
|
||||
font-size: 1rem;
|
||||
}
|
||||
|
||||
p {
|
||||
margin-top: 0;
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
abbr[title],
|
||||
abbr[data-bs-original-title] {
|
||||
-webkit-text-decoration: underline dotted;
|
||||
text-decoration: underline dotted;
|
||||
cursor: help;
|
||||
-webkit-text-decoration-skip-ink: none;
|
||||
text-decoration-skip-ink: none;
|
||||
}
|
||||
|
||||
address {
|
||||
margin-bottom: 1rem;
|
||||
font-style: normal;
|
||||
line-height: inherit;
|
||||
}
|
||||
|
||||
ol,
|
||||
ul {
|
||||
padding-left: 2rem;
|
||||
}
|
||||
|
||||
ol,
|
||||
ul,
|
||||
dl {
|
||||
margin-top: 0;
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
ol ol,
|
||||
ul ul,
|
||||
ol ul,
|
||||
ul ol {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
dt {
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
dd {
|
||||
margin-bottom: 0.5rem;
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
blockquote {
|
||||
margin: 0 0 1rem;
|
||||
}
|
||||
|
||||
b,
|
||||
strong {
|
||||
font-weight: bolder;
|
||||
}
|
||||
|
||||
small {
|
||||
font-size: 0.875em;
|
||||
}
|
||||
|
||||
mark {
|
||||
padding: 0.2em;
|
||||
background-color: #fcf8e3;
|
||||
}
|
||||
|
||||
sub,
|
||||
sup {
|
||||
position: relative;
|
||||
font-size: 0.75em;
|
||||
line-height: 0;
|
||||
vertical-align: baseline;
|
||||
}
|
||||
|
||||
sub {
|
||||
bottom: -0.25em;
|
||||
}
|
||||
|
||||
sup {
|
||||
top: -0.5em;
|
||||
}
|
||||
|
||||
a {
|
||||
color: #0d6efd;
|
||||
text-decoration: underline;
|
||||
}
|
||||
a:hover {
|
||||
color: #0a58ca;
|
||||
}
|
||||
|
||||
a:not([href]):not([class]), a:not([href]):not([class]):hover {
|
||||
color: inherit;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
pre,
|
||||
code,
|
||||
kbd,
|
||||
samp {
|
||||
font-family: var(--bs-font-monospace);
|
||||
font-size: 1em;
|
||||
direction: ltr /* rtl:ignore */;
|
||||
unicode-bidi: bidi-override;
|
||||
}
|
||||
|
||||
pre {
|
||||
display: block;
|
||||
margin-top: 0;
|
||||
margin-bottom: 1rem;
|
||||
overflow: auto;
|
||||
font-size: 0.875em;
|
||||
}
|
||||
pre code {
|
||||
font-size: inherit;
|
||||
color: inherit;
|
||||
word-break: normal;
|
||||
}
|
||||
|
||||
code {
|
||||
font-size: 0.875em;
|
||||
color: #d63384;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
a > code {
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
kbd {
|
||||
padding: 0.2rem 0.4rem;
|
||||
font-size: 0.875em;
|
||||
color: #fff;
|
||||
background-color: #212529;
|
||||
border-radius: 0.2rem;
|
||||
}
|
||||
kbd kbd {
|
||||
padding: 0;
|
||||
font-size: 1em;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
figure {
|
||||
margin: 0 0 1rem;
|
||||
}
|
||||
|
||||
img,
|
||||
svg {
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
table {
|
||||
caption-side: bottom;
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
caption {
|
||||
padding-top: 0.5rem;
|
||||
padding-bottom: 0.5rem;
|
||||
color: #6c757d;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
th {
|
||||
text-align: inherit;
|
||||
text-align: -webkit-match-parent;
|
||||
}
|
||||
|
||||
thead,
|
||||
tbody,
|
||||
tfoot,
|
||||
tr,
|
||||
td,
|
||||
th {
|
||||
border-color: inherit;
|
||||
border-style: solid;
|
||||
border-width: 0;
|
||||
}
|
||||
|
||||
label {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
button {
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
button:focus:not(:focus-visible) {
|
||||
outline: 0;
|
||||
}
|
||||
|
||||
input,
|
||||
button,
|
||||
select,
|
||||
optgroup,
|
||||
textarea {
|
||||
margin: 0;
|
||||
font-family: inherit;
|
||||
font-size: inherit;
|
||||
line-height: inherit;
|
||||
}
|
||||
|
||||
button,
|
||||
select {
|
||||
text-transform: none;
|
||||
}
|
||||
|
||||
[role=button] {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
select {
|
||||
word-wrap: normal;
|
||||
}
|
||||
select:disabled {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
[list]::-webkit-calendar-picker-indicator {
|
||||
display: none;
|
||||
}
|
||||
|
||||
button,
|
||||
[type=button],
|
||||
[type=reset],
|
||||
[type=submit] {
|
||||
-webkit-appearance: button;
|
||||
}
|
||||
button:not(:disabled),
|
||||
[type=button]:not(:disabled),
|
||||
[type=reset]:not(:disabled),
|
||||
[type=submit]:not(:disabled) {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
::-moz-focus-inner {
|
||||
padding: 0;
|
||||
border-style: none;
|
||||
}
|
||||
|
||||
textarea {
|
||||
resize: vertical;
|
||||
}
|
||||
|
||||
fieldset {
|
||||
min-width: 0;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
border: 0;
|
||||
}
|
||||
|
||||
legend {
|
||||
float: left;
|
||||
width: 100%;
|
||||
padding: 0;
|
||||
margin-bottom: 0.5rem;
|
||||
font-size: calc(1.275rem + 0.3vw);
|
||||
line-height: inherit;
|
||||
}
|
||||
@media (min-width: 1200px) {
|
||||
legend {
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
}
|
||||
legend + * {
|
||||
clear: left;
|
||||
}
|
||||
|
||||
::-webkit-datetime-edit-fields-wrapper,
|
||||
::-webkit-datetime-edit-text,
|
||||
::-webkit-datetime-edit-minute,
|
||||
::-webkit-datetime-edit-hour-field,
|
||||
::-webkit-datetime-edit-day-field,
|
||||
::-webkit-datetime-edit-month-field,
|
||||
::-webkit-datetime-edit-year-field {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
::-webkit-inner-spin-button {
|
||||
height: auto;
|
||||
}
|
||||
|
||||
[type=search] {
|
||||
outline-offset: -2px;
|
||||
-webkit-appearance: textfield;
|
||||
}
|
||||
|
||||
/* rtl:raw:
|
||||
[type="tel"],
|
||||
[type="url"],
|
||||
[type="email"],
|
||||
[type="number"] {
|
||||
direction: ltr;
|
||||
}
|
||||
*/
|
||||
::-webkit-search-decoration {
|
||||
-webkit-appearance: none;
|
||||
}
|
||||
|
||||
::-webkit-color-swatch-wrapper {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
::-webkit-file-upload-button {
|
||||
font: inherit;
|
||||
}
|
||||
|
||||
::file-selector-button {
|
||||
font: inherit;
|
||||
}
|
||||
|
||||
::-webkit-file-upload-button {
|
||||
font: inherit;
|
||||
-webkit-appearance: button;
|
||||
}
|
||||
|
||||
output {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
iframe {
|
||||
border: 0;
|
||||
}
|
||||
|
||||
summary {
|
||||
display: list-item;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
progress {
|
||||
vertical-align: baseline;
|
||||
}
|
||||
|
||||
[hidden] {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
/*# sourceMappingURL=bootstrap-reboot.css.map */
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -0,0 +1,482 @@
|
|||
/*!
|
||||
* Bootstrap Reboot v5.1.3 (https://getbootstrap.com/)
|
||||
* Copyright 2011-2021 The Bootstrap Authors
|
||||
* Copyright 2011-2021 Twitter, Inc.
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
||||
* Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
|
||||
*/
|
||||
:root {
|
||||
--bs-blue: #0d6efd;
|
||||
--bs-indigo: #6610f2;
|
||||
--bs-purple: #6f42c1;
|
||||
--bs-pink: #d63384;
|
||||
--bs-red: #dc3545;
|
||||
--bs-orange: #fd7e14;
|
||||
--bs-yellow: #ffc107;
|
||||
--bs-green: #198754;
|
||||
--bs-teal: #20c997;
|
||||
--bs-cyan: #0dcaf0;
|
||||
--bs-white: #fff;
|
||||
--bs-gray: #6c757d;
|
||||
--bs-gray-dark: #343a40;
|
||||
--bs-gray-100: #f8f9fa;
|
||||
--bs-gray-200: #e9ecef;
|
||||
--bs-gray-300: #dee2e6;
|
||||
--bs-gray-400: #ced4da;
|
||||
--bs-gray-500: #adb5bd;
|
||||
--bs-gray-600: #6c757d;
|
||||
--bs-gray-700: #495057;
|
||||
--bs-gray-800: #343a40;
|
||||
--bs-gray-900: #212529;
|
||||
--bs-primary: #0d6efd;
|
||||
--bs-secondary: #6c757d;
|
||||
--bs-success: #198754;
|
||||
--bs-info: #0dcaf0;
|
||||
--bs-warning: #ffc107;
|
||||
--bs-danger: #dc3545;
|
||||
--bs-light: #f8f9fa;
|
||||
--bs-dark: #212529;
|
||||
--bs-primary-rgb: 13, 110, 253;
|
||||
--bs-secondary-rgb: 108, 117, 125;
|
||||
--bs-success-rgb: 25, 135, 84;
|
||||
--bs-info-rgb: 13, 202, 240;
|
||||
--bs-warning-rgb: 255, 193, 7;
|
||||
--bs-danger-rgb: 220, 53, 69;
|
||||
--bs-light-rgb: 248, 249, 250;
|
||||
--bs-dark-rgb: 33, 37, 41;
|
||||
--bs-white-rgb: 255, 255, 255;
|
||||
--bs-black-rgb: 0, 0, 0;
|
||||
--bs-body-color-rgb: 33, 37, 41;
|
||||
--bs-body-bg-rgb: 255, 255, 255;
|
||||
--bs-font-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
|
||||
--bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
|
||||
--bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));
|
||||
--bs-body-font-family: var(--bs-font-sans-serif);
|
||||
--bs-body-font-size: 1rem;
|
||||
--bs-body-font-weight: 400;
|
||||
--bs-body-line-height: 1.5;
|
||||
--bs-body-color: #212529;
|
||||
--bs-body-bg: #fff;
|
||||
}
|
||||
|
||||
*,
|
||||
*::before,
|
||||
*::after {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
@media (prefers-reduced-motion: no-preference) {
|
||||
:root {
|
||||
scroll-behavior: smooth;
|
||||
}
|
||||
}
|
||||
|
||||
body {
|
||||
margin: 0;
|
||||
font-family: var(--bs-body-font-family);
|
||||
font-size: var(--bs-body-font-size);
|
||||
font-weight: var(--bs-body-font-weight);
|
||||
line-height: var(--bs-body-line-height);
|
||||
color: var(--bs-body-color);
|
||||
text-align: var(--bs-body-text-align);
|
||||
background-color: var(--bs-body-bg);
|
||||
-webkit-text-size-adjust: 100%;
|
||||
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
|
||||
}
|
||||
|
||||
hr {
|
||||
margin: 1rem 0;
|
||||
color: inherit;
|
||||
background-color: currentColor;
|
||||
border: 0;
|
||||
opacity: 0.25;
|
||||
}
|
||||
|
||||
hr:not([size]) {
|
||||
height: 1px;
|
||||
}
|
||||
|
||||
h6, h5, h4, h3, h2, h1 {
|
||||
margin-top: 0;
|
||||
margin-bottom: 0.5rem;
|
||||
font-weight: 500;
|
||||
line-height: 1.2;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: calc(1.375rem + 1.5vw);
|
||||
}
|
||||
@media (min-width: 1200px) {
|
||||
h1 {
|
||||
font-size: 2.5rem;
|
||||
}
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: calc(1.325rem + 0.9vw);
|
||||
}
|
||||
@media (min-width: 1200px) {
|
||||
h2 {
|
||||
font-size: 2rem;
|
||||
}
|
||||
}
|
||||
|
||||
h3 {
|
||||
font-size: calc(1.3rem + 0.6vw);
|
||||
}
|
||||
@media (min-width: 1200px) {
|
||||
h3 {
|
||||
font-size: 1.75rem;
|
||||
}
|
||||
}
|
||||
|
||||
h4 {
|
||||
font-size: calc(1.275rem + 0.3vw);
|
||||
}
|
||||
@media (min-width: 1200px) {
|
||||
h4 {
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
}
|
||||
|
||||
h5 {
|
||||
font-size: 1.25rem;
|
||||
}
|
||||
|
||||
h6 {
|
||||
font-size: 1rem;
|
||||
}
|
||||
|
||||
p {
|
||||
margin-top: 0;
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
abbr[title],
|
||||
abbr[data-bs-original-title] {
|
||||
-webkit-text-decoration: underline dotted;
|
||||
text-decoration: underline dotted;
|
||||
cursor: help;
|
||||
-webkit-text-decoration-skip-ink: none;
|
||||
text-decoration-skip-ink: none;
|
||||
}
|
||||
|
||||
address {
|
||||
margin-bottom: 1rem;
|
||||
font-style: normal;
|
||||
line-height: inherit;
|
||||
}
|
||||
|
||||
ol,
|
||||
ul {
|
||||
padding-right: 2rem;
|
||||
}
|
||||
|
||||
ol,
|
||||
ul,
|
||||
dl {
|
||||
margin-top: 0;
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
ol ol,
|
||||
ul ul,
|
||||
ol ul,
|
||||
ul ol {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
dt {
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
dd {
|
||||
margin-bottom: 0.5rem;
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
blockquote {
|
||||
margin: 0 0 1rem;
|
||||
}
|
||||
|
||||
b,
|
||||
strong {
|
||||
font-weight: bolder;
|
||||
}
|
||||
|
||||
small {
|
||||
font-size: 0.875em;
|
||||
}
|
||||
|
||||
mark {
|
||||
padding: 0.2em;
|
||||
background-color: #fcf8e3;
|
||||
}
|
||||
|
||||
sub,
|
||||
sup {
|
||||
position: relative;
|
||||
font-size: 0.75em;
|
||||
line-height: 0;
|
||||
vertical-align: baseline;
|
||||
}
|
||||
|
||||
sub {
|
||||
bottom: -0.25em;
|
||||
}
|
||||
|
||||
sup {
|
||||
top: -0.5em;
|
||||
}
|
||||
|
||||
a {
|
||||
color: #0d6efd;
|
||||
text-decoration: underline;
|
||||
}
|
||||
a:hover {
|
||||
color: #0a58ca;
|
||||
}
|
||||
|
||||
a:not([href]):not([class]), a:not([href]):not([class]):hover {
|
||||
color: inherit;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
pre,
|
||||
code,
|
||||
kbd,
|
||||
samp {
|
||||
font-family: var(--bs-font-monospace);
|
||||
font-size: 1em;
|
||||
direction: ltr ;
|
||||
unicode-bidi: bidi-override;
|
||||
}
|
||||
|
||||
pre {
|
||||
display: block;
|
||||
margin-top: 0;
|
||||
margin-bottom: 1rem;
|
||||
overflow: auto;
|
||||
font-size: 0.875em;
|
||||
}
|
||||
pre code {
|
||||
font-size: inherit;
|
||||
color: inherit;
|
||||
word-break: normal;
|
||||
}
|
||||
|
||||
code {
|
||||
font-size: 0.875em;
|
||||
color: #d63384;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
a > code {
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
kbd {
|
||||
padding: 0.2rem 0.4rem;
|
||||
font-size: 0.875em;
|
||||
color: #fff;
|
||||
background-color: #212529;
|
||||
border-radius: 0.2rem;
|
||||
}
|
||||
kbd kbd {
|
||||
padding: 0;
|
||||
font-size: 1em;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
figure {
|
||||
margin: 0 0 1rem;
|
||||
}
|
||||
|
||||
img,
|
||||
svg {
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
table {
|
||||
caption-side: bottom;
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
caption {
|
||||
padding-top: 0.5rem;
|
||||
padding-bottom: 0.5rem;
|
||||
color: #6c757d;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
th {
|
||||
text-align: inherit;
|
||||
text-align: -webkit-match-parent;
|
||||
}
|
||||
|
||||
thead,
|
||||
tbody,
|
||||
tfoot,
|
||||
tr,
|
||||
td,
|
||||
th {
|
||||
border-color: inherit;
|
||||
border-style: solid;
|
||||
border-width: 0;
|
||||
}
|
||||
|
||||
label {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
button {
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
button:focus:not(:focus-visible) {
|
||||
outline: 0;
|
||||
}
|
||||
|
||||
input,
|
||||
button,
|
||||
select,
|
||||
optgroup,
|
||||
textarea {
|
||||
margin: 0;
|
||||
font-family: inherit;
|
||||
font-size: inherit;
|
||||
line-height: inherit;
|
||||
}
|
||||
|
||||
button,
|
||||
select {
|
||||
text-transform: none;
|
||||
}
|
||||
|
||||
[role=button] {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
select {
|
||||
word-wrap: normal;
|
||||
}
|
||||
select:disabled {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
[list]::-webkit-calendar-picker-indicator {
|
||||
display: none;
|
||||
}
|
||||
|
||||
button,
|
||||
[type=button],
|
||||
[type=reset],
|
||||
[type=submit] {
|
||||
-webkit-appearance: button;
|
||||
}
|
||||
button:not(:disabled),
|
||||
[type=button]:not(:disabled),
|
||||
[type=reset]:not(:disabled),
|
||||
[type=submit]:not(:disabled) {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
::-moz-focus-inner {
|
||||
padding: 0;
|
||||
border-style: none;
|
||||
}
|
||||
|
||||
textarea {
|
||||
resize: vertical;
|
||||
}
|
||||
|
||||
fieldset {
|
||||
min-width: 0;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
border: 0;
|
||||
}
|
||||
|
||||
legend {
|
||||
float: right;
|
||||
width: 100%;
|
||||
padding: 0;
|
||||
margin-bottom: 0.5rem;
|
||||
font-size: calc(1.275rem + 0.3vw);
|
||||
line-height: inherit;
|
||||
}
|
||||
@media (min-width: 1200px) {
|
||||
legend {
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
}
|
||||
legend + * {
|
||||
clear: right;
|
||||
}
|
||||
|
||||
::-webkit-datetime-edit-fields-wrapper,
|
||||
::-webkit-datetime-edit-text,
|
||||
::-webkit-datetime-edit-minute,
|
||||
::-webkit-datetime-edit-hour-field,
|
||||
::-webkit-datetime-edit-day-field,
|
||||
::-webkit-datetime-edit-month-field,
|
||||
::-webkit-datetime-edit-year-field {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
::-webkit-inner-spin-button {
|
||||
height: auto;
|
||||
}
|
||||
|
||||
[type=search] {
|
||||
outline-offset: -2px;
|
||||
-webkit-appearance: textfield;
|
||||
}
|
||||
|
||||
[type="tel"],
|
||||
[type="url"],
|
||||
[type="email"],
|
||||
[type="number"] {
|
||||
direction: ltr;
|
||||
}
|
||||
::-webkit-search-decoration {
|
||||
-webkit-appearance: none;
|
||||
}
|
||||
|
||||
::-webkit-color-swatch-wrapper {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
::-webkit-file-upload-button {
|
||||
font: inherit;
|
||||
}
|
||||
|
||||
::file-selector-button {
|
||||
font: inherit;
|
||||
}
|
||||
|
||||
::-webkit-file-upload-button {
|
||||
font: inherit;
|
||||
-webkit-appearance: button;
|
||||
}
|
||||
|
||||
output {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
iframe {
|
||||
border: 0;
|
||||
}
|
||||
|
||||
summary {
|
||||
display: list-item;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
progress {
|
||||
vertical-align: baseline;
|
||||
}
|
||||
|
||||
[hidden] {
|
||||
display: none !important;
|
||||
}
|
||||
/*# sourceMappingURL=bootstrap-reboot.rtl.css.map */
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -2154,11 +2154,6 @@ progress {
|
|||
margin-bottom: 0.5rem;
|
||||
}
|
||||
|
||||
.col-form-label-warning{
|
||||
margin-bottom: 0.5rem;
|
||||
color: #ffc107;
|
||||
}
|
||||
|
||||
.col-form-label {
|
||||
padding-top: calc(0.375rem + 1px);
|
||||
padding-bottom: calc(0.375rem + 1px);
|
||||
|
|
@ -2468,7 +2463,6 @@ textarea.form-control-lg {
|
|||
.form-check .form-check-input {
|
||||
float: left;
|
||||
margin-left: -1.5em;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.form-check-input {
|
||||
|
|
@ -3977,14 +3971,14 @@ textarea.form-control-lg {
|
|||
}
|
||||
|
||||
.nav-pills .nav-link {
|
||||
background: #ffffff;
|
||||
border: #34383c;
|
||||
background: none;
|
||||
border: 0;
|
||||
border-radius: 0.25rem;
|
||||
}
|
||||
.nav-pills .nav-link.active,
|
||||
.nav-pills .show > .nav-link {
|
||||
color: #fff;
|
||||
background-color: #337ab7;
|
||||
background-color: #0d6efd;
|
||||
}
|
||||
|
||||
.nav-fill > .nav-link,
|
||||
|
|
@ -4503,44 +4497,6 @@ textarea.form-control-lg {
|
|||
border: 1px solid rgba(0, 0, 0, 0.125);
|
||||
border-radius: 0.25rem;
|
||||
}
|
||||
|
||||
.card-warning {
|
||||
position: relative;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
min-width: 0;
|
||||
word-wrap: break-word;
|
||||
background-color: #eea236;
|
||||
background-clip: border-box;
|
||||
border: 1px solid rgba(0, 0, 0, 0.125);
|
||||
border-radius: 0.25rem;
|
||||
}
|
||||
|
||||
.card-success {
|
||||
position: relative;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
min-width: 0;
|
||||
word-wrap: break-word;
|
||||
background-color: #5cb85c;
|
||||
background-clip: border-box;
|
||||
border: 1px solid rgba(0, 0, 0, 0.125);
|
||||
border-radius: 0.25rem;
|
||||
|
||||
}
|
||||
|
||||
.card-default {
|
||||
position: relative;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
min-width: 0;
|
||||
word-wrap: break-word;
|
||||
background-color: #bb2d3b;
|
||||
background-clip: border-box;
|
||||
border: 1px solid rgba(0, 0, 0, 0.125);
|
||||
border-radius: 0.25rem;
|
||||
}
|
||||
|
||||
.card > hr {
|
||||
margin-right: 0;
|
||||
margin-left: 0;
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -39,8 +39,6 @@ a {
|
|||
}
|
||||
|
||||
.header_title {
|
||||
float: left;
|
||||
width: 50%;
|
||||
color: #fff;
|
||||
font-size: 24px;
|
||||
font-weight: bold;
|
||||
|
|
@ -55,10 +53,7 @@ a {
|
|||
}
|
||||
|
||||
.header_info {
|
||||
width: 50%;
|
||||
height: 100%;
|
||||
float: left;
|
||||
text-align: right;
|
||||
padding: 20px;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
|
@ -74,6 +69,11 @@ a {
|
|||
margin-top: 70px;
|
||||
margin-left: 200px;
|
||||
}
|
||||
@media (max-width: 576px){
|
||||
.section {
|
||||
margin-left: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.loginWrap {
|
||||
width: 400px;
|
||||
|
|
@ -716,3 +716,45 @@ a {
|
|||
input[type=checkbox]:disabled:checked {
|
||||
outline : solid 2px gray;
|
||||
}
|
||||
|
||||
.col-form-label-warning{
|
||||
margin-bottom: 0.5rem;
|
||||
color: #ffc107;
|
||||
}
|
||||
|
||||
.card-warning {
|
||||
position: relative;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
min-width: 0;
|
||||
word-wrap: break-word;
|
||||
background-color: #eea236;
|
||||
background-clip: border-box;
|
||||
border: 1px solid rgba(0, 0, 0, 0.125);
|
||||
border-radius: 0.25rem;
|
||||
}
|
||||
|
||||
.card-success {
|
||||
position: relative;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
min-width: 0;
|
||||
word-wrap: break-word;
|
||||
background-color: #5cb85c;
|
||||
background-clip: border-box;
|
||||
border: 1px solid rgba(0, 0, 0, 0.125);
|
||||
border-radius: 0.25rem;
|
||||
|
||||
}
|
||||
|
||||
.card-default {
|
||||
position: relative;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
min-width: 0;
|
||||
word-wrap: break-word;
|
||||
background-color: #bb2d3b;
|
||||
background-clip: border-box;
|
||||
border: 1px solid rgba(0, 0, 0, 0.125);
|
||||
border-radius: 0.25rem;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,16 +1,30 @@
|
|||
$(function (){
|
||||
google.charts.load('current', {packages: ['corechart', 'line']});
|
||||
google.charts.load('current', {packages: ['bar']});
|
||||
google.charts.setOnLoadCallback(drawMapUseFromDayChart);
|
||||
google.charts.load('current', {packages: ['corechart']});
|
||||
google.charts.setOnLoadCallback(drawAreaDonutChart);
|
||||
google.charts.load('current', {packages:['line']});
|
||||
google.charts.setOnLoadCallback(drawTempChart);
|
||||
})
|
||||
|
||||
function drawMapUseFromDayChart() {
|
||||
var dataHeader = [['날짜', '사용량']];
|
||||
var chartData = google.visualization.arrayToDataTable(dataHeader.concat(dayMapUseDataList));
|
||||
|
||||
var view = new google.visualization.DataView(chartData);
|
||||
view.setColumns([0, 1,
|
||||
{ calc: "stringify",
|
||||
sourceColumn: 1,
|
||||
type: "string",
|
||||
role: "annotation" }]);
|
||||
|
||||
var options = {
|
||||
legend: { position: 'bottom' }
|
||||
bar: {groupWidth: "80%"},
|
||||
legend: { position: "bottom" },
|
||||
};
|
||||
var chart = new google.visualization.LineChart(document.getElementById('mapUseFromDayChart'));
|
||||
chart.draw(chartData, options);
|
||||
var chart = new google.charts.Bar(document.getElementById("mapUseFromDayChart"));
|
||||
chart.draw(view, google.charts.Bar.convertOptions(options));
|
||||
|
||||
/*$.ajax({
|
||||
url: "/admin/dayMapUseData",
|
||||
type: "GET",
|
||||
|
|
@ -34,4 +48,55 @@ function drawMapUseFromDayChart() {
|
|||
|
||||
}
|
||||
});*/
|
||||
}
|
||||
|
||||
function drawAreaDonutChart() {
|
||||
var dataHeader = [['지역', '수집 건 수']];
|
||||
var data = google.visualization.arrayToDataTable(dataHeader.concat(areaDataList));
|
||||
|
||||
var options = {
|
||||
pieHole: 0.4,
|
||||
};
|
||||
|
||||
var chart = new google.visualization.PieChart(document.getElementById('areaDonutChart'));
|
||||
chart.draw(data, options);
|
||||
}
|
||||
|
||||
function drawTempChart() {
|
||||
var data = new google.visualization.DataTable();
|
||||
data.addColumn('number', 'param01');
|
||||
data.addColumn('number', 'value01');
|
||||
data.addColumn('number', 'value02');
|
||||
|
||||
data.addRows([
|
||||
[1, 37.8, 55.8],
|
||||
[2, 30.9, 42.5],
|
||||
[3, 25.4, 37],
|
||||
[4, 11.7, 18.8],
|
||||
[5, 11.9, 17.6],
|
||||
[6, 8.8, 13.6],
|
||||
[7, 7.6, 12.3],
|
||||
[8, 12.3, 21.2],
|
||||
[9, 16.9, 32.9],
|
||||
[10, 12.8, 23.9],
|
||||
[11, 5.3, 7.9],
|
||||
[12, 6.6, 8.4],
|
||||
[13, 4.8, 6.3],
|
||||
[14, 4.2, 6.2]
|
||||
]);
|
||||
|
||||
var options = {
|
||||
// chart: {
|
||||
// title: '빈자리 메꿀 그래프',
|
||||
// },
|
||||
// axes: {
|
||||
// x: {
|
||||
// 0: {side: 'top'}
|
||||
// }
|
||||
// }
|
||||
};
|
||||
|
||||
var chart = new google.charts.Line(document.getElementById('tempLineChart'));
|
||||
|
||||
chart.draw(data, google.charts.Line.convertOptions(options));
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue