OWL ITS + 탐지시스템(인터넷 진흥원)
이민희
2021-11-08 524dc660327c6cdd6eb20ef5d2feb4afd9c3db00
오류 메시지 수정 및 버그 수정
9개 파일 변경됨
162 ■■■■ 파일 변경됨
src/main/webapp/custom_components/js-table/tableColumnGenerator.directive.js 8 ●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/i18n/ko/global.json 33 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/scripts/app/workspace/levelModify.controller.js 2 ●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/scripts/app/workspace/workspaceDepartmentConfig.controller.js 6 ●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/scripts/app/workspace/workspaceUserConfig.controller.js 11 ●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/scripts/app/workspace/workspaceUserLevelConfig.controller.js 8 ●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/views/workspace/workspaceDepartmentConfig.html 74 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/views/workspace/workspaceUserConfig.html 16 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/views/workspace/workspaceUserLevelConfig.html 4 ●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/custom_components/js-table/tableColumnGenerator.directive.js
@@ -347,7 +347,13 @@
                                            break;
                                        case "DEPARTMENT_OPTION" :
                                            makeTag +="<select class='form-control input-sm' ng-model='data.departmentId' ng-change='event.modifyUserWorkspace(data)'><option ng-repeat='department in data.departments' ng-value='department.fieldKey'>{{::department.fieldValue}}</option></select>";
                                            //if (scope.data.departmentId != null){
                                                makeTag +="<select class='form-control input-sm' ng-model='data.departmentId' ng-change='event.modifyUserWorkspace(data)'><option ng-repeat='department in data.departments' ng-value='department.fieldKey'>{{::department.fieldValue}}</option></select>";
                                            //}
                                            //else{
                                            //    makeTag +="<select class='form-control input-sm' ng-model='data.departmentId' ng-change='event.modifyUserWorkspace(data)'><option>부서를 선택 하세요.</option>"
                                            //    makeTag +="<option ng-repeat='department in data.departments' ng-value='department.fieldKey'>{{::department.fieldValue}}</option></select>";
                                            //}
                                            break;
                                        case "LEVEL_OPTION" :
src/main/webapp/i18n/ko/global.json
@@ -67,6 +67,11 @@
        "levelName" : "등급명",
        "failedLevelRegistration" : "사용자 등급 등록 실패",
        "failedDepartmentRegistration" : "부서 등록 실패",
        "notHaveDeletePermissionExistsAnLevel" : "삭제 권한이 없는 등급이 존재 합니다.",
        "wantToDeleteSelectLevel": "선택한 등급을 삭제하겠습니까? \n 삭제된 등급은 복구할 수 없습니다.",
        "wantToDeleteSelectDepartment": "선택한 부서를 삭제하겠습니까? \n 삭제된 부서는 복구할 수 없습니다.",
        "deleteDepartment": "부서 삭제",
        "deleteLevel": "등급 삭제",
        "read" : "읽기",
        "write" : "쓰기",
        "departmentManagement" : "부서 관리",
@@ -140,7 +145,7 @@
        "failedToRegularPaymentChange": "정기 결제 변경 실패",
        "failedToParticipationStatusChange": "참여 상태 변경 실패",
        "failedToSelectWorkspaceFullUserList": "업무 공간 전체 사용자 목록 조회 실패",
        "failedToSelectWorkspaceFullUserLevelList": "사용자 등급 목록 조회 실패",
        "failedToSelectWorkspaceFullLevelList": "사용자 등급 목록 조회 실패",
        "failedToSelectWorkspaceFullDepartmentList": "부서 목록 조회 실패",
        "failedToModifyUserLevel": "사용자 등급 상세 정보 조회 실패"
    },
@@ -159,13 +164,13 @@
        "relationIssueSelect": "연관 이슈 선택",
        "relationIssueDelete" : "삭제",
        "relationIssueRemove" : "연관 이슈 삭제",
        "relationIssueRemoveHistory" : "연관 이슈이 삭제되었습니다.",
        "relationIssueAddHistory" : "연관 이슈이 추가되었습니다.",
        "relationIssueRemoveHistory" : "연관 이슈가 삭제되었습니다.",
        "relationIssueAddHistory" : "연관 이슈가 추가되었습니다.",
        "requireIssueTitle": "이슈 제목을 입력하세요.",
        "issueList": "이슈 목록",
        "summaryIssueActivity": "이슈 활동 내역 요약",
        "modifyIssues": "이슈 수정",
        "continueCreateIssue": "이 화면에서 이슈을 계속 생성합니다.",
        "continueCreateIssue": "이 화면에서 이슈를 계속 생성합니다.",
        "initializedAssigneeCustomField": "프로젝트를 변경하면 담당자, 사용자 정의 필드 값이 초기화 됩니다.",
        "setUpUsersParticipatingInProject": "프로젝트에 참여하는 사용자를 설정합니다.",
        "initializedIssueStatus": "이슈 유형을 변경할 경우 사용자 정의 필드, 이슈 상태가 초기화 됩니다.",
