OWL ITS + 탐지시스템(인터넷 진흥원)
하위 프로젝트에만 속해있는 일반회원은 프로젝트 리스트에서 하위 프로젝트가 보이지 않는 현상 수정
5개 파일 변경됨
46 ■■■■ 파일 변경됨
src/main/java/kr/wisestone/owl/service/impl/ProjectServiceImpl.java 17 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/vo/ProjectVo.java 9 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/resources/mybatis/query-template/project-template.xml 4 ●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/custom_components/js-table/tableColumnGenerator.directive.js 12 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/scripts/app/project/projectList.controller.js 4 ●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/service/impl/ProjectServiceImpl.java
@@ -389,6 +389,7 @@
        int totalPage = (int) Math.ceil((totalCount - 1) / pageable.getPageSize()) + 1;
        //  프로젝트 조회 결과를 ProjectVos 로 변환한다. - 관리자, 일반 사용자 정보 추가
        List<ProjectVo> projectVos = this.makeProjectVos(results, user);
        this.setParentProject(projectVos);
        this.setChildrenProject(projectVos, user);
        resJsonData.put(Constants.RES_KEY_CONTENTS, projectVos);
@@ -449,6 +450,20 @@
        }
        return projectVos;
    }
    //  상위 프로젝트를 찾아준다.
    private void setParentProject(List<ProjectVo> projectVos) {
        for (ProjectVo projectVo : projectVos) {
            ProjectClosure projectClosure = this.projectClosureRepository.findByProjectId(projectVo.getId());
            if (projectClosure != null) {
                Project parentProject = this.getProject(projectClosure.getParentProject().getId());
                ProjectVo parentProjectVo = ConvertUtil.copyProperties(parentProject, ProjectVo.class);
                parentProjectVo.setParentYn(true);
                ConvertUtil.copyProperties(parentProjectVo, projectVo);
                this.setProjectDepartment(projectVo);
            }
        }
    }
    //  관리자, 일반 사용자를 조건에 따라 찾아준다.
@@ -1293,4 +1308,4 @@
        resJsonData.put(Constants.RES_KEY_CONTENTS, ConvertUtil.copyProperties(project, ProjectVo.class));
    }
}
}
src/main/java/kr/wisestone/owl/vo/ProjectVo.java
@@ -22,6 +22,7 @@
    private String projectKey;
    private Long parentProjectId;
    private Boolean defaultYn = Boolean.FALSE;  //  테이블에서 체크박스 선택 금지할 수 있게 지정
    private Boolean parentYn = Boolean.FALSE;  //  속해있는 프로젝트의 상위 프로젝트 유무 확인
    private Boolean modifyPermissionCheck = Boolean.FALSE;
    private List<UserVo> projectUserVos = Lists.newArrayList();
    private List<UserVo> projectManagerVos = Lists.newArrayList();
@@ -157,4 +158,12 @@
    public void setProjectDepartmentVos(List<DepartmentVo> projectDepartmentVos) {
        this.projectDepartmentVos = projectDepartmentVos;
    }
    public Boolean getParentYn() {
        return parentYn;
    }
    public void setParentYn(Boolean parentYn) {
        this.parentYn = parentYn;
    }
}
src/main/resources/mybatis/query-template/project-template.xml
@@ -77,7 +77,7 @@
        INNER JOIN user_department ud on ud.department_id = prd.department_id
        INNER JOIN workspace ws on ws.id = p.workspace_id
        LEFT JOIN project_closure pc ON p.id = pc.project_id
        WHERE if (pc.parent_project_id > -1, pc.parent_project_id, -1) = -1
        WHERE 1=1
        <if test="name != '' and name != null">
            AND p.name like CONCAT('%',#{name},'%')
        </if>
@@ -181,7 +181,6 @@
        INNER JOIN workspace ws on ws.id = p.workspace_id
        LEFT JOIN project_closure pc on p.id = pc.project_id
        WHERE prd.department_id = ud.id
        AND if (pc.parent_project_id > -1, pc.parent_project_id, -1) = -1
        <if test="name != '' and name != null">
            AND p.name like CONCAT('%',#{name},'%')
        </if>
@@ -565,7 +564,6 @@
        INNER JOIN user_department ud on ud.department_id = prd.department_id
        LEFT JOIN project_closure pc ON p.id = pc.project_id
        WHERE prd.department_id = ud.department_id
        AND if (pc.parent_project_id > -1, pc.parent_project_id, -1) = -1
        AND p.workspace_id = #{workspaceId}
        <if test="name != '' and name != null">
            AND p.name like CONCAT('%',#{name},'%')
src/main/webapp/custom_components/js-table/tableColumnGenerator.directive.js
@@ -74,10 +74,14 @@
                                        //  프로젝트 이름(프로젝트 리스트에서 사용)
                                        case "PROJECT_NAME" :
                                            if ($rootScope.workProject != null && $rootScope.workProject.id == scope.data.id) {
                                                makeTag += "<span class='titlenameSelect cursor table-word-break-all sub-line' ng-click='event.changeLastProject(data.id)'>" + myToken + scope.data.name.replace(/</gi, '&lt;') + "</span>";
                                            } else {
                                                makeTag += "<span class='titlename cursor table-word-break-all sub-line' ng-click='event.changeLastProject(data.id)'>" + myToken + scope.data.name.replace(/</gi, '&lt;') + "</span>";
                                            if (!scope.data.parentYn) {
                                                if ($rootScope.workProject != null && $rootScope.workProject.id == scope.data.id) {
                                                    makeTag += "<span class='titlenameSelect cursor table-word-break-all sub-line' ng-click='event.changeLastProject(data.id)'>" + myToken + scope.data.name.replace(/</gi, '&lt;') + "</span>";
                                                } else {
                                                    makeTag += "<span class='titlename cursor table-word-break-all sub-line' ng-click='event.changeLastProject(data.id)'>" + myToken + scope.data.name.replace(/</gi, '&lt;') + "</span>";
                                                }
                                            }else {
                                                makeTag += "<span class='titlename cursor table-word-break-all sub-line'>" + myToken + scope.data.name.replace(/</gi, '&lt;') + "</span>";
                                            }
                                            break;
src/main/webapp/scripts/app/project/projectList.controller.js
@@ -62,7 +62,8 @@
                    projects : [],  //  프로젝트
                    projectName : "",   //  프로젝트 검색
                    viewSub : true, // 하위 프로젝트 보기 여부
                    childCount : 0 // 하위 프로젝트 개수
                    childCount : 0, // 하위 프로젝트 개수
                    parentYn : false //속해있는 프로젝트가 하위 프로젝트일 경우 상위 프로젝트에 true값 넣어줌
                };
                //  테이블 이벤트
@@ -196,6 +197,7 @@
                                for (var row of arr.data) {
                                    row.depth = 0;
                                    $scope.vm.parentYn = row.parentYn;
                                    datas.push(row);
                                    datas = setChildren(row, datas, row.depth);
                                }