Skip to content
Merged
Show file tree
Hide file tree
Changes from 13 commits
Commits
Show all changes
79 commits
Select commit Hold shift + click to select a range
fca641a
adding new events for contributorRequest and contributorResponse
thinknoack Jul 24, 2025
fe7aca2
update to user notifications tab. TODO - filter by user specific status
thinknoack Jul 28, 2025
de8a768
updates to user notification tab/view. various resolver changes
thinknoack Jul 30, 2025
09dd158
adding comments I removed
thinknoack Jul 30, 2025
20c27b2
adding comments I removed
thinknoack Jul 30, 2025
0718006
adding comments I removed
thinknoack Jul 30, 2025
9a7d549
refactor into components
thinknoack Jul 30, 2025
32534f1
Merge branch 'master' into feature/request-contrib-role
thinknoack Jul 30, 2025
1b289d7
lint and test updates
thinknoack Jul 31, 2025
a3ed21e
adding button styling for contrib request button
thinknoack Jul 31, 2025
c5a57a9
minor test update
thinknoack Jul 31, 2025
d07aa13
remove comment
thinknoack Jul 31, 2025
5393faa
remove unused var
thinknoack Jul 31, 2025
ce92a03
Update packages/openneuro-app/src/scripts/dataset/mutations/dataset-e…
thinknoack Aug 11, 2025
2dee014
remove setTimeout from processContributorRequest
thinknoack Aug 11, 2025
03434de
consolidated event types into file
thinknoack Aug 11, 2025
ff8884a
move processedEvent enrichment to backend
thinknoack Aug 11, 2025
f2d2728
remove general perm check to check for orcid id in contributors array…
thinknoack Aug 11, 2025
f5293fe
lint type fixes
thinknoack Aug 11, 2025
6abbb23
Merge branch 'master' into feature/request-contrib-role
thinknoack Aug 19, 2025
8d9e564
feat: Add a user-specific virtual notification status to dataset even…
thinknoack Aug 19, 2025
d45affe
update comment
thinknoack Aug 19, 2025
3467259
text update
thinknoack Aug 19, 2025
dab42f4
updates to the notification tabs/queries/components that show counts …
thinknoack Aug 20, 2025
842ce8b
refactor after working on app
thinknoack Aug 20, 2025
2ddf73d
refactor after working on app
thinknoack Aug 20, 2025
ae715ce
lint updates
thinknoack Aug 21, 2025
da10192
updates to fix errors
thinknoack Aug 21, 2025
12760eb
lint updates
thinknoack Aug 21, 2025
4c1c45e
updates to fix errors
thinknoack Aug 21, 2025
40b4702
add null check for username
thinknoack Aug 21, 2025
83bd039
update dataset admin lookup and mongo pipeline
thinknoack Aug 25, 2025
11a33b0
update dataset admin lookup and mongo pipeline - saved
thinknoack Aug 25, 2025
e128193
Merge branch 'feat/api-profile-event-status' into feat/app-profile-ev…
thinknoack Aug 25, 2025
1346f4d
Revert "Merge branch 'feat/api-profile-event-status' into feat/app-pr…
thinknoack Aug 25, 2025
6dbecb8
update the pipline for notifications
thinknoack Aug 25, 2025
6ff6846
update user notifications to show events for dataset admins
thinknoack Aug 25, 2025
4f7fb79
Merge branch 'feat/api-profile-event-status' into feat/app-profile-ev…
thinknoack Aug 25, 2025
be9bd2f
remove admin from label it is confusing
thinknoack Aug 25, 2025
89b9fc8
Merge branch 'master' into feature/request-contrib-role
thinknoack Aug 27, 2025
263e54b
Merge branch 'feature/request-contrib-role' into feat/api-profile-eve…
thinknoack Aug 27, 2025
ca0263b
Merge branch 'feat/api-profile-event-status' into feat/app-profile-ev…
thinknoack Aug 27, 2025
6387e46
refactor: remove unnecessary dataset lookup
thinknoack Aug 29, 2025
f79d051
Merge branch 'feat/api-profile-event-status' into feat/app-profile-ev…
thinknoack Aug 29, 2025
9396eb9
Merge branch 'master' into feature/request-contrib-role
thinknoack Sep 2, 2025
efd130c
Merge branch 'feature/request-contrib-role' into feat/api-profile-eve…
thinknoack Sep 2, 2025
7ad9635
Merge branch 'feat/api-profile-event-status' into feat/app-profile-ev…
thinknoack Sep 2, 2025
f6e383d
snapshot update
thinknoack Sep 8, 2025
89894dd
adding mutation to update datacite and better datacite resolver
thinknoack Sep 15, 2025
fb5c753
adding datacite ui for updates to file
thinknoack Sep 15, 2025
9f47a47
ui/query updates for apollo cache
thinknoack Sep 16, 2025
51899be
api updates to manage apollo cache
thinknoack Sep 16, 2025
5f08cd9
Merge branch 'feature/datacite-mutation' into feature/datacite-mutati…
thinknoack Sep 16, 2025
bd404a1
update is admin hook to run outside of jsx, move contributor files an…
thinknoack Sep 16, 2025
8c6b4ed
update lints
thinknoack Sep 16, 2025
61a07f5
update lints
thinknoack Sep 16, 2025
626d3d9
Merge branch 'feature/datacite-mutation' into feature/datacite-mutati…
thinknoack Sep 16, 2025
0948621
test updates
thinknoack Sep 17, 2025
dbeff55
update tests
thinknoack Sep 17, 2025
03378b7
Merge branch 'feature/datacite-mutation' into feature/datacite-mutati…
thinknoack Sep 17, 2025
5146c15
update test to use contributor vs author
thinknoack Sep 17, 2025
d862772
remove comments
thinknoack Sep 17, 2025
485b049
remove comments
thinknoack Sep 17, 2025
d68cbdc
updates after review
thinknoack Sep 18, 2025
ea19cdd
Merge branch 'feature/datacite-mutation' into feature/datacite-mutati…
thinknoack Sep 18, 2025
57252e7
Merge pull request #3575 from OpenNeuroOrg/feature/datacite-mutation
nellh Sep 19, 2025
fb93188
adding additional ui test
thinknoack Sep 19, 2025
c46cbac
adding save test for contrib form row
thinknoack Sep 19, 2025
042f5dd
addign mutation for createContributorCitationEvent
thinknoack Sep 25, 2025
a6808ce
mutations for creating contributor-datacite events and processing the…
thinknoack Sep 30, 2025
42103f3
unused var
thinknoack Sep 30, 2025
2c37d57
lint/test updates for api
thinknoack Oct 1, 2025
8b1475c
update comments
thinknoack Oct 1, 2025
fb5f5d8
Merge pull request #3589 from OpenNeuroOrg/feature/user-event-flow-co…
nellh Oct 1, 2025
6aa33cd
Merge pull request #3578 from OpenNeuroOrg/app-contributor-tests
nellh Oct 1, 2025
d05bd93
Merge pull request #3576 from OpenNeuroOrg/feature/datacite-mutation-ui
nellh Oct 1, 2025
17d4e15
Merge branch 'feature/request-contrib-role' into feat/api-profile-eve…
nellh Oct 1, 2025
d04f236
Merge pull request #3548 from OpenNeuroOrg/feat/api-profile-event-status
nellh Oct 1, 2025
1ea7a13
Merge branch 'master' into feature/request-contrib-role
nellh Oct 1, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
72 changes: 36 additions & 36 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# docker compose versions
version: '2.3'
version: "2.3"

