Only this pageAll pages
Powered by GitBook
1 of 8

6.4

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Changelog

This page documents all notable changes to eMuseum.

6.4.21

Bug

  • Fix custom Thesaurus fields to render correctly in multi-view reports

  • Properly expose custom thesconcept fields in reports

6.4.20

Bug

  • Correctly remove the existing objects_locations entry when multiple components of the same object are imported

  • Fix query type for Groups based on advanced searches

6.4.19

Bug

  • Allow Reports to display non-ASCII characters

6.4.18

Bug

  • Do not remove report restrictions on role check

  • Fix OAI-PMH record selection when using multiple conditions

  • Use URL identifier for Collections in OAI-PMH

  • Fix item link context for the Loans and Events modules

  • Fix URL error for pagination on Collections page

  • Render IIIF Presentation Manifest even if media files are missing

6.4.17

Bug Fixes

  • Gracefully handle custom fields modal if the user logged out on another screen

  • Fix Thesaurus terms on multiviews

  • Show the Favorite delete icon on the list and table view

  • Fix Favorites records to not disappear after changed data import

  • Hide the Favorites icon if Favorites are restricted

6.4.16

Bug Fixes

  • Fix report for large dataset not crashing application

  • Add new database indexes for linked tables

  • Do not link values from filterable fields when a standard license is applied

  • Do not expose media request values in the media request error page

  • Close all prepared statements during the import

  • Fix the Restricted Bots filter to throw an NPE if the User-Agent is empty

6.4.15

Improvements

  • Update Tapestry to version 5.8.6

6.4.14

Bug Fixes

  • Modify sitemap projection query to respect record role restrictions

  • Fix multi-value fields to include all values on multi-views

  • Do not use phrases in Advanced Search queries for nested fields

  • Close all asset streams

  • Do not load non-image media into reports

  • Fix report field configuration to index new fields

  • Always set both “width” and “height” in IIIF Image API image sizes

  • Include the full image size in IIIF Image API info

  • Fix “on” canvas URI in IIIF Image info

  • Record node in indexing history when indexing media or vocabulary fields

  • Improve the default label for “alphaSort” field in the People module

  • Do not use a stop words filter for keyword fields on Solr 9

  • Handle combination of thesaurus and date range filter

  • Properly encode thesaurus filter values for results API links

  • Fix the Labels configuration page when the default language is not English

  • Fix JSON API for advanced search results when the language is explicitly set via the URL

6.4.13

Bug Fixes

  • Allow Advanced Search multi-select blank option label customizations

  • Fix image derivatives after disabling "pad to square"

  • Fix duplicated results when returning to the results page for Infinite Scrolling

  • Honor "page" parameter for result sets if Infinite Scrolling is enabled

  • Overwrite default labels for result views for secondary languages

  • Prevent report generation for disabled reports

  • Fix the Output Markup option for the Object “titles” field

  • Address default invno field suggestions settings

  • Fix deletion of custom fields, not leaving API references behind

6.4.12

Bug Fixes

  • Fix Bootstrap JavaScript includes

6.4.11

Improvements

  • Update Tapestry to version 5.8.3

Bug Fixes

  • Fix Thesaurus Solr processor count for type-filtered fields

  • Include Loans and Events without media in Sitemap.xml

  • Delete Network API package if extracting data fails

  • Fix search within Thesaurus tree

  • Fix JSON API for search results when the language is explicitly set via the URL

  • Trigger re-index on media import

  • Add mimetype as "type" attribute to embedded documents

  • Fix the initial state of DisableByRadio mixin

  • Fix date filter display for Virtual Groups based on dates

  • Support Thesaurus terms for search suggestions

  • Use minimal tokenization/filtering for search suggestions

  • Run Solr processor for cross-module relationships on all modules

6.4.10

Bug Fixes

  • Use W3C datetime format for Sitemap.xml

  • Fix display of people display names with HTML characters

  • Fix field label overwrites for multiple languages

  • Move Solr 9 auto-commit settings to update the handler

  • Use URL Service for encoding Collection parameter

  • Do not use Solr stop words filter for keyword fields

  • Fix record count for multi-view reports

  • Fix long loading times for multi-select lists

  • Update sitemap media links to use URL service with primary media node and source ID values

  • Load robots.txt when the site runs in production mode

6.4.9

Bug Fixes

  • Use list for “profile” property in IIIF Image API’s image information response

  • Fix image mirroring

  • Handle Thesaurus concepts without descriptors in the filter panel gracefully

  • Rename the WinSW example file for Solr service to avoid overwriting

  • Prevent users from entering negative quick search boost values

  • Fix the display of the Thesaurus term on the Event and Media details page

  • Prevent unrestricted access to Favorites of other users via reports

  • Prevent unrestricted access to some configuration pages

  • Prevent Stored XSS in usernames

  • Prevent anonymous users from creating Virtual Groups and Favorites

  • Do not expose the full file path in the image upload error message

  • Prevent unrestricted access to restricted records via reports

6.4.8

Improvements

  • Add GitLab pipeline job to deploy customization projects automatically

Bug Fixes

  • Make Advanced Search errors in results views visible to the user

  • Handle fields without "name" attribute for People letters gracefully

  • Fix indexing progress for joining fields with multiple values

  • Fix the typo in the Exhibitions index page route

  • Fix indexing progress for join fields without purpose

  • Support custom media dispatchers for link generation

  • Render Unicode characters in reports properly

6.4.7

Bug Fixes

  • Respect role restrictions on records in relation to related module views

  • Add missing value for "events.vocindexingevent-label" to message catalogue

  • Fix user media files to fallback to regular media files for Network API version 1.1

  • Transform images if user media is enabled

  • Do not link Thesaurus attributes on standard license level

  • Fix parameter encoding when switching language

  • Fix "nullable" for several entity attributes

  • Fix URL encoding of context path parameters

  • Fix the error when navigating to a person from the People/Index page after scrolling

  • Do not call "optimize" after Solr indexing

  • Fix searching related records

  • Move Solr auto-commit settings to update the handler

