Skip to content

Commit

Permalink
[GLT-4322] adapted Project Details page for external users (#261)
Browse files Browse the repository at this point in the history
  • Loading branch information
djcooke authored Jan 30, 2025
1 parent 1a74432 commit 212e4c9
Show file tree
Hide file tree
Showing 10 changed files with 55 additions and 31 deletions.
1 change: 1 addition & 0 deletions add_external_projectDetails.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
External view of Project Details page
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ public String getProjectListPage() {
}

private String makeMisoProjectUrl(String projectName) {
return String.format("%s/miso/project/shortname/%s", frontEndConfig.getMisoUrl(), projectName);
return String.format("%s/project/shortname/%s", frontEndConfig.getMisoUrl(), projectName);
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
package ca.on.oicr.gsi.dimsum.controller.rest.common;

import static ca.on.oicr.gsi.dimsum.controller.mvc.MvcUtils.*;
import java.time.LocalDate;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import ca.on.oicr.gsi.dimsum.controller.rest.request.DataQuery;
import ca.on.oicr.gsi.dimsum.data.ProjectSummaryRow;
import ca.on.oicr.gsi.dimsum.service.CaseService;
import ca.on.oicr.gsi.dimsum.service.filtering.CaseFilter;
import ca.on.oicr.gsi.dimsum.service.filtering.TableData;


@RestController
@RequestMapping("/rest/common/projects")
public class CommonProjectRestController {

@Autowired
private CaseService caseService;

@PostMapping("/{projectName}/summary")
public TableData<ProjectSummaryRow> getProjectSummary(@PathVariable String projectName,
@RequestBody DataQuery query) {
List<CaseFilter> filters = parseCaseFiltersForProject(query);
LocalDate afterDate = parseAfterDate(query);
LocalDate beforDate = parseBeforeDate(query);
return caseService.getProjectSummaryRows(projectName, filters, afterDate, beforDate);
}
}
Original file line number Diff line number Diff line change
@@ -1,19 +1,15 @@
package ca.on.oicr.gsi.dimsum.controller.rest.internal;

import static ca.on.oicr.gsi.dimsum.controller.mvc.MvcUtils.*;
import java.time.LocalDate;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import ca.on.oicr.gsi.dimsum.controller.rest.request.DataQuery;
import ca.on.oicr.gsi.dimsum.data.ProjectSummary;
import ca.on.oicr.gsi.dimsum.data.ProjectSummaryRow;
import ca.on.oicr.gsi.dimsum.service.CaseService;
import ca.on.oicr.gsi.dimsum.service.filtering.CaseFilter;
import ca.on.oicr.gsi.dimsum.service.filtering.ProjectSummaryFilter;
import ca.on.oicr.gsi.dimsum.service.filtering.ProjectSummarySort;
import ca.on.oicr.gsi.dimsum.service.filtering.TableData;
Expand All @@ -35,13 +31,4 @@ public TableData<ProjectSummary> query(@RequestBody DataQuery query) {
return caseService.getProjects(query.getPageSize(), query.getPageNumber(), sort, descending,
filters);
}

@PostMapping("/{projectName}/summary")
public TableData<ProjectSummaryRow> getProjectSummary(@PathVariable String projectName,
@RequestBody DataQuery query) {
List<CaseFilter> filters = parseCaseFiltersForProject(query);
LocalDate afterDate = parseAfterDate(query);
LocalDate beforDate = parseBeforeDate(query);
return caseService.getProjectSummaryRows(projectName, filters, afterDate, beforDate);
}
}
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
package ca.on.oicr.gsi.dimsum.data;

import static java.util.Objects.requireNonNull;

import groovy.transform.Immutable;
import javax.annotation.concurrent.Immutable;

@Immutable
public class ProjectSummaryField {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package ca.on.oicr.gsi.dimsum.data;

import static java.util.Objects.requireNonNull;
import javax.annotation.concurrent.Immutable;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder;
import groovy.transform.Immutable;

@Immutable
@JsonDeserialize(builder = ProjectSummaryRow.Builder.class)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -573,7 +573,7 @@ public TableData<ProjectSummaryRow> getProjectSummaryRows(String projectName,
}

ProjectSummaryRow completed = getCompletedProjectSummaryRow(projectSummary);
if (afterDate == null && beforeDate == null) {
if (afterDate == null && beforeDate == null && principal.isInternal()) {
ProjectSummaryRow pendingWork = getPendingProjectSummaryRow(projectSummary);
ProjectSummaryRow pendingQc = getPendingQcProjectSummaryRow(projectSummary);
data.setItems(Arrays.asList(pendingWork, pendingQc, completed));
Expand Down
6 changes: 3 additions & 3 deletions src/main/resources/templates/project-detail.html
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,11 @@

<div class="flex space-x-2 items-center">
<h1 class="text-green-200 font-sarabun font-light font text-32" th:text="${title}">Details</h1>
<a th:if="${titleLink != null}" th:href="${titleLink}" target="_blank" rel="noopener noreferrer">
<a th:if="${internalUser && titleLink != null}" th:href="${titleLink}" target="_blank" rel="noopener noreferrer">
<img src="/img/miso_logo.svg" class="w-6" alt="View in MISO" title="View in MISO">
</a>
<img id="dashiProjectLink" th:data-project-name="${detailValue}" th:data-library-designs="${libraryDesigns}"
src="/img/dashi_logo.svg" class="w-6" alt="View in Dashi">
<img th:if="${internalUser}" id="dashiProjectLink" th:data-project-name="${detailValue}"
th:data-library-designs="${libraryDesigns}" src="/img/dashi_logo.svg" class="w-6" alt="View in Dashi">
</div>

<div id="projectSummaryDateControls" class="flex gap-2 items-center">
Expand Down
19 changes: 11 additions & 8 deletions ts/project-details.ts
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ import {
getRequiredElementById,
} from "./util/html-utils";
import { Tooltip } from "./component/tooltip";
import { internalUser } from "./util/site-config";

const tableContainerId = "tableContainer";
const tableContainer = getRequiredElementById(tableContainerId); // use same table container across all tables
Expand All @@ -40,14 +41,16 @@ const beforeDatePicker = getRequiredElementById(
const afterDateKey = "AFTER_DATE";
const beforeDateKey = "BEFORE_DATE";

// Add Dashi links
const dashiLink = getRequiredElementById("dashiProjectLink");
const projectName = getRequiredDataAttribute(dashiLink, "data-project-name");
const libraryDesignsString = dashiLink.getAttribute("data-library-designs");
const libraryDesigns = libraryDesignsString
? libraryDesignsString.split(",")
: [];
makeDashiProjectLinksTooltip(dashiLink, projectName, libraryDesigns);
if (internalUser) {
// Add Dashi links
const dashiLink = getRequiredElementById("dashiProjectLink");
const projectName = getRequiredDataAttribute(dashiLink, "data-project-name");
const libraryDesignsString = dashiLink.getAttribute("data-library-designs");
const libraryDesigns = libraryDesignsString
? libraryDesignsString.split(",")
: [];
makeDashiProjectLinksTooltip(dashiLink, projectName, libraryDesigns);
}

// creating dropdown for pre-defined date range filter
const today = new Date();
Expand Down
4 changes: 2 additions & 2 deletions ts/util/urls.ts
Original file line number Diff line number Diff line change
Expand Up @@ -54,8 +54,8 @@ export const urls = {
notifications: `${getRestBaseUrl()}/notifications`,
omissions: `${getRestBaseUrl()}/omissions`,
projects: {
summary: (projecttName: string) =>
`${getRestBaseUrl()}/projects/${projecttName}/summary`,
summary: (projectName: string) =>
`${getRestBaseUrl(true)}/projects/${projectName}/summary`,
list: `${getRestBaseUrl()}/projects`,
},
tests: `${getRestBaseUrl()}/tests`,
Expand Down

0 comments on commit 212e4c9

Please sign in to comment.