All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
20.7.1 - 2020-07-22
- keen public pageviews logging
20.7.0 - 2020-07-01
- user metrics CSV export on the institutional dashboard
20.6.1 - 2020-06-29
- broken UI due to
ember-responsive
ignoring ourapp/breakpoints.ts
20.6.0 - 2020-06-26
- Upgrade to Ember 3.16
- Miscellaneous security and dependency upgrades
20.5.0 - 2020-06-03
- Components
institutions
dashboard/departments-panel
dashboard/institutional-users-list
dashboard/panel
dashboard/projects-panel
- Mirage
- Factories
institution-user
- Serializers
institution-user
- Factories
20.4.0 - 2020-05-26
- link to institutions
- wording of OSFInstitutions
- config to use
isTruthy
- draft-registration card component to remove progress-bar
- newline to "Read more" link
- logging API error messages
- CI template linting
- log API draft-registration submission error
- file links issue on overview page
20.3.1 - 2020-03-26
active
schemas filter parameter.
20.3.0 - 2020-03-23
- Ability to create/edit draft registration metadata to the Registries Submission workflow.
- Metadata to review page
20.2.1 - 2020-03-04
- log registration submit errors to sentry
20.2.0 - 2020-02-27
- Upgrade to Ember 3.15
- Miscellaneous bug fixes
20.1.0 - 2020-01-21
- Components
registries/schema-block-renderer/read-only/multi-select
registries/registration-form-navigation-dropdown
registries/overview-form-renderer
- Transforms
- registration-responses
- handle case where registration_responses is null
- registration-responses
- Componenets
registries/schema-block-renderer/read-only/mapper
- use
registries/schema-block-renderer/read-only/multi-select
- use
registries/draft-registration-manager
- use set to set registration responses
registries/schema-block-renderer/read-only/response
- preserve whitespace formatting in read-only response
files/menu
- use responsive-dropdown without trigger div
- prevent outside click from interrupting upload
files/upload-zone
- do not show toast error for ongoing "canceled" uploads
registries/schema-block-renderer/label/label-content
- add links to questions for review page
- Engines
registries
- Components
registries-metadata
- make contributors a link only for users with read access
- Components
- Models
registration
- apply
registration-responses
transform toregistrationResponses
- apply
- Serializers
registration
- normalize
registration_responses
- normalize
- Components
registries/review-form-renderer
- invoke
Registries::RegistrationFormNavigationDropdown
- invoke
registries/schema-block-renderer/label/label-content
- only render link to question when
@draftManager
is provided
- only render link to question when
registries/schema-block-renderer/read-only/files
- only attempt to show validation when
@changeset
is provided
- only attempt to show validation when
- Routes
developer-apps
- Components
client-secret
- PATCH to API when resetting client secret for developer app
- Components
- Engines
registries
- Routes
overview/index
- invoke
Registries::OverviewFormRenderer
instead ofRegistrationFormView
- invoke
- Routes
- Tests
- add percy snapshots for osf-navbar and registries-navbar
- DX
- use Node 10 and pin with Volta
- set EMBER_ENV=test when running tests
19.11.0 - 2019-12-16
- Components
institutions
dashboard/departments-panel
dashboard/institutional-users-list
dashboard/panel
dashboard/projects-panel
Registries::DraftRegistrationManager
Registries::SchemaBlockRenderer::Editable::Files
Registries::SchemaBlockRenderer::ReadOnly::Files
OsfLayout::RegistriesSideNav
OsfLayout::RegistriesSideNav::Icon
OsfLayout::RegistriesSideNav::Label
OsfLayout::RegistriesSideNav::XLink
PageLink
Debouncer
- Mirage
- Factories
institutional-user
- Serializers
institutional-user
- Factories
- Routes
institution
- added
dashboard
nested route
- added
guid-node
- added
drafts
nested route
- added
registries/drafts/draft
- added
metadata
nested route
- added
- Engines
- Components
drafts/draft/-components/register
- Routes
registries
drafts.draft
,draft/<draftId>
- index route redirects to
draft/<draftId>/1
- index route redirects to
drafts.draft.page
,draft/<draftId>/<page>
- Components
- Utils
page-param
- Tests
- Integration
draft-registration-manager
page-link
registries-side-nav
- Unit
page-param
- Acceptance
draft form
- Integration
- Environment
- Flags
- added
guid-node.drafts
route flag
- added
- Flags
- Packages
ember-element-helper
v0.2.0
-
Components
paginated-list
- added
isTable
attribute to use atable
over anul
- added
sort-button
- changed local
selected
classes to nested global classes
- changed local
registries/schema-block-renderer/editable/**
validated-input
- Modified components to take in
onInput
callback.- added
withStatSummary
trait
- added
- Modified components to take in
registries/partial-registration-modal
- added
onContinue
hook
- added
OsfLayout
- renamed
left-nav
toleft-nav-old
- created new
left-nav
that usesregistries-side-nav
- renamed
-
Mirage
- Factories
institution
- added
withInstitutionalUsers
trait
- added
- Scenarios
default
- added
SchemaBlock
node with files and contributors
- added
- Factories
-
Models
base-file-item
- added
createFolder
- added
draft-registration
- added
registrationResponses
- added
file
- added
toFileReference
- added
file-provider
- use
rootFolder
instead offiles
- added links
- use
institution
- added
currentUserIsAdmin
boolean - added
statSummary
object
- added
institutional-user
- added
userGuid
string
- added
registration
- changed
draftRegistration
to be a relationship - added
registrationResponses
- added
includedNodeIds
- added
createDoi
- added
draftRegistrationId
- removed
registrationChoice
- removed
liftEmbargo
- changed
registration-schema
- added
schemaBlocks
inverse
- added
schema-blocks
- added
schema
relationship - added
elementId
computed - added
pageRouteParam
computed
- added
-
Routes
institution
- moved to
index
folder
- moved to
registries.drafts.draft
- added navigation
registries.overview
- updated to use
leftNavOld
- updated to use
-
Types
- Renamed
PageResponse
toRegistrationResponse
- Renamed
-
Tests
schema-block-renderer
- added
files
block test
- added
-
Packages
- Update
eslint-config-airbnb-base
to 14.0.0
- Update
- Tests
- unit, component tests using
FactoryGuy
FactoryGuy
factories
- unit, component tests using
- Packages
ember-data-factory-guy
ember-element-helper
(fix-engines
branch)
- Types
FactoryGuy
types
19.10.0 - 2019-10-02
- Models
institutional-user
- Helpers
random-text
- generates random text
unique-id
- generate a unique-enough string for use in a DOM element's
id
- generate a unique-enough string for use in a DOM element's
has-validation-error
- check if a list of validator results contains a validation error
- Components
subjects/
browse
browse/animated-expand
browse/browse-manager
browse/item-list
browse/item
display
manager
manager/single
search
search/search-result
widget
editable-field/subject-field-manager
files/
browse
item
list
manager
selected-list
upload-zone
widget
registries/review-form-renderer
schema-block-renderer/
editable
read-only
- Validators
list
- apply a validator to a list
- Tests
- Unit
- helpers
has-validation-error
- validators
validateList
- helpers
- Integration
unique-id
random-text
Files::Widget
- Unit
- Ember Optional Features
template-only-glimmer-components
- Mirage
- Factories
subject
file-provider
- Serializers
subject
file-provider
- Views
provider-subjects
file
- Factories
- Types
ember-animated
- Packages
ember-animated
ember-element-helper
(fix-engines
branch)
- Handbook
Subjects::Widget
component to galleryFiles::Widget
component to galleryvalidateList
validatorhas-validation-error
helper
- Models
taxonomy
- renamed to
subject
and updated for new subjects-as-relationships architecture
- renamed to
node
- changed
subjects
attribute into a hasMany relationship
- changed
preprint
- changed
subjects
attribute into a hasMany relationship - removed
uniqueSubjects
computed property
- changed
preprint-provider
- changed
hasHighlightedSubjects
alias to usehighlighted_subjects
related link meta
- changed
provider
- renamed
taxonomies
hasMany relationship tosubjects
- renamed
highlightedTaxonomies
hasMany relationship tohighlightedSubjects
- renamed
file
- rename
node
belongsTo relationship totarget
- rename
- Serializers
taxonomy
- renamed to
subject
- renamed to
- Adapters
taxonomy
- renamed to
subject
- renamed to
- Components
editable-field
- use
osf-dialog
instead ofbs-modal
- pass
@fixedWidth
through toOsfDialog
- use
@manager.isSaving
to disable submit & cancel buttons category-manager
- expose
isSaving
as alias forsave.isRunning
- expose
description-manager
- expose
isSaving
as alias forsave.isRunning
- expose
institutions-manager
- expose
isSaving
as alias forsave.isRunning
- expose
license-manager
- expose
isSaving
as alias forsave.isRunning
- expose
publication-doi-manager
- expose
isSaving
as alias forsave.isRunning
- expose
tags-manager
- expose
isSaving
as alias forsave.isRunning
- expose
- use
node-category-picker
- remove
@renderInPlace={{true}}
fromPowerSelect
invocation
- remove
zoom-to-route
- remove
@renderInPlace={{true}}
fromPowerSelect
invocation
- remove
registries/registries-license-picker
- remove
@renderInPlace={{true}}
fromPowerSelect
invocation
- remove
registries/license-viewer
- use
osf-dialog
instead ofbs-modal
- use
file-icon
- folders should always use folder icon
sort-button
- suppress box-shadow when active
osf-dialog
- darken background overlay
registries/registries-metadata
- use
Subjects::Widget
andSubjects::Display
(and related managers) for subjects editable field
- use
schema-block-group-renderer
- take in renderStrategy as mapper
- take variable for
registrationResponses
schema-block-renderer
- broke components into
editable
andread-only
structures
- broke components into
- Tests
- renamed
taxonomy
tosubject
inpreprint-provider
FactoryGuy factory - Unit
adapters/taxonomy-test
renamed toadapters/subject-test
models/taxonomy-test
renamed tomodels/subject-test
serializers/taxonomy-test
renamed toserializers/subject-test
models/preprint-test
- removed test for
subject
attribute
- removed test for
- Integration
registries/schema-block-group-renderer
updated to includerenderStrategy
- renamed
- Mirage
- Factories
node
- removed
subjects
attribute - added
withFiles
trait
- removed
registration
- added
widthSubjects
trait
- added
file
- added
target
association - addded
asFolder
trait
- added
- Serializers
registration-provider
- added subjects related link
registration
- added subjects self and related links
file
- s/
node
/target
/ - added folder links
- s/
node
- added files link
- Views
osf-resource
- added self link patch handling
- Scenarios
registration
- create some subjects
handbook
- create a file tree for the handbook
- Factories
- Types
ember-changeset-validations
- added
ValidatorFunction
andValidatorResult
- added
- Config
- updated to use API version 2.16
- Packages
- upgrade to
[email protected]
- upgrade to
- Tests
taxonomy
FactoryGuy factory
- Components
home/support-section/support-item
- s/this./@/ because this is template-only
- added splattributes because this is template-only
registries/registries-advisory-board
- fixed template lint
- added splattributes because this is template-only
meetings/index/meetings-footer
- added splattributes because this is template-only
registries/registries-advisory-board
- added splattributes because this is template-only
registries/sharing-icons/popover
- added splattributes because this is template-only
- Handbook
osf-dialog
demo-is-open
needs component file because it mutsisOpen
19.9.0 - 2019-09-06
- Components
schema-chunk
- yields different types of schema-chunk pieceshierarchical-list
hierarchical-list/item
hieararchical-list/item-manager
partial-registration-modal
which implementshierarchical-list
partial-registration-modal/manager
- Tests
- Integration
hierarchical-list
partial-registration-modal
- Integration
- Components
project-contributors
- added
onAddContributor
hook
- added
osf-dialog
- add
@fixedWidth
param to prevent shrinking to fit contents
- add
- Engines
collections
- Tests
- added/improved test selectors to templates related to submit
- added/improved test selectors to templates related to discover
- improved submit acceptance tests to perform assertions in addition to taking snapshots
- improved update acceptance tests to perform assertions in addition to taking snapshots
- improved discover acceptance tests to perform assertions in addition to taking snapshots
- Tests
- Tests
- added
ember-basic-dropdown-wormhole
div to test index.html
- added
- Mirage
osfNestedResource
- added
onCreate
hook to perform additional operations after creating a child resource
- added
searchCollections
- added ability to filter by collection metadata
- added ability to sort collected items by dateModified
mirage/factories/node.ts
- modified the factory to set
root
to self by default
- modified the factory to set
mirage/views/utils/index.ts
- modified filter funtion to filter by model id
- Packages
- Components
osf-dialog
- fixed buggy behavior with
@isOpen
-- make it actually DDAU - fixed styles so it displays the same both in and out of the handbook
- clean up global state on destroy
- fixed buggy behavior with
- Engines
collections
- fixed template lint and use angle brackets in submission templates
- fixed template lint and use angle brackets in discover templates
submit
- reload bibliographicContributors when adding a contributor
- Mirage
osfNestedResource
- added custom
post
handler to fixcreate
action
- added custom
node/contributors
nested resource- conditionally create bibliographic contributors when creating contributors
- Factories
collected-metadatum
- allow manual setting of collection metadata
- Serializers
contributors
- serialize correct nested self link
- Serializers
relatedCounts
were not populated for resources loaded viastore.pushPayload
, which includes all embeds and results fromOsfModel.queryHasMany
- Helpers
range
- ember-composable-helpers already provides arange
that is better
19.8.0 - 2019-08-15
- Components
form-controls
- a form-input wrapper that takes a changesetread-only-contributors-list
- a read only list of a node's contributors with a link to contributors page for editing
- Models
schema-block
- for registration-schemas
- Modifiers
capture-element
- easily store an element from the template
- Models
collected-metadatum
- removed
subjects
validation - removed
subjects
attribute - removed
displaySubjects
computed
- removed
- Components
project-contributors/list
- add ability to load more pages of contributors
- add loading indicator
osf-dialog
- add
@isOpen
param for programmatic control - add
@isModal
param (defaulttrue
)
- add
- Engines
collections
- Components
collections-submission
- removed subjects sectiondiscover-page
- removed subject/taxonomy search filtercollection-search-result
- removed subjects display
- Routes
discover
- removed subject/taxonomy facet
- Components
- Components
subject-picker
- Engines
collections
- Components
collection-subjects-list
discover-page/facets/taxonomy
discover-page/active-filters/taxonomy
- Helpers
custom-taxonomy-filter
- Components
19.7.1 - 2019-08-05
- Services
analytics
- allow passing through ofnonIteraction
flag to Google Analytics
- Modifiers
trackScroll
- setnonInteraction
flag when callinganalytics.trackFromElement()
- Routes
home
- remove version and shorten analytics scope
19.7.0 - 2019-07-31
- Components
osf-dialog
- for dialog boxes and modal popup things
- Tests
- Acceptance
- collections
- discover page test that just takes snapshots
- submit test that just takes snapshot
- edit test that just takes snapshots
- collections
- Acceptance
- Components
osf-navbar
- use img tag with alt text for navbar OSF logo instead of background CSS image
- Services
analytics
- addedisWithdrawn
custom dimension totrackPage()
- Packages
ember-test-selectors
- Components
sign-up-policy
- fixed links to terms of service and privacy policy
19.6.1 - 2019-07-12
- Config:
- add waffle flag for
guid-user
route
- add waffle flag for
- Components:
home
testimonials
- link toguid-user
instead ofresolve-guid
19.6.0 - 2019-07-12
- Mirage:
- Factories:
collected-metadatum
collection-provider
taxonomy
- Serializers:
collected-metadatum
collection-provider
taxonomy
- Fixtures:
taxonomies
- Scenarios:
collection
- Views:
collection-provider-taxonomies
collection-search
- Endpoints:
/providers/collections
/providers/collections/:parentID/licenses/
/collections/:parentID/collected_metadata/
/providers/collections/:parentID/taxonomies
/search/collections/
- Factories:
- Models:
collected-metadatum
- changedguid
relationship to be anode
relationshipcollection-provider
- removedcollections
relatioshipcollection
- removed
provider
relationship inverse (collections
) - added
collectedMetadata
relationship
- removed
- Routes:
new-home
- renamed to
home
(replacing existinghome
route) - add scroll analytics and improve wording
- renamed to
- Engines:
collections
- updated
collection-item-picker
component to usecollectedMetadata
relationship - updated
collections-submission
component to set theguid
relationship to the node instead of the guid
- updated
- Tests:
- Acceptance:
new-home
- renamed tologged-out-homepage
(replacing existinglogged-out-homepage
test)
- Acceptance:
- Mirage:
- Factories:
collection
- add choices fields
- Serializers:
collection
- addprovider
andcollectedMetadata
relationships
- Views:
osf-resource
- add pass throughprocess()
toosfNestedResource
show
action
- Utils:
filter
- add ability to filter by a list of ids.
- Factories:
- Misc:
- add lang attribute to
html
element inindex.html
- add lang attribute to
19.5.1 - 2019-06-24
- Tests:
- Integration:
meetings
detail
meeting-detail-header
- add tests for location and dates
- Integration:
- Components:
new-home
testimonials
- A section for the testimonials carouselintegrations versions A/B
- A list of all supported integrations
carousel
- Components:
meetings
index
meetings-list
- sort by submission count (descending) by default
detail
meeting-submissions-list
- removed download count sorting
- Tests:
- Acceptance:
new-home
- Added tests to support integrations section
- Integration:
meetings
detail
meeting-submissions-list
- removed checking of download count sorting
- Acceptance:
meetings
detail
- add submission with long titleindex
- add meeting with long name
- Acceptance:
- Models:
meeting-submission
- renamedcreated
todateCreated
to match API
- Components:
meetings
detail
meeting-submissions-list
- renamed
created
todateCreated
to match API - applied
table-layout: fixed
to force truncating of long submission titles
- renamed
meeting-detail-header
- only attempt to display dates when defined
index
meetings-list
- appliedtable-layout: fixed
to force truncating of long meeting names
- Tests:
- Integration:
meetings
detail
meeting-submissions-list
- renamedcreated
todateCreated
to match API
- Integration:
- Mirage:
meeting-submission
factory - renamedcreated
todateCreated
to match API
19.5.0 - 2019-06-07
- Models:
meeting
- for OSF Meetingsmeeting-submission
- for OSF Meetings submissionsexternal-identity
- for connected identities
- Adapters:
meeting
- in private namespacemeeting-submission
- in private namespace, with custom urlforQuery and buildUrl methods.external-identity
- for connected identities
- Serializers:
meeting
meeting-submission
external-identity
- for connected identities
- Routes:
meetings
- parent route for meetingsmeetings.index
- meetings landing pagemeetings.detail
- meeting detail page
- Components:
get-started-button
- a button that takes you to the '/register' page.search-bar
- a search bar component that takes you to the search page.paginated-list/x-header
- a paginated list header closure componentbanners/view-only-link
- banner displayed when using a view-only linknew-home
hero-banner
- a banner to be used on the logged-out homepage.support-section
support-item
- an item on the support-section componentlearn-more-button
- a button that goes to the cos.io learn more page
meetings
index
meetings-hero-banner
- meetings landing page hero bannermeetings-list
- meetings list for the meetings index pagemeetings-footer
- meetings landing page footer
detail
meeting-detail-header
- meeting detail headermeeting-submissions-list
- meeting submissions list
settings
account
connected-identities
- connected identities component
- Helpers:
is-feature-enabled
- helper that checks if a feature flag is enabled
- Utilities:
leafVals
- get values of all leaves in an object treeclean-url
notFoundURL
- makes a URL suitable for anot-found
route'spath
param
map-keys
camelizeKeys
snakifyKeys
mapKeysAndValues
url-parts
splitUrl
joinUrl
addQueryParam
- adds a query param to a given URLaddPathSegment
- adds a path segment to a given URL
- Tests:
- Acceptance:
new-home
meetings/index
meetings/detail
view-only-link
registries/overview/view-only-link
- Integration:
get-started-button
search-bar
hero-banner
view-only-link
meetings
index
meetings-hero-banner
meetings-list
meetings-footer
detail
meeting-detail-header
meeting-submissions-list
settings
account
connected-identities
- Unit:
- utils:
leafVals
notFoundURL
(inclean-url
)camelizeKeys
(inmap-keys
)addPathSegment
(inurl-parts
)
- utils:
- Acceptance:
- Mirage:
meeting
factorymeeting-submission
factory- private
meetings
endpoint - meetings scenario
external-identities
factory and endpoint- add
external-identities
to settings scenario
- View-only link support:
- Add
view_only
query param toapplication
route - Store VOL info (token, anonymized) on
current-user
service - Include VOL token in all API requests, all links within OSF
- Add
- Types:
ember-a11y-testing
-a11yAudit
- DX:
- .vscode/settings.json
- Add
typescript.tsdk
setting so that VS Code uses workspace's TypeScript version by default.
- Add
- .vscode/settings.json
- Adapters:
osf-adapter
- added support for view-only links
- Controllers:
applicaton
- addedviewOnlyToken
query param
- Routes:
applicaton
- addedviewOnlyToken
query param
- Components:
osf-navbar
- detect active OSF service for any non-engine service
x-links/hyper-link/x-anchor
added support for view-only links
paginated-list
- add ability to provide a header row
- add splattributes to item
contributor-list
- display something useful when using an anonymized VOLosf-link
- added support for view-only linksosf-mode-footer
- add features tab for toggling feature flagsapp-components
license-text
- moved toosf-components
license-picker
- moved toosf-components
- Authenticators:
osf-cookie
- initialize any disabled feature flags found in config
- added support for view-only links
- Decorators:
checkAuth
- added support for view-only links
- Transforms:
node-license
- usecamelizeKeys
andsnakifyKeys
utils
- Services:
current-user
- added support for view-only links
- Utilities:
sparse-fieldsets
- usecamelizeKeys
andsnakifyKeys
utils
- Tests:
- Integration:
contributor-list
- add tests for anonymized nodes
- Integration:
- Mirage:
node
factory - added support for view-only linksroot
factory - added support for view-only links- default scenario - added meetings scenario
- Misc:
- ugrade dependencies (see package.json diff)
19.4.0 - 2019-04-25
- Features:
- Registries overview navigation menu (#600)
- Editable registration institutions (#617)
- Display registration wiki count (#625)
- Add
citation_doi
to<meta>
tags (#628)
- Components:
citation-viewer
- displays citations for a node (#608)
- Data:
Node.bibliographicContributors
relationship (#604)OsfModel.sparseHasMany
,sparseLoadAll
(#614)
- Utils:
- Sparse fieldset utils (#614)
- Components:
contributor-list
- display only bibliographic contributors (#604)
- Registries discover page - recognize links to registrations on test.osf.io (#597)
- Registration form rendering errors (#620)
- Allow withdrawing registrations without justification (#622)
- Position tooltips and footer correctly (#624, #626)
19.3.0 - 2019-04-18
- Addons:
ember-changesets
- Components:
institutions-widget
- has a list of institutions associated with a node. Has a modal to add/removeinstitutions-list
- shows a list of institutionsinstitution-select-list
- a checkbox list of institutions a user can selectplaceholder
circle
- a placeholder for circlular elements
- Routes:
new-home
- new logged out home page routesettings/account/change-password
- Panel for changing a user's passwordpassword-strength-bar
- Shows the strength of a given passwordsupport
- updated language and links
- Components
validated-model-form
- use changesets automatically
- Components
settings/account/request-export
osf-navbar/auth-dropdown
- make surecampaign
andnext
query params are included in link to register
19.2.0 - 2019-03-04
- Components:
ancestry-display
- display node ancestry breadcrumbssettings/account/default-region
- Panel for setting a user's default regionsettings.account.-components.request-deactivation
settings.account.-components.request-export
settings/account/-components/connected-emails
- a list of all emails connected to an account
- Utils:
getHref
- get an href from aLink
getRelatedHref
- get an href from aRelationship
tuple
- create a strictly-typed tuple
- Tests:
- Acceptance:
settings/account/connected-emails
- Integration:
ancestry-display
component
- Acceptance:
- Models:
osf-model
- use proper types forlinks
andrelationshipLinks
attributesfile
- extendlinks
types to include links specific to filesuser
- extendlinks
types to include links specific to usersdeveloper-app
- extendlinks
types to include links specific to developer appscollection
- improve types for choices fieldscollected-metadatum
- improve types for choice fieldsuser-setting
- AddedrequestExport()
function,deactivationRequested
field, andexport
linkosf-model
- use proper types for
links
andrelationshipLinks
attributes - added helper methods for creating and deleting M2M relationships:
createM2MRelationship
deleteM2MRelationship
- use proper types for
- Mirage:
- Slim down default scenario
- Allow different set of scenarios to run based on local settings with
MIRAGE_SCENARIOS
- types:
server.create(modelName, ...)
now looks up themodelName
in theModelRegistry
and properly types the return values asModelInstance<ModelFromTheRegistry>
and type checks any model properties passed in.- same as above, but for
server.createList
- traits now take a type argument (the model they are a trait for) which results in proper typing for
afterCreate(model, server)
without requiring manual typing of its args. - the
afterCreate
method of mirage factories is typed similarly to trait'safterCreate
normalizedRequestAttrs()
now requires the model name to be passed to ensure type safety
- Services
analytics
- allow toast-on-click to be used in production builds (when enabled in dev banner)
- Components
osf-link
- used to belink
@onClick
parameter used to be@onclick
<ContributorList>
- modified to take in different parametersnode
(required)shouldTruncate
(default true)shouldLinkUsers
(default false)
osf-mode-footer
- show dev banner based onconfig.showDevBanner
- Tests
- Using new
click
handler everywhere in main app to verifydata-analytics-name
usage
- Using new
- Travis
- Use a production build for handbook
- OSF API
- Bump version from 2.8 to 2.14
- Linting
- upgraded to latest versions of:
- eslint-plugin-typescript -> @typescript-eslint/eslint-plugin
- typescript-eslint-parser -> @typescript-eslint/eslint-parser (now a dep of @typescript-eslint/eslint-plugin)
- ember-cli-eslint (upgrade required to get eslint 5, for compatibility with @typescript-eslint/eslint-plugin)
- eslint-plugin-ember (upgrade required for compatibility with ember-cli-eslint)
- eslint-config-airbnb-base (upgrade required for compatibility with eslint 5)
- eslint-plugin-eslint-comments (upgrade required for compatibility with eslint 5)
- made style and config changes so that linting passes after above upgrades
- upgraded to latest versions of:
- Components:
global-link-to
<ContributorList>
- modified to take in different parametersnode
(required)shouldTruncate
(default true)shouldLinkUsers
(default false)
- Mirage:
DEFAULT_LOGGED_OUT
setting is now redundant
19.1.2 - 2019-02-12
- Utils:
transitionTargetURL
- clean guid routing path components from URLs
- Route Flags:
guid-node.index
->ember_project_detail_page
guid-registration.index
->ember_old_registration_detail_page
19.1.1 - 2019-02-11
- Router:
- check route flags on URL transitions (except for initial transition)
19.1.0 - 2019-01-23
- Addons:
loaders-css
- For animated loading indicators
- Components:
settings.account.-components.security
- Two-factor authentication panel.osf-button
- our new, use-everywhere button component
- Models:
user-setting
- Routes:
settings.account
- Styles:
- All styles from
osf-style
- All styles from
- Validators:
httpUrl
- validates that a string looks like an http url
- Addons:
- Components:
contributor-list
- takes an optional parametertruncated
- Models:
developer-app
- use customhttpUrl
validator for urls
- Templates:
no-implicit-this
template rule activated
- Types:
- upgrade to ember and ember-data 3.x types
- Addons:
osf-style
19.0.2 - 2019-01-08
- Routes
goodbye
- add page trackingguid-node.forks
- accurately report resource privacy and type when page trackingguid-node.registrations
- accurately report resource privacy and type when page trackingguid-registration.forks
- add page trackingguid-user.quickfiles
- add resource type to page trackingsettings.tokens.create
- add page trackingsettings.tokens.edit
- - add page trackingsettings.tokens.index
- add page tracking
- Engines:
analytics-page
- accurately report resource privacy and type when page tracking
19.0.1 - 2019-01-04
- Routes:
resolve-guid
- remove guid regex test because we have old guids that violate it
19.0.0 - 2019-01-03
- Addons:
ember-onbeforeunload
- Handle warnings if we have unsaved changes on a page
- Components:
new-project-navigation-modal
- For navigating away to nodes. Or not.
- Handbook:
new-project-modal
componentnew-project-navigation-modal
component
- Models:
user-email
- Routes:
settings.profile
- redirects tosettings.profile.name
settings.profile.education
settings.profile.employment
settings.profile.name
- Adds ability to change your name and name parts (with citation preview)settings.profile.social
- Tests:
- Integration:
settings.profile.name.-components.citation-preview
new-project-navigation-modal
- component integration test
- Acceptance:
settings.profile.name
guid-user/quickfiles
- acceptance tests around landing on the page and mostly move to project- Add percy everywhere in the main app
- Helpers:
require-auth
- Mocks currentUser service to verify that routes that require auth redirect if unauthenticated
- Integration:
- Types:
ember-power-select/test-support
- types for useful functions
- Travis
- Remove Firefox Testing
- Addons:
- Components:
node-navbar
- Choose links to display with the same logic as legacyvalidated-model-form
- Add an optional hook for onWillDestroysign-up-form
- acceptcampaign
as an optional argument and set on user-registration model
- Handbook:
validated-model-form
- Show how onWillDestroy works and use ember-onbeforeunload
- Models:
node
- added
wikiEnabled
boolean attribute - added
userHasReadPermission
computed property - renamed
currentUserCanEdit
computed property touserHasWritePermission
- renamed
currentUserIsAdmin
computed property touserHasAdminPermission
- added
user
- added validations for name fields
provider
- made partial assets acceptablepreprint-provider
- addeddocumentType
computed property for preprint word lookupuser-registration
- addedcampaign
property
- Routes:
settings
- redirects tosettings.profile.name
register
- add branding for registries and preprint providers
- Tests:
- improved integration tests for
node-navbar
component - Acceptance:
register
- acceptance tests for the sign up page
- improved integration tests for
- Adapters:
- Added
parentRelationship
property toosf-adapter
. Allows creating records at nested endpoints.
- Added
- Routes:
- Add email verification modal to application template
- Misc:
- Upgraded to
osf-style
1.8.0
- Upgraded to
18.2.2 - 2018-12-18
- Flags:
enable_inactive_schemas
- Components:
- regisitries:
registries-registration-type-facet
- only add ERPC schema whenenable_inactive_schemas
flag is off
- regisitries:
18.2.1 - 2018-12-18
- Mirage:
queryParamIsTruthy
util
- Routes:
guid-node.registrations
- add?filter[active]=true
when fetching registration schemas
- Mirage:
- use
queryParamIsTruthy
helper for boolean comparison
- use
18.2.0 - 2018-11-29
- Components:
sign-up-form
- Distinguish between alrteady registered and invalid (e.g. blacklisted) emails
- Models:
user-registration
- added invalid email validation andaddInvalidEmail
method
- Routes:
register
- let CAS redirect to ORCID
18.1.2 - 2018-11-05
- Engines:
registries/discover
- reset to first page on user search input
18.1.1 - 2018-11-05
- Routes:
guid-node/registrations
- fix sorting of registration schema on new registration modal
- Engines:
registries
- page resetting and scrolling fixes
- Components:
file-browser
- replaced project navigation modal withnew-project-navigation-modal
componentnew-project-modal
- Made it smarter and more reusableproject-selector
- replaced project creation modal withnew-project-modal
component
- Pages:
dashboard
- replaced project creation modal withnew-project-modal
component
- Tests:
dashboard
- acceptance tests related to project creation workflow
18.1.0 - 2018-10-30
- Components:
panel
- a general-use abstraction of bootstrap panelsvalidated-model-form
- wraps common logic for forms made withvalidated-input/*
- Tests:
panel
component integration test
- Handbook:
panel
component
- Mirage:
node
POST view to add currentUser as contributorregions
fixtureswb
view to move files from user or node to a node
- Routes:
settings.applications
- list of developer appssettings.applications.edit
settings.applications.create
- Decorators:
@layout(template, styles)
inember-osf-web/decorators/component
- Components:
loading-indicator
- added inline option
- Utilities:
fix-special-chars
- made case-insensitive
- Tests:
loading-indicator
- added tests for inline
- Handbook:
loading-indicator
- added examples for inline
- Mirage:
root
factory now adds all feature flags, not just route flagsuser
factory has 'withFiles' trait so non-current users can have files easilyuser
serializer has default_region relationship (hardcoded to us)
- Decorators:
@requiredAction
moved toember-osf-web/decorators/component
- Blueprints:
component
- use@layout
, don't addstyles.scss
or@localClassNames
- Flags:
ember_project_forks_page
-guid-node.forks
andguid-registration.forks
now always onember_project_analytics_page
-guid-node.analytics
andguid-registration.analytics
now always on
18.0.0 - 2018-10-24
- Models:
registration-schema
(including related adapter & serializer)token
scope
developer-app
- Components:
search-help-modal
- you know, the search help modal but as it's own componentdraft-registration-card
- summary card for draft registrationsnode-list
- produce a paginated list of nodes from a relationshipcopyable-text
- display some read-only text with a button to copy itvalidated-input/checkboxes
- list of checkboxes to choose what belongs in a has-many relationpaginated-list/all
- list of all models of a given typeosf-header
- the OSF navbar, various banners, and secondary navbar wormhole all wrapped up.hyper-link
- combineda
and{{link-to}}
based off theroute
passed in. Supports analytics as well.delete-button
- configurable delete button, including a confirmation modal and scientist nametags-widget
- you know, for tags
- Routes:
guid-node.registrations
- registrations tabsettings
- includes the settings side navsettings/tokens
- list of personal access tokenssettings/tokens/edit
settings/tokens/create
register
- sign up page
- Transforms:
fixstringarray
- similar tofixstring
transform (unencodes special characters), but for string arrays
- Utils:
param
- drop-in replacement for jQuery.param
- Helpers:
math
- A helper to render TeX statements using KaTeX
- Engines:
ember-osf-registries
- moved/upgraded into the registries enginecollections
- Add collections engine
- Tests:
guid-node/registrations
acceptance testtags-widget
component integration testregister
route acceptance testparam
util unit test
- Blueprints:
osf-model
- creates model, adapter, and serializer for an OSF model
- Types:
ember-cli-mirage
- the 70% that seems possible to express in typescript
- Handbook:
tags-widget
- added to the handbook
- Models:
osf-model
- addrelatedCounts
attribute andloadRelatedCounts()
methodregistration
- addarchiving
attribute andregistrationSchema
relationship, typedregisteredMeta
draft-registration
- change
registrationSchema
relationship type to beregistration-schema
- define inverse for
node
relationship asdraftRegistrations
instead ofnull
(required by ember-data 3.4)
- change
node
- added attributes:
preprint: boolean
,subjects: string[]
, andcurrentUserCanComment: boolean
- use
fixstringarray
transform fortags
attribute
- added attributes:
user
- mademiddleNames
string
(wasstring[]
), addedsuffix: string
,active: boolean
,social: {}
file
- usefixstringarray
transform fortags
attributepreprint
- define inverse fornode
relationship aspreprints
instead ofnull
(required by ember-data 3.4)
- Adapters:
draft-registration
- overrideurlForCreateRecord()
toPOST
tonodes/{guid}/draft_registrations
- Serializers:
osf-serializer
:- populate
relatedCounts
attribute from relationship meta - allow setting
serialize: true
for an attribute inFooSerializer.attrs
to guarantee the attribute will always be serialized, even when not dirty
- populate
- Services:
route-context
- added ability to pass query params tosetGuid()
/loadModel()
- Components:
file-renderer
- remove initialWidth MFR parameternode-blurb
- renamed tonode-card
node-card
- add
registration
type - add optional tags display
- use placeholder when
node
is not set - made tagless
- use
tags-widget
component instead ofember-tag-input
directly encodeURIComponent(tag)
when constructing tags search url- add
readOnly
argument to force-hide the dropdown controls
- add
node-navbar
- uselinkTo
for registrationspaginated-relation
renamed topaginated-list/has-many
- refactored to allow sharing functionality among different types of list
- add ability to specify placeholders, and pass actions to items for reloading the list
paginated-list/layout
, the shared layout component for the otherpaginated-list/*
paginated-list/all
, for listing all models of a given type
validated-input
- replaced{{validated-input type='foo'}}
with{{validated-input/foo}}
, since the interface varies by typevalidated-input/checkbox
validated-input/checkboxes
(new!)validated-input/date
validated-input/recaptcha
- added ability to bind action to reset recaptchavalidated-input/text
validated-input/textarea
osf-navbar
- modified to yield a list home links for engines to override, if requiredsign-up-form
- added submit task & user-registration model creationosf-navbar/auth-dropdown
- make Sign Up button transition to register route, if enabled
- Routes:
guid-node
- requestforks
,registrations
, anddraft_registrations
related counts when resolving guidguid-node/forks
- use placeholder for forks listguid-registration
- requestforks
related count when resolving guidguid-registration/forks
- use placeholder for forks listresolve-guid/resolved-guid-route
- pass-through query params torouteContext.setGuid()
guid-file
- usetags-widget
component instead ofember-tag-input
directlyhome
- remove submit task & user-registration model creation (moved tosign-up-form
component)
- Engines:
analytics-page
- setreadOnly=true
for node-cards in "links to this project" modal
- Tests:
- Removed captcha visibility assertions from logged-out home page test
- Handbook:
- Fix link styling, remove double underline
- Update ember-cli-addon-docs dependency
- Add info for dev-env, testing, visual style, and written style
- Misc:
- install
@cos-forks/ember-content-placeholders
- upgrade to ember(-(cli|data))@~3.4.0
- don't strip ember-test-selectors from production builds
- install
- DX:
- Have guid-like IDs for mirage factories (nodes and users to start)
- Disabled
space-infix-ops
eslint rule for .d.ts - Disabled
no-await-in-loop
eslint rule for tests - Made mirage factories TypeScript and type check them against Ember models
- TypeScripted mirage serializers
- Refactored mirage
node
views relationship lists into singlerelationshipList
function - Augmented mirage types
- Exported
AttributesFor
fromember-data
types - Defined
ember-data
AttributesFor
andRelationshipsFor
such that they only includestring
keys. - Improved osf-api types
- Fixed up types for
faker.list.cycle
/faker.list.random
- Disable
max-classes-per-file
tslint rule globally - Increase mirage support for:
- Non-relationship links
- Guid files
- Root user
- Mirage: pass through all requests on current domain
- Fix up template-lint rules for
ember-cli-template-lint
1.0- Configure the
attribute-indentation
rule to use 4 spaces and prevent lines > 120 chars - Enable
no-bare-strings
in place of the deprecatedbare-strings
rule - Disable
no-nested-interactive
which has replacednested-interactive
in the recommended ruleset
- Configure the
- Models:
metaschema
(including related adapter & serializer)
- Services:
file-manager
(including skipped tests and one unused reference)
- Components:
search-dropdown
(Unused)
0.7.0 - 2018-08-07
- Models:
region
- for storage i18n
- Components:
cookie-banner
- notify logged-out users the site uses cookies
- Feature Flags:
storage_i18n
- enable region selector on project creation
- Assets:
- images for home page
- images for dashboard
- Third-party Packages:
qunit-dom
- Better test assertions (especially for hidden things)ember-test-selectors
- Find things in your dom without messing everything up
- Tests:
dashboard
- more application tests
- Misc:
keen
metrics adapter configured for anonymized IP addresses- CSRF support on all ajax requests
- DX:
ember-cli-mirage
factories for users, nodes, contributors, and institutions- resources to the handbook
- Models:
node
- addregion
relationshipuser
- adddefaultRegion
relationship
- Components:
maintenance-banner
- set cookie on dismiss and check cookie before showingosf-footer
- remove Google Plus logo/link
- Services:
analytics
- support multiple metrics adapters
- Routes:
guid-node
- addjoin-osf-banner
home
- replace testimonial and use local assetsdashboard
- use local assets
- DX:
- enable sourcemap generation by default
0.6.1 - 2018-07-31
- local storage key used for
ember-simple-auth
0.6.0 - 2018-07-13
- Models:
banner
- used to fetch/_/banners/current/
from the API
- Components:
scheduled-banner
- display the "current" banner on the landing page(s)
- refactored feature flags to be loaded from API base (
/v2
) - check route feature flags in
Router._doTransition
instead ofRouter.willTransition
- Feature Flags:
ember_support_page
ember_home_page
0.5.2 - 2018-07-11
- Lazy engine title stealing
0.5.1 - 2018-07-10
- Missing analytics:
- Institutions landing page (page and event tracking)
- Dashboard filtering
- User quick files page (more event tracking)
- Quick files detail page (event tracking)
- Mirage/Tests:
- Factories (and supporting code) for Mirage and the Dashboard
- Dashboard application test
- Components:
simple-paginator
- use > and < instead of font-awesome chevrons
- Engines:
analytics
- set page title to "OSF | [node title] Analytics"
- DX:
- Test assertions: Collapse all whitespace characters to a single space
0.5.0 - 2018-06-29
- Routes:
guid-node.analytics
- analytics tab for nodesguid-registration.analytics
- analytics tab for registrations
- Components:
paginated-relation
- display a model's hasMany relationship as a paginated list
- Engines:
analytics
- engine for analytics tabs
- DX:
- Auto-deployment of handbook to GitHub pages on Travis
develop
branch builds
- Auto-deployment of handbook to GitHub pages on Travis
- Routes:
guid-node.forks
- usepaginated-relation
componentguid-registration.forks
- usepaginated-relation
component
- DX:
rootURL
is now configurable viaROOT_URL
environment variable- production builds will respect
MIRAGE_ENABLED
ember-cli-addon-docs
in handbook will useASSETS_PREFIX
to find assets
- Components:
node-navbar
- banner overlapping
0.4.1 - 2018-06-26
- Anonymize IPs sent to Google Analytics
0.4.0 - 2018-06-26
- Routes:
error-no-api
- display a friendly message when the API is not availableguid-node.forks
- forks tab for nodesguid-registration.forks
- forks tab for registrationsinstitutions
- institutions landing pageresolve-guid.forks
- handling for guid sub-route:forks
- Components:
delete-node-modal
- deletion of nodes with the name verification stepnode-blurb
- similar node previews all over the OSFsimple-paginator
- you know, for pagination
- Utils:
random-scientist
- to support thedelete-node modal
component
- Engines:
collections
- Routes:
application
- placeholderindex
- placeholderprovider
- placeholderprovider.discover
- placeholderprovider.submit
- placeholder
- Components:
test-component
- engine component example
- Routes:
- DX:
- ember-css-modules-stylelint
- ember-css-modules-reporter
- flag for enabling mirage in development mode
- developer handbook as in-repo engine
- custom component blueprint
- Components:
contributor-list
- modify to accept lists with linkssign-up-form
- only show captcha when all other form fields are validtos-consent-banner
- refactor to use ember-css-modules
- Models:
node
- addfork()
methoduser-registration
- add max length validation foremail1
- Misc:
- update OSF API version to 2.8
- refactor/simplify auth logic
- DX:
- make assets prefix configurable (defaults to
/ember_osf_web/
) - disable lint-on-build by default (enable with
LINT_ON_BUILD
) - disable sourcemap generation by default (enable with
SOURCEMAPS_ENABLED
) - convert remaining tests to TypeScript and modernize
- disable
no-restricted-globals
for type declaration files - enforce consistent spacing before function parens
- better code coverage reporting
zoom-to-guid
is nowzoom-to-route
- make assets prefix configurable (defaults to
- Models:
user-registration
- correct max length validation offullName
0.3.7 - 2018-06-08
- Skip test for showing ToS consent banner (will be re-enabled in develop)
0.3.6 - 2018-06-07
- Unset acceptedTermsOfService when falsy to avoid premature validation of consent checkbox
0.3.5 - 2018-05-29
- Allow acceptedTermsOfService to be null to avoid premature validation of consent checkbox
0.3.4 - 2018-05-25
- GDPR ToS banner (for existing users)
0.3.3 - 2018-05-24
- GDPR ToS consent checkbox
0.3.2 - 2018-05-17
- Keep Getting Started video modal closed after its dismissed
0.3.1 - 2018-05-08
- i18n locales are now enabled with
ENABLED_LOCALES
env variable
0.3.0 - 2018-05-03
- Node navbar: to accompany all node pages
- Status Banner: shows status messages
- Maintenance Banner: shows maintenance messages
- TypeScript: Add ember-cli-typescript and ember-cli-tslint
- CSS: Add
_typography.scss
with responsive font styling and_accessibility.scss
for accessibility-related styling - Addon: ember-a11y-testing
- Test: make sure all translations files contain all terms
- Use ember-decorators (first application:
institution-carousel
component) - Added isPublic, authenticated, and resource dimensions to trackPage()
- defaultTo utility for initializing component arguments
- Loading indicator to file-renderer component
- Join OSF banner
- toArray utility
- meta-tags service
- Test: make sure config types match actual config
- TypeScript: Rename files to .ts
- Modified several templates and css properties for increased accessibility
- Navbar to fit new styles in
osf-style
- Refactor handling of
embeds
inosf-serializer
- Update dashboard "new project" task to send only one request
- Moved analytics tracking to a Service
- Use meta-tags service to add meta-tags to Quick File detail
- Combine footer and copyright; simplify both while making more accessible
- Ember builds will now fail on TypeScript errors.
- Homegrown dirty relationship tracking, with automagic additional requests on save
- Contributor management methods on
user
model
0.2.0 - 2018-02-14
- Analytics tracking on all page transitions
- Ignore
order/properties-alphabetical-order
rule in stylelint. - Use latest ember-osf@develop (which includes Quick Files move-to-project)
- Inject jQuery properly in
file-share-button
dynamic iframe code
0.1.1 - 2018-02-08
- In the
file-share-button
component:- Use encoded download URL for MFR URL
- Build fileURL from config.OSF.url and guid instead of window.location
- Build mfrUrl from config.OSF.renderUrl instead of hard-coded
0.1.0 - 2018-02-07
- Quick Files