Development - #1285
Merged
Merged
Conversation
feat: enable CAS based import & extend molecule:clean to query for CAS metadata
* feat: refactor support bubble to block spamming. - use google recaptcha v3 for bot detection - implement rate limiting on support bubble submissions - add server-side validation for gibberish content * copilot review comment fix * decrease the ratelimit * fix: tidy up recaptcha from composer * fix: composer warning suppressed, psr-5 warning resolved --------- Co-authored-by: Venkata Nainala <mailcs76@gmail.com>
* configure laravel CSP * include composer.lock changes * fix pinting issues * Update app/Support/Csp/Policies/NmrxivPolicy.php Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * fix pinting issues * Apply suggestion from @Copilot Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * fix pinting issues * fix: moved csp-report endpoint to admin routes and removed unused socialite orcid package * chore: pint updates * fix: ziggyvue import updates and also added link to the csp-report in the admin view * chore: prettier formating added * build dev image for CSP --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Chandu Nainala <mailcs76@gmail.com>
remove the ziggy.js file
…s dashboard (#1277) * feat: Enable search and filtering on projects dashboard - update code to unify project badge logic - move the project badge to a reusable component * prettier formating * run prettier * copilot review changes * add one time command to update project statuses * fix: unmatched return type error fix * fix: style changes to filter button * fix: manifest json regenerated * chore: pint formatting changes * fix: composer update * fix: npm audit fixes --------- Co-authored-by: Venkata Nainala <mailcs76@gmail.com>
* fix: modify nmrxiv policy to fix csp issues * fix:remove single policy addition and make multiple additions for font-src directive * pint formatting * updated policy to include missing directives * update ORCID API endpoint in csp policy * more formatting and removal of duplicates. * NMRIUM_URL * add nmrium in frame-src and connect-src directives * revert dev build tag change * revert missing tags for dev-latest images * deploy latest csp changes * fix:revert dev-build changes
* add test coverage workflow * add .env.ci * use postgres instead of mysql for testing * add meilisearch test config and adjust redis to local for ci * remove healtchecks for redis and meilisearch services * fix the db mismatch issues in CI * fix filesystem driver issue * rectify .env file name * add .env.ci.test with correct DB_PASSWORD * skip ELNSubmissionTrackingTest.php test that requires external API access in CI environment * ELNSubmissionTrackingTest * fixx failing tests * update Code cov token * update test-coverage workflow and .env.ci.test * fix LicenseFactory issue * update composer install command and revert license factory changes * fix env for mielisearch in ci * run test for every commit/sync/pr/merge to dev and main branch * linting fix * skip ELNSubmissionTrackingTest and allow read and write permission for code coverage * inherit secrets * Update PostgreSQL image version to 17 --------- Co-authored-by: Chandu Nainala <mailcs76@gmail.com>
* add test coverage workflow * add .env.ci * use postgres instead of mysql for testing * add meilisearch test config and adjust redis to local for ci * remove healtchecks for redis and meilisearch services * fix the db mismatch issues in CI * fix filesystem driver issue * rectify .env file name * add .env.ci.test with correct DB_PASSWORD * skip ELNSubmissionTrackingTest.php test that requires external API access in CI environment * ELNSubmissionTrackingTest * fixx failing tests * update Code cov token * update test-coverage workflow and .env.ci.test * fix LicenseFactory issue * update composer install command and revert license factory changes * fix env for mielisearch in ci * run test for every commit/sync/pr/merge to dev and main branch * linting fix * skip ELNSubmissionTrackingTest and allow read and write permission for code coverage * inherit secrets * feat: add tests for models * chore: pint formatting of some tests * fix: failing tests due to URL generation and storage issues * run pint formatting * fix: failing tests * run pint formatting * revert test database name --------- Co-authored-by: Chandu Nainala <mailcs76@gmail.com>
* feat: add comprehensive project tests and factories * fix: add unit tests for NMRiumModel * pint formatting * composer update symfony/http-foundation * Update app/Events/ProjectMemberAdded.php Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update app/Events/AddingProjectMember.php Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Initial plan (#1296) Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> * :void * Initial plan (#1297) Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> * revert copilot changes * fix failing tests * revert db name in phpunit.xml * run lint --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com> Co-authored-by: Chandu Nainala <mailcs76@gmail.com>
* chore: csp optimization remove csp routes and commands, update policy to remove unused sources * review changes * pint and formatting --------- Co-authored-by: Chandu Nainala <mailcs76@gmail.com>
Extend dashboard query handling and refresh the projects index with search, pagination, and workspace-aware filtering.
Factories often create projects without attaching the owner to project_users, so dashboard sharing UI now reports owner correctly via userProjectRole.
Exercise repair command dispatch paths, inspector query methods, and ProcessProject unique lock TTL to satisfy Codecov patch thresholds.
* feat(ui): add shared public site header and navigation utilities Extract PublicSiteHeader, deposit CTA helpers, and public nav config so public pages share consistent navigation and branding. * feat(pages): add dedicated FAQs Inertia page and route Register /faqs as a named Inertia route alongside other public pages. * refactor(ui): adopt shared header and refresh public-facing pages Redesign welcome, about, legal, and browse pages to use PublicSiteHeader, unified footer, and shared empty-state styling. * refactor(search): improve unified search and structure editor UX Consolidate structure drawing helpers and align search, predict, and upload flows with the updated public search interface. * style(ui): polish authenticated app layout header controls Improve notification badge placement and tighten header action spacing. * test: add feature coverage for public Inertia pages Assert welcome, about, FAQs, legal, and projects routes render expected components. * chore(build): update frontend lockfiles and Vite openchemlib config Dedupe and pre-bundle openchemlib for reliable structure editor loading. * fix(tests): use RefreshDatabase for public Inertia page tests Routes for welcome, about, FAQs, legal, and public projects pages query the database for stats; migrations must run in CI for valid Inertia responses. * fix(tests): use SSR Inertia assertions for public page tests The test suite renders Inertia via the root Blade template (data-page), not X-Inertia JSON. Use assertInertiaPageComponent to match existing tests.
Increase memory_limit for queue-heavy workloads and add supervisord Horizon worker plus .env.example notes for local Sail setups.
Surface backup failures clearly and align job tests with the revised backup workflow. Co-authored-by: Nisha Sharma <nisha.sharma@uni-jena.de>
* fix(compounds): repair missing compound info during processing Add scheduled repair command and enrichment inspectors, and invoke them from submission and project processing jobs when metadata is incomplete. * test(compounds): expand coverage for repair and inspector helpers Exercise repair command dispatch paths, inspector query methods, and ProcessProject unique lock TTL to satisfy Codecov patch thresholds.
* fix(auth): align project and study policies with member access Ensure invite flows and API resources respect updated authorization rules for collaborators and reviewers. * fix(tests): align reviewer coverage with current review UI Return owner from userProjectRole when the user owns the project but is not on the members pivot, and match policy PR tests to Project/Show until the public browse refactor lands.
…o development # Conflicts: # resources/js/Pages/Public/Compounds.vue # resources/js/Shared/Footer.vue # resources/js/Shared/PublicSiteHeader.vue # resources/js/Shared/UnifiedSearch.vue # resources/js/Utils/publicNavItems.js # tests/Feature/AboutPageTest.php # tests/Feature/FaqsPageTest.php # tests/Feature/LegalPagesTest.php # tests/Feature/Project/ProjectControllerAdditionalCoverageTest.php # tests/Feature/PublicProjectsPageTest.php # tests/Feature/WelcomePageTest.php
Show create actions on the upload page via AppLayout and remove the duplicate "Create New" control from the drafts picker.
Tone down the metrics cards so hero search stays primary: smaller typography, compact layout, and subtler borders.
* fix(tests): repair failing CI test suite on development Allow ApplicationController::renderProjectForRequest to handle studies and datasets without a parent project instead of raising a TypeError. Treat empty-string text columns as missing in the molecule enrichment query since molecular_formula is NOT NULL in the schema. Disable the cookie consent middleware in tests because it rewrites response HTML and breaks Inertia assertions. Align the project role and workspace tests with owner-first role resolution, and fake nested Artisan calls with a proxy partial mock so the outer command still runs. * fix(security): resolve critical npm audit advisories Override shell-quote to >=1.8.4 (GHSA-w7jw-789q-3m8p) and bump the instantsearch.js qs override to 6.15.2 (GHSA-q8mj-m7cp-5q26) so the npm audit high-severity gate passes again.
* refactor(draft): add ownership policy and shared draft utilities Introduce DraftPolicy for owner checks, centralize community draft detection on the Draft model, and extract filesystem detach logic into a reusable action. Harden draft and publish endpoints against missing projects and unauthorized access using Laravel authorization traits. * feat(community): add partial sample publishing backend Add community contribution routes, draft provisioning, and a publish action that queues selected studies via ProcessSubmission while keeping the staging draft. Extend ProcessSubmission for partial study IDs and draft preservation without changing full publication submissions. * feat(community): add workspace UI and deposit navigation Add the community contribution page with file upload, structure assignment, and sample submission modals. Extract shared draft processing and structure parsing utilities, and unify deposit data entry points across the app. * test: fix CI failures from community contribution changes Pass the new DetachStudyFilesystemFromDraft dependency to ProcessSubmission::handle in unit tests, restore study readiness after the filesystem observer resets it in the community publish test, and assert the new redirect behavior for drafts without a project. Make DraftFactory deterministic by defaulting is_deleted to false instead of a random boolean, which caused flaky draft visibility assertions. * fix(security): resolve composer audit advisories for Laravel 12 Bump laravel/framework to v12.62.0 and transitive HTTP/crypto dependencies so composer audit passes the June 2026 advisories. * fix(security): resolve high-severity npm audit advisories Bump vite to 6.4.3 and override form-data and vitepress transitive dependencies so the PR npm audit gate passes again.
| const lines = trimmed.split("\n"); | ||
|
|
||
| if (lines.length <= 2 && trimmed.length < 500) { | ||
| const smilesPattern = /^[A-Za-z0-9@+\-\[\]()=#\\/\\.:]+$/; |
| datasetDetails.studySlug + | ||
| "/" + | ||
| datasetDetails.datasetSlug; | ||
| let safeDatasetUrl = datasetUrl; |
* feat(ui): add shared public site header and navigation utilities Extract PublicSiteHeader, deposit CTA helpers, and public nav config so public pages share consistent navigation and branding. * feat(pages): add dedicated FAQs Inertia page and route Register /faqs as a named Inertia route alongside other public pages. * refactor(ui): adopt shared header and refresh public-facing pages Redesign welcome, about, legal, and browse pages to use PublicSiteHeader, unified footer, and shared empty-state styling. * refactor(search): improve unified search and structure editor UX Consolidate structure drawing helpers and align search, predict, and upload flows with the updated public search interface. * style(ui): polish authenticated app layout header controls Improve notification badge placement and tighten header action spacing. * test: add feature coverage for public Inertia pages Assert welcome, about, FAQs, legal, and projects routes render expected components. * chore(build): update frontend lockfiles and Vite openchemlib config Dedupe and pre-bundle openchemlib for reliable structure editor loading. * feat(search): add catalog text search API with legacy route support Introduce normalized text search endpoints under v1/search, keep deprecated routes for compatibility, and refresh OpenAPI documentation. * feat(search): add public text search Inertia page and client API helpers Expose /search for catalog browsing, wire unified search to the new API, and share pagination and fetch utilities across public search views. * refactor(public): refresh public project, study, and compound pages (#1424) Improve public Inertia layouts, citation and access dialogs, and compound browsing while keeping shared header navigation consistent.
) * feat(dashboard): improve workspace filters and project listing UX Extend dashboard query handling and refresh the projects index with search, pagination, and workspace-aware filtering. * fix(dashboard): restore reviewer preview without public layout refactor Keep private reviewer links on Project/Show until ApplicationController ships the unified public renderer, and treat project owners as owner in viewer_role when they are not on the members pivot. --------- Co-authored-by: Nisha Sharma <nisha.sharma@uni-jena.de>
* fix: update csp to include meilisearch host * chore: regenerate vite manifest after merge --------- Co-authored-by: Chandu Nainala <mailcs76@gmail.com>
* fix: format time to utc * composer update
* feat(deployment): include nmrkit deployment in docker-compose.dev.yml update deployment script to include nmrkit deployment * feat(deployment): add nmrKit to production deployment docker-compose and deployment script * npm update * fix(deps): sync package-lock.json after npm update merge Regenerate the lockfile so npm ci succeeds in CI after the partial npm update commit left package.json and package-lock.json out of sync.
* fix: remove deprecated search endpoints - failing query for inchikey & tags - updated return response - updated tests to reflect changes * fix: update return response for empty result in Schema APIs * fix: failing tests - update DataController to fix failing response for filters - update null response for invalid identifiers to return 404 instead of 403 * test: fix the failing tests for DataCiteController
# Conflicts: # .phpunit.cache/test-results # app/Actions/Citation/SyncCitations.php # app/Console/Commands/PublishReleasedProjects.php # app/Console/Commands/SanitizeMolecules.php # app/Http/Controllers/API/DataController.php # app/Http/Controllers/API/Schemas/Bioschemas/BioschemasController.php # app/Http/Controllers/API/SearchController.php # app/Http/Resources/ProjectResource.php # app/Jobs/ArchiveStudy.php # app/Jobs/ProcessSubmission.php # app/Providers/EventServiceProvider.php # app/Services/AuthorService.php # app/Services/FileSystemObjectService.php # bootstrap/app.php # bootstrap/providers.php # composer.lock # database/factories/NMRiumFactory.php # package-lock.json # resources/js/Pages/About.vue # resources/js/Pages/Study/About.vue # resources/js/Pages/Upload.vue # resources/js/Pages/Welcome.vue # resources/js/Shared/Children.vue # resources/js/Shared/SpectraEditor.vue # routes/console.php # tests/Feature/ManageAuthorsTest.php # tests/Unit/SyncProjectAuthorsActionTest.php # yarn.lock
Route projects with studies but no remaining draft through finalizeProjectModeFromReleaseDate instead of exiting early, so embargo republish jobs resolve to published as expected.
* http://localhost/chemistry/standardize * whats new notification for user after every release. --------- Co-authored-by: Chandu Nainala <mailcs76@gmail.com>
Clarify publication and community contribution copy in the deposit menu and community contribution navbar.
* build(deps): upgrade to Laravel 13 and compatible packages Bump the framework and packages that blocked the upgrade, including l5-swagger, spatie/backup, markable, tinker, boost, and PHPUnit 12. * refactor(config): apply Laravel 13 framework configuration changes Update Sanctum CSRF middleware, cache serializable_classes defaults, PHPUnit 12 schema, and document env prefix pinning for deploy safety. * fix(swagger): configure l5-swagger 11 for legacy OpenAPI annotations Register a reflection analyser that supports docblock annotations alongside PHP attributes and regenerate the API documentation for swagger-php 6. * chore(cursor): update Laravel Boost guidelines for Laravel 13 Align documented package versions with the upgraded framework and tooling.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
#608, #995, #1251, #1262, #1263, #1271, #1275, #1278, #1280, #1287, #1290, #1292, #1294, #1303, #1306, #1309, #1312, #1315, #1319, #1323, #1326, #1328, #1333, #1335, #1337, #1338, #1346, #1355, #1357, #1363, #1364, #1369, #1374, #1377, #1383, #1400, #1402, #1408, #1412, #1413, #1431, #1434.