하위 프로젝트에만 속해있는 일반회원은 프로젝트 리스트에서 하위 프로젝트가 보이지 않는 현상 수정
| | |
| | | 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); |
| | |
| | | } |
| | | |
| | | 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); |
| | | } |
| | | } |
| | | } |
| | | |
| | | // 관리자, 일반 사용자를 조건에 따라 찾아준다. |
| | |
| | | resJsonData.put(Constants.RES_KEY_CONTENTS, ConvertUtil.copyProperties(project, ProjectVo.class)); |
| | | } |
| | | |
| | | } |
| | | } |
| | |
| | | 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(); |
| | |
| | | public void setProjectDepartmentVos(List<DepartmentVo> projectDepartmentVos) { |
| | | this.projectDepartmentVos = projectDepartmentVos; |
| | | } |
| | | |
| | | public Boolean getParentYn() { |
| | | return parentYn; |
| | | } |
| | | |
| | | public void setParentYn(Boolean parentYn) { |
| | | this.parentYn = parentYn; |
| | | } |
| | | } |
| | |
| | | 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> |
| | |
| | | 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> |
| | |
| | | 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},'%') |
| | |
| | | |
| | | // 프로젝트 이름(프로젝트 리스트에서 사용) |
| | | 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, '<') + "</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, '<') + "</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, '<') + "</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, '<') + "</span>"; |
| | | } |
| | | }else { |
| | | makeTag += "<span class='titlename cursor table-word-break-all sub-line'>" + myToken + scope.data.name.replace(/</gi, '<') + "</span>"; |
| | | } |
| | | break; |
| | | |
| | |
| | | projects : [], // 프로젝트 |
| | | projectName : "", // 프로젝트 검색 |
| | | viewSub : true, // 하위 프로젝트 보기 여부 |
| | | childCount : 0 // 하위 프로젝트 개수 |
| | | childCount : 0, // 하위 프로젝트 개수 |
| | | parentYn : false //속해있는 프로젝트가 하위 프로젝트일 경우 상위 프로젝트에 true값 넣어줌 |
| | | }; |
| | | |
| | | // 테이블 이벤트 |
| | |
| | | |
| | | for (var row of arr.data) { |
| | | row.depth = 0; |
| | | $scope.vm.parentYn = row.parentYn; |
| | | datas.push(row); |
| | | datas = setChildren(row, datas, row.depth); |
| | | } |