@@ -179,14 +184,14 @@
        "selectProjectAndIssueTypeDownloadExcel": "프로젝트, 이슈 유형을 선택하면 해당 하는 양식의 엑셀을 다운로드 할 수 있습니다.",
        "settingTableDisplay": "테이블 표시 설정",
        "deleteIssue": "이슈 삭제",
        "wantToDeleteSelectIssue": "선택한 이슈을 삭제하겠습니까? \n 사용자가 직접 삭제한 이슈은 어떠한 경우에도 복구가 불가능합니다.",
        "wantToDeleteSelectRelationIssue": "선택한 연관 이슈을 삭제하겠습니까? \n 사용자가 직접 삭제한 연관 이슈은 복구가 불가능합니다.",
        "wantToDeleteSelectIssue": "선택한 이슈를 삭제하겠습니까? \n 사용자가 직접 삭제한 이슈는 어떠한 경우에도 복구가 불가능합니다.",
        "wantToDeleteSelectRelationIssue": "선택한 연관 이슈를 삭제하겠습니까? \n 사용자가 직접 삭제한 연관 이슈는 복구가 불가능합니다.",
        "failedToSaveFieldConditions": "검색 필드 조건 저장 실패",
        "failedToGetSearchFieldCondition": "검색 필드 조건 가져오기 실패",
        "failedIssueLookup": "이슈 조회 실패",
        "selectionCheck": "선택 대상 확인",
        "selectIssueToChangeStatus": "상태 변경할 이슈을 선택하세요.",
        "notHaveDeletePermissionExistsAnIssue": "삭제 권한이 없는 이슈이 존재합니다.",
        "selectIssueToChangeStatus": "상태 변경할 이슈를 선택하세요.",
        "notHaveDeletePermissionExistsAnIssue": "삭제 권한이 없는 이슈가 존재합니다.",
        "failedToIssueTypeListLookup": "이슈 유형 목록 조회 실패",
        "failedToPriorityListLookup": "우선순위 목록 조회 실패",
        "failedToCriticalListLookup": "중요도 목록 조회 실패",
@@ -194,7 +199,7 @@
        "failedToIssueTableColumnLookup": "이슈 테이블 컬럼 조회 실패",
        "failedToIssueAddIssueRelation": "연관 이슈 추가 실패",
        "failedToIssueDeleteIssueRelation": "연관 이슈 삭제 실패",
        "errorSelectRelationIssue" : "연관 이슈이 선택되지 않았습니다.",
        "errorSelectRelationIssue" : "연관 이슈가 선택되지 않았습니다.",
        "capacityExceededImageFile": "이미지 파일 용량 초과",
        "attachedOnlyImageFiles10mb": "30MB 이하의 이미지 파일만 첨부가 가능합니다.",
        "attachedMultipleImageFiles100mb": "여러 건의 이미지를 한번에 첨부할 경우 300MB 이하까지만 첨부가 가능합니다.",
@@ -244,7 +249,7 @@
        "changedUser": "변경 사용자",
        "issueReservation": "이슈 발생 예약",
        "issueReservationType": "이슈 발생 유형",
        "issueReservationDescription": "이슈을 특정일에 다시 발생시킬 수 있습니다. <br />반복적으로 수행해야 할 이슈이 있을 때 유용하게 사용할 수 있습니다.",
        "issueReservationDescription": "이슈를 특정일에 다시 발생시킬 수 있습니다. <br />반복적으로 수행해야 할 이슈가 있을 때 유용하게 사용할 수 있습니다.",
        "everyDay": "매일",
        "everyWeek": "매주",
        "everyMonth": "매월",
