thkim 2025-11-05 19:35:02 +09:00
commit 60cdaae017
23 changed files with 440 additions and 79 deletions

View File

@ -30,6 +30,8 @@ public interface GeoinfoApiV1Mapper {
// 프로젝트 정보 (Project Info) // 프로젝트 정보 (Project Info)
// ================================================================================================== // ==================================================================================================
/** API ON/OFF 처리를 위한 활성상태 조회 처리 */
public String selectApiActiveYn(String spNamep) throws SQLException;
public ArrayList<EgovMap> spGetTblProjectInfo(HashMap<String, Object> params) throws SQLException; public ArrayList<EgovMap> spGetTblProjectInfo(HashMap<String, Object> params) throws SQLException;
public int spCntTblProjectInfo(HashMap<String, Object> params) throws SQLException; public int spCntTblProjectInfo(HashMap<String, Object> params) throws SQLException;
public ArrayList<EgovMap> spGetSelectclassInfoP(HashMap<String, Object> params) throws SQLException; public ArrayList<EgovMap> spGetSelectclassInfoP(HashMap<String, Object> params) throws SQLException;

View File

@ -36,6 +36,17 @@ public class GeoinfoApiV1ServiceImpl implements GeoinfoApiV1Service {
//호출 프로시저 유효성 체크 //호출 프로시저 유효성 체크
spName = spName.trim(); spName = spName.trim();
// API ACTIVE_YN 판별하여 'N'일 경우 일시중단상태.
String apiStatus = geoinfoApiV1Mapper.selectApiActiveYn(spName);
if (apiStatus != null && "N".equals(apiStatus)) {
// 성공 응답 기본값 설정
jsonResponse.put("resultCode", 0);
jsonResponse.put("result", "true");
jsonResponse.put("message", "DISABLE");
// 성공 코드 반환
return 0;
}
// 서비스 이름에 따라 분기 처리 // 서비스 이름에 따라 분기 처리
if ("sp-get-tbl-project-info".equalsIgnoreCase(spName)) { if ("sp-get-tbl-project-info".equalsIgnoreCase(spName)) {

View File

@ -0,0 +1,58 @@
package geoinfo.main.api;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;
import geoinfo.util.KeyGenerator;
import ictway.comm.util.parseData;
import ictway.comm.util.strUtil;
@Controller
public class ApiController {
Logger log = Logger.getLogger(this.getClass());
/*
* > API
*/
@RequestMapping(value = "apiKey.do")
public ModelAndView goApiKeyPage(ModelAndView model, @RequestParam HashMap<String, Object> params) throws Exception {
model.setViewName("body/api/apiKey");
return model;
}
@RequestMapping(value = "createApiKey.do")
@ResponseBody
public Map<String, Object> UserApiInfo(HttpServletRequest request, HttpServletResponse response, @RequestParam HashMap<String, Object> params) {
Map<String, Object> resultMap = new HashMap<>();
strUtil sUtil = new strUtil();
String userType = sUtil.checkNull(parseData.parseData((String)params.get("userType")));
String apiKey = KeyGenerator.generateUniqueKey();
System.out.println("Generated apiKey ==>" + apiKey);
log.info("apiKey ==> " + apiKey);
log.info("userType ==> " + userType);
resultMap.put("code", "SUCCESS");
resultMap.put("msg", "API 신청이 완료됐습니다.");
resultMap.put("data",apiKey);
return resultMap;
}
}

View File

@ -372,6 +372,11 @@ public class MainController
eGovUrl = "faq.do"; eGovUrl = "faq.do";
mv.setViewName("home/main.jsp?url=/body/board/main"); mv.setViewName("home/main.jsp?url=/body/board/main");
} }
else if (url.equals("apiKey"))
{
eGovUrl = "apiKey.do";
mv.setViewName("home/main.jsp?url=/body/board/main");
}
else if (url.equals("join")) else if (url.equals("join"))
{ {
eGovUrl = "join.do"; eGovUrl = "join.do";

View File

@ -120,15 +120,16 @@ public class CompleteServiceImpl implements CompleteService {
params.put("sortDir", sortDir); params.put("sortDir", sortDir);
} }
int total = MyUtil.getIntegerFromObject(selectCompleteItemsCnt(params)).intValue();
Long pageSize = MyUtil.getLongFromObject( params.get("pageSize") ); Long pageSize = MyUtil.getLongFromObject( params.get("pageSize") );
if( pageSize == null ) { if( pageSize == null ) {
pageSize = 10l; // pageSize = 10l;
pageSize = (long) total; // 25.11.05(YJI) Kendo grid pager 'All' 처리
} }
PaginationInfo paginationInfo = new PaginationInfo(); PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setRecordCountPerPage(10); paginationInfo.setRecordCountPerPage(pageSize.intValue());
paginationInfo.setPageSize(pageSize.intValue()); paginationInfo.setPageSize(pageSize.intValue());
paginationInfo.setTotalRecordCount( MyUtil.getIntegerFromObject(selectCompleteItemsCnt(params)).intValue() ); paginationInfo.setTotalRecordCount( MyUtil.getIntegerFromObject(selectCompleteItemsCnt(params)).intValue() );

View File

@ -101,13 +101,15 @@ public class HoleCoordinateController {
@RequestMapping("/getHoleCoordList.do") @RequestMapping("/getHoleCoordList.do")
@ResponseBody @ResponseBody
public Map<String, Object> getHoleCoordList(HttpServletRequest request, HttpServletResponse response, @RequestParam HashMap<String, Object> params) throws Exception { public Map<String, Object> getHoleCoordList(HttpServletRequest request, HttpServletResponse response, @RequestParam HashMap<String, Object> params) throws Exception {
int nCls = MyUtil.getIntegerFromObject(request.getSession().getAttribute("CLS"));
int page = params.get("page").toString() != null ? Integer.parseInt(params.get("page").toString()) : 1; strUtil sUtil = new strUtil();
int pageSize = params.get("pageSize") != null ? Integer.parseInt((String)params.get("pageSize")) : 10; // 기본값 10 WebUtil wUtil = new WebUtil();
wUtil.topTabId = "manageCoordinate"; // 검수일때 tab 활성화 시켜주기 위해
String loginUserId = String.valueOf(request.getSession().getAttribute("USERID"));
// 정렬 필드/방향 처리 // 정렬 필드/방향 처리
String sortField = (String) params.get("sort[0][field]"); String sortField = sUtil.checkNull(parseData.parseData((String)params.get("sortField")));
String sortDir = (String) params.get("sort[0][dir]"); String sortDir = sUtil.checkNull(parseData.parseData((String)params.get("sortDir")));
// 기본 정렬 지정 (없을 경우) // 기본 정렬 지정 (없을 경우)
if (sortField == null || sortField.isEmpty()) sortField = "datetime"; if (sortField == null || sortField.isEmpty()) sortField = "datetime";
@ -117,11 +119,6 @@ public class HoleCoordinateController {
params.put("sortField", sortField); params.put("sortField", sortField);
params.put("sortDir", sortDir); params.put("sortDir", sortDir);
int nCls = MyUtil.getIntegerFromObject(request.getSession().getAttribute("CLS"));
strUtil sUtil = new strUtil();
WebUtil wUtil = new WebUtil();
wUtil.topTabId = "manageCoordinate"; // 검수일때 tab 활성화 시켜주기 위해
String loginUserId = String.valueOf(request.getSession().getAttribute("USERID"));
// request // request
String srchStartDate = sUtil.checkNull(parseData.parseData((String)params.get("startDate"))); String srchStartDate = sUtil.checkNull(parseData.parseData((String)params.get("startDate")));
String srchEndDate = sUtil.checkNull(parseData.parseData((String)params.get("endDate"))); String srchEndDate = sUtil.checkNull(parseData.parseData((String)params.get("endDate")));
@ -130,15 +127,14 @@ public class HoleCoordinateController {
String searchCreateName = sUtil.checkNull(parseData.parseData((String)params.get("searchCreateName"))); String searchCreateName = sUtil.checkNull(parseData.parseData((String)params.get("searchCreateName")));
params.put("loginUserId", loginUserId); params.put("loginUserId", loginUserId);
params.put("cls", nCls); params.put("cls", nCls);
int total = masterService.getDataListCount(params);
int page = params.get("page").toString() != null ? Integer.parseInt(params.get("page").toString()) : 1;
int pageSize = params.get("pageSize") != null ? Integer.parseInt((String)params.get("pageSize")) : total; // 기본값 10
params.put("startRow", ((page - 1) * pageSize) + 1); params.put("startRow", ((page - 1) * pageSize) + 1);
if (page > 1) {
params.put("endRow", (((page - 1) * pageSize) + 1) + pageSize - 1); // startRow + pageSize - 1 params.put("endRow", (((page - 1) * pageSize) + 1) + pageSize - 1); // startRow + pageSize - 1
} else {
params.put("endRow", 10);
}
List<?> items = masterService.getDataListPaging(params); List<?> items = masterService.getDataListPaging(params);
int total = masterService.getDataListCount(params);
Map<String, Object> result = new HashMap<>(); Map<String, Object> result = new HashMap<>();
result.put("items", items); result.put("items", items);

View File

@ -71,12 +71,9 @@ public class ListRegController {
//request //request
System.out.println("searchProjectName:"+request.getParameter("searchProjectName")); System.out.println("searchProjectName:"+request.getParameter("searchProjectName"));
int page = params.get("page").toString() != null ? Integer.parseInt(params.get("page").toString()) : 1;
int pageSize = params.get("pageSize") != null ? Integer.parseInt((String)params.get("pageSize")) : 10; // 기본값 10
// 정렬 필드/방향 처리 // 정렬 필드/방향 처리
String sortField = (String) params.get("sort[0][field]"); String sortField = sUtil.checkNull(parseData.parseData((String)params.get("sortField")));
String sortDir = (String) params.get("sort[0][dir]"); String sortDir = sUtil.checkNull(parseData.parseData((String)params.get("sortDir")));
// 기본 정렬 지정 (없을 경우) // 기본 정렬 지정 (없을 경우)
if (sortField == null || sortField.isEmpty()) sortField = "datetime"; if (sortField == null || sortField.isEmpty()) sortField = "datetime";
@ -85,16 +82,15 @@ public class ListRegController {
// MyBatis에 넣을 때는 깔끔하게 키 이름 정리 // MyBatis에 넣을 때는 깔끔하게 키 이름 정리
params.put("sortField", sortField); params.put("sortField", sortField);
params.put("sortDir", sortDir); params.put("sortDir", sortDir);
int total = masterService.getRegListCount(params);
int page = params.get("page").toString() != null ? Integer.parseInt(params.get("page").toString()) : 1;
int pageSize = params.get("pageSize") != null ? Integer.parseInt((String)params.get("pageSize")) : total; // 기본값 10
params.put("startRow", ((page - 1) * pageSize) + 1); params.put("startRow", ((page - 1) * pageSize) + 1);
if (page > 1) {
params.put("endRow", (((page - 1) * pageSize) + 1) + pageSize - 1); // startRow + pageSize - 1 params.put("endRow", (((page - 1) * pageSize) + 1) + pageSize - 1); // startRow + pageSize - 1
} else {
params.put("endRow", 10);
}
//data정보 //data정보
ArrayList result = masterService.getRegList(params); ArrayList result = masterService.getRegList(params);
int total = masterService.getRegListCount(params);
HashMap resultMap = new HashMap(); HashMap resultMap = new HashMap();
resultMap.put("dataList1", result); resultMap.put("dataList1", result);

View File

@ -113,12 +113,12 @@ public class ManageListController {
@ResponseBody @ResponseBody
public Map<String, Object> getManageList(HttpServletRequest request, HttpServletResponse response, @RequestParam HashMap<String, Object> params) throws Exception { public Map<String, Object> getManageList(HttpServletRequest request, HttpServletResponse response, @RequestParam HashMap<String, Object> params) throws Exception {
int page = params.get("page").toString() != null ? Integer.parseInt(params.get("page").toString()) : 1; int nCls = MyUtil.getIntegerFromObject(request.getSession().getAttribute("CLS"));
int pageSize = params.get("pageSize") != null ? Integer.parseInt((String)params.get("pageSize")) : 10; // 기본값 10 strUtil sUtil = new strUtil();
WebUtil wUtil = new WebUtil();
// 정렬 필드/방향 처리 // 정렬 필드/방향 처리
String sortField = (String) params.get("sort[0][field]"); String sortField = sUtil.checkNull(parseData.parseData((String)params.get("sortField")));
String sortDir = (String) params.get("sort[0][dir]"); String sortDir = sUtil.checkNull(parseData.parseData((String)params.get("sortDir")));
// 기본 정렬 지정 (없을 경우) // 기본 정렬 지정 (없을 경우)
if (sortField == null || sortField.isEmpty()) sortField = "datetime"; if (sortField == null || sortField.isEmpty()) sortField = "datetime";
@ -128,9 +128,6 @@ public class ManageListController {
params.put("sortField", sortField); params.put("sortField", sortField);
params.put("sortDir", sortDir); params.put("sortDir", sortDir);
int nCls = MyUtil.getIntegerFromObject(request.getSession().getAttribute("CLS"));
strUtil sUtil = new strUtil();
WebUtil wUtil = new WebUtil();
wUtil.topTabId = "manageCoordinate"; // 검수일때 tab 활성화 시켜주기 위해 wUtil.topTabId = "manageCoordinate"; // 검수일때 tab 활성화 시켜주기 위해
String loginUserId = String.valueOf(request.getSession().getAttribute("USERID")); String loginUserId = String.valueOf(request.getSession().getAttribute("USERID"));
// requestString srchReportType = sUtil.checkNull(parseData.parseData((String)params.get("searchReportType"))); // requestString srchReportType = sUtil.checkNull(parseData.parseData((String)params.get("searchReportType")));
@ -142,15 +139,14 @@ public class ManageListController {
params.put("loginUserId", loginUserId); params.put("loginUserId", loginUserId);
params.put("cls", nCls); params.put("cls", nCls);
int total = masterService.getDataListCount(params);
int page = params.get("page").toString() != null ? Integer.parseInt(params.get("page").toString()) : 1;
int pageSize = params.get("pageSize") != null ? Integer.parseInt((String)params.get("pageSize")) : total; // 기본값 10
params.put("startRow", ((page - 1) * pageSize) + 1); params.put("startRow", ((page - 1) * pageSize) + 1);
if (page > 1) {
params.put("endRow", (((page - 1) * pageSize) + 1) + pageSize - 1); // startRow + pageSize - 1 params.put("endRow", (((page - 1) * pageSize) + 1) + pageSize - 1); // startRow + pageSize - 1
} else {
params.put("endRow", 10);
}
List<?> items = masterService.getDataListPaging(params); List<?> items = masterService.getDataListPaging(params);
int total = masterService.getDataListCount(params);
Map<String, Object> result = new HashMap<>(); Map<String, Object> result = new HashMap<>();
result.put("items", items); result.put("items", items);

View File

@ -0,0 +1,77 @@
/*********************************************************************************
* : RsBox.java
* : 2005.02
* :
*---------------------------------------------------------------------------------
* : RsBox
* : JDBC Result Set Box Util
*---------------------------------------------------------------------------------
* :
*********************************************************************************/
package geoinfo.util;
import java.security.SecureRandom;
import java.util.*;
public class KeyGenerator {
/**
* ( + + )
*/
private static final String ALPHANUMERIC_CHARACTERS =
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
/**
*
*/
private static final int KEY_LENGTH = 43;
/**
* .
* .
*/
private static final SecureRandom secureRandom = new SecureRandom();
/**
* 43 .
*
* @return 43 /
*/
public static String generateUniqueKey() {
// Java 1.7에서는 StringBuilder가 더 효율적입니다.
// (StringBuffer는 스레드 안전성이 필요할 때 사용)
StringBuilder sb = new StringBuilder(KEY_LENGTH);
for (int i = 0; i < KEY_LENGTH; i++) {
// 0부터 (문자셋 길이 - 1) 사이의 랜덤 인덱스를 가져옵니다.
int randomIndex = secureRandom.nextInt(ALPHANUMERIC_CHARACTERS.length());
// 문자셋에서 해당 인덱스의 문자를 선택하여 추가합니다.
char randomChar = ALPHANUMERIC_CHARACTERS.charAt(randomIndex);
sb.append(randomChar);
}
return sb.toString();
}
/**
* ()
*/
public static void main(String[] args) {
// 키 생성
String key1 = KeyGenerator.generateUniqueKey();
String key2 = KeyGenerator.generateUniqueKey();
// 생성된 키와 길이 출력
System.out.println("생성된 키 1: " + key1);
System.out.println("키 1의 길이 : " + key1.length());
System.out.println("-------------------------------------------------");
System.out.println("생성된 키 2: " + key2);
System.out.println("키 2의 길이 : " + key2.length());
// 두 키가 다른지 확인 (거의 100% 다름)
boolean areKeysDifferent = !key1.equals(key2);
System.out.println("두 키가 다른가? " + areKeysDifferent);
}
}

View File

@ -7,6 +7,13 @@
<!-- 프로젝트 정보 (Project Info) --> <!-- 프로젝트 정보 (Project Info) -->
<!-- ================================================================================================== --> <!-- ================================================================================================== -->
<!-- API ON/OFF 처리를 위한 활성상태 조회 처리 -->
<select id="selectApiActiveYn" parameterType="String" resultType="String">
SELECT ACTIVE_YN
FROM WEB_API_INBOUND
WHERE SP_NAME = #{spName}
</select>
<select id="spGetTblProjectInfo" parameterType="map" resultType="egovMap"> <select id="spGetTblProjectInfo" parameterType="map" resultType="egovMap">
SELECT * FROM TABLE(SP_GET_TBL_PROJECT_INFO( SELECT * FROM TABLE(SP_GET_TBL_PROJECT_INFO(
#{prjCode, jdbcType=VARCHAR}, #{prjCode, jdbcType=VARCHAR},

View File

@ -190,11 +190,11 @@
<choose> <choose>
<!-- 프로젝트명 정렬 --> <!-- 프로젝트명 정렬 -->
<when test="sortField == 'projectName' and sortDir == 'asc'"> <when test="sortField == 'projectName' and sortDir == 'asc'">
T.PROJECT_NAME ASC T.PROJECT_NAME ASC, DATETIME ASC, OB.MODIFY_CALL_DATE ASC
</when> </when>
<!-- 프로젝트명 역순 정렬 --> <!-- 프로젝트명 역순 정렬 -->
<when test="sortField == 'projectName' and sortDir == 'desc'"> <when test="sortField == 'projectName' and sortDir == 'desc'">
T.PROJECT_NAME DESC T.PROJECT_NAME DESC, DATETIME ASC, OB.MODIFY_CALL_DATE ASC
</when> </when>
<!-- 공급자 정렬 --> <!-- 공급자 정렬 -->
@ -208,11 +208,11 @@
<!-- 입력일시 정렬 --> <!-- 입력일시 정렬 -->
<when test="sortField == 'datetime' and sortDir == 'asc'"> <when test="sortField == 'datetime' and sortDir == 'asc'">
T.DATETIME ASC T.DATETIME ASC, OB.MODIFY_CALL_DATE ASC
</when> </when>
<!-- 입력일시 역순 정렬 --> <!-- 입력일시 역순 정렬 -->
<when test="sortField == 'datetime' and sortDir == 'desc'"> <when test="sortField == 'datetime' and sortDir == 'desc'">
T.DATETIME DESC T.DATETIME DESC, OB.MODIFY_CALL_DATE ASC
</when> </when>
<!-- 공급일시 정렬 --> <!-- 공급일시 정렬 -->

View File

@ -0,0 +1,43 @@
<%@ page language="java" contentType="text/html; charset=utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<script type="text/javascript">
</script>
<form name="frm" method="post">
<%-- 사용자 타입(국토교통부/행정안전부/해안수산부/기타공공기관/일반) --%>
<ul class="row marB30">
<li class="col col-xs-4 text-center"><label><input type="radio" name="userType" value="국토교통부">국토교통부</label></li>
<li class="col col-xs-4 text-center"><label><input type="radio" name="userType" value="행정안전부">행정안전부</label></li>
<li class="col col-xs-4 text-center"><label><input type="radio" name="userType" value="해양수산부">해양수산부</label></li>
</ul>
<div class="row text-center">
<a href="javascript:void(0);" class="apiKeyReq btn btn-large btn-green" onclick="javascript:generateApiKey();"> 신청하기 </a>
</div>
</form>
<!--function 정의 -->
<script type="text/javascript">
// 사용자 > API 신청 버튼 클릭
function generateApiKey() {
var userType = $('input[name="userType"]:checked').val()
$.ajax({
url : "/createApiKey.do",
type : "post",
data : {userType: userType},
dataType :"json",
success : function(res){
alert("apiKey ==> " + res.data)
},
error : function(){
alert("오류입니다.");
}
});
}
</script>

View File

@ -181,6 +181,11 @@
</c:otherwise> </c:otherwise>
</c:choose> </c:choose>
</li> </li>
<li class="nav-item">
<a href="#" onClick="gourl('apiKey')" onFocus="this.blur()" class="nav-link nav-toggle">
<span class="title">API 신청</span>
</a>
</li>
<c:if test="${isLogin == true}"> <c:if test="${isLogin == true}">
<c:if test="${cls == 0}"> <c:if test="${cls == 0}">

View File

@ -171,6 +171,9 @@
<li class="dropdown"> <li class="dropdown">
<a class="dropdown-toggle" data-toggle="dropdown" href="#" onClick="gourl('faq')" onFocus="this.blur()">시추정보 FAQ</a> <a class="dropdown-toggle" data-toggle="dropdown" href="#" onClick="gourl('faq')" onFocus="this.blur()">시추정보 FAQ</a>
</li> </li>
<li class="dropdown">
<a class="dropdown-toggle" data-toggle="dropdown" href="#" onClick="gourl('apiKey')" onFocus="this.blur()">API 신청</a>
</li>
<c:if test="${isLogin == true}"> <c:if test="${isLogin == true}">
<c:if test="${cls == 0}"> <c:if test="${cls == 0}">
<li class="dropdown"> <li class="dropdown">

View File

@ -366,6 +366,27 @@
<!-- 커뮤니티 > 시추정보 Q&A 끝 --> <!-- 커뮤니티 > 시추정보 Q&A 끝 -->
</c:if> </c:if>
<c:if test="${eGovUrl == 'apiKey.do'}">
<!-- 커뮤니티 > API 신청 시작 -->
<h1 class="page-title">
<span class="page-title-text">API 신청</span>
<ul class="page-category">
<li class="category-item">게시판</li>
<li class="category-item">API 신청</li>
</ul>
</h1>
<script>
$(document).ready(function(){
// 상단메뉴 활성화
$(".nav > li.dropdown:eq(6)").addClass("on");
// 왼쪽메뉴 활성화
$("#community_sub_menu").css("display", "block");
$("#community_sub_menu > li.nav-item:eq(4)").addClass("active");
});
</script>
<!-- 커뮤니티 > 시추정보 Q&A 끝 -->
</c:if>
<c:if test="${eGovUrl == 'homeEducationApplicationInquiry.do' || eGovUrl == 'homeEducationApplicationInput.do' }"> <c:if test="${eGovUrl == 'homeEducationApplicationInquiry.do' || eGovUrl == 'homeEducationApplicationInput.do' }">
<!-- 집합교육 신청 시작 --> <!-- 집합교육 신청 시작 -->
<h1 class="page-title"> <h1 class="page-title">

View File

@ -247,7 +247,9 @@ function kendoGrid() {
searchUserName: searchUserName, searchUserName: searchUserName,
searchCreateName: searchCreateName, searchCreateName: searchCreateName,
// Kendo UI가 전달하는 정렬, 페이징 정보 등을 options.data에서 가져와 추가 // Kendo UI가 전달하는 정렬, 페이징 정보 등을 options.data에서 가져와 추가
sort: options.data.sort sort: options.data.sort ,
page: options.data.page, // ✅ Kendo가 현재 페이지 전달
pageSize: options.data.pageSize, // ✅ Kendo가 현재 페이지 크기 전달
}, },
              contentType: 'application/json',               contentType: 'application/json',
              dataType: "json",               dataType: "json",
@ -277,7 +279,15 @@ function kendoGrid() {
kendoJQuery("#grid_type_1").kendoGrid({ kendoJQuery("#grid_type_1").kendoGrid({
dataSource: dataSource, dataSource: dataSource,
columns: [ columns: [
{ field: "rowNumber", width: 50, title: "순번", template: "<span class='row-number'></span>" }, // { field: "rowNumber", width: 50, title: "순번", template: "<span class='row-number'></span>" },
{
field: "rnk",
width: 50,
title: "순번",
template: function(data) {
return data.rnk ? parseInt(data.rnk) : "";
}
},
{ {
field: "projectName", field: "projectName",
width: "auto", width: "auto",

View File

@ -161,15 +161,34 @@ function reloadGrid() {
url: "/getHoleCoordList.do", url: "/getHoleCoordList.do",
dataType: "json", dataType: "json",
type: "POST", type: "POST",
data: function() { // data: function() {
// var ds = this; // DataSource
// return {
// startDate: $("#startDate").val(),
// endDate: $("#endDate").val(),
// searchProjectName: $("#searchProjectName").val(),
// searchUserName: $("#searchUserName").val(),
// searchCreateName: $("#searchCreateName").val(),
// };
// }
},
parameterMap: function(options, operation) {
if (operation === "read") {
// 정렬 정보 처리 추가
var sortField = options.sort && options.sort[0] ? options.sort[0].field : null;
var sortDir = options.sort && options.sort[0] ? options.sort[0].dir : null;
return { return {
startDate: $("#startDate").val(),
endDate: $("#endDate").val(),
searchProjectName: $("#searchProjectName").val(), searchProjectName: $("#searchProjectName").val(),
searchProjectCode: $("#searchProjectCode").val(),
searchUserName: $("#searchUserName").val(), searchUserName: $("#searchUserName").val(),
searchHistSeq: $("#searchHistSeq").val(),
searchCreateName: $("#searchCreateName").val(), searchCreateName: $("#searchCreateName").val(),
page: 1, searchState: $("#searchState").val(),
pageSize: 10 page: options.page, // ✅ Kendo가 현재 페이지 전달
pageSize: options.pageSize, // ✅ Kendo가 현재 페이지 크기 전달
sortField: sortField, // 정렬 필드
sortDir: sortDir // 정렬 방향
}; };
} }
} }
@ -193,8 +212,15 @@ function reloadGrid() {
pageSize: 10 pageSize: 10
}, },
columns: [ columns: [
// { field: "rowNumber", width: 50, title: "순번", template: "<span class='row-number'></span>", sortable: false },
{ field: "rowNumber", width: 50, title: "순번", template: "<span class='row-number'></span>", sortable: false }, {
field: "rn",
width: 50,
title: "순번",
template: function(data) {
return data.rn ? parseInt(data.rn) : "0";
}
},
{ {
field: "projectName", field: "projectName",
width: 262, width: 262,

View File

@ -363,7 +363,25 @@ function reloadGrid() {
url: "/getManageList.do", url: "/getManageList.do",
dataType: "json", dataType: "json",
type: "POST", type: "POST",
data: function() { // data: function() {
// var ds = this; // DataSource
// return {
// searchProjectName: $("#searchProjectName").val(),
// searchProjectCode: $("#searchProjectCode").val(),
// searchUserName: $("#searchUserName").val(),
// searchHistSeq: $("#searchHistSeq").val(),
// searchCreateName: $("#searchCreateName").val(),
// searchState: $("#searchState").val(),
// page: ds.page(), // ✅ 현재 페이지
// pageSize: ds.pageSize() // ✅ 현재 페이지당 개수
// };
// }
},
parameterMap: function(options, operation) {
var sortField = options.sort && options.sort[0] ? options.sort[0].field : null;
var sortDir = options.sort && options.sort[0] ? options.sort[0].dir : null;
if (operation === "read") {
return { return {
searchProjectName: $("#searchProjectName").val(), searchProjectName: $("#searchProjectName").val(),
searchProjectCode: $("#searchProjectCode").val(), searchProjectCode: $("#searchProjectCode").val(),
@ -371,15 +389,45 @@ function reloadGrid() {
searchHistSeq: $("#searchHistSeq").val(), searchHistSeq: $("#searchHistSeq").val(),
searchCreateName: $("#searchCreateName").val(), searchCreateName: $("#searchCreateName").val(),
searchState: $("#searchState").val(), searchState: $("#searchState").val(),
page: 1, page: options.page, // ✅ Kendo가 현재 페이지 전달
pageSize: 10 pageSize: options.pageSize, // ✅ Kendo가 현재 페이지 크기 전달
sortField: sortField, // 정렬 필드
sortDir: sortDir // 정렬 방향
}; };
} }
} }
}, },
schema: { schema: {
data: "items", // 서버에서 실제 데이터 Array key data: "items", // 서버에서 실제 데이터 Array key
total: "total" // 서버에서 전체 개수 key total: "total", // 서버에서 전체 개수 key,
model: {
fields: {
rn: { type: "number" }, // 순번
classCode: { type: "string" },
projectCode: { type: "string" },
reportType: { type: "string" },
reportTypeName: { type: "string" },
projectName: { type: "string" },
userid: { type: "string" },
userName: { type: "string" },
state: { type: "string" },
stateName: { type: "string" },
checkuserid: { type: "string" },
datetime: { type: "string" }, // "YYYY-MM-DD HH:mm:ss" 형식
regFinDate: { type: "string" },
modifyCallDate: { type: "string" },
modifyFinDate: { type: "string" },
checkstart: { type: "string" },
checkok: { type: "string" },
ins: { type: "string" },
authins: { type: "string" },
map: { type: "string" },
modifycall: { type: "string" },
cursor: { type: "string" },
histSeq: { type: "number" },
expertFile: { type: "string" }
}
}
}, },
serverPaging: true, serverPaging: true,
serverSorting: true, serverSorting: true,
@ -396,7 +444,15 @@ function reloadGrid() {
pageSize: 10 pageSize: 10
}, },
columns: [ columns: [
{ field: "rowNumber", width: 50, title: "순번", sortable: false, template: "<span class='row-number'></span>" }, // { field: "rowNumber", width: 50, title: "순번", sortable: false, template: "<span class='row-number'></span>" },
{
field: "rn",
width: 50,
title: "순번",
template: function(data) {
return data.rn ? parseInt(data.rn) : "0";
}
},
{ {
field: "projectName", field: "projectName",
width: "auto", width: "auto",
@ -505,7 +561,7 @@ function reloadGrid() {
refresh: false, refresh: false,
pageSizes: true, pageSizes: true,
pageSize: 10, pageSize: 10,
//buttonCount: 10, buttonCount: 10,
input: true, input: true,
numeric: false, numeric: false,
}, },

View File

@ -231,12 +231,29 @@ function reloadGrid() {
url: "/list_reg_jsondata.do", url: "/list_reg_jsondata.do",
dataType: "json", dataType: "json",
type: "POST", type: "POST",
data: function() { // data: function() {
// var ds = this; // DataSource
// return {
// searchProjectName: $("#searchProjectName").val(),
// searchUserName: $("#searchUserName").val(),
// page: ds.page(), // ✅ 현재 페이지
// pageSize: ds.pageSize() // ✅ 현재 페이지당 개수
// };
// }
},
parameterMap: function(options, operation) {
if (operation === "read") {
// 정렬 정보 처리 추가
var sortField = options.sort && options.sort[0] ? options.sort[0].field : null;
var sortDir = options.sort && options.sort[0] ? options.sort[0].dir : null;
return { return {
searchProjectName: $("#searchProjectName").val(), searchProjectName: $("#searchProjectName").val(),
searchUserName: $("#searchUserName").val(), searchUserName: $("#searchUserName").val(),
page: 1, page: options.page, // ✅ Kendo가 현재 페이지 전달
pageSize: 10 pageSize: options.pageSize, // ✅ Kendo가 현재 페이지 크기 전달
sortField: sortField, // 정렬 필드
sortDir: sortDir // 정렬 방향
}; };
} }
} }
@ -260,7 +277,15 @@ function reloadGrid() {
pageSize: 10 pageSize: 10
}, },
columns: [ columns: [
{ field: "rowNumber", width: 50, title: "순번", template: "<span class='row-number'></span>" }, // { field: "rowNumber", width: 50, title: "순번", template: "<span class='row-number'></span>" },
{
field: "rn",
width: 50,
title: "순번",
template: function(data) {
return data.rn ? parseInt(data.rn) : "0";
}
},
{ {
field: "projectName", field: "projectName",
title: "프로젝트명", title: "프로젝트명",

View File

@ -191,15 +191,35 @@ function reloadGrid() {
url: "/getHoleCoordList.do", url: "/getHoleCoordList.do",
dataType: "json", dataType: "json",
type: "POST", type: "POST",
data: function() { // data: function() {
// var ds = this; // DataSource
// return {
// startDate: $("#startDate").val(),
// endDate: $("#endDate").val(),
// searchProjectName: $("#searchProjectName").val(),
// searchUserName: $("#searchUserName").val(),
// searchCreateName: $("#searchCreateName").val(),
// page: ds.page(), // ✅ 현재 페이지
// pageSize: ds.pageSize() // ✅ 현재 페이지당 개수
// };
// }
},
parameterMap: function(options, operation) {
if (operation === "read") {
// 정렬 정보 처리 추가
var sortField = options.sort && options.sort[0] ? options.sort[0].field : null;
var sortDir = options.sort && options.sort[0] ? options.sort[0].dir : null;
return { return {
startDate: $("#startDate").val(), startDate: $("#startDate").val(),
endDate: $("#endDate").val(), endDate: $("#endDate").val(),
searchProjectName: $("#searchProjectName").val(), searchProjectName: $("#searchProjectName").val(),
searchUserName: $("#searchUserName").val(), searchUserName: $("#searchUserName").val(),
searchCreateName: $("#searchCreateName").val(), searchCreateName: $("#searchCreateName").val(),
page: 1, page: options.page, // ✅ Kendo가 현재 페이지 전달
pageSize: 10 pageSize: options.pageSize, // ✅ Kendo가 현재 페이지 크기 전달
sortField: sortField, // 정렬 필드
sortDir: sortDir // 정렬 방향
}; };
} }
} }
@ -223,8 +243,15 @@ function reloadGrid() {
pageSize: 10 pageSize: 10
}, },
columns: [ columns: [
// { field: "rowNumber", width: 50, title: "순번", template: "<span class='row-number'></span>", sortable: false },
{ field: "rowNumber", width: 50, title: "순번", template: "<span class='row-number'></span>", sortable: false }, {
field: "rn",
width: 50,
title: "순번",
template: function(data) {
return data.rn ? parseInt(data.rn) : "0";
}
},
{ {
field: "projectName", field: "projectName",
width: 262, width: 262,

View File

@ -7395,10 +7395,6 @@ ul.faq-q > li textarea {
/* ====================================== */ /* ====================================== */
/* ====================================== */ /* ====================================== */
/* ====================================== */ /* ====================================== */
.k-pager-wrap .k-pager-sizes.k-label {
display: none;
}
/* ====================================== */ /* ====================================== */
/* ====================================== */ /* ====================================== */

File diff suppressed because one or more lines are too long

View File

@ -5777,7 +5777,7 @@ ul.faq-q > li textarea {
// (25.10.22 YJI) kendo-grid pager // (25.10.22 YJI) kendo-grid pager
/* ====================================== */ /* ====================================== */
.k-pager-wrap .k-pager-sizes.k-label { .k-pager-wrap .k-pager-sizes.k-label {
display: none; // display: none;
} }
/* ====================================== */ /* ====================================== */
// (25.10.22 YJI) kendo-grid pager // (25.10.22 YJI) kendo-grid pager