services:
# This dummy service provides shared configuration for all Node deps
Expand Down Expand Up @@ -30,7 +30,7 @@ services:
retries: 10
ports:
# HMR port
- '9992:9992'
- "9992:9992"
environment:
- NODE_ENV=development
depends_on:
Expand Down Expand Up @@ -76,7 +76,7 @@ services:
# mongodb
mongo:
image: docker.io/library/mongo:8
command: ['--replSet', 'rs0', '--bind_ip_all', '--port', '27017']
command: ["--replSet", "rs0", "--bind_ip_all", "--port", "27017"]
ports:
- 27017:27017
healthcheck:
Expand Down Expand Up @@ -107,20 +107,20 @@ services:
init: true
command:
[
'uvicorn',
'--host',
'0.0.0.0',
'--port',
'80',
'--reload',
'--factory',
'datalad_service.app:create_app',
'--workers',
'8',
'--timeout-keep-alive',
'30',
'--log-level',
'debug',
"uvicorn",
"--host",
"0.0.0.0",
"--port",
"80",
"--reload",
"--factory",
"datalad_service.app:create_app",
"--workers",
"8",
"--timeout-keep-alive",
"30",
"--log-level",
"debug",
]
networks:
default:
Expand All @@ -140,13 +140,13 @@ services:
env_file: ./config.env
init: true
command: [
'taskiq',
'worker',
'datalad_service.broker:broker',
'--tasks-pattern',
'datalad_service/tasks/*.py',
'--fs-discover',
'--reload'
"taskiq",
"worker",
"datalad_service.broker:broker",
"--tasks-pattern",
"datalad_service/tasks/*.py",
"--fs-discover",
"--reload",
]
depends_on:
redis:
Expand All @@ -169,12 +169,12 @@ services:
env_file: ./config.env
init: true
command: [
'taskiq',
'scheduler',
'datalad_service.broker.scheduler:scheduler',
'--tasks-pattern',
'datalad_service/tasks/*.py',
'--fs-discover',
"taskiq",
"scheduler",
"datalad_service.broker.scheduler:scheduler",
"--tasks-pattern",
"datalad_service/tasks/*.py",
"--fs-discover",
]
depends_on:
redis:
Expand All @@ -191,8 +191,8 @@ services:
volumes:
- ./nginx/nginx.dev.conf:/etc/nginx/conf.d/default.conf:ro
ports:
- '8110:8110'
- '9876:80'
- "8110:8110"
- "9876:80"
depends_on:
server:
condition: service_healthy
Expand All @@ -206,7 +206,7 @@ services:
platform: ${ES_PLATFORM}
environment:
discovery.type: single-node
cluster.routing.allocation.disk.threshold_enabled: 'true'
cluster.routing.allocation.disk.threshold_enabled: "true"
cluster.routing.allocation.disk.watermark.flood_stage: 1gb
cluster.routing.allocation.disk.watermark.low: 10gb
cluster.routing.allocation.disk.watermark.high: 5gb
Expand All @@ -217,10 +217,10 @@ services:
security_opt:
- seccomp=${SECOMP}
healthcheck:
test: 'curl -s -f http://localhost:9200 || exit 1'
test: "curl -s -f http://localhost:9200 || exit 1"
interval: 10s
timeout: 5s
retries: 3
ports:
- '9200:9200'
- '9300:9300'
- "9200:9200"
- "9300:9300"
15 changes: 15 additions & 0 deletions packages/openneuro-app/src/scripts/components/button/button.scss
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
line-height: 1.4em;
}


