+ {{provider-logo provider=theme.provider}}
{{/if}}
{{#each results as |result|}}
- {{search-result
+ {{!search-result
themeProvider=themeProvider
queryParams=queryParams
detailRoute=detailRoute
diff --git a/lib/collections/addon/components/error-page/component.ts b/lib/collections/addon/components/error-page/component.ts
index 40092b9a8e7..8e7a1856ee4 100644
--- a/lib/collections/addon/components/error-page/component.ts
+++ b/lib/collections/addon/components/error-page/component.ts
@@ -1,9 +1,9 @@
import { computed } from '@ember-decorators/object';
import { service } from '@ember-decorators/service';
import Component from '@ember/component';
-import Theme from 'collections/services/theme';
-// import { localClassNames } from 'ember-osf-web/decorators/css-modules';
import Analytics from 'ember-osf-web/services/analytics';
+import Theme from 'ember-osf-web/services/theme';
+// import { localClassNames } from 'ember-osf-web/decorators/css-modules';
import defaultTo from 'ember-osf-web/utils/default-to';
// @localClassNames('header', 'header-error')
diff --git a/lib/collections/addon/components/provider-logo/component.ts b/lib/collections/addon/components/provider-logo/component.ts
new file mode 100644
index 00000000000..af3024b10ba
--- /dev/null
+++ b/lib/collections/addon/components/provider-logo/component.ts
@@ -0,0 +1,31 @@
+import { tagName } from '@ember-decorators/component';
+import { computed } from '@ember-decorators/object';
+import { and } from '@ember-decorators/object/computed';
+import { service } from '@ember-decorators/service';
+import Component from '@ember/component';
+import Provider from 'ember-osf-web/models/provider';
+import Analytics from 'ember-osf-web/services/analytics';
+import styles from './styles';
+import layout from './template';
+
+@tagName('')
+export default class ProviderLogo extends Component {
+ layout = layout;
+ styles = styles;
+
+ @service analytics!: Analytics;
+
+ provider: Provider = this.provider;
+
+ @and('provider.domain', 'provider.domainRedirectEnabled')
+ useExternalLink!: boolean;
+
+ @computed('provider.id')
+ get logoAsset(): string {
+ return [
+ '/ember_osf_web/assets/osf-assets/files/collections-assets/',
+ this.provider.id,
+ '/square_color_no_transparent.png',
+ ].join('');
+ }
+}
diff --git a/lib/collections/addon/components/provider-logo/styles.scss b/lib/collections/addon/components/provider-logo/styles.scss
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/lib/collections/addon/components/provider-logo/template.hbs b/lib/collections/addon/components/provider-logo/template.hbs
new file mode 100644
index 00000000000..55aed961858
--- /dev/null
+++ b/lib/collections/addon/components/provider-logo/template.hbs
@@ -0,0 +1,9 @@
+{{#if useExternalLink}}
+
+
+
+{{else}}
+ {{#link-to 'provider.discover' provider.id}}
+

+ {{/link-to}}
+{{/if}}
diff --git a/lib/collections/addon/discover/controller.ts b/lib/collections/addon/discover/controller.ts
index 0867d7d874b..899b613498d 100644
--- a/lib/collections/addon/discover/controller.ts
+++ b/lib/collections/addon/discover/controller.ts
@@ -3,8 +3,8 @@ import { not } from '@ember-decorators/object/computed';
import { service } from '@ember-decorators/service';
import Controller from '@ember/controller';
import config from 'collections/config/environment';
-import Theme from 'collections/services/theme';
import I18N from 'ember-i18n/services/i18n';
+import Theme from 'ember-osf-web/services/theme';
export default class Discover extends Controller {
@service theme!: Theme;
@@ -24,22 +24,23 @@ export default class Discover extends Controller {
@not('additionalProviders')
showActiveFilters!: boolean;
- @computed('themeProvider')
+ @computed('theme.provider')
get additionalProviders() { // Do additionalProviders exist?
// for now, using this property to alter many pieces of the landing/discover page
- return (this.themeProvider!.additionalProviders || []).length > 1;
+ // return (this.theme.provider!.additionalProviders || []).length > 1;
+ return false;
}
consumingService = 'collections'; // Consuming service - preprints here
detailRoute = 'content'; // Name of detail route for this application
- @computed('additionalProviders')
- get discoverHeader(): string { // Header for preprints discover page
- // If additionalProviders, use more generic Repository Search page title
- return this.additionalProviders ?
- 'discover.search.heading_repository_search' :
- 'collections.discover.search_heading';
- }
+ // @computed('additionalProviders')
+ // get discoverHeader(): string { // Header for preprints discover page
+ // // If additionalProviders, use more generic Repository Search page title
+ // return this.additionalProviders ?
+ // 'discover.search.heading_repository_search' :
+ // 'collections.discover.search_heading';
+ // }
end = ''; // End query param. Must be passed to component, so can be reflected in the URL
@@ -61,8 +62,10 @@ export default class Discover extends Controller {
] :
// Regular preprints and branded preprints get provider and taxonomy facets
[
- ['sources', 'providers', 'provider'],
+ ['sources', 'providers', 'collection-provider'],
['subjects', 'subject', 'taxonomy'],
+ ['status', 'status', 'status'],
+ ['type', 'type', 'collected-type'],
]
).map(([key, title, component]) => ({
key,
diff --git a/lib/collections/addon/engine.js b/lib/collections/addon/engine.js
index e25df414120..40c8b18eb7c 100644
--- a/lib/collections/addon/engine.js
+++ b/lib/collections/addon/engine.js
@@ -16,6 +16,7 @@ const engine = Engine.extend({
'i18n',
'session',
'store',
+ 'theme',
'router',
],
},
diff --git a/lib/collections/addon/index/controller.ts b/lib/collections/addon/index/controller.ts
index 8970c8e73be..2a7fb158f60 100644
--- a/lib/collections/addon/index/controller.ts
+++ b/lib/collections/addon/index/controller.ts
@@ -1,9 +1,11 @@
import { service } from '@ember-decorators/service';
import Controller from '@ember/controller';
-import Theme from 'collections/services/theme';
+import Analytics from 'ember-osf-web/services/analytics';
+import Theme from 'ember-osf-web/services/theme';
import sanitizeHtml from 'sanitize-html';
export default class Index extends Controller {
+ @service analytics!: Analytics;
@service theme!: Theme;
sanitizeOptions = {
diff --git a/lib/collections/addon/index/route.ts b/lib/collections/addon/index/route.ts
index 7d17f096e5e..739f80cb9d3 100644
--- a/lib/collections/addon/index/route.ts
+++ b/lib/collections/addon/index/route.ts
@@ -1,7 +1,11 @@
+import { service } from '@ember-decorators/service';
import Route from '@ember/routing/route';
+import DS from 'ember-data';
export default class Index extends Route {
- model(params: { provider_id: string }): string {
- return params.provider_id;
+ @service store!: DS.Store;
+
+ model() {
+ return this.store.findAll('collection-provider');
}
}
diff --git a/lib/collections/addon/index/styles.scss b/lib/collections/addon/index/styles.scss
index becbd72ae5b..b999b64ab38 100644
--- a/lib/collections/addon/index/styles.scss
+++ b/lib/collections/addon/index/styles.scss
@@ -25,6 +25,18 @@
}
}
+.provider-logos {
+ background: url('img/index-tool-bg.jpg') top center #cbd9d5;
+ color: #fff;
+ text-shadow: 0 0 5px #506069;
+ background-size: cover;
+}
+
+.source-code-link {
+ color: #fff;
+ text-decoration: underline;
+}
+
.osf-bg {
height: 70px;
background-size: contain;
diff --git a/lib/collections/addon/index/template.hbs b/lib/collections/addon/index/template.hbs
index c774adc59f4..2c87a2aa68f 100644
--- a/lib/collections/addon/index/template.hbs
+++ b/lib/collections/addon/index/template.hbs
@@ -63,11 +63,63 @@
+ {{#unless theme.isProvider}}
+
-
{{#if theme.provider.additionalProviders}}
+
+ {{#if theme.provider.additionalProviders}}
{{t "index.subjects.heading.provider"}}
{{else}}
{{!if theme.provider.hasHighlightedSubjects
@@ -103,3 +155,5 @@
{{/if}}
+
+{{!--
--}}
diff --git a/lib/collections/addon/provider/route.ts b/lib/collections/addon/provider/route.ts
index 11208cd06c4..5c9ec48457b 100644
--- a/lib/collections/addon/provider/route.ts
+++ b/lib/collections/addon/provider/route.ts
@@ -1,8 +1,8 @@
import { service } from '@ember-decorators/service';
import Route from '@ember/routing/route';
import config from 'collections/config/environment';
-import Theme from 'collections/services/theme';
import DS from 'ember-data';
+import Theme from 'ember-osf-web/services/theme';
export default class Provider extends Route {
@service store!: DS.Store;
@@ -13,12 +13,12 @@ export default class Provider extends Route {
const slugLower = slug.toLowerCase();
try {
- await this.store.findRecord('preprint-provider', slugLower);
-
- const { pathname } = window.location;
- const pathRegex = new RegExp(`^/collections/${slug}`);
+ await this.store.findRecord('collection-provider', slugLower);
if (slug !== slugLower) {
+ const { pathname } = window.location;
+ const pathRegex = new RegExp(`^/collections/${slug}`);
+
window.location.pathname = pathname.replace(
pathRegex,
`/collections/${slugLower}`,
diff --git a/lib/collections/package.json b/lib/collections/package.json
index 5d67bcad4c5..de1581f73e3 100644
--- a/lib/collections/package.json
+++ b/lib/collections/package.json
@@ -21,6 +21,7 @@
},
"ember-addon": {
"paths": [
+ "../app-components",
"../osf-components"
]
}
diff --git a/lib/osf-components/addon/components/branded-navbar/component.ts b/lib/osf-components/addon/components/branded-navbar/component.ts
new file mode 100644
index 00000000000..73008609bd3
--- /dev/null
+++ b/lib/osf-components/addon/components/branded-navbar/component.ts
@@ -0,0 +1,16 @@
+import { service } from '@ember-decorators/service';
+import Component from '@ember/component';
+import Analytics from 'ember-osf-web/services/analytics';
+import styles from './styles';
+import layout from './template';
+
+type ObjectType = 'collection' | 'preprint' | 'registration';
+
+export default class BrandedNavbar extends Component {
+ layout = layout;
+ styles = styles;
+
+ @service analytics!: Analytics;
+
+ objectType: ObjectType = this.objectType;
+}
diff --git a/lib/osf-components/addon/components/branded-navbar/styles.scss b/lib/osf-components/addon/components/branded-navbar/styles.scss
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/lib/osf-components/addon/components/branded-navbar/template.hbs b/lib/osf-components/addon/components/branded-navbar/template.hbs
new file mode 100644
index 00000000000..e472d3a9b5d
--- /dev/null
+++ b/lib/osf-components/addon/components/branded-navbar/template.hbs
@@ -0,0 +1,27 @@
+
+
+
+
+
+ -
+ {{#link-to "submit" click=(action "click" "link" "Navbar - Add preprint" )}}
+ {{t "global.add_preprint"}}
+ {{/link-to}}
+
+ -
+ {{#link-to "discover" class="" click=(action "click" "link" "Navbar - Search")}}
+ {{t "global.search"}}
+ {{/link-to}}
+
+
+
+
+
\ No newline at end of file
diff --git a/lib/osf-components/addon/components/osf-navbar/home-links/component.ts b/lib/osf-components/addon/components/osf-navbar/home-links/component.ts
index efeeab837b1..e0fc0dc7eb5 100644
--- a/lib/osf-components/addon/components/osf-navbar/home-links/component.ts
+++ b/lib/osf-components/addon/components/osf-navbar/home-links/component.ts
@@ -1,4 +1,5 @@
import { tagName } from '@ember-decorators/component';
+import { computed } from '@ember-decorators/object';
import { equal } from '@ember-decorators/object/computed';
import { service } from '@ember-decorators/service';
import Component from '@ember/component';
@@ -9,6 +10,12 @@ import defaultTo from 'ember-osf-web/utils/default-to';
import Session from 'ember-simple-auth/services/session';
import layout from './template';
+const discoverPageApps = [
+ 'collections',
+ 'registries',
+ 'preprints',
+];
+
/**
* Display default OSF navbar links
*
@@ -29,5 +36,15 @@ export default class OsfNavbarHomeLinks extends Component {
myProjectsUrl = serviceLinks.myProjects;
reviewsUrl = serviceLinks.reviewsHome;
+ hostAppName: string = defaultTo(this.hostAppName, '');
+
+ @computed('router.currentRouteName')
+ get searchRoute(): string {
+ const { currentRouteName } = this.router;
+ const app = discoverPageApps.find(str => currentRouteName.startsWith(str));
+
+ return app ? `${app}.discover` : '';
+ }
+
@equal('router.currentRouteName', 'institutions') onInstitutions!: boolean;
}
diff --git a/lib/osf-components/addon/components/osf-navbar/home-links/template.hbs b/lib/osf-components/addon/components/osf-navbar/home-links/template.hbs
index 42ca0cd5dab..7fa369510f3 100644
--- a/lib/osf-components/addon/components/osf-navbar/home-links/template.hbs
+++ b/lib/osf-components/addon/components/osf-navbar/home-links/template.hbs
@@ -13,9 +13,15 @@
{{/if}}
-
- {{t 'navbar.search'}}
-
+ {{#if searchRoute}}
+ {{#link-to searchRoute}}
+ {{t 'navbar.search'}}
+ {{/link-to}}
+ {{else}}
+
+ {{t 'navbar.search'}}
+
+ {{/if}}
{{#if onInstitutions}}