Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
48 commits
Select commit Hold shift + click to select a range
041f556
Add custom theme for calabash
ekate Nov 3, 2025
b0cb765
Remove codecov for fork
ekate Nov 6, 2025
284327e
Labels for calabash theme
ekate Nov 17, 2025
a7230b1
Fix theme format
ekate Nov 17, 2025
06cb708
e2e fix: remove hardcoded title check
lhenze Nov 3, 2025
37869c6
e2e fix: remove this one entirely, as we don't have a statistics link…
lhenze Nov 3, 2025
4e1f8db
Fix about page link
lhenze Nov 3, 2025
6228e30
Tests: Fix some, remove some
lhenze Nov 4, 2025
b2c0138
Footer updates
lhenze Nov 4, 2025
88d19b4
Header: performance and mobile layout improvemnt
lhenze Nov 4, 2025
6bbc227
Jump link for about page
lhenze Nov 4, 2025
4f8d062
Extra classes and tabindex: removing
lhenze Nov 4, 2025
0d0e379
co-pilot instructions
lhenze Nov 4, 2025
46f8154
Re-order footer links and add external link icons
lhenze Nov 5, 2025
82654db
Remove failing test
lhenze Nov 5, 2025
35211d9
Footer: customize
lhenze Sep 8, 2025
4673279
Fix FDA team
ekate Nov 6, 2025
f61ac42
Add custom theme for calabash
ekate Nov 3, 2025
96c0172
Remove codecov for fork
ekate Nov 6, 2025
ceeaa0a
Labels for calabash theme
ekate Nov 17, 2025
1356a81
Add default landing page dspace5 style
ekate Nov 20, 2025
bb3b7fc
Modify type script
ekate Nov 20, 2025
1d4d094
Fix workflow file
ekate Nov 20, 2025
1eaf2f6
Footer: customize
lhenze Sep 8, 2025
6366e9f
Add custom theme for calabash
ekate Nov 3, 2025
8233b2c
Labels for calabash theme
ekate Nov 17, 2025
9cfc00c
Footer: customize
lhenze Sep 8, 2025
1f98e0a
Add custom theme for calabash
ekate Nov 3, 2025
2565d7a
Add default landing page dspace5 style
ekate Nov 20, 2025
1389e6f
Add item componenet files
ekate Nov 20, 2025
6bcd1c7
Fix calabash template format
ekate Nov 20, 2025
6fccffd
Update translation file
ekate Nov 20, 2025
8e9b710
Add calabash styles
ekate Nov 20, 2025
5f1de61
Add calabash style
ekate Nov 20, 2025
08243c0
Add entries to translation
ekate Nov 20, 2025
35b949a
Modify entry in translation
ekate Nov 20, 2025
d630c91
Modify styles
ekate Nov 20, 2025
ce61b7e
themeing badges
lhenze Nov 25, 2025
0a38ea2
Point to local template
lhenze Nov 25, 2025
cfb85de
Don't need components for badges individual
lhenze Nov 25, 2025
ad7bfd1
Remove "type badges"
lhenze Nov 25, 2025
6886c10
Thumbnails: remove
lhenze Dec 1, 2025
b46a1af
i11n: add collectionslabel
lhenze Dec 1, 2025
10b4890
Date: replace link with string
lhenze Dec 1, 2025
b5d7f1c
CSS: add styles for itemDisplayTable
lhenze Dec 1, 2025
a5c8d7a
CSS: hide navbar links for browse by topic and semester
lhenze Dec 2, 2025
62ea6b4
CSS: hide navbar links for browse by subject
lhenze Dec 2, 2025
940bf43
Merge branch 'nyu-dev' into custom_landing_page
ekate Dec 2, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 7 additions & 2 deletions angular.json
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,11 @@
"inject": false,
"bundleName": "base-theme"
},
{
"input": "src/themes/dspace/styles/theme.scss",
"inject": false,
"bundleName": "dspace-theme"
},
{
"input": "src/themes/custom/styles/theme.scss",
"inject": false,
Expand All @@ -60,9 +65,9 @@
"bundleName": "fda-theme"
},
{
"input": "src/themes/dspace/styles/theme.scss",
"input": "src/themes/calabash/styles/theme.scss",
"inject": false,
"bundleName": "dspace-theme"
"bundleName": "calabash-theme"
}
],
"scripts": [],
Expand Down
6 changes: 5 additions & 1 deletion config/config.dev.yml
Original file line number Diff line number Diff line change
Expand Up @@ -330,7 +330,7 @@ browseBy:
# The absolute lowest year to display in the dropdown (only used when no lowest date can be found for all items)
defaultLowerLimit: 1900
# If true, thumbnail images for items will be added to BOTH search and browse result lists.
showThumbnails: true
showThumbnails: false
# The number of entries in a paginated browse results list.
# Rounded to the nearest size in the list of selectable sizes on the
# settings menu.
Expand Down Expand Up @@ -439,6 +439,10 @@ themes:
extends: fda
handle: 2451/34841