.on-button--primary {
color: #fff;
background-color: var(--current-theme-primary);
Expand Down Expand Up @@ -40,6 +41,20 @@
border-color: $on-light-green;
}
}
.on-button--ghost {
color: $on-dark-aqua;
background-color: transparent;
text-transform: uppercase;
transition: background-color 0.3s;
box-shadow:none;
border: 2px solid transparent;
&:hover,
&.active {
background-color: transparent;
color: $on-dark-aqua;
border: 2px solid $on-dark-aqua;
}
}

.icon-text {
display: flex;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,11 @@ exports[`Comment component > renders an ORCID user comment 1`] = `
class="row comment-header"
>
By
Example Exampler
<a
href="/user/1234-5678-9101"
>
Example Exampler
</a>

<a
href="https://sandbox.orcid.org/1234-5678-9101"
Expand Down Expand Up @@ -86,7 +90,11 @@ exports[`Comment component > renders an ORCID user comment 1`] = `
class="row comment-header"
>
By
Example Exampler
<a
href="/user/1234-5678-9101"
>
Example Exampler
</a>

<a
href="https://sandbox.orcid.org/1234-5678-9101"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import React from "react"
import { render } from "@testing-library/react"
import { MemoryRouter } from "react-router-dom"
import Comment from "../comment.jsx"
import formatDistanceToNow from "date-fns/formatDistanceToNow"

Expand All @@ -14,38 +15,42 @@ describe("Comment component", () => {
formatDistanceToNow.mockReturnValueOnce("almost 2 years")

const wrapper = render(
<Comment
data={{
id: "9001",
text: emptyState,
user: {
id: "1234",
email: "[email protected]",
name: "Example Exampler",
},
createDate: new Date("2019-04-02T19:56:41.222Z").toISOString(),
}}
/>,
<MemoryRouter>
<Comment
data={{
id: "9001",
text: emptyState,
user: {
id: "1234",
email: "[email protected]",
name: "Example Exampler",
},
createDate: new Date("2019-04-02T19:56:41.222Z").toISOString(),
}}
/>
</MemoryRouter>,
)
expect(wrapper).toMatchSnapshot()
})
it("renders an ORCID user comment", () => {
formatDistanceToNow.mockReturnValueOnce("almost 2 years")

const wrapper = render(
<Comment
data={{
id: "9001",
text: emptyState,
user: {
id: "1234",
email: "[email protected]",
name: "Example Exampler",
orcid: "1234-5678-9101",
},
createDate: new Date("2019-04-02T19:56:41.222Z").toISOString(),
}}
/>,
<MemoryRouter>
<Comment
data={{
id: "9001",
text: emptyState,
user: {
id: "1234",
email: "[email protected]",
name: "Example Exampler",
orcid: "1234-5678-9101",
},
createDate: new Date("2019-04-02T19:56:41.222Z").toISOString(),
}}
/>
</MemoryRouter>,
)
expect(wrapper).toMatchSnapshot()
})
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
import React from "react"
import styles from "./scss/dataset-events.module.scss"

interface AdminNoteFormProps {
newEvent: { note: string }
setNewEvent: (event: React.ChangeEvent<HTMLTextAreaElement>) => void
handleAddEvent: () => void
}

export const AdminNoteForm: React.FC<AdminNoteFormProps> = ({
newEvent,
setNewEvent,
handleAddEvent,
}) => (
<div className={styles.addEventForm}>
<textarea
placeholder="Admin note"
value={newEvent.note}
onChange={setNewEvent}
/>
<button
className="on-button on-button--small on-button--primary"
onClick={handleAddEvent}
>
Save Admin Note
</button>
</div>
)
Loading