@@ -277,12 +282,12 @@
        "sentToTheSelectedUser": "선택한 사용자에게 이메일이 발송되었습니다.",
        "failedIssueMail": "이슈 메일 발송 실패",
        "issueVersionLookupFailed": "이슈 버전 조회 실패",
        "relationIssueType1" : "다음 이슈과 관련됨",
        "relationIssueType1" : "다음 이슈와 관련됨",
        "relationIssueType2" : "다음 이슈에 중복됨",
        "relationIssueType3" : "다음 이슈의 해결을 막고 있음",
        "relationIssueType4" : "다음 이슈에게 막혀있음",
        "relationIssueType5" : "다음에 진행할 이슈",
        "relationIssueType6" : "다음 이슈을 우선 진행",
        "relationIssueType6" : "다음 이슈를 우선 진행",
        "updateIssueUser" : "이슈 담당자 변경",
        "normalList" : "이슈 목록",
        "timeLine" : "타임 라인"
@@ -360,7 +365,7 @@
        "failedToModifyWorkflow": "워크플로우 수정 실패",
        "failedToWorkflowDetails": "워크플로우 상세 정보 조회 실패",
        "failedToPutIssueStatus": "이슈 상태 넣기 실패",
        "onlyOneInTheWorkflow": "워크플로우에는 상태 속성 '대기'인 이슈은 1개만 존재해야 합니다.",
        "onlyOneInTheWorkflow": "워크플로우에는 상태 속성 '대기'인 이슈는 1개만 존재해야 합니다.",
        "removeMetastaticLine": "전이선 제거",
        "removeIssueStatus": "이슈 상태 제거",
        "limitNameToSpecialCharacters": "워크플로우 명은 특수 문자를 입력할 수 없습니다.",
@@ -407,7 +412,7 @@
        "typeName": "유형 이름",
        "modifyType": "유형 수정",
        "template": "템플릿",
        "registerAnIssueTemplate": "템플릿을 미리 작성하여 이슈을 등록할 때 내용 필드에 사용할 수 있습니다.",
        "registerAnIssueTemplate": "템플릿을 미리 작성하여 이슈를 등록할 때 내용 필드에 사용할 수 있습니다.",
        "updateWorkflowIssueStatusStandby": "워크플로우를 변경할 경우 변경하려는 워크플로우에 상태가 존재하지 않으면 이슈의 상태가 상태 속성 '대기' 인 상태로 변경됩니다.",
        "notHaveDeletePermissionExistsIssueType": "삭제 권한이 없는 이슈 유형이 존재합니다.",
        "deleteIssueType": "이슈 유형 삭제",
src/main/webapp/scripts/app/workspace/levelModify.controller.js
@@ -49,7 +49,7 @@
                        }
                        else {
                            SweetAlert.error($filter("translate")("managementWorkspace.failedToSelectWorkspaceFullUserLevelList"), result.data.message.message); // "사용자 등급 목록 조회 실패"
                            SweetAlert.error($filter("translate")("managementWorkspace.failedToSelectWorkspaceFullLevelList"), result.data.message.message); // "사용자 등급 목록 조회 실패"
                        }
                    });
                }
src/main/webapp/scripts/app/workspace/workspaceDepartmentConfig.controller.js
@@ -111,7 +111,7 @@
                        }
                        else {
                            SweetAlert.error($filter("translate")("managementWorkspace.failedToSelectWorkspaceFullUserList"), result.data.message.message); // "업무 공간 전체 사용자 목록 조회 실패"
                            SweetAlert.error($filter("translate")("managementWorkspace.failedToSelectWorkspaceFullDepartmentList"), result.data.message.message); // 부서 목록 조회 실패
                        }
                    });
                }
@@ -189,8 +189,8 @@
                    //  삭제 알림
                    SweetAlert.swal({
                            title : $filter("translate")("customField.deleteUserDefinedFields"), // "사용자 정의 필드 삭제"
                            text : $filter("translate")("customField.wantToDeleteSelectUserDefinedFields"), // "선택한 사용자 정의 필드를 삭제하겠습니까? 삭제된 사용자 정의 필드는 복구할 수 없습니다."
                            title : $filter("translate")("managementWorkspace.deleteDepartment"), // "부서 삭제"
                            text : $filter("translate")("customField.wantToDeleteSelectDepartment"), // "선택한 부서를 삭제하겠습니까? 삭제된 부서는 복구할 수 없습니다."
                            type : "warning",
                            showCancelButton : true,
                            confirmButtonColor : "#DD6B55",
src/main/webapp/scripts/app/workspace/workspaceUserConfig.controller.js
@@ -36,7 +36,6 @@
                        fieldValue : $filter("translate")("managementWorkspace.participation") // "참여"
                    }, {
                        fieldKey : "N",
                        //fieldValue : $filter("translate")("managementWorkspace.waitForParticipation") // "참여대기"
                        fieldValue : $filter("translate")("managementWorkspace.withdrawal") // "탈퇴"
                    }]
                };