- name: calabash
extends: fda
handle: 2451/62242

- name: fda
headTags:
- tagName: link
Expand Down
28 changes: 28 additions & 0 deletions src/assets/i18n/en.json5
Original file line number Diff line number Diff line change
Expand Up @@ -2733,6 +2733,8 @@

"item.listelement.badge": "Item",

"item.page.collectionslabel": "Appears in collection",

"item.page.description": "Description",

"item.page.journal-issn": "Journal ISSN",
Expand Down Expand Up @@ -6901,4 +6903,30 @@
"dynamic-form-array.sortable-list.label": "Sortable list",

"metadata-export-search.submit.error.limit-exceeded": "Only the first {{limit}} items will be exported",

"item.page.contributor.*": "Authors",

"item.page.contributor.author": "Authors",

"item.page.contributor.translator": "Translator",

"item.page.doi": "DOI",

"item.page.title": "Title",

"item.page.rights": "Rights",

"item.page.issue": "Issue",

"item.page.journal": "Journal Title",

"item.page.volume": "Volume",

"item.page.issn": "ISSN",

"item.page.date.issued": "Issue Date",

"item.page.relation.ispartofseries": "Series/Report no.",

"item.page.copyright": "Items in FDA are protected by copyright, with all rights reserved, unless otherwise indicated.",
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,155 @@
<!--
Calabash Collection Item Page Template
Location: dspace-angular/src/themes/calabash/app/item-page/simple/item-types/untyped-item/
Filename: untyped-item.component.html

Fields for Calabash collections (journal articles):
- dc.title, dc.title.alternative
- dc.contributor.author, dc.contributor.translator
- dc.subject
- dc.date.issued
- dc.publisher
- dc.identifier.citation
- dc.identifier.DOI
- dc.description.abstract, dc.description
- dc.identifier.uri
- dc.identifier.issn
- dc.rights
- prism fields (publicationName, issueIdentifier, volume, startingPage, endingPage)
-->

<div class="item-page-content calabash-collection">

<!-- Title -->
<ds-generic-item-page-field
[item]="object"
[fields]="['dc.title']"
[label]="'item.page.title' | translate">
</ds-generic-item-page-field>

<!-- Alternative Title -->
<ds-generic-item-page-field
[item]="object"
[fields]="['dc.title.alternative']"
[label]="'item.page.titleAlternative' | translate">
</ds-generic-item-page-field>

<!-- Authors -->
<ds-generic-item-page-field
[item]="object"
[fields]="['dc.contributor.author']"
[label]="'item.page.author' | translate">
</ds-generic-item-page-field>

<!-- Translators -->
<ds-generic-item-page-field
[item]="object"
[fields]="['dc.contributor.translator']"
[label]="'item.page.translator' | translate">
</ds-generic-item-page-field>

<!-- Subject Keywords -->
<ds-generic-item-page-field
[item]="object"
[fields]="['dc.subject']"
[label]="'item.page.subject' | translate">
</ds-generic-item-page-field>

<!-- Date Issued -->
<ds-generic-item-page-field
[item]="object"
[fields]="['dc.date.issued']"
[label]="'item.page.date' | translate">
</ds-generic-item-page-field>

