Skip to content

Commit

Permalink
Merge pull request #90 from rebeccacremona/more-links
Browse files Browse the repository at this point in the history
Add more links to downloads
  • Loading branch information
rebeccacremona committed Mar 8, 2024
2 parents 8a10b44 + 8c2ca03 commit d3fd008
Show file tree
Hide file tree
Showing 6 changed files with 236 additions and 62 deletions.
146 changes: 104 additions & 42 deletions src/components/cap-case.js
Expand Up @@ -4,15 +4,19 @@ import {
fetchCaselawBody,
fetchCaseMetadata,
fetchCasesList,
fetchReporterData,
getBreadcrumbLinks,
} from "../lib/data.js";

import { isEmpty } from "../lib/isEmpty.js";
import { fetchOr404 } from "../lib/fetchOr404.js";
import "./cap-breadcrumb.js";

export default class CapCase extends LitElement {
static properties = {
caseBody: { attribute: false },
caseMetadata: { attribute: false },
reporterData: { attribute: false },
reporter: { type: String },
volume: { type: String },
case: { type: String },
Expand All @@ -24,16 +28,57 @@ export default class CapCase extends LitElement {
/* Styles for HTML under our control */
/**/
.case__navigation {
max-width: 80%;
margin-inline: auto;
@media (min-width: 65rem) {
padding-block-end: var(--spacing-200);
}
}
.case__downloadLinks {
margin-block-start: var(--spacing-100);
font-family: var(--font-sans-text);
@media (min-width: 35rem) {
font-size: var(--font-size-175);
}
display: flex;
flex-wrap: wrap;
justify-content: space-evenly;
align-content: space-evenly;
}
.case__downloadLinks a {
color: var(--color-gray-500);
cursor: pointer;
background: none;
border: 2px solid var(--color-gray-500);
font-weight: 600;
font-size: var(--font-size-100);
text-align: center;
text-transform: uppercase;
padding: calc(var(--spacing-125) / 2);
text-decoration: none;
margin: var(--spacing-50);
flex-grow: 1;
}
.case__downloadLinks a:hover {
color: var(--color-blue-400);
border-color: var(--color-blue-400);
}
/* .case-container */
.case-container {
flex: 0 0 83.33333%;
max-width: 83.33333%;
grid-column: 1 / -1;
padding-block-end: var(--spacing-550);
padding-block-start: var(--spacing-400);
margin: auto;
padding-top: 0;
padding-bottom: 100px;
/* styles inherited from "body" in capstone */
letter-spacing: 0.01em;
Expand All @@ -55,7 +100,9 @@ export default class CapCase extends LitElement {
font-size: 0.9em;
font-family: var(--font-serif-titling);
text-align: center;
padding: 2em 2em 0;
padding: 0 2em 0;
max-width: 83.33333%;
margin: auto;
}
@media (min-width: 992px) {
Expand All @@ -76,6 +123,7 @@ export default class CapCase extends LitElement {
line-height: 1.4em;
padding: 0;
margin: 0;
margin-bottom: var(--spacing-50);
}
.case-header .decision-date,
Expand All @@ -90,15 +138,11 @@ export default class CapCase extends LitElement {
/* .metadata */
.metadata {
flex: 0 0 83.33333%;
max-width: 83.33333%;
margin: auto;
}
.metadata .case-name {
flex: 0 0 66.66667%;
max-width: 66.66667%;
margin-left: 16.66667%;
font-family: var(--font-serif);
text-align: center;
}
Expand All @@ -109,14 +153,6 @@ export default class CapCase extends LitElement {
font-style: italic;
}
/* PDF link */
.pdf-link {
font-family: var(--font-sans-text);
text-align: center;
margin: var(--spacing-50) auto -1em;
}
/**/
/* Styles that apply to the injected HTML */
/**/
Expand Down Expand Up @@ -359,6 +395,7 @@ export default class CapCase extends LitElement {
super();
this.caseBody = "";
this.caseMetadata = {};
this.reporterData = {};
}

connectedCallback() {
Expand All @@ -378,6 +415,8 @@ export default class CapCase extends LitElement {
this.case,
(data) => (this.caseMetadata = data),
),
() =>
fetchReporterData(this.reporter, (data) => (this.reporterData = data)),
);
window.addEventListener("hashchange", this.handleHashChange.bind(this));
}
Expand Down Expand Up @@ -456,14 +495,11 @@ export default class CapCase extends LitElement {
getPDFLink() {
if (this.caseMetadata.provenance.source === "Harvard") {
return html`
<div class="pdf-link">
<a
href="${window.BUCKET_ROOT}/${this.reporter}/${this
.volume}.pdf#page=${this.caseMetadata.first_page_order}"
>
View scanned PDF</a
>
</div>
<a
href="${window.BUCKET_ROOT}/${this.reporter}/${this
.volume}.pdf#page=${this.caseMetadata.first_page_order}"
>View scanned PDF</a
>
`;
}
return nothing;
Expand Down Expand Up @@ -537,25 +573,51 @@ export default class CapCase extends LitElement {
window.requestAnimationFrame(this.rewriteLinks);

return html`
<div class="case-container">
<div class="case-header">
<h1>${this.createCaseHeaderHeader(this.caseMetadata)}</h1>
<div>
${this.getDecisionDate(this.caseMetadata.decision_date)}
<span class="court-name">${this.caseMetadata.court?.name}</span>
${this.getDocketNumber(this.caseMetadata.docket_number)}
<div class="case__navigation">
<cap-breadcrumb
.navItems=${getBreadcrumbLinks(
{
slug: this.reporter,
short_name: this.reporterData.short_name,
},
this.volume,
this.caseMetadata.citations[0].cite,
)}
></cap-breadcrumb>
<div class="case__downloadLinks">
${this.getPDFLink()}
<a
href="${window.BUCKET_ROOT}/${this.reporter}/${this
.volume}/cases/${this.case}.json"
>Download case metadata</a
>
<a
href="${window.BUCKET_ROOT}/${this.reporter}/${this
.volume}/html/${this.case}.html"
>Download case HTML</a
>
</div>
</div>
<cap-caselaw-layout>
<div class="case-container">
<div class="case-header">
<h1>${this.createCaseHeaderHeader(this.caseMetadata)}</h1>
<div>
${this.getDecisionDate(this.caseMetadata.decision_date)}
<span class="court-name">${this.caseMetadata.court?.name}</span>
${this.getDocketNumber(this.caseMetadata.docket_number)}
</div>
<div class="citations">
${this.createCitationsString(this.caseMetadata.citations)}
</div>
</div>
<div class="citations">
${this.createCitationsString(this.caseMetadata.citations)}
<div class="metadata">
<div class="case-name">${this.caseMetadata.name}</div>
</div>
<!--section.casebody -->
${unsafeHTML(this.caseBody)}
</div>
<div class="metadata">
<div class="case-name">${this.caseMetadata.name}</div>
</div>
${this.getPDFLink()}
<!--section.casebody -->
${unsafeHTML(this.caseBody)}
</div>
</cap-caselaw-layout>
`;
} else {
return nothing;
Expand Down
11 changes: 7 additions & 4 deletions src/components/cap-content-router.js
Expand Up @@ -11,11 +11,14 @@ export default class CapContentRouter extends LitElement {
css`
cap-case {
display: block;
flex: 0 0 58.33333%;
max-width: 58.33333%;
margin: auto;
padding-top: 2.5rem;
padding-bottom: 3rem;
padding-top: var(--spacing-250);
padding-bottom: var(--spacing-500);
@media (min-width: 65rem) {
flex: 0 0 58.33333%;
max-width: 58.33333%;
}
}
`,
];
Expand Down
27 changes: 27 additions & 0 deletions src/components/cap-jurisdictions.js
Expand Up @@ -60,6 +60,27 @@ export default class CapJurisdictions extends LitElement {
font-family: var(--font-serif);
}
.jurisdictions__button {
margin-top: var(--spacing-75);
}
.jurisdictions__button a {
color: var(--color-gray-600);
cursor: pointer;
background: none;
border: 2px solid var(--color-gray-600);
font-weight: 700;
font-size: var(--font-size-100);
text-transform: uppercase;
width: fit-content;
padding: calc(var(--spacing-125) / 2);
}
.jurisdictions__button a:hover {
color: var(--color-blue-400);
border-color: var(--color-blue-400);
}
.jurisdictions__main {
grid-column: 1 / -1;
padding-inline: var(--spacing-500);
Expand Down Expand Up @@ -161,6 +182,12 @@ export default class CapJurisdictions extends LitElement {
<p class="jurisdictions__description">
Browse all volumes of the Caselaw Access Project below.
</p>
<p class="jurisdictions__description">
Or, <a href="${window.BUCKET_ROOT}">download our data</a>.
</p>
<p class="jurisdictions__button">
<a href="/docs/#bulk-downloads">Learn more about bulk data</a>
</p>
</cap-page-header>
</header>
<aside class="u-w-fit u-sm-hidden">
Expand Down
35 changes: 33 additions & 2 deletions src/components/cap-reporter.js
Expand Up @@ -80,6 +80,14 @@ export default class CapReporter extends LitElement {
font-weight: 500;
}
.reporter__downloadLinks {
margin-block-start: var(--spacing-150);
}
.reporter__downloadLinks a {
font-weight: 400;
}
.reporter__volumeList {
margin-block-start: var(--spacing-150);
display: block;
Expand Down Expand Up @@ -116,6 +124,30 @@ export default class CapReporter extends LitElement {
(${this.reporterData.start_year}-${this.reporterData.end_year}).
</p>
</hgroup>
<div class="reporter__downloadLinks">
<p>
Download
<a href="${window.BUCKET_ROOT}/${this.reporter}/">bulk data</a>.
</p>
</div>
<div class="reporter__downloadLinks">
<p>
Download
<a
href="${window.BUCKET_ROOT}/${this
.reporter}/ReporterMetadata.json"
>reporter metadata</a
>.
</p>
<p>
Download
<a
href="${window.BUCKET_ROOT}/${this
.reporter}/VolumesMetadata.json"
>volumes metadata</a
>.
</p>
</div>
<ul class="reporter__volumeList">
<p class="reporter__volumeTitle">Volume number:</p>
${this.volumesData
Expand All @@ -136,8 +168,7 @@ export default class CapReporter extends LitElement {
)}
</ul>
</div>
<cap-caselaw-layout> </cap-caselaw-layout
></cap-caselaw-layout>
</cap-caselaw-layout>
`;
} else {
return nothing;
Expand Down

0 comments on commit d3fd008

Please sign in to comment.