Index: arms/html/reportFullData/content-container.html
===================================================================
diff -u -r652d16eccc7f5b9d00e79ac7b3ed02d5380708dc -raf1a8d031a134592f214bce4a095488884394132
--- arms/html/reportFullData/content-container.html (.../content-container.html) (revision 652d16eccc7f5b9d00e79ac7b3ed02d5380708dc)
+++ arms/html/reportFullData/content-container.html (.../content-container.html) (revision af1a8d031a134592f214bce4a095488884394132)
@@ -234,7 +234,7 @@
style="margin-bottom: 5px !important">
@@ -276,15 +276,10 @@
class="controls form-group select-box"
style="margin-bottom: 5px !important">
+ multiple="multiple"
+ id="multiple-alm-project"
+ class="multiple-select btn-block darkBack"
+ placeholder=" Select ALM Project">
Index: arms/js/reportFullData.js
===================================================================
diff -u -rc2868d83d164a7d0a90e63149cd7dca3a87e5615 -raf1a8d031a134592f214bce4a095488884394132
--- arms/js/reportFullData.js (.../reportFullData.js) (revision c2868d83d164a7d0a90e63149cd7dca3a87e5615)
+++ arms/js/reportFullData.js (.../reportFullData.js) (revision af1a8d031a134592f214bce4a095488884394132)
@@ -1,5 +1,6 @@
var selectedPdServiceId; // 제품(서비스) 아이디
-var selectedVersionId; // 선택된 버전 아이디
+var selectedVersionIds; // 선택된 버전 아이디
+var selectedAlmProjectIds; // 선택된 ALM Project 아이디
var pdServiceListData;
var versionListData;
@@ -103,6 +104,8 @@
makePdServiceSelectBox();
//버전 멀티 셀렉트 박스 이니시에이터
makeVersionMultiSelectBox();
+ // ALM 프로젝트 멀티 셀렉트 박스 이니시에이터
+ makeProjectMultiSelectBox();
//날짜
dateTimePicker();
@@ -227,14 +230,11 @@
// 디폴트는 base version 을 선택하게 하고 ( select all )
//~> 이벤트 연계 함수 :: Version 표시 jsTree 빌드
bind_VersionData_By_PdService();
- drawExcel("spreadsheet", mockData.excelMock);
- // API 호출 후 redraw 방식
- table.redrawTable(mockData.assignees);
});
} // end makePdServiceSelectBox()
function bind_VersionData_By_PdService() {
- $(".multiple-select option").remove();
+ $("#multiple-version option").remove();
$.ajax({
url: "/auth-user/api/arms/pdService/getVersionList.do?c_id=" + $("#selected_pdService").val(),
type: "GET",
@@ -252,19 +252,21 @@
"start_date" : obj.c_pds_version_start_date,
"end_date" : obj.c_pds_version_end_date});
var newOption = new Option(obj.c_title, obj.c_id, true, false);
- $(".multiple-select").append(newOption);
+ $("#multiple-version").append(newOption);
}
- var versionTag = $(".multiple-select").val();
- selectedVersionId = pdServiceVersionIds.join(",");
-
+ selectedVersionIds = pdServiceVersionIds.join(",");
+
+ $("#multiple-version")
+ .multipleSelect("refresh")
+ .multipleSelect("checkAll");
+
// 시작일 종료일 세팅(datetimepicker)
setEdgeDateRange(versionListData);
-
+ // 선택 된 제품 버전에 해당하는 ALM 프로젝트 조회
+ fetchJiraProjects(selectedPdServiceId, selectedVersionIds);
if (data.length > 0) {
console.log("display 재설정.");
}
-
- $(".multiple-select").multipleSelect("refresh");
}
}
});
@@ -275,18 +277,14 @@
////////////////////////////////////////
function makeVersionMultiSelectBox() {
//버전 선택시 셀렉트 박스 이니시에이터
- $(".multiple-select").multipleSelect({
+ $("#multiple-version").multipleSelect({
filter: true,
// selectBox 닫혔을 때
onClose: function() {
- console.log("onOpen event fire!\n");
-
- var checked = $("#checkbox1").is(":checked");
- var endPointUrl = "";
- var versionTag = $(".multiple-select").val();
+ var versionTag = $("#multiple-version").val();
console.log("[ fullDataSheet :: makeVersionMultiSelectBox ] :: versionTag");
console.log(versionTag);
- selectedVersionId = versionTag.join(",");
+ selectedVersionIds = versionTag.join(",");
if (versionTag === null || versionTag == "") {
alert("버전이 선택되지 않았습니다.");
@@ -296,17 +294,90 @@
let filteredVersionData = versionListData.filter(item => versionTag.includes(item.c_id.toString()));
// 시작일 종료일 세팅(datetimepicker)
setEdgeDateRange(filteredVersionData);
+ fetchJiraProjects(selectedPdServiceId, selectedVersionIds);
- $(".ms-parent").css("z-index", 1000);
+ $("#multiple-version").siblings(".ms-parent").css("z-index", 1000);
},
// selectBox 열렸을 때
onOpen: function() {
- $(".ms-parent").css("z-index", 9999);
+ $("#multiple-version").siblings(".ms-parent").css("z-index", 9999);
}
});
}
+function makeProjectMultiSelectBox () {
+ // ALM 프로젝트 선택 시 셀렉트 박스 이니시에이터
+ $("#multiple-alm-project").multipleSelect({
+ filter: true,
+ onClose: function() {
+ var projectIds = $("#multiple-alm-project").val();
+ selectedAlmProjectIds = projectIds.join(",");
+ if (selectedAlmProjectIds === null || selectedAlmProjectIds == "") {
+ alert("ALM 프로젝트가 선택되지 않았습니다.");
+ return;
+ }
+
+ fetchExcelData();
+
+ $("#multiple-alm-project").siblings(".ms-parent").css("z-index", 1000);
+ },
+ onOpen: function() {
+ $("#multiple-alm-project").siblings(".ms-parent").css("z-index", 9999);
+ }
+ });
+}
+
////////////////////////////////////////
+// 선택 된 제품, 제품 버전 ID 값을 서버에 전달하여 관련 ALM 프로젝트 목록 조회
+////////////////////////////////////////
+function fetchJiraProjects(pdServiceId, versionIds = null) {
+ let url = "/auth-user/api/arms/jiraProjectPure/getJiraProjects.do?pdServiceId=" + pdServiceId;
+
+ if (versionIds) {
+ url += "&pdServiceVersionIds=" + versionIds;
+ }
+
+ $("#multiple-alm-project option").remove();
+
+ $.ajax({
+ url: url,
+ type: "GET",
+ dataType: "json",
+ success: function(data) {
+ console.log("[Jira Projects] Data:", data);
+ let projectIds = [];
+ for (var k in data.response) {
+ var obj = data.response[k];
+ projectIds.push(obj.c_id);
+ var newOption = new Option(obj.c_title, obj.c_id, true, false);
+ $("#multiple-alm-project").append(newOption);
+ }
+ selectedAlmProjectIds = projectIds.join(",");
+
+ $("#multiple-alm-project")
+ .multipleSelect("refresh")
+ .multipleSelect("checkAll");
+
+ fetchExcelData();
+
+ },
+ error: function(xhr, status, error) {
+ console.error("[Jira Projects] Error:", error);
+ }
+ });
+}
+
+////////////////////////////////////////
+// TODO: 모든 검색 필터(제품, 제품 버전, ALM 프로젝트, 날짜 등) 선택이 완료 된 경우, 데이터를 조회한다.
+////////////////////////////////////////
+function fetchExcelData() {
+ // TODO: 필수 인자 서버로 전달하여 API 호출. 응답 데이터 받아 렌더링
+ drawExcel("spreadsheet", mockData.excelMock);
+ table.redrawTable(mockData.assignees);
+}
+
+
+////////////////////////////////////////
// 기간 설정 세팅
////////////////////////////////////////
function dateTimePicker() {