OWL ITS + 탐지시스템(인터넷 진흥원)
wyu
2021-11-22 3fa520f0cd36bb903b25437c745bb4f2c0eca848
이슈 상세 연관,하위 테이블 표시 설정 - [프론트]
2개 파일 추가됨
7개 파일 변경됨
246 ■■■■■ 파일 변경됨
src/main/webapp/custom_components/js-table/tableColumnGenerator.directive.js 10 ●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/i18n/ko/global.json 2 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/scripts/app/issue/issueAddDownTableConfig.controller.js 4 ●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/scripts/app/issue/issueAddRelationTableConfig.controller.js 4 ●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/scripts/app/issue/issueDetail.controller.js 2 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/scripts/components/issueTableConfig/issueTableConfig.service.js 20 ●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/views/issue/issueAddDownTableConfig.html 101 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/views/issue/issueAddRelationTableConfig.html 101 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/views/issue/issueDetail.html 2 ●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/custom_components/js-table/tableColumnGenerator.directive.js
@@ -199,27 +199,27 @@
                                            break;
                                        // 연관 일감 이동
                                        // 연관 이슈 이동
                                        case "ISSUE_RELATION_MOVE" :
                                            makeTag += "<span class=\"titlename cursor\" ng-click=\"event.changeDetailView(data.issueRelation)\">" + scope.data.title + "</span></a>";
                                            break;
                                        // 연관 일감 이동
                                        // 연관 이슈 이동
                                        case "ISSUE_DOWN_MOVE" :
                                            makeTag += "<span class=\"titlename cursor\" ng-click=\"event.changeDetailView(data.id)\">" + scope.data.title + "</span></a>";
                                            break;
                                            // 연관일감 구분
                                            // 연관이슈 구분
                                        case "ISSUE_RELATION_TYPE":
                                            makeTag += "<span>" + scope.data.relationIssueTypeName + "</span>";
                                            break;
                                            // 연관일감 삭제
                                            // 연관이슈 삭제
                                        case "ISSUE_RELATION_DELETE":
                                            makeTag += '<img class="cursor" src="/assets/images/delete-icon.png" ng-click="event.removeRelationIssue(data.id)">';
                                            break;
                                        // 하위 일감 삭제
                                        // 하위 이슈 삭제
                                        case "ISSUE_DOWN_DELETE":
                                            makeTag += '<img class="cursor" src="/assets/images/delete-icon.png" ng-click="event.removeDownIssue(data.id)">';
                                            break;
src/main/webapp/i18n/ko/global.json
@@ -237,6 +237,8 @@
        "failedToGetCommentListData": "댓글 목록 데이터 가져오기 실패",
        "failedToAttachmentList": "첨부 파일 목록 조회 실패",
        "setIssueTableDisplay": "이슈 테이블 표시 설정",
        "setIssueRelationTableDisplay": "연관 이슈 테이블 표시 설정",
        "setIssueDownTableDisplay": "하위 이슈 테이블 표시 설정",
        "columnName": "컬럼명",
        "area": "넓이",
        "displayed": "표시 여부",