<!-- Publisher -->
<ds-generic-item-page-field
[item]="object"
[fields]="['dc.publisher']"
[label]="'item.page.publisher' | translate">
</ds-generic-item-page-field>

<!-- Journal Title (PRISM) -->
<ds-generic-item-page-field
[item]="object"
[fields]="['prism.publicationName']"
[label]="'item.page.journal' | translate">
</ds-generic-item-page-field>

<!-- Volume, Issue, Pages (grouped) -->
<div class="citation-details">
<ds-generic-item-page-field
[item]="object"
[fields]="['prism.volume']"
[label]="'item.page.volume' | translate">
</ds-generic-item-page-field>

<ds-generic-item-page-field
[item]="object"
[fields]="['prism.issueIdentifier']"
[label]="'item.page.issue' | translate">
</ds-generic-item-page-field>

<ds-generic-item-page-field
[item]="object"
[fields]="['prism.startingPage']"
[label]="'item.page.startPage' | translate">
</ds-generic-item-page-field>

<ds-generic-item-page-field
[item]="object"
[fields]="['prism.endingPage']"
[label]="'item.page.endPage' | translate">
</ds-generic-item-page-field>
</div>

<!-- Citation -->
<ds-generic-item-page-field
[item]="object"
[fields]="['dc.identifier.citation']"
[label]="'item.page.citation' | translate">
</ds-generic-item-page-field>

<!-- DOI -->
<ds-generic-item-page-field
[item]="object"
[fields]="['dc.identifier.DOI']"
[label]="'item.page.doi' | translate">
</ds-generic-item-page-field>

<!-- ISSN -->
<ds-generic-item-page-field
[item]="object"
[fields]="['dc.identifier.issn']"
[label]="'item.page.issn' | translate">
</ds-generic-item-page-field>

<!-- Abstract -->
<ds-generic-item-page-field
[item]="object"
[fields]="['dc.description.abstract']"
[label]="'item.page.abstract' | translate">
</ds-generic-item-page-field>

<!-- Description -->
<ds-generic-item-page-field
[item]="object"
[fields]="['dc.description']"
[label]="'item.page.description' | translate">
</ds-generic-item-page-field>

<!-- URI -->
<ds-generic-item-page-field
[item]="object"
[fields]="['dc.identifier.uri']"
[label]="'item.page.uri' | translate">
</ds-generic-item-page-field>

<!-- Rights -->
<ds-generic-item-page-field
[item]="object"
[fields]="['dc.rights']"
[label]="'item.page.rights' | translate">
</ds-generic-item-page-field>

</div>
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
import {
AsyncPipe,
NgIf,
} from '@angular/common';
import {
ChangeDetectionStrategy,
Component,
} from '@angular/core';
import { RouterLink } from '@angular/router';
import { TranslateModule } from '@ngx-translate/core';

import { Context } from '../../../../../../../app/core/shared/context.model';
import { Item } from '../../../../../../../app/core/shared/item.model';
import { ViewMode } from '../../../../../../../app/core/shared/view-mode.model';
import { CollectionsComponent } from '../../../../../../../app/item-page/field-components/collections/collections.component';
import { ThemedMediaViewerComponent } from '../../../../../../../app/item-page/media-viewer/themed-media-viewer.component';
import { MiradorViewerComponent } from '../../../../../../../app/item-page/mirador-viewer/mirador-viewer.component';
import { ThemedFileSectionComponent } from '../../../../../../../app/item-page/simple/field-components/file-section/themed-file-section.component';
import { ItemPageAbstractFieldComponent } from '../../../../../../../app/item-page/simple/field-components/specific-field/abstract/item-page-abstract-field.component';
import { ItemPageCcLicenseFieldComponent } from '../../../../../../../app/item-page/simple/field-components/specific-field/cc-license/item-page-cc-license-field.component';
import { ItemPageDateFieldComponent } from '../../../../../../../app/item-page/simple/field-components/specific-field/date/item-page-date-field.component';
import { GenericItemPageFieldComponent } from '../../../../../../../app/item-page/simple/field-components/specific-field/generic/generic-item-page-field.component';
import { ThemedItemPageTitleFieldComponent } from '../../../../../../../app/item-page/simple/field-components/specific-field/title/themed-item-page-field.component';
import { ItemPageUriFieldComponent } from '../../../../../../../app/item-page/simple/field-components/specific-field/uri/item-page-uri-field.component';
import { UntypedItemComponent as BaseComponent } from '../../../../../../../app/item-page/simple/item-types/untyped-item/untyped-item.component';
import { ThemedMetadataRepresentationListComponent } from '../../../../../../../app/item-page/simple/metadata-representation-list/themed-metadata-representation-list.component';
import { DsoEditMenuComponent } from '../../../../../../../app/shared/dso-page/dso-edit-menu/dso-edit-menu.component';
import { MetadataFieldWrapperComponent } from '../../../../../../../app/shared/metadata-field-wrapper/metadata-field-wrapper.component';
import { listableObjectComponent } from '../../../../../../../app/shared/object-collection/shared/listable-object/listable-object.decorator';
import { ThemedResultsBackButtonComponent } from '../../../../../../../app/shared/results-back-button/themed-results-back-button.component';
import { ThemedThumbnailComponent } from '../../../../../../../app/thumbnail/themed-thumbnail.component';

