itn_admin/src/main/resources/templates/agent/view.html
2024-09-24 09:25:55 +09:00

854 lines
50 KiB
HTML

<!DOCTYPE html>
<!-- 관련 Namespace 선언 및 layout:decorate 추가 -->
<html lang="en"
xmlns:th="http://www.thymeleaf.org"
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
layout:decorate="layout">
<head>
<!-- layout.html 에 들어간 head 부분을 제외하고 개별 파일에만 적용되는 head 부분 추가 -->
<title>agent 발송 테스트</title>
<!-- 필요하다면 개별 파일에 사용될 css/js 선언 -->
<link rel="stylesheet" th:href="@{/plugins/datatables-bs4/css/dataTables.bootstrap4.min.css}">
<link rel="stylesheet" th:href="@{/plugins/datatables-responsive/css/responsive.bootstrap4.min.css}">
<link rel="stylesheet" th:href="@{/plugins/datatables-buttons/css/buttons.bootstrap4.min.css}">
<link rel="stylesheet" href="https://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<style>
.byte-count {
margin-top: 5px;
font-size: 14px;
color: #555;
}
.custom-height {
height: 100px;
}
.example-button {
border-radius: 20px;
margin-right: 10px;
}
.input-group .example-button {
margin-right: 10px;
}
.slider {
width: 100%;
margin-top: 10px;
}
#hidden-info {
background-color: #f9f9f9;
border-top: 1px solid #ddd;
padding: 10px;
border-radius: 0 0 5px 5px;
}
.info-section {
margin-bottom: 15px;
}
.section-title {
font-weight: bold;
color: #333;
margin-bottom: 5px;
}
.info-item {
margin: 0;
padding-left: 10px;
color: #555;
}
.toggle-info-btn i {
transition: transform 0.2s ease-in-out;
}
.toggle-info-btn.rotate i {
transform: rotate(180deg);
}
.nowCardCTwo{
background-color: beige;
}
</style>
</head>
<body layout:fragment="body">
<div class="wrapper">
<div th:replace="~{fragments/top_nav :: topFragment}"/>
<!-- Main Sidebar Container -->
<aside class="main-sidebar sidebar-dark-primary elevation-4"
th:insert="~{fragments/mainsidebar :: sidebarFragment}">
</aside>
<!-- Content Wrapper. Contains page content -->
<div class="content-wrapper">
<!-- Content Header (Page header) -->
<div class="content-header">
<div class="container-fluid">
<div class="row mb-2">
<div class="col-sm-6">
<h1 class="m-0">AGENT 발송 테스트</h1>
</div><!-- /.col -->
<div class="col-sm-6">
<ol class="breadcrumb float-sm-right">
<li class="breadcrumb-item"><a href="#">Home</a></li>
<li class="breadcrumb-item active">AGENT 발송 테스트</li>
</ol>
</div><!-- /.col -->
</div><!-- /.row -->
</div><!-- /.container-fluid -->
</div>
<!-- /.content-header -->
<!-- Main content -->
<section class="content">
<div class="container-fluid">
<div class="row">
<input type="hidden" id="oneUserId" th:value="${oneUserId}">
<input type="hidden" id="twoUserId" th:value="${twoUserId}">
<!-- <div class="col-12">-->
<!-- /.card -->
<div class="col-md-6" id="divOneSms">
<div class="card">
<div class="card-header">
<h3 class="card-title" th:text="'Client 3 :: '+ ${oneUserId}"/>
<div class="card-tools">
<button type="button" class="btn btn-tool" data-card-widget="collapse">
<i class="fas fa-minus"></i>
</button>
<button type="button" class="btn btn-tool toggle-info-btn">
<i class="fas fa-info-circle"></i>
</button>
</div>
</div>
<div class="p-3 hidden-info" style="display: none;">
<!-- Client 1의 정보 -->
<div class="p-3 hidden-info" style="display: none;">
<div class="info-section">
<p class="section-title">사용자ID</p>
<p class="info-item" th:text="${oneUserId}"></p>
</div>
<div class="info-section">
<p class="section-title">DB정보</p>
<p class="info-item">- 192.168.0.31:3307</p>
</div>
<div class="info-section">
<p class="section-title">msg 발송 TB</p>
<p class="info-item">- MUNJAON_MSG</p>
</div>
<div class="info-section">
<p class="section-title">msg 리포팅 TB</p>
<p class="info-item">- MUNJAON_MSG_LOG</p>
</div>
<div class="info-section">
<p class="section-title">서버위치</p>
<p class="info-item">- 192.168.0.78</p>
<p class="info-item">- /home/mjon_client_agent_3</p>
</div>
</div>
<!-- 기타 정보들 추가 -->
</div>
<div class="card-body">
<form class="sendForm">
<!-- Client 1의 입력 폼 -->
<input type="hidden" name="sendStatus" value="0">
<div class="form-group">
<label for="msgType1">문자타입 - MSG_TYPE</label>
<div class="input-group">
<select type="text" class="form-control msgType" id="msgType1" name="msgType">
<option value="S">SMS</option>
<option value="L">LMS</option>
<option value="M">MMS</option>
<option value="A">알림톡</option>
<option value="F">친구톡</option>
</select>
</div>
</div>
<div class="form-group">
<label for="recvPhone1">수신번호 - RECV_PHONE</label>
<div class="input-group">
<input type="text" class="form-control recvPhone" id="recvPhone1" name="recvPhone" placeholder="수신번호 - RECV_PHONE">
</div>
</div>
<div class="form-group">
<label for="sendPhone1">회신번호 - SEND_PHONE</label>
<div class="input-group">
<input type="text" class="form-control sendPhone" id="sendPhone1" name="sendPhone" placeholder="회신번호 - SEND_PHONE">
</div>
</div>
<div class="form-group" style="display: none">
<label for="subject1">제목 - SUBJECT</label>
<div class="input-group">
<input type="text" class="form-control subject" id="subject1" name="subject" placeholder="제목 - SUBJECT">
</div>
</div>
<div class="form-group fileUploadGroup" style="display: none;">
<label for="file2">파일첨부</label>
<div class="input-group">
<input type="file" class="form-control file1" id="file2" name="fileName01">
</div>
<div class="input-group mt-2">
<input type="file" class="form-control file2" name="fileName02">
</div>
<div class="input-group mt-2">
<input type="file" class="form-control file3" name="fileName03">
</div>
</div>
<div class="form-group">
<label for="sendPhone1">메세지 - MESSAGE</label>
<div class="input-group">
<textarea class="form-control message" id="message1" name="message" placeholder="메세지 - MESSAGE" rows="5" oninput="updateByteCount(this)"></textarea>
</div>
<div class="byte-count">0 bytes</div>
</div>
<div class="form-group">
<label for="slider1">건수 (max 1,000,000 | 백만)</label>
<div class="input-group">
<input type="text" class="form-control sliderValue" id="sendCnt1" name="sendCnt" placeholder="건수" autocomplete="off">
<div class="slider mt-2" id="slider1"></div>
</div>
</div>
<button type="button" class="btn btn-primary w-20 sendBtn">발송</button>
<button type="button" class="btn btn-info w-40 examBtn">예시입력</button>
<button type="reset" class="btn btn-secondary w-30">Reset</button>
</form>
</div>
</div>
</div>
<div class="col-md-6" id="divTwoSms">
<div class="card">
<div class="card-header">
<!-- <h3 class="card-title">Client 2 (006star)</h3>-->
<h3 class="card-title" th:text="'Client 4 :: '+ ${twoUserId}"/>
<div class="card-tools">
<button type="button" class="btn btn-tool" data-card-widget="collapse">
<i class="fas fa-minus"></i>
</button>
<button type="button" class="btn btn-tool toggle-info-btn">
<i class="fas fa-info-circle"></i>
</button>
</div>
</div>
<!-- /.card-header -->
<div class="p-3 hidden-info" style="display: none;">
<div class="info-section">
<p class="section-title">사용자ID</p>
<p class="info-item" th:text="${twoUserId}"></p>
</div>
<div class="info-section">
<p class="section-title">DB정보</p>
<p class="info-item">- 192.168.0.31:3308</p>
</div>
<div class="info-section">
<p class="section-title">msg 발송 TB</p>
<p class="info-item">- MUNJAON_MSG</p>
</div>
<div class="info-section">
<p class="section-title">msg 리포팅 TB</p>
<p class="info-item">- MUNJAON_MSG_LOG</p>
</div>
<div class="info-section">
<p class="section-title">서버위치</p>
<p class="info-item">- 192.168.0.31 (윈도우)</p>
<p class="info-item">- /dev/mjon_agent/agent_client_04</p>
</div>
</div>
<!-- /.card-header -->
<div class="card-body">
<form class="sendForm">
<input type="hidden" name="msgType" value="S">
<input type="hidden" name="sendStatus" value="0">
<div class="form-group">
<label for="msgType">문자타입 - MSG_TYPE</label>
<div class="input-group">
<select type="text" class="form-control msgType" id="msgType" name="msgType">
<option value="S">SMS</option>
<option value="L">LMS</option>
<option value="M">MMS</option>
<option value="A">알림톡</option>
<option value="F">친구톡</option>
</select>
</div>
</div>
<div class="form-group">
<label for="recvPhone">수신번호 - RECV_PHONE</label>
<div class="input-group">
<input type="text" class="form-control recvPhone" id="recvPhone" name="recvPhone" placeholder="수신번호 - RECV_PHONE">
</div>
</div>
<div class="form-group">
<label for="sendPhone">회신번호 - SEND_PHONE</label>
<div class="input-group">
<input type="text" class="form-control sendPhone" id="sendPhone" name="sendPhone" placeholder="회신번호 - SEND_PHONE">
</div>
</div>
<div class="form-group" style="display: none">
<label for="subject">제목 - SUBJECT</label>
<div class="input-group">
<input type="text" class="form-control subject" id="subject" name="subject" placeholder="제목 - SUBJECT">
</div>
</div>
<div class="form-group fileUploadGroup" style="display: none;">
<label for="file1">파일첨부</label>
<div class="input-group">
<input type="file" class="form-control file1" id="file1" name="fileName01">
</div>
<div class="input-group mt-2">
<input type="file" class="form-control file2" name="fileName02">
</div>
<div class="input-group mt-2">
<input type="file" class="form-control file3" name="fileName03">
</div>
</div>
<div class="form-group">
<label for="message">메세지 - MESSAGE</label>
<div class="input-group">
<textarea class="form-control message" id="message" name="message" placeholder="메세지 - MESSAGE" rows="5" oninput="updateByteCount(this)"></textarea>
</div>
<div class="byte-count">0 bytes</div>
</div>
<div class="form-group">
<label for="slider">건수 (max 1,000,000 | 백만)</label>
<div class="input-group">
<input type="text" class="form-control sliderValue" id="sendCnt" name="sendCnt" placeholder="건수" autocomplete="off">
<div class="slider mt-2" id="slider"></div>
</div>
</div>
<button type="button" class="btn btn-primary w-20 sendBtn">발송</button>
<button type="button" class="btn btn-info w-40 examBtn">예시입력</button>
<button type="reset" class="btn btn-secondary w-30">Reset</button>
</form>
</div>
<!-- /.card-body -->
</div>
<!-- /.card -->
</div>
<!-- 새로운 현황 섹션 -->
<!-- <div class="col-md-6">-->
<!-- <div class="card" style="background-color: beige;">-->
<!-- <div class="card-header">-->
<!-- <h3 class="card-title">Client 1 현재현황</h3>-->
<!-- <button type="button" class="btn btn-tool" onclick="refreshClient2Status()">-->
<!-- <i class="fas fa-sync-alt"></i>-->
<!-- </button>-->
<!-- </div>-->
<!-- <div class="card-body">-->
<!-- <div class="row">-->
<!-- &lt;!&ndash; MSG 건 &ndash;&gt;-->
<!-- <div class="col-md-4 col-sm-6 col-12">-->
<!-- <div class="info-box bg-light">-->
<!-- <span class="info-box-icon bg-gray"><i class="fas fa-envelope"></i></span>-->
<!-- <div class="info-box-content">-->
<!-- <span class="info-box-text">MSG 건</span>-->
<!-- <span class="info-box-number" id="client1MsgCnt">0</span>-->
<!-- </div>-->
<!-- </div>-->
<!-- </div>-->
<!-- &lt;!&ndash; MSG_LOG 건 &ndash;&gt;-->
<!-- <div class="col-md-4 col-sm-6 col-12">-->
<!-- <div class="info-box bg-light">-->
<!-- <span class="info-box-icon bg-gray"><i class="fas fa-file-alt"></i></span>-->
<!-- <div class="info-box-content">-->
<!-- <span class="info-box-text">MSG_LOG 건</span>-->
<!-- <span class="info-box-number" id="client1MsgLogCnt">0</span>-->
<!-- </div>-->
<!-- </div>-->
<!-- </div>-->
<!-- &lt;!&ndash; report(X) 건 &ndash;&gt;-->
<!-- <div class="col-md-4 col-sm-6 col-12">-->
<!-- <div class="info-box bg-light">-->
<!-- <span class="info-box-icon bg-gray"><i class="fas fa-chart-bar"></i></span>-->
<!-- <div class="info-box-content">-->
<!-- <span class="info-box-text">report(X) 건</span>-->
<!-- <span class="info-box-number" id="client1ReportCnt">0</span>-->
<!-- </div>-->
<!-- </div>-->
<!-- </div>-->
<!-- </div>-->
<!-- </div>-->
<!-- </div>-->
<!-- </div>-->
<!-- <div class="col-md-6">-->
<!-- <div class="card" style="background-color: beige;">-->
<!-- <div class="card-header">-->
<!-- <h3 class="card-title">Client 2 현재현황</h3>-->
<!-- <button type="button" class="btn btn-tool" onclick="refreshClient2Status()">-->
<!-- <i class="fas fa-sync-alt"></i>-->
<!-- </button>-->
<!-- </div>-->
<!-- <div class="card-body">-->
<!-- <div class="row">-->
<!-- &lt;!&ndash; MSG 건 &ndash;&gt;-->
<!-- <div class="col-md-4 col-sm-6 col-12">-->
<!-- <div class="info-box bg-light">-->
<!-- <span class="info-box-icon bg-gray"><i class="fas fa-envelope"></i></span>-->
<!-- <div class="info-box-content">-->
<!-- <span class="info-box-text">MSG 건</span>-->
<!-- <span class="info-box-number" id="client2MsgCnt">0</span>-->
<!-- </div>-->
<!-- </div>-->
<!-- </div>-->
<!-- &lt;!&ndash; MSG_LOG 건 &ndash;&gt;-->
<!-- <div class="col-md-4 col-sm-6 col-12">-->
<!-- <div class="info-box bg-light">-->
<!-- <span class="info-box-icon bg-gray"><i class="fas fa-file-alt"></i></span>-->
<!-- <div class="info-box-content">-->
<!-- <span class="info-box-text">MSG_LOG 건</span>-->
<!-- <span class="info-box-number" id="client2MsgLogCnt">0</span>-->
<!-- </div>-->
<!-- </div>-->
<!-- </div>-->
<!-- &lt;!&ndash; report(X) 건 &ndash;&gt;-->
<!-- <div class="col-md-4 col-sm-6 col-12">-->
<!-- <div class="info-box bg-light">-->
<!-- <span class="info-box-icon bg-gray"><i class="fas fa-chart-bar"></i></span>-->
<!-- <div class="info-box-content">-->
<!-- <span class="info-box-text">report(X) 건</span>-->
<!-- <span class="info-box-number" id="client2ReportCnt">0</span>-->
<!-- </div>-->
<!-- </div>-->
<!-- </div>-->
<!-- </div>-->
<!-- </div>-->
<!-- </div>-->
<!-- </div>-->
<div class="col-md-6">
<div class="card" id="divOneSmsCard">
<div class="card-header">
<div class="d-flex justify-content-start align-items-center">
<h3 class="card-title mb-0">클라이언트1 현황확인</h3>
<span class="text-primary font-weight-bold h4 ml-2 sendCntTxt"></span>
</div>
</div>
<div class="card-body">
<div class="row"><!-- 클라이언트 insert -->
<div class="col-md-4 col-sm-6 col-12">
<div class="info-box bg-light">
<span class="info-box-icon bg-gray" style="width: 35px;"><i class="fas fa-upload"></i></span>
<div class="info-box-content">
<span class="info-box-text">클라이언트 insert</span>
<div class="d-flex justify-content-between">
<span class="info-box-number insertCnt">0</span>
<span class="info-box-unit font-weight-bold">건수</span>
</div>
<div class="progress">
<div class="progress-bar" style="width: 100%"></div>
</div>
<span class="progress-description insertSeconds">
0초
</span>
</div>
</div>
</div>
<!-- 데이터 이관 시간 -->
<div class="col-md-4 col-sm-6 col-12">
<div class="info-box bg-light">
<span class="info-box-icon bg-gray" style="width: 35px;"><i class="fas fa-clock"></i></span>
<div class="info-box-content">
<span class="info-box-text">데이터 이관 시간 (C -> S)</span>
<div class="d-flex justify-content-between">
<span class="info-box-number transferCnt">0</span>
<span class="info-box-unit font-weight-bold">건수</span>
</div>
<div class="progress">
<div class="progress-bar" style="width: 100%"></div>
</div>
<span class="progress-description transferSeconds">
0초
</span>
</div>
</div>
</div>
<!-- 클라이언트 report -->
<div class="col-md-4 col-sm-6 col-12">
<div class="info-box bg-light">
<span class="info-box-icon bg-gray" style="width: 35px;"><i class="fas fa-chart-line"></i></span>
<div class="info-box-content">
<span class="info-box-text">클라이언트 report (S -> C)</span>
<div class="d-flex justify-content-between align-items-center">
<span class="info-box-number reportStartCnt">0</span><!--<span class="reportStartSubCnt"></span>-->
<!-- <span class="info-box-number mx-2">→</span>-->
<!-- <span class="info-box-number reportSndCnt">0</span>-->
<span class="info-box-unit font-weight-bold ml-2">건수</span>
</div>
<div class="progress">
<div class="progress-bar" style="width: 100%"></div>
</div>
<span class="progress-description reportSeconds">
0초
</span>
</div>
</div>
</div>
</div>
<!-- Reporting start 버튼 -->
<!-- <div class="row">-->
<!-- <div class="col-12 text-left">-->
<!-- <button class="btn btn-success rprtCrrntStrtBtn" data-tagid="oneUserId">-->
<!-- <i class="fas fa-chart-line"></i> Report Current Data-->
<!-- </button>-->
<!-- <button class="btn btn-danger rprtAllStrtBtn" data-tagid="oneUserId">-->
<!-- <i class="fas fa-chart-line"></i> Report All Data-->
<!-- </button>-->
<!-- </div>-->
<!-- </div>-->
</div>
</div>
</div>
<div class="col-md-6">
<div class="card" id="divTwoSmsCard">
<div class="card-header">
<div class="d-flex justify-content-start align-items-center">
<h3 class="card-title mb-0">클라이언트2 현황확인</h3>
<span class="text-primary font-weight-bold h4 ml-2 sendCntTxt"></span>
</div>
</div>
<div class="card-body">
<div class="row"><!-- 클라이언트 insert -->
<div class="col-md-4 col-sm-6 col-12">
<div class="info-box bg-light">
<span class="info-box-icon bg-gray" style="width: 35px;"><i class="fas fa-upload"></i></span>
<div class="info-box-content">
<span class="info-box-text">클라이언트 insert</span>
<div class="d-flex justify-content-between">
<span class="info-box-number insertCnt">0</span>
<span class="info-box-unit font-weight-bold">건수</span>
</div>
<div class="progress">
<div class="progress-bar" style="width: 100%"></div>
</div>
<span class="progress-description insertSeconds">
0초
</span>
</div>
</div>
</div>
<!-- 데이터 이관 시간 -->
<div class="col-md-4 col-sm-6 col-12">
<div class="info-box bg-light">
<span class="info-box-icon bg-gray" style="width: 35px;"><i class="fas fa-clock"></i></span>
<div class="info-box-content">
<span class="info-box-text">데이터 이관 시간 (C -> S)</span>
<div class="d-flex justify-content-between">
<span class="info-box-number transferCnt">0</span>
<span class="info-box-unit font-weight-bold">건수</span>
</div>
<div class="progress">
<div class="progress-bar" style="width: 100%"></div>
</div>
<span class="progress-description transferSeconds">
0초
</span>
</div>
</div>
</div>
<!-- 클라이언트 report -->
<div class="col-md-4 col-sm-6 col-12">
<div class="info-box bg-light">
<span class="info-box-icon bg-gray" style="width: 35px;"><i class="fas fa-chart-line"></i></span>
<div class="info-box-content">
<span class="info-box-text">클라이언트 report (S -> C)</span>
<div class="d-flex justify-content-between align-items-center">
<span class="info-box-number reportStartCnt">0</span><!--<span class="reportStartSubCnt"></span>-->
<!-- <span class="info-box-number mx-2">→</span>-->
<!-- <span class="info-box-number reportSndCnt">0</span>-->
<span class="info-box-unit font-weight-bold ml-2">건수</span>
</div>
<div class="progress">
<div class="progress-bar" style="width: 100%"></div>
</div>
<span class="progress-description reportSeconds">
0초
</span>
</div>
</div>
</div>
</div>
<!-- Reporting start 버튼 -->
<!-- <div class="row">-->
<!-- <div class="col-12 text-left">-->
<!--&lt;!&ndash; <button class="btn btn-success newButtonClass">Now data report start</button> &lt;!&ndash; 새로운 버튼 추가 &ndash;&gt;&ndash;&gt;-->
<!--&lt;!&ndash; <button class="btn btn-danger rprtAllStrtBtn" data-tagid="twoUserId">ALL data Reporting start</button>&ndash;&gt;-->
<!-- <button class="btn btn-success rprtCrrntStrtBtn" data-tagid="twoUserId">-->
<!-- <i class="fas fa-chart-line"></i> Report Current Data-->
<!-- </button>-->
<!-- <button class="btn btn-danger rprtAllStrtBtn" data-tagid="twoUserId">-->
<!-- <i class="fas fa-chart-line"></i> Report All Data-->
<!-- </button>-->
<!-- </div>-->
<!-- </div>-->
</div>
</div>
</div>
<!-- /.col -->
</div>
<!-- /.row -->
</div>
<!-- /.container-fluid -->
</section>
<!-- /Main content -->
</div>
<!-- /.content-wrapper -->
<footer class="main-footer"
th:insert="~{fragments/footer :: footerFragment}">
</footer>
<!-- Control Sidebar -->
<aside class="control-sidebar control-sidebar-dark">
<!-- Control sidebar content goes here -->
</aside>
<!-- /.control-sidebar -->
</div>
<!-- ./wrapper -->
<script th:src="@{/cmn/js/agent/init.js}"></script>
<script th:src="@{/cmn/js/agent/timerForOneC.js}"></script>
<script th:src="@{/cmn/js/agent/timerForTwoC.js}"></script>
<script>
$(function () {
// client_1 영역
// client_1 영역
// client_1 영역
// client_1 영역
// client_1 영역
/*
* client_1 msg insert
* */
$("#divOneSms .sendBtn").on("click", function () {
// 폼 데이터를 수집
var formData = new FormData($("#divOneSms .sendForm")[0]);
// 먼저 파일을 업로드하고 파일명만 받음
var fileUploadForm = new FormData();
fileUploadForm.append("fileName01", formData.get("fileName01"));
fileUploadForm.append("fileName02", formData.get("fileName02"));
fileUploadForm.append("fileName03", formData.get("fileName03"));
$.ajax({
type: "POST",
url: "/agent/one/uploadFiles",
data: fileUploadForm,
processData: false,
contentType: false,
success: function(response) {
console.log('response : ', response);
if (response.status === 'OK') {
// 파일명만 formData에 추가
// 파일명 formData에 추가
if (response.data.fileName01) {
formData.append("fileName01", response.data.fileName01);
}
if (response.data.fileName02) {
formData.append("fileName02", response.data.fileName02);
}
if (response.data.fileName03) {
formData.append("fileName03", response.data.fileName03);
}
var jsonObject = {};
formData.forEach((value, key) => {
if (!(value instanceof File)) {
jsonObject[key] = value;
}
});
if(jsonObject['recvPhone'] === ""){
alert('정보를 입력하거나 예시입력을 클릭해주세요.')
return false;
}
console.log('one jsonObject send : ', jsonObject);
$.ajax({
type: "POST",
url: "/agent/one/send",
data: JSON.stringify(jsonObject), // JSON 문자열로 변환된 데이터를 전송
dataType: 'json',
contentType: 'application/json',
// async: true,
success: function (data) {
// console.log('data : ', data);
if (data.status === 'OK') {
fn_successAlert('경과시간 : '+data.data, data.msg);
// fn_successAlert(data, message)
}
else {
alert("오류 알림 : :: "+data.msg);
}
},
error: function (e) {
alert("저장에 실패하였습니다.");
console.log("ERROR : " + JSON.stringify(e));
},
beforeSend : function(xmlHttpRequest) {
fn_oneInsertScriptStart();
},
complete : function(xhr, textStatus) {
// oneStopInsertTimer();
}
});
} else {
alert("파일 업로드 실패: " + response.msg);
}
},
error: function(e) {
alert("파일 업로드에 실패하였습니다.");
console.log("ERROR : " + JSON.stringify(e));
}
});
});
// client_2 영역
// client_2 영역
// client_2 영역
// client_2 영역
// client_2 영역
/*
* client_2 msg insert
* */
$("#divTwoSms .sendBtn").on("click", function () {
// 폼 데이터를 수집
var formData = new FormData($("#divTwoSms .sendForm")[0]);
// 먼저 파일을 업로드하고 파일명만 받음
var fileUploadForm = new FormData();
fileUploadForm.append("fileName01", formData.get("fileName01"));
fileUploadForm.append("fileName02", formData.get("fileName02"));
fileUploadForm.append("fileName03", formData.get("fileName03"));
$.ajax({
type: "POST",
url: "/agent/two/uploadFiles",
data: fileUploadForm,
processData: false,
contentType: false,
success: function(response) {
console.log('response : ', response);
if (response.status === 'OK') {
// 파일명만 formData에 추가
// 파일명 formData에 추가
if (response.data.fileName01) {
formData.append("fileName01", response.data.fileName01);
}
if (response.data.fileName02) {
formData.append("fileName02", response.data.fileName02);
}
if (response.data.fileName03) {
formData.append("fileName03", response.data.fileName03);
}
var jsonObject = {};
formData.forEach((value, key) => {
if (!(value instanceof File)) {
jsonObject[key] = value;
}
});
if(jsonObject['recvPhone'] === ""){
alert('정보를 입력하거나 예시입력을 클릭해주세요.')
return false;
}
$.ajax({
type: "POST",
url: "/agent/two/send",
data: JSON.stringify(jsonObject), // JSON 문자열로 변환된 데이터를 전송
dataType: 'json',
contentType: 'application/json',
// async: true,
success: function (data) {
// console.log('data : ', data);
if (data.status === 'OK') {
fn_successAlert('경과시간 : '+data.data, data.msg);
// fn_successAlert(data, message)
}
else {
alert("오류 알림 : :: "+data.msg);
}
},
error: function (e) {
alert("데이터 저장에 실패하였습니다.");
console.log("ERROR : " + JSON.stringify(e));
},
beforeSend : function(xmlHttpRequest) {
fn_twoInsertScriptStart();
},
complete : function(xhr, textStatus) {
oneStopInsertTimer();
}
});
} else {
alert("파일 업로드 실패: " + response.msg);
}
},
error: function(e) {
alert("파일 업로드에 실패하였습니다.");
console.log("ERROR : " + JSON.stringify(e));
}
});
});
});
</script>
</body>
</html>