6.4.6

Bug Fixes

  • Set default omit generator meta config value in internal web.xml

  • Do not hardcode per-page value when infinite scrolling is enabled

  • Index only report fields that are for multi-view reports

  • Fix custom fields to show up in detail reports

  • Pass module name to search result pages correctly

  • Hide empty labels in reports

  • Fix HTTP cache headers for Custom CSS file

  • Do not log warnings for single-value fields without nested values on detail pages

  • Update JSass to version 5.10.5

6.4.5

Bug Fixes

  • Fix user media files to fallback to regular media files

  • Fix display of TDB thesaurus-based term values in reports

  • Limit in-memory caches by entry count instead of memory size

  • Fix the position of modal close button

  • Fix exceptions for fields with multiple values in multiview reports

  • Fix default language for custom UI literals file

  • Fix the message catalogue in the Thesaurus and select model

  • Fix the comparison of fields without labels on media configuration page

  • Handle duplicated section keys in the message catalogue

  • Fix "colud" typo in the "sort field not found" message

  • Fix the favorites toolbar delete check to show correctly

  • Only allow the currently logged-in user or admins to download a user's data in CSV

  • Gracefully handle invalid Thesaurus concept URIs for filters etc.

  • Fix IIIF icon display and add icon alt text

  • Fix list/list item markup surrounding the language switcher in the footer

6.4.4

Bug Fixes

Revert changes on db create scripts

6.4.3

Bug Fixes

  • Use Solr auto commits to avoid large transaction logs

  • Clean-up generated reports

  • Fix module intro text editor

  • Handle Thesaurus concepts without a descriptor

  • Show blank option for type-filtered field values

  • Sort type-filter values by Unicode rules

  • Make data role import by name case-insensitive

  • Fix migration of primary key for collections_objects table

  • Fix field “mediaExistence” on detail pages

  • Delete Network API package if chunk transfer is aborted

  • Fix ImageViewer padding-bottom on Category Group pages

  • Fix severity for Group edit configuration error message

  • Fix Discover More fields not being configurable

  • Fix Person Object images logic to use only non-null media entries

  • Fix scheduled job to clean import/indexing history

  • Use count query to check relationship existence

  • Show memory values on the admin dashboard in Megabytes

  • Sort Nodes on the Nodes index page alphabetically by default

6.4.2

Bug Fixes

  • Fix saving an empty Restricted Words List

  • Do not set the HTTP header "Connection" for stream responses

  • Do not call “optimize” after Solr indexing

  • Disable Solr “infoStream” option

  • Fix CSS class conflict when configuring the Name field as a filter option

  • Set session timeout in web.xml

  • Fix image loading icon to disappear for Infinite Scrolling on non-Masonry layouts

  • Re-enable building Solr suggesters

  • Limit file transformation cache by entry count instead of memory size

6.4.1

Bug Fixes

  • Fix overlapping images for files with width and height not being set

  • Preserve many2many relationship references on upgrade

  • Support Solr via HTTPS

  • Fix thumbnails on the Groups List configuration page

  • Fix Favorites being indexed by a full indexing

6.4

Improvements

  • Create config option for image alt text

  • Make Solr core names configurable

  • Add IIIF Presentation Collection for result sets

  • Add option/action to clean import/indexing history

  • Add detail and multiview API field configuration

  • Limit media processing to a small number of threads

  • Update RESTEasy to version 5

  • Add profile configuration for IIIF metadata fields

  • Use Apache Commons Bean Utils to access properties

  • Use static URIs in mapping

  • Add an option to disable Relevance sort per module

  • Provide field configuration for selectable Advanced Search field values

  • Use GitLab’s Maven repository

  • Show multiview tiles on page load and re-layout after each image has been loaded

  • Set aspect ratio for images on multiviews

  • Update Tapestry to version 5.7

  • Replace JAXB with Java classes for Config and Profiles

  • Show the git version description on the admin dashboard

  • Use persistent URLs for IIIF resources

  • Upgrade Gradle Wrapper to version 7

  • Output multi-value fields correctly in IIIF Presentation API

  • Reorganize field configuration loop groupings

  • Add an option for preventing crawling of the entire site

  • Stream writing of RDF data

  • Replace Apache Jena with Eclipse RDF4J

  • Report Thesaurus import progress

  • Support automatic database schema migration

  • Use the FieldLabel component for rendering the Object Detail on the view label

  • Use the "Preserve Linebreaks" option for the dimensions field by default

  • Omit Tapestry generator metatag

  • Update Hikari to version 5

  • Use single-column primary key for many2many relationship tables

  • Flip Virtual Group name and URL fields

  • Add generic TML overrides for custom-filtered fields

  • Get image dimensions from the file header

  • Do not compare CSRF tokens for new and expired sessions

  • Update SpotBugs Gradle plugin to version 5

  • Update Spring Data to version 2.6

  • Update Spring Security to version 5.6

  • Update Hibernate to version 5.6

  • Update Apache Commons IO to version 2.11

  • Update Jackson Databind to version 2.13

  • Update Solr and Lucene to version 8.11

  • Update Bouncy Castle to version 1.70

  • Update JSONjava to version 20211205

  • Update Apache Tika to version 2

  • Update Handlebars to version 4.3

  • Update OpenCSV to version 5.6

  • Update Javassist to version 3.28

  • Update Microsoft JDBC to version 10

  • Update jQuery UI to version 1.13

  • Update video.js to version 7.18

  • Preserve external vocabulary data during data import

  • Do not use a single transaction for importing data from external vocabularies

  • Index fields for external vocabularies after import

  • Reduce expiry for "file transformation" cache

  • Increase database connection pool settings

  • Move metadata options to the application configuration page

  • Show all available modules on the field configuration page

  • Index module after enabling it

  • Validate field mapping for complex attributes

  • Replace getScaledInstance() for resizing images

  • Expose metrics in OpenMetrics format

  • Operate Solr as a system service

  • Remove Solr JMX configuration

  • Update Tapestry to version 5.8

  • Update saved search queries for Groups based on Favorites

  • Support TIFF image format by IIIF Image API

  • Remove the TMS Table/Field column from the field configuration

  • Let Solr processor decide if to run

  • Remove Profile field attribute “iterate”

  • Add potential re-index warning to the field configuration page

  • Split Liquibase changelog for EM-3174

  • Pass root entity to Network API mapping source methods

  • Close Networkapi transfer client

  • Use separate Liquibase changelog files for custom schema updates

  • Avoid Tapestry warnings about jQuery UI images

  • Add handling for custom thesconcepts in the Advanced Search

  • Hide Advanced Search “select list” for non-text fields

  • Place "CharsetFilter" filter after "StoreIntoGlobals" filter

  • Update RDF4J to version 4

  • Increase Solr memory requirements

  • Resolve Thesaurus concept URIs on multiviews

  • Hide Node name in type-filtered field types for singe-Node instances

  • Cache component class resolution

  • Use parallel streams for Profile lookups

  • Update Gradle Wrapper to version 7.4

  • Update JSON library to version 20220320

  • Update Apache Tika to version 2.4

  • Update Solr and Lucene to version 9

  • Update .gitignore to account for the new solr directory structure

  • Group type-filter values by their label

  • Automatically migrate Profile changes

  • Indicate deleted type-filter values in the field config

  • Support Java 17

