Terry Brady
Georgetown University Library
https://github.com/terrywbrady/info
-
DSpace Committer
-
Software Developer for the Georgetown University Library
- Lead developer for DigitalGeorgetown
@ul
- Demonstrate multiple ways to ingest content into DSpace
- Code 1: Change browse display properties
- Code 2: Change Collection Metadata
- === 2a: Customize item submission process
- === 2b: Customize item metadata to display
- === 2c: Customize metadata navigation facets
- Code 3: Create a collection-specific theme
@ulend
+++
- Not all of the code changes will make immediate sense
- The key is to see HOW the changes are made
- Once you know HOW to change something in DSpace, other types of changes are easy to learn
- As we rebuild DSpace, I will share some DigitalGeorgetown examples
+++
+++
- DSpace 6.2 "Release" Code - For This Demo
- This is what we will modify
@ul
- You need a runtime environment for your code
- A server with tomcat and a postgres database (linux preferred)
- Docker or Vagrant containers (development tools)
- Cloud development environment like Codenvy (codenvy.com)
- For this presentation, Codenvy will be used
@ulend
+++
- This page describes how you can configure a site on Codenvy
- Codenvy Factory for this demo
- Becoming comfortable with the ingest options for DSpace is a key way to make DSpace your own
- We will review a couple of options
+++
- For time, this has already been run
- AIP Ingests preserve handle ids
- Sample AIP Files with pictures of my dog
+++?code=https://raw.githubusercontent.com/DSpace-Labs/DSpace-codenvy/master/Scripts/workspaceInit.sh Workspace initialization script - already run @[34](Before ingesting content, we need an administrator id) @[36-43](Data Load Script)
+++
+++
- Branch: webinar-code1
- Pull Request
- Start Rebuild
+++?image=presentation-files/code1.png&size=auto 90%
+++
- This file contains hundreds of properties that can be modified
- Many of the most common customization tasks are captured in this file
- When testing a change, you can also copy a property change into your local.cfg file
+++?code=https://raw.githubusercontent.com/DSpace-Labs/DSpace-rel-demo/webinar-code1/dspace/config/dspace.cfg dspace/config/dspace.cfg @[1896](Turn on thumbnail view in xmlui)
+++
# set the following in Codenvy configs
# DSPACE_SRC=/home/user/dspace-src/DSpace
# DSPACE_INSTALL=/home/user/dspace
# LOCAL_CFG=/projects/DSpace-codenvy/CodenvyConfig/local.cfg
# MVN_TARGET=package
# MVN_TARGET="package -Dmirage2.on=true"
# DSPACE_VER=6
START_TOMCAT=${1:-1}
TOMCAT=/home/user/tomcat8/bin/catalina.sh
cd ${DSPACE_SRC} || die "src dir ${DSPACE_SRC} does not exist"
cp ${LOCAL_CFG} . || die "error copying local: ${LOCAL_CFG}"
mvn ${MVN_TARGET} || die "maven failed"
cd dspace/target/dspace-installer || die "install dir not found"
${TOMCAT} stop
ant update clean_backups || die "ant update failed"
${TOMCAT} run
@[2-10](Environment variable setup) @[12](Go to source directory) @[13](Local config file contains server specific settings) @[14](Run the maven build) @[15](Go to build directory) @[16](Stop tomcat) @[17](Install built files to server) @[18](Start Tomcat)
+++?code=dspace/config/dspace.cfg?lang=AsciiDoc @[19](Basic System Config: directories, servers, email, database) @[182](DOI Configuration) @[227](Handle Configuration) @[263](Default Permissions for Collection Administrators) @[341](Media Plugins) @[431](Crosswalk Configuration) @[696](Named Embargo Policy Configuration) @[782](Metadata hide configuration) @[800](Item Submission Configration) @[823](Creative Commons) @870 @1261 @[1342](Open Search) @1405 @1422 @[1434](Authority Control) @[1590](JSPUI Config) @[1829](XMLUI Config)
+++
+++
- Note the facets that are present
- Note the items that have been added
- Manually submit an item to the collection
- Branch: webinar-code2
- Pull Request
+++?image=presentation-files/code2a.png&size=auto 90%
+++?code=https://raw.githubusercontent.com/DSpace-Labs/DSpace-rel-demo/webinar-code2/dspace/config/input-forms.xml dspace/config/input-forms.xml @[74-84](This input field is moved towards the top) @[79](Type field label change) @[82](Type field defined as mandatory)
+++
- Branch: webinar-code2b
- Pull Request
+++?image=presentation-files/code2b.png&size=auto 90%
+++
- Copy the following from the source branch
- dspace-xmlui/src/main/webapp/themes/Mirage/Mirage.xsl
- And graft it into the overlay area
- dspace/modules/xmlui/src/main/webapp/themes/Mirage/Mirage.xsl
- Add the item summary display template from the following file
- dspace-xmlui/src/main/webapp/themes/Mirage/lib/xsl/aspect/artifactbrowser/item-view.xsl
+++?code=https://raw.githubusercontent.com/DSpace-Labs/DSpace-rel-demo/webinar-code2b/dspace/modules/xmlui/src/main/webapp/themes/Mirage/Mirage.xsl themes/Mirage/Mirage.xsl @[46](Item summary view template) @[245](Add block to show subject field on page) @[263](Add block to show type field) @[282](Update field sequence) @[294](Update field sequence)
- Branch: webinar-code2c
- Pull Request
- Start Rebuild
+++?image=presentation-files/code2c.png&size=auto 90%
+++?code=https://raw.githubusercontent.com/DSpace-Labs/DSpace-rel-demo/webinar-code2c/dspace/config/spring/api/discovery.xml dspace/config/spring/api/discovery.xml @[404-416](Define facet field for type) @[99](Add new facet to sidebar) @[112](Add new facet to advanced search filter list)
+++
- Copy the following from the source branch
- dspace-xmlui/src/main/webapp/i18n/messages.xml
- And graft it into the overlay area
- dspace/modules/xmlui/src/main/webapp/i18n/messages.xml
+++?code=https://raw.githubusercontent.com/DSpace-Labs/DSpace-rel-demo/webinar-code2c/dspace/modules/xmlui/src/main/webapp/i18n/messages.xml&lang=xml i18n/messages.xml @[2506-2509](customize/translate name for new facet)
+++
- Here are some of our examples of facet customization
- Georgetown Institutional Repository
- MOOC Collection - Custom Facets
- Dean Krogh Collection - Custom Facets and Video Integration
- Court Records and Briefs
+++
- Item Submission - type is now mandatory
- Item Page - type and subject are displayed
- Collection page - see the type facet
- Re-index content if needed
[dspace-install]/bin/dspace index-discovery -b
- Change background colors
- Add logo
- Apply to a specific community
+++
- Branch: webinar-code3
- Pull Request
- Start Rebuild
+++?image=presentation-files/code3.png&size=auto 90%
+++
- Copy the following from the source branch
- dspace-xmlui/src/main/webapp/themes/Mirage/sitemap.xmap
- And graft it into the overlay area
- dspace/modules/xmlui/src/main/webapp/themes/Demo/sitemap.xmap
+++?code=https://raw.githubusercontent.com/DSpace-Labs/DSpace-rel-demo/webinar-code3/dspace/modules/xmlui/src/main/webapp/themes/Demo/sitemap.xmap&lang=xml themes/Demo/sitemap.xmap @[81-82](Add custom css demo.css) @[103-104](Reuse the Mirage.xsl stylesheet) @[125-130](Reference Mirage paths for most resources)
+++?code=https://raw.githubusercontent.com/DSpace-Labs/DSpace-rel-demo/webinar-code3/dspace/modules/xmlui/src/main/webapp/themes/Demo/demo.css themes/Demo/demo.css @[2-4](Change background color)
+++?code=https://raw.githubusercontent.com/DSpace-Labs/DSpace-rel-demo/webinar-code3/dspace/config/xmlui.xconf dspace/config/xmlui.xconf @[157](Set collection-specific theme for a specific handle)
+++
- Here are some of our examples of theme customization
- Georgetown Institutional Repository
- Art Collections - Custom Metadata
- DC Historic Preservation - Markdown Formatting
- Cartoon collection - IIIF Integration
+++
- Note that the default theme is still in place
- Note that the new theme is scoped only to one collection
@ul
- DSpace has great tools for ingesting new collections
- Once you are comfortable rebuilding DSpace, there is a lot you can customize
- The community is friendly and helpful: DSpace Support
- The community is appreciative of volunteers and is always looking for contributors, testers, and participation: Community Lists
@ulend
@ul
- Digital Services Tools in File Analyzer
- DSpace 6 REST Reporting Tools
- IIIF Image Viewer Integrated with DSpace
- Generating IIIF Manifests with File Analyzer
- Running DSpace on Codenvy
- Running DSpace with Docker Tutorial
@ulend
Terry Brady
Georgetown University Library