v2.1.0
v2.1.0
This is a larger release and include changes to bring Madoc inline with Canvas Panel and Manifest Editor, and
supports a wider range of IIIF resources as a result.
If you are migrating from 2.0 to 2.1 please test the update before applying to a production instance. There is a migration process for capture models. Reach out to us if you'd like help migrating
- 🚀 Faster - Smaller bundles and quicker page loads
- ✨ New Capture Model API - Rewritten and simplified this will ensure any further development all happens in the same repository. There is a migration step, but it will also migrate on the fly as you go, so no changes required. Once we have verified everyone has migrated, we will remove the old service.
- 📦 New page blocks - Lots of new page blocks have been added and extra customisation to existing ones
- 🎨 New theme options - There are lots of new ways to customise Madoc headers/footers with page blocks or remote URLs
- ⚡️ Canvas Panel - Madoc now uses Canvas Panel to render resources and will continue updating to view new types of IIIF resources while adding annotation support along the way
Fixed
- Fixed creation of
GlobalHeader
page block slot (withnone
as the context) - Fixed bug with loading canvases where annotations did not match the source canvas ID
- Fixed various SSR related bugs
- Fixed React key error on i18n configuration page
- Fixed bug with viewing IIIF media items
- Fixed bug where Capture model previewing in the backend would not refresh correctly
- Fixed bug where space-bar could not be used if region had not been confirmed in capture model editor
- Fixed bug with first entity selector not being revised correctly (and not saving)
- Fixed bug with capture model selectors self-referencing after being cloned
- Fixed bug with
hydrateCaptureModel
helper producing invalid entities - Fixed missing labels when viewing "Document" in sidebar
- Fixed incorrect selector shown in "Preview" modal and "Document" sidebar.
- Fixed bug with success modal popup not always showing
- Fixed metadata page re-flowing issues on Manifest/Canvas pages
- Fixed z-index issue with the notification window being occluded
- Fixed task loading bug (incorrect cache key)
- Fixed SSR bugs relating to global header, footer and static pages (e.g. homepage)
- Fixed messaging when "Maximum number of contributors reached" instead of "This image is complete"
- Fixed z-index issue with manifest item filter
- Fixed styling of continue contributions block
- Fixed text overflow styling on review dashboard
- Fixed bug where you could not delete a project if the capture model had already been deleted
- Fixed missing structure in project export
- Fixed bug where some empty annotations were exported
- Fixed annotation format when exporting Presentation 3 Manifest (OA -> W3C)
- Fixed bug with read-only annotations disappearing
- Fixed message "login to contribute" on published projects
- Fixed notification showing on document panel when panel is empty
- Fixed bug where "choice" was not reset after making a submission
- Fixed manifest thumbnail bug where it sometimes skipped first canvas
- Fixed bug with "Start contributing" returning invalid results
- Fixed bug with "Max contributors" if user had already started working
- Fixed "Maximise window" to avoid cutting off the top section of the header
- Fixed firefox bug where "Define window" button was disabled if selector required
- Fixed Annotation styled hidden by default
- Fixed some fields showing in submission if empty
- Fixed email links sometimes not working in email clients - with option link to paste
Added
- Remote header and footer support in themes
- New Capture Model database within Madoc (previously external API)
- Migration process integrated into Admin
- Uses different API endpoint
/api/crowdsourcing
->/api/madoc/crowdsourcing
- Added
iiif-builder
IIIF Builder from IIIF Commons - New
CAPTURE_MODEL_API_MIGRATED
environment variable to avoid extra calls to old Capture Model API. - Added
CanvasExplorer
capture model field type (editorial only) for selecting canvases within a Manifest context - Added new page to Canvas admin page to see JSON representation
- Added "Download JSON" button to edit translation page in Admin
- Added support for import "remote" project templates from URL
- New and Missing translations
- Added floating option to canvas status bar (green/orange/blue) styling option
- Added "Untitled" label for capture model entities without a label
- Added save on navigate away from capture model (disabled by default)
- Fixed bug with incorrect zoom on deep zoom images while navigating
- Page blocks - added block options for bread crumbs
- Page blocks - Added new "Footer Image Grid" block
- Page blocks - Added "Featured items" page block
- Page blocks - Added "Project contributors" page block
- Page blocks - Added full width option to IIIF Hero block
- Page blocks - Added lots of styling options to
Heading 1
block - Page blocks - Added block options for "Single collection" block
- Page blocks - Added block options to "Spacer" with vertical and horizontal support
- Page blocks - Added block options to "Canvas Manifest pagination" block
- Page blocks - Added option to show both Canvas and Manifest labels in "Canvas Page Header" block
- Page blocks - Added new "External links" block
- Page blocks - Added new global footer slot to customise the footer globally
- Page blocks - Added inline menu options and option to hide "Homepage" in the global header
- Page blocks - Added block options to "Manifest actions" block
- Page blocks - Added block options to "Manifest canvas grid" block
- Page blocks - Added full width option to "Manifest hero" block
- Page blocks - Added block options to "Altas canvas viewer" block
- Page blocks - Added block options to "Pagination" block
- Page blocks - Added block options to "Manifest Canvas Grid" block
- Page blocks - Added block options to "Project Manifests" block
- Page blocks - Added block options to "Project Manifests" block
- Page blocks - Added new
project-footer
slot - Page blocks - Added new block to embed items through iframe
- Added "reset error" option to attempt to recover from error states
- Added configuration option for vertical canvas zoom controls layout
- Added canvas rotation option (without annotation support)
- Added "Global font" to theme options
- Added error boundaries so only parts of a page crash (slots)
- Added error boundary to pages overridden by external plugins (to avoid crashing site, only page)
- Added extra theme options
- option to put the black "user bar" above or below the theme header
- Footer JS files
- Footer inline JS
- Header inline JS
- Remote JS / Stylesheets in linked assets
- HTML and "main" class names
- Added
createdAt
andupdatedAt
fields to capture models - Added ability to create automated user types
- Added experimental Auto-review process
- Added new Export mechanism
- Preview Manifest or Canvas exports in the Admin
- Run a large project export as a background task and download a zip at the end
- Supported exports:
- Canvas API - A JSON document with each canvas from the API
- Manifest API - A JSON document with each manifest from the API
- Canvas model export - Export full raw capture models for each canvas
- Canvas plaintext - export plaintext transcriptions for each document
- Canvas annotation export - a JSON document with the output of each canvas annotations (w3c/oa/json)
- Project API - A JSON document with project metadata
- Simple CSV export - exports all capture models into a csv file.
- Added new interactions in the Document panel for annotations
- Added secondary view for "X hours ago" to show the date and time on click (browser preference)
- Added "Generate PDF" option for manifests using pdiiif from (@jbaiter - Repository)
- Added small indication under choices in the capture model UI with number of previous submissions
- Added new auto-complete endpoints migrated from Madoc 1.x
- Added more Dutch translations (Thanks Davy Verbeke)
Changed
- Node updated from 14 -> 18
- PM2 update from 4.x -> 5.x
- When creating a capture model revision in "edit mode" empty entities will be "forked" if allowMultiple=true
- Removed IIIF-Builder code and use published module (
iiif-builder
on NPM) - Capture Model API endpoint
/api/crowdsourcing
->/api/madoc/crowdsourcing
- Updated IIIF/Hyperion dependencies
@atlas-viewer/atlas
@hyperion-framework/types
->@iiif/presentation-3
@hyperion-framework/presentation-2
->@iiif/presentation-2
@hyperion-framework/parser
->@iiif/parser
@hyperion-framework/vault
->@iiif/vault
@hyperion-framework/store
removed@hyperion-framework/react-vault
->react-iiif-vault
- Updated
react-i18next
updated from11.7.2
to11.18.4
- Updated React Router to 6.4
CollectionExplorer
capture model field type (editorial only) now uses smaller thumbnails- Default query config from
refetchOnMount: true
torefetchOnMount: 'always'
- Changed Canvas/Manifest/Collection grids to
use CSS Grid useLayoutEffect
->useBrowserLayoutEffect
to try and fix SSR warnings- CSS - Reduced box-shadows in capture model editor forms
- Changed all Atlas Viewer instances to use Canvas panel
- Simplified styling on search results
- Improved reviewer dashboard view
- Sortable table headers
- Resizable layout
- Full row clickable
- Focus mode & edit added
- Clearer language
- Side by side canvas preview and improved styling
- Navigation between items in list
- Default to no selected task
- Added infinite scroll
Removed
- Removed external Capture Model API
- Removed
AutoSelectDefineRegion
behaviour from capture model editor
Security
- Pinned
ws
from7.4.6
->8.8.0
Development
- Migrated build from Webpack to Vite
- Split server builds (auth/queue/producer/server)
- Added hot module reloading
- Better module splitting in production (-70% bundle size)
- Visual indicator that JS is still bundling in development
- Add HTTPS option for local development
- Helper scripts now have
.cjs
or.mjs
extensions - Consolidated all File paths to
services/madoc-ts/src/paths
- Consolidated all environment variables to
services/madoc-ts/src/paths
- Changed all
const { push } = useHistory()
toconst navigate = useNavigate()
(React Router upgrade) - Change all
renderUniversalRoutes(...)
to<Outlet />
(React Router upgrade) - Change all
api.getIsServer()
checks to<BrowserComponent />
wrapper (React router upgrade) - Change all
<Redirect />
to<Navigate />
(React router upgrade) - Fork of
RegionHighlight
,ResizeWorldItem
from Atlas viewer (may be removed in future) - Capture model helper
captureModelShorthandText
for creating test fixtures (with values) - Removed almost all external modules made available to plugins (breaks code-splitting,
see use-module.ts) - Move Api keys database code to
ApiKeyRepository
- Added flags that can be passed into the
BaseRepository
class - Split out
ViewDocument
into more manageable components
Commits from @Heather0K @stephenwf