+
+
\ No newline at end of file
Index: arms/js/analysisResource.js
===================================================================
diff -u -r07a5aaa57c3dab863d21b5261f8f1bbcca8ece73 -r6b402a9eef1048f96de284d6030d7077a474ac8a
--- arms/js/analysisResource.js (.../analysisResource.js) (revision 07a5aaa57c3dab863d21b5261f8f1bbcca8ece73)
+++ arms/js/analysisResource.js (.../analysisResource.js) (revision 6b402a9eef1048f96de284d6030d7077a474ac8a)
@@ -24,7 +24,8 @@
[ "../reference/jquery-plugins/datetimepicker-2.5.20/build/jquery.datetimepicker.min.css",
"../reference/light-blue/lib/bootstrap-datepicker.js",
"../reference/jquery-plugins/datetimepicker-2.5.20/build/jquery.datetimepicker.full.min.js",
- "../reference/lightblue4/docs/lib/widgster/widgster.js"],
+ "../reference/lightblue4/docs/lib/widgster/widgster.js",
+ "../reference/lightblue4/docs/lib/slimScroll/jquery.slimscroll.min.js"],
[ "../reference/jquery-plugins/dataTables-1.10.16/media/css/jquery.dataTables_lightblue4.css",
"../reference/jquery-plugins/dataTables-1.10.16/extensions/Responsive/css/responsive.dataTables_lightblue4.css",
@@ -45,10 +46,432 @@
.then(function() {
// 사이드 메뉴 색상 설정
$('.widget').widgster();
- setSideMenu("sidebar_menu_dashboard", "sidebar_menu_dashboard_home");
+ setSideMenu("sidebar_menu_analysis", "sidebar_menu_analysis_resource");
+
+ //제품(서비스) 셀렉트 박스 이니시에이터
+ makePdServiceSelectBox();
+
+ //버전 멀티 셀렉트 박스 이니시에이터
+ makeVersionMultiSelectBox();
})
.catch(function() {
console.error('플러그인 로드 중 오류 발생');
});
}
+
+
+///////////////////////
+//제품 서비스 셀렉트 박스
+//////////////////////
+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,
+ statusCode: {
+ 200: function (data) {
+ //////////////////////////////////////////////////////////
+ for (var k in data.response) {
+ var obj = data.response[k];
+ var newOption = new Option(obj.c_title, obj.c_id, false, false);
+ $("#selected_pdService").append(newOption).trigger("change");
+ }
+ //////////////////////////////////////////////////////////
+ }
+ }
+ });
+
+
+ $("#selected_pdService").on("select2:open", function () {
+ //슬림스크롤
+ makeSlimScroll(".select2-results__options");
+ });
+
+ // --- select2 ( 제품(서비스) 검색 및 선택 ) 이벤트 --- //
+ $("#selected_pdService").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_" + $("#selected_pdService").val() + "/getStatusMonitor.do?disable=true";
+ } else {
+ endPointUrl = "/T_ARMS_REQSTATUS_" + $("#selected_pdService").val() + "/getStatusMonitor.do?disable=false";
+ }
+
+ //statisticsMonitor($("#selected_pdService").val()); //ES모으는중 by YHS
+
+
+ });
+} // end makePdServiceSelectBox()
+
+////////////////////
+//버전 멀티 셀렉트 박스
+////////////////////
+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();
+ selectedVersionId = versionTag.join(',');
+
+ donutChart($("#selected_pdService").val(), selectedVersionId);
+ combinationChart($("#selected_pdService").val(), selectedVersionId);
+
+ if (checked) {
+ endPointUrl =
+ "/T_ARMS_REQSTATUS_" + $("#selected_pdService").val() + "/getStatusMonitor.do?disable=true&versionTag=" + versionTag;
+ //dataTableLoad($("#selected_pdService").val(), endPointUrl);
+ } else {
+ endPointUrl =
+ "/T_ARMS_REQSTATUS_" + $("#selected_pdService").val() + "/getStatusMonitor.do?disable=false&versionTag=" + versionTag;
+ //dataTableLoad($("#selected_pdService").val(), endPointUrl);
+ }
+ }
+ });
+}
+
+function bind_VersionData_By_PdService() {
+ $(".multiple-select option").remove();
+ $.ajax({
+ url: "/auth-user/api/arms/pdService/getVersionList.do?c_id=" + $("#selected_pdService").val(),
+ type: "GET",
+ dataType: "json",
+ progress: true,
+ statusCode: {
+ 200: function (data) {
+ //////////////////////////////////////////////////////////
+ for (var k in data.response) {
+ var obj = data.response[k];
+ var $opt = $("
", {
+ value: obj.c_id,
+ text: obj.c_title
+ });
+ $(".multiple-select").append($opt);
+ }
+
+ if (data.length > 0) {
+ console.log("display 재설정.");
+ }
+ //$('#multiversion').multipleSelect('refresh');
+ //$('#edit_multi_version').multipleSelect('refresh');
+ $(".multiple-select").multipleSelect("refresh");
+ //////////////////////////////////////////////////////////
+ }
+ }
+ });
+}
+
+// 데이터 테이블 구성 이후 꼭 구현해야 할 메소드 : 열 클릭시 이벤트
+function dataTableClick(tempDataTable, selectedData) {
+ console.log(selectedData);
+}
+
+//데이터 테이블 그리고 난 후 시퀀스 이벤트
+function dataTableCallBack(settings, json) {
+ console.log("check");
+}
+
+//데이터 테이블 그리고 난 후 시퀀스 이벤트
+function dataTableDrawCallback(tableInfo) {
+ /*$("#" + tableInfo.sInstance)
+ .DataTable()
+ .columns.adjust()
+ .responsive.recalc();*/
+}
+
+// -------------------- 데이터 테이블을 만드는 템플릿으로 쓰기에 적당하게 리팩토링 함. ------------------ //
+function 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",
+ render: function (data, type, row, meta) {
+ if (isEmpty(data) || data === "unknown") {
+ return "
N/A
";
+ } else {
+ return "
" + getStrLimit(data, 25) + "
";
+ }
+ return data;
+ },
+ className: "dt-body-left",
+ visible: true
+ },
+ { name: "c_pds_version_link", title: "제품(서비스) 버전 아이디", data: "c_pds_version_link", visible: false },
+ {
+ name: "c_pds_version_name",
+ title: "제품(서비스) 버전",
+ data: "c_pds_version_name",
+ render: function (data, type, row, meta) {
+ if (isEmpty(data) || data === "unknown") {
+ return "
N/A
";
+ } else {
+ return "
" + data + "
";
+ }
+ return data;
+ },
+ className: "dt-body-left",
+ visible: true
+ },
+ { name: "c_req_link", title: "요구사항 아이디", data: "c_req_link", visible: false },
+ { name: "c_issue_url", title: "요구사항 이슈 주소", data: "c_issue_url", visible: false },
+ {
+ name: "c_req_name",
+ title: "요구사항",
+ data: "c_req_name",
+ render: function (data, type, row, meta) {
+ if (isEmpty(data) || data === "unknown") {
+ return "
N/A
";
+ } else {
+ return "
" + data + "
";
+ }
+ return data;
+ },
+ className: "dt-body-left",
+ visible: true
+ },
+ { name: "c_jira_server_link", title: "지라 서버 아이디", data: "c_jira_server_link", visible: false },
+ { name: "c_jira_server_url", title: "지라 서버 주소", data: "c_jira_server_url", visible: false },
+ {
+ name: "c_jira_server_name",
+ title: "JIRA 서버명",
+ data: "c_jira_project_name",
+ render: function (data, type, row, meta) {
+ if (isEmpty(data) || data === "unknown") {
+ return "
N/A
";
+ } else {
+ return "
" + data + "
";
+ }
+ return data;
+ },
+ className: "dt-body-left",
+ visible: true
+ },
+ { name: "c_jira_project_link", title: "지라 프로젝트 아이디", data: "c_jira_project_link", visible: false },
+ { name: "c_jira_project_url", title: "지라 프로젝트 주소", data: "c_jira_project_url", visible: false },
+ {
+ name: "c_jira_project_name",
+ title: "JIRA 프로젝트명",
+ data: "c_jira_project_name",
+ render: function (data, type, row, meta) {
+ if (isEmpty(data) || data === "unknown") {
+ return "
N/A
";
+ } else {
+ return "
" + data + "
";
+ }
+ return data;
+ },
+ className: "dt-body-left",
+ visible: true
+ },
+ {
+ name: "c_jira_project_key",
+ title: "JIRA 프로젝트키",
+ data: "c_jira_project_key",
+ render: function (data, type, row, meta) {
+ if (isEmpty(data) || data === "unknown") {
+ return "
N/A
";
+ } else {
+ return "
" + data + "
";
+ }
+ return data;
+ },
+ className: "dt-body-left",
+ visible: true
+ },
+ {
+ name: "c_issue_key",
+ title: "요구사항 이슈 키",
+ data: "c_issue_key",
+ render: function (data, type, row, meta) {
+ if (isEmpty(data) || data === "unknown") {
+ return "
N/A
";
+ } else {
+ var _render =
+ '
' + data +
+ '"+
+ "
";
+ return _render;
+ }
+ return data;
+ },
+ className: "dt-body-left",
+ visible: true
+ },
+ { name: "c_issue_priority_link", title: "요구사항 이슈 우선순위 아이디", data: "c_issue_priority_link", visible: false },
+ {
+ name: "c_issue_priority_name",
+ title: "요구사항 이슈 우선순위",
+ data: "c_issue_priority_name",
+ render: function (data, type, row, meta) {
+ if (isEmpty(data) || data === "unknown") {
+ return "
N/A
";
+ } else {
+ return "
" + data + "
";
+ }
+ return data;
+ },
+ className: "dt-body-left",
+ visible: true
+ },
+ { name: "c_issue_status_link", title: "요구사항 이슈 상태 아이디", data: "c_issue_status_link", visible: false },
+ {
+ name: "c_issue_status_name",
+ title: "요구사항 이슈 상태",
+ data: "c_issue_status_name",
+ render: function (data, type, row, meta) {
+ if (isEmpty(data) || data === "unknown") {
+ return "
N/A
";
+ } else {
+ return "
" + data + "
";
+ }
+ return data;
+ },
+ className: "dt-body-left",
+ visible: true
+ },
+ { name: "c_issue_resolution_link", title: "요구사항 이슈 해결책 아이디", data: "c_issue_resolution_link", visible: false },
+ {
+ name: "c_issue_resolution_name",
+ title: "요구사항 이슈 해결책",
+ data: "c_issue_resolution_name",
+ render: function (data, type, row, meta) {
+ if (isEmpty(data) || data === "unknown") {
+ return "
N/A
";
+ } else {
+ return "
" + data + "
";
+ }
+ return data;
+ },
+ className: "dt-body-left",
+ visible: true
+ },
+ {
+ name: "c_issue_reporter",
+ title: "요구사항 이슈 보고자",
+ data: "c_issue_reporter",
+ render: function (data, type, row, meta) {
+ if (isEmpty(data) || data === "unknown") {
+ return "
N/A
";
+ } else {
+ return "
" + data + "
";
+ }
+ return data;
+ },
+ className: "dt-body-left",
+ visible: true
+ },
+ {
+ name: "c_issue_assignee",
+ title: "요구사항 이슈 할당자",
+ data: "c_issue_assignee",
+ render: function (data, type, row, meta) {
+ if (isEmpty(data) || data === "unknown") {
+ return "
N/A
";
+ } else {
+ return "
" + data + "
";
+ }
+ return data;
+ },
+ className: "dt-body-left",
+ visible: true
+ },
+ {
+ name: "c_issue_create_date",
+ title: "요구사항 이슈 생성일자",
+ data: "c_issue_create_date",
+ render: function (data, type, row, meta) {
+ if (isEmpty(data) || data === "unknown") {
+ return "
N/A
";
+ } else {
+ return "
" + dateFormat(data) + "
";
+ }
+ return data;
+ },
+ className: "dt-body-left",
+ visible: true
+ },
+ {
+ name: "c_issue_update_date",
+ title: "요구사항 이슈 최근 업데이트 일자",
+ data: "c_issue_update_date",
+ render: function (data, type, row, meta) {
+ if (isEmpty(data) || data === "unknown") {
+ return "
N/A
";
+ } else {
+ return "
" + dateFormat(data) + "
";
+ }
+ return data;
+ },
+ className: "dt-body-left",
+ visible: true
+ }
+ ];
+ var rowsGroupList = [1,3,6];
+ var columnDefList = [
+ {
+ orderable: false,
+ className: "select-checkbox",
+ targets: 0
+ }
+ ];
+ var orderList = [[1, "asc"]];
+ var jquerySelector = "#reqstatustable";
+ var ajaxUrl = "/auth-user/api/arms/reqStatus" + endPointUrl;
+ var jsonRoot = "";
+ var buttonList = [
+ "copy",
+ "excel",
+ "print",
+ {
+ extend: "csv",
+ text: "Export csv",
+ charset: "utf-8",
+ extension: ".csv",
+ fieldSeparator: ",",
+ fieldBoundary: "",
+ bom: true
+ },
+ {
+ extend: "pdfHtml5",
+ orientation: "landscape",
+ pageSize: "LEGAL"
+ }
+ ];
+ var selectList = {};
+ var isServerSide = false;
+
+ reqStatusDataTable = dataTable_build(
+ jquerySelector,
+ ajaxUrl,
+ jsonRoot,
+ columnList,
+ rowsGroupList,
+ columnDefList,
+ selectList,
+ orderList,
+ buttonList,
+ isServerSide
+ );
+}
+// -------------------- 데이터 테이블을 만드는 템플릿으로 쓰기에 적당하게 리팩토링 함. ------------------ //
\ No newline at end of file