diff --git a/WebContent/jsp/common/include/script.jsp b/WebContent/jsp/common/include/script.jsp index 80ed3ec..873de95 100644 --- a/WebContent/jsp/common/include/script.jsp +++ b/WebContent/jsp/common/include/script.jsp @@ -362,4 +362,209 @@ console.error('Download failed:', error); } } + + /** + * 스타일링된 Alert 모달 + * @param {string} message - 표시할 메시지 + * @param {object} options - 옵션 (type: 'info'|'warning'|'error'|'success', title: string, onClose: function) + */ + function showAlert(message, options) { + options = options || {}; + var type = options.type || 'info'; + var title = options.title || getAlertTitle(type); + var onClose = options.onClose || function(){}; + + // 기존 모달 제거 + $('#commonAlertModal').remove(); + + var iconHtml = getAlertIcon(type); + var colorClass = 'alert-' + type; + + var modalHtml = + '
'; + + $('body').append(modalHtml); + + // 애니메이션 효과 + setTimeout(function() { + $('#commonAlertModal').addClass('show'); + }, 10); + + // 닫기 이벤트 + $('#commonAlertOkBtn').on('click', function() { + closeCommonAlert(onClose); + }); + + // ESC 키로 닫기 + $(document).on('keydown.commonAlert', function(e) { + if (e.keyCode === 27) { + closeCommonAlert(onClose); + } + }); + + // Enter 키로 확인 + $(document).on('keydown.commonAlertEnter', function(e) { + if (e.keyCode === 13) { + closeCommonAlert(onClose); + } + }); + } + + function closeCommonAlert(callback) { + $('#commonAlertModal').removeClass('show'); + setTimeout(function() { + $('#commonAlertModal').remove(); + $(document).off('keydown.commonAlert'); + $(document).off('keydown.commonAlertEnter'); + if (typeof callback === 'function') { + callback(); + } + }, 200); + } + + function getAlertTitle(type) { + switch(type) { + case 'error': return '오류'; + case 'warning': return '경고'; + case 'success': return '완료'; + default: return '알림'; + } + } + + function getAlertIcon(type) { + switch(type) { + case 'error': return 'error'; + case 'warning': return 'warning'; + case 'success': return 'check_circle'; + default: return 'info'; + } + } + + /** + * 스타일링된 Confirm 모달 + * @param {string} message - 표시할 메시지 + * @param {object} options - 옵션 (type, title, confirmText, cancelText, onConfirm, onCancel) + */ + function showConfirm(message, options) { + options = options || {}; + var type = options.type || 'info'; + var title = options.title || '확인'; + var confirmText = options.confirmText || '확인'; + var cancelText = options.cancelText || '취소'; + var onConfirm = options.onConfirm || function(){}; + var onCancel = options.onCancel || function(){}; + + // 기존 모달 제거 + $('#commonConfirmModal').remove(); + + var iconHtml = getAlertIcon(type); + var colorClass = 'alert-' + type; + + var modalHtml = + ''; + + $('body').append(modalHtml); + + setTimeout(function() { + $('#commonConfirmModal').addClass('show'); + }, 10); + + // 확인 버튼 + $('#commonConfirmOkBtn').on('click', function() { + closeCommonConfirm(onConfirm); + }); + + // 취소 버튼 + $('#commonConfirmCancelBtn').on('click', function() { + closeCommonConfirm(onCancel); + }); + + // ESC 키로 취소 + $(document).on('keydown.commonConfirm', function(e) { + if (e.keyCode === 27) { + closeCommonConfirm(onCancel); + } + }); + } + + function closeCommonConfirm(callback) { + $('#commonConfirmModal').removeClass('show'); + setTimeout(function() { + $('#commonConfirmModal').remove(); + $(document).off('keydown.commonConfirm'); + if (typeof callback === 'function') { + callback(); + } + }, 200); + } + + + diff --git a/WebContent/jsp/onl/admin/inflow/inflowGroupControlMan.jsp b/WebContent/jsp/onl/admin/inflow/inflowGroupControlMan.jsp new file mode 100644 index 0000000..02a845e --- /dev/null +++ b/WebContent/jsp/onl/admin/inflow/inflowGroupControlMan.jsp @@ -0,0 +1,195 @@ +<%@ page language="java" contentType="text/html; charset=utf-8"%> +<%@ page import="java.io.*"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib uri="http://www.springframework.org/tags" prefix="spring"%> +<%@ include file="/jsp/common/include/localemessage.jsp" %> +<% + response.setHeader("Pragma", "No-cache"); + response.setHeader("Cache-Control", "no-cache"); + response.setHeader("Expires", "0"); + +%> + + +| 그룹명 | ++ |
|---|