src/main/webapp/scripts/app/issue/issueAddDownTableConfig.controller.js
@@ -88,7 +88,7 @@
                        issueTableConfigs : JSON.stringify($scope.vm.issueTableConfigs)
                    };
                    IssueTableConfig.addDown($resourceProvider.getContent(content,
                    IssueTableConfig.downAdd($resourceProvider.getContent(content,
                        $resourceProvider.getPageContent(0, 0))).then(function (result) {
                        if (result.data.message.status === "success") {
@@ -132,7 +132,7 @@
                function getIssueTableConfigs() {
                    var deferred = $q.defer();
                    IssueTableConfig.detail($resourceProvider.getContent({},
                    IssueTableConfig.downDetail($resourceProvider.getContent({},
                        $resourceProvider.getPageContent(0, 1000))).then(function (result) {
                        if (result.data.message.status !== "success") {
                            SweetAlert.error($filter("translate")("issue.failedToIssueTableColumnLookup"), result.data.message.message); // 이슈 테이블 컬럼 조회 실패
src/main/webapp/scripts/app/issue/issueAddRelationTableConfig.controller.js
@@ -88,7 +88,7 @@
                        issueTableConfigs : JSON.stringify($scope.vm.issueTableConfigs)
                    };
                    IssueTableConfig.addRelation($resourceProvider.getContent(content,
                    IssueTableConfig.relationAdd($resourceProvider.getContent(content,
                        $resourceProvider.getPageContent(0, 0))).then(function (result) {
                        if (result.data.message.status === "success") {
@@ -132,7 +132,7 @@
                function getIssueTableConfigs() {
                    var deferred = $q.defer();
                    IssueTableConfig.detail($resourceProvider.getContent({},
                    IssueTableConfig.relationDetail($resourceProvider.getContent({},
                        $resourceProvider.getPageContent(0, 1000))).then(function (result) {
                        if (result.data.message.status !== "success") {
                            SweetAlert.error($filter("translate")("issue.failedToIssueTableColumnLookup"), result.data.message.message); // 이슈 테이블 컬럼 조회 실패
src/main/webapp/scripts/app/issue/issueDetail.controller.js
@@ -78,6 +78,7 @@
                };
                $scope.vm.issueName = "";       // 선택된 연관 일감 이름
                $scope.vm.issueId = "";       //
                $scope.vm.autoCompletePage = {
                    issue : {
                        page : 0,
@@ -266,6 +267,7 @@
                    }
                    var contents = {
                        issueId : $rootScope.currentDetailIssueId,
                        id : $scope.vm.form.issuesDown[0].id,
                        parentIssueId : $rootScope.currentDetailIssueId
                    };
src/main/webapp/scripts/components/issueTableConfig/issueTableConfig.service.js
@@ -19,19 +19,33 @@
                });
            },
            addRelation : function (conditions) {
            relationAdd : function (conditions) {
                return $http.post("issueTableConfig/relationAdd", conditions).then(function (response) {
                    $log.debug("연관 이슈 목록 테이블 설정 등록 : ", response);
                    return response;
                });
            },
            addDown : function (conditions) {
            relationDetail : function (conditions) {
                return $http.post("issueTableConfig/relationDetail", conditions).then(function (response) {
                    $log.debug("연관 이슈 목록 테이블 설정 상세 조회 : ", response);
                    return response;
                });
            },
            downAdd : function (conditions) {
                return $http.post("issueTableConfig/downAdd", conditions).then(function (response) {
                    $log.debug("하위 이슈 목록 테이블 설정 등록 : ", response);
                    return response;
                });
            }
            },
            downDetail : function (conditions) {
                return $http.post("issueTableConfig/downDetail", conditions).then(function (response) {
                    $log.debug("하위 목록 테이블 설정 상세 조회 : ", response);
                    return response;
                });
            },
        }
    }
    ])
src/main/webapp/views/issue/issueAddDownTableConfig.html
New file
@@ -0,0 +1,101 @@
<div class="formModal">
    <div class="modal-header faded smaller">
        <div class="modal-title">
            <strong translate="issue.setIssueDownTableDisplay">하위 이슈 테이블 표시 설정</strong>
        </div>
        <button aria-label="Close" class="close" type="button" ng-click="fn.cancel()">
            <span aria-hidden="true"> &times;</span>
        </button>
    </div>
    <div class="modal-body">
        <form role="form" name="issueTableConfigForm">
            <table class="table table-dash table-lightborder table-layout-fixed">
                <thead>
                <tr>
                    <th class="text-center width-80-p">
                        <span translate="issue.columnName">컬럼명</span>
                    </th>
                    <th class="text-center width-80-p">
                        <span translate="issue.area">넓이</span>
                    </th>
                    <th class="text-center width-80-p">
                        <span translate="issue.displayed">표시 여부</span>
                    </th>
                    <th class="text-center width-40-p">
                        <span translate="issue.sequence">순서</span>
                    </th>
                </tr>
                </thead>
                <tbody>
                <tr>
                    <td class="text-center">
                        <span class="bold" translate="issue.downIssueType">하위 이슈 구분</span>
                    </td>
                    <td class="text-center" colspan="3">
                        <span class="text-danger bold" translate="issue.cannotChangedIssueTitle">이슈 제목은 변경할 수 없습니다.</span>
                    </td>
                    <td class="text-center">
                        <span class="bold" translate="issue.downIssueTitle">하위 이슈 제목</span>
                    </td>
                    <td class="text-center" colspan="3">
                        <span class="text-danger bold" translate="issue.cannotChangedIssueTitle">이슈 제목은 변경할 수 없습니다.</span>
                    </td>
                </tr>
                <tr ng-repeat="issueTableConfig in vm.issueTableConfigs">
                    <td class="text-center">
                        <span class="bold">{{issueTableConfig.name}}</span>
                    </td>
                    <td class="text-center">
                        <select class="form-control" ng-model="issueTableConfig.width">
                            <option>선택하세요.</option>
                            <option value="width-20-p">20px</option>
                            <option value="width-30-p">30px</option>
                            <option value="width-40-p">40px</option>
                            <option value="width-50-p">50px</option>
                            <option value="width-60-p">60px</option>
                            <option value="width-70-p">70px</option>
                            <option value="width-80-p">80px</option>
                            <option value="width-90-p">90px</option>
                            <option value="width-100-p">100px</option>
                            <option value="width-110-p">110px</option>
                            <option value="width-120-p">120px</option>
                            <option value="width-130-p">130px</option>
                            <option value="width-140-p">140px</option>
                            <option value="width-150-p">150px</option>
                            <option value="width-160-p">160px</option>
                            <option value="width-170-p">170px</option>
                            <option value="width-180-p">180px</option>
                            <option value="width-190-p">190px</option>
                            <option value="width-200-p">200px</option>
                            <option value="width-220-p">220px</option>
                            <option value="width-240-p">240px</option>
                            <option value="width-260-p">260px</option>
                            <option value="width-280-p">280px</option>
                            <option value="width-300-p">300px</option>
                            <option value="width-20">20%</option>
                            <option value="width-30">30%</option>
                            <option value="width-40">40%</option>
                            <option value="width-50">50%</option>
                        </select>
                    </td>
                    <td class="text-center">
                        <label class='switch'><input type='checkbox' ng-model='issueTableConfig.display'><span class='slider round'></span></label>
                    </td>
                    <td class="text-center">
                        <input type="text" class="form-control" ng-model="issueTableConfig.position" maxlength="2" input-regex="[^0-9]">
                    </td>
                </tr>
                </tbody>
            </table>
        </form>
    </div>
    <div class="modal-footer buttons-on-right">
        <button type="button" class="btn btn-md btn-grey" ng-click="fn.cancel()"><span translate="common.close">닫기</span></button>
        <button type="button" class="btn btn-md btn-primary bold"
                ng-disabled="fn.formCheck(issueTableConfigForm.$invalid)"
                ng-click="fn.formSubmit()"><span translate="common.save">저장</span>
        </button>
    </div>
</div>
src/main/webapp/views/issue/issueAddRelationTableConfig.html
New file
@@ -0,0 +1,101 @@
<div class="formModal">
    <div class="modal-header faded smaller">
        <div class="modal-title">
            <strong translate="issue.setIssueRelationTableDisplay">연관 이슈 테이블 표시 설정</strong>
        </div>
        <button aria-label="Close" class="close" type="button" ng-click="fn.cancel()">
            <span aria-hidden="true"> &times;</span>
        </button>
    </div>
    <div class="modal-body">
        <form role="form" name="issueTableConfigForm">
            <table class="table table-dash table-lightborder table-layout-fixed">
                <thead>
                <tr>
                    <th class="text-center width-80-p">
                        <span translate="issue.columnName">컬럼명</span>
                    </th>
                    <th class="text-center width-80-p">
                        <span translate="issue.area">넓이</span>
                    </th>
                    <th class="text-center width-80-p">
                        <span translate="issue.displayed">표시 여부</span>
                    </th>
                    <th class="text-center width-40-p">
                        <span translate="issue.sequence">순서</span>
                    </th>
                </tr>
                </thead>
                <tbody>
                <tr>
                    <td class="text-center">
                        <span class="bold" translate="issue.relationIssueType">연관 이슈 구분</span>
                    </td>
                    <td class="text-center" colspan="3">
                        <span class="text-danger bold" translate="issue.cannotChangedIssueTitle">이슈 제목은 변경할 수 없습니다.</span>
                    </td>
                    <td class="text-center">
                        <span class="bold" translate="issue.relationIssueTitle">연관 이슈 구분</span>
                    </td>
                    <td class="text-center" colspan="3">
                        <span class="text-danger bold" translate="issue.cannotChangedIssueTitle">이슈 제목은 변경할 수 없습니다.</span>
                    </td>
                </tr>
                <tr ng-repeat="issueTableConfig in vm.issueTableConfigs">
                    <td class="text-center">
                        <span class="bold">{{issueTableConfig.name}}</span>
                    </td>
                    <td class="text-center">
                        <select class="form-control" ng-model="issueTableConfig.width">
                            <option>선택하세요.</option>
                            <option value="width-20-p">20px</option>
                            <option value="width-30-p">30px</option>
                            <option value="width-40-p">40px</option>
                            <option value="width-50-p">50px</option>
                            <option value="width-60-p">60px</option>
                            <option value="width-70-p">70px</option>
                            <option value="width-80-p">80px</option>
                            <option value="width-90-p">90px</option>
                            <option value="width-100-p">100px</option>
                            <option value="width-110-p">110px</option>
                            <option value="width-120-p">120px</option>
                            <option value="width-130-p">130px</option>
                            <option value="width-140-p">140px</option>
                            <option value="width-150-p">150px</option>
                            <option value="width-160-p">160px</option>
                            <option value="width-170-p">170px</option>
                            <option value="width-180-p">180px</option>
                            <option value="width-190-p">190px</option>
                            <option value="width-200-p">200px</option>
                            <option value="width-220-p">220px</option>
                            <option value="width-240-p">240px</option>
                            <option value="width-260-p">260px</option>
                            <option value="width-280-p">280px</option>
                            <option value="width-300-p">300px</option>
                            <option value="width-20">20%</option>
                            <option value="width-30">30%</option>
                            <option value="width-40">40%</option>
                            <option value="width-50">50%</option>
                        </select>
                    </td>
                    <td class="text-center">
                        <label class='switch'><input type='checkbox' ng-model='issueTableConfig.display'><span class='slider round'></span></label>
                    </td>
                    <td class="text-center">
                        <input type="text" class="form-control" ng-model="issueTableConfig.position" maxlength="2" input-regex="[^0-9]">
                    </td>
                </tr>
                </tbody>
            </table>
        </form>
    </div>
    <div class="modal-footer buttons-on-right">
        <button type="button" class="btn btn-md btn-grey" ng-click="fn.cancel()"><span translate="common.close">닫기</span></button>
        <button type="button" class="btn btn-md btn-primary bold"
                ng-disabled="fn.formCheck(issueTableConfigForm.$invalid)"
                ng-click="fn.formSubmit()"><span translate="common.save">저장</span>
        </button>
    </div>
</div>
src/main/webapp/views/issue/issueDetail.html
@@ -446,7 +446,7 @@
                        <div class="col-auto vertical-middle">
                            <button type="button" class="btn btn-primary form-control input-sm"
                                    ng-click="fn.addRelationIssue()"
                                    translate="issue.addRelationIssue">추가</button>
                                    translate="issue.addRelationIssue">연관 이슈 추가</button>
                        </div>
                    </div>