diff --git a/CHANGELOG.md b/CHANGELOG.md index c89ab5412b..d08c4c0792 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,18 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). +## [21.2.0] - 2021-04-19 +### Added +- field and relationship for custom metadata field and its schema to registration providers +- a link to the registration metadata to the Internet Archive copy + +### Removed +- "powered by Share" logo on discover pages + +### Changed +- show provider description on provider's discover page + - allow branded provider descriptions to have color options + ## [21.1.1] - 2021-04-12 ### Fixed - `draftRegistration.branchedFrom` node permission errors @@ -1697,7 +1709,8 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. ### Added - Quick Files -[Unreleased]: https://github.com/CenterForOpenScience/ember-osf-web/compare/21.1.1...develop +[Unreleased]: https://github.com/CenterForOpenScience/ember-osf-web/compare/21.2.0...develop +[21.2.0]: https://github.com/CenterForOpenScience/ember-osf-web/releases/tag/21.2.0 [21.1.1]: https://github.com/CenterForOpenScience/ember-osf-web/releases/tag/21.1.1 [21.1.0]: https://github.com/CenterForOpenScience/ember-osf-web/releases/tag/21.1.0 [20.13.0]: https://github.com/CenterForOpenScience/ember-osf-web/releases/tag/20.13.0 diff --git a/app/dashboard/template.hbs b/app/dashboard/template.hbs index d7ae7d4d2a..2504bbee6c 100644 --- a/app/dashboard/template.hbs +++ b/app/dashboard/template.hbs @@ -134,14 +134,14 @@ @class='col-sm-12' @onClick={{action this.more}} > - {{fa-icon - 'caret-down' - class=( + {{/if}} diff --git a/app/guid-node/registrations/controller.ts b/app/guid-node/registrations/controller.ts index c1548f97ed..b4abffa1ae 100644 --- a/app/guid-node/registrations/controller.ts +++ b/app/guid-node/registrations/controller.ts @@ -40,6 +40,7 @@ export default class GuidNodeRegistrations extends Controller { let schemas = yield this.store.query('registration-schema', { 'filter[active]': true, + 'page[size]': 100, }); schemas = schemas.toArray(); schemas.sort((a: RegistrationSchema, b: RegistrationSchema) => a.name.length - b.name.length); diff --git a/app/meetings/index/-components/meetings-footer/template.hbs b/app/meetings/index/-components/meetings-footer/template.hbs index 0e9e71c3a3..856af59e69 100644 --- a/app/meetings/index/-components/meetings-footer/template.hbs +++ b/app/meetings/index/-components/meetings-footer/template.hbs @@ -1,11 +1,13 @@
- +
+ +

{{t 'meetings.index.meetings-footer.discover'}}

@@ -18,11 +20,13 @@
- +
+ +

{{t 'meetings.index.meetings-footer.share'}}

@@ -35,11 +39,13 @@
- +
+ +

{{t 'meetings.index.meetings-footer.enhance'}}

diff --git a/app/meetings/index/-components/meetings-hero-banner/styles.scss b/app/meetings/index/-components/meetings-hero-banner/styles.scss index 4618f13467..c0b619dc3a 100644 --- a/app/meetings/index/-components/meetings-hero-banner/styles.scss +++ b/app/meetings/index/-components/meetings-hero-banner/styles.scss @@ -29,6 +29,8 @@ box-shadow: 0 0 10px #e0e7ec; width: 140px; height: 140px; + margin-left: auto; + margin-right: auto; } .osf-meeting-header { diff --git a/app/meetings/index/-components/meetings-hero-banner/template.hbs b/app/meetings/index/-components/meetings-hero-banner/template.hbs index 62295928c1..f6a81ad223 100644 --- a/app/meetings/index/-components/meetings-hero-banner/template.hbs +++ b/app/meetings/index/-components/meetings-hero-banner/template.hbs @@ -16,12 +16,14 @@
- +
+ +

{{t 'meetings.index.meetings-hero-banner.conference_organizers_h3'}}

@@ -48,12 +50,14 @@
- +
+ +

{{t 'meetings.index.meetings-hero-banner.conference_participants_h3'}}