@@ -230,12 +229,18 @@
                            var idx = 0;
                            angular.forEach($scope.vm.responseData.data, function (data) {
                                // data.levelId = $scope.vm.levels[idx].fieldKey;
                                //data.department = $scope.vm.departments[idx];
                                data.levels = [];
                                data.departments = [];
                                data.levels = $scope.vm.levels.slice();
                                data.departments = $scope.vm.departments.slice();
                                idx++;
                            });
                            /*if(result.data.data[idx-1].departmentId == 0){
                                //console.log($scope.vm.tableConfigs);
                                //result.data.data[idx-1].department.fieldValue = '부서를 선택 하세요.';
                            }*/
                        }
                        else {
                            SweetAlert.error($filter("translate")("managementWorkspace.failedToSelectWorkspaceFullUserList"), result.data.message.message); // "업무 공간 전체 사용자 목록 조회 실패"
@@ -260,7 +265,7 @@
                            });
                        }
                        else {
                            SweetAlert.swal($filter("translate")("managementWorkspace.failedToSelectWorkspaceFullUserList"), result.data.message.message, "error"); // 업무 공간 전체 사용자 목록 조회 실패
                            SweetAlert.swal($filter("translate")("managementWorkspace.failedToSelectWorkspaceFullLevelList"), result.data.message.message, "error"); // 용자 등급 목록 조회 실패
                        }
                        deferred.resolve(result.data.data);
@@ -286,7 +291,7 @@
                            });
                        }
                        else {
                            SweetAlert.swal($filter("translate")("managementWorkspace.failedToSelectWorkspaceFullUserList"), result.data.message.message, "error"); // 업무 공간 전체 사용자 목록 조회 실패
                            SweetAlert.swal($filter("translate")("managementWorkspace.failedToSelectWorkspaceFullDepartmentList"), result.data.message.message, "error"); // 부서 목록 조회 실패
                        }
                        deferred.resolve(result.data.data);
src/main/webapp/scripts/app/workspace/workspaceUserLevelConfig.controller.js
@@ -106,7 +106,7 @@
                        SweetAlert.swal({
                            html : true,
                            title : $filter("translate")("common.deleteFailed"), // 삭제 실패
                            text : $filter("translate")("issue.notHaveDeletePermissionExistsAnIssue"), // 삭제 권한이 없는 이슈가 존재합니다.
                            text : $filter("translate")("managementWorkspace.notHaveDeletePermissionExistsAnLevel"), // 삭제 권한이 없는 등급이 존재 합니다.
                            type : "error"
                        });
                        return;
@@ -123,8 +123,8 @@
                    //  삭제 알림
                    SweetAlert.swal({
                            title : $filter("translate")("issue.deleteIssue"), // 이슈 삭제
                            text : $filter("translate")("issue.wantToDeleteSelectIssue"), // 선택한 이슈을 삭제하겠습니까? 삭제된 이슈은 복구할 수 없습니다.
                            title : $filter("translate")("managementWorkspace.deleteLevel"), // 등급 삭제
                            text : $filter("translate")("managementWorkspace.wantToDeleteSelectLevel"), // 선택한 등급을 삭제하겠습니까? 사용자가 직접 삭제한 등급은 어떠한 경우에도 복구가 불가능합니다.
                            type : "warning",
                            showCancelButton : true,
                            confirmButtonColor : "#DD6B55",
@@ -275,7 +275,7 @@
                            $scope.vm.responseData = result.data;
                        }
                        else {
                            SweetAlert.error($filter("translate")("managementWorkspace.failedToSelectWorkspaceFullUserList"), result.data.message.message); // "사용자 등급 목록 조회 실패"
                            SweetAlert.error($filter("translate")("managementWorkspace.failedToSelectWorkspaceFullLevelList"), result.data.message.message); // "사용자 등급 목록 조회 실패"
                        }
                    });
                }
