//////////////////////////////////////////////////////////////////////////////////////// //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 }).done(function(data) { for(var k in data){ var obj = data[k]; var $opt = $('', { value: obj.c_id, text: obj.c_title, }) $('.multiple-select').append($opt); } if(data.length > 0){ console.log("display 재설정."); } $('.multiple-select').multipleSelect('refresh'); }).fail(function(e) { }).always(function() { }); } //////////////////////////////////////////////////////////////////////////////////////// //슬림스크롤 //////////////////////////////////////////////////////////////////////////////////////// function makeSlimScroll(targetElement) { $(targetElement).slimScroll({ height: '200px', railVisible: true, railColor: '#222', railOpacity: 0.3, wheelStep: 10, allowPageScroll: false, disableFadeOut: false }); } //////////////////////////////////////////////////////////////////////////////////////// //데이터 테이블 //////////////////////////////////////////////////////////////////////////////////////// // -------------------- 데이터 테이블을 만드는 템플릿으로 쓰기에 적당하게 리팩토링 함. ------------------ // 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-center", 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_req_link", title: "요구사항 아이디", data: "c_req_link", visible: false }, { name: "c_req_name", title: "요구사항", data: "c_req_name", render: function (data, type, row, meta) { if (type === 'display') { if ( isEmpty(data) ){ return ""; }else { return '