Index: arms/html/pdServiceDetail/content-container.html =================================================================== diff -u --- arms/html/pdServiceDetail/content-container.html (revision 0) +++ arms/html/pdServiceDetail/content-container.html (revision 44bc4a28edd153119e8dd81d1c39a2cb51b22b44) @@ -0,0 +1,1263 @@ +
제품(서비스)의 기획서 및 Project Charter 의 내용을 기록합니다.
"); //에디터 초기화 + }); + + var reviewerCount = 1; + + $("#modal_product_add_pdservice_reviewers").trigger("change"); + + $("#modal_product_add_pdservice_reviewer").css("height", "20px"); + setTimeout(function () { + var heightValue = $("#modal_product_add_pdservice_reviewer").height(); + var resultValue = heightValue + 20 * reviewerCount; + $("#modal_product_add_pdservice_reviewer").css("height", resultValue + "px"); + }, 250); + + }); + + // 팝업하여 편집 + $("#btn_modal_product_edit").click(function () { + var height = $(document).height() - 1000; + $(".modal-body") + .find(".cke_contents:eq(0)") + .css("height", height + "px"); + + var multifyValue = 1 + $('#modal_product_edit_pdservice_reviewers option').length; + + $("#modal_product_edit_pdservice_reviewers").trigger("change"); + + $("#modal_product_edit_pdservice_reviewer").css("height", "20px"); + setTimeout(function () { + var heightValue = $("#modal_product_edit_pdservice_reviewer").height(); + var resultValue = heightValue + 20 * multifyValue; + $("#modal_product_edit_pdservice_reviewer").css("height", resultValue + "px"); + }, 250); + }); + +} + + +//////////////////////////////////////////////////////////////////////////////////////// +// --- select2 (사용자 자동완성 검색 ) 설정 --- // +//////////////////////////////////////////////////////////////////////////////////////// +function select2_setting() { + $(".js-data-example-ajax").select2({ + maximumSelectionLength: 5, + width: "resolve", + ajax: { + url: function (params) { + return "/auth-user/search-user/" + params.term; + }, + dataType: "json", + delay: 250, + processResults: function (data, params) { + params.page = params.page || 1; + + return { + results: data, + pagination: { + more: params.page * 30 < data.total_count + } + }; + }, + cache: true + }, + placeholder: "리뷰어 설정을 위한 계정명을 입력해 주세요", + minimumInputLength: 1, + templateResult: formatUser, + templateSelection: formatUserSelection + }); +} + +////////////////////////////////////////////////////////////////////¸//////////////////// +// --- select2 (사용자 자동완성 검색 ) templateResult 설정 --- // +//////////////////////////////////////////////////////////////////////////////////////// +function formatUser(jsonData) { + console.log("formatUser"); + console.log(jsonData) + var $container = $( + "제품(서비스)의 기획서 및 Project Charter 의 내용을 기록합니다.
"); //에디터 초기화 + }); + + $(".modal-body") + .find(".cke_contents:eq(0)") + .css("height", height + "px"); +} + +//////////////////////////////////////////////////////////////////////////////////////// +// 제품 디테일 목록에서 선택 시 상세보기 및 편집하기 데이터 바인딩 +//////////////////////////////////////////////////////////////////////////////////////// +function detailClick(element, c_id) { + showDefaultTab(); + dropzoneDataClear(); + hideDropzoneArea(); + + $("a[id^='pdservice_detail_link_']").each(function() { + this.style.background = ""; + if (c_id == this.id.split("_")[3]) { + this.style.background = "rgba(229, 96, 59, 0.3)"; + this.style.color = "rgb(164, 198, 255)"; + this.style.textDecoration = "none"; + this.style.cursor = "pointer"; + } + }); + + $.ajax({ + url: "/auth-user/api/arms/pdServiceDetail/getNode.do", // 클라이언트가 HTTP 요청을 보낼 서버의 URL 주소 + data: { c_id: c_id }, + method: "GET", + dataType: "json" + }).done(function (json) { + console.log(json); + + selectedDetailId = json.c_id; + selectedDetailName = json.c_title; + + $("#fileIdlink").val(json.c_id); + + $("#modal_product_detail_edit_pdservice_name").val(selectName); + $("#stats_pdservice_name").val(selectName); + $("#stats_pdservice_name").val(selectName); + $("#report_pdservice_name").val(selectName); + $("#report_pdservice_name").val(selectName); + + $("#modal_product_detail_edit_pdservice_detail_name").val(json.c_title); + $("#stats_pdservice_detail_name").val(json.c_title); + $("#stats_pdservice_detail_name").val(json.c_title); + $("#report_pdservice_detail_name").val(json.c_title); + $("#report_pdservice_detail_name").val(json.c_title); + + + CKEDITOR.instances.stats_pdservice_detail_editor.setData(json.c_contents); // 상세 보기 + CKEDITOR.instances.report_pdservice_detail_editor.setData(json.c_contents); // 편집 하기 + CKEDITOR.instances.modal_product_detail_edit_editor.setData(json.c_contents); // 모달 편집 하기 + + $("#selected_pdservice_detail").text(json.c_title); + $("#modal_product_detail_edit_pdservice_detail_name").val(json.c_title); + + $(".list-group-item-detail-edit .chat-message-body").css({"border-left":""}); + $(".list-group-item-detail-edit .arrow").css({"border-right":""}); + + var $fileupload = $("#fileupload"); + + $.ajax({ + url: "/auth-user/api/arms/pdServiceDetail/getFilesByNode.do", + data: { fileIdLink: json.c_id }, + dataType: "json", + context: $fileupload[0] + }).done(function(result) { + $(this).fileupload("option", "done").call(this, null, { result: result.response }); + $(".file-delete-btn").hide(); // 파일 리스트에서 delete 버튼 display none 처리 -> 편집하기 tab 에서만 보여준다. + }); + }).fail(function(xhr, status, errorThrown) { + console.log(xhr + status + errorThrown); + }).always(function(xhr, status) { + $("#text").html("요청이 완료되었습니다!"); + console.log(xhr + status); + }); +} + +function init_versionList() { + var menu; + $.fn.jsonMenu = function (action, items, options) { + $(this).addClass("json-menu"); + if (action == "add") { + menu.body.push(items); + draw($(this), menu); + } else if (action == "set") { + menu = items; + draw($(this), menu); + } + return this; + }; +} +//데이터 테이블 ajax load 이후 콜백. +function dataTableCallBack(settings, json) { +} + +function dataTableDrawCallback(tableInfo) { + $("#" + tableInfo.sInstance) + .DataTable() + .columns.adjust() + .responsive.recalc(); +} + +//////////////////////////////////////////////////////////////////////////////////////// +//제품(서비스) 클릭할 때 동작하는 함수 +//////////////////////////////////////////////////////////////////////////////////////// +function pdServiceDataTableClick(c_id) { + $.ajax({ + url: "/auth-user/api/arms/pdServicePure/getNode.do", // 클라이언트가 HTTP 요청을 보낼 서버의 URL 주소 + data: { c_id: c_id }, // HTTP 요청과 함께 서버로 보낼 데이터 + method: "GET", // HTTP 요청 메소드(GET, POST 등) + dataType: "json", // 서버에서 보내줄 데이터의 타입 + beforeSend: function () { + $(".loader").removeClass("hide"); + } + }) + // HTTP 요청이 성공하면 요청한 데이터가 done() 메소드로 전달됨. + .done(function (json) { + selectedDetailId = ""; + selectedDetailName = ""; + var selectedHtml = + ` + `; + + $(".list-group-item-detail").html(selectedHtml); + + // ------------------------------------------------------------------------------- + + $("#modal_product_edit_pdservice_name").val(json.c_title); + + //clear + $("#modal_product_edit_pdservice_owner").val(null).trigger("change"); + + if (json.c_pdservice_owner == null || json.c_pdservice_owner == "none") { + console.log("pdServiceDataTableClick :: json.c_pdservice_owner empty"); + } else { + var newOption = new Option(json.c_pdservice_owner, json.c_pdservice_owner, true, true); + $("#modal_product_edit_pdservice_owner").append(newOption).trigger("change"); + } + // -------------------- reviewer setting -------------------- // + $("#modal_product_edit_pdservice_reviewers").val(null).trigger("change"); + + var selectedReviewerArr = []; + if (json.c_pdservice_reviewer01 == null || json.c_pdservice_reviewer01 == "none") { + console.log("pdServiceDataTableClick :: json.c_pdservice_reviewer01 empty"); + } else { + selectedReviewerArr.push(json.c_pdservice_reviewer01); + if ($("#modal_product_edit_pdservice_reviewers").find("option[value='" + json.c_pdservice_reviewer01 + "']").length) { + console.log("option[value='\" + json.c_pdservice_reviewer01 + \"']\"" + "already exist"); + } else { + var newOption01 = new Option(json.c_pdservice_reviewer01, json.c_pdservice_reviewer01, true, true); + $("#modal_product_edit_pdservice_reviewers").append(newOption01).trigger("change"); + } + } + if (json.c_pdservice_reviewer02 == null || json.c_pdservice_reviewer02 == "none") { + console.log("pdServiceDataTableClick :: json.c_pdservice_reviewer02 empty"); + } else { + selectedReviewerArr.push(json.c_pdservice_reviewer02); + if ($("#modal_product_edit_pdservice_reviewers").find("option[value='" + json.c_pdservice_reviewer02 + "']").length) { + console.log("option[value='\" + json.c_pdservice_reviewer02 + \"']\"" + "already exist"); + } else { + var newOption02 = new Option(json.c_pdservice_reviewer02, json.c_pdservice_reviewer02, true, true); + $("#modal_product_edit_pdservice_reviewers").append(newOption02).trigger("change"); + } + } + if (json.c_pdservice_reviewer03 == null || json.c_pdservice_reviewer03 == "none") { + console.log("pdServiceDataTableClick :: json.c_pdservice_reviewer03 empty"); + } else { + selectedReviewerArr.push(json.c_pdservice_reviewer03); + if ($("#modal_product_edit_pdservice_reviewers").find("option[value='" + json.c_pdservice_reviewer03 + "']").length) { + console.log("option[value='\" + json.c_pdservice_reviewer03 + \"']\"" + "already exist"); + } else { + var newOption03 = new Option(json.c_pdservice_reviewer03, json.c_pdservice_reviewer03, true, true); + $("#modal_product_edit_pdservice_reviewers").append(newOption03).trigger("change"); + } + } + if (json.c_pdservice_reviewer04 == null || json.c_pdservice_reviewer04 == "none") { + console.log("pdServiceDataTableClick :: json.c_pdservice_reviewer04 empty"); + } else { + selectedReviewerArr.push(json.c_pdservice_reviewer04); + if ($("#modal_product_edit_pdservice_reviewers").find("option[value='" + json.c_pdservice_reviewer04 + "']").length) { + console.log("option[value='\" + json.c_pdservice_reviewer04 + \"']\"" + "already exist"); + } else { + var newOption04 = new Option(json.c_pdservice_reviewer04, json.c_pdservice_reviewer04, true, true); + $("#modal_product_edit_pdservice_reviewers").append(newOption04).trigger("change"); + } + } + if (json.c_pdservice_reviewer05 == null || json.c_pdservice_reviewer05 == "none") { + console.log("pdServiceDataTableClick :: json.c_pdservice_reviewer05 empty"); + } else { + selectedReviewerArr.push(json.c_pdservice_reviewer05); + if ($("#modal_product_edit_pdservice_reviewers").find("option[value='" + json.c_pdservice_reviewer05 + "']").length) { + console.log("option[value='\" + json.c_pdservice_reviewer05 + \"']\"" + "already exist"); + } else { + var newOption05 = new Option(json.c_pdservice_reviewer05, json.c_pdservice_reviewer05, true, true); + $("#modal_product_edit_pdservice_reviewers").append(newOption05).trigger("change"); + } + } + $("#modal_product_edit_pdservice_reviewers").val(selectedReviewerArr).trigger("change"); + + // ------------------------- reviewer end --------------------------------// + CKEDITOR.instances.modal_product_edit_editor.setData(json.c_pdservice_contents); // 편집하기 + + // ------------------------- 제품 선택 시, 제품 디테일 모든 값 초기화 --------------------------------// + productDetailNameClear(); + productDetailEditorClear(); + showDefaultTab(); + dropzoneDataClear(); + productDetailArrowClear(); + $("#modal_product_detail_add_pdservice_name").val(json.c_title); // 제품 디테일 등록에 제품명 추가해줌. readonly + + + }) + // HTTP 요청이 실패하면 오류와 상태에 관한 정보가 fail() 메소드로 전달됨. + .fail(function(xhr, status, errorThrown) { + console.log(xhr + status + errorThrown); + }) + // + .always(function(xhr, status) { + console.log(xhr + status); + $(".loader").addClass("hide"); + }); + +} + + +//////////////////////////////////////////////////////////////////////////////////////// +// 제품 디테일 UI 초기화 +//////////////////////////////////////////////////////////////////////////////////////// +function productDetailArrowClear() { + $("#selected_pdservice_detail").text("선택되지 않음"); + $("#list-group-item-detail-edit-arrow").css({ "top": "10px", "left": "-7px", "border-right": "5px solid #a4c6ff" }); + $(".list-group-item-detail-edit .chat-message-body").css({"margin-left": "0px", "padding": "0px 10px 0px 10px", "border-left": "2px solid #a4c6ff"}); +} + +//////////////////////////////////////////////////////////////////////////////////////// +// 상세보게 tab 을 기본으로 초기화 +//////////////////////////////////////////////////////////////////////////////////////// +function showDefaultTab() { + $("a[href=\"#stats\"]").tab("show"); +} + +//////////////////////////////////////////////////////////////////////////////////////// +// Dropzone.js 데이터 초기화 +//////////////////////////////////////////////////////////////////////////////////////// +function dropzoneDataClear() { + $("table tbody.files").empty(); +} + +//////////////////////////////////////////////////////////////////////////////////////// +// 제품 디테일명 관련 data 초기화 +//////////////////////////////////////////////////////////////////////////////////////// +function productDetailNameClear() { + $("#selected_pdservice_detail").text("선택되지 않음"); + $("#modal_product_detail_edit_pdservice_detail_name").val(""); + + $("#stats_pdservice_name").val(""); + $("#stats_pdservice_name").val(""); + $("#report_pdservice_name").val(""); + $("#report_pdservice_name").val(""); + + $("#stats_pdservice_detail_name").val(""); + $("#stats_pdservice_detail_name").val(""); + $("#report_pdservice_detail_name").val(""); + $("#report_pdservice_detail_name").val(""); +} + +//////////////////////////////////////////////////////////////////////////////////////// +// 제품 디테일명 관련 ckeditor 초기화 +//////////////////////////////////////////////////////////////////////////////////////// +function productDetailEditorClear() { + CKEDITOR.instances.modal_product_detail_add_editor.setData("제품(서비스)의 기획서 및 Project Charter 의 내용을 기록합니다.
"); + CKEDITOR.instances.modal_product_detail_edit_editor.setData("제품(서비스)의 기획서 및 Project Charter 의 내용을 기록합니다.
"); + CKEDITOR.instances.stats_pdservice_detail_editor.setData("제품(서비스)의 기획서 및 Project Charter 의 내용을 기록합니다.
"); + CKEDITOR.instances.report_pdservice_detail_editor.setData("제품(서비스)의 기획서 및 Project Charter 의 내용을 기록합니다.
"); +} + +//////////////////////////////////////////////////////////////////////////////////////// +// 제품 디테일명 저장 버튼 이벤트 처리 +//////////////////////////////////////////////////////////////////////////////////////// +function product_detail_save_btn_click() { + $("#btn_modal_product_detail_add_submit").click(function() { + $.ajax({ + url: "/auth-user/api/arms/pdServiceDetail/addNode.do/" + selectId, + type: "POST", + data: { + ref: 2, + c_type: "default", + c_title: $('#modal_product_detail_add_pdservice_detail_name').val(), + c_contents: CKEDITOR.instances.modal_product_detail_add_editor.getData() + }, + progress: true, + statusCode: { + 200: function (data) { + console.log("/auth-user/api/arms/pdServiceDetail/addNodeByPdService.do :: success → ", data); + $("#btn_modal_product_detail_add_close").trigger("click"); + jSuccess("신규 제품 디테일 등록이 완료 되었습니다."); + pdServiceDataTableClick(selectId); + productServiceDetailDataLoad(selectId); + } + }, + beforeSend: function () { + $("#btn_modal_product_detail_add_submit").hide(); + }, + complete: function () { + $("#btn_modal_product_detail_add_submit").show(); + }, + error: function (e) { + jError("신규 제품 디테일 등록 중 에러가 발생했습니다."); + } + }); + }); +} +//////////////////////////////////////////////////////////////////////////////////////// +// 신규 제품(서비스) 등록 버튼 +//////////////////////////////////////////////////////////////////////////////////////// +function product_save_btn_click() { + $("#btn_modal_product_add_submit").click(function () { + var reviewers01 = "none"; + var reviewers02 = "none"; + var reviewers03 = "none"; + var reviewers04 = "none"; + var reviewers05 = "none"; + + if ($("#modal_product_add_pdservice_reviewers").select2("data")[0] != undefined) { + reviewers01 = $("#modal_product_add_pdservice_reviewers").select2("data")[0].text; + } + if ($("#modal_product_add_pdservice_reviewers").select2("data")[1] != undefined) { + reviewers02 = $("#modal_product_add_pdservice_reviewers").select2("data")[1].text; + } + if ($("#modal_product_add_pdservice_reviewers").select2("data")[2] != undefined) { + reviewers03 = $("#modal_product_add_pdservice_reviewers").select2("data")[2].text; + } + if ($("#modal_product_add_pdservice_reviewers").select2("data")[3] != undefined) { + reviewers04 = $("#modal_product_add_pdservice_reviewers").select2("data")[3].text; + } + if ($("#modal_product_add_pdservice_reviewers").select2("data")[4] != undefined) { + reviewers05 = $("#modal_product_add_pdservice_reviewers").select2("data")[4].text; + } + + const cTitle = $("#modal_product_add_pdservice_name").val(); + + $.ajax({ + url: "/auth-user/api/arms/pdService/addPdServiceNode.do", + type: "POST", + data: { + ref: 2, + c_title: cTitle, + c_type: "default", + c_pdservice_owner: $("#modal_product_add_pdservice_owner").select2("data")[0].text, + c_pdservice_reviewer01: reviewers01, + c_pdservice_reviewer02: reviewers02, + c_pdservice_reviewer03: reviewers03, + c_pdservice_reviewer04: reviewers04, + c_pdservice_reviewer05: reviewers05, + c_pdservice_contents: CKEDITOR.instances.modal_product_add_editor.getData() + }, + statusCode: { + 200: function () { + //모달 팝업 끝내고 + $("#btn_modal_product_add_close").trigger("click"); + //데이터 테이블 데이터 재 로드 + reloadDataWithSameOrdering(cTitle); + jSuccess("신규 제품 등록이 완료 되었습니다."); + } + }, + beforeSend: function () { + $("#btn_modal_product_add_submit").hide(); + }, + complete: function () { + $("#btn_modal_product_add_submit").show(); + }, + error: function (e) { + jError("신규 제품 등록 중 에러가 발생했습니다."); + } + }); + }); +} + +//////////////////////////////////////////////////////////////////////////////////////// +// 신규 제품(서비스) 삭제 버튼 +//////////////////////////////////////////////////////////////////////////////////////// +function product_detail_delete_btn_click(){ + $("#delete_pdservice").click(function () { + $.ajax({ + url: "/auth-user/api/arms/pdService/removeNode.do", + type: "delete", + data: { + c_id: $("#pdservice_table").DataTable().rows(".selected").data()[0].c_id + }, + statusCode: { + 200: function () { + jError($("#editview_pdservice_name").val() + "데이터가 삭제되었습니다."); + //데이터 테이블 데이터 재 로드 + reloadDataWithSameOrdering(""); + } + } + }); + }); +} + +//////////////////////////////////////////////////////////////////////////////////////// +// 제품(서비스) 기획서 변경 저장 버튼 +//////////////////////////////////////////////////////////////////////////////////////// +function product_detail_update_btn_click() { + + // 모달에서 편집하기 + $("#btn_modal_product_detail_edit_submit").click(function () { + var detailName = $("#modal_product_detail_edit_pdservice_detail_name").val().trim(); + var tempSelectId = selectId; + var tempSelectDetailId = selectedDetailId; + + if(selectedDetailId == "" || selectedDetailName == "") { + alert("선택된 제품(서비스) 디테일이 없습니다."); + return false; + } + + if (detailName == "") { + alert("제품(서비스) 디테일명을 입력해 주세요."); + return false; + } + $.ajax({ + url: "/auth-user/api/arms/pdServiceDetail/updateNode.do", + type: "put", + data: { + c_id: selectedDetailId, + c_title: detailName, + c_contents: CKEDITOR.instances.modal_product_detail_edit_editor.getData() + }, + statusCode: { + 200: function () { + $("#btn_modal_product_detail_edit_close").trigger("click"); + // dataTableLoad(); + pdServiceDataTableClick(tempSelectId); + productServiceDetailDataLoad(tempSelectId); + setTimeout(function() { + productServiceDetailDataLoad(tempSelectId); + }, 300); + setTimeout(function() { + detailClick(document.getElementById("pdservice_detail_link_" + selectedDetailId), tempSelectDetailId); + }, 500); + jSuccess(detailName + "의 데이터가 변경되었습니다."); + } + } + }); + + }); + + // 편집하기 + $("#btn_product_detail_edit_submit").click(function () { + var detailName = $("#report_pdservice_detail_name").val().trim(); + var tempSelectId = selectId; + var tempSelectDetailId = selectedDetailId; + if(selectedDetailId == "" || selectedDetailName == "") { + alert("선택된 제품(서비스) 디테일이 없습니다."); + return false; + } + + if (detailName == "") { + alert("제품(서비스) 디테일명을 입력해 주세요."); + return false; + } + + $.ajax({ + url: "/auth-user/api/arms/pdServiceDetail/updateNode.do", + type: "put", + data: { + c_id: selectedDetailId, + c_title: detailName, + c_contents: CKEDITOR.instances.report_pdservice_detail_editor.getData() + }, + statusCode: { + 200: function () { + // dataTableLoad(); + pdServiceDataTableClick(tempSelectId); + setTimeout(function() { + productServiceDetailDataLoad(tempSelectId); + }, 300); + setTimeout(function() { + detailClick(document.getElementById("pdservice_detail_link_" + selectedDetailId), tempSelectDetailId); + }, 500); + jSuccess(detailName + "의 데이터가 변경되었습니다."); + } + } + }); + }); + +} + +//////////////////////////////////////////////////////////////////////////////////////// +// 팝업에서 제품(서비스) 변경 저장 버튼 +//////////////////////////////////////////////////////////////////////////////////////// +function product_update_btn_click() { + $("#btn_modal_product_edit_submit").click(function () { + var owner = "none"; + if ($("#modal_product_edit_pdservice_owner").select2("data")[0] != undefined) { + owner = $("#modal_product_edit_pdservice_owner").select2("data")[0].text; + } + + var reviewers01 = "none"; + var reviewers02 = "none"; + var reviewers03 = "none"; + var reviewers04 = "none"; + var reviewers05 = "none"; + if ($("#modal_product_edit_pdservice_reviewers").select2("data")[0] != undefined) { + reviewers01 = $("#modal_product_edit_pdservice_reviewers").select2("data")[0].text; + } + if ($("#modal_product_edit_pdservice_reviewers").select2("data")[1] != undefined) { + reviewers02 = $("#modal_product_edit_pdservice_reviewers").select2("data")[1].text; + } + if ($("#modal_product_edit_pdservice_reviewers").select2("data")[2] != undefined) { + reviewers03 = $("#modal_product_edit_pdservice_reviewers").select2("data")[2].text; + } + if ($("#modal_product_edit_pdservice_reviewers").select2("data")[3] != undefined) { + reviewers04 = $("#modal_product_edit_pdservice_reviewers").select2("data")[3].text; + } + if ($("#modal_product_edit_pdservice_reviewers").select2("data")[4] != undefined) { + reviewers05 = $("#modal_product_edit_pdservice_reviewers").select2("data")[4].text; + } + + const cTitle = $("#modal_product_edit_pdservice_name").val(); + $.ajax({ + url: "/auth-user/api/arms/pdService/updateNode.do", + type: "put", + data: { + c_id: $("#pdservice_table").DataTable().rows(".selected").data()[0].c_id, + c_title: cTitle, + c_pdservice_owner: owner, + c_pdservice_reviewer01: reviewers01, + c_pdservice_reviewer02: reviewers02, + c_pdservice_reviewer03: reviewers03, + c_pdservice_reviewer04: reviewers04, + c_pdservice_reviewer05: reviewers05, + c_pdservice_contents: CKEDITOR.instances.modal_product_edit_editor.getData() + }, + statusCode: { + 200: function () { + //모달 팝업 끝내고 + $("#btn_modal_product_edit_close").trigger("click"); + reloadDataWithSameOrdering(cTitle); + jSuccess($("#modal_product_edit_pdservice_name").val() + "의 데이터가 변경되었습니다."); + + pdServiceDataTableClick(selectId); + } + } + }); + }); +} + + +//////////////////////////////////////////////////////////////////////////////////////// +// 최초 dataTable_build 시 정렬 기준을 dataTableRef.ajax.reload 때마다 가져와서 세팅한다. +// 일관 된 정렬을 보장하기 위한 함수이다. +//////////////////////////////////////////////////////////////////////////////////////// +function reloadDataWithSameOrdering(cTitle) { + const currentOrder = dataTableRef.order(); + dataTableRef.ajax.reload(function() { + dataTableRef.order(currentOrder).draw(); + if(cTitle === "") return false; + $("#pdservice_table tbody tr").each(function() { + const rowTitle = $(this).find("td label").text(); + if (rowTitle === cTitle) { + $(this).click(); + return false; + } + }); + }); +}