Bug Fixes

  • Index API result fields

  • Fix the clipboard copy function

  • Fix creating custom flex fields without associated group

  • Use label overrides in the API output

  • Fix schema generation to be compatible with the Jena version

  • Fix thesaurustermspath fieldId reference

  • Fix the display of custom thesaurus field values in the filter panel

  • Fix Liquibase changelog for EM-2829

  • Fix custom thesaurus fields searchable without “thesconcepts” field being searchable

  • Fix literals that inherit other literals from appearing as being overridden

  • Fix Alternative Text Ellipsis description typo

  • Fix adding/removing fields to/from Reports

  • Set the correct number of media processing threads at startup

  • Fix validation of type-filtered field modal

  • Handle Thesaurus values without language gracefully

  • Close Solr client on application shutdown

  • Update enabled modules after applying a new license

  • Fix field configuration to add multiview fields to Profile Mapping

  • Fix deleting of field mapping

  • Allow Advanced Search select list option for "keyword" fields

  • Fix error when creating a type-filtered Flex Field without a group

  • Fix Thesaurus tree count if the "use select list" option is enabled

  • Handle new elements for existing configuration

New Features

  • Add UI to manage translation literals/properties

  • Allow admins to create new fields based on sub-queries of existing fields

Configuration

Various site-wide changes can be made using the web-based configuration options available within eMuseum. Once authenticated as an administrator, click the cog icon or toggle the main menu open and click "Configuration" to access the configuration page. The next sections will guide you through all available configuration options.

Logo

The Logo Configuration page allows you to assign a logo to appear in the top banner of all pages on your eMuseum site. The logo configured here will not display on non-configuration pages in the Skeleton skin (or copies).

Display Settings

Appearance

The Appearance configuration options provide a comprehensive set of tools to customize the visual aspects and layout of your eMuseum site. These settings allow for the personalization of colors, fonts, layout structures, and navigation behaviors, ensuring the site aligns with your institution's branding and user experience goals. Below is a detailed description of each configuration option, including practical examples of how they could be used:

General Settings

Rounded Corners

Enables rounded corners for UI elements such as buttons and text inputs. Using rounded corners can create a softer, more modern look for the website.

All Caps Text

Transforms menu items and small labels to upper case. Labels for buttons like "SUBMIT" and "CANCEL" appear in all caps for emphasis.

Enable Big Search Box

Displays a large search box inside the content area instead of in the header.

Enable Sharing

Enables social media sharing buttons for objects in the collection, allowing users to share individual works using social media applications such as Facebook, Twitter, and Pinterest, as well as email. It also enables sharing in the List, Images, and Detail pages.

Global Link Color

Sets the color for hyperlinks across the site. Choosing a distinct blue for all links to maintain visual consistency.

Global Link Hover Color

Sets the color for links when the mouse hovers over them to provide clear visual feedback to users.

Global Base Dark Color

Sets the color for menu items and text.

Global Highlight Color

Sets a color for highlighted elements such as buttons, selected text, and active states.

Media Zone Background Color

Sets the background color on detail pages when using a one-column layout to ensure images and videos stand out.

Global Layout Max Width

Sets the maximum width of the content for all pages.

Typography Body Font

Sets the font face for text in the body of all pages.

Typography Title Font

Sets the font face for titles on all pages.

Typography Font Base Size

Sets the base font size, which scales all text sizes up or down.

Grid Gutter Width

Sets the amount of space between items in grid view.

Header

Centered Header

Centers the logo and main menu on the page.

Bar

Adds a colored bar behind the header section.

Header Vertical Padding

Adds padding to the top and bottom of the header.

Header Bg Color

Sets the color of the header bar if it is enabled.

Header Text Color

Sets the text color inside the header if the header bar is enabled.

Footer

Footer Enabled

Enable or disable the page footer.

Centered Footer

Footer Padding Vertical

Adds padding to the top and bottom of the footer.

Footer Bg Color

Sets the background color of the footer.

Footer Text Color

Sets the color of text inside the footer.

Image Grid

Masonry
Standard
Fit
Mosaic

Stacks images on top of each other like bricks.

Each item is given an equal amount of space on the grid.

Crops images so that images are a uniform size.

Crops images with varied sizing throughout the grid.

Results Layout

One Column

Displays filters and results in one column.

Two Column

Displays the filters and results in two columns.

Details Layout

One column
Two column
Three column

Release Notes

This page documents the manual steps required to upgrade an existing eMuseum installation.

Previous Version Changes

