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.
- 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
- Addons:
- Components:
contributor-list
- takes an optional parametertruncated
- Templates:
no-implicit-this
template rule activated
- Types:
- upgrade to ember and ember-data 3.x types
- Addons:
osf-style
- 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
- Routes:
resolve-guid
- remove guid regex test because we have old guids that violate it
- 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
- Flags:
enable_inactive_schemas
- Components:
- regisitries:
registries-registration-type-facet
- only add ERPC schema whenenable_inactive_schemas
flag is off
- regisitries:
- Mirage:
queryParamIsTruthy
util
- Routes:
guid-node.registrations
- add?filter[active]=true
when fetching registration schemas
- Mirage:
- use
queryParamIsTruthy
helper for boolean comparison
- use
- 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
- Engines:
registries/discover
- reset to first page on user search input
- 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
- 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
- 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