From 000b1f6af070851f3cc2c7f8a55ced9e9151b269 Mon Sep 17 00:00:00 2001 From: William Welling Date: Tue, 2 Apr 2024 11:30:33 -0500 Subject: [PATCH 01/18] Add initial RDC theme with simply item view button link to dcterms.source --- angular.json | 5 ++ src/assets/i18n/en.json5 | 2 + src/themes/eager-themes.module.ts | 2 + .../untyped-item/untyped-item.component.html | 86 +++++++++++++++++++ .../untyped-item/untyped-item.component.ts | 25 ++++++ src/themes/rdc/assets/i18n/en.json5 | 3 + src/themes/rdc/eager-theme.module.ts | 52 +++++++++++ src/themes/rdc/styles/theme.scss | 3 + 8 files changed, 178 insertions(+) create mode 100644 src/themes/rdc/app/item-page/simple/item-types/untyped-item/untyped-item.component.html create mode 100644 src/themes/rdc/app/item-page/simple/item-types/untyped-item/untyped-item.component.ts create mode 100644 src/themes/rdc/assets/i18n/en.json5 create mode 100644 src/themes/rdc/eager-theme.module.ts create mode 100644 src/themes/rdc/styles/theme.scss diff --git a/angular.json b/angular.json index 5e597d4d307..6d87e68288d 100644 --- a/angular.json +++ b/angular.json @@ -59,6 +59,11 @@ "input": "src/themes/dspace/styles/theme.scss", "inject": false, "bundleName": "dspace-theme" + }, + { + "input": "src/themes/rdc/styles/theme.scss", + "inject": false, + "bundleName": "rdc-theme" } ], "scripts": [], diff --git a/src/assets/i18n/en.json5 b/src/assets/i18n/en.json5 index 6dee5d54e66..97e860afa4d 100644 --- a/src/assets/i18n/en.json5 +++ b/src/assets/i18n/en.json5 @@ -2352,6 +2352,8 @@ "item.page.volume-title": "Volume Title", + "item.page.source": "Access at repository", + "item.search.results.head": "Item Search Results", "item.search.title": "Item Search", diff --git a/src/themes/eager-themes.module.ts b/src/themes/eager-themes.module.ts index 4a46595f358..8946a9e2247 100644 --- a/src/themes/eager-themes.module.ts +++ b/src/themes/eager-themes.module.ts @@ -1,5 +1,6 @@ import { NgModule } from '@angular/core'; import { EagerThemeModule as DSpaceEagerThemeModule } from './dspace/eager-theme.module'; +import { EagerThemeModule as RDCEagerThemeModule } from './rdc/eager-theme.module'; // import { EagerThemeModule as CustomEagerThemeModule } from './custom/eager-theme.module'; /** @@ -12,6 +13,7 @@ import { EagerThemeModule as DSpaceEagerThemeModule } from './dspace/eager-theme @NgModule({ imports: [ DSpaceEagerThemeModule, + RDCEagerThemeModule, // CustomEagerThemeModule, ], }) diff --git a/src/themes/rdc/app/item-page/simple/item-types/untyped-item/untyped-item.component.html b/src/themes/rdc/app/item-page/simple/item-types/untyped-item/untyped-item.component.html new file mode 100644 index 00000000000..8cd00e5f954 --- /dev/null +++ b/src/themes/rdc/app/item-page/simple/item-types/untyped-item/untyped-item.component.html @@ -0,0 +1,86 @@ + +
+
+ + +
+
+ +
+ + + +
+
+
+ + + + + +
+ +
+ + + + + + + + + + + + +
+ +
diff --git a/src/themes/rdc/app/item-page/simple/item-types/untyped-item/untyped-item.component.ts b/src/themes/rdc/app/item-page/simple/item-types/untyped-item/untyped-item.component.ts new file mode 100644 index 00000000000..f971c36ef4b --- /dev/null +++ b/src/themes/rdc/app/item-page/simple/item-types/untyped-item/untyped-item.component.ts @@ -0,0 +1,25 @@ +import { ChangeDetectionStrategy, Component } from '@angular/core'; +import { Item } from '../../../../../../../app/core/shared/item.model'; +import { ViewMode } from '../../../../../../../app/core/shared/view-mode.model'; +import { + listableObjectComponent +} from '../../../../../../../app/shared/object-collection/shared/listable-object/listable-object.decorator'; +import { Context } from '../../../../../../../app/core/shared/context.model'; +import { + UntypedItemComponent as BaseComponent +} from '../../../../../../../app/item-page/simple/item-types/untyped-item/untyped-item.component'; + +/** + * Component that represents an untyped Item page + */ +@listableObjectComponent(Item, ViewMode.StandalonePage, Context.Any, 'rdc') +@Component({ + selector: 'ds-untyped-item', + // styleUrls: ['./untyped-item.component.scss'], + styleUrls: ['../../../../../../../app/item-page/simple/item-types/untyped-item/untyped-item.component.scss'], + templateUrl: './untyped-item.component.html', + // templateUrl: '../../../../../../../app/item-page/simple/item-types/untyped-item/untyped-item.component.html', + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class UntypedItemComponent extends BaseComponent { +} diff --git a/src/themes/rdc/assets/i18n/en.json5 b/src/themes/rdc/assets/i18n/en.json5 new file mode 100644 index 00000000000..fbb1841a3be --- /dev/null +++ b/src/themes/rdc/assets/i18n/en.json5 @@ -0,0 +1,3 @@ +{ + "item.page.source": "Access at repository", +} diff --git a/src/themes/rdc/eager-theme.module.ts b/src/themes/rdc/eager-theme.module.ts new file mode 100644 index 00000000000..d22df8773b8 --- /dev/null +++ b/src/themes/rdc/eager-theme.module.ts @@ -0,0 +1,52 @@ +import { CommonModule } from '@angular/common'; +import { NgModule } from '@angular/core'; +import { ItemPageModule } from '../../app/item-page/item-page.module'; +import { ItemSharedModule } from '../../app/item-page/item-shared.module'; +import { NavbarModule } from '../../app/navbar/navbar.module'; +import { RootModule } from '../../app/root.module'; +import { SharedBrowseByModule } from '../../app/shared/browse-by/shared-browse-by.module'; +import { DsoPageModule } from '../../app/shared/dso-page/dso-page.module'; +import { ResultsBackButtonModule } from '../../app/shared/results-back-button/results-back-button.module'; +import { SharedModule } from '../../app/shared/shared.module'; +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, + SharedModule, + RootModule, + NavbarModule, + SharedBrowseByModule, + ResultsBackButtonModule, + ItemPageModule, + ItemSharedModule, + DsoPageModule, + ], + declarations: 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 { +} diff --git a/src/themes/rdc/styles/theme.scss b/src/themes/rdc/styles/theme.scss new file mode 100644 index 00000000000..3a3037e24c5 --- /dev/null +++ b/src/themes/rdc/styles/theme.scss @@ -0,0 +1,3 @@ +// This file combines the other scss files in to one. You usually shouldn't edit this file directly + +@import '../../dspace/styles/theme.scss'; From fa63bd3be7329691d7858e1acaffbe99f41f3f65 Mon Sep 17 00:00:00 2001 From: William Welling Date: Tue, 2 Apr 2024 12:11:35 -0500 Subject: [PATCH 02/18] Undo change to non theme i18n asset --- src/assets/i18n/en.json5 | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/assets/i18n/en.json5 b/src/assets/i18n/en.json5 index 97e860afa4d..6dee5d54e66 100644 --- a/src/assets/i18n/en.json5 +++ b/src/assets/i18n/en.json5 @@ -2352,8 +2352,6 @@ "item.page.volume-title": "Volume Title", - "item.page.source": "Access at repository", - "item.search.results.head": "Item Search Results", "item.search.title": "Item Search", From ef94e2d5c525391c87c605d96aef58d98d7c3231 Mon Sep 17 00:00:00 2001 From: William Welling Date: Tue, 2 Apr 2024 12:13:15 -0500 Subject: [PATCH 03/18] Conditional render access to repository button when dcterms.source defined --- .../simple/item-types/untyped-item/untyped-item.component.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/themes/rdc/app/item-page/simple/item-types/untyped-item/untyped-item.component.html b/src/themes/rdc/app/item-page/simple/item-types/untyped-item/untyped-item.component.html index 8cd00e5f954..3c8808fce49 100644 --- a/src/themes/rdc/app/item-page/simple/item-types/untyped-item/untyped-item.component.html +++ b/src/themes/rdc/app/item-page/simple/item-types/untyped-item/untyped-item.component.html @@ -71,7 +71,7 @@ -
+
{{"item.page.source" | translate}} From 5a12b2b8a7e61ef7fdde277258bbd4b13301ce44 Mon Sep 17 00:00:00 2001 From: William Welling Date: Thu, 4 Apr 2024 16:03:06 -0500 Subject: [PATCH 04/18] Add tamu theme and have rdc theme extend it --- angular.json | 5 + src/themes/eager-themes.module.ts | 11 +- src/themes/rdc/styles/theme.scss | 2 +- .../header-navbar-wrapper.component.html | 3 + .../header-navbar-wrapper.component.scss | 0 .../header-navbar-wrapper.component.ts | 13 ++ .../tamu/app/header/header.component.html | 28 ++++ .../tamu/app/header/header.component.scss | 32 +++++ .../tamu/app/header/header.component.ts | 13 ++ .../home-news/home-news.component.html | 12 ++ .../home-news/home-news.component.scss | 74 ++++++++++ .../home-news/home-news.component.ts | 14 ++ .../tamu/app/navbar/navbar.component.html | 29 ++++ .../tamu/app/navbar/navbar.component.scss | 62 ++++++++ .../tamu/app/navbar/navbar.component.ts | 15 ++ src/themes/tamu/assets/fonts/.gitkeep | 0 src/themes/tamu/assets/i18n/en.json5 | 55 ++++++++ src/themes/tamu/assets/images/.gitkeep | 0 src/themes/tamu/assets/images/TAM-Logo.svg | 13 ++ .../favicons/android-chrome-192x192.png | Bin 0 -> 3877 bytes .../favicons/android-chrome-512x512.png | Bin 0 -> 11713 bytes .../images/favicons/apple-touch-icon.png | Bin 0 -> 4770 bytes .../tamu/assets/images/favicons/favicon.ico | Bin 0 -> 12014 bytes .../tamu/assets/images/favicons/favicon.svg | 13 ++ .../images/favicons/manifest.webmanifest | 19 +++ src/themes/tamu/eager-theme.module.ts | 67 +++++++++ src/themes/tamu/lazy-theme.module.ts | 132 ++++++++++++++++++ src/themes/tamu/styles/_global-styles.scss | 53 +++++++ .../styles/_theme_css_variable_overrides.scss | 20 +++ .../_theme_sass_variable_overrides.scss | 48 +++++++ src/themes/tamu/styles/theme.scss | 12 ++ 31 files changed, 740 insertions(+), 5 deletions(-) create mode 100644 src/themes/tamu/app/header-nav-wrapper/header-navbar-wrapper.component.html create mode 100644 src/themes/tamu/app/header-nav-wrapper/header-navbar-wrapper.component.scss create mode 100644 src/themes/tamu/app/header-nav-wrapper/header-navbar-wrapper.component.ts create mode 100644 src/themes/tamu/app/header/header.component.html create mode 100644 src/themes/tamu/app/header/header.component.scss create mode 100644 src/themes/tamu/app/header/header.component.ts create mode 100644 src/themes/tamu/app/home-page/home-news/home-news.component.html create mode 100644 src/themes/tamu/app/home-page/home-news/home-news.component.scss create mode 100644 src/themes/tamu/app/home-page/home-news/home-news.component.ts create mode 100644 src/themes/tamu/app/navbar/navbar.component.html create mode 100644 src/themes/tamu/app/navbar/navbar.component.scss create mode 100644 src/themes/tamu/app/navbar/navbar.component.ts create mode 100644 src/themes/tamu/assets/fonts/.gitkeep create mode 100644 src/themes/tamu/assets/i18n/en.json5 create mode 100644 src/themes/tamu/assets/images/.gitkeep create mode 100644 src/themes/tamu/assets/images/TAM-Logo.svg create mode 100644 src/themes/tamu/assets/images/favicons/android-chrome-192x192.png create mode 100644 src/themes/tamu/assets/images/favicons/android-chrome-512x512.png create mode 100644 src/themes/tamu/assets/images/favicons/apple-touch-icon.png create mode 100644 src/themes/tamu/assets/images/favicons/favicon.ico create mode 100644 src/themes/tamu/assets/images/favicons/favicon.svg create mode 100644 src/themes/tamu/assets/images/favicons/manifest.webmanifest create mode 100644 src/themes/tamu/eager-theme.module.ts create mode 100644 src/themes/tamu/lazy-theme.module.ts create mode 100644 src/themes/tamu/styles/_global-styles.scss create mode 100644 src/themes/tamu/styles/_theme_css_variable_overrides.scss create mode 100644 src/themes/tamu/styles/_theme_sass_variable_overrides.scss create mode 100644 src/themes/tamu/styles/theme.scss diff --git a/angular.json b/angular.json index 6d87e68288d..daa164e8349 100644 --- a/angular.json +++ b/angular.json @@ -60,6 +60,11 @@ "inject": false, "bundleName": "dspace-theme" }, + { + "input": "src/themes/tamu/styles/theme.scss", + "inject": false, + "bundleName": "tamu-theme" + }, { "input": "src/themes/rdc/styles/theme.scss", "inject": false, diff --git a/src/themes/eager-themes.module.ts b/src/themes/eager-themes.module.ts index 8946a9e2247..d9d16904574 100644 --- a/src/themes/eager-themes.module.ts +++ b/src/themes/eager-themes.module.ts @@ -1,7 +1,8 @@ import { NgModule } from '@angular/core'; -import { EagerThemeModule as DSpaceEagerThemeModule } from './dspace/eager-theme.module'; -import { EagerThemeModule as RDCEagerThemeModule } from './rdc/eager-theme.module'; +// import { EagerThemeModule as DSpaceEagerThemeModule } from './dspace/eager-theme.module'; // import { EagerThemeModule as CustomEagerThemeModule } from './custom/eager-theme.module'; +import { EagerThemeModule as RdcThemeModule } from './rdc/eager-theme.module'; +import { EagerThemeModule as TamuEagerThemeModule } from './tamu/eager-theme.module'; /** * This module bundles the eager theme modules for all available themes. @@ -12,10 +13,12 @@ import { EagerThemeModule as RDCEagerThemeModule } from './rdc/eager-theme.modul */ @NgModule({ imports: [ - DSpaceEagerThemeModule, - RDCEagerThemeModule, + // DSpaceEagerThemeModule, // CustomEagerThemeModule, + RdcThemeModule, + TamuEagerThemeModule, ], }) export class EagerThemesModule { + } diff --git a/src/themes/rdc/styles/theme.scss b/src/themes/rdc/styles/theme.scss index 3a3037e24c5..d0ee3c3d267 100644 --- a/src/themes/rdc/styles/theme.scss +++ b/src/themes/rdc/styles/theme.scss @@ -1,3 +1,3 @@ // This file combines the other scss files in to one. You usually shouldn't edit this file directly -@import '../../dspace/styles/theme.scss'; +@import '../../tamu/styles/theme.scss'; diff --git a/src/themes/tamu/app/header-nav-wrapper/header-navbar-wrapper.component.html b/src/themes/tamu/app/header-nav-wrapper/header-navbar-wrapper.component.html new file mode 100644 index 00000000000..091d1522589 --- /dev/null +++ b/src/themes/tamu/app/header-nav-wrapper/header-navbar-wrapper.component.html @@ -0,0 +1,3 @@ +
+ +
diff --git a/src/themes/tamu/app/header-nav-wrapper/header-navbar-wrapper.component.scss b/src/themes/tamu/app/header-nav-wrapper/header-navbar-wrapper.component.scss new file mode 100644 index 00000000000..e69de29bb2d diff --git a/src/themes/tamu/app/header-nav-wrapper/header-navbar-wrapper.component.ts b/src/themes/tamu/app/header-nav-wrapper/header-navbar-wrapper.component.ts new file mode 100644 index 00000000000..57ade022aee --- /dev/null +++ b/src/themes/tamu/app/header-nav-wrapper/header-navbar-wrapper.component.ts @@ -0,0 +1,13 @@ +import { Component } from '@angular/core'; +import { HeaderNavbarWrapperComponent as BaseComponent } from '../../../../app/header-nav-wrapper/header-navbar-wrapper.component'; + +/** + * This component represents a wrapper for the horizontal navbar and the header + */ +@Component({ + selector: 'ds-header-navbar-wrapper', + styleUrls: ['../../../../app/header-nav-wrapper/header-navbar-wrapper.component.scss'], + templateUrl: 'header-navbar-wrapper.component.html', +}) +export class HeaderNavbarWrapperComponent extends BaseComponent { +} diff --git a/src/themes/tamu/app/header/header.component.html b/src/themes/tamu/app/header/header.component.html new file mode 100644 index 00000000000..8946fb37c96 --- /dev/null +++ b/src/themes/tamu/app/header/header.component.html @@ -0,0 +1,28 @@ +
+ + + +
diff --git a/src/themes/tamu/app/header/header.component.scss b/src/themes/tamu/app/header/header.component.scss new file mode 100644 index 00000000000..14c46a2316a --- /dev/null +++ b/src/themes/tamu/app/header/header.component.scss @@ -0,0 +1,32 @@ +@media screen and (min-width: map-get($grid-breakpoints, md)) { + nav.navbar { + display: none; + } + .header { + background-color: var(--ds-header-bg); + } +} + +.navbar-brand img { + @media screen and (max-width: map-get($grid-breakpoints, md)) { + height: var(--ds-header-logo-height-xs); + } +} +.navbar-toggler .navbar-toggler-icon { + background-image: none !important; + line-height: 1.5; +} + +.navbar-toggler { + color: var(--ds-header-icon-color); + + &:hover, &:focus { + color: var(--ds-header-icon-color-hover); + } +} + +.navbar-buttons { + display: flex; + gap: calc(var(--bs-spacer) / 3); + align-items: center; +} diff --git a/src/themes/tamu/app/header/header.component.ts b/src/themes/tamu/app/header/header.component.ts new file mode 100644 index 00000000000..6da89b47d57 --- /dev/null +++ b/src/themes/tamu/app/header/header.component.ts @@ -0,0 +1,13 @@ +import { Component } from '@angular/core'; +import { HeaderComponent as BaseComponent } from '../../../../app/header/header.component'; + +/** + * Represents the header with the logo and simple navigation + */ +@Component({ + selector: 'ds-header', + styleUrls: ['header.component.scss'], + templateUrl: 'header.component.html', +}) +export class HeaderComponent extends BaseComponent { +} diff --git a/src/themes/tamu/app/home-page/home-news/home-news.component.html b/src/themes/tamu/app/home-page/home-news/home-news.component.html new file mode 100644 index 00000000000..3f0daf411e6 --- /dev/null +++ b/src/themes/tamu/app/home-page/home-news/home-news.component.html @@ -0,0 +1,12 @@ +
+
+
+
+
+

The data@TAMU Digital Repository

+

The data@TAMU digital repository at Texas A&M is a digital service that collects, preserves, and distributes the scholarly output of the University. The repository facilitates open access scholarly communication while preserving the scholarly legacy of the Texas A&M community.

+
+
+
+
+
diff --git a/src/themes/tamu/app/home-page/home-news/home-news.component.scss b/src/themes/tamu/app/home-page/home-news/home-news.component.scss new file mode 100644 index 00000000000..93ec1763f34 --- /dev/null +++ b/src/themes/tamu/app/home-page/home-news/home-news.component.scss @@ -0,0 +1,74 @@ +:host { + display: block; + margin-top: calc(var(--ds-content-spacing) * -1); + + div.background-image-container { + color: white; + position: relative; + + .background-image > img { + background-color: var(--bs-info); + position: absolute; + z-index: -1; + top: 0; + left: 0; + width: 100%; + height: 100%; + object-fit: cover; + object-position: top; + } + + .container { + position: relative; + text-shadow: 1px 1px 4px rgba(0, 0, 0, 0.6); + + &:before, &:after { + content: ''; + display: block; + width: var(--ds-banner-background-gradient-width); + height: 100%; + top: 0; + position: absolute; + } + + &:before { + background: linear-gradient(to left, var(--ds-banner-text-background), transparent); + left: calc(-1 * var(--ds-banner-background-gradient-width)); + + } + + &:after { + background: linear-gradient(to right, var(--ds-banner-text-background), transparent); + right: calc(-1 * var(--ds-banner-background-gradient-width)); + } + + background-color: var(--ds-banner-text-background); + } + + + small.credits { + a { + color: inherit; + } + + opacity: 0.3; + position: absolute; + right: var(--bs-spacer); + bottom: 0; + } + } + + .jumbotron { + background-color: transparent; + } + + a { + color: var(--ds-home-news-link-color); + + @include hover { + color: var(--ds-home-news-link-hover-color); + } + } +} + + diff --git a/src/themes/tamu/app/home-page/home-news/home-news.component.ts b/src/themes/tamu/app/home-page/home-news/home-news.component.ts new file mode 100644 index 00000000000..d4032011dc3 --- /dev/null +++ b/src/themes/tamu/app/home-page/home-news/home-news.component.ts @@ -0,0 +1,14 @@ +import { Component } from '@angular/core'; +import { HomeNewsComponent as BaseComponent } from '../../../../../app/home-page/home-news/home-news.component'; + +@Component({ + selector: 'ds-home-news', + styleUrls: ['./home-news.component.scss'], + templateUrl: './home-news.component.html' +}) + +/** + * Component to render the news section on the home page + */ +export class HomeNewsComponent extends BaseComponent {} + diff --git a/src/themes/tamu/app/navbar/navbar.component.html b/src/themes/tamu/app/navbar/navbar.component.html new file mode 100644 index 00000000000..4ccec0165c8 --- /dev/null +++ b/src/themes/tamu/app/navbar/navbar.component.html @@ -0,0 +1,29 @@ + diff --git a/src/themes/tamu/app/navbar/navbar.component.scss b/src/themes/tamu/app/navbar/navbar.component.scss new file mode 100644 index 00000000000..7c2a6436877 --- /dev/null +++ b/src/themes/tamu/app/navbar/navbar.component.scss @@ -0,0 +1,62 @@ +nav.navbar { + border-top: 1px var(--ds-header-navbar-border-top-color) solid; + border-bottom: 5px var(--ds-header-navbar-border-bottom-color) solid; + align-items: baseline; +} + +/** Mobile menu styling **/ +@media screen and (max-width: map-get($grid-breakpoints, md)-0.02) { + .navbar { + width: 100vw; + background-color: var(--bs-white); + position: absolute; + overflow: hidden; + height: 0; + &.open { + height: 100vh; //doesn't matter because wrapper is sticky + } + } +} + +@media screen and (min-width: map-get($grid-breakpoints, md)) { + .reset-padding-md { + margin-left: calc(var(--bs-spacer) / -2); + margin-right: calc(var(--bs-spacer) / -2); + } +} + +/* TODO remove when https://github.com/twbs/bootstrap/issues/24726 is fixed */ +.navbar-expand-md.navbar-container { + @media screen and (max-width: map-get($grid-breakpoints, md)-0.02) { + > .navbar-inner-container { + padding: 0 var(--bs-spacer); + a.navbar-brand { + display: none; + } + .navbar-collapsed { + display: none; + } + } + padding: 0; + } + height: 80px; +} + +a.navbar-brand img { + max-height: var(--ds-header-logo-height); +} + +.navbar-nav { + ::ng-deep a.nav-link { + color: var(--ds-navbar-link-color); + } + ::ng-deep a.nav-link:hover { + color: var(--ds-navbar-link-color-hover); + } +} + +.navbar-buttons { + display: flex; + gap: calc(var(--bs-spacer) / 3); + align-items: center; +} diff --git a/src/themes/tamu/app/navbar/navbar.component.ts b/src/themes/tamu/app/navbar/navbar.component.ts new file mode 100644 index 00000000000..321351a933c --- /dev/null +++ b/src/themes/tamu/app/navbar/navbar.component.ts @@ -0,0 +1,15 @@ +import { Component } from '@angular/core'; +import { NavbarComponent as BaseComponent } from '../../../../app/navbar/navbar.component'; +import { slideMobileNav } from '../../../../app/shared/animations/slide'; + +/** + * Component representing the public navbar + */ +@Component({ + selector: 'ds-navbar', + styleUrls: ['./navbar.component.scss'], + templateUrl: './navbar.component.html', + animations: [slideMobileNav] +}) +export class NavbarComponent extends BaseComponent { +} diff --git a/src/themes/tamu/assets/fonts/.gitkeep b/src/themes/tamu/assets/fonts/.gitkeep new file mode 100644 index 00000000000..e69de29bb2d diff --git a/src/themes/tamu/assets/i18n/en.json5 b/src/themes/tamu/assets/i18n/en.json5 new file mode 100644 index 00000000000..44b58fd6cbf --- /dev/null +++ b/src/themes/tamu/assets/i18n/en.json5 @@ -0,0 +1,55 @@ +{ + "title": "data@TAMU", + + "repository.title": "data@TAMU", + + "repository.title.prefix": "data@TAMU :: ", + + "menu.section.browse_global": "Browse data@TAMU", + + "menu.section.browse_global_by_srsc": "By Department", + + "menu.section.browse_global_by_type": "By Type", + + "search.form.scope.all": "All of data@TAMU", + + "dso-selector.set-scope.community.button": "Search all of data@TAMU", + + "home.top-level-communities.head": "Communities in data@TAMU", + + "login.form.header": "Please log in to data@TAMU", + + "communityList.expandAll": "Expand All", + + "communityList.collapseAll": "Collapse All", + + "submission.import-external.page.hint": "Enter a query above to find items from the web to import in to data@TAMU.", + + "submission.import-external.back-to-my-dspace": "Back to My data@TAMU", + + "error-page.orcid.generic-error": "An error occurred during login via ORCID. Make sure you have shared your ORCID account email address with data@TAMU. If the error persists, contact the administrator", + + "admin.registries.metadata.description": "The metadata registry maintains a list of all metadata fields available in the repository. These fields may be divided amongst multiple schemas. However, data@TAMU requires the qualified Dublin Core schema.", + + "browse.comcol.by.srsc": "By Department", + + "browse.comcol.by.type": "By Type", + + "browse.metadata.type": " Type", + + "browse.metadata.srsc.breadcrumbs": "Browse by Department", + + "browse.metadata.type.breadcrumbs": "Browse by Type", + + "feed.description": "RSS feed", + + "mydspace.title": "My data@TAMU", + + "mydspace.breadcrumbs": "My data@TAMU", + + "nav.browse.header": "All of data@TAMU", + + "nav.mydspace": "My data@TAMU", + + "register-page.registration.info": "Register an account to subscribe to collections for email updates, and submit new items to data@TAMU.", +} diff --git a/src/themes/tamu/assets/images/.gitkeep b/src/themes/tamu/assets/images/.gitkeep new file mode 100644 index 00000000000..e69de29bb2d diff --git a/src/themes/tamu/assets/images/TAM-Logo.svg b/src/themes/tamu/assets/images/TAM-Logo.svg new file mode 100644 index 00000000000..abdd79f7976 --- /dev/null +++ b/src/themes/tamu/assets/images/TAM-Logo.svg @@ -0,0 +1,13 @@ + + + + + + + + Artboard 1 + + + + + diff --git a/src/themes/tamu/assets/images/favicons/android-chrome-192x192.png b/src/themes/tamu/assets/images/favicons/android-chrome-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..84c5c824a5a7dfbacbd73667a355a71294b102dd GIT binary patch literal 3877 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 literal 0 HcmV?d00001 diff --git a/src/themes/tamu/assets/images/favicons/android-chrome-512x512.png b/src/themes/tamu/assets/images/favicons/android-chrome-512x512.png new file mode 100644 index 0000000000000000000000000000000000000000..4fec363dd6d65d88bd7fd94c3bcdf71d19855fd5 GIT binary patch literal 11713 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 RNT68>$X$oM`S~YH;J>M~zgz$S literal 0 HcmV?d00001 diff --git a/src/themes/tamu/assets/images/favicons/favicon.svg b/src/themes/tamu/assets/images/favicons/favicon.svg new file mode 100644 index 00000000000..abdd79f7976 --- /dev/null +++ b/src/themes/tamu/assets/images/favicons/favicon.svg @@ -0,0 +1,13 @@ + + + + + + + + Artboard 1 + + + + + diff --git a/src/themes/tamu/assets/images/favicons/manifest.webmanifest b/src/themes/tamu/assets/images/favicons/manifest.webmanifest new file mode 100644 index 00000000000..5324f1b1d0a --- /dev/null +++ b/src/themes/tamu/assets/images/favicons/manifest.webmanifest @@ -0,0 +1,19 @@ +{ + "name": "data@TAMU", + "short_name": "data@TAMU", + "icons": [ + { + "src": "android-chrome-192x192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "android-chrome-512x512.png", + "sizes": "512x512", + "type": "image/png" + } + ], + "theme_color": "#500000", + "background_color": "#FFFFFF", + "display": "standalone" +} diff --git a/src/themes/tamu/eager-theme.module.ts b/src/themes/tamu/eager-theme.module.ts new file mode 100644 index 00000000000..669e3c0a868 --- /dev/null +++ b/src/themes/tamu/eager-theme.module.ts @@ -0,0 +1,67 @@ +import { CdkTreeModule } from '@angular/cdk/tree'; +import { CommonModule } from '@angular/common'; +import { NgModule } from '@angular/core'; +import { CommunityListService } from '../../app/community-list-page/community-list-service'; +import { CommunityPageModule } from '../../app/community-page/community-page.module'; +import { NavbarModule } from '../../app/navbar/navbar.module'; +import { RootModule } from '../../app/root.module'; +import { SharedBrowseByModule } from '../../app/shared/browse-by/shared-browse-by.module'; +import { ComcolModule } from '../../app/shared/comcol/comcol.module'; +import { DsoPageModule } from '../../app/shared/dso-page/dso-page.module'; +import { FormModule } from '../../app/shared/form/form.module'; +import { ResultsBackButtonModule } from '../../app/shared/results-back-button/results-back-button.module'; +import { SharedModule } from '../../app/shared/shared.module'; +import { StatisticsModule } from '../../app/statistics/statistics.module'; +import { HeaderNavbarWrapperComponent } from './app/header-nav-wrapper/header-navbar-wrapper.component'; +import { HeaderComponent } from './app/header/header.component'; +import { HomeNewsComponent } from './app/home-page/home-news/home-news.component'; +import { NavbarComponent } from './app/navbar/navbar.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 = [ + +]; + +const DECLARATIONS = [ + ...ENTRY_COMPONENTS, + HomeNewsComponent, + HeaderComponent, + HeaderNavbarWrapperComponent, + NavbarComponent, +]; + +@NgModule({ + imports: [ + CommonModule, + FormModule, + SharedModule, + SharedBrowseByModule, + ResultsBackButtonModule, + RootModule, + NavbarModule, + ComcolModule, + DsoPageModule, + StatisticsModule, + CommunityPageModule, + CdkTreeModule, + ], + declarations: DECLARATIONS, + providers: [ + ...ENTRY_COMPONENTS.map((component) => ({provide: component})), + CommunityListService, + ], +}) +/** + * 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 { +} diff --git a/src/themes/tamu/lazy-theme.module.ts b/src/themes/tamu/lazy-theme.module.ts new file mode 100644 index 00000000000..5fb43e6b1ac --- /dev/null +++ b/src/themes/tamu/lazy-theme.module.ts @@ -0,0 +1,132 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { AdminRegistriesModule } from '../../app/admin/admin-registries/admin-registries.module'; +import { AdminSearchModule } from '../../app/admin/admin-search-page/admin-search.module'; +import { + AdminWorkflowModuleModule +} from '../../app/admin/admin-workflow-page/admin-workflow.module'; +import { + BitstreamFormatsModule +} from '../../app/admin/admin-registries/bitstream-formats/bitstream-formats.module'; +import { BrowseByModule } from '../../app/browse-by/browse-by.module'; +import { + CollectionFormModule +} from '../../app/collection-page/collection-form/collection-form.module'; +import { CommunityFormModule } from '../../app/community-page/community-form/community-form.module'; +import { CoreModule } from '../../app/core/core.module'; +import { DragDropModule } from '@angular/cdk/drag-drop'; +import { EditItemPageModule } from '../../app/item-page/edit-item-page/edit-item-page.module'; +import { FormsModule } from '@angular/forms'; +import { HttpClientModule } from '@angular/common/http'; +import { IdlePreloadModule } from 'angular-idle-preload'; +import { + JournalEntitiesModule +} from '../../app/entity-groups/journal-entities/journal-entities.module'; +import { MyDspaceSearchModule } from '../../app/my-dspace-page/my-dspace-search.module'; +import { MenuModule } from '../../app/shared/menu/menu.module'; +import { NavbarModule } from '../../app/navbar/navbar.module'; +import { NgbModule } from '@ng-bootstrap/ng-bootstrap'; +import { ProfilePageModule } from '../../app/profile-page/profile-page.module'; +import { RegisterEmailFormModule } from '../../app/register-email-form/register-email-form.module'; +import { + ResearchEntitiesModule +} from '../../app/entity-groups/research-entities/research-entities.module'; +import { ScrollToModule } from '@nicky-lenaers/ngx-scroll-to'; +import { SearchPageModule } from '../../app/search-page/search-page.module'; +import { SharedModule } from '../../app/shared/shared.module'; +import { StatisticsModule } from '../../app/statistics/statistics.module'; +import { StoreModule } from '@ngrx/store'; +import { StoreRouterConnectingModule } from '@ngrx/router-store'; +import { TranslateModule } from '@ngx-translate/core'; +import { HomePageModule } from '../../app/home-page/home-page.module'; +import { AppModule } from '../../app/app.module'; +import { ItemPageModule } from '../../app/item-page/item-page.module'; +import { RouterModule } from '@angular/router'; +import { CommunityListPageModule } from '../../app/community-list-page/community-list-page.module'; +import { InfoModule } from '../../app/info/info.module'; +import { StatisticsPageModule } from '../../app/statistics-page/statistics-page.module'; +import { CommunityPageModule } from '../../app/community-page/community-page.module'; +import { CollectionPageModule } from '../../app/collection-page/collection-page.module'; +import { SubmissionModule } from '../../app/submission/submission.module'; +import { MyDSpacePageModule } from '../../app/my-dspace-page/my-dspace-page.module'; +import { SearchModule } from '../../app/shared/search/search.module'; +import { + ResourcePoliciesModule +} from '../../app/shared/resource-policies/resource-policies.module'; +import { ComcolModule } from '../../app/shared/comcol/comcol.module'; +import { RootModule } from '../../app/root.module'; +import { BrowseByPageModule } from '../../app/browse-by/browse-by-page.module'; +import { ResultsBackButtonModule } from '../../app/shared/results-back-button/results-back-button.module'; +import { SharedBrowseByModule } from '../../app/shared/browse-by/shared-browse-by.module'; +import { ItemVersionsModule } from '../../app/item-page/versions/item-versions.module'; +import { ItemSharedModule } from '../../app/item-page/item-shared.module'; + +const DECLARATIONS = [ +]; + +@NgModule({ + imports: [ + AdminRegistriesModule, + AdminSearchModule, + AdminWorkflowModuleModule, + AppModule, + RootModule, + BitstreamFormatsModule, + BrowseByModule, + BrowseByPageModule, + ResultsBackButtonModule, + CollectionFormModule, + CollectionPageModule, + CommonModule, + CommunityFormModule, + CommunityListPageModule, + CommunityPageModule, + CoreModule, + DragDropModule, + ItemSharedModule, + ItemPageModule, + EditItemPageModule, + ItemVersionsModule, + FormsModule, + HomePageModule, + HttpClientModule, + IdlePreloadModule, + InfoModule, + JournalEntitiesModule, + MenuModule, + MyDspaceSearchModule, + NavbarModule, + NgbModule, + ProfilePageModule, + RegisterEmailFormModule, + ResearchEntitiesModule, + RouterModule, + ScrollToModule, + SearchPageModule, + SharedModule, + SharedBrowseByModule, + StatisticsModule, + StatisticsPageModule, + StoreModule, + StoreRouterConnectingModule, + TranslateModule, + SubmissionModule, + MyDSpacePageModule, + MyDspaceSearchModule, + SearchModule, + FormsModule, + ResourcePoliciesModule, + ComcolModule, + ], + declarations: DECLARATIONS, +}) + +/** + * This module serves as an index for all the components in this theme. + * It should import all other modules, so the compiler knows where to find any components referenced + * from a component in this theme + * It is purposefully not exported, it should never be imported anywhere else, its only purpose is + * to give lazily loaded components a context in which they can be compiled successfully + */ +class LazyThemeModule { +} diff --git a/src/themes/tamu/styles/_global-styles.scss b/src/themes/tamu/styles/_global-styles.scss new file mode 100644 index 00000000000..6757c6956e5 --- /dev/null +++ b/src/themes/tamu/styles/_global-styles.scss @@ -0,0 +1,53 @@ +// Add any global css for the theme here + +// imports the base global style +@import '../../../styles/_global-styles.scss'; + +.facet-filter, +.setting-option { + background-color: var(--bs-light); + border-radius: var(--bs-border-radius); + + &.p-3 { + // Needs !important because the original bootstrap class uses it + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + + .badge-secondary { + background-color: var(--bs-primary); + } + + h4 { + font-size: 1.1rem + } +} + +.tamu-control-input { + display: flex; + flex-direction: column; + + label { + text-align: left; + padding-left: 0px; + box-shadow: none !important; + + input[type=radio] { + position: relative !important; + } + + span { + margin-left: 10px !important; + } + } +} + +.tamu-control-label { + font-weight: bold; + margin: 15px 0px 0px 0px; +} + + +.tamu-control-license { + margin: 0px 0px 10px 0px; +} diff --git a/src/themes/tamu/styles/_theme_css_variable_overrides.scss b/src/themes/tamu/styles/_theme_css_variable_overrides.scss new file mode 100644 index 00000000000..9a8499507f0 --- /dev/null +++ b/src/themes/tamu/styles/_theme_css_variable_overrides.scss @@ -0,0 +1,20 @@ +// Override or add CSS variables for your theme here + +:root { + --ds-header-logo-height: 40px; + + --ds-banner-text-background: rgba(0, 0, 0, 0.45); + --ds-banner-background-gradient-width: 300px; + + --ds-home-news-link-color: #{$accent}; + --ds-home-news-link-hover-color: #{darken($accent, 15%)}; + + --ds-header-navbar-border-bottom-color: #{$primary}; + + --ds-navbar-link-color: #{$primary}; + --ds-navbar-link-color-hover: #{darken($primary, 15%)}; + + --ds-breadcrumb-link-color: #{$primary}; + --ds-breadcrumb-link-active-color: #{darken($primary, 30%)}; +} + diff --git a/src/themes/tamu/styles/_theme_sass_variable_overrides.scss b/src/themes/tamu/styles/_theme_sass_variable_overrides.scss new file mode 100644 index 00000000000..71492dbd0c1 --- /dev/null +++ b/src/themes/tamu/styles/_theme_sass_variable_overrides.scss @@ -0,0 +1,48 @@ +// DSpace works with CSS variables for its own components, and has a mapping of all bootstrap Sass +// variables to CSS equivalents (see src/styles/_bootstrap_variables_mapping.scss). However Bootstrap +// still uses Sass variables internally. So if you want to override bootstrap (or other sass +// variables) you can do so here. Their CSS counterparts will include the changes you make here + +@import url('https://fonts.googleapis.com/css2?family=Lato'); + +$font-family-sans-serif: 'Lato', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + +$navbar-dark-color: #FFFFFF; + +/* Texas A&M University web color pallette */ +$primary: #500000; +$secondary: #3C0000; +$accent: #FCE300; + +/* Reassign color vars to semantic color scheme */ +$blue: #2b4e72 !default; +$green: #92C642 !default; +$cyan: #207698 !default; +$yellow: #ec9433 !default; +$red: #CF4444 !default; +$dark: #333333 !default; + +$gray-800: #3e3e3e !default; +$gray-700: #707070 !default; +$gray-400: #d1d1d1 !default; +$gray-100: #f6f6f6 !default; + +$body-color: $gray-800 !default; // Bootstrap $gray-800 + +$table-accent-bg: $gray-100 !default; // Bootstrap $gray-100 +$table-hover-bg: $gray-400 !default; // Bootstrap $gray-400 + +$yiq-contrasted-threshold: 170 !default; + +$theme-colors: ( + primary: $primary, + secondary: $secondary, + success: $green, + info: $cyan, + warning: $yellow, + danger: $red, + light: $gray-100, + dark: $dark +) !default; + +$link-color: map-get($theme-colors, primary) !default; diff --git a/src/themes/tamu/styles/theme.scss b/src/themes/tamu/styles/theme.scss new file mode 100644 index 00000000000..05c96f33728 --- /dev/null +++ b/src/themes/tamu/styles/theme.scss @@ -0,0 +1,12 @@ +// This file combines the other scss files in to one. You usually shouldn't edit this file directly + +@import './_theme_sass_variable_overrides.scss'; +@import '../../../styles/_variables.scss'; +@import '../../../styles/_mixins.scss'; +@import '../../../styles/helpers/font_awesome_imports.scss'; +@import '../../../styles/_vendor.scss'; +@import '../../../styles/_custom_variables.scss'; +@import './_theme_css_variable_overrides.scss'; +@import '../../../styles/bootstrap_variables_mapping.scss'; +@import '../../../styles/_truncatable-part.component.scss'; +@import './_global-styles.scss'; From 8e6b99a41a050763de79e88d1590d954bd93a778 Mon Sep 17 00:00:00 2001 From: William Welling Date: Thu, 4 Apr 2024 16:12:02 -0500 Subject: [PATCH 05/18] Capitalize Data@TAMU --- .../home-news/home-news.component.html | 4 +-- src/themes/tamu/assets/i18n/en.json5 | 34 +++++++++---------- .../images/favicons/manifest.webmanifest | 4 +-- 3 files changed, 21 insertions(+), 21 deletions(-) diff --git a/src/themes/tamu/app/home-page/home-news/home-news.component.html b/src/themes/tamu/app/home-page/home-news/home-news.component.html index 3f0daf411e6..7056a4fdf95 100644 --- a/src/themes/tamu/app/home-page/home-news/home-news.component.html +++ b/src/themes/tamu/app/home-page/home-news/home-news.component.html @@ -3,8 +3,8 @@
-

The data@TAMU Digital Repository

-

The data@TAMU digital repository at Texas A&M is a digital service that collects, preserves, and distributes the scholarly output of the University. The repository facilitates open access scholarly communication while preserving the scholarly legacy of the Texas A&M community.

+

The Data@TAMU Digital Repository

+

The Data@TAMU digital repository at Texas A&M is a digital service that collects, preserves, and distributes the scholarly output of the University. The repository facilitates open access scholarly communication while preserving the scholarly legacy of the Texas A&M community.

diff --git a/src/themes/tamu/assets/i18n/en.json5 b/src/themes/tamu/assets/i18n/en.json5 index 44b58fd6cbf..23037daeb70 100644 --- a/src/themes/tamu/assets/i18n/en.json5 +++ b/src/themes/tamu/assets/i18n/en.json5 @@ -1,35 +1,35 @@ { - "title": "data@TAMU", + "title": "Data@TAMU", - "repository.title": "data@TAMU", + "repository.title": "Data@TAMU", - "repository.title.prefix": "data@TAMU :: ", + "repository.title.prefix": "Data@TAMU :: ", - "menu.section.browse_global": "Browse data@TAMU", + "menu.section.browse_global": "Browse Data@TAMU", "menu.section.browse_global_by_srsc": "By Department", "menu.section.browse_global_by_type": "By Type", - "search.form.scope.all": "All of data@TAMU", + "search.form.scope.all": "All of Data@TAMU", - "dso-selector.set-scope.community.button": "Search all of data@TAMU", + "dso-selector.set-scope.community.button": "Search all of Data@TAMU", - "home.top-level-communities.head": "Communities in data@TAMU", + "home.top-level-communities.head": "Communities in Data@TAMU", - "login.form.header": "Please log in to data@TAMU", + "login.form.header": "Please log in to Data@TAMU", "communityList.expandAll": "Expand All", "communityList.collapseAll": "Collapse All", - "submission.import-external.page.hint": "Enter a query above to find items from the web to import in to data@TAMU.", + "submission.import-external.page.hint": "Enter a query above to find items from the web to import in to Data@TAMU.", - "submission.import-external.back-to-my-dspace": "Back to My data@TAMU", + "submission.import-external.back-to-my-dspace": "Back to My Data@TAMU", - "error-page.orcid.generic-error": "An error occurred during login via ORCID. Make sure you have shared your ORCID account email address with data@TAMU. If the error persists, contact the administrator", + "error-page.orcid.generic-error": "An error occurred during login via ORCID. Make sure you have shared your ORCID account email address with Data@TAMU. If the error persists, contact the administrator", - "admin.registries.metadata.description": "The metadata registry maintains a list of all metadata fields available in the repository. These fields may be divided amongst multiple schemas. However, data@TAMU requires the qualified Dublin Core schema.", + "admin.registries.metadata.description": "The metadata registry maintains a list of all metadata fields available in the repository. These fields may be divided amongst multiple schemas. However, Data@TAMU requires the qualified Dublin Core schema.", "browse.comcol.by.srsc": "By Department", @@ -43,13 +43,13 @@ "feed.description": "RSS feed", - "mydspace.title": "My data@TAMU", + "mydspace.title": "My Data@TAMU", - "mydspace.breadcrumbs": "My data@TAMU", + "mydspace.breadcrumbs": "My Data@TAMU", - "nav.browse.header": "All of data@TAMU", + "nav.browse.header": "All of Data@TAMU", - "nav.mydspace": "My data@TAMU", + "nav.mydspace": "My Data@TAMU", - "register-page.registration.info": "Register an account to subscribe to collections for email updates, and submit new items to data@TAMU.", + "register-page.registration.info": "Register an account to subscribe to collections for email updates, and submit new items to Data@TAMU.", } diff --git a/src/themes/tamu/assets/images/favicons/manifest.webmanifest b/src/themes/tamu/assets/images/favicons/manifest.webmanifest index 5324f1b1d0a..72dbfe49077 100644 --- a/src/themes/tamu/assets/images/favicons/manifest.webmanifest +++ b/src/themes/tamu/assets/images/favicons/manifest.webmanifest @@ -1,6 +1,6 @@ { - "name": "data@TAMU", - "short_name": "data@TAMU", + "name": "Data@TAMU", + "short_name": "Data@TAMU", "icons": [ { "src": "android-chrome-192x192.png", From 76133e4216a568370923381bc909fa8581e018b5 Mon Sep 17 00:00:00 2001 From: William Welling Date: Fri, 5 Apr 2024 11:47:00 -0500 Subject: [PATCH 06/18] Use font awesome database as thumbnail --- src/themes/rdc/assets/i18n/en.json5 | 2 ++ .../rdc/styles/_theme_css_variable_overrides.scss | 11 +++++++++++ src/themes/rdc/styles/_thumbnail-styles.scss | 12 ++++++++++++ src/themes/rdc/styles/theme.scss | 2 ++ 4 files changed, 27 insertions(+) create mode 100644 src/themes/rdc/styles/_theme_css_variable_overrides.scss create mode 100644 src/themes/rdc/styles/_thumbnail-styles.scss diff --git a/src/themes/rdc/assets/i18n/en.json5 b/src/themes/rdc/assets/i18n/en.json5 index fbb1841a3be..a46cac26564 100644 --- a/src/themes/rdc/assets/i18n/en.json5 +++ b/src/themes/rdc/assets/i18n/en.json5 @@ -1,3 +1,5 @@ { "item.page.source": "Access at repository", + + "thumbnail.default.placeholder": "", } diff --git a/src/themes/rdc/styles/_theme_css_variable_overrides.scss b/src/themes/rdc/styles/_theme_css_variable_overrides.scss new file mode 100644 index 00000000000..db208350d0b --- /dev/null +++ b/src/themes/rdc/styles/_theme_css_variable_overrides.scss @@ -0,0 +1,11 @@ +// Override or add CSS variables for your theme here + +:root { + --ds-thumbnail-max-width: 75px; + // setting these to none uses the same styles as the links + --ds-thumbnail-placeholder-background: none; + --ds-thumbnail-placeholder-border: none; + --ds-thumbnail-placeholder-color: none; + // additional variable + --ds-thumbnail-placeholder-font-size: 3em; +} diff --git a/src/themes/rdc/styles/_thumbnail-styles.scss b/src/themes/rdc/styles/_thumbnail-styles.scss new file mode 100644 index 00000000000..74c403b67f6 --- /dev/null +++ b/src/themes/rdc/styles/_thumbnail-styles.scss @@ -0,0 +1,12 @@ +// Add any thumbnail css for the theme here + +.thumbnail-placeholder { + @extend .fa; + @extend .fa-database; +} + +.thumb-font-3 { + .thumbnail-placeholder { + font-size: var(--ds-thumbnail-placeholder-font-size); + } +} diff --git a/src/themes/rdc/styles/theme.scss b/src/themes/rdc/styles/theme.scss index 3a3037e24c5..f9087e8056e 100644 --- a/src/themes/rdc/styles/theme.scss +++ b/src/themes/rdc/styles/theme.scss @@ -1,3 +1,5 @@ // This file combines the other scss files in to one. You usually shouldn't edit this file directly @import '../../dspace/styles/theme.scss'; +@import './_theme_css_variable_overrides.scss'; +@import './_thumbnail-styles.scss'; From 92a84f610a72cf1a88aea8c777a521c3acd02c8b Mon Sep 17 00:00:00 2001 From: William Welling Date: Fri, 5 Apr 2024 13:35:12 -0500 Subject: [PATCH 07/18] Override all thumbnail-placeholder styles and add an additional for the single item view --- .../untyped-item/untyped-item.component.html | 4 +- .../styles/_theme_css_variable_overrides.scss | 2 - src/themes/rdc/styles/_thumbnail-styles.scss | 48 ++++++++++++++++++- 3 files changed, 50 insertions(+), 4 deletions(-) diff --git a/src/themes/rdc/app/item-page/simple/item-types/untyped-item/untyped-item.component.html b/src/themes/rdc/app/item-page/simple/item-types/untyped-item/untyped-item.component.html index 3c8808fce49..a89c5a13f64 100644 --- a/src/themes/rdc/app/item-page/simple/item-types/untyped-item/untyped-item.component.html +++ b/src/themes/rdc/app/item-page/simple/item-types/untyped-item/untyped-item.component.html @@ -18,7 +18,9 @@
- + + +
diff --git a/src/themes/rdc/styles/_theme_css_variable_overrides.scss b/src/themes/rdc/styles/_theme_css_variable_overrides.scss index db208350d0b..227c287b010 100644 --- a/src/themes/rdc/styles/_theme_css_variable_overrides.scss +++ b/src/themes/rdc/styles/_theme_css_variable_overrides.scss @@ -6,6 +6,4 @@ --ds-thumbnail-placeholder-background: none; --ds-thumbnail-placeholder-border: none; --ds-thumbnail-placeholder-color: none; - // additional variable - --ds-thumbnail-placeholder-font-size: 3em; } diff --git a/src/themes/rdc/styles/_thumbnail-styles.scss b/src/themes/rdc/styles/_thumbnail-styles.scss index 74c403b67f6..ed34fdd52cf 100644 --- a/src/themes/rdc/styles/_thumbnail-styles.scss +++ b/src/themes/rdc/styles/_thumbnail-styles.scss @@ -5,8 +5,54 @@ @extend .fa-database; } +/* The font sizes used in "no thumbnail" placeholder */ +.thumb-font-0 { + .thumbnail-placeholder { + @media screen and (max-width: map-get($grid-breakpoints, lg)) { + font-size: 0.7rem; + padding: 0.2rem; + } + @media screen and (max-width: map-get($grid-breakpoints, sm)) { + font-size: 0.6rem; + padding: 0.1rem; + } + font-size: 0.4rem; + padding: 0.1rem; + } +} + +.thumb-font-1 { + .thumbnail-placeholder { + @media screen and (max-width: map-get($grid-breakpoints, sm)) { + font-size: 1em; + padding: 0.1rem; + } + @media screen and (max-width: 950px) { + font-size: 1em; + padding: 0.1rem; + } + font-size: 1em; + padding: 0.125rem; + } +} + +.thumb-font-2 { + .thumbnail-placeholder { + font-size: 2em; + padding: 0.125rem; + } +} + .thumb-font-3 { .thumbnail-placeholder { - font-size: var(--ds-thumbnail-placeholder-font-size); + font-size: 3em; + padding: 0.5rem; + } +} + +.thumb-font-4 { + .thumbnail-placeholder { + font-size: 4em; + padding: 0.5rem; } } From 4b91b3d1366f76f522921990d8008b6807d56bf1 Mon Sep 17 00:00:00 2001 From: William Welling Date: Fri, 5 Apr 2024 13:37:44 -0500 Subject: [PATCH 08/18] Remove link around single item view thumbnail --- .../item-types/untyped-item/untyped-item.component.html | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/themes/rdc/app/item-page/simple/item-types/untyped-item/untyped-item.component.html b/src/themes/rdc/app/item-page/simple/item-types/untyped-item/untyped-item.component.html index a89c5a13f64..6fc1ea00b07 100644 --- a/src/themes/rdc/app/item-page/simple/item-types/untyped-item/untyped-item.component.html +++ b/src/themes/rdc/app/item-page/simple/item-types/untyped-item/untyped-item.component.html @@ -15,12 +15,10 @@
-
+
- - - +
From 6de688fa89564cdf651033e025148c2e0b26dd4b Mon Sep 17 00:00:00 2001 From: William Welling Date: Fri, 5 Apr 2024 13:40:30 -0500 Subject: [PATCH 09/18] Add TAMU Customization comments --- .../simple/item-types/untyped-item/untyped-item.component.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/themes/rdc/app/item-page/simple/item-types/untyped-item/untyped-item.component.html b/src/themes/rdc/app/item-page/simple/item-types/untyped-item/untyped-item.component.html index 6fc1ea00b07..e6b2d5e0058 100644 --- a/src/themes/rdc/app/item-page/simple/item-types/untyped-item/untyped-item.component.html +++ b/src/themes/rdc/app/item-page/simple/item-types/untyped-item/untyped-item.component.html @@ -15,7 +15,9 @@
+
+ From 702cafe846c293dd18e4c30c0ec295a35a731693 Mon Sep 17 00:00:00 2001 From: William Welling Date: Fri, 5 Apr 2024 14:15:20 -0500 Subject: [PATCH 10/18] Use TAMU secondary grey color for database font icon --- src/themes/rdc/styles/_theme_css_variable_overrides.scss | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/themes/rdc/styles/_theme_css_variable_overrides.scss b/src/themes/rdc/styles/_theme_css_variable_overrides.scss index 227c287b010..83a64801aac 100644 --- a/src/themes/rdc/styles/_theme_css_variable_overrides.scss +++ b/src/themes/rdc/styles/_theme_css_variable_overrides.scss @@ -2,8 +2,7 @@ :root { --ds-thumbnail-max-width: 75px; - // setting these to none uses the same styles as the links --ds-thumbnail-placeholder-background: none; --ds-thumbnail-placeholder-border: none; - --ds-thumbnail-placeholder-color: none; + --ds-thumbnail-placeholder-color: #707070; } From c43ba5088814dffefc78c2aa4c457a5f1865fc89 Mon Sep 17 00:00:00 2001 From: William Welling Date: Fri, 5 Apr 2024 14:44:34 -0500 Subject: [PATCH 11/18] Use css gray theme variable for thumbnail color css variable --- src/themes/rdc/styles/_theme_css_variable_overrides.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/themes/rdc/styles/_theme_css_variable_overrides.scss b/src/themes/rdc/styles/_theme_css_variable_overrides.scss index 83a64801aac..ef8c0dd1091 100644 --- a/src/themes/rdc/styles/_theme_css_variable_overrides.scss +++ b/src/themes/rdc/styles/_theme_css_variable_overrides.scss @@ -4,5 +4,5 @@ --ds-thumbnail-max-width: 75px; --ds-thumbnail-placeholder-background: none; --ds-thumbnail-placeholder-border: none; - --ds-thumbnail-placeholder-color: #707070; + --ds-thumbnail-placeholder-color: var(--$gray-700); } From b1146bd9e2057c1feb8e6df378296077e10bc386 Mon Sep 17 00:00:00 2001 From: William Welling Date: Mon, 8 Apr 2024 16:18:36 -0500 Subject: [PATCH 12/18] Update custom home component text --- .../tamu/app/home-page/home-news/home-news.component.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/themes/tamu/app/home-page/home-news/home-news.component.html b/src/themes/tamu/app/home-page/home-news/home-news.component.html index 7056a4fdf95..f649df4311a 100644 --- a/src/themes/tamu/app/home-page/home-news/home-news.component.html +++ b/src/themes/tamu/app/home-page/home-news/home-news.component.html @@ -3,8 +3,8 @@
-

The Data@TAMU Digital Repository

-

The Data@TAMU digital repository at Texas A&M is a digital service that collects, preserves, and distributes the scholarly output of the University. The repository facilitates open access scholarly communication while preserving the scholarly legacy of the Texas A&M community.

+

Data@TAMU

+

Data@TAMU is a catalog of research datasets produced at Texas A&M…

From 28eac5d23a0eca53f060e85681093d683e542797 Mon Sep 17 00:00:00 2001 From: William Welling Date: Tue, 9 Apr 2024 10:02:02 -0500 Subject: [PATCH 13/18] Remove srsc i18n overrides --- src/themes/tamu/assets/i18n/en.json5 | 6 ------ 1 file changed, 6 deletions(-) diff --git a/src/themes/tamu/assets/i18n/en.json5 b/src/themes/tamu/assets/i18n/en.json5 index 23037daeb70..0dac96a0038 100644 --- a/src/themes/tamu/assets/i18n/en.json5 +++ b/src/themes/tamu/assets/i18n/en.json5 @@ -7,8 +7,6 @@ "menu.section.browse_global": "Browse Data@TAMU", - "menu.section.browse_global_by_srsc": "By Department", - "menu.section.browse_global_by_type": "By Type", "search.form.scope.all": "All of Data@TAMU", @@ -31,14 +29,10 @@ "admin.registries.metadata.description": "The metadata registry maintains a list of all metadata fields available in the repository. These fields may be divided amongst multiple schemas. However, Data@TAMU requires the qualified Dublin Core schema.", - "browse.comcol.by.srsc": "By Department", - "browse.comcol.by.type": "By Type", "browse.metadata.type": " Type", - "browse.metadata.srsc.breadcrumbs": "Browse by Department", - "browse.metadata.type.breadcrumbs": "Browse by Type", "feed.description": "RSS feed", From d44b5e7bbdc24b0a0f429e5664a449670f7c7bb3 Mon Sep 17 00:00:00 2001 From: William Welling Date: Tue, 9 Apr 2024 11:22:52 -0500 Subject: [PATCH 14/18] Add i18n keys for browse by department --- src/themes/tamu/assets/i18n/en.json5 | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/themes/tamu/assets/i18n/en.json5 b/src/themes/tamu/assets/i18n/en.json5 index 0dac96a0038..a3ffd318756 100644 --- a/src/themes/tamu/assets/i18n/en.json5 +++ b/src/themes/tamu/assets/i18n/en.json5 @@ -9,6 +9,8 @@ "menu.section.browse_global_by_type": "By Type", + "menu.section.browse_global_by_department": "By Department", + "search.form.scope.all": "All of Data@TAMU", "dso-selector.set-scope.community.button": "Search all of Data@TAMU", @@ -31,10 +33,16 @@ "browse.comcol.by.type": "By Type", + "browse.comcol.by.department": "By Department", + "browse.metadata.type": " Type", + "browse.metadata.department": " Department", + "browse.metadata.type.breadcrumbs": "Browse by Type", + "browse.metadata.department.breadcrumbs": "Browse by Department", + "feed.description": "RSS feed", "mydspace.title": "My Data@TAMU", From e0ae4bb469e07cf466f8d6989b35534a8d16afbf Mon Sep 17 00:00:00 2001 From: William Welling Date: Tue, 9 Apr 2024 15:39:05 -0500 Subject: [PATCH 15/18] Update RDC home page title and description --- .../tamu/app/home-page/home-news/home-news.component.html | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/themes/tamu/app/home-page/home-news/home-news.component.html b/src/themes/tamu/app/home-page/home-news/home-news.component.html index f649df4311a..0cdc5bfd7e5 100644 --- a/src/themes/tamu/app/home-page/home-news/home-news.component.html +++ b/src/themes/tamu/app/home-page/home-news/home-news.component.html @@ -3,8 +3,9 @@
-

Data@TAMU

-

Data@TAMU is a catalog of research datasets produced at Texas A&M…

+

The Data@TAMU Digital Catalog

+

Data@TAMU collects and indexes datasets created by TAMU researchers and stored in data repositories around the world. The catalog increases discoverability of datasets in support of re-use, experimental reproducibility, and social impact.

+

“Open access to research data is critical for advancing science, scholarship, and society. Research data, when repurposed, has an accretive value. Publicly funded research should be publicly available for public good.” - from preamble to the Denton Declaration: An Open Data Manifesto

From b2d60f8039e6827168d3fef4d4457e01455dc130 Mon Sep 17 00:00:00 2001 From: William Welling Date: Tue, 9 Apr 2024 16:15:46 -0500 Subject: [PATCH 16/18] Update and move news link color to rdc theme --- src/themes/rdc/styles/_theme_css_variable_overrides.scss | 5 ++++- src/themes/tamu/styles/_theme_css_variable_overrides.scss | 3 --- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/themes/rdc/styles/_theme_css_variable_overrides.scss b/src/themes/rdc/styles/_theme_css_variable_overrides.scss index ef8c0dd1091..83eaacb8803 100644 --- a/src/themes/rdc/styles/_theme_css_variable_overrides.scss +++ b/src/themes/rdc/styles/_theme_css_variable_overrides.scss @@ -4,5 +4,8 @@ --ds-thumbnail-max-width: 75px; --ds-thumbnail-placeholder-background: none; --ds-thumbnail-placeholder-border: none; - --ds-thumbnail-placeholder-color: var(--$gray-700); + --ds-thumbnail-placeholder-color: #{--$gray-700}; + + --ds-home-news-link-color: #{$gray-100}; + --ds-home-news-link-hover-color: #{darken($gray-100, 15%)}; } diff --git a/src/themes/tamu/styles/_theme_css_variable_overrides.scss b/src/themes/tamu/styles/_theme_css_variable_overrides.scss index 9a8499507f0..cf4cb1b40a8 100644 --- a/src/themes/tamu/styles/_theme_css_variable_overrides.scss +++ b/src/themes/tamu/styles/_theme_css_variable_overrides.scss @@ -6,9 +6,6 @@ --ds-banner-text-background: rgba(0, 0, 0, 0.45); --ds-banner-background-gradient-width: 300px; - --ds-home-news-link-color: #{$accent}; - --ds-home-news-link-hover-color: #{darken($accent, 15%)}; - --ds-header-navbar-border-bottom-color: #{$primary}; --ds-navbar-link-color: #{$primary}; From 446fd979bdc675ea5e11df4b9a10cc5e2f2b9a55 Mon Sep 17 00:00:00 2001 From: William Welling Date: Wed, 10 Apr 2024 11:30:12 -0500 Subject: [PATCH 17/18] Add researcher profile URI to RDC themed single item view --- .../item-types/untyped-item/untyped-item.component.html | 4 ++++ src/themes/rdc/assets/i18n/en.json5 | 2 ++ 2 files changed, 6 insertions(+) diff --git a/src/themes/rdc/app/item-page/simple/item-types/untyped-item/untyped-item.component.html b/src/themes/rdc/app/item-page/simple/item-types/untyped-item/untyped-item.component.html index e6b2d5e0058..c97db888fc4 100644 --- a/src/themes/rdc/app/item-page/simple/item-types/untyped-item/untyped-item.component.html +++ b/src/themes/rdc/app/item-page/simple/item-types/untyped-item/untyped-item.component.html @@ -71,6 +71,10 @@ [fields]="['dc.identifier.uri']" [label]="'item.page.uri'"> + +
diff --git a/src/themes/rdc/assets/i18n/en.json5 b/src/themes/rdc/assets/i18n/en.json5 index a46cac26564..d5c8934d843 100644 --- a/src/themes/rdc/assets/i18n/en.json5 +++ b/src/themes/rdc/assets/i18n/en.json5 @@ -1,5 +1,7 @@ { "item.page.source": "Access at repository", + "item.author.uri": "Researcher Profile", + "thumbnail.default.placeholder": "", } From fe72c57c820aaed2b0767978f0ade17dbd0b8368 Mon Sep 17 00:00:00 2001 From: William Welling Date: Thu, 11 Apr 2024 13:15:45 -0500 Subject: [PATCH 18/18] Have simple item view author link to browse by with value query param --- .../browse-by-switcher.component.spec.ts | 25 ++++++++++++++++++- .../value-list-browse-definition.model.ts | 4 ++- 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/src/app/browse-by/browse-by-switcher/browse-by-switcher.component.spec.ts b/src/app/browse-by/browse-by-switcher/browse-by-switcher.component.spec.ts index c13405dd4d2..e778525aed3 100644 --- a/src/app/browse-by/browse-by-switcher/browse-by-switcher.component.spec.ts +++ b/src/app/browse-by/browse-by-switcher/browse-by-switcher.component.spec.ts @@ -8,6 +8,7 @@ import { ThemeService } from '../../shared/theme-support/theme.service'; import { FlatBrowseDefinition } from '../../core/shared/flat-browse-definition.model'; import { ValueListBrowseDefinition } from '../../core/shared/value-list-browse-definition.model'; import { NonHierarchicalBrowseDefinition } from '../../core/shared/non-hierarchical-browse-definition'; +import { VALUE_LIST_BROWSE_DEFINITION } from 'src/app/core/shared/value-list-browse-definition.resource-type'; describe('BrowseBySwitcherComponent', () => { let comp: BrowseBySwitcherComponent; @@ -72,7 +73,12 @@ describe('BrowseBySwitcherComponent', () => { comp = fixture.componentInstance; })); - types.forEach((type: NonHierarchicalBrowseDefinition) => { + // TAMU Customization - skip test for ValueListBrowseDefinition + types + .filter((type: NonHierarchicalBrowseDefinition) => !(type instanceof ValueListBrowseDefinition)) + // types.forEach((type: NonHierarchicalBrowseDefinition) => { + // End TAMU Customization - skip test for ValueListBrowseDefinition + .forEach((type: NonHierarchicalBrowseDefinition) => { describe(`when switching to a browse-by page for "${type.id}"`, () => { beforeEach(() => { data.next(createDataWithBrowseDefinition(type)); @@ -84,6 +90,23 @@ describe('BrowseBySwitcherComponent', () => { }); }); }); + + // TAMU Customization - test for ValueListBrowseDefinition + types + .filter((type: NonHierarchicalBrowseDefinition) => (type instanceof ValueListBrowseDefinition)) + .forEach((type: ValueListBrowseDefinition) => { + describe(`when switching to a browse-by page for "${type.id}"`, () => { + beforeEach(() => { + data.next(createDataWithBrowseDefinition(type)); + fixture.detectChanges(); + }); + + it(`should call getComponentByBrowseByType with type "${VALUE_LIST_BROWSE_DEFINITION.value}"`, () => { + expect((comp as any).getComponentByBrowseByType).toHaveBeenCalledWith(VALUE_LIST_BROWSE_DEFINITION.value, themeName); + }); + }); + }); + // End TAMU Customization - test for ValueListBrowseDefinition }); export function createDataWithBrowseDefinition(browseDefinition) { diff --git a/src/app/core/shared/value-list-browse-definition.model.ts b/src/app/core/shared/value-list-browse-definition.model.ts index 3378263962e..c7d4f7a5194 100644 --- a/src/app/core/shared/value-list-browse-definition.model.ts +++ b/src/app/core/shared/value-list-browse-definition.model.ts @@ -31,6 +31,8 @@ export class ValueListBrowseDefinition extends NonHierarchicalBrowseDefinition { }; getRenderType(): string { - return this.dataType; + // TAMU Customization - return type.value of `valueList` to properly render author browse by link in simple item view + return this.type.value; + // return this.dataType; } }