<?php
require_once $_SERVER['DOCUMENT_ROOT'] . '/load_GoogleDrive.php'; // 세션 등 여러가지 포함됨 파일 포함
if(!isset($_SESSION["level"]) || $_SESSION["level"]>8) {
	 sleep(1);
		  header("Location:" . $WebSite . "login/login_form.php");  
	 exit;
}

include $_SERVER['DOCUMENT_ROOT'] . '/load_header.php';

$mode = isset($_REQUEST['mode']) ? $_REQUEST['mode'] : '';  
$num = isset($_REQUEST["num"]) ? $_REQUEST["num"] : "";
$tablename = isset($_REQUEST["tablename"]) ? $_REQUEST["tablename"] : "";

require_once $_SERVER['DOCUMENT_ROOT'] . '/load_GoogleDriveSecond.php'; // attached, image에 대한 정보 불러오기  

$title_message = "모터 작업 " ;
?>  

<title> <?=$title_message?> </title>
<style>
textarea {
overflow: hidden;
resize: none; /* 사용자 크기 조절을 방지 */
}  
/* 기본 스타일 설정 */
input[type="checkbox"],
input[type="radio"] {
	transform: scale(1.2); /* 크기 확대 */
	margin: 3px; /* 여백 추가 */
}

/* "readonly" 상태일 때 스타일 설정 */
.readonly-checkbox,
.readonly-radio {
	pointer-events: none; /* 사용자 상호작용 비활성화 */
	opacity: 1; /* 불투명도 설정 */
	color: red;
}


    label {
        font-size: 1.5em; /* 글꼴 크기 확대 */
        display: inline-block;
        margin: 5px 0;
    }

.w-40{
	 width: 40%!important;
}
.w-60{
	 width: 60%!important;
}	
</style>


</head>

<?   
include $_SERVER['DOCUMENT_ROOT'] . '/mymodal.php';
  
// 첨부 이미지에 대한 부분
require_once($_SERVER['DOCUMENT_ROOT'] . "/lib/mydb.php");
$pdo = db_connect();	
 
$today = date("Y-m-d"); // 현재일자 변수지정

try{
      $sql = "select * from $DB.$tablename where num = ? ";
      $stmh = $pdo->prepare($sql); 

      $stmh->bindValue(1,$num,PDO::PARAM_STR); 
      $stmh->execute();
      $count = $stmh->rowCount();            
	  $row = $stmh->fetch(PDO::FETCH_ASSOC);  // $row 배열로 DB 정보를 불러온다.
    if($count<1){  
      print "검색결과가 없습니다.<br>";
     }else{

       include $_SERVER['DOCUMENT_ROOT'] . "/output/_row.php";
			  
      }
     }catch (PDOException $Exception) {
       print "오류: ".$Exception->getMessage();
     }
   
 //  print $motor_state;
?>
  
<form id="board_form"  name="board_form" method="post" enctype="multipart/form-data"  >

<input type="hidden" id="mode" name="mode" value="<?= isset($mode) ? $mode : '' ?>">
<input type="hidden" id="num" name="num" value="<?= isset($num) ? $num : '' ?>">
<input type="hidden" id="user_name" name="user_name" value="<?= isset($user_name) ? $user_name : '' ?>">
<input type="hidden" id="update_log" name="update_log" value="<?= isset($update_log) ? $update_log : NULL ?>">
<input type="hidden" id="tablename" name="tablename" value="<?= isset($tablename) ? $tablename : '' ?>">
<input type="hidden" id="is_deleted" name="is_deleted" value="<?= isset($is_deleted) ? $is_deleted : '0' ?>">

<div class="container"> 

<div class="row justify-content-center align-items-center ">	        
	<div class="card align-middle " style="width: 55rem;">	
	<div class="card-body text-center">							
		<div class="row d-flex justify-content-center align-items-center mb-3" >					
		<div class="col-sm-10" >					
			<div class="d-flex p-1 mb-1  justify-content-center align-items-center ">	
		<h3>	<?=$title_message?>    </h3>   &nbsp; &nbsp;  &nbsp; &nbsp; 				
		   <?php if($mode!=='view') { ?>
				<button id="saveBtn" class="btn  btn-dark btn-sm me-1 " type="button">
				<? if((int)$num>0) print ' <i class="bi bi-hdd-fill"></i> 저장';  else print ' <i class="bi bi-hdd-fill"></i> 저장'; ?></button>		   			
		   <?  } ?>		
			<button type="button" class="btn btn-outline-dark btn-sm me-2" id="showlogBtn"   > H
			
			</div>
			</div>			
				<div class="col-sm-2" >					
					<button type="button" class="btn btn-outline-dark  btn-sm " onclick="self.close();" > <i class="bi bi-box-arrow-left"></i> 창닫기 </button>	&nbsp; 				
				</div>	
		</div>	
	


