Index: arms/detail.html =================================================================== diff -u -rc16445099412b1817c9f92dd1e856c0512875f53 -r6625dc335eb751d8c9f8bc04bc66ab96f9be40a2 --- arms/detail.html (.../detail.html) (revision c16445099412b1817c9f92dd1e856c0512875f53) +++ arms/detail.html (.../detail.html) (revision 6625dc335eb751d8c9f8bc04bc66ab96f9be40a2) @@ -1,878 +1,761 @@ - - a-RMS + + a-RMS - - - - + + + + - - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + + - - - + + + - - + + - - + + - - - - + + + + - - + + - - + + - - - + + + - - - - - + + + + + - - - + + + + + - - + + + + + - - -
-

A-RMS

-
-
님, 환영합니다! -
-
-
- e-mail: - - -
-
-
-
- - -
-
-

요구사항 조회 시스템

-

Requirement

- - - -
-
- -
- -
-
- -
-

요구사항 상세

-

개발자를 위한 요구사항의 상세 정보를 확인하기 위한 페이지.

-
- -
-
-

요구사항 세부 내용

-

- -

-
- -
-
    - -
  • -
    - 요구사항 제품서비스 -
    -
    -
    -
    -
    -
    -
    -
  • - -
  • -
    - 요구사항 아이디 -
    -
    -
    -
    -
    -
    -
    -
  • - -
  • -
    - 요구사항 제목 -
    -
    -
    -
    -
    -
    -
    -
  • -
-
- -
-
    - -
  • -
    - 요구사항 연관 버전 -
    -
    -
    -
    -
    -
    -
    -
  • - -
  • -
    - 요구사항 작성일 -
    -
    -
    -
    -
    -
    -
    -
  • - -
  • -
    - 요구사항 작성자 -
    -
    -
    -
    -
    -
    -
    -
  • -
-
+ + -
-
+ +
+
+

요구사항 조회 시스템

+

Requirement

- -
-
+ -
-

제품(서비스) 버전별 상세

-

제품(서비스)의 버전별 상세 정보를 확인할 수 있습니다.

-
- -
-
-

버전 목록

-
-
- 제품(서비스) :  - -
-
-
-
-
-
- -
-

버전 상세정보

-
-
- 선택한 버전 :  - -
-
-
    - -
  • -
    - 버전 구현 시작일 -
    -
    -
    -
    -
    -
    -
    -
  • - -
  • -
    - 버전 구현 종료일 -
    -
    -
    -
    -
    -
    -
    -
  • - -
  • -
    - 버전 내용 -
    -
  • -
  • -
    -
    -
    -
  • -
-
-
-
-
-
-
- - - -
-
-
-

요구사항 전체 목록

-

해당 탭은 제품 서비스의 요구사항 전체 목록을 확인할 수 있는 탭입니다.

+
-
- -
-

요구사항 목록

+
+ +
+
-
- 제품(서비스) :  +
+

요구사항 상세

+

개발자를 위한 요구사항의 상세 정보를 확인하기 위한 페이지.

-
-
-
- -
-

해당 상세 정보

-
- 최신 버전 :  -
-
-
    - -
  • -
    - 요구사항 연관 버전 +
    +
    +

    요구사항 세부 내용

    +

    + +

    +
    + +
    +
      + +
    • +
      + 요구사항 제품서비스 +
      +
      +
      +
      +
      +
      +
      +
    • + +
    • +
      + 요구사항 아이디 +
      +
      +
      +
      +
      +
      +
      +
    • + +
    • +
      + 요구사항 제목 +
      +
      +
      +
      +
      +
      +
      +
    • +
    -
    -
    -
    -
    -
    + +
    +
      + +
    • +
      + 요구사항 연관 버전 +
      +
      +
      +
      +
      +
      +
      +
    • + +
    • +
      + 요구사항 작성일 +
      +
      +
      +
      +
      +
      +
      +
    • + +
    • +
      + 요구사항 작성자 +
      +
      +
      +
      +
      +
      +
      +
    • +
    -
  • - -
  • -
    - 요구사항 아이디 +
    + +
    +
    +
      + +
    • +
      + 제품(서비스) 리뷰어 +
      +
      +
      +
    • +
    • +
      + INFO: 공동 책임자 +
      +
      +
      +
      +
      +
      +
      +
    • +
    • +
      + INFO: 공동 책임자 +
      +
      +
      +
      +
      +
      +
      +
    • +
    -
    -
    -
    -
    -
    +
    +
      + +
    • +
      + INFO: 공동 책임자 +
      +
      +
      +
      +
      +
      +
      +
    • +
    • +
      + INFO: 공동 책임자 +
      +
      +
      +
      +
      +
      +
      +
    • +
    • +
      + INFO: 공동 책임자 +
      +
      +
      +
      +
      +
      +
      +
    • +
    -
  • -
  • -
    - 요구사항 제목 +
    + +
    +
      + +
    • +
      + 요구사항 상세 +
      +
    • +
    +
    -
    -
    -
    -
    -
    -
    -
  • -
  • -
    - 요구사항 작성자 -
    -
    -
    -
    -
    -
    -
    -
  • -
  • -
    - 요구사항 최근 작성일 -
    -
    -
    -
    -
    -
    -
    -
  • -
  • -
    - 제품(서비스) 리뷰어 -
    -
    -
    -
    -
    -
    -
    -
  • - -
  • -
    -
    -
    -
    -
    -
    -
    -
    -
  • - -
  • -
    -
    -
    -
    -
    -
    -
    -
    -
  • - -
  • -
    -
    -
    -
    -
    -
    -
    -
    -
  • - -
  • -
    -
    -
    -
    -
    -
    -
    -
    -
  • - - -
  • -
    - 요구사항 상세 -
    -
    - -
    -
  • -
+
+

+

+
-
- -
- -
-
- - -
-
- -
-

제품관련 파일목록

-

해당 탭은 제품관련 이미지, 기획서, 기타 파일들을 확인할 수 있는 탭입니다.

-
- -
-
-
    -
  • All
  • -
  • Image
  • -
  • Document
  • -
  • Etc
  • -
-
+
-
-
+ +
+
-
-
+
+

제품(서비스) 버전별 상세

+

제품(서비스)의 버전별 상세 정보를 확인할 수 있습니다.

+
- -
-
-
-

Q & A

-

제품 서비스에 대한 질문 및 답변을 확인할 수 있는 탭입니다.

-
-
-
-
-
-
-
    -
-
-
-
- +
+
+

버전 목록

+
+
+ 제품(서비스) :  + +
+
+
+
+
-
- +
+

버전 상세정보

+
+
+ 선택한 버전 :  + +
+
+
    + +
  • +
    + 버전 구현 시작일 +
    +
    +
    +
    +
    +
    +
    +
  • + +
  • +
    + 버전 구현 종료일 +
    +
    +
    +
    +
    +
    +
    +
  • + +
  • +
    + 버전 내용 +
    +
  • +
  • +
    +
    +
    +
  • +
+
-
+
+
+ - - - + +
+
+
+

요구사항 전체 목록

+

해당 탭은 제품 서비스의 요구사항 전체 목록을 확인할 수 있는 탭입니다.

+
- +
+

요구사항 목록

-
-

Q & A 게시판

-
+
+ 제품(서비스) :  +
-
+
+
+
+ +
+

해당 상세 정보

+
+ 최신 버전 :  +
+
+
    + +
  • +
    + 요구사항 연관 버전 +
    +
    +
    +
    +
    +
    +
    +
  • + +
  • +
    + 요구사항 아이디 +
    +
    +
    +
    +
    +
    +
    +
  • +
  • +
    + 요구사항 제목 +
    +
    +
    +
    +
    +
    +
    +
  • +
  • +
    + 요구사항 작성자 +
    +
    +
    +
    +
    +
    +
    +
  • +
  • +
    + 요구사항 최근 작성일 +
    +
    +
    +
    +
    +
    +
    +
  • +
  • +
    + 제품(서비스) 리뷰어 +
    +
    +
    +
    +
    +
    +
    +
  • + +
  • +
    +
    +
    +
    +
    +
    +
    +
    +
  • + +
  • +
    +
    +
    +
    +
    +
    +
    +
    +
  • + +
  • +
    +
    +
    +
    +
    +
    +
    +
    +
  • + +
  • +
    +
    +
    +
    +
    +
    +
    +
    +
  • -
    -
    -
    - -

    Location:

    -

    A108 Adam Street, New York, NY 535022

    -
    - +
  • +
    + 요구사항 상세 +
    +
    + +
    +
  • +
+
+
-
- -

Call:

-

+1 5589 55488 55s

-
-
+
- + +
-
+ +
+
-
-
-
- -
-
- -
-
-
- -
-
- -
-
-
Loading
-
-
Your message has been sent. Thank you!
-
-
-
+
+