/**
* Component that represents an untyped Item page
*/
@listableObjectComponent(Item, ViewMode.StandalonePage, Context.Any,'calabash')
@Component({
selector: 'ds-untyped-item',
// styleUrls: ['./untyped-item.component.scss'],
styleUrls: [
'./untyped-item.component.scss',
],
// templateUrl: './untyped-item.component.html',
templateUrl:
'./untyped-item.component.html',
changeDetection: ChangeDetectionStrategy.OnPush,
standalone: true,
imports: [
NgIf,
ThemedResultsBackButtonComponent,
MiradorViewerComponent,
ThemedItemPageTitleFieldComponent,
DsoEditMenuComponent,
MetadataFieldWrapperComponent,
ThemedThumbnailComponent,
ThemedMediaViewerComponent,
ThemedFileSectionComponent,
ItemPageDateFieldComponent,
ThemedMetadataRepresentationListComponent,
GenericItemPageFieldComponent,
ItemPageAbstractFieldComponent,
ItemPageUriFieldComponent,
CollectionsComponent,
RouterLink,
AsyncPipe,
TranslateModule,
ItemPageCcLicenseFieldComponent,
],
})
export class UntypedItemComponent extends BaseComponent {}
13 changes: 13 additions & 0 deletions src/themes/calabash/assets/i18n/en.json5
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"item.page.contributor.*": "Authors",
"item.page.contributor.author": "Authors",
"item.page.contributor.translator": "Translator",
"item.page.doi": "DOI",
"item.page.subject": "Subject Keywords",
"item.page.title": "Title",
"item.page.rights": "Rights",
"item.page.issue": "Issue",
"item.page.journal": "Journal Title",
"item.page.volume": "Volume",
"item.page.issn": "ISSN",
}
38 changes: 38 additions & 0 deletions src/themes/calabash/eager-theme.module.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
import { CommonModule } from '@angular/common';
import { NgModule } from '@angular/core';

import { UntypedItemComponent } from './app/item-page/simple/item-types/untyped-item/untyped-item.component';


/**
* Add components that use a custom decorator to ENTRY_COMPONENTS as well as DECLARATIONS.
* This will ensure that decorator gets picked up when the app loads
*/
const ENTRY_COMPONENTS = [
UntypedItemComponent,
];

const DECLARATIONS = [
...ENTRY_COMPONENTS,
];

@NgModule({
imports: [
CommonModule,
...DECLARATIONS,
],
providers: [
...ENTRY_COMPONENTS.map((component) => ({ provide: component })),
],
})
/**
* This module is included in the main bundle that gets downloaded at first page load. So it should
* contain only the themed components that have to be available immediately for the first page load,
* and the minimal set of imports required to make them work. Anything you can cut from it will make
* the initial page load faster, but may cause the page to flicker as components that were already
* rendered server side need to be lazy-loaded again client side
*
* Themed EntryComponents should also be added here
*/
export class EagerThemeModule {
}
Loading