<div class="row text-center justify-content-center">
    <span class="text-primary fs-6">
        관리자가 아래의 라디오버튼을 클릭하면 상태가 변경됩니다.
    </span>
</div>
<div class="row text-center justify-content-center">
    <div class="d-flex justify-content-center align-items-center w-75">
        <table class="table table-bordered">
            <tbody>
                <tr class="text-center">
                    <td class="text-center" style="width:120px;">
                        <span class="badge bg-dark fs-6">모터 준비상태</span>
                    </td>
                    <td colspan="2" style="width:350px;">
                        <?php
                        $states = ["등록", "접수", "준비중", "준비완료"];
                        $is_admin = ($user_name === '노영재' || $user_name === '김진호' || $user_name === '개발자');
                        ?>
                        <?php foreach ($states as $state): ?>
                            &nbsp; <?= $state ?>
                            <input type="radio" class="readonly-radio" name="motor_state" value="<?= $state ?>" <?= ($motor_state === $state) ? "checked" : "" ?> <?= $is_admin ? "" : "readonly" ?> style="pointer-events: <?= $is_admin ? 'auto' : 'none' ?>;">
                        <?php endforeach; ?>
                    </td>
                </tr>
            </tbody>
        </table>
    </div>
</div>
<button id="saveBtn" type="button" style="display:none;"></button>
		
      </div>
    </div>		
  </div>		
</div>	

<?php include $_SERVER['DOCUMENT_ROOT'] . '/output/common/output_write_form.php'; //  공통으로 들어가는 부분 ?>
		
	
	</form>
	
<script>

function captureReturnKey(e) {
    if(e.keyCode==13 && e.srcElement.type != 'textarea')
    return false;
}

function recaptureReturnKey(e) {
    if (e.keyCode==13)
        exe_search();
}
function Enter_Check(){
        // 엔터키의 코드는 13입니다.
    if(event.keyCode == 13){
      exe_search();  // 실행할 이벤트
    }
}


function exe_search()
{
      var postData = changeUri(document.getElementById("outworkplace").value);
      var sendData = $(":input:radio[name=root]:checked").val();

      $("#displaysearch").show();
	 if(sendData=='주일')
         $("#displaysearch").load("./search.php?mode=search&search=" + postData);
	 if(sendData=='경동') 
         $("#displaysearch").load("./searchkd.php?mode=search&search=" + postData);	  
}
$(document).ready(function() {	
    $(document).on('click', '.fetch_receiverBtn', function() {
        callreceiver();
    });

    $('#receiver').on('keypress', function(event) {
        if (event.keyCode === 13) { // 엔터키의 코드는 13입니다.
            callreceiver();
        }
    });
});

ajaxRequest_write=null;

function callreceiver() {
    var search = $('#receiver').val();  // 검색어를 가져옴
    console.log("Search term:", search); // 전달되는 값 확인

    // AJAX 요청을 통해 데이터 가져오기
	if (ajaxRequest_write !== null) {
		ajaxRequest_write.abort();
	}		 
	ajaxRequest_write = $.ajax({
        url: 'fetch_receiver.php',
        type: 'POST',
        data: { search: search },
        dataType: 'json',
        success: function(data) {
            console.log("Response data:", data); // 서버로부터의 응답을 콘솔에 출력
            var tbody = $('#ModalBody');
            tbody.empty(); // 기존 데이터를 지움

            if (Array.isArray(data) && data.length > 0) {
                data.forEach(function(row, index) {
                    var tr = $('<tr>').append(
                        $('<td>').addClass('text-center').text(index + 1),
                        $('<td>').addClass('text-center').html('<a href="#" onclick="intovaltel(\'' + row.phone + '\', \'' + row.receiver + '\'); return false;">' + row.receiver + '</a>'),
                        $('<td>').addClass('text-center').text(row.phone),
                        $('<td>').addClass('text-center').text(row.outputplace)
                    );
                    tbody.append(tr);
                });
            } else if (data.length === 0) {
                var tr = $('<tr>').append(
                    $('<td>').attr('colspan', '4').addClass('text-center').text('No data available')
                );
                tbody.append(tr);
            } else {
                console.error('Unexpected data format:', data);
                var tr = $('<tr>').append(
                    $('<td>').attr('colspan', '4').addClass('text-center').text('Error loading data')
                );
                tbody.append(tr);
            }

            $('#telModal').modal('show'); // 모달 띄우기
        },
        error: function(jqXHR, textStatus, errorThrown) {
            console.error('AJAX request failed:', textStatus, errorThrown);
            var tbody = $('#ModalBody');
            var tr = $('<tr>').append(
                $('<td>').attr('colspan', '4').addClass('text-center').text('Error loading data')
            );
            tbody.append(tr);
        }
    });
}