Before applying changes specific to eMuseum 6. found in the sections below, all changes required to upgrade earlier versions of 6.0, 6.1, 6.2 and 6.3 must be applied. Those changes can be found in the corresponding release notes.

6.4

System Requirements

  • In addition to Java 11, Java 17 is now supported

  • In addition to Solr 8, Solr 9 is now supported

Database Changes

Database changes are now handled by the application at startup. No manual steps are required.

Solr Changes

If the data folder within the eMuseum home directory is used (<EMUSEUM_HOME>/solr/), adjust the Solr configuration to point to <EMUSEUM_HOME>/solr/solr8 for Solr 8 or to <EMUSEUM_HOME>/solr/solr8 for Solr 9.

If a separate Solr data folder is used (instead of <EMUSEUM_HOME>/solr/), copy over the files from <EMUSEUM_HOME>/solr/solr8 for Solr8 or from <EMUSEUM_HOME>/solr/solr9 for Solr 9.

Template Changes

Template updates are only required for custom skins.

For each custom skin (sub-folders in the <EMUSEUM_HOME>/skins/ folder), apply the following changes. Please note that custom skins only contain files for custom changes. If a mentioned file does not exist in the custom skin’s folder, no changes need to be done.

Merge changes on the following template files (if present):

Show list of template files
  • com/gallerysystems/emuseum/core/base/components/AbstractReportsController.tml

  • com/gallerysystems/emuseum/core/base/components/AbstractViewFieldConfig.tml

  • com/gallerysystems/emuseum/core/base/pages/AbstractModuleConfigurationPage.tml

  • com/gallerysystems/emuseum/core/base/view/page/AbstractViewPage.tml

  • com/gallerysystems/emuseum/core/components/AdvancedSearchLink.tml

  • com/gallerysystems/emuseum/core/components/AsImagesGrid.tml

  • com/gallerysystems/emuseum/core/components/AsListGrid.tml

  • com/gallerysystems/emuseum/core/components/AsTableGrid.tml

  • com/gallerysystems/emuseum/core/components/DetailActions.tml

  • com/gallerysystems/emuseum/core/components/DetailsBlock.tml

  • com/gallerysystems/emuseum/core/components/GroupChooser.tml

  • com/gallerysystems/emuseum/core/components/IIIFLink.tml

  • com/gallerysystems/emuseum/core/components/Layout.tml

  • com/gallerysystems/emuseum/core/components/ThesaurusTerms.tml

  • com/gallerysystems/emuseum/core/components/ThesaurusTermsPath.tml

  • com/gallerysystems/emuseum/core/components/admin/EnvironmentWidget.tml

  • com/gallerysystems/emuseum/core/components/admin/MemoryWidget.tml

  • com/gallerysystems/emuseum/core/components/configuration/ConfigLayout.tml

  • com/gallerysystems/emuseum/core/components/configuration/HistoryCleanupForm.tml

  • com/gallerysystems/emuseum/core/components/media/Media.tml

  • com/gallerysystems/emuseum/core/components/media/MediaDownload.tml

  • com/gallerysystems/emuseum/core/components/media/viewers/AudioViewer.tml

  • com/gallerysystems/emuseum/core/components/media/viewers/DocumentViewer.tml

  • com/gallerysystems/emuseum/core/components/media/viewers/ImageViewer.tml

  • com/gallerysystems/emuseum/core/components/media/viewers/VideoViewer.tml

  • com/gallerysystems/emuseum/core/components/pageviews/bibliography/Detail.tml

  • com/gallerysystems/emuseum/core/components/pageviews/bibliography/Images.tml

  • com/gallerysystems/emuseum/core/components/pageviews/bibliography/List.tml

  • com/gallerysystems/emuseum/core/components/pageviews/bibliography/Table.tml

  • com/gallerysystems/emuseum/core/components/pageviews/events/Detail.tml

  • com/gallerysystems/emuseum/core/components/pageviews/events/Images.tml

  • com/gallerysystems/emuseum/core/components/pageviews/events/List.tml

  • com/gallerysystems/emuseum/core/components/pageviews/events/Table.tml

  • com/gallerysystems/emuseum/core/components/pageviews/exhibitions/Detail.tml

  • com/gallerysystems/emuseum/core/components/pageviews/exhibitions/Images.tml

  • com/gallerysystems/emuseum/core/components/pageviews/exhibitions/List.tml

  • com/gallerysystems/emuseum/core/components/pageviews/exhibitions/Table.tml

  • com/gallerysystems/emuseum/core/components/pageviews/loans/Detail.tml

  • com/gallerysystems/emuseum/core/components/pageviews/loans/Images.tml

  • com/gallerysystems/emuseum/core/components/pageviews/loans/List.tml

  • com/gallerysystems/emuseum/core/components/pageviews/loans/Table.tml

  • com/gallerysystems/emuseum/core/components/pageviews/media/Detail.tml

  • com/gallerysystems/emuseum/core/components/pageviews/media/Images.tml

  • com/gallerysystems/emuseum/core/components/pageviews/media/List.tml

  • com/gallerysystems/emuseum/core/components/pageviews/media/Table.tml

  • com/gallerysystems/emuseum/core/components/pageviews/objects/Detail.tml

  • com/gallerysystems/emuseum/core/components/pageviews/objects/Images.tml

  • com/gallerysystems/emuseum/core/components/pageviews/objects/List.tml

  • com/gallerysystems/emuseum/core/components/pageviews/objects/Table.tml

  • com/gallerysystems/emuseum/core/components/pageviews/people/Detail.tml

  • com/gallerysystems/emuseum/core/components/pageviews/people/Images.tml

  • com/gallerysystems/emuseum/core/components/pageviews/people/List.tml

  • com/gallerysystems/emuseum/core/components/pageviews/people/Table.tml

  • com/gallerysystems/emuseum/core/components/pageviews/sites/Detail.tml

  • com/gallerysystems/emuseum/core/components/pageviews/sites/Images.tml

  • com/gallerysystems/emuseum/core/components/pageviews/sites/List.tml

  • com/gallerysystems/emuseum/core/components/pageviews/sites/Table.tml

  • com/gallerysystems/emuseum/core/components/profile/AddCustomFieldConfigModal.tml

  • com/gallerysystems/emuseum/core/components/profile/AddFieldConfigModal.tml

  • com/gallerysystems/emuseum/core/components/profile/CustomFields.tml

  • com/gallerysystems/emuseum/core/components/profile/DefaultFields.tml

  • com/gallerysystems/emuseum/core/components/profile/QuickSearchFieldConfig.tml

  • com/gallerysystems/emuseum/core/components/profile/SimilarFieldConfig.tml

  • com/gallerysystems/emuseum/core/components/profile/ViewConfigFieldConfig.tml

  • com/gallerysystems/emuseum/core/components/related/RecordBibliography.tml

  • com/gallerysystems/emuseum/core/components/related/RecordEvents.tml

  • com/gallerysystems/emuseum/core/components/related/RecordExhibitions.tml

  • com/gallerysystems/emuseum/core/components/related/RecordLoans.tml

  • com/gallerysystems/emuseum/core/components/related/RecordObjects.tml

  • com/gallerysystems/emuseum/core/components/related/RecordSites.tml

  • com/gallerysystems/emuseum/core/components/search/AdvancedSearchForm.tml

  • com/gallerysystems/emuseum/core/components/search/QuickSearchForm.tml

  • com/gallerysystems/emuseum/core/pages/admin/indexing/AdminIndexingIndex.tml

  • com/gallerysystems/emuseum/core/pages/admin/indexing/AdminIndexingVocabularies.tml

  • com/gallerysystems/emuseum/core/pages/admin/nodes/NodesIndex.tml

  • com/gallerysystems/emuseum/core/pages/advancedsearch/AdvancedsearchIndex.tml

  • com/gallerysystems/emuseum/core/pages/advancedsearch/AdvancedsearchResults.tml

  • com/gallerysystems/emuseum/core/pages/collections/CollectionsDetails.tml

  • com/gallerysystems/emuseum/core/pages/collections/CollectionsIndex.tml

  • com/gallerysystems/emuseum/core/pages/configuration/ConfigurationApplication.tml

  • com/gallerysystems/emuseum/core/pages/configuration/ConfigurationField.tml

  • com/gallerysystems/emuseum/core/pages/configuration/ConfigurationLiterals.tml

  • com/gallerysystems/emuseum/core/pages/configuration/ConfigurationLogo.tml

  • com/gallerysystems/emuseum/core/pages/configuration/ConfigurationMedia.tml

  • com/gallerysystems/emuseum/core/pages/configuration/ConfigurationMetadata.tml

  • com/gallerysystems/emuseum/core/pages/configuration/groups/ConfigurationGroupsCreate.tml

  • com/gallerysystems/emuseum/core/pages/configuration/groups/ConfigurationGroupsEdit.tml

  • com/gallerysystems/emuseum/core/pages/configuration/modules/ModulesIndex.tml

  • com/gallerysystems/emuseum/core/pages/configuration/reports/ReportsReport.tml

  • com/gallerysystems/emuseum/core/pages/favorites/FavoritesIndex.tml

  • com/gallerysystems/emuseum/core/pages/favorites/FavoritesPublic.tml

  • com/gallerysystems/emuseum/core/pages/groups/GroupsCategory.tml

  • com/gallerysystems/emuseum/core/pages/groups/GroupsDetails.tml

  • com/gallerysystems/emuseum/core/pages/groups/GroupsIndex.tml

  • com/gallerysystems/emuseum/core/pages/internal/ThesTree.tml

  • com/gallerysystems/emuseum/core/pages/search/SearchResults.tml

  • com/gallerysystems/emuseum/core/pages/vocabularies/Thesaurus.tml