제품관련 파일목록

+

해당 탭은 제품관련 이미지, 기획서, 기타 파일들을 확인할 수 있는 탭입니다.

+
-
+
+
+
    +
  • All
  • +
  • Image
  • +
  • Document
  • +
  • Etc
  • +
+
+
-
+
+
- - <!– End Contact Section –> - --> + + -
+ +
+
+
+

Q & A

+

제품 서비스에 대한 질문 및 답변을 확인할 수 있는 탭입니다.

+
+
+
+
+
+
+
    +
+
+
+
+ +
- -
-
- -
-
-
-
+
+ +
+
+
+
-
- - - - - - - +
+
+
+ - - + - - +
+ - - - -<!– d3, nvd3–> - - - -<!– nvd3 models –> - - - - - - - - - - - - ---> - - + + + + + + - - + + + Index: arms/html/armsDetailExceptTemplate/assets/css/detail.css =================================================================== diff -u -rc16445099412b1817c9f92dd1e856c0512875f53 -r6625dc335eb751d8c9f8bc04bc66ab96f9be40a2 --- arms/html/armsDetailExceptTemplate/assets/css/detail.css (.../detail.css) (revision c16445099412b1817c9f92dd1e856c0512875f53) +++ arms/html/armsDetailExceptTemplate/assets/css/detail.css (.../detail.css) (revision 6625dc335eb751d8c9f8bc04bc66ab96f9be40a2) @@ -437,4 +437,82 @@ width :20px ; height :20px ; line-height :20px ; } +} + +.loader { + position: fixed; + top: 0; + bottom: 0; + left: 0; + right: 0; +} + +.loader .spinner { + position: absolute; + top: 50%; + width: 100%; + margin-top: -10px; + font-size: 20px; + text-align: center; +} + +.animated { + -webkit-animation-duration: 1s; + animation-duration: 1s; + -webkit-animation-fill-mode: both; + animation-fill-mode: both; +} + +@media (prefers-reduced-motion) { + .animated { + -webkit-animation: unset !important; + animation: unset !important; + -webkit-transition: none !important; + transition: none !important; + } +} + +.fadeIn { + -webkit-animation-name: fadeIn; + animation-name: fadeIn; +} + +.hide { + display: none !important; +} + +.darkBack { + background: rgba(51, 51, 51, 0.4) !important; + border: 1px solid rgba(51, 51, 51, 0.425) !important; +} + +.fa-spin { + -webkit-animation: fa-spin 2s infinite linear; + animation: fa-spin 2s infinite linear; +} + +@-webkit-keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} + +@keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} + +.fa-spinner:before { + content: ""; } \ No newline at end of file Index: arms/js/detail.js =================================================================== diff -u -rc16445099412b1817c9f92dd1e856c0512875f53 -r6625dc335eb751d8c9f8bc04bc66ab96f9be40a2 --- arms/js/detail.js (.../detail.js) (revision c16445099412b1817c9f92dd1e856c0512875f53) +++ arms/js/detail.js (.../detail.js) (revision 6625dc335eb751d8c9f8bc04bc66ab96f9be40a2) @@ -11,6 +11,8 @@ '#question': false }; +var totalReqCommentCount; + var prefix = "./img/winTypeFileIcons/"; var iconsMap = { 'application/vnd.ms-htmlhelp': prefix + 'CHM.File.png', @@ -129,7 +131,8 @@ //////////////////////////////////////////////////////////////////////////////////////// // 플러그인 로드 모듈 ( 병렬 시퀀스 ) //////////////////////////////////////////////////////////////////////////////////////// -function loadPlugin(url) { + +/*function loadPlugin(url) { return new Promise(function(resolve, reject) { if( isJavaScriptFile(url) ){ @@ -161,7 +164,7 @@ resolve(); } }); -} +}*/ //////////////////////////////////////////////////////////////////////////////////////// // 요구사항 상세보기 페이지 @@ -194,7 +197,7 @@ return ((y < (viewportHeight + scrolltop))); } -var scrollApiFunc = function () { +function scrollApiFunc() { for (var element in visibilityStatus) { if (!visibilityStatus[element] && checkVisible(element)) { if(element === "#detail") { @@ -212,6 +215,8 @@ fileLoadByPdService(); } else if (element === "#question") { + getTotalCount(); + getReqCommentList(1); } @@ -228,11 +233,9 @@ // ------------------ 계정 정보 ------------------ // function bindAccountInfo() { - $("#user-name").html(userName); $("#user-name-detail").html(fullName + ' (' + userName + ')'); $("#user-email").html(userEmail); - } // ------------------ 메뉴 클릭 이벤트 ------------------ // @@ -266,6 +269,7 @@ console.log("Detail Tab ::::"); var tableName = "T_ARMS_REQADD_"; + $(".spinner").html(" 데이터를 로드 중입니다..."); $.ajax({ url: "/auth-user/api/arms/reqAdd/" + tableName + "/getDetail.do" + "?jiraProject=" + selectedJiraProject + @@ -426,6 +430,7 @@ element.style.background = "rgba(241, 240, 71, 0.3)"; console.log(element); + $(".spinner").html(" 데이터를 로드 중입니다..."); $.ajax({ url: "/auth-user/api/arms/pdServiceVersion/getNode.do", // 클라이언트가 HTTP 요청을 보낼 서버의 URL 주소 data: { c_id: c_id }, // HTTP 요청과 함께 서버로 보낼 데이터 @@ -445,14 +450,15 @@ height: "300px" }); $("#version-desc").html(json.c_pds_version_contents); + + jSuccess("버전 상세 정보 조회가 완료 되었습니다."); }) // HTTP 요청이 실패하면 오류와 상태에 관한 정보가 fail() 메소드로 전달됨. .fail(function (xhr, status, errorThrown) { console.log(xhr + status + errorThrown); }) // .always(function (xhr, status) { - jSuccess("버전 상세 정보 조회가 완료 되었습니다."); console.log(xhr + status); }); } @@ -536,6 +542,8 @@ var urlParams = new URL(location.href).searchParams; var selectedPdService = urlParams.get('pdService'); // 해당 서비스는 고정 var tableName = "T_ARMS_REQADD_" + selectedPdService; + + $(".spinner").html(" 데이터를 로드 중입니다..."); $.ajax({ url: "/auth-user/api/arms/reqAdd/" + tableName + "/getNode.do?c_id=" + selectedJsTreeId, type: "GET", @@ -682,6 +690,7 @@ var selectedPdService = urlParams.get('pdService'); $("#fileIdlink").val(selectedPdService); + $(".spinner").html(" 데이터를 로드 중입니다..."); $.ajax({ url: "/auth-user/api/arms/fileRepository/getFilesByNode.do", data: {fileIdLink: selectedPdService}, @@ -769,6 +778,7 @@ }); } + jSuccess("파일 조회가 완료 되었습니다."); calledAPIs["fileAPI"] = true; }); } @@ -788,46 +798,83 @@ // ------------------ QnA 게시판보기 ------------------ // function reqCommentListViewTabClick() { $("#get_req_comment_list").click(function () { + getTotalCount(); + getReqCommentList(1); }); } +function getTotalCount() { + console.log("ReqComment Total Count :::"); + var urlParams = new URL(location.href).searchParams; + var selectedPdService = urlParams.get('pdService'); + selectedJsTreeId = urlParams.get('reqAdd'); + + $(".spinner").html(" 데이터를 로드 중입니다..."); + $.ajax({ + url: "/auth-user/api/arms/reqComment/getTotalCountReqComment.do", + type: "GET", + data: { + c_pdservice_link: selectedPdService, + c_req_link: selectedJsTreeId + }, + async: false, + statusCode: { + 200: function (data) { + //모달 팝업 끝내고 + console.log(data.response); + totalReqCommentCount = data.response; + } + }, + beforeSend: function () { + }, + complete: function () { + }, + error: function (e) { + jError("신규 게시물 등록 중 에러가 발생했습니다."); + } + }); +} + function getReqCommentList(pageNum) { console.log("ReqList Tab ::::"); var pageSize = 10; var totalPages = 0; var curPage = pageNum; - /* 전체 게시판 게시물 갯수 가져오는 API 호출 필요 */ - var totalCount = 21; - if (totalCount !== 0) { - totalPages = Math.ceil(totalCount / pageSize); + console.log(totalReqCommentCount); + + if (totalReqCommentCount !== null|| totalReqCommentCount !== 0) { + totalPages = Math.ceil(totalReqCommentCount / pageSize); console.log("totalPages : " + totalPages); $(".pagination").empty(); var htmlStr = bindPagination(curPage, totalPages, "getReqCommentList"); - console.log("htmlStr : " + htmlStr); $(".pagination").append(htmlStr); } else{ //alert("검색되는 주소없음") + return; } var urlParams = new URL(location.href).searchParams; var selectedPdService = urlParams.get('pdService'); var selectedPdServiceVersion = urlParams.get('pdServiceVersion'); selectedJsTreeId = urlParams.get('reqAdd'); + $(".spinner").html(" 데이터를 로드 중입니다..."); $.ajax({ - url: "/auth-user/api/arms/reqComment/getReqCommentList.do", + url: "/auth-user/api/arms/reqComment/getReqCommentPagingByPdService.do", type: "GET", data: { c_pdservice_link: selectedPdService, - c_version_link: selectedPdServiceVersion, - c_req_link: selectedJsTreeId + /*c_version_link: selectedPdServiceVersion,*/ + c_req_link: selectedJsTreeId, + pageIndex: pageNum, + pageUnit: pageSize }, contentType: "application/json;charset=UTF-8", dataType: "json", @@ -887,7 +934,7 @@ ${(position === "") ? `   ${date}` : ''}
- ${title} + ${contents} ${buttonsHtml}
@@ -930,9 +977,8 @@ endPage = totalPages; } - var nextPage = endPage + 1; - console.log(curPage,"curPage,",startPage,"startPage,",endPage,"endPage,",nextPage,"nextPage") + // console.log(curPage,"curPage,",startPage,"startPage,",endPage,"endPage,",nextPage,"nextPage") //맨 첫 페이지 if (curPage > 1 && pageLimit < curPage) { @@ -960,7 +1006,7 @@ pageUrl += "
  • "; } - console.log(pageUrl); + // console.log(pageUrl); return pageUrl; } @@ -977,30 +1023,30 @@ return; } - console.log(content); var urlParams = new URL(location.href).searchParams; var selectedPdService = urlParams.get('pdService'); var selectedPdServiceVersion = urlParams.get('pdServiceVersion'); selectedJsTreeId = urlParams.get('reqAdd'); - const cTitle = ""; - - /*$.ajax({ + $(".spinner").html(" 데이터를 로드 중입니다..."); + $.ajax({ url: "/auth-user/api/arms/reqComment/addNode.do", type: "POST", data: { ref: 2, c_pdservice_link: selectedPdService, - c_version_link: selectedPdServiceVersion, c_req_link: selectedJsTreeId, c_type: "default", - c_title: cTitle + c_req_comment_sender: userName, + c_req_comment_contents: content }, statusCode: { 200: function () { //모달 팝업 끝내고 - alert("success"); - $("#close_pdservice").trigger("click"); + jSuccess("등록 되었습니다."); + $('#comment-contents').val(''); + getTotalCount(); + getReqCommentList(1); //데이터 테이블 데이터 재 로드 } }, @@ -1011,7 +1057,7 @@ error: function (e) { jError("신규 게시물 등록 중 에러가 발생했습니다."); } - });*/ + }); }); } @@ -1052,42 +1098,32 @@ } function req_comment_delete_btn_click(c_id) { - if (confirm("해당글을 삭제하시겠습니까?")) { - - var urlParams = new URL(location.href).searchParams; - var selectedPdService = urlParams.get('pdService'); - var selectedPdServiceVersion = urlParams.get('pdServiceVersion'); - selectedJsTreeId = urlParams.get('reqAdd'); - - const cTitle = ""; + if (confirm("해당 글을 삭제하시겠습니까?")) { console.log("delete : " + c_id); - /*$.ajax({ - url: "/auth-user/api/arms/reqComment/addNode.do", - type: "POST", + $(".spinner").html(" 데이터를 로드 중입니다..."); + $.ajax({ + url: "/auth-user/api/arms/reqComment/removeNode.do", + type: "DELETE", data: { - ref: 2, - c_pdservice_link: selectedPdService, - c_version_link: selectedPdServiceVersion, - c_req_link: selectedJsTreeId, - c_type: "default", - c_title: cTitle + c_id: c_id }, statusCode: { 200: function () { //모달 팝업 끝내고 - alert("success"); - $("#close_pdservice").trigger("click"); - //데이터 테이블 데이터 재 로드 + jSuccess("삭제 되었습니다."); + $('#comment-contents').val(''); + getTotalCount(); + getReqCommentList(1); } }, beforeSend: function () { }, complete: function () { }, error: function (e) { - jError("신규 게시물 등록 중 에러가 발생했습니다."); + jError("게시물 삭제 중 에러가 발생했습니다."); } - });*/ + }); } }