</script> 

<script>
// 페이지 로딩
$(document).ready(function(){	
    var loader = document.getElementById('loadingOverlay');
    loader.style.display = 'none';
});
</script>

<script>
var mode = '<?php echo $mode; ?>';
var ajaxRequest_write = null;
</script>
 
<script>
var dataTable; // DataTables 인스턴스 전역 변수
var feeviewpageNumber; // 현재 페이지 번호 저장을 위한 전역 변수

var ajaxRequest_write = null;

$(document).ready(function() {			
    // DataTables 초기 설정
    dataTable = $('#myTable').DataTable({
        "paging": true,
        "ordering": true,
        "searching": true,
        "pageLength": 500,
        "lengthMenu": [25, 50, 100, 200, 500, 1000],
        "language": {
            "lengthMenu": "Show _MENU_ entries",
            "search": "Live Search:"
        },
        "order": [[0, 'asc']]
    });

    // 페이지 번호 복원 (초기 로드 시)
    var savedPageNumber = getCookie('feeviewpageNumber');
    if (savedPageNumber) {
        dataTable.page(parseInt(savedPageNumber) - 1).draw(false);
    }

    // 페이지 변경 이벤트 리스너
    dataTable.on('page.dt', function() {
        var feeviewpageNumber = dataTable.page.info().page + 1;
        setCookie('feeviewpageNumber', feeviewpageNumber, 10); // 쿠키에 페이지 번호 저장
    });

    // 페이지 길이 셀렉트 박스 변경 이벤트 처리
    $('#myTable_length select').on('change', function() {
        var selectedValue = $(this).val();
        dataTable.page.len(selectedValue).draw(); // 페이지 길이 변경 (DataTable 파괴 및 재초기화 없이)

        // 변경 후 현재 페이지 번호 복원
        savedPageNumber = getCookie('feeviewpageNumber');
        if (savedPageNumber) {
            dataTable.page(parseInt(savedPageNumber) - 1).draw(false);
        }
    });
});

function restorePageNumber() {
    var savedPageNumber = getCookie('feeviewpageNumber');
    // if (savedPageNumber) {
        // dataTable.page(parseInt(savedPageNumber) - 1).draw('page');
    // }
	location.reload(true);
}

$(document).ready(function() {
    $("input[name='motor_state']").change(function() {
        if ($(this).is(":checked")) {
            $("#saveBtn").click();
        }
    });

	$("#saveBtn").click(function() {
		var form = $('#board_form')[0];
		var data = new FormData(form);

		// Log the form data to the console for debugging
		for (var pair of data.entries()) {
			console.log(pair[0] + ': ' + pair[1]);
		}

		Fninsert();
	});


    // 화면이 시작된 후
    hideOverlay();
});

function Fninsert() {
    // $("#mode").val('modify');
    // 폼데이터 전송시 사용함 Get form
    var form = $('#board_form')[0];
    // Create an FormData object
    var data = new FormData(form);

    // Iterate over the FormData entries and log them
    for (var pair of data.entries()) {
        console.log(pair[0] + ': ' + pair[1]);
    }

    $("#overlay").show(); // 오버레이 표시

    $("button").prop("disabled", true); // 모든 버튼 비활성화

    Toastify({
        text: "저장중...",
        duration: 2000,
        close: true,
        gravity: "top",
        position: "center",
        style: {
            background: "linear-gradient(to right, #00b09b, #96c93d)"
        },
    }).showToast();

    // console.log('formdata : ', data);

    if ((typeof ajaxRequest_write !== 'undefined' && ajaxRequest_write) || ajaxRequest_write !== null) {
        ajaxRequest_write.abort();
    }

    ajaxRequest_write = $.ajax({
        enctype: 'multipart/form-data', // file을 서버에 전송하려면 이렇게 해야 함 주의
        processData: false,
        contentType: false,
        cache: false,
        timeout: 600000,
        url: "insert.php",
        type: "post",
        data: data,
        dataType: "json",
        success: function(data) {
            // console.log(data);
            console.log(data.num);

            setTimeout(function() {
                Toastify({
                    text: "저장완료",
                    duration: 3000,
                    close: true,
                    gravity: "top",
                    position: "center",
                    style: {
                        background: "linear-gradient(to right, #00b09b, #96c93d)"
                    },
                }).showToast();

            }, 1000);

            setTimeout(function() {
                if (window.opener && !window.opener.closed) {
                    if (typeof window.opener.restorePageNumber === 'function') {
                        window.opener.restorePageNumber(); // 함수가 있으면 실행
                    }
                }
                setTimeout(function() {
                    if (data && data.num)
                        // 저장된 데이터 번호를 사용하여 새로운 페이지로 이동
                        window.location.href = 'write_form.php?mode=view&tablename=' + $('#tablename').val() + '&num=' + data.num;
                }, 1000);

            }, 1500);

            hideOverlay();

        },
        error: function(jqxhr, status, error) {
            console.log(jqxhr, status, error);
        }
    });

}
	