6.4.2

Solr Changes

If a separate Solr data folder is used (instead of <EMUSEUM_HOME>/solr/solr8) for Solr 8, copy over the following files:

  • <EMUSEUM_HOME>/solr/solr8/records/conf/solrconfig.xml

  • <EMUSEUM_HOME>/solr/solr8/vocabularies/conf/solrconfig.xml

6.4.3

Solr Changes

If a separate Solr data folder is used (instead of <EMUSEUM_HOME>/solr/solrX), copy over the following files (adjust X to your Solr version):

  • <EMUSEUM_HOME>/solr/solrX/records/conf/solrconfig.xml

  • <EMUSEUM_HOME>/solr/solrX/vocabularies/conf/solrconfig.xml

Template Changes

Template updates are only required for custom skins.

For each custom skin (sub-folders in the <EMUSEUM_HOME>/skins/ folder), merge changes on the following template files (if present):

  • com/gallerysystems/emuseum/core/components/admin/MemoryWidget.tml

  • com/gallerysystems/emuseum/core/components/pageviews/objects/Detail.tml

  • com/gallerysystems/emuseum/core/components/profile/AddCustomFieldConfigModal.tml

  • com/gallerysystems/emuseum/core/components/profile/SimilarFieldConfig.tml

  • com/gallerysystems/emuseum/core/pages/admin/nodes/NodesIndex.tml

6.4.5

Template Changes

Template updates are only required for custom skins.

For each custom skin (sub-folders in the <EMUSEUM_HOME>/skins/ folder), merge changes on the following template files (if present):

  • com/gallerysystems/emuseum/core/components/DetailActions.tml

  • com/gallerysystems/emuseum/core/components/IIIFLink.tml

  • com/gallerysystems/emuseum/core/components/Layout.tml

  • com/gallerysystems/emuseum/core/components/favorites/FavoritesBar.tml

6.4.6

Template Changes

Template updates are only required for custom skins.