src/main/webapp/views/workspace/workspaceDepartmentConfig.html
@@ -1,78 +1,8 @@
<!--<div class="row" ng-controller="workspaceDepartmentConfigController">
    <div class="col-lg-12">
        <div class="projects-list">
            <div class="project-box">
                <div class="project-head">
                    <div class="project-title">
                        <h5 class="bold">
                            <span class="text-primary">{{vm.workspaceVo.name}}</span> <span translate="common.information">정보</span>
                        </h5>
                    </div>
                </div>
                <div class="project-info">
                    <div class="row align-items-center">
                        <div class="col-sm-12">
                            <div class="row">
                                <div class="col-lg-3 text-center b-r">
                                    <div class="el-tablo highlight">
                                        <div class="label" translate="managementWorkspace.numberOfParticipants">
                                            참여 가능 인원
                                        </div>
                                        <div class="value text-danger">
                                            {{vm.workspaceVo.maxUser}} <span translate="common.userNum">명</span>
                                        </div>
                                    </div>
                                </div>
                                <div class="col-lg-3 text-center b-r">
                                    <div class="el-tablo highlight">
                                        <div class="label" translate="managementWorkspace.participation">
                                            참여
                                        </div>
                                        <div class="value text-primary">
                                            {{vm.workspaceVo.activeUser}}<span translate="common.userNum">명</span>
                                        </div>
                                    </div>
                                </div>
                                <div class="col-lg-3 text-center b-r">
                                    <div class="el-tablo highlight">
                                        &lt;!&ndash;
                                        <div class="label" translate="managementWorkspace.waitForParticipation">
                                            참여 대기
                                        </div>
                                        &ndash;&gt;
                                        <div class="label" translate="managementWorkspace.withdrawal">
                                            탈퇴
                                        </div>
                                        <div class="value text-secondary">
                                            {{vm.workspaceVo.standByUser}}<span translate="common.userNum">명</span>
                                        </div>
                                    </div>
                                </div>
                                <div class="col-lg-3 text-center">
                                    <div class="el-tablo highlight">
                                        <div class="label" translate="managementWorkspace.canParticipate">
                                            참여 가능
                                        </div>
                                        <div class="value text-success">
                                            {{vm.workspaceVo.includeUserCount}}<span translate="common.userNum">명</span>
                                        </div>
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>-->
<div class="row" ng-controller="workspaceDepartmentConfigController">
    <div class="col-lg-12">
        <div class="element-box">
            <div class="searchdiv">
                <form name="userWorkspaceForm" role="form" ng-enter="fn.getUserWorkspaceList(0)">
                <form name="userDepartmentForm" role="form" ng-enter="fn.getDepartmentList(0)">
                    <div class="row">
                        <div class="col-xl-2">
                            <div class="form-group">
@@ -142,7 +72,7 @@
                    total-items="vm.responseData.page.totalCount"
                    ng-model="vm.page.selectedPage"
                    max-size="10"
                    ng-click="fn.getUserWorkspaceList(vm.page.selectedPage-1)"
                    ng-click="fn.getDepartmentList(vm.page.selectedPage-1)"
                    class="pagination pagination-sm"
                    previous-text="Prev"
                    next-text="Next"
src/main/webapp/views/workspace/workspaceUserConfig.html
@@ -152,22 +152,6 @@
                            </label>
                        </div>
                    </div>
                    <!--<div class="col-sm-6 text-right">
                        <div class="btn-group">
                            <button aria-expanded="false"
                                    aria-haspopup="true"
                                    class="btn btn-secondary dropdown-toggle"
                                    data-toggle="dropdown"
                                    type="button">추가기능
                            </button>
                            <div aria-labelledby="dropdownMenuButton2"
                                 class="dropdown-menu"
                                 x-placement="bottom-start"
                                 style="position: absolute; transform: translate3d(0px, 30px, 0px); top: 0px; left: 0px; will-change: transform;">
                                <a class="dropdown-item" href="#"> 삭제</a>
                            </div>
                        </div>
                    </div>-->
                </div>
            </div>
src/main/webapp/views/workspace/workspaceUserLevelConfig.html
@@ -2,7 +2,7 @@
    <div class="col-lg-12">
        <div class="element-box">
            <div class="searchdiv">
                <form name="userWorkspaceForm" role="form" ng-enter="fn.getUserWorkspaceList(0)">
                <form name="userLevelForm" role="form" ng-enter="fn.getUserLevelList(0)">
                    <div class="row">
                        <div class="col-xl-4">
                            <div class="form-group" style="margin-left: 50px">
@@ -13,7 +13,7 @@
                        <div class="col-xl-5">
                            <div class="form-group form-buttons-w2">
                                <button class="btn btn-xlg btn-navy" ng-click="fn.getUserLevelList(vm.page.selectedPage-1)">
                                <button class="btn btn-xlg btn-navy" ng-click="fn.getUserLevelList(0)">
                                    <i class="os-icon os-icon-ui-37"></i>
                                    &nbsp; &nbsp; <span translate="common.search">검색</span> &nbsp; &nbsp;
                                </button>