</script>

<!-- mode == 'view' 조회 화면일때 사용금지 시키는 구문 -->
<script>
$(document).ready(function() {
    var mode = '<?php echo $mode; ?>';

    if (mode === 'view') {

		$('input, textarea').prop('readonly', true); // Disable all input, textarea, and select elements
		$('input[type=hidden]').prop('readonly', false); 
		
        $('.viewon').prop('readonly', true);
        $('.viewNoBtn').prop('readonly', true);
        $('input[type=hidden]').prop('readonly', false);

        $('.viewon').each(function() {
            $(this).addClass('readonly-checkbox readonly-radio');
        });

        $('input[type=file]').prop('disabled', true);
        $('label').css('font-size', '1.2em');
		
		// select 속성 readonly 효과 내기
		$('select[data-readonly="true"]').on('mousedown', function(event) {
			event.preventDefault();
		});		
		
		// checkbox 속성 readonly 효과 내기
		$('input[type="checkbox"][data-readonly="true"]').on('click', function(event) {
			event.preventDefault();
		});		
    }
});

</script>

<script>
function adjustTextareaHeight(textarea) {
	textarea.style.height = 'auto';
	textarea.style.height = (textarea.scrollHeight) + 'px';
}

$(document).ready(function() {
	var $comment = $('#comment');
	if ($comment.length) {
		adjustTextareaHeight($comment[0]); // 초기 높이 조정
		$comment.on('input', function() {
			adjustTextareaHeight(this);
		});
	}
	
	var $updatecomment = $('#updatecomment');
	if ($updatecomment.length) {
		adjustTextareaHeight($updatecomment[0]); // 초기 높이 조정
		$updatecomment.on('input', function() {
			adjustTextareaHeight(this);
		});
	}
	
});
$(document).ready(function() {
		
	// Log 파일보기
	$("#showlogBtn").click( function() {     	
		var num = '<?php echo $num; ?>' 
		// table 이름을 넣어야 함
		var workitem =  'output' ;
		// 버튼 비활성화
		var btn = $(this);						
			popupCenter("../Showlog.php?num=" + num + "&workitem=" + workitem , '로그기록', 500, 500);									 
		btn.prop('disabled', false);					 					 
	});	
	
	// 모달창 닫기
	$(document).on('click', '.Modalclose', function(e) {
		$("#telModal").modal("hide");
	});	
	
});

</script>

<script>
$(document).ready(function () {
	displayFileLoad();	// 기존파일 업로드 보이기			 	
});

// 기존 파일 불러오기 (Google Drive에서 가져오기)
function displayFileLoad() {
    $('#displayFile').show();
    var data = <?php echo json_encode($savefilename_arr); ?>;

    $("#displayFile").html(''); // 기존 내용 초기화

    if (Array.isArray(data) && data.length > 0) {
        data.forEach(function (fileData, i) {
            const realName = fileData.realname || '다운로드 파일';
            const link = fileData.link || '#';
            const fileId = fileData.fileId || null;

            if (!fileId) {
                console.error("fileId가 누락되었습니다. index: " + i, fileData);
                return;
            }

			$("#displayFile").append(
				"<div class='row mb-3'>" +
					"<div class='d-flex mb-3 align-items-center justify-content-start'>" +
						"<span id='file" + i + "'>" +
							"<a href='#' onclick=\"downloadFile('" + fileId + "', '" + realName + "'); return false;\">" +
								"<span class='fw-bold text-primary'>" + realName + "</span>" +
							"</a>" +
						"</span> &nbsp;&nbsp;" +
					"</div>" +
				"</div>"
			);

        });
    } else {
        $("#displayFile").append(
            "<div class='text-center text-muted'>No files</div>"
        );
    }
}

</script>
</body>
</html>
