diff --git a/src/app/app.routes.ts b/src/app/app.routes.ts
index c971ce5ad..f103b6436 100644
--- a/src/app/app.routes.ts
+++ b/src/app/app.routes.ts
@@ -36,6 +36,13 @@ export const routes: Routes = [
(mod) => mod.HomeComponent,
),
},
+ {
+ path: 'home-logged-out',
+ loadComponent: () =>
+ import('./features/home/logged-out/home-logged-out.component').then(
+ (mod) => mod.HomeLoggedOutComponent,
+ ),
+ },
{
path: 'support',
loadComponent: () =>
diff --git a/src/app/core/components/root/root.component.scss b/src/app/core/components/root/root.component.scss
index 156368f90..2d9da4687 100644
--- a/src/app/core/components/root/root.component.scss
+++ b/src/app/core/components/root/root.component.scss
@@ -9,6 +9,7 @@
display: flex;
flex: 1;
background-color: var.$dark-blue-1;
+ max-width: 100vw;
.content-wrapper {
flex: 1;
diff --git a/src/app/features/home/data.ts b/src/app/features/home/data.ts
new file mode 100644
index 000000000..ef10feb7c
--- /dev/null
+++ b/src/app/features/home/data.ts
@@ -0,0 +1,246 @@
+import { Project } from '@osf/features/home/models/project.entity';
+
+export const projects: Project[] = [
+ {
+ id: '1',
+ title: 'Project name example',
+ dateModified: new Date(),
+ bibliographicContributors: [
+ {
+ id: '1',
+ unregisteredContributor: 'Steger',
+ },
+ {
+ id: '2',
+ unregisteredContributor: 'Oison',
+ },
+ {
+ id: '2',
+ unregisteredContributor: 'Errington',
+ },
+ ],
+ links: null,
+ },
+ {
+ id: '2',
+ title:
+ 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.',
+ dateModified: new Date(),
+ bibliographicContributors: [
+ {
+ id: '1',
+ unregisteredContributor: 'Longsurname1',
+ },
+ {
+ id: '2',
+ unregisteredContributor: 'Loremipsumdolosit',
+ },
+ {
+ id: '2',
+ unregisteredContributor:
+ 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.',
+ },
+ ],
+ links: null,
+ },
+ {
+ id: '3',
+ title: 'Lorem ipsum dolor sit amet',
+ dateModified: new Date(),
+ bibliographicContributors: [
+ {
+ id: '1',
+ unregisteredContributor: 'Loremipsumdolorsitam1',
+ },
+ {
+ id: '2',
+ unregisteredContributor: 'Loremipsumdolorsitamipsumdol2',
+ },
+ ],
+ links: null,
+ },
+ {
+ id: '4',
+ title: 'Project long name example Lorem ipsum dolor/',
+ dateModified: new Date(),
+ bibliographicContributors: [
+ {
+ id: '1',
+ unregisteredContributor: 'Steger',
+ },
+ {
+ id: '2',
+ unregisteredContributor: 'Oison',
+ },
+ {
+ id: '2',
+ unregisteredContributor: 'Errington',
+ },
+ ],
+ links: null,
+ },
+ {
+ id: '5',
+ title: 'Project long name example /',
+ dateModified: new Date(),
+ bibliographicContributors: [
+ {
+ id: '1',
+ unregisteredContributor: 'Steger',
+ },
+ {
+ id: '2',
+ unregisteredContributor: 'Oison',
+ },
+ {
+ id: '2',
+ unregisteredContributor: 'Errington',
+ },
+ ],
+ links: null,
+ },
+ {
+ id: '6',
+ title: 'Project long name example',
+ dateModified: new Date(),
+ bibliographicContributors: [
+ {
+ id: '1',
+ unregisteredContributor: 'Steger',
+ },
+ {
+ id: '2',
+ unregisteredContributor: 'Oison',
+ },
+ {
+ id: '2',
+ unregisteredContributor: 'Errington',
+ },
+ ],
+ links: null,
+ },
+ {
+ id: '7',
+ title: 'Project long name example Lorem ipsum dolor sit amet',
+ dateModified: new Date(),
+ bibliographicContributors: [
+ {
+ id: '1',
+ unregisteredContributor: 'Longsurname1',
+ },
+ {
+ id: '2',
+ unregisteredContributor: 'Loremipsumdolosit',
+ },
+ {
+ id: '2',
+ unregisteredContributor: 'Loremipsumdolorsitam',
+ },
+ ],
+ links: null,
+ },
+ {
+ id: '8',
+ title: 'Lorem ipsum dolor sit amet',
+ dateModified: new Date(),
+ bibliographicContributors: [
+ {
+ id: '1',
+ unregisteredContributor: 'Loremipsumdolorsitam1',
+ },
+ {
+ id: '2',
+ unregisteredContributor: 'Loremipsumdolorsitamipsumdol2',
+ },
+ ],
+ links: null,
+ },
+ {
+ id: '9',
+ title: 'Project long name example Lorem ipsum dolor sit amet',
+ dateModified: new Date(),
+ bibliographicContributors: [
+ {
+ id: '1',
+ unregisteredContributor: 'Longsurname1',
+ },
+ {
+ id: '2',
+ unregisteredContributor: 'Loremipsumdolosit',
+ },
+ {
+ id: '2',
+ unregisteredContributor: 'Loremipsumdolorsitam',
+ },
+ ],
+ links: null,
+ },
+ {
+ id: '10',
+ title: 'Lorem ipsum dolor sit amet',
+ dateModified: new Date(),
+ bibliographicContributors: [
+ {
+ id: '1',
+ unregisteredContributor: 'Loremipsumdolorsitam1',
+ },
+ {
+ id: '2',
+ unregisteredContributor: 'Loremipsumdolorsitamipsumdol2',
+ },
+ ],
+ links: null,
+ },
+];
+
+export const noteworthy = [
+ {
+ title:
+ 'CLINICAL APPLICATIONS OF DIGITAL DENTISTRY IN PEDIATRIC DENTISTRY: SCOPE REVIEW',
+ authors: 'by Moreira, Imparato, Borges, and 1 more',
+ },
+ {
+ title:
+ 'Transcutaneous electrical nerve stimulation enhances gait adaptation savings in multiple sclerosis',
+ authors: 'by Hagen, Whittier, Stephens, and 1 more',
+ },
+ {
+ title:
+ 'New technologies of the lipid fraction of industrialized parenteral nutrition, does the incorporation bring results in the clinical results of patients? A scoping review of the literature',
+ authors: 'by de Oliveira and Manin',
+ },
+ {
+ title:
+ 'Corticospinal Excitability in Response to Mediolateral Gait Instability',
+ authors: 'by Raven, Davies, and Bruijn',
+ },
+ {
+ title: 'Topic Modeling - Mississippi River Basin Literature',
+ authors: 'by Wimhurst, Koch, and McPherson',
+ },
+];
+
+export const mostPopular = [
+ {
+ title: 'PsiChiR',
+ authors: 'by Wagge, Staples, Edlund, and 3 more',
+ },
+ {
+ title:
+ 'Data and Code for "Evaluating large language models in theory of mind tasks"',
+ authors: 'by Kosinski',
+ },
+ {
+ title:
+ 'The Data Detectives! A Game of Persistent Identifiers (PIDfest 2024)',
+ authors: 'by Olson',
+ },
+ {
+ title: 'Working Group on NIH DMSP Guidance',
+ authors: 'by Ye, Hertz, Badger, and 26 more',
+ },
+ {
+ title: 'Better Scientific Poster',
+ authors: 'by Morrison',
+ },
+];
diff --git a/src/app/features/home/home.component.html b/src/app/features/home/home.component.html
index 253b6e8a1..cbafbe0db 100644
--- a/src/app/features/home/home.component.html
+++ b/src/app/features/home/home.component.html
@@ -27,12 +27,11 @@
search OSF
-
+
diff --git a/src/app/features/home/home.component.scss b/src/app/features/home/home.component.scss
index 6d518ae28..b5b32b82f 100644
--- a/src/app/features/home/home.component.scss
+++ b/src/app/features/home/home.component.scss
@@ -1,19 +1,32 @@
@use "assets/styles/variables" as var;
-@mixin flex-container($direction: row, $justify: flex-start, $align: center) {
- display: flex;
- flex-direction: $direction;
- justify-content: $justify;
- align-items: $align;
-}
-
:host {
- @include flex-container(column);
+ display: flex;
+ flex-direction: column;
.home-container {
margin-top: 4.5rem;
}
+ .dashboard-header {
+ display: flex;
+ justify-content: start;
+ width: 100%;
+ padding: 7.14rem 1.71rem 3.43rem 1.71rem;
+ background: var.$gradient-1;
+
+ .dashboard-title {
+ font-size: 1.71rem;
+ color: var.$dark-blue-1;
+ font-weight: 700;
+ margin-left: 0.86rem;
+ }
+
+ p-button {
+ margin-left: auto;
+ }
+ }
+
.quick-search-container {
background: white;
padding: 1.71rem;
@@ -30,30 +43,6 @@
color: var.$pr-blue-1;
}
}
-
- .search-container {
- @include flex-container(row, flex-start, center);
- position: relative;
-
- i {
- position: absolute;
- left: 0.86rem;
- color: var.$dark-blue-1;
- font-size: 1.1rem;
- }
-
- .search-input {
- width: 100%;
- background: white;
- border: 1px solid var.$grey-2;
- border-radius: 0.57rem;
- font-size: 1.1rem;
- font-weight: 400;
- padding-left: 2.86rem;
- color: var.$dark-blue-1;
- height: 3.29rem;
- }
- }
}
.public-projects-container {
diff --git a/src/app/features/home/home.component.ts b/src/app/features/home/home.component.ts
index 1062e7df4..4e08e7538 100644
--- a/src/app/features/home/home.component.ts
+++ b/src/app/features/home/home.component.ts
@@ -3,12 +3,14 @@ import { InputTextModule } from 'primeng/inputtext';
import { FormsModule } from '@angular/forms';
import { TableModule } from 'primeng/table';
import { Project } from '@osf/features/home/models/project.entity';
-import { DatePipe } from '@angular/common';
+import { DatePipe, NgOptimizedImage } from '@angular/common';
import { RouterLink } from '@angular/router';
import { Button } from 'primeng/button';
import { SubHeaderComponent } from '@shared/components/sub-header/sub-header.component';
import { IS_PORTRAIT, IS_XSMALL } from '@shared/utils/breakpoints.tokens';
import { toSignal } from '@angular/core/rxjs-interop';
+import { Carousel } from 'primeng/carousel';
+import { noteworthy, mostPopular, projects } from '@osf/features/home/data';
@Component({
selector: 'osf-home',
@@ -21,6 +23,8 @@ import { toSignal } from '@angular/core/rxjs-interop';
RouterLink,
Button,
SubHeaderComponent,
+ Carousel,
+ NgOptimizedImage,
],
templateUrl: './home.component.html',
styleUrl: './home.component.scss',
@@ -30,198 +34,9 @@ export class HomeComponent {
#isXSmall$ = inject(IS_XSMALL);
isPortrait = toSignal(this.#isPortrait$);
isXSmall = toSignal(this.#isXSmall$);
- projects: Project[] = [
- {
- id: '1',
- title: 'Project name example',
- dateModified: new Date(),
- bibliographicContributors: [
- {
- id: '1',
- unregisteredContributor: 'Steger',
- },
- {
- id: '2',
- unregisteredContributor: 'Oison',
- },
- {
- id: '2',
- unregisteredContributor: 'Errington',
- },
- ],
- links: null,
- },
- {
- id: '2',
- title:
- 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.',
- dateModified: new Date(),
- bibliographicContributors: [
- {
- id: '1',
- unregisteredContributor: 'Longsurname1',
- },
- {
- id: '2',
- unregisteredContributor: 'Loremipsumdolosit',
- },
- {
- id: '2',
- unregisteredContributor:
- 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.',
- },
- ],
- links: null,
- },
- {
- id: '3',
- title: 'Lorem ipsum dolor sit amet',
- dateModified: new Date(),
- bibliographicContributors: [
- {
- id: '1',
- unregisteredContributor: 'Loremipsumdolorsitam1',
- },
- {
- id: '2',
- unregisteredContributor: 'Loremipsumdolorsitamipsumdol2',
- },
- ],
- links: null,
- },
- {
- id: '4',
- title: 'Project long name example Lorem ipsum dolor/',
- dateModified: new Date(),
- bibliographicContributors: [
- {
- id: '1',
- unregisteredContributor: 'Steger',
- },
- {
- id: '2',
- unregisteredContributor: 'Oison',
- },
- {
- id: '2',
- unregisteredContributor: 'Errington',
- },
- ],
- links: null,
- },
- {
- id: '5',
- title: 'Project long name example /',
- dateModified: new Date(),
- bibliographicContributors: [
- {
- id: '1',
- unregisteredContributor: 'Steger',
- },
- {
- id: '2',
- unregisteredContributor: 'Oison',
- },
- {
- id: '2',
- unregisteredContributor: 'Errington',
- },
- ],
- links: null,
- },
- {
- id: '6',
- title: 'Project long name example',
- dateModified: new Date(),
- bibliographicContributors: [
- {
- id: '1',
- unregisteredContributor: 'Steger',
- },
- {
- id: '2',
- unregisteredContributor: 'Oison',
- },
- {
- id: '2',
- unregisteredContributor: 'Errington',
- },
- ],
- links: null,
- },
- {
- id: '7',
- title: 'Project long name example Lorem ipsum dolor sit amet',
- dateModified: new Date(),
- bibliographicContributors: [
- {
- id: '1',
- unregisteredContributor: 'Longsurname1',
- },
- {
- id: '2',
- unregisteredContributor: 'Loremipsumdolosit',
- },
- {
- id: '2',
- unregisteredContributor: 'Loremipsumdolorsitam',
- },
- ],
- links: null,
- },
- {
- id: '8',
- title: 'Lorem ipsum dolor sit amet',
- dateModified: new Date(),
- bibliographicContributors: [
- {
- id: '1',
- unregisteredContributor: 'Loremipsumdolorsitam1',
- },
- {
- id: '2',
- unregisteredContributor: 'Loremipsumdolorsitamipsumdol2',
- },
- ],
- links: null,
- },
- {
- id: '9',
- title: 'Project long name example Lorem ipsum dolor sit amet',
- dateModified: new Date(),
- bibliographicContributors: [
- {
- id: '1',
- unregisteredContributor: 'Longsurname1',
- },
- {
- id: '2',
- unregisteredContributor: 'Loremipsumdolosit',
- },
- {
- id: '2',
- unregisteredContributor: 'Loremipsumdolorsitam',
- },
- ],
- links: null,
- },
- {
- id: '10',
- title: 'Lorem ipsum dolor sit amet',
- dateModified: new Date(),
- bibliographicContributors: [
- {
- id: '1',
- unregisteredContributor: 'Loremipsumdolorsitam1',
- },
- {
- id: '2',
- unregisteredContributor: 'Loremipsumdolorsitamipsumdol2',
- },
- ],
- links: null,
- },
- ];
+ projects: Project[] = projects;
+ noteworthy = noteworthy;
+ mostPopular = mostPopular;
searchValue = signal('');
@@ -236,58 +51,6 @@ export class HomeComponent {
);
});
- noteworthy = [
- {
- title:
- 'CLINICAL APPLICATIONS OF DIGITAL DENTISTRY IN PEDIATRIC DENTISTRY: SCOPE REVIEW',
- authors: 'by Moreira, Imparato, Borges, and 1 more',
- },
- {
- title:
- 'Transcutaneous electrical nerve stimulation enhances gait adaptation savings in multiple sclerosis',
- authors: 'by Hagen, Whittier, Stephens, and 1 more',
- },
- {
- title:
- 'New technologies of the lipid fraction of industrialized parenteral nutrition, does the incorporation bring results in the clinical results of patients? A scoping review of the literature',
- authors: 'by de Oliveira and Manin',
- },
- {
- title:
- 'Corticospinal Excitability in Response to Mediolateral Gait Instability',
- authors: 'by Raven, Davies, and Bruijn',
- },
- {
- title: 'Topic Modeling - Mississippi River Basin Literature',
- authors: 'by Wimhurst, Koch, and McPherson',
- },
- ];
-
- mostPopular = [
- {
- title: 'PsiChiR',
- authors: 'by Wagge, Staples, Edlund, and 3 more',
- },
- {
- title:
- 'Data and Code for "Evaluating large language models in theory of mind tasks"',
- authors: 'by Kosinski',
- },
- {
- title:
- 'The Data Detectives! A Game of Persistent Identifiers (PIDfest 2024)',
- authors: 'by Olson',
- },
- {
- title: 'Working Group on NIH DMSP Guidance',
- authors: 'by Ye, Hertz, Badger, and 26 more',
- },
- {
- title: 'Better Scientific Poster',
- authors: 'by Morrison',
- },
- ];
-
getContributorsList(item: Project) {
return this.projects
.find((i) => i.id === item.id)
diff --git a/src/app/features/home/logged-out/home-logged-out.component.html b/src/app/features/home/logged-out/home-logged-out.component.html
new file mode 100644
index 000000000..5b2e9fa92
--- /dev/null
+++ b/src/app/features/home/logged-out/home-logged-out.component.html
@@ -0,0 +1,271 @@
+
+
+
There’s a better way to manage your research
+
+ OSF is a free, open platform to support your research and enable
+ collaboration
+
+
+
+
+
+
+
+
+
+
+
Discover Public Research
+
+ Discover projects, data, materials, and collaborators on OSF that might be
+ helpful to your own research
+
+
+
+
+
+
+
+
+
+
+
How OSF Supports your research
+
+
+
+
+
+
+
+
+
Search And Discover
+
+ Find papers, data, and materials to inspire your next research
+ project. Search public projects to build on the work of others and
+ find new collaborators
+
+
+
+
+
+
+
+
+
+
+
Design Your Study
+
+ Start a project and add collaborators, giving them access to
+ protocols and other research materials. Built-in version control
+ tracks the evolution of your study
+
+
+
+
+
+
+
+
+
+
+
Collect and Analyze Data
+
+ Store data, code, and other materials in OSF Storage, or connect
+ your Dropbox or other third-party account. Every file gets a unique,
+ persistent URL for citing and sharing
+
+
+
+
+
+
+
+
+
+
Publish Your Reports
+
+ Share papers in OSF Preprints or a community-based preprint
+ provider, so others can find and cite your work. Track impact with
+ metrics like downloads and view counts
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
What others are saying
+
+
+
+
+
+
+
+
+
+
+
{{ slide.title }}
+
+
{{ slide.author }}
+
{{ slide.facility }}
+
+
+
+
+
+
+
+
+
+ OSF integrations make your workflow more efficient
+