For each custom skin (sub-folders in the <EMUSEUM_HOME>/skins/ folder), merge changes on the following template files (if present):

  • com/gallerysystems/emuseum/core/pages/advancedsearch/AdvancedsearchResults.tml

  • com/gallerysystems/emuseum/core/pages/search/SearchResults.tml

6.4.7

Solr Changes

If a separate Solr data folder is used (instead of <EMUSEUM_HOME>/solr/solr8) for Solr 8, copy over the following files:

  • <EMUSEUM_HOME>/solr/solr8/records/conf/solrconfig.xml

  • <EMUSEUM_HOME>/solr/solr8/vocabularies/conf/solrconfig.xml

6.4.9

Template Changes

Template updates are only required for custom skins.

For each custom skin (sub-folders in the <EMUSEUM_HOME>/skins/ folder), merge changes on the following template files (if present):

  • com/gallerysystems/emuseum/core/base/view/page/AbstractViewPage.tml

  • com/gallerysystems/emuseum/core/components/pageviews/events/Detail.tml

  • com/gallerysystems/emuseum/core/components/pageviews/media/Detail.tml

  • com/gallerysystems/emuseum/core/components/profile/QuickSearchFieldConfig.tml

  • com/gallerysystems/emuseum/core/pages/advancedsearch/AdvancedsearchResults.tml

  • com/gallerysystems/emuseum/core/pages/search/SearchResults.tml

  • com/gallerysystems/emuseum/core/pages/users/UsersIndex.tml

6.4.10

Solr Changes

If a separate Solr data folder is used (instead of <EMUSEUM_HOME>/solr/solrX), copy over the following files (adjust X to your Solr version):

  • <EMUSEUM_HOME>/solr/solrX/records/conf/schema.xml

  • <EMUSEUM_HOME>/solr/solrX/records/conf/solrconfig.xml

  • <EMUSEUM_HOME>/solr/solrX/vocabularies/conf/schema.xml

  • <EMUSEUM_HOME>/solr/solrX/vocabularies/conf/solrconfig.xml

Profile Changes

  • If a custom Profile for the People module exists (file <EMUSEUM_HOME>/profiles/people.xml), locate the field “letter” and change its attribute “type” to “keyword”: <field id="letter" type="keyword">

Run a full indexing after the changes above.

Template Changes

Template updates are only required for custom skins.

For each custom skin (sub-folders in the <EMUSEUM_HOME>/skins/ folder), merge changes on the following template files (if present):

  • com/gallerysystems/emuseum/core/components/pageviews/people/Detail.tml

6.4.11

Solr Changes

If a separate Solr data folder is used (instead of <EMUSEUM_HOME>/solr/solrX), copy over the following files (adjust X to your Solr version):

  • <EMUSEUM_HOME>/solr/solrX/records/conf/schema.xml

  • <EMUSEUM_HOME>/solr/solrX/records/conf/solrconfig.xml

  • <EMUSEUM_HOME>/solr/solrX/vocabularies/conf/schema.xml

  • <EMUSEUM_HOME>/solr/solrX/vocabularies/conf/solrconfig.xml

Template Changes

Template updates are only required for custom skins.

For each custom skin (sub-folders in the <EMUSEUM_HOME>/skins/ folder), merge changes on the following template files (if present):

  • com/gallerysystems/emuseum/core/components/media/viewers/DocumentViewer.tml

6.4.13

Profile Changes

  • Navigate to Configuration → Data and Search Settings → Field Configuration, select the Objects module, open Search → Quick Search, click on the cog wheel of the “invno” field and uncheck the Search Suggestions option “tokenized”.

Run a full indexing after making these changes.

Template Changes

Template updates are only required for custom skins.

For each custom skin (sub-folders in the <EMUSEUM_HOME>/skins/ folder), merge changes on the following template files (if present):

  • com/gallerysystems/emuseum/core/components/DetailsBlock.tml

6.4.14

Solr Changes

If a separate Solr data folder is used (instead of <EMUSEUM_HOME>/solr/solr9) for Solr 9, copy over the following files:

  • <EMUSEUM_HOME>/solr/solr9/records/conf/schema.xml

Profile Changes

  • If a custom Profile for the People module exists (file <EMUSEUM_HOME>/profiles/people.xml), change the label of the field “alphaSort” to “Alpha Sort”.

Installation

This page explains the installation procedure for eMuseum.

Overview

By default, the following ports will be used:

  • Tomcat

    • HTTP: 80

    • HTTPS: 443

    • Shutdown: 8005

  • Solr: 8983

On Windows, we will install everything into a base folder (e. g. C:\eMuseum):

  • C:\eMuseum

    • \home

    • \jdk17

    • \solr9

    • \Tomcat9

It is recommended to use the major version in the folder name but leave out any other version part. That will ensure that references do not need to be adjusted on every update.

On Linux, Java will be installed via the package management, Tomcat will be installed manually at /opt/tomcat9 with a working directory at /var/opt/tomcat, Solr will be installed via the official installation script with a symlink at /opt/solr and the data located at /var/solr, and eMuseum will be installed to /var/opt/emuseum:

  • /opt/tomcat9

  • /opt/solr → /opt/solr-x.y.z

  • /var/solr

  • /var/opt/tomcat

  • /var/opt/emuseum

eMuseum Installation Package

Acquire an eMuseum installation package as the first step of the installation. Default packages can be downloaded from the Community Portal.

Create a base folder, e. g. C:\eMuseum, and extract the installation package into it. Rename the resulting installation folder to home.

Extract the installation package and move it to /var/opt/emuseum:

unzip eMuseum-6.4.12.zip
mv eMuseum-6.4.12 /var/opt/emuseum

3rd-party Requirements

Next, install all required 3rd-party requirements.

Install Java

Install Java in the required version.

Download Java from adoptium.net. Make sure to pick the correct version and architecture. Then, install it to C:\eMuseum\jdk17 (adjust the folder name to match the Java version).

Install the OpenJDK package in the required version via the package management.

On Ubuntu, this can be done with apt:

apt install openjdk-17-jdk

