2023년 9월 21일
출처:
<aside> 💡 현재 요구사항에 대한 파일 업로드 및 가져오기는 없는 상태로 파악됨 arms/reqAdd/getFilesByNode.do
</aside>
해당 제품에 대한 파일도 가져와야 함.(fileIdLink=제품아이디)
http://www.a-rms.net/auth-user/api/arms/fileRepository/getFilesByNode.do?fileIdLink=13 |
<table role="presentation" class="table table-striped" style="margin-bottom: 5px">
<tbody class="files" data-toggle="modal-gallery" data-target="#modal-gallery"><tr class="template-download fade in">
<td class="preview"></td>
<td class="name">
<a href="/auth-user/api/arms/fileRepository/downloadFileByNode/4" title="" data-gallery="undefined" download=""></a>
</td>
<td class="size"><span>9.32 KB</span></td>
<td colspan="2"></td>
<td>
<button class="btn btn-danger btn-sm delete" data-type="POST" data-url="/auth-user/api/arms/fileRepository/deleteFileByNode/4">
<i class="fa fa-trash"></i>
<span>Delete</span>
</button>
</td>
</tr><tr class="template-download fade in">
<td class="preview"></td>
<td class="name">
<a href="/auth-user/api/arms/fileRepository/downloadFileByNode/7" title="" data-gallery="undefined" download=""></a>
</td>
<td class="size"><span>99.72 KB</span></td>
<td colspan="2"></td>
<td>
<button class="btn btn-danger btn-sm delete" data-type="POST" data-url="/auth-user/api/arms/fileRepository/deleteFileByNode/7">
<i class="fa fa-trash"></i>
<span>Delete</span>
</button>
</td>
</tr></tbody>
</table>
$("#fileIdlink").val(selectId);
pdServiceDataTableClick(selectId); // 제품, 서비스 가져오기
//파일 업로드 관련 레이어 보이기 처리
$(".body-middle").show();
//파일 리스트 초기화
$("table tbody.files").empty();
// Load existing files:
var $fileupload = $("#fileupload");
// Load existing files:
$.ajax({
// Uncomment the following to send cross-domain cookies:
//xhrFields: {withCredentials: true},
url: "/auth-user/api/arms/fileRepository/getFilesByNode.do",
data: { fileIdlink: selectId },
dataType: "json",
context: $fileupload[0]
}).done(function (result) {
$(this).fileupload("option", "done").call(this, null, { result: result });
});
javascript에서 파일 불러오기 부분
{
"files" : [ {
"c_id" : 4,
"c_parentid" : 2,
"c_position" : 1,
"c_left" : 5,
"c_right" : 6,
"c_level" : 2,
"c_title" : "for PdService",
"c_type" : "default",
"ref" : 0,
"copy" : 0,
"multiCounter" : 0,
"status" : 0,
"searchStr" : null,
"id" : 0,
"attr" : {
"rel" : "default",
"id" : "node_4"
},
"fileName" : "스크린샷 2023-09-05 233935.png",
"contentType" : "image/png",
"serverSubPath" : "20230905",
"physicalName" : "4B3337613A4B401AAF1A80AD1150DA67",
"size" : 9320,
"name" : "",
"url" : "/auth-user/api/arms/fileRepository/downloadFileByNode/4",
"thumbnailUrl" : "/auth-user/api/arms/fileRepository/thumbnailUrlFileToNode/4",
"delete_url" : "/auth-user/api/arms/fileRepository/deleteFileByNode/4",
"delete_type" : "POST",
"state" : "opened",
"data" : "for PdService",
"copied" : false
}, {
"c_id" : 9,
"c_parentid" : 2,
"c_position" : 6,
"c_left" : 15,
"c_right" : 16,
"c_level" : 2,
"c_title" : "for PdService",
"c_type" : "default",
"ref" : 0,
"copy" : 0,
"multiCounter" : 0,
"status" : 0,
"searchStr" : null,
"id" : 0,
"attr" : {
"rel" : "default",
"id" : "node_9"
},
"fileName" : "Decompiler.txt",
"contentType" : "text/plain",
"serverSubPath" : "20230921",
"physicalName" : "FEF5B02D414F439C9CF07ED637D2BB4B",
"size" : 59,
"name" : "",
"url" : "/auth-user/api/arms/fileRepository/downloadFileByNode/9",
"thumbnailUrl" : "/auth-user/api/arms/fileRepository/thumbnailUrlFileToNode/9",
"delete_url" : "/auth-user/api/arms/fileRepository/deleteFileByNode/9",
"delete_type" : "POST",
"state" : "opened",
"data" : "for PdService",
"copied" : false
}, {
"c_id" : 7,
"c_parentid" : 2,
"c_position" : 4,
"c_left" : 11,
"c_right" : 12,
"c_level" : 2,
"c_title" : "for PdService",
"c_type" : "default",
"ref" : 0,
"copy" : 0,
"multiCounter" : 0,
"status" : 0,
"searchStr" : null,
"id" : 0,
"attr" : {
"rel" : "default",
"id" : "node_7"
},
"fileName" : "화면 캡처 2023-09-16 145232.png",
"contentType" : "image/png",
"serverSubPath" : "20230916",
"physicalName" : "D41E4F58B0B443FC9E50DD0B40465E2E",
"size" : 99715,
"name" : "",
"url" : "/auth-user/api/arms/fileRepository/downloadFileByNode/7",
"thumbnailUrl" : "/auth-user/api/arms/fileRepository/thumbnailUrlFileToNode/7",
"delete_url" : "/auth-user/api/arms/fileRepository/deleteFileByNode/7",
"delete_type" : "POST",
"state" : "opened",
"data" : "for PdService",
"copied" : false
}, {
"c_id" : 3,
"c_parentid" : 2,
"c_position" : 0,
"c_left" : 3,
"c_right" : 4,
"c_level" : 2,
"c_title" : "for PdService",
"c_type" : "default",
"ref" : 0,
"copy" : 0,
"multiCounter" : 0,
"status" : 0,
"searchStr" : null,
"id" : 0,
"attr" : {
"rel" : "default",
"id" : "node_3"
},
"fileName" : "스크린샷 2023-09-05 233935.png",
"contentType" : "image/png",
"serverSubPath" : "20230905",
"physicalName" : "AEBFF542D1DE4ADAADFF26DC6DA0B888",
"size" : 9320,
"name" : "",
"url" : "/auth-user/api/arms/fileRepository/downloadFileByNode/3",
"thumbnailUrl" : "/auth-user/api/arms/fileRepository/thumbnailUrlFileToNode/3",
"delete_url" : "/auth-user/api/arms/fileRepository/deleteFileByNode/3",
"delete_type" : "POST",
"state" : "opened",
"data" : "for PdService",
"copied" : false
} ]
}
<aside> 💡 요구사항 상세 정보 javascript - detail.js, html - detail.html에 추가되어야할 내용 by reqAdd.js, reqAdd.html
</aside>
등록관리에서 가져온 트리형태를 만들기 위해 필요한 화면단
이곳에 출력되는 tree 형태의 데이터 출력 호출부, 정의부
// 탭 클릭 시 호출
build_ReqData_By_PdService();
// 함수 정의
function build_ReqData_By_PdService() {
// div id값
var jQueryElementID = "#req_tree";
// api 호출
var serviceNameForURL = "/auth-user/api/arms/reqAdd/T_ARMS_REQADD_" + $("#selected_pdService").val();
// common.js에 정의되어있는 함수
jsTreeBuild(jQueryElementID, serviceNameForURL);
}
tree에 클릭 이벤트가 발생 시 실행되어 우측 디테일 페이지가 보이는 부분
function jsTreeClick(selectedNode) {
console.log("[ reqAdd :: jsTreeClick ] :: selectedNode ");
console.log(selectedNode);
selectedJsTreeId = selectedNode.attr("id").replace("node_", "").replace("copy_", "");
selectedJsTreeName = $("#req_tree").jstree("get_selected").text();
if (selectedJsTreeId == 2) {
$("#select_Req").text("루트 요구사항이 선택되었습니다.");
} else {
$("#select_Req").text($("#req_tree").jstree("get_selected").text());
}
var selectRel = selectedNode.attr("rel");
//요구사항 타입에 따라서 탭의 설정을 변경 (삭제예정)
if (selectRel == "folder" || selectRel == "drive") {
$("#folder_tab").get(0).click();
$(".newReqDiv").show();
$(".widget-tabs").children("header").children("ul").children("li:nth-child(1)").show(); //상세보기
$(".widget-tabs").children("header").children("ul").children("li:nth-child(3)").show(); //리스트보기
$(".widget-tabs").children("header").children("ul").children("li:nth-child(4)").show(); //문서로보기
// 리스트로 보기(DataTable) 설정 ( 폴더나 루트니까 )
// 상세보기 탭 셋팅이 데이터테이블 렌더링 이후 시퀀스 호출 함.
// 박현민 - 폴더 일 때 이부분 어떻게 바뀌는지 확인하고 어떻게 바꿀지 고민해야함
dataTableLoad(selectedJsTreeId, selectRel);
} else {
$("#default_tab").get(0).click();
$(".newReqDiv").hide();
$(".widget-tabs").children("header").children("ul").children("li:nth-child(1)").show(); //상세보기
$(".widget-tabs").children("header").children("ul").children("li:nth-child(2)").show(); //편집하기
$(".widget-tabs").children("header").children("ul").children("li:nth-child(3)").hide(); //리스트보기
$(".widget-tabs").children("header").children("ul").children("li:nth-child(4)").hide(); //문서로보기
$(".widget-tabs").children("header").children("ul").children("li:nth-child(5)").show(); //JIRA연결설정
//이전에 화면에 렌더링된 데이터 초기화
// ------------------ 편집하기 ------------------ //
// bindDataEditlTab(data);
// // ------------------ 상세보기 ------------------ //
// bindDataDetailTab(data);
//상세보기 탭 셋팅
setDetailAndEditViewTab();
// defaultType_dataTableLoad(selectedJsTreeId);
}
//파일 데이터셋팅
//get_FileList_By_Req();
}
function dataTableLoad(selectId, selectRel) {
console.log("dataTableLoad - selectRel:::" + selectRel);
console.log("dataTableLoad - selectId:::" + selectId);
// 데이터 테이블 컬럼 및 열그룹 구성
var tableName = "T_ARMS_REQADD_" + $("#selected_pdService").val();
var c_type = $("#req_tree").jstree("get_selected").attr("rel");
console.log("dataTableLoad - c_type:::" + c_type);
var dataTableRef;
if (selectId == 2) {
// 데이터 테이블 컬럼 및 열그룹 구성
var columnList = [
{ data: "c_id", defaultContent: "-" },
{ data: "c_left", defaultContent: "-" },
{ data: "c_title", defaultContent: "-" }
];
var rowsGroupList = [];
var columnDefList = [];
var selectList = {};
var orderList = [[1, "asc"]];
var buttonList = [];
var jquerySelector = "#req_table";
var ajaxUrl = "/auth-user/api/arms/reqAdd/" + tableName + "/getMonitor.do";
var jsonRoot = "";
var isServerSide = false;
// common.js 호출
dataTableRef = dataTable_build(
jquerySelector,
ajaxUrl,
jsonRoot,
columnList,
rowsGroupList,
columnDefList,
selectList,
orderList,
buttonList,
isServerSide
);
} else if(selectRel !== "folder") {
//select node 정보를 가져온다.
console.log("tableName:: " + tableName);
$.ajax({
url: "/auth-user/api/arms/reqAdd/" + tableName + "/getNode.do?c_id=" + selectId,
type: "GET",
contentType: "application/json;charset=UTF-8",
dataType: "json",
progress: true,
success: function (data) {
// 데이터 테이블 컬럼 및 열그룹 구성
var columnList = [
{ data: "c_id", defaultContent: "-" },
{ data: "c_left", defaultContent: "-" },
{ data: "c_title", defaultContent: "-" }
];
var rowsGroupList = [];
var columnDefList = [];
var selectList = {};
var orderList = [[1, "asc"]];
var buttonList = [];
var jquerySelector = "#req_table";
var ajaxUrl = "/auth-user/api/arms/reqAdd/" + tableName + "/getChildNodeWithParent.do";
var jsonRoot = "";
var paramUrl = "?c_id=313&c_left=" + data.c_left + "&c_right=" + data.c_right;
ajaxUrl = ajaxUrl + paramUrl;
var isServerSide = false;
// common.js 호출
dataTableRef = dataTable_build(
jquerySelector,
ajaxUrl,
jsonRoot,
columnList,
rowsGroupList,
columnDefList,
selectList,
orderList,
buttonList,
isServerSide
);
}
})
.done(function (data) {})
.fail(function (e) {})
.always(function () {});
} else {
console.log("folder clicked");
var columnList = [
{ data: "c_id", defaultContent: "-" },
{ data: "c_left", defaultContent: "-" },
{ data: "c_title", defaultContent: "-" }
];
var rowsGroupList = [];
var columnDefList = [];
var selectList = {};
var orderList = [];
var buttonList = [];
var jquerySelector = "#req_table";
var ajaxUrl = "/auth-user/api/arms/reqAdd/" + tableName + "/getChildNodeWithParent.do?c_id="+selectId;
var jsonRoot = "";
var isServerSide = false;
// common.js 호출
dataTableRef = dataTable_build(
jquerySelector,
ajaxUrl,
jsonRoot,
columnList,
rowsGroupList,
columnDefList,
selectList,
orderList,
buttonList,
isServerSide
);
}
}
function setDetailAndEditViewTab() {
console.log("Detail Tab ::::")
var tableName = "T_ARMS_REQADD_" + $("#selected_pdService").val();
$.ajax({
url: "/auth-user/api/arms/reqAdd/" + tableName + "/getNode.do?c_id=" + selectedJsTreeId,
type: "GET",
contentType: "application/json;charset=UTF-8",
dataType: "json",
progress: true
})
.done(function (data) {
// 박현민 - 여기를 수정해야
// ------------------ 상세보기 ------------------ //
bindDataDetailTab(data);
})
.fail(function (e) {})
.always(function () {});
}
// 박현민 - ------------------ 상세보기 ------------------ //
function bindDataDetailTab(ajaxData) {
console.log(ajaxData);
//제품(서비스) 데이터 바인딩
var selectedPdServiceText = $("#selected_pdService").select2("data")[0].text;
if (isEmpty(selectedPdServiceText)) {
$("#detailview_req_pdservice_name").val("");
} else {
$("#detailview_req_pdservice_name").val(selectedPdServiceText);
}
//Version 데이터 바인딩
var selectedVersionText = $("#edit_multi_version").multipleSelect("getSelects", "text");
if (isEmpty(selectedVersionText)) {
$("#detailview_req_pdservice_version").val("요구사항에 등록된 버전이 없습니다.");
} else {
$("#detailview_req_pdservice_version").val(selectedVersionText);
}
$("#detailview_req_id").val(ajaxData.c_id);
$("#detailview_req_name").val(ajaxData.c_title);
//우선순위 셋팅
$("#detailview_req_priority").children(".btn.active").removeClass("active");
var select_Req_Priority_ID = "detailView-req-priority-option" + ajaxData.c_priority;
$("#" + select_Req_Priority_ID)
.parent()
.addClass("active");
$("#detailview_req_status").val(ajaxData.c_req_status);
$("#detailview_req_writer").val(ajaxData.c_req_writer);
$("#detailview_req_write_date").val(new Date(ajaxData.c_req_create_date).toLocaleString());
if (ajaxData.c_req_reviewer01 == null || ajaxData.c_req_reviewer01 == "none") {
$("#detailview_req_reviewer01").val("리뷰어(연대책임자)가 존재하지 않습니다.");
} else {
$("#detailview_req_reviewer01").val(ajaxData.c_req_reviewer01);
}
if (ajaxData.c_req_reviewer02 == null || ajaxData.c_req_reviewer02 == "none") {
$("#detailview_req_reviewer02").val("2번째 리뷰어(연대책임자) 없음");
} else {
$("#detailview_req_reviewer02").val(ajaxData.c_req_reviewer02);
}
if (ajaxData.c_req_reviewer03 == null || ajaxData.c_req_reviewer03 == "none") {
$("#detailview_req_reviewer03").val("3번째 리뷰어(연대책임자) 없음");
} else {
$("#detailview_req_reviewer03").val(ajaxData.c_req_reviewer03);
}
if (ajaxData.c_req_reviewer04 == null || ajaxData.c_req_reviewer04 == "none") {
$("#detailview_req_reviewer04").val("4번째 리뷰어(연대책임자) 없음");
} else {
$("#detailview_req_reviewer04").val(ajaxData.c_req_reviewer04);
}
if (ajaxData.c_req_reviewer05 == null || ajaxData.c_req_reviewer05 == "none") {
$("#detailview_req_reviewer05").val("5번째 리뷰어(연대책임자) 없음");
} else {
$("#detailview_req_reviewer05").val(ajaxData.c_req_reviewer05);
}
//$("#detailview_req_contents").html(ajaxData.c_req_contents);
CKEDITOR.instances.detailview_req_contents.setData(ajaxData.c_req_contents);
}
number | Method | URL |
---|---|---|
1 | GET | http://www.a-rms.net/313devgrp/arms/template.html?page=reqAdd |
2 | GET | ~~http://www.a-rms.net/313devgrp/arms/css/override.css |
http://www.a-rms.net/dwr/engine.js | ||
http://www.a-rms.net/dwr/util.js | ||
http://www.a-rms.net/dwr/interface/Chat.js~~ | ||
3 | GET | http://www.a-rms.net/auth-user/me |
4 | GET | ~~http://www.a-rms.net/313devgrp/arms/js/reqAdd.js?_=1694933084528 |
http://www.a-rms.net/313devgrp/arms/img/313_logo.png~~ | ||
5 | POST | ~~http://www.a-rms.net/dwr/call/plainpoll/ReverseAjax.dwr |
http://www.a-rms.net/dwr/call/plaincall/Chat.login.dwr~~ | ||
6 | GET | http://www.a-rms.net/auth-user/api/arms/reqAdd/getFilesByNode.do |
7 | GET | http://www.a-rms.net/auth-user/api/arms/pdService/getPdServiceMonitor.do |
8 | GET | http://www.a-rms.net/auth-user/api/arms/pdService/getVersionList.do?c_id=13 |
9 | GET | http://www.a-rms.net/auth-user/api/arms/reqAdd/T_ARMS_REQADD_13/getChildNode.do?c_id=1&_=1694934803361 |
http://www.a-rms.net/auth-user/api/arms/reqAdd/T_ARMS_REQADD_13/getChildNode.do?c_id=2&_=1694934803362 |