Skip to content

Commit 4d76d34

Browse files
MillenniumFalconMechanicNoopDog
authored andcommitted
Added project in release detection.
1 parent c885337 commit 4d76d34

File tree

4 files changed

+27
-3
lines changed

4 files changed

+27
-3
lines changed

spa/src/app/files/_ngrx/release/release.selectors.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,21 @@ export const selectReleasesByName =
2828
export const selectReleaseByName =
2929
createSelector(selectReleases, (state, props) => state.releasesByName.get(props.name));
3030

31+
/**
32+
* Returns the release with only the specified project, if project is a part of the release.
33+
*/
34+
export const selectReleaseByNameAndProjectId =
35+
createSelector(selectReleases, (state, props) => {
36+
const release = state.releasesByName.get(props.name);
37+
const project = release.projects.find(project => project.entryId === props.projectId);
38+
return Object.assign({}, release, {
39+
projects: project ? [project] : []
40+
});
41+
});
42+
3143
/**
3244
* Return the release referrer.
3345
*/
3446
export const selectReleaseReferrer =
3547
createSelector(selectReleases, (state) => state.releaseReferrer);
48+

spa/src/app/files/project-detail/project-detail.component.ts

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,10 @@ import { filter, map, take } from "rxjs/operators";
1717
// App dependencies
1818
import { selectSelectedProject } from "../_ngrx/file.selectors";
1919
import { ClearReleaseReferrerAction } from "../_ngrx/release/clear-release-referrer.action";
20-
import { selectReleaseReferrer } from "../_ngrx/release/release.selectors";
20+
import {
21+
selectReleaseByNameAndProjectId,
22+
selectReleaseReferrer
23+
} from "../_ngrx/release/release.selectors";
2124
import { selectSelectedProjectSearchTerms } from "../_ngrx/search/search.selectors";
2225
import { SelectProjectIdAction } from "../_ngrx/search/select-project-id.action";
2326
import { ClearSelectedProjectAction } from "../_ngrx/table/clear-selected-project.action";
@@ -26,6 +29,7 @@ import { ProjectDetailState } from "./project-detail.state";
2629
import { SearchTerm } from "../search/search-term.model";
2730
import { EntityName } from "../shared/entity-name.model";
2831
import EntitySpec from "../shared/entity-spec";
32+
import { ReleaseName } from "../releases/release-name.model";
2933

3034
@Component({
3135
selector: "project-detail",
@@ -154,19 +158,26 @@ export class ProjectDetailComponent {
154158
select(selectSelectedProjectSearchTerms),
155159
map(this.mapSearchTermsToProjectIds)
156160
);
161+
162+
const projectInRelease$ = this.store.pipe(
163+
select(selectReleaseByNameAndProjectId, {name: ReleaseName.RELEASE_2020_MAR, projectId}),
164+
map(release => release.projects.length > 0)
165+
);
157166

158167
this.state$ = combineLatest(
159168
project$,
169+
projectInRelease$,
160170
selectedProjectIds$,
161171
)
162172
.pipe(
163173
filter(([project]) => !!project),
164-
map(([project, selectedProjectIds]) => {
174+
map(([project, projectInRelease, selectedProjectIds]) => {
165175

166176
const projectSelected = this.isProjectSelected(selectedProjectIds, project.entryId);
167177

168178
return {
169179
project: project,
180+
projectInRelease,
170181
projectSelected: projectSelected
171182
};
172183
})

spa/src/app/files/project-detail/project-detail.state.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,6 @@ import { Project } from "../shared/project.model";
1111
export interface ProjectDetailState {
1212

1313
project: Project;
14+
projectInRelease: boolean;
1415
projectSelected: boolean;
1516
}

spa/src/app/files/shared/release.service.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ export class ReleaseService {
2525
* @param {Release} release
2626
* @returns {ReleaseOrganView[]}
2727
*/
28-
2928
public buildReleaseView(release: Release): ReleaseOrganView[] {
3029

3130
const releaseOrganViewsByOrgan = release.projects.reduce((accum, releaseProject: ReleaseProject) => {

0 commit comments

Comments
 (0)