//////////////////////////////////////////////////////////////////////////////////////// //Document Ready //////////////////////////////////////////////////////////////////////////////////////// var selectedPdServiceId; // 제품(서비스) 아이디 var reqStatusDataTable; var dataTableRef; function execDocReady() { //좌측 메뉴 setSideMenu( "sidebar_menu_requirement", "sidebar_menu_requirement_status", "requirement_elements_collapse" ); //제품(서비스) 셀렉트 박스 이니시에이터 makePdServiceSelectBox(); //버전 멀티 셀렉트 박스 이니시에이터 makeVersionMultiSelectBox(); } //////////////////////////////////////////////////////////////////////////////////////// //제품 서비스 셀렉트 박스 //////////////////////////////////////////////////////////////////////////////////////// function makePdServiceSelectBox(){ //제품 서비스 셀렉트 박스 이니시에이터 $(".chzn-select").each(function(){ $(this).select2($(this).data()); }); //제품 서비스 셀렉트 박스 데이터 바인딩 $.ajax({ url: "/auth-user/api/arms/pdService/getPdServiceMonitor.do", type: "GET", contentType: "application/json;charset=UTF-8", dataType : "json", progress: true }).done(function(data) { for(var k in data){ var obj = data[k]; var newOption = new Option(obj.c_title, obj.c_id, false, false); $('#country').append(newOption).trigger('change'); } }).fail(function(e) { }).always(function() { }); } // end makePdServiceSelectBox() $('#country').on("select2:open", function () { //슬림스크롤 makeSlimScroll(".select2-results__options"); }); // --- select2 ( 제품(서비스) 검색 및 선택 ) 이벤트 --- // $('#country').on('select2:select', function (e) { // 제품( 서비스 ) 선택했으니까 자동으로 버전을 선택할 수 있게 유도 // 디폴트는 base version 을 선택하게 하고 ( select all ) //~> 이벤트 연계 함수 :: Version 표시 jsTree 빌드 bind_VersionData_By_PdService(); var checked = $('#checkbox1').is(':checked'); var endPointUrl = ""; if(checked){ endPointUrl = "/T_ARMS_REQSTATUS_" + $('#country').val() + "/getStatusMonitor.do?disable=true"; }else{ endPointUrl = "/T_ARMS_REQSTATUS_" + $('#country').val() + "/getStatusMonitor.do?disable=false"; } common_dataTableLoad($('#country').val(), endPointUrl); }); //////////////////////////////////////////////////////////////////////////////////////// //버전 멀티 셀렉트 박스 //////////////////////////////////////////////////////////////////////////////////////// function makeVersionMultiSelectBox(){ //버전 선택 셀렉트 박스 이니시에이터 $('.multiple-select').multipleSelect({ filter: true, onClose: function () { console.log('onOpen event fire!\n'); var checked = $('#checkbox1').is(':checked'); var endPointUrl = ""; var versionTag = $('.multiple-select').val(); if(checked){ endPointUrl = "/T_ARMS_REQSTATUS_" + $('#country').val() + "/getStatusMonitor.do?disable=true&versionTag=" + versionTag; common_dataTableLoad($('#country').val(), endPointUrl); }else{ endPointUrl = "/T_ARMS_REQSTATUS_" + $('#country').val() + "/getStatusMonitor.do?disable=false&versionTag=" + versionTag; common_dataTableLoad($('#country').val(), endPointUrl); } } }); } function bind_VersionData_By_PdService(){ $(".multiple-select option").remove(); $.ajax({ url: "/auth-user/api/arms/pdServiceVersion/getVersion.do?c_id=" + $('#country').val(), type: "GET", contentType: "application/json;charset=UTF-8", dataType : "json", progress: true, statusCode: { 200: function(data) { ////////////////////////////////////////////////////////// for(var k in data){ var obj = data[k]; var $opt = $('', { value: obj.c_id, text: " " + obj.c_title, }); //$('#multiversion').append($opt); //$('#edit_multi_version').append($opt); $('.multiple-select').append($opt); } if(data.length > 0){ console.log("display 재설정."); } //$('#multiversion').multipleSelect('refresh'); //$('#edit_multi_version').multipleSelect('refresh'); $('.multiple-select').multipleSelect('refresh'); ////////////////////////////////////////////////////////// jSuccess("버전 조회가 완료 되었습니다."); }, }, beforeSend:function(){ //$("#regist_pdservice").hide(); 버튼 감추기 }, complete:function(){ //$("#regist_pdservice").show(); 버튼 보이기 }, error:function(e){ jError("버전 조회 중 에러가 발생했습니다."); } }); } //////////////////////////////////////////////////////////////////////////////////////// //데이터 테이블 //////////////////////////////////////////////////////////////////////////////////////// // -------------------- 데이터 테이블을 만드는 템플릿으로 쓰기에 적당하게 리팩토링 함. ------------------ // function common_dataTableLoad(selectId, endPointUrl) { var columnList = [ { name: "c_pdservice_link", title: "제품(서비스) 아이디", data: "c_pdservice_link", visible: false }, { name: "c_pdservice_name", title: "제품(서비스)", data: "c_pdservice_name", visible: true }, { name: "c_version_link", title: "제품(서비스) 버전 아이디", data: "c_version_link", visible: false }, { name: "c_version_name", title: "Version", data: "c_version_name", visible: true }, { name: "c_jira_project_link", title: "지라 프로젝트 아이디", data: "c_jira_project_link", visible: false }, { name: "c_jira_project_name", title: "JIRA Project", data: "c_jira_project_name", render: function (data, type, row, meta) { if (type === 'display') { var link = 'http://www.313.co.kr/jira/browse/'; return '' + data + ''; } return data; }, className: "dt-body-left", visible: true }, { name: "c_jira_version_link", title: "지라 프로젝트 버전 아이디", data: "c_jira_version_link", visible: false }, { name: "c_jira_version_name", title: "JIRA Version", data: "c_jira_version_name", visible: true }, { name: "c_jira_version_name", title: "JIRA Version", data: "c_jira_version_name", render: function (data, type, row, meta) { if (type === 'display') { if (isEmpty(data)) { return ""; } else { return "