Install Tomcat

Install the required version of Tomcat.

Download Tomcat from tomcat.apache.org. For an easy installation that includes a service, pick the 32-bit/64-bit Windows Service Installer.

Execute the installer. Un-check all additional options like the documentation and the manager, but select all options under the root item (Tomcat Native and service). The first path the installer asks for is the Java directory, not the Tomcat installation folder. Select C:\eMuseum\jdk17. The second path will be the Tomcat installation folder. Select C:\eMuseum\Tomcat9 (adjust the folder name to match the Tomcat version). Use only “eMuseum” as the name; the installer will add “Apache Tomcat” in front of it. Starting the service to let Tomcat create some default folders is recommended.

After the installation, stop the Tomcat service and increase the memory by executing the Tomcat configuration utility at C:\eMuseum\Tomcat9\bin\eMuseumw.exe. Under the tab “Java,” set the start memory to “512” and the maximum memory to a minimum of “4096”.

Next, adjust the port of the HTTP connector in C:\eMuseum\Tomcat9\conf\server.xml from “8080” to “80” and increase the maxParameterCount to "3000":

    <Connector port="80" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443"
               maxParameterCount="3000">

To set up HTTPS, uncomment one of the example connectors, change its port to “443” and adjust the TLS settings.

Download and import Tomcat PGP keys:

cd ~/
wget https://downloads.apache.org/tomcat/tomcat-9/KEYS
gpg --import KEYS
rm KEYS

Download, verify and extract Tomcat 9 tar ball to /opt/ (adjust the version to use the latest):

wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.84/bin/apache-tomcat-9.0.84.tar.gz
wget https://downloads.apache.org/tomcat/tomcat-9/v9.0.84/bin/apache-tomcat-9.0.84.tar.gz.asc
gpg --verify apache-tomcat-9.0.84.tar.gz.asc
tar -xzf apache-tomcat-9.0.84.tar.gz
mv apache-tomcat-9.0.84 /opt/
rm apache-tomcat-9.0.84.tar.gz
rm apache-tomcat-9.0.84.tar.gz.asc

Create a symlink tomcat9 → apache-tomcat-9.0.84:

ln -s /opt/apache-tomcat-9.0.84 /opt/tomcat9

Create a Tomcat group and user:

groupadd --system tomcat
useradd --system -s /usr/sbin/nologin -g tomcat tomcat

Adjust the file permissions:

