Dear DSpace Community,
I am in the process of customizing a DSpace 9.x repository and would greatly appreciate your collective expertise on several configuration points. I have a list of goals and questions, ranging from foundational metadata setup to more advanced UI adjustments.
My primary goals are to:
Extend the Submission Form:
Add a new type (e.g., "Course Material") to the dc.type dropdown.
Create new metadata fields (e.g., "Course Name", "Course Code").
(Stretch Goal) Implement conditional logic to show these new fields only when "Course Material" is selected from dc.type.
Configure Discovery Filters (Facets):
Expose the new custom metadata fields as facets.
Ensure Communities, Sub-communities, and Collections are present as facets on the homepage and other relevant pages.
Modify the behavior of the "Date" facet to explore options beyond the default range slider.
Adjust Homepage Elements:
Investigate moving the "Recent Submissions" list to a new navigation menu item.
My Specific Questions:
A. Metadata & Submission Form:
What is the current best practice for adding new values to an existing controlled vocabulary like dc.type? Is this still managed via the Admin UI's Metadata Registry, or is there a new recommended method?
For creating new fields (e.g., local.course.name), is it still preferred to use a custom schema like local over qualifying a core schema like dc?
Could you confirm that /dspace/config/submission-forms.xml (backend) remains the correct configuration file for adding these new fields to the submission form in 9.x?
B. Discovery Configuration:
4. After creating the metadata fields, what is the process for adding them as clickable facets? Is this still done exclusively through the admin interface, or are there backend configurations (/dspace/config/modules/discovery.cfg
) OR any different files to consider?
5. Communities and Collections are a core hierarchy, but they don't always appear as facets by default. How can I ensure they are enabled and configured as filters across all relevant pages (homepage, community, and collection pages)?
6. The default "Date" facet uses a range slider. How can I modify this to display as a list of years (e.g., "2024", "2023") or offer a hybrid approach? Is this a configuration change or does it require UI development?
C. UI Customization:
7. The "Recent Submissions" section is a key feature. What would be the high-level approach for relocating this content to a dedicated page under a new menu item in the navigation? Does this require a custom Angular component or is it achievable through configuration?
Stretch Goal:
8. Regarding conditional field visibility in the submission form, has there been any development or community plugin for this in the Angular UI? If not, would this require a custom submission component, and are there any known examples to use as a starting point?
Any guidance, links to updated documentation, or pointers to relevant code sections for DSpace 9.x would be immensely helpful. I am particularly eager to get the foundational metadata and discovery facets correctly configured.
Thank you for your time and continued support of this fantastic platform.
Best regards,
Abid Fakhre Alam
A. Metadata & Submission Form:
What is the current best practice for adding new values to an existing controlled vocabulary like dc.type? Is this still managed via the Admin UI's Metadata Registry, or is there a new recommended method? Yes, use the metadata registry.
For creating new fields (e.g., local.course.name), is it still preferred to use a custom schema like local over qualifying a core schema like dc? Yes, we still recommend "local" for local changes. But, honestly it's up to you.
Could you confirm that /dspace/config/submission-forms.xml (backend) remains the correct configuration file for adding these new fields to the submission form in 9.x? Yes, that's the submission config file. More docs at https://wiki.lyrasis.org/display/DSDOC9x/Submission+User+Interface
B. Discovery Configuration:
4. After creating the metadata fields, what is the process for adding them as clickable facets? Is this still done exclusively through the admin interface, or are there backend configurations (/dspace/config/modules/discovery.cfg
) OR any different files to consider? You would have to follow the Discovery Documentation for adding facets. See https://wiki.lyrasis.org/display/DSDOC9x/Discovery#Discovery-Searchfilters&sidebarfacetsCustomization Existing facets are always good examples to look at and base your facet off of one of them.
5. Communities and Collections are a core hierarchy, but they don't always appear as facets by default. How can I ensure they are enabled and configured as filters across all relevant pages (homepage, community, and collection pages)? I'm not aware of a way to facet by Communities/Collections other then the existing option to search within an existing Community or Collection. This can be done from the "All of DSpace" button on the search page (e.g. https://demo.dspace.org/search?query=) next to the search box, or from individual Community/Collection pages on the search tab.
6. The default "Date" facet uses a range slider. How can I modify this to display as a list of years (e.g., "2024", "2023") or offer a hybrid approach? Is this a configuration change or does it require UI development? That would require custom UI development. There's no configuration available for this range slider.
C. UI Customization:
7. The "Recent Submissions" section is a key feature. What would be the high-level approach for relocating this content to a dedicated page under a new menu item in the navigation? Does this require a custom Angular component or is it achievable through configuration? That would require custom UI development. There's no option to move this to a different page.
Stretch Goal:
8. Regarding conditional field visibility in the submission form, has there been any development or community plugin for this in the Angular UI? If not, would this require a custom submission component, and are there any known examples to use as a starting point? This is available in configuration using the "<type-bind>" tag. See the docs at https://wiki.lyrasis.org/display/DSDOC9x/Submission+User+Interface#SubmissionUserInterface-ItemtypeBasedMetadataCollection