diff --git a/app/models/registration-provider.ts b/app/models/registration-provider.ts index e69c75fbf1..c163023573 100644 --- a/app/models/registration-provider.ts +++ b/app/models/registration-provider.ts @@ -1,3 +1,4 @@ +import { htmlSafe } from '@ember/string'; import DS from 'ember-data'; import ReviewActionModel from 'ember-osf-web/models/review-action'; @@ -42,6 +43,14 @@ export default class RegistrationProviderModel extends ProviderModel { } return false; } + + @computed('description') + get htmlSafeDescription() { + if (this.description) { + return htmlSafe(this.description); + } + return ''; + } } declare module 'ember-data/types/registries/model' { diff --git a/app/models/registration.ts b/app/models/registration.ts index 96fb27f001..f9c43e7cff 100644 --- a/app/models/registration.ts +++ b/app/models/registration.ts @@ -58,6 +58,13 @@ const Validations = buildValidations({ ], }); +export interface ProviderMetadata { + // eslint-disable-next-line camelcase + field_name: string; + // eslint-disable-next-line camelcase + field_value: string; +} + export default class RegistrationModel extends NodeModel.extend(Validations) { @attr('date') dateRegistered!: Date; @attr('boolean') pendingRegistrationApproval!: boolean; @@ -75,6 +82,8 @@ export default class RegistrationModel extends NodeModel.extend(Validations) { @attr('object') registeredMeta!: RegistrationMetadata; @attr('registration-responses') registrationResponses!: RegistrationResponse; @attr('fixstring') reviewsState!: RegistrationReviewStates; + @attr('fixstring') iaUrl?: string; + @attr('array') providerSpecificMetadata!: ProviderMetadata[]; // Write-only attributes @attr('array') includedNodeIds?: string[]; diff --git a/app/styles/_variables.scss b/app/styles/_variables.scss index 8802a60218..ee6d4f67c9 100644 --- a/app/styles/_variables.scss +++ b/app/styles/_variables.scss @@ -120,6 +120,12 @@ $color-alt: #c7ffc7; $color-select: #337ab7; $color-grey: #333; $color-filter-bg: #a4b3bd; +$color-red: #f00; +$color-green: #090; +$color-yellow: #ff0; +$color-turquoise: rgb(64, 224, 211); +$color-purple: rgb(154, 0, 192); +$color-black: #000; .bg-color-blue { background-color: $color-blue; diff --git a/app/support/template.hbs b/app/support/template.hbs index 26c6e135b8..3a031b9004 100644 --- a/app/support/template.hbs +++ b/app/support/template.hbs @@ -26,7 +26,7 @@ @href={{this.faqPageUrl}} > {{t 'support.faq_button'}} - +
@@ -51,7 +51,7 @@ @href={{this.helpUrl}} > {{t 'support.guides_button'}} - +
@@ -104,28 +104,28 @@ class='btn btn-link' @href={{this.twitterUrl}} > - {{t 'support.social_twitter'}} + {{t 'support.social_twitter'}} - {{t 'support.social_mailing'}} + {{t 'support.social_mailing'}} - {{t 'support.social_facebook'}} + {{t 'support.social_facebook'}} - {{t 'support.social_github'}} + {{t 'support.social_github'}}
diff --git a/lib/analytics-page/addon/application/styles.scss b/lib/analytics-page/addon/application/styles.scss index 5e63b3890f..1b4e31a28a 100644 --- a/lib/analytics-page/addon/application/styles.scss +++ b/lib/analytics-page/addon/application/styles.scss @@ -29,7 +29,7 @@ margin: 15px 0; .DateRangeButton { - i { + svg { margin-left: 5px; } } diff --git a/lib/analytics-page/package.json b/lib/analytics-page/package.json index e5d00359ff..e74965e475 100644 --- a/lib/analytics-page/package.json +++ b/lib/analytics-page/package.json @@ -5,6 +5,10 @@ "ember-engine" ], "dependencies": { + "@fortawesome/free-regular-svg-icons": "*", + "@fortawesome/free-solid-svg-icons": "*", + "@fortawesome/ember-fontawesome": "*", + "@fortawesome/free-brands-svg-icons": "*", "ember-bootstrap": "*", "ember-truth-helpers": "*", "ember-component-attributes": "*", @@ -19,7 +23,6 @@ "ember-css-modules": "*", "ember-css-modules-sass": "*", "ember-intl": "*", - "ember-font-awesome": "*", "ember-moment": "*", "ember-page-title": "*" }, diff --git a/lib/app-components/addon/components/project-contributors/list/item/template.hbs b/lib/app-components/addon/components/project-contributors/list/item/template.hbs index b814bc364b..c76f5587ba 100644 --- a/lib/app-components/addon/components/project-contributors/list/item/template.hbs +++ b/lib/app-components/addon/components/project-contributors/list/item/template.hbs @@ -4,7 +4,7 @@ > {{! Handle }}
- +
{{! Profile image}} diff --git a/lib/app-components/addon/components/project-contributors/search/template.hbs b/lib/app-components/addon/components/project-contributors/search/template.hbs index 2a1d707b4e..7264bee118 100644 --- a/lib/app-components/addon/components/project-contributors/search/template.hbs +++ b/lib/app-components/addon/components/project-contributors/search/template.hbs @@ -47,7 +47,7 @@ {{#if this.search.isRunning}}
- +
{{else if this.results.length}} diff --git a/lib/collections/addon/components/collections-submission/template.hbs b/lib/collections/addon/components/collections-submission/template.hbs index c9b93ee157..a9634cb3e8 100644 --- a/lib/collections/addon/components/collections-submission/template.hbs +++ b/lib/collections/addon/components/collections-submission/template.hbs @@ -61,7 +61,7 @@ {{/if}} diff --git a/lib/collections/addon/components/discover-page/active-filters/filter/template.hbs b/lib/collections/addon/components/discover-page/active-filters/filter/template.hbs index 5e830aed42..89745d424f 100644 --- a/lib/collections/addon/components/discover-page/active-filters/filter/template.hbs +++ b/lib/collections/addon/components/discover-page/active-filters/filter/template.hbs @@ -9,10 +9,11 @@ + > + + {{/unless}} \ No newline at end of file diff --git a/lib/collections/addon/components/discover-page/active-filters/template.hbs b/lib/collections/addon/components/discover-page/active-filters/template.hbs index 7335b7ba26..e413f99905 100644 --- a/lib/collections/addon/components/discover-page/active-filters/template.hbs +++ b/lib/collections/addon/components/discover-page/active-filters/template.hbs @@ -12,7 +12,7 @@ {{action @clearFilters}} > {{t 'collections.discover_page.active_filters.button'}} - + diff --git a/lib/collections/addon/components/discover-page/template.hbs b/lib/collections/addon/components/discover-page/template.hbs index 9b36ae9864..7153256b2b 100644 --- a/lib/collections/addon/components/discover-page/template.hbs +++ b/lib/collections/addon/components/discover-page/template.hbs @@ -71,7 +71,7 @@ aria-label={{t 'collections.discover_page.luceneHelp'}} {{action this.toggleShowLuceneHelp}} > - + {{!SEARCH BUTTON}} {{/if}} diff --git a/lib/osf-components/addon/components/file-browser/template.hbs b/lib/osf-components/addon/components/file-browser/template.hbs index 4a3498b4ca..70ba4586e2 100644 --- a/lib/osf-components/addon/components/file-browser/template.hbs +++ b/lib/osf-components/addon/components/file-browser/template.hbs @@ -50,7 +50,7 @@ @onClick={{action this.rename}} @class='pull-right' > - {{fa-icon 'pencil'}} + {{fa-icon 'pencil-alt'}} {{else}} @@ -114,7 +114,7 @@ @bubble={{true}} @onClick={{action this.viewItem}} > - {{fa-icon 'file-o'}} + {{fa-icon 'file'}} {{t 'general.view'}} {{#if this.canEdit}} @@ -125,7 +125,7 @@ @bubble={{true}} @onClick={{action (mut this.currentModal) 'move'}} > - {{fa-icon 'level-up'}} + {{fa-icon 'level-up-alt'}} {{t 'general.move'}} - {{fa-icon 'trash'}} + {{fa-icon 'trash-alt'}} {{t 'general.delete'}} - {{fa-icon 'pencil'}} + {{fa-icon 'pencil-alt'}} {{t 'general.rename'}} {{/if}} @@ -158,7 +158,7 @@ @bubble={{true}} @onClick={{action (mut this.currentModal) 'deleteMultiple'}} > - {{fa-icon 'trash'}} + {{fa-icon 'trash-alt'}} {{t 'file_browser.delete_multiple'}} {{/if}} @@ -441,7 +441,7 @@
-
{{fa-icon 'upload' size=5}}
+
{{fa-icon 'upload' size='5x'}}
{{t 'file_browser.drop_reminder'}}
@@ -480,7 +480,7 @@
{{#if this.canEdit}}
-
{{fa-icon 'upload' size=5}}
+
{{fa-icon 'upload' size='5x'}}
{{t 'file_browser.drop_placeholder'}}
{{else}} diff --git a/lib/osf-components/addon/components/file-editor/template.hbs b/lib/osf-components/addon/components/file-editor/template.hbs index 556bbfe7c4..9150280fcc 100644 --- a/lib/osf-components/addon/components/file-editor/template.hbs +++ b/lib/osf-components/addon/components/file-editor/template.hbs @@ -1,7 +1,7 @@

- + {{t 'general.edit'}}

diff --git a/lib/osf-components/addon/components/file-icon/component.ts b/lib/osf-components/addon/components/file-icon/component.ts index 42ad9cb10c..eae58f3a36 100644 --- a/lib/osf-components/addon/components/file-icon/component.ts +++ b/lib/osf-components/addon/components/file-icon/component.ts @@ -80,7 +80,7 @@ const iconForType = { 'xltm', 'csv', ], - text: [ + alt: [ 'txt', 'md', 'rtf', @@ -99,7 +99,7 @@ function iconFromName(name: string): string { const type = match ? match[0] : ''; const icon = typeIcons.get(type); - return `file${icon ? `-${icon}` : ''}-o`; + return `file${icon ? `-${icon}` : ''}`; } /** @@ -126,15 +126,10 @@ export default class FileIcon extends Component { @computed('item', 'item.expanded') get iconName(): string { // TODO: More icons! - if (this.item.isFolder) { return 'folder'; } - if (this.item.name) { - return iconFromName(this.item.name); - } - if (this.item.isNode) { // TODO node types return 'cube'; @@ -142,7 +137,11 @@ export default class FileIcon extends Component { if (this.item.isProvider) { // TODO provider-specific icons - return 'hdd-o'; + return 'hdd'; + } + + if (this.item.name) { + return iconFromName(this.item.name); } return iconFromName(defaultTo(this.item.itemName, '')); diff --git a/lib/osf-components/addon/components/file-icon/template.hbs b/lib/osf-components/addon/components/file-icon/template.hbs index 87a178f376..16965c15d2 100644 --- a/lib/osf-components/addon/components/file-icon/template.hbs +++ b/lib/osf-components/addon/components/file-icon/template.hbs @@ -1 +1,6 @@ -{{fa-icon this.iconName fixedWidth=true}} + diff --git a/lib/osf-components/addon/components/file-share-button/styles.scss b/lib/osf-components/addon/components/file-share-button/styles.scss index 4ff12df2d4..55110fd6b8 100644 --- a/lib/osf-components/addon/components/file-share-button/styles.scss +++ b/lib/osf-components/addon/components/file-share-button/styles.scss @@ -20,7 +20,7 @@ background-color: $color-bg-gray; } - i { + svg { color: $color-link-light; font-size: 1.6em; line-height: 1.6em; diff --git a/lib/osf-components/addon/components/file-share-button/template.hbs b/lib/osf-components/addon/components/file-share-button/template.hbs index ce921b4492..a78b613a24 100644 --- a/lib/osf-components/addon/components/file-share-button/template.hbs +++ b/lib/osf-components/addon/components/file-share-button/template.hbs @@ -65,7 +65,7 @@ rel='noopener noreferrer' @href={{this.twitterUrl}} > - +
diff --git a/lib/osf-components/addon/components/files/item/styles.scss b/lib/osf-components/addon/components/files/item/styles.scss index 20ba485f93..ab87b57f27 100644 --- a/lib/osf-components/addon/components/files/item/styles.scss +++ b/lib/osf-components/addon/components/files/item/styles.scss @@ -23,7 +23,7 @@ padding-right: 10px; } - i, + svg, .filename { color: $color-text-blue-dark; } diff --git a/lib/osf-components/addon/components/files/list/template.hbs b/lib/osf-components/addon/components/files/list/template.hbs index 23f7985f5f..ee9cf78c52 100644 --- a/lib/osf-components/addon/components/files/list/template.hbs +++ b/lib/osf-components/addon/components/files/list/template.hbs @@ -8,7 +8,7 @@ {{else}} {{#if @filesManager.canEdit}}
- + {{t 'osf-components.files-widget.drag_drop_files'}}
{{/if}} diff --git a/lib/osf-components/addon/components/files/menu/styles.scss b/lib/osf-components/addon/components/files/menu/styles.scss index 24d61f4128..d5a78dea9d 100644 --- a/lib/osf-components/addon/components/files/menu/styles.scss +++ b/lib/osf-components/addon/components/files/menu/styles.scss @@ -17,7 +17,7 @@ box-shadow: 0 0 0 2px #4d90fe; } - i { + svg { height: 28px; width: 28px; transform: translate(0, 1px); @@ -33,7 +33,7 @@ background-color: darken($color-bg-blue-dark, 10%); } - i { + svg { transform: translate(0, 1px) rotate(45deg); } } diff --git a/lib/osf-components/addon/components/files/menu/template.hbs b/lib/osf-components/addon/components/files/menu/template.hbs index f49290947e..87a85e571a 100644 --- a/lib/osf-components/addon/components/files/menu/template.hbs +++ b/lib/osf-components/addon/components/files/menu/template.hbs @@ -11,7 +11,7 @@ @onClick={{action dropdownMenu.toggle}} @type='success' > - +
diff --git a/lib/osf-components/addon/components/institution-carousel/styles.scss b/lib/osf-components/addon/components/institution-carousel/styles.scss index 2f55d2da18..9e1d9f047f 100644 --- a/lib/osf-components/addon/components/institution-carousel/styles.scss +++ b/lib/osf-components/addon/components/institution-carousel/styles.scss @@ -11,10 +11,14 @@ .left { composes: left from global; + transform: scale(2); + margin-top: -20px; } .right { composes: right from global; + transform: scale(2); + margin-top: -20px; } .InstitutionCarousel__item { diff --git a/lib/osf-components/addon/components/institution-carousel/template.hbs b/lib/osf-components/addon/components/institution-carousel/template.hbs index 23dbdda41b..244ddda929 100644 --- a/lib/osf-components/addon/components/institution-carousel/template.hbs +++ b/lib/osf-components/addon/components/institution-carousel/template.hbs @@ -6,8 +6,6 @@ @showIndicators={{false}} @prevControlLabel={{t 'general.previous'}} @nextControlLabel={{t 'general.next'}} - @prevControlIcon='fa fa-angle-left' - @nextControlIcon='fa fa-angle-right' @prevControlClassName={{local-class 'InstitutionCarousel__control left'}} @nextControlClassName={{local-class 'InstitutionCarousel__control right'}} @showControls={{this.showControls}} diff --git a/lib/osf-components/addon/components/node-card/node-icon/component.ts b/lib/osf-components/addon/components/node-card/node-icon/component.ts index 54dfc4fb8e..d0bb06689b 100644 --- a/lib/osf-components/addon/components/node-card/node-icon/component.ts +++ b/lib/osf-components/addon/components/node-card/node-icon/component.ts @@ -8,14 +8,14 @@ import defaultTo from 'ember-osf-web/utils/default-to'; import template from './template'; const iconMap: { [index: string]: string } = { - hypothesis: 'lightbulb-o', - 'methods and measures': 'pencil', + hypothesis: 'lightbulb', + 'methods and measures': 'pencil-alt', procedure: 'cogs', instrumentation: 'flask', data: 'database', software: 'laptop', project: 'cube', - analysis: 'bar-chart', + analysis: 'chart-bar', communication: 'comment', other: 'th-large', collection: 'cubes', @@ -24,7 +24,7 @@ const iconMap: { [index: string]: string } = { component: 'th-large', registeredComponent: 'th-large', link: 'link', - preprint: 'file-text', + preprint: 'file-alt', }; @layout(template) @@ -34,7 +34,7 @@ export default class NodeCardNodeIcon extends Component { @computed('category') get iconType(): string { - return iconMap[this.get('category')] || 'circle-o-notch'; + return iconMap[this.get('category')] || 'circle-notch'; } @className('text-muted', '') diff --git a/lib/osf-components/addon/components/node-category/component.ts b/lib/osf-components/addon/components/node-category/component.ts index 5db4a2f1b2..ecb4974f48 100644 --- a/lib/osf-components/addon/components/node-category/component.ts +++ b/lib/osf-components/addon/components/node-category/component.ts @@ -9,17 +9,17 @@ import { NodeCategory } from 'ember-osf-web/models/node'; import template from './template'; const categoryToIconMap: Record = { - analysis: 'bar-chart', + analysis: 'chart-bar', communication: 'comment', data: 'database', - hypothesis: 'lightbulb-o', + hypothesis: 'lightbulb', instrumentation: 'flask', - 'methods and measures': 'pencil', + 'methods and measures': 'pencil-alt', procedure: 'cogs', project: 'cube', software: 'laptop', other: 'th-large', - uncategorized: 'circle-o-notch', + uncategorized: 'circle-notch', }; @tagName('') diff --git a/lib/osf-components/addon/components/node-doi-create/template.hbs b/lib/osf-components/addon/components/node-doi-create/template.hbs index e656946150..f139607e03 100644 --- a/lib/osf-components/addon/components/node-doi-create/template.hbs +++ b/lib/osf-components/addon/components/node-doi-create/template.hbs @@ -1,5 +1,5 @@
- +

{{t 'registries.registration_metadata.mint_doi.header'}}

{{t 'registries.registration_metadata.mint_doi.text'}}

diff --git a/lib/osf-components/addon/components/node-navbar/template.hbs b/lib/osf-components/addon/components/node-navbar/template.hbs index 24e8a7a638..90b96ba62a 100644 --- a/lib/osf-components/addon/components/node-navbar/template.hbs +++ b/lib/osf-components/addon/components/node-navbar/template.hbs @@ -13,7 +13,7 @@ @onClick={{action this.toggleNav}} > {{t 'node_navbar.toggle'}} - + @@ -27,7 +27,7 @@
diff --git a/lib/osf-components/addon/components/osf-layout/registries-side-nav/icon/styles.scss b/lib/osf-components/addon/components/osf-layout/registries-side-nav/icon/styles.scss index 95102014f6..3d1b07c3df 100644 --- a/lib/osf-components/addon/components/osf-layout/registries-side-nav/icon/styles.scss +++ b/lib/osf-components/addon/components/osf-layout/registries-side-nav/icon/styles.scss @@ -1,7 +1,7 @@ .Icon { font-size: 20px; color: inherit; - margin-left: 10px; + margin-left: 6px; margin-top: 1px; text-align: start; } diff --git a/lib/osf-components/addon/components/osf-navbar/auth-dropdown/template.hbs b/lib/osf-components/addon/components/osf-navbar/auth-dropdown/template.hbs index 4961eae38b..6e4e69292e 100644 --- a/lib/osf-components/addon/components/osf-navbar/auth-dropdown/template.hbs +++ b/lib/osf-components/addon/components/osf-navbar/auth-dropdown/template.hbs @@ -31,7 +31,7 @@ data-analytics-name='MyProfile' @href={{this.profileURL}} > - + {{t 'auth_dropdown.my_profile'}} @@ -41,7 +41,7 @@ data-analytics-name='Support' @route='support' > - + {{t 'auth_dropdown.osf_support'}} @@ -51,7 +51,7 @@ data-analytics-name='Settings' @href={{this.settingsURL}} > - + {{t 'general.settings'}} @@ -63,7 +63,7 @@ @type='link' @onClick={{action 'logout'}} > - + {{t 'auth_dropdown.log_out'}} diff --git a/lib/osf-components/addon/components/osf-navbar/template.hbs b/lib/osf-components/addon/components/osf-navbar/template.hbs index f6b23577ec..8634d2477f 100644 --- a/lib/osf-components/addon/components/osf-navbar/template.hbs +++ b/lib/osf-components/addon/components/osf-navbar/template.hbs @@ -37,7 +37,7 @@ aria-label={{t 'navbar.other_views'}} @class={{concat 'btn-link ' (local-class 'PrimaryNav__toggle')}} > - {{fa-icon 'caret-down' size='2'}} + {{fa-icon 'caret-down' size='2x'}} {{#each this.services as |service|}} diff --git a/lib/osf-components/addon/components/registries/registration-form-navigation-dropdown/styles.scss b/lib/osf-components/addon/components/registries/registration-form-navigation-dropdown/styles.scss index 1288056763..6c51f97859 100644 --- a/lib/osf-components/addon/components/registries/registration-form-navigation-dropdown/styles.scss +++ b/lib/osf-components/addon/components/registries/registration-form-navigation-dropdown/styles.scss @@ -55,7 +55,7 @@ outline: 0; } - i { + svg { font-size: 1.1rem; } } diff --git a/lib/osf-components/addon/components/registries/registration-list/card/component.ts b/lib/osf-components/addon/components/registries/registration-list/card/component.ts index 9c84ddf0a6..3eba8ac239 100644 --- a/lib/osf-components/addon/components/registries/registration-list/card/component.ts +++ b/lib/osf-components/addon/components/registries/registration-list/card/component.ts @@ -6,7 +6,7 @@ const iconMap: Partial> = { [RegistrationReviewStates.Withdrawn]: 'ban', [RegistrationReviewStates.Accepted]: 'check', [RegistrationReviewStates.Rejected]: 'times', - [RegistrationReviewStates.PendingWithdraw]: 'clock-o', + [RegistrationReviewStates.PendingWithdraw]: 'clock', [RegistrationReviewStates.Embargo]: 'lock', }; diff --git a/lib/osf-components/addon/components/registries/registration-list/card/template.hbs b/lib/osf-components/addon/components/registries/registration-list/card/template.hbs index e12d187523..0f7586d9a8 100644 --- a/lib/osf-components/addon/components/registries/registration-list/card/template.hbs +++ b/lib/osf-components/addon/components/registries/registration-list/card/template.hbs @@ -6,7 +6,7 @@
diff --git a/lib/registries/addon/branded/discover/styles.scss b/lib/registries/addon/branded/discover/styles.scss index 339e64300f..4c457cdfd7 100644 --- a/lib/registries/addon/branded/discover/styles.scss +++ b/lib/registries/addon/branded/discover/styles.scss @@ -1,7 +1,7 @@ .BrandedRegistriesSearchResult { composes: RegistriesSearchResult from '../../discover/styles'; - i { + svg { color: var(--primary-color); } } diff --git a/lib/registries/addon/branded/moderation/submissions/template.hbs b/lib/registries/addon/branded/moderation/submissions/template.hbs index a85f69608e..d6c376d69c 100644 --- a/lib/registries/addon/branded/moderation/submissions/template.hbs +++ b/lib/registries/addon/branded/moderation/submissions/template.hbs @@ -65,7 +65,7 @@ {{on 'click' (fn this.changeTab 'pending_withdraw')}} local-class='tab {{if (eq this.state 'pending_withdraw') 'selected'}}' > - + {{t 'registries.moderation.states.pendingWithdraw'}}
diff --git a/lib/registries/addon/components/page-link/component.ts b/lib/registries/addon/components/page-link/component.ts index c2e92d8794..377adcf814 100644 --- a/lib/registries/addon/components/page-link/component.ts +++ b/lib/registries/addon/components/page-link/component.ts @@ -84,13 +84,13 @@ export default class PageLinkComponent extends Component { get pageIcon(): string { switch (this.pageState) { case PageState.Active: - return 'circle-o'; + return 'dot-circle'; case PageState.Unvisited: return 'circle'; case PageState.Invalid: return 'exclamation-circle'; case PageState.Valid: - return 'check-circle-o'; + return 'check-circle'; default: return ''; } diff --git a/lib/registries/addon/components/registration-form-view/styles.scss b/lib/registries/addon/components/registration-form-view/styles.scss index e01c94b5df..e13d822547 100644 --- a/lib/registries/addon/components/registration-form-view/styles.scss +++ b/lib/registries/addon/components/registration-form-view/styles.scss @@ -52,7 +52,7 @@ outline: 0; } - i { + svg { font-size: 1.1rem; } } diff --git a/lib/registries/addon/components/registries-header/styles.scss b/lib/registries/addon/components/registries-header/styles.scss index 57637378d2..3dabd06d46 100644 --- a/lib/registries/addon/components/registries-header/styles.scss +++ b/lib/registries/addon/components/registries-header/styles.scss @@ -2,6 +2,106 @@ padding: 30px 0; } +.ProviderDescription { + position: relative; + margin: 0 65px; + padding-top: 10px; + + :global(.ColorBlack) { + color: $color-text-black; + } + + :global(.ColorPureBlack) { + color: $color-black; + } + + :global(.ColorBlue) { + color: $color-blue; + } + + :global(.ColorPureBlue) { + color: $color-pure-blue; + } + + :global(.ColorGrey) { + color: $color-text-gray; + } + + :global(.ColorRed) { + color: $color-red; + } + + :global(.ColorGreen) { + color: $color-green; + } + + :global(.ColorYellow) { + color: $color-yellow; + } + + :global(.ColorTurquoise) { + color: $color-turquoise; + } + + :global(.ColorPurple) { + color: $color-purple; + } + + :global(.LinkColorBlack) { + a { + color: $color-link-black; + } + } + + :global(.LinkColorBlue) { + a { + color: $color-link-blue; + } + } + + :global(.LinkColorPureBlue) { + a { + color: $color-pure-blue; + } + } + + :global(.LinkColorGrey) { + a { + color: $color-grey; + } + } + + :global(.LinkColorRed) { + a { + color: $color-red; + } + } + + :global(.LinkColorGreen) { + a { + color: $color-green; + } + } + + :global(.LinkColorYellow) { + a { + color: $color-yellow; + } + } + + :global(.LinkColorTurquoise) { + a { + color: $color-turquoise; + } + } + + :global(.LinkColorPurple) { + a { + color: $color-purple; + } + } +} + .RegistriesHeader { color: #fff; @@ -66,3 +166,4 @@ color: var(--secondary-color); } } + diff --git a/lib/registries/addon/components/registries-header/template.hbs b/lib/registries/addon/components/registries-header/template.hbs index a1d94ebc9e..8dda47f375 100644 --- a/lib/registries/addon/components/registries-header/template.hbs +++ b/lib/registries/addon/components/registries-header/template.hbs @@ -52,7 +52,16 @@
- + {{#if @providerModel.htmlSafeDescription}} +
+
+ {{@providerModel.htmlSafeDescription}} +
+
+ {{/if}}
{{yield (hash row=(element ''))}}
diff --git a/lib/registries/addon/components/registries-metadata/template.hbs b/lib/registries/addon/components/registries-metadata/template.hbs index 96f8a8cbe6..8d082d1a26 100644 --- a/lib/registries/addon/components/registries-metadata/template.hbs +++ b/lib/registries/addon/components/registries-metadata/template.hbs @@ -77,6 +77,21 @@ + {{#if this.registration.iaUrl}} +
+

{{t 'registries.registration_metadata.internet_archive_link'}}

+
+ + {{this.registration.iaUrl}} + +
+
+ {{/if}} +
- + {{t 'auth_dropdown.osf_support'}} @@ -206,7 +206,7 @@ @type='link' @onClick={{action 'login'}} > - + {{t 'navbar.login'}} @@ -218,7 +218,7 @@ data-analytics-name='Donate' @href={{this.donateRoute}} > - + {{t 'navbar.donate'}} @@ -241,7 +241,7 @@ @type='link' @onClick={{action 'logout'}} > - + {{t 'auth_dropdown.log_out'}} diff --git a/lib/registries/addon/components/registries-registration-type-facet/component.ts b/lib/registries/addon/components/registries-registration-type-facet/component.ts index 52f0f3323c..e5cc26a413 100644 --- a/lib/registries/addon/components/registries-registration-type-facet/component.ts +++ b/lib/registries/addon/components/registries-registration-type-facet/component.ts @@ -43,8 +43,9 @@ export default class RegistriesRegistrationTypeFacet extends Component { @task({ withTestWaiter: true, on: 'init' }) fetchRegistrationTypes = task(function *(this: RegistriesRegistrationTypeFacet): any { try { - const metaschemas: RegistrationSchema[] = yield this.store.findAll('registration-schema'); - + const metaschemas: RegistrationSchema[] = yield this.store.query('registration-schema', { + 'page[size]': 100, + }); const metaschemaNames = metaschemas.mapBy('name'); if (!this.features.isEnabled(enableInactiveSchemas)) { metaschemaNames.push( diff --git a/lib/registries/addon/components/registries-states/component.ts b/lib/registries/addon/components/registries-states/component.ts index be868083c8..ca780bfb23 100644 --- a/lib/registries/addon/components/registries-states/component.ts +++ b/lib/registries/addon/components/registries-states/component.ts @@ -33,7 +33,7 @@ export default class RegistriesStates extends Component { case RegistrationReviewStates.PendingWithdrawRequest: case RegistrationReviewStates.PendingEmbargoTermination: case RegistrationReviewStates.PendingWithdraw: - return 'clock-o'; + return 'clock'; case RegistrationReviewStates.Embargo: return 'lock'; default: diff --git a/lib/registries/addon/components/registries-states/styles.scss b/lib/registries/addon/components/registries-states/styles.scss index afd37aec99..83dd1d303c 100644 --- a/lib/registries/addon/components/registries-states/styles.scss +++ b/lib/registries/addon/components/registries-states/styles.scss @@ -24,7 +24,7 @@ display: flex; justify-content: space-between; - i { + svg { margin-right: 15px; } } diff --git a/lib/registries/addon/components/registries-states/template.hbs b/lib/registries/addon/components/registries-states/template.hbs index 1a22c8ddf0..9e5ed865b9 100644 --- a/lib/registries/addon/components/registries-states/template.hbs +++ b/lib/registries/addon/components/registries-states/template.hbs @@ -16,7 +16,7 @@ > {{#if this.stateText}}
- +

{{this.stateText.short}}

- + {{#if @showText}} {{@medium}} {{/if}} diff --git a/lib/registries/addon/discover/controller.ts b/lib/registries/addon/discover/controller.ts index 0268b78185..4b621524a4 100644 --- a/lib/registries/addon/discover/controller.ts +++ b/lib/registries/addon/discover/controller.ts @@ -212,8 +212,8 @@ export default class Discover extends Controller.extend(discoverQueryParams.Mixi ]), })); - const osfProviders: RegistrationProviderModel[] = yield this.store.findAll('registration-provider', { - adapterOptions: { queryParams: { 'page[size]': 100 } }, + const osfProviders: RegistrationProviderModel[] = yield this.store.query('registration-provider', { + 'page[size]': 100, }); // Setting osfProviders on the share-search service diff --git a/lib/registries/addon/discover/styles.scss b/lib/registries/addon/discover/styles.scss index c440955d63..b2d78f70f3 100644 --- a/lib/registries/addon/discover/styles.scss +++ b/lib/registries/addon/discover/styles.scss @@ -1,13 +1,3 @@ -.ShareLogo { - background-size: contain !important; - background-repeat: no-repeat !important; - background: url('img/share-logo-white.png'); - display: inline-block; - height: 33px; - vertical-align: middle; - width: 69px; -} - .ResultsHeader { padding: 0 0 15px; @@ -36,7 +26,7 @@ font-weight: 400; } - i { + svg { color: var(--primary-color); } } diff --git a/lib/registries/addon/discover/template.hbs b/lib/registries/addon/discover/template.hbs index 254ea22971..d0af97f9da 100644 --- a/lib/registries/addon/discover/template.hbs +++ b/lib/registries/addon/discover/template.hbs @@ -6,25 +6,13 @@ data-analytics-scope='Registries Discover page' > - {{#registries-header + {{registries-header providerModel=this.providerModel showHelp=true value=(mut this.query) onSearch=(action 'onSearch') searchable=this.searchable - as |header|}} - {{#header.lead}} - {{t 'registries.discover.powered_by' }} - - {{/header.lead}} - {{/registries-header}} + }} {{#registries-discover-search results=this.results diff --git a/lib/registries/addon/drafts/draft/metadata/styles.scss b/lib/registries/addon/drafts/draft/metadata/styles.scss index 3cee59b4e0..d36ac1b547 100644 --- a/lib/registries/addon/drafts/draft/metadata/styles.scss +++ b/lib/registries/addon/drafts/draft/metadata/styles.scss @@ -125,7 +125,7 @@ border-radius: 16px; margin-bottom: 5px; - i { + svg { margin-left: -2px; } } diff --git a/lib/registries/addon/overview/-components/overview-topbar/template.hbs b/lib/registries/addon/overview/-components/overview-topbar/template.hbs index 667ad765aa..6ee1dc41f6 100644 --- a/lib/registries/addon/overview/-components/overview-topbar/template.hbs +++ b/lib/registries/addon/overview/-components/overview-topbar/template.hbs @@ -18,7 +18,7 @@ >

{{@titleText}} diff --git a/lib/registries/addon/overview/template.hbs b/lib/registries/addon/overview/template.hbs index 3a20fba331..3bf69cfd89 100644 --- a/lib/registries/addon/overview/template.hbs +++ b/lib/registries/addon/overview/template.hbs @@ -60,7 +60,7 @@ - @@ -72,7 +72,7 @@ @models={{array this.registration.id}} @icon='link' @label={{t 'registries.overview.links.title'}} @count={{this.linksCount}} /> more.`; }, allowSubmissions: true, brandedDiscoveryPage: true, diff --git a/mirage/factories/registration.ts b/mirage/factories/registration.ts index 40c4ba7821..baf2491b4c 100644 --- a/mirage/factories/registration.ts +++ b/mirage/factories/registration.ts @@ -149,6 +149,15 @@ export default NodeFactory.extend({ dateRegistered() { return faker.date.past(1, new Date(2019, 0, 0)); }, + + iaUrl() { + return faker.internet.url(); + }, + + providerSpecificMetadata() { + return []; + }, + registration: true, pendingRegistrationApproval: false, archiving: false, diff --git a/mirage/scenarios/default.ts b/mirage/scenarios/default.ts index 15ced3ede1..9fbfc0778f 100644 --- a/mirage/scenarios/default.ts +++ b/mirage/scenarios/default.ts @@ -108,6 +108,10 @@ function registrationScenario( reviewsState: RegistrationReviewStates.Pending, registeredBy: currentUser, currentUserPermissions: Object.values(Permission), + providerSpecificMetadata: [ + { field_name: 'EGAP Registration ID', field_value: '' }, + { field_name: 'Another Field', field_value: 'aloha' }, + ], }, 'withContributors', 'withReviewActions'); server.create('registration', { @@ -171,6 +175,7 @@ function registrationScenario( branchedFrom: draftNode, hasProject: false, license: licenseReqFields, + currentUserPermissions: Object.values(Permission), }, 'withSubjects', 'withAffiliatedInstitutions', 'withContributors'); server.create('draft-registration', { diff --git a/package.json b/package.json index 32839fbefd..b64120c6aa 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ember-osf-web", - "version": "21.1.1", + "version": "21.2.0", "description": "Ember front-end for the Open Science Framework", "license": "Apache-2.0", "author": "Center for Open Science ", @@ -54,6 +54,10 @@ "@ember/jquery": "^0.6.0", "@ember/optional-features": "^1.3.0", "@ember/render-modifiers": "^1.0.0", + "@fortawesome/free-regular-svg-icons": "^5.15.2", + "@fortawesome/free-solid-svg-icons": "^5.15.2", + "@fortawesome/ember-fontawesome": "^0.2.3", + "@fortawesome/free-brands-svg-icons": "^5.15.2", "@glimmer/component": "^1.0.0", "@glimmer/tracking": "^1.0.0", "@types/ace": "^0.0.42", @@ -145,7 +149,6 @@ "ember-faker": "^1.2.1", "ember-feature-flags": "^5.0.0", "ember-flatpickr": "^2.15.0", - "ember-font-awesome": "^3.1.0", "ember-g-recaptcha": "^1.0.0", "ember-get-config": "^0.2.4", "ember-in-viewport": "^3.7.3", diff --git a/tests/acceptance/guid-user/quickfiles-test.ts b/tests/acceptance/guid-user/quickfiles-test.ts index 5772216cb3..a050f8df63 100644 --- a/tests/acceptance/guid-user/quickfiles-test.ts +++ b/tests/acceptance/guid-user/quickfiles-test.ts @@ -331,8 +331,8 @@ module('Acceptance | Guid User Quickfiles', hooks => { await visit(`/--user/${currentUser.id}/quickfiles`); assert.dom('[data-test-file-item-link]').exists({ count: 1 }); - assert.dom('[data-test-file-icon-and-name]:first-child i') - .hasClass('fa-file-image-o'); + assert.dom('[data-test-file-icon-and-name]:first-child svg') + .hasClass('fa-file-image'); assert.dom(`[data-test-file-icon-and-name] a[href="/${file.guid}"]`) .exists(); assert.dom('[data-test-version-link]') diff --git a/tests/engines/registries/acceptance/branded/discover-test.ts b/tests/engines/registries/acceptance/branded/discover-test.ts index c6f7792b0a..eb96a69feb 100644 --- a/tests/engines/registries/acceptance/branded/discover-test.ts +++ b/tests/engines/registries/acceptance/branded/discover-test.ts @@ -37,6 +37,8 @@ module('Registries | Acceptance | branded.discover', hooks => { assert.dom('[data-test-source-filter-id]').isChecked('Provider facet checkbox is checked'); assert.dom('[data-test-source-filter-id]').isDisabled('Provider facet checkbox is disabled'); assert.dom('[data-test-link-other-registries]').exists('Link to other registries is shown'); + assert.dom('[data-test-provider-description]').containsText('Find out more', 'Provider description exists'); + assert.dom('[data-test-provider-description] a').exists('There is a link in the provider description'); assert.ok(document.querySelector('link[rel="icon"][href="fakelink"]')); }); diff --git a/tests/engines/registries/acceptance/draft/draft-test.ts b/tests/engines/registries/acceptance/draft/draft-test.ts index 11e2469a86..70919b3f4e 100644 --- a/tests/engines/registries/acceptance/draft/draft-test.ts +++ b/tests/engines/registries/acceptance/draft/draft-test.ts @@ -166,7 +166,7 @@ module('Registries | Acceptance | draft form', hooks => { // Metadata page assert.equal(currentRouteName(), 'registries.drafts.draft.metadata', 'Starts at metadata route'); assert.dom('[data-test-link="metadata"] > [data-test-icon]') - .hasClass('fa-circle-o', 'metadata is marked current page'); + .hasClass('fa-dot-circle', 'metadata is marked current page'); assert.dom('[data-test-link="1-first-page-of-test-schema"] > [data-test-icon]') .hasClass('fa-circle', 'page 1 is marked unvisited'); assert.dom('[data-test-link="2-this-is-the-second-page"] > [data-test-icon]') @@ -188,7 +188,7 @@ module('Registries | Acceptance | draft form', hooks => { assert.dom('[data-test-link="1-first-page-of-test-schema"] > [data-test-icon]') .hasClass('fa-circle', 'page 1 is marked unvisited'); assert.dom('[data-test-link="2-this-is-the-second-page"] > [data-test-icon]') - .hasClass('fa-circle-o', 'page 2 is marked as current page'); + .hasClass('fa-dot-circle', 'page 2 is marked as current page'); assert.dom('[data-test-link="review"] > [data-test-icon]') .hasClass('fa-circle', 'review is marked unvisited'); assert.dom('[data-test-goto-metadata]').doesNotExist(); @@ -202,9 +202,9 @@ module('Registries | Acceptance | draft form', hooks => { assert.dom('[data-test-link="metadata"] > [data-test-icon]') .hasClass('fa-exclamation-circle', 'metadata is marked visited, invalid'); assert.dom('[data-test-link="1-first-page-of-test-schema"] > [data-test-icon]') - .hasClass('fa-circle-o', 'page 1 is marked current page'); + .hasClass('fa-dot-circle', 'page 1 is marked current page'); assert.dom('[data-test-link="2-this-is-the-second-page"] > [data-test-icon]') - .hasClass('fa-check-circle-o', 'page 2 is marked visited, valid'); + .hasClass('fa-check-circle', 'page 2 is marked visited, valid'); assert.dom('[data-test-link="review"] > [data-test-icon]') .hasClass('fa-circle', 'review is marked unvisited'); assert.dom('[data-test-goto-metadata]').isVisible(); @@ -216,9 +216,9 @@ module('Registries | Acceptance | draft form', hooks => { // Navigate back to metadata await click('[data-test-link="metadata"]'); assert.dom('[data-test-link="metadata"] > [data-test-icon]') - .hasClass('fa-circle-o', 'metadata is marked current again'); + .hasClass('fa-dot-circle', 'metadata is marked current again'); assert.dom('[data-test-link="2-this-is-the-second-page"] > [data-test-icon]') - .hasClass('fa-check-circle-o', 'page 2 is marked visited, valid'); + .hasClass('fa-check-circle', 'page 2 is marked visited, valid'); assert.dom('[data-test-link="review"] > [data-test-icon]') .hasClass('fa-circle', 'review is marked unvisited'); assert.dom('[data-test-goto-metadata]').doesNotExist(); @@ -236,9 +236,9 @@ module('Registries | Acceptance | draft form', hooks => { assert.dom('[data-test-link="1-first-page-of-test-schema"] > [data-test-icon]') .hasClass('fa-exclamation-circle', 'page 1 is marked visited, invalid'); assert.dom('[data-test-link="2-this-is-the-second-page"] > [data-test-icon]') - .hasClass('fa-check-circle-o', 'page 2 is marked visited, valid'); + .hasClass('fa-check-circle', 'page 2 is marked visited, valid'); assert.dom('[data-test-link="review"] > [data-test-icon]') - .hasClass('fa-circle-o', 'review is marked current'); + .hasClass('fa-dot-circle', 'review is marked current'); assert.dom('[data-test-goto-metadata]').doesNotExist(); assert.dom('[data-test-goto-previous-page]').isVisible(); assert.dom('[data-test-goto-next-page]').doesNotExist(); @@ -434,7 +434,7 @@ module('Registries | Acceptance | draft form', hooks => { assert.dom('[data-test-link="1-first-page-of-test-schema"] > [data-test-icon]') .hasClass('fa-exclamation-circle', 'page 1 is marked visited, invalid'); assert.dom('[data-test-link="2-this-is-the-second-page"] > [data-test-icon]') - .hasClass('fa-check-circle-o', 'page 2 is marked visited, valid'); + .hasClass('fa-check-circle', 'page 2 is marked visited, valid'); }); test('review: contributor can remove herself', async assert => { @@ -743,14 +743,14 @@ module('Registries | Acceptance | draft form', hooks => { await visit(`/registries/drafts/${registration.id}/2`); assert.dom('[data-test-link="2-this-is-the-second-page"] > [data-test-icon]') - .hasClass('fa-circle-o', 'current page, not validated'); + .hasClass('fa-dot-circle', 'current page, not validated'); assert.dom('[data-test-link="1-first-page-of-test-schema"] > [data-test-icon]') .hasClass('fa-circle', 'page 1 is unvisited, not validated'); await click('[data-test-goto-review]'); assert.dom('[data-test-link="2-this-is-the-second-page"] > [data-test-icon]') - .hasClass('fa-check-circle-o', 'page 2 is marked visited, valid'); + .hasClass('fa-check-circle', 'page 2 is marked visited, valid'); assert.dom('[data-test-link="1-first-page-of-test-schema"] > [data-test-icon]') .hasClass('fa-exclamation-circle', 'page 1 is marked visited, invalid'); }); @@ -772,12 +772,12 @@ module('Registries | Acceptance | draft form', hooks => { await visit(`/registries/drafts/${registration.id}/1`); assert.dom('[data-test-link="1-first-page-of-test-schema"] > [data-test-icon]') - .hasClass('fa-circle-o', 'page 1 is current page'); + .hasClass('fa-dot-circle', 'page 1 is current page'); await click('[data-test-goto-next-page]'); assert.dom('[data-test-link="2-this-is-the-second-page"] > [data-test-icon]') - .hasClass('fa-circle-o', 'page 2 is current page'); + .hasClass('fa-dot-circle', 'page 2 is current page'); assert.dom('[data-test-link="1-first-page-of-test-schema"] > [data-test-icon]') .hasClass('fa-exclamation-circle', 'page 1 is validated, invalid'); }); @@ -1045,7 +1045,7 @@ module('Registries | Acceptance | draft form', hooks => { await visit(`/registries/drafts/${registration.id}/1`); assert.dom('[data-test-link="1-first-page-of-test-schema"] > [data-test-icon]') - .hasClass('fa-circle-o', 'on page 1'); + .hasClass('fa-dot-circle', 'on page 1'); // should validate pages even without user input await click('[data-test-goto-next-page]'); @@ -1070,6 +1070,6 @@ module('Registries | Acceptance | draft form', hooks => { await click('[data-test-goto-metadata]'); assert.dom('[data-test-link="1-first-page-of-test-schema"] > [data-test-icon]') - .hasClass('fa-check-circle-o', 'page 1 is now valid'); + .hasClass('fa-check-circle', 'page 1 is now valid'); }); }); diff --git a/tests/engines/registries/acceptance/overview/topbar-test.ts b/tests/engines/registries/acceptance/overview/topbar-test.ts index 6b61aee1a7..8b1089ef74 100644 --- a/tests/engines/registries/acceptance/overview/topbar-test.ts +++ b/tests/engines/registries/acceptance/overview/topbar-test.ts @@ -24,31 +24,31 @@ const registrationStates: Record { await visit(`/${reg.id}/`); assert.dom('[data-test-bookmarks-button]').isVisible(); - assert.dom('[data-test-bookmarks-button] i').hasClass('fa-bookmark-o'); + assert.dom('[data-test-bookmarks-button] svg').hasClass('fa-bookmark'); // Bookmark registration await triggerEvent('[data-test-bookmarks-button]', 'mouseenter'); @@ -116,7 +116,7 @@ module('Registries | Acceptance | overview.topbar', hooks => { ); await click('[data-test-bookmarks-button]'); - assert.dom('[data-test-bookmarks-button] i').hasClass('fa-bookmark'); + assert.dom('[data-test-bookmarks-button] svg').hasClass('fa-bookmark'); bookmarksColl.reload(); assert.ok(bookmarksColl.linkedRegistrationIds.includes(reg.id)); @@ -128,7 +128,7 @@ module('Registries | Acceptance | overview.topbar', hooks => { ); await click('[data-test-bookmarks-button]'); - assert.dom('[data-test-bookmarks-button] i').hasClass('fa-bookmark-o'); + assert.dom('[data-test-bookmarks-button] svg').hasClass('fa-bookmark'); bookmarksColl.reload(); assert.notOk(bookmarksColl.linkedRegistrationIds.includes(reg.id)); diff --git a/tests/engines/registries/integration/components/page-link/component-test.ts b/tests/engines/registries/integration/components/page-link/component-test.ts index 533b7f7fd4..59ca7c5792 100644 --- a/tests/engines/registries/integration/components/page-link/component-test.ts +++ b/tests/engines/registries/integration/components/page-link/component-test.ts @@ -84,7 +84,7 @@ module('Registries | Integration | Component | page-link', hooks => { assert.dom('[data-test-link="1-valid"]').exists('Valid PageLink Component renders'); assert.dom('[data-test-label]').containsText(pageManager.pageHeadingText, 'has proper label'); - assert.dom('[data-test-icon].fa-check-circle-o').exists('icon uses proper symbol'); + assert.dom('[data-test-icon].fa-check-circle').exists('icon uses proper symbol'); }); test('Renders an invalid page link', async function(this: TestContext, assert) { @@ -134,7 +134,7 @@ module('Registries | Integration | Component | page-link', hooks => { assert.dom('[data-test-link="6-active"]').exists('Active PageLink Component renders'); assert.dom('[data-test-label]').containsText(pageManager.pageHeadingText, 'has proper label'); - assert.dom('[data-test-icon].fa-circle-o').exists('icon uses proper symbol'); + assert.dom('[data-test-icon].fa-dot-circle').exists('icon uses proper symbol'); }); test('Renders an inactive named page link', async assert => { @@ -168,7 +168,7 @@ module('Registries | Integration | Component | page-link', hooks => { assert.dom('[data-test-link="foo"]').exists('PageLink Component renders'); assert.dom('[data-test-label]').containsText('Foo', 'has proper label'); - assert.dom('[data-test-icon].fa-circle-o').exists('icon uses proper symbol'); + assert.dom('[data-test-icon].fa-dot-circle').exists('icon uses proper symbol'); }); }); /* eslint-enable max-classes-per-file */ diff --git a/tests/integration/components/file-icon/component-test.ts b/tests/integration/components/file-icon/component-test.ts index 94dc905688..4ecdda643e 100644 --- a/tests/integration/components/file-icon/component-test.ts +++ b/tests/integration/components/file-icon/component-test.ts @@ -10,28 +10,125 @@ module('Integration | Component | file-icon', hooks => { test('default file icon', async function(assert) { this.set('item', EmberObject.create({})); await render(hbs`{{file-icon item=item}}`); - assert.dom('i').hasClass('fa-file-o'); + assert.dom('svg').hasClass('fa-file'); }); test('file type not found uses default', async function(assert) { const file = EmberObject.create({ itemName: 'file.notafiletype' }); this.set('item', file); await render(hbs`{{file-icon item=item}}`); - assert.dom('i').hasClass('fa-file-o'); + assert.dom('svg').hasClass('fa-file'); }); test('file doesnt have a type, uses default', async function(assert) { const file = EmberObject.create({ itemName: 'doesntevenhaveatypelikewow' }); this.set('item', file); await render(hbs`{{file-icon item=item}}`); - assert.dom('i').hasClass('fa-file-o'); + assert.dom('svg').hasClass('fa-file'); }); - test('file gets the right icon for type', async function(assert) { + test('file gets the right icon for type - code', async function(assert) { const file = EmberObject.create({ itemName: 'normalfilefornormalpeople.c' }); this.set('item', file); await render(hbs`{{file-icon item=item}}`); - assert.dom('i').hasClass('fa-file-code-o'); - assert.dom('i').doesNotHaveClass('fa-file-o'); + assert.dom('svg').hasClass('fa-file-code'); + assert.dom('svg').doesNotHaveClass('fa-file'); + }); + + test('file gets the right icon for type - image', async function(assert) { + const file = EmberObject.create({ itemName: 'normalfilefornormalpeople.jpg' }); + this.set('item', file); + await render(hbs`{{file-icon item=item}}`); + assert.dom('svg').hasClass('fa-file-image'); + assert.dom('svg').doesNotHaveClass('fa-file'); + }); + + test('file gets the right icon for type - pdf', async function(assert) { + const file = EmberObject.create({ itemName: 'normalfilefornormalpeople.pdf' }); + this.set('item', file); + await render(hbs`{{file-icon item=item}}`); + assert.dom('svg').hasClass('fa-file-pdf'); + assert.dom('svg').doesNotHaveClass('fa-file'); + }); + + test('file gets the right icon for type - word', async function(assert) { + const file = EmberObject.create({ itemName: 'normalfilefornormalpeople.docx' }); + this.set('item', file); + await render(hbs`{{file-icon item=item}}`); + assert.dom('svg').hasClass('fa-file-word'); + assert.dom('svg').doesNotHaveClass('fa-file'); + }); + + test('file gets the right icon for type - video', async function(assert) { + const file = EmberObject.create({ itemName: 'normalfilefornormalpeople.mp4' }); + this.set('item', file); + await render(hbs`{{file-icon item=item}}`); + assert.dom('svg').hasClass('fa-file-video'); + assert.dom('svg').doesNotHaveClass('fa-file'); + }); + + test('file gets the right icon for type - powerpoint', async function(assert) { + const file = EmberObject.create({ itemName: 'normalfilefornormalpeople.ppt' }); + this.set('item', file); + await render(hbs`{{file-icon item=item}}`); + assert.dom('svg').hasClass('fa-file-powerpoint'); + assert.dom('svg').doesNotHaveClass('fa-file'); + }); + + test('file gets the right icon for type - audio', async function(assert) { + const file = EmberObject.create({ itemName: 'normalfilefornormalpeople.mp3' }); + this.set('item', file); + await render(hbs`{{file-icon item=item}}`); + assert.dom('svg').hasClass('fa-file-audio'); + assert.dom('svg').doesNotHaveClass('fa-file'); + }); + + test('file gets the right icon for type - excel', async function(assert) { + const file = EmberObject.create({ itemName: 'normalfilefornormalpeople.xlsx' }); + this.set('item', file); + await render(hbs`{{file-icon item=item}}`); + assert.dom('svg').hasClass('fa-file-excel'); + assert.dom('svg').doesNotHaveClass('fa-file'); + }); + + test('file gets the right icon for type - text', async function(assert) { + const file = EmberObject.create({ itemName: 'normalfilefornormalpeople.txt' }); + this.set('item', file); + await render(hbs`{{file-icon item=item}}`); + assert.dom('svg').hasClass('fa-file-alt'); + assert.dom('svg').doesNotHaveClass('fa-file'); + }); + + test('file gets the right icon for type - provider', async function(assert) { + const file = EmberObject.create({ + itemName: 'normalfilefornormalpeople', + isProvider: true, + }); + this.set('item', file); + await render(hbs`{{file-icon item=item}}`); + assert.dom('svg').hasClass('fa-hdd'); + assert.dom('svg').doesNotHaveClass('fa-file'); + }); + + test('file gets the right icon for type - folder', async function(assert) { + const file = EmberObject.create({ + itemName: 'normalfilefornormalpeople', + isFolder: true, + }); + this.set('item', file); + await render(hbs`{{file-icon item=item}}`); + assert.dom('svg').hasClass('fa-folder'); + assert.dom('svg').doesNotHaveClass('fa-file'); + }); + + test('file gets the right icon for type - node', async function(assert) { + const file = EmberObject.create({ + itemName: 'normalfilefornormalpeople', + isNode: true, + }); + this.set('item', file); + await render(hbs`{{file-icon item=item}}`); + assert.dom('svg').hasClass('fa-cube'); + assert.dom('svg').doesNotHaveClass('fa-file'); }); }); diff --git a/translations/en-us.yml b/translations/en-us.yml index 26280cb17b..3fa7257731 100644 --- a/translations/en-us.yml +++ b/translations/en-us.yml @@ -1049,7 +1049,6 @@ registries: go_to_SHARE: 'Go to SHARE' registration_count: '{count, plural, =1 {# Registration} other {# Registrations}}' sort_by: 'Sort by' - powered_by: 'powered by' no_results: 'No results found.' try_broadening: 'Try broadening your search terms' error_loading: 'There was an error loading registrations' @@ -1160,6 +1159,7 @@ registries: disciplines: Disciplines edit_field: 'Edit {field}' license: License + internet_archive_link: 'Internet Archive link' metadata_page_heading: 'Registration Metadata' metadata_page_description: 'This metadata applies only to the registration you are creating, and will not be applied to your project.' no_affiliated_institutions: 'No affiliated institutions' diff --git a/yarn.lock b/yarn.lock index aaa6e49516..a36ebb2a0b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3192,6 +3192,70 @@ reflect-metadata "^0.1.12" tslib "^1.8.1" +"@fortawesome/ember-fontawesome@^0.2.3": + version "0.2.3" + resolved "https://registry.yarnpkg.com/@fortawesome/ember-fontawesome/-/ember-fontawesome-0.2.3.tgz#62d943d0771b8fe291aaed7a8a223c8d7d8b6f02" + integrity sha512-wRiP0k1D7J3ecQhrsGpg+j7PbrFOQtDsMuAUYpvbrh+hSmfO0TCbL/BkPRMtgUIvtJiIigomvQKsiGvPJsfSeQ== + dependencies: + "@fortawesome/fontawesome-svg-core" "^1.2.0" + broccoli-file-creator "^2.1.1" + broccoli-merge-trees "^4.2.0" + broccoli-plugin "^4.0.3" + broccoli-rollup "^4.1.1" + broccoli-source "^3.0.0" + camel-case "^4.1.1" + ember-ast-helpers "0.3.5" + ember-cli-babel "^7.21.0" + ember-cli-htmlbars "^5.2.0" + ember-get-config "^0.3.0" + find-yarn-workspace-root "^2.0.0" + glob "^7.1.2" + rollup-plugin-node-resolve "^5.2.0" + +"@fortawesome/fontawesome-common-types@^0.2.34": + version "0.2.34" + resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-0.2.34.tgz#0a8c348bb23b7b760030f5b1d912e582be4ec915" + integrity sha512-XcIn3iYbTEzGIxD0/dY5+4f019jIcEIWBiHc3KrmK/ROahwxmZ/s+tdj97p/5K0klz4zZUiMfUlYP0ajhSJjmA== + +"@fortawesome/fontawesome-svg-core@^1.2.0": + version "1.2.34" + resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-1.2.34.tgz#1d1a7c92537cbc2b8a83eef6b6d824b4b5b46b26" + integrity sha512-0KNN0nc5eIzaJxlv43QcDmTkDY1CqeN6J7OCGSs+fwGPdtv0yOQqRjieopBCmw+yd7uD3N2HeNL3Zm5isDleLg== + dependencies: + "@fortawesome/fontawesome-common-types" "^0.2.34" + +"@fortawesome/free-brands-svg-icons@^5.15.2": + version "5.15.2" + resolved "https://registry.yarnpkg.com/@fortawesome/free-brands-svg-icons/-/free-brands-svg-icons-5.15.2.tgz#d74e2540b5552b915d6bef719f17e361b70a8d65" + integrity sha512-YPlVjE1cEO+OJ9I9ay3TQ3I88+XkxMTYwnnddqAboxLhPNGncsHV0DjWOVLCyuAY66yPfyndWwVn4v7vuqsO1g== + dependencies: + "@fortawesome/fontawesome-common-types" "^0.2.34" + +"@fortawesome/free-regular-svg-icons@^5.15.2": + version "5.15.2" + resolved "https://registry.yarnpkg.com/@fortawesome/free-regular-svg-icons/-/free-regular-svg-icons-5.15.2.tgz#61eeb8c206e792c530eaa58279cc32c55332fe8f" + integrity sha512-Uv5NQCYjyisNVTu/1Xjs+z8vwQjbfT6hiqYvQNfF0n8qdgfWLM581bAfVMQ3BCs1SPy+eEUKNcGkK4n0FihFHg== + dependencies: + "@fortawesome/fontawesome-common-types" "^0.2.34" + +"@fortawesome/free-solid-svg-icons@^5.15.2": + version "5.15.2" + resolved "https://registry.yarnpkg.com/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-5.15.2.tgz#25bb035de57cf85aee8072965732368ccc8e8943" + integrity sha512-ZfCU+QjaFsdNZmOGmfqEWhzI3JOe37x5dF4kz9GeXvKn/sTxhqMtZ7mh3lBf76SvcYY5/GKFuyG7p1r4iWMQqw== + dependencies: + "@fortawesome/fontawesome-common-types" "^0.2.34" + +"@glimmer/compiler@^0.27.0": + version "0.27.0" + resolved "https://registry.yarnpkg.com/@glimmer/compiler/-/compiler-0.27.0.tgz#b24042752a53171d5cb3d9a95a29dfc0f314ed2c" + integrity sha1-skBCdSpTFx1cs9mpWinfwPMU7Sw= + dependencies: + "@glimmer/interfaces" "^0.27.0" + "@glimmer/syntax" "^0.27.0" + "@glimmer/util" "^0.27.0" + "@glimmer/wire-format" "^0.27.0" + simple-html-tokenizer "^0.3.0" + "@glimmer/component@^1.0.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@glimmer/component/-/component-1.0.0.tgz#f9052c8e99fb7b3d48d27c65891c5f0e59084a82" @@ -3234,6 +3298,13 @@ resolved "https://registry.yarnpkg.com/@glimmer/env/-/env-0.1.7.tgz#fd2d2b55a9029c6b37a6c935e8c8871ae70dfa07" integrity sha1-/S0rVakCnGs3psk16MiHGucN+gc= +"@glimmer/interfaces@^0.27.0": + version "0.27.0" + resolved "https://registry.yarnpkg.com/@glimmer/interfaces/-/interfaces-0.27.0.tgz#473cda3c8cca636989fb310b4ffdb8f14ffae5c9" + integrity sha1-RzzaPIzKY2mJ+zELT/248U/65ck= + dependencies: + "@glimmer/wire-format" "^0.27.0" + "@glimmer/interfaces@^0.30.5": version "0.30.5" resolved "https://registry.yarnpkg.com/@glimmer/interfaces/-/interfaces-0.30.5.tgz#9fd391ff4b9e4b29cf56495a2c3f5f660e45497a" @@ -3294,6 +3365,16 @@ "@glimmer/vm" "^0.42.2" "@glimmer/wire-format" "^0.42.2" +"@glimmer/syntax@^0.27.0": + version "0.27.0" + resolved "https://registry.yarnpkg.com/@glimmer/syntax/-/syntax-0.27.0.tgz#e53133727cf465a8787a07c7ea660a91689ebdc2" + integrity sha1-5TEzcnz0Zah4egfH6mYKkWievcI= + dependencies: + "@glimmer/interfaces" "^0.27.0" + "@glimmer/util" "^0.27.0" + handlebars "^4.0.6" + simple-html-tokenizer "^0.3.0" + "@glimmer/syntax@^0.30.5": version "0.30.5" resolved "https://registry.yarnpkg.com/@glimmer/syntax/-/syntax-0.30.5.tgz#763a631fccdb5ee2468269becd215752fc2361cc" @@ -3332,6 +3413,11 @@ "@glimmer/env" "^0.1.7" "@glimmer/validator" "^0.44.0" +"@glimmer/util@^0.27.0": + version "0.27.0" + resolved "https://registry.yarnpkg.com/@glimmer/util/-/util-0.27.0.tgz#e6e26779b4b7ced899ec376c7b949d0f16f92383" + integrity sha1-5uJnebS3ztiZ7Ddse5SdDxb5I4M= + "@glimmer/util@^0.30.5": version "0.30.5" resolved "https://registry.yarnpkg.com/@glimmer/util/-/util-0.30.5.tgz#97f3dcd4029f713c503371e1608e129a833a70e1" @@ -3369,6 +3455,13 @@ "@glimmer/interfaces" "^0.42.2" "@glimmer/util" "^0.42.2" +"@glimmer/wire-format@^0.27.0": + version "0.27.0" + resolved "https://registry.yarnpkg.com/@glimmer/wire-format/-/wire-format-0.27.0.tgz#1d1729814da57b99f2dbbe718f71456259484b11" + integrity sha1-HRcpgU2le5ny275xj3FFYllISxE= + dependencies: + "@glimmer/util" "^0.27.0" + "@glimmer/wire-format@^0.30.5": version "0.30.5" resolved "https://registry.yarnpkg.com/@glimmer/wire-format/-/wire-format-0.30.5.tgz#17d79a320b931950ac03887733e56ecc7bbd0a06" @@ -3908,6 +4001,13 @@ resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.3.tgz#7ee330ba7caafb98090bece86a5ee44115904c2c" integrity sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA== +"@types/resolve@0.0.8": + version "0.0.8" + resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-0.0.8.tgz#f26074d238e02659e323ce1a13d041eee280e194" + integrity sha512-auApPaJf3NPfe18hSoJkp8EbZzer2ISk7o8mCC3M9he/a04+gbMF97NkpD2S8riMGvm4BMRI59/SZQSaLTKpsQ== + dependencies: + "@types/node" "*" + "@types/rimraf@^2.0.2": version "2.0.4" resolved "https://registry.yarnpkg.com/@types/rimraf/-/rimraf-2.0.4.tgz#403887b0b53c6100a6c35d2ab24f6ccc042fec46" @@ -4762,6 +4862,19 @@ async-disk-cache@^1.2.1: rsvp "^3.0.18" username-sync "^1.0.2" +async-disk-cache@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/async-disk-cache/-/async-disk-cache-2.1.0.tgz#e0f37b187ed8c41a5991518a9556d206ae2843a2" + integrity sha512-iH+boep2xivfD9wMaZWkywYIURSmsL96d6MoqrC94BnGSvXE4Quf8hnJiHGFYhw/nLeIa1XyRaf4vvcvkwAefg== + dependencies: + debug "^4.1.1" + heimdalljs "^0.2.3" + istextorbinary "^2.5.1" + mkdirp "^0.5.0" + rimraf "^3.0.0" + rsvp "^4.8.5" + username-sync "^1.0.2" + async-each@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" @@ -5216,6 +5329,11 @@ babel-plugin-htmlbars-inline-precompile@^3.0.1: resolved "https://registry.yarnpkg.com/babel-plugin-htmlbars-inline-precompile/-/babel-plugin-htmlbars-inline-precompile-3.0.1.tgz#e1e38a4087f446578e419a21c112530c8df02345" integrity sha512-ZiFY0nQjtdMPGIDwp/5LYOs6rCr54QfcSV5nPbrA7C++Fv4Vb2Q/qrKYx78t+dwmARJztnOBlObFk4z8veHxNA== +babel-plugin-htmlbars-inline-precompile@^4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/babel-plugin-htmlbars-inline-precompile/-/babel-plugin-htmlbars-inline-precompile-4.2.1.tgz#9a367f8d7ecb9fb2c2e886edfe285caf7cb9766d" + integrity sha512-MCJXk+1R0YjlF/F52eDbhJTpsnqRVYsPYVP9d0jEu7E46AcRPEWDL5tfSweiQWHLKG017BIedATb91KcIoT3zA== + babel-plugin-istanbul@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz#e159ccdc9af95e0b570c75b4573b7c34d671d765" @@ -5705,7 +5823,7 @@ binary-extensions@^2.0.0: resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.0.0.tgz#23c0df14f6a88077f5f986c0d167ec03c3d5537c" integrity sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow== -"binaryextensions@1 || 2": +"binaryextensions@1 || 2", binaryextensions@^2.1.2: version "2.3.0" resolved "https://registry.yarnpkg.com/binaryextensions/-/binaryextensions-2.3.0.tgz#1d269cbf7e6243ea886aa41453c3651ccbe13c22" integrity sha512-nAihlQsYGyc5Bwq6+EsubvANYGExeJKHDO3RjnvwU042fawQTQfM3Kxn7IHUXQOz4bzfwsGYYHGSvXyW4zOGLg== @@ -6526,6 +6644,23 @@ broccoli-persistent-filter@^2.1.0, broccoli-persistent-filter@^2.1.1, broccoli-p sync-disk-cache "^1.3.3" walk-sync "^1.0.0" +broccoli-persistent-filter@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/broccoli-persistent-filter/-/broccoli-persistent-filter-3.1.2.tgz#41da6b9577be09a170ecde185f2c5a6099f99c4e" + integrity sha512-CbU95RXXVyy+eJV9XTiHUC7NnsY3EvdVrGzp3YgyvO2bzXZFE5/GzDp4X/VQqX+jsk4qyT1HvMOF0sD1DX68TQ== + dependencies: + async-disk-cache "^2.0.0" + async-promise-queue "^1.0.3" + broccoli-plugin "^4.0.3" + fs-tree-diff "^2.0.0" + hash-for-dep "^1.5.0" + heimdalljs "^0.2.1" + heimdalljs-logger "^0.1.7" + promise-map-series "^0.2.1" + rimraf "^3.0.0" + symlink-or-copy "^1.0.1" + sync-disk-cache "^2.0.0" + broccoli-plugin@1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/broccoli-plugin/-/broccoli-plugin-1.1.0.tgz#73e2cfa05f8ea1e3fc1420c40c3d9e7dc724bf02" @@ -6606,6 +6741,19 @@ broccoli-plugin@^4.0.2: rimraf "^3.0.0" symlink-or-copy "^1.3.0" +broccoli-plugin@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/broccoli-plugin/-/broccoli-plugin-4.0.3.tgz#9dcfbfb6a1b27a37cc22e65c071719ce9f92bc1e" + integrity sha512-CtAIEYq5K+4yQv8c/BHymOteuyjDAJfvy/asu4LudIWcMSS7dTn3yGI5gNBkwHG+qlRangYkHJNVAcDZMQbSVQ== + dependencies: + broccoli-node-api "^1.6.0" + broccoli-output-wrapper "^3.2.1" + fs-merger "^3.1.0" + promise-map-series "^0.2.1" + quick-temp "^0.1.3" + rimraf "^3.0.0" + symlink-or-copy "^1.3.0" + broccoli-postcss@^4.0.1: version "4.0.3" resolved "https://registry.yarnpkg.com/broccoli-postcss/-/broccoli-postcss-4.0.3.tgz#9a2839660888dc5544189fc7faa4552e6bfb72b0" @@ -7154,6 +7302,11 @@ builtin-modules@^1.0.0, builtin-modules@^1.1.1: resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" integrity sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8= +builtin-modules@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.2.0.tgz#45d5db99e7ee5e6bc4f362e008bf917ab5049887" + integrity sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA== + builtin-status-codes@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" @@ -7288,6 +7441,14 @@ callsites@^3.0.0: resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== +camel-case@^4.1.1: + version "4.1.2" + resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-4.1.2.tgz#9728072a954f805228225a6deea6b38461e1bd5a" + integrity sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw== + dependencies: + pascal-case "^3.1.2" + tslib "^2.0.3" + camelcase-css@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/camelcase-css/-/camelcase-css-1.0.1.tgz#157c4238265f5cf94a1dffde86446552cbf3f705" @@ -9261,6 +9422,14 @@ editions@^1.1.1: resolved "https://registry.yarnpkg.com/editions/-/editions-1.3.4.tgz#3662cb592347c3168eb8e498a0ff73271d67f50b" integrity sha512-gzao+mxnYDzIysXKMQi/+M1mjy/rjestjg6OPoYTtI+3Izp23oiGZitsl9lPDPiTGXbcSIk1iJWhliSaglxnUg== +editions@^2.2.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/editions/-/editions-2.3.1.tgz#3bc9962f1978e801312fbd0aebfed63b49bfe698" + integrity sha512-ptGvkwTvGdGfC0hfhKg0MT+TRLRKGtUiWGBInxOm5pz7ssADezahjCUaYuZ8Dr+C05FW0AECIIPt4WBxVINEhA== + dependencies: + errlop "^2.0.0" + semver "^6.3.0" + editor@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/editor/-/editor-1.0.0.tgz#60c7f87bd62bcc6a894fa8ccd6afb7823a24f742" @@ -9403,6 +9572,14 @@ ember-assign-polyfill@^2.6.0: ember-cli-babel "^6.16.0" ember-cli-version-checker "^2.0.0" +ember-ast-helpers@0.3.5: + version "0.3.5" + resolved "https://registry.yarnpkg.com/ember-ast-helpers/-/ember-ast-helpers-0.3.5.tgz#db72afd9bc3de03759720ff7b03d4e3b2c7f2351" + integrity sha512-ZtaGAUDvRX13G9D4t4WbTMhcUzqsw6KqhcHreIiZi3ZhRFlSZ3BumgyJ6buDZj+tCBLiQsxRv7l5AY6imqNR6Q== + dependencies: + "@glimmer/compiler" "^0.27.0" + "@glimmer/syntax" "^0.27.0" + ember-auto-import@^1.2.19: version "1.2.21" resolved "https://registry.yarnpkg.com/ember-auto-import/-/ember-auto-import-1.2.21.tgz#e02ded183844faba66c3f2af97028ef35175b837" @@ -10076,6 +10253,27 @@ ember-cli-htmlbars@^4.2.2: strip-bom "^4.0.0" walk-sync "^2.0.2" +ember-cli-htmlbars@^5.2.0: + version "5.3.2" + resolved "https://registry.yarnpkg.com/ember-cli-htmlbars/-/ember-cli-htmlbars-5.3.2.tgz#d0e1a4ccd2e7c6f91be51ea0cc1ef7650a9b67e7" + integrity sha512-S/spDVzBxkdMhnjiT6gG9xqpM9sT0Z7HskWSvSIAAW1sQsKPOCfRYp/1CqJ3+V5aX8ct0j5aHsdRanQYyHya2w== + dependencies: + "@ember/edition-utils" "^1.2.0" + babel-plugin-htmlbars-inline-precompile "^4.2.1" + broccoli-debug "^0.6.5" + broccoli-persistent-filter "^3.1.2" + broccoli-plugin "^4.0.3" + common-tags "^1.8.0" + ember-cli-babel-plugin-helpers "^1.1.1" + fs-tree-diff "^2.0.1" + hash-for-dep "^1.5.1" + heimdalljs-logger "^0.1.10" + json-stable-stringify "^1.0.1" + semver "^7.3.4" + silent-error "^1.1.1" + strip-bom "^4.0.0" + walk-sync "^2.2.0" + ember-cli-import-polyfill@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/ember-cli-import-polyfill/-/ember-cli-import-polyfill-0.2.0.tgz#c1a08a8affb45c97b675926272fe78cf4ca166f2" @@ -11033,17 +11231,6 @@ ember-focus-trap@^0.3.2: ember-modifier-manager-polyfill "^1.1.0" focus-trap "^5.0.1" -ember-font-awesome@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/ember-font-awesome/-/ember-font-awesome-3.1.1.tgz#f4bd5ece8e36417ae3ea76ca9bccfc96e5154d9a" - integrity sha1-9L1ezo42QXrj6nbKm8z8luUVTZo= - dependencies: - broccoli-funnel "^1.2.0" - chalk "^1.1.3" - ember-cli-babel "^6.6.0" - ember-cli-htmlbars "^2.0.2" - font-awesome "^4.7.0" - ember-g-recaptcha@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/ember-g-recaptcha/-/ember-g-recaptcha-1.0.0.tgz#974e75157a12b514da541836b2499866a8cd59f7" @@ -11059,6 +11246,14 @@ ember-get-config@^0.2.2, ember-get-config@^0.2.4: broccoli-file-creator "^1.1.1" ember-cli-babel "^6.3.0" +ember-get-config@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/ember-get-config/-/ember-get-config-0.3.0.tgz#a73a1a87b48d9dde4c66a0e52ed5260b8a48cfbd" + integrity sha512-0e2pKzwW5lBZ4oJnvu9qHOht4sP1MWz/m3hyz8kpSoMdrlZVf62LDKZ6qfKgy8drcv5YhCMYE6QV7MhnqlrzEQ== + dependencies: + broccoli-file-creator "^1.1.1" + ember-cli-babel "^7.0.0" + "ember-getowner-polyfill@^1.1.0 || ^2.0.0", ember-getowner-polyfill@^2.0.0, ember-getowner-polyfill@^2.0.1, ember-getowner-polyfill@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/ember-getowner-polyfill/-/ember-getowner-polyfill-2.2.0.tgz#38e7dccbcac69d5ec694000329ec0b2be651d2b2" @@ -11839,6 +12034,11 @@ entities@^1.1.1, entities@~1.1.1: resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== +errlop@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/errlop/-/errlop-2.2.0.tgz#1ff383f8f917ae328bebb802d6ca69666a42d21b" + integrity sha512-e64Qj9+4aZzjzzFpZC7p5kmm/ccCrbLhAJplhsDXQFs87XTsXwOpH4s1Io2s90Tau/8r2j9f4l/thhDevRjzxw== + errno@^0.1.3, errno@~0.1.7: version "0.1.7" resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" @@ -12942,6 +13142,13 @@ find-yarn-workspace-root@^1.1.0, find-yarn-workspace-root@^1.2.1: fs-extra "^4.0.3" micromatch "^3.1.4" +find-yarn-workspace-root@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/find-yarn-workspace-root/-/find-yarn-workspace-root-2.0.0.tgz#f47fb8d239c900eb78179aa81b66673eac88f7bd" + integrity sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ== + dependencies: + micromatch "^4.0.2" + findup-sync@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-2.0.0.tgz#9326b1488c22d1a6088650a86901b2d9a90a2cbc" @@ -13062,11 +13269,6 @@ follow-redirects@^1.0.0: resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.13.0.tgz#b42e8d93a2a7eea5ed88633676d6597bc8e384db" integrity sha512-aq6gF1BEKje4a9i9+5jimNFIpq4Q1WiwBToeRK5NvZBd/TRsmW8BsJfOEGkr76TbOyPVD3OVDN910EcUNtRYEA== -font-awesome@^4.7.0: - version "4.7.0" - resolved "https://registry.yarnpkg.com/font-awesome/-/font-awesome-4.7.0.tgz#8fa8cf0411a1a31afd07b06d2902bb9fc815a133" - integrity sha1-j6jPBBGhoxr9B7BtKQK7n8gVoTM= - for-in@^1.0.1, for-in@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" @@ -13253,6 +13455,18 @@ fs-merger@^3.0.1: rimraf "^2.6.3" walk-sync "^2.0.2" +fs-merger@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/fs-merger/-/fs-merger-3.1.0.tgz#f30f74f6c70b2ff7333ec074f3d2f22298152f3b" + integrity sha512-RZ9JtqugaE8Rkt7idO5NSwcxEGSDZpLmVFjtVQUm3f+bWun7JAU6fKyU6ZJUeUnKdJwGx8uaro+K4QQfOR7vpA== + dependencies: + broccoli-node-api "^1.7.0" + broccoli-node-info "^2.1.0" + fs-extra "^8.0.1" + fs-tree-diff "^2.0.1" + rimraf "^2.6.3" + walk-sync "^2.0.2" + fs-minipass@^1.2.5: version "1.2.7" resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7" @@ -14920,6 +15134,11 @@ is-interactive@^1.0.0: resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== +is-module@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591" + integrity sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE= + is-my-ip-valid@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-my-ip-valid/-/is-my-ip-valid-1.0.0.tgz#7b351b8e8edd4d3995d4d066680e664d94696824" @@ -15233,6 +15452,15 @@ istextorbinary@2.1.0: editions "^1.1.1" textextensions "1 || 2" +istextorbinary@^2.5.1: + version "2.6.0" + resolved "https://registry.yarnpkg.com/istextorbinary/-/istextorbinary-2.6.0.tgz#60776315fb0fa3999add276c02c69557b9ca28ab" + integrity sha512-+XRlFseT8B3L9KyjxxLjfXSLMuErKDsd8DBNrsaxoViABMEZlOSCstwmw0qpoFX3+U6yWU1yhLudAe6/lETGGA== + dependencies: + binaryextensions "^2.1.2" + editions "^2.2.0" + textextensions "^2.5.0" + isurl@^1.0.0-alpha5: version "1.0.0" resolved "https://registry.yarnpkg.com/isurl/-/isurl-1.0.0.tgz#b27f4f49f3cdaa3ea44a0a5b7f3462e6edc39d67" @@ -16538,6 +16766,13 @@ lower-case@^2.0.1: dependencies: tslib "^1.10.0" +lower-case@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28" + integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg== + dependencies: + tslib "^2.0.3" + lowercase-keys@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.0.tgz#4e3366b39e7f5457e35f1324bdf6f88d0bfc7306" @@ -17425,6 +17660,14 @@ no-case@^3.0.3: lower-case "^2.0.1" tslib "^1.10.0" +no-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d" + integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg== + dependencies: + lower-case "^2.0.2" + tslib "^2.0.3" + node-dir@^0.1.17: version "0.1.17" resolved "https://registry.yarnpkg.com/node-dir/-/node-dir-0.1.17.tgz#5f5665d93351335caabef8f1c554516cf5f1e4e5" @@ -18440,6 +18683,14 @@ parseurl@~1.3.2, parseurl@~1.3.3: resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== +pascal-case@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/pascal-case/-/pascal-case-3.1.2.tgz#b48e0ef2b98e205e7c1dae747d0b1508237660eb" + integrity sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + pascalcase@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" @@ -20313,6 +20564,17 @@ ripemd160@^2.0.0, ripemd160@^2.0.1: hash-base "^3.0.0" inherits "^2.0.1" +rollup-plugin-node-resolve@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/rollup-plugin-node-resolve/-/rollup-plugin-node-resolve-5.2.0.tgz#730f93d10ed202473b1fb54a5997a7db8c6d8523" + integrity sha512-jUlyaDXts7TW2CqQ4GaO5VJ4PwwaV8VUGA7+km3n6k6xtOEacf61u0VXwN80phY/evMcaS+9eIeJ9MOyDxt5Zw== + dependencies: + "@types/resolve" "0.0.8" + builtin-modules "^3.1.0" + is-module "^1.0.0" + resolve "^1.11.1" + rollup-pluginutils "^2.8.1" + rollup-pluginutils@^2.0.1, rollup-pluginutils@^2.8.1: version "2.8.2" resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz#72f2af0748b592364dbd3389e600e5a9444a351e" @@ -20605,7 +20867,7 @@ semver@^6.1.1, semver@^6.1.2, semver@^6.3.0: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -semver@^7.3.2: +semver@^7.3.2, semver@^7.3.4: version "7.3.4" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.4.tgz#27aaa7d2e4ca76452f98d3add093a72c943edc97" integrity sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw== @@ -20810,6 +21072,11 @@ simple-git@^1.85.0: dependencies: debug "^4.0.1" +simple-html-tokenizer@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/simple-html-tokenizer/-/simple-html-tokenizer-0.3.0.tgz#9b8b5559d80e331a544dd13dd59382e5d0d94411" + integrity sha1-m4tVWdgOMxpUTdE91ZOC5dDZRBE= + simple-html-tokenizer@^0.4.1: version "0.4.3" resolved "https://registry.yarnpkg.com/simple-html-tokenizer/-/simple-html-tokenizer-0.4.3.tgz#9b00b766e30058b4bb377c0d4f97566a13ab1be1" @@ -21771,6 +22038,17 @@ sync-disk-cache@^1.3.3: rimraf "^2.2.8" username-sync "^1.0.2" +sync-disk-cache@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/sync-disk-cache/-/sync-disk-cache-2.1.0.tgz#01e879edc41c34a01fcdda5b39d47dd496e154a6" + integrity sha512-vngT2JmkSapgq0z7uIoYtB9kWOOzMihAAYq/D3Pjm/ODOGMgS4r++B+OZ09U4hWR6EaOdy9eqQ7/8ygbH3wehA== + dependencies: + debug "^4.1.1" + heimdalljs "^0.2.6" + mkdirp "^0.5.0" + rimraf "^3.0.0" + username-sync "^1.0.2" + synchronous-promise@^2.0.6: version "2.0.10" resolved "https://registry.yarnpkg.com/synchronous-promise/-/synchronous-promise-2.0.10.tgz#e64c6fd3afd25f423963353043f4a68ebd397fd8" @@ -21969,7 +22247,7 @@ text-table@^0.2.0, text-table@~0.2.0: resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= -"textextensions@1 || 2": +"textextensions@1 || 2", textextensions@^2.5.0: version "2.6.0" resolved "https://registry.yarnpkg.com/textextensions/-/textextensions-2.6.0.tgz#d7e4ab13fe54e32e08873be40d51b74229b00fc4" integrity sha512-49WtAWS+tcsy93dRt6P0P3AMD2m5PvXRhuEA0kaXos5ZLlujtYmpmFsB+QvWUSxE1ZsstmYXfQ7L40+EcQgpAQ== @@ -22289,6 +22567,11 @@ tslib@^1.7.1, tslib@^1.8.0, tslib@^1.8.1: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a" integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ== +tslib@^2.0.3: + version "2.1.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.1.0.tgz#da60860f1c2ecaa5703ab7d39bc05b6bf988b97a" + integrity sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A== + tslint-consistent-codestyle@^1.11.1: version "1.16.0" resolved "https://registry.yarnpkg.com/tslint-consistent-codestyle/-/tslint-consistent-codestyle-1.16.0.tgz#52348ea899a7e025b37cc6545751c6a566a19077" @@ -22933,7 +23216,7 @@ walk-sync@^2.0.0, walk-sync@^2.0.1, walk-sync@^2.0.2: ensure-posix-path "^1.1.0" matcher-collection "^2.0.0" -walk-sync@^2.1.0: +walk-sync@^2.1.0, walk-sync@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/walk-sync/-/walk-sync-2.2.0.tgz#80786b0657fcc8c0e1c0b1a042a09eae2966387a" integrity sha512-IC8sL7aB4/ZgFcGI2T1LczZeFWZ06b3zoHH7jBPyHxOtIIz1jppWHjjEXkOFvFojBVAK9pV7g47xOZ4LW3QLfg==