chown -R tomcat:tomcat /opt/apache-tomcat-9.0.84/
find /opt/tomcat9/ -type d -exec chmod 755 {} \;
find /opt/tomcat9/ -type f -exec chmod 644 {} \;
chmod +x /opt/tomcat9/bin/*.sh

Create a working directory for Tomcat:

mkdir /var/opt/tomcat
mkdir /var/opt/tomcat/webapps
cp -r /opt/tomcat9/{conf,logs,temp,work}
chown tomcat:tomcat /var/opt/tomcat
chmod 755 /var/opt/tomcat

Next, adjust the port of the HTTP connector in /var/opt/tomcat/server.xml from “8080” to “80” and increase the maxParameterCount to "3000":

    <Connector port="80" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443"
               maxParameterCount="3000">

To set up HTTPS, uncomment one of the example connectors, change its port to “443” and adjust the TLS settings.

Finally, create a Systemd service unit at /etc/systemd/system/tomcat9.service:

[Unit]
Description=Tomcat 9 servlet container
After=network.target

[Service]
Type=forking
User=tomcat
Group=tomcat
Environment="JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64/"
Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom -Djava.awt.headless=true"
Environment="CATALINA_BASE=/var/opt/tomcat"
Environment="CATALINA_HOME=/opt/tomcat9"
Environment="CATALINA_OPTS=-Xms1024M -Xmx4096M -server -XX:+UseParallelGC"
EnvironmentFile=-/etc/tomcat/%i.conf
ExecStart=/opt/tomcat9/bin/startup.sh
ExecStop=/opt/tomcat9/bin/shutdown.sh

[Install]
WantedBy=multi-user.target

Enable and start the service:

systemctl daemon-reload
systemctl enable --now tomcat9.service

Install Database Management Engine

If you want to use a standalone database instance, install one of the supported Database Management Systems. Otherwise, use an existing database server.

Install Solr

If you want to use a standalone instance of Solr, please follow the following steps. If you plan to use a shared instance, skip the next steps.

Download the Solr binary release from https://solr.apache.org/downloads.html and extract the package to C:\eMuseum\solr9 (adjust the folder name to match the Solr version).

On the download page, you will only find tar.gz files. However, on a recent version of Windows, the following tar can be used via the command line to extract the package (adjust the filename to match the Solr version):

tar zxf solr-9.5.0.tgz

Configure the JVM that Solr uses by setting the following line in C:\eMuseum\solr9\bin\solr.in.cmd:

set SOLR_JAVA_HOME=C:\eMuseum\jdk17

To set up Solr as a service, download the latest version of the Windows Service Wrapper (WinSW) from https://github.com/winsw/winsw/releases (pick the Windows 64-bit executable). Move the file to C:\eMuseum\home\utils\WinSW and rename it to eMuseumSolr.exe. Next, rename the XML file eMuseumSolr.example.xml in that folder to eMuseumSolr.xml (both the XML and the exe files have to have the same name). Finally, open a command prompt with administrator permissions, navigate to the folder, and run the following command:

cd C:\eMuseum\home\utils\WinSW
eMuseumSolr.exe install

Start the service.

Download Solr binary release from https://solr.apache.org/downloads.html and follow the https://solr.apache.org/guide/solr/latest/deployment-guide/taking-solr-to-production.html.

eMuseum Application

Create Database

Create a new eMuseum database including user as follows.

If you want to use SQL Server Management Studio, open it, connect to the database server, and do the following steps:

  • Create a new login with the name “emuseum” and a strong password. Disable all password policies.

  • Create a new database named “emuseum” with the owner set to “emuseum” and the Recovery Model set to “simple”

Alternatively, run the following SQL script (adjust the login password!):

CREATE DATABASE emuseum;
ALTER DATABASE [emuseum] SET RECOVERY SIMPLE;

CREATE LOGIN emuseum WITH PASSWORD = N'emuseum', CHECK_POLICY = OFF, CHECK_EXPIRATION = OFF;

USE emuseum;
CREATE USER emuseum FROM LOGIN emuseum;
EXEC sp_addrolemember 'db_owner', 'emuseum';

Either use a management client of your choice or run the following SQL script (adjust the login password!):

CREATE DATABASE emuseum CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'emuseum'@'localhost' IDENTIFIED BY PASSWORD 'emuseum';
GRANT ALL PRIVILEGES ON emuseum.* TO 'emuseum'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;

If the database server is running on a different host, adjust the host value. Use “%” to allow the user to connect from any host.

Create Database Schema

Since version 6.4, eMuseum creates the database schema automatically on start-up.

Create Solr cores

Copy eMuseum’s core configuration to Solr’s data folder.

Copy eMuseum’s core configuration from C:\eMuseum\home\solr\solr9 to Solr’s data folder.

If Solr has been installed for eMuseum only, the data folder will be C:\eMuseum\solr9\server\solr.

Copy eMuseum’s core configuration from /var/opt/emuseum/solr/solr9/ to Solr’s data folder.

If Solr has been installed for eMuseum only, the data folder will be /var/solr/data/.

If Solr is not used exclusively for eMuseum, the data folder depends on the Solr setup. Rename the core folders to emuseum_records and emuseum_vocabularies (if you use a shared Solr instance for several eMuseum applications, use a prefix like the client name). Additionally, change the core names inside core.properties files within the core folders to match the folder names.

Restart Solr for the changes to take effect. Optionally, you can log in to the Solr admin dashboard at http://localhost:8983/ and check if the two cores are listed.

Deploy Webapp

Create a context descriptor by copying an example context.xml file from C:\eMuseum\home\bin\context to C:\eMuseum\home\bin\ROOT.xml which matches the database management system (e. g. context.mssql.xml for SQL Server).

Create a context descriptor by copying an example context.xml file from /var/opt/emuseum/bin/context/ to /var/opt/emuseum/bin/ROOT.xml which matches the database management system (e. g. context.mssql.xml for SQL Server)

Adjust the following settings:

  • emuseum.home The path to the eMuseum folder: C:\eMuseum\home (Windows) or /var/opt/emuseum (Linux)

  • emuseum.jdbcurl The database connection URL

  • emuseum.dbuser The database user name

  • emuseum.dbpassword The database user password

  • solr.serverUrl The base URL of the Solr server

  • solr.corePrefix The prefix of the Solr cores (including any trailing character like _).

Copy the context descriptor to Tomcat.

Copy the XML file from above to Tomcat’s configuration folder: C:\eMuseum\Tomcat9\conf\Catalina\localhost\ROOT.xml

Copy the XML file from above to Tomcat’s configuration folder: /var/opt/tomcat/conf/Catalina/localhost/ROOT.xml

Deploy the war file.

To deploy the webapp on Window, copy the war file from C:\eMuseum\home\bin\emuseum-6.4.war (adjust the version number) to C:\eMuseum\Tomcat9\webapps\ROOT.war.

To deploy the webapp on Linux, copy the war file from /var/opt/emuseum/bin/emuseum-6.4.war (adjust the version number) to /var/opt/tomcat/webapps/ROOT.war.

For Tomcat to match the configuration with the application, it is crucial that the war file and the context description have the same name (except for the file extension).

Start the Tomcat service.

First Start

Open a web browser and navigate to http://localhost/admin. Login as superuser/superuser.

Change Superuser Password

Change the superuser password to a strong password.

Set License

Set a license under Configuration → Application → License.

Configure Application

Adjust the following application settings:

  • Application name

  • Hostname

  • Use HTTPS (if enabled and a domain has been set up)

Skins

Skins, or themes, give eMuseum its look, feel, and structure. You can adjust most aspects of your site's appearance by editing its default skin files or by adding and activating a new skin. A skin consists of file types common to the web, such as CSS stylesheets, JavaScript files, image (graphics) files, and eMuseum-specific template files ('.tml').

eMuseum 6 uses modern web standards with a clean separation between content and design, allowing anyone familiar with CSS styles to make basic changes to your site's appearance. eMuseum template files are HTML-compatible and also include processing logic. This logic is unobtrusive to web browsers, which will render the content as HTML.

Adding and activating a skin is straightforward. Your installation package contains 3 skins by default:

  • Internal - the default design that can be modified through configuration options but should not have its files altered.

  • default_neue - a copy of the internal skin which can be altered or copied. This is good for small design changes using eMuseum's default design as the basis.

  • skeleton_neue - A stripped-down/minimalist skin with all features but little design opinion. This is a good starting point for completely new designs.

To create your own skin, you can do so by:

  • Navigating to \skins

  • Copy the "defaultSkin" to start with a base exactly like the active internal skin, or copy the "skeleton" skin to start with a base that has all functionality but is stripped down with very little default styling to allow for a complete re-skinning.

  • Rename the skin you just copied

  • Refresh the skins configuration page and select the new skin from the "Available Skins" select list.

You can create additional skins by copying and renaming the default Skins directory or creating an empty directory with a unique skin name and copying only selective files (e.g.,' Layout.tml' and 'styles.css') into the Skins directory. eMuseum checks the active Skins folder for an override to the default skin running under the web application container:

  • If an override is found in the active Skins directory, it will load that template, stylesheet, etc.

  • If an override is not found in the active Skins directory, then the default template, stylesheet, etc., is used.

This allows you to easily modify and manage a few select files under your Skins directory while deferring to the default set of templates for most of your needs.

Note: There are no restrictions on how you name a skin. The name will only appear on the Skins Configuration page; it is never displayed to the end-user.