Skip to content

Refactor and add UI to control Collection preferences #7440

@grantfitzsimmons

Description

@grantfitzsimmons

Description

Currently, configuring collection-specific behaviors—such as default record creation, statistics display, and data inheritance rules—requires administrators to manually edit a combination of preferences app resources and the CollectionPreferences app resource. This process is not user-friendly, is prone to syntax errors, and lacks discoverability for new users.

Creating a dedicated user interface for these settings, similar to the existing UserPreferences panel, will significantly improve usability, reduce configuration errors, and lower the support burden associated with helping users modify these settings correctly. This feature will provide a centralized and intuitive location for administrators to manage all collection-level preferences.

Migration

Existing preferences should be migrated if at all possible to this new system. Preferences previously set at the institution level would now need to be set at the collection level automatically for all present collections.

Requirements

  1. New User Interface: A new settings page, titled "Collection Preferences," should be created to manage all preferences currently stored in the CollectionPreferences app resource. The interface should be modeled after the existing UserPreferences page for consistency.
  2. Menu Accessibility: This page should be accessible from the User Tools menu via a new menu item named "Collection Preferences."
  3. Permissions:
    • Access to the "Collection Preferences" menu item and page should be granted to users who have the default Collection Admin role and the explicit permission to edit app resources for the current collection.
    • Users with the Institution Admin role of course will have access by default.
  4. Documentation:
    • Links to relevant documentation for each preference will need to be added.

Preference Configuration

The following tables outline the settings that should be configurable from the new "Collection Preferences" interface, grouped by functional area.

General

Preference Title Internal Name Type Default Value Source Description
Scope 'Entire Table' Picklists sp7_scope_table_picklists Checkbox false remotePrefs.ts If enabled, picklists of type 'Entire Table' will only show items that are in use within the current collection.
New Attachments are Public attachment.is_public_default Checkbox false remotePrefs.ts Sets the default visibility for new attachments. If checked, attachments will be "Public" by default.

Collection Object Creation

Note

For these, (currently prefs named CO_CREATE_*), these would be better solved by #7439 which implements a generic solution in the view definition. This can be ignored in favor of that solution.

Preference Title Internal Name Type Default Value Source Description
Create Attributes on New Record CO_CREATE_COA Checkbox false remotePrefs.ts Automatically create a new Collection Object Attribute record when a Collection Object is created.
Create Preparation on New Record CO_CREATE_PREP Checkbox false remotePrefs.ts Automatically create a new Preparation record when a Collection Object is created.
Create Determination on New Record CO_CREATE_DET Checkbox false remotePrefs.ts Automatically create a new Determination record when a Collection Object is created.

Tree Management

For all of these items, the documentation is here.

Preference Title Internal Name Type Default Value Source Description
Allow Adding Children to Synonymized Geologic Time Period sp7.allow_adding_child_to_synonymized_parent.GeologicTimePeriod Checkbox false remotePrefs.ts Allows you to add children to synonymized parents and to synonymize a node with children.
Allow Adding Children to Synonymized Taxon sp7.allow_adding_child_to_synonymized_parent.Taxon Checkbox false remotePrefs.ts Allows you to add children to synonymized parents and to synonymize a node with children.
Allow Adding Children to Synonymized Geography sp7.allow_adding_child_to_synonymized_parent.Geography Checkbox false remotePrefs.ts Allows you to add children to synonymized parents and to synonymize a node with children.
Allow Adding Children to Synonymized Lithostratigraphy sp7.allow_adding_child_to_synonymized_parent.LithoStrat Checkbox false remotePrefs.ts Allows you to add children to synonymized parents and to synonymize a node with children.
Allow Adding Children to Synonymized Storage sp7.allow_adding_child_to_synonymized_parent.Storage Checkbox false remotePrefs.ts Allows you to add children to synonymized parents and to synonymize a node with children.
Allow Adding Children to Synonymized Tectonic Unit sp7.allow_adding_child_to_synonymized_parent.TectonicUnit Checkbox false remotePrefs.ts Allows you to add children to synonymized parents and to synonymize a node with children.

Statistics Page

Preference Title Internal Name Type Default Value Source Description
Show Preparations Total showPreparationsTotal Checkbox true CollectionDefinitions.tsx If enabled, the preparations statistics panel will include a total count across all preparation types. Documentation.
Auto-Refresh Rate (Hours) refreshRate Integer 24 CollectionDefinitions.tsx The time interval, in hours, at which the statistics page will automatically refresh its data. Default is 24. Documentation.

Specify Network

Preference Title Internal Name Type Default Value Source Description
Publishing Organization Key publishingOrganization Text (UUID) undefined CollectionDefinitions.tsx The GBIF publishingOrgKey (a UUID) for this collection, used for Specify Network integration.
Collection Key collectionKey Text (UUID) undefined CollectionDefinitions.tsx The GBIF dataSetKey (a UUID) for this collection, used for Specify Network integration.

Catalog Number Inheritance

Preference Title Internal Name Type Default Value Source Description
Enable Catalog Number Inheritance From Primary CO catalogNumberInheritance.inheritance Checkbox false CollectionDefinitions.tsx If enabled, Collection Object siblings will inherit the catalog number from the primary Collection Object in a Collection Object Group by default.
Enable Catalog Number Inheritance From Parent CO catalogNumberParentInheritance.inheritance Checkbox false CollectionDefinitions.tsx If enabled, Component children will inherit the catalog number from their parent Collection Object.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions