August

Goobi viewer Digest for August 2021

Coming soon 🚀

  • Comments revision

  • Docker container

  • User page in the frontend

Announcements

As already announced in the last two digests, Java 11 will be mandatory from this release. If a system has not yet been updated, this must be done at the latest with a Goobi viewer update.

Developments

Docker

GEI enables deployment of the Goobi viewer in Docker containers

Together with the Georg Eckert Institute, Leibniz Institute for International Textbook Research, we are developing a solution to provide the Goobi viewer and all related components and services as a Docker container.

We are proud to release the first Dockerfiles and preview containers with the August release. The work is not finished yet, but containers for the following components can already be obtained from Docker Hub:

  • Apache Solr (preconfigured for Goobi viewer)

  • Goobi viewer Indexer

  • Goobi viewer Connector

  • Goobi viewer Reference Theme

The theme binds the core as a dependency, thus the theme is the actual main container.

In the next month we will release a central docker-compose file and write a tutorial on how to get Goobi viewer up and running with Docker.

Media

In the CMS area, the upload of SVG files and MP4 videos is now supported. These can then be included, for example, in CMS pages or even in the slider.

Video files in records have a placeholder image via the additional poster attribute that displays a play button by default.

Quality Friday

As announced in the last two digests, the Goobi viewer team was not complete throughout August. For this reason it was difficult to do larger developments where the work of one builds on the work of the other. That's why we did more work that we call "Quality Friday".

This has been in place at intranda for many years and states that an employee is allowed to use 10 % of his or her working time for tasks and developments that, for example, serve to generally improve the software, documentation, automatic tests or the configuration of the development environment. This work is usually not covered by development contracts, but if it were not done, "technical debt" is incurred and regular work becomes more difficult, tough and tedious over time.

Based on the saying "Friday from one o'clock everybody does his own thing!" and the calculation that in a 40 hour week 10 % of the working time is four hours, i.e. half a day per week, the idea then arose to use Friday afternoon for this work. This gave birth to the term "Quality Friday", or "QF" for short. In August, we carried out a wide variety of work in this context. In the following we would like to list and explain some of them:

Configuration file (QF)

Over the years the central configuration file config_viewer.xml has grown and grown. With it has grown for example also the way with which functionality is switched on or off. Here an example how it was so far:

<user>
<userRegistrationEnabled>true</userRegistrationEnabled>
</user>
<reCaptcha show="false" />
<calendar>
<enabled>true</enabled>
</calendar>
<sidebar>
<toc>
<visible>true</visible>
</toc>
<sidebarRssFeed display="true" />
<sidebarWidgetDownloads visible="true" />
</sidebar>

Even without delving deeper into the matter, it is very quickly apparent that a wide variety of variants and terms existed to always do the same thing. After the "Quality Friday" work, a uniform terminology and spelling can be recognized here:

<user>
<registration enabled="true" />
</user>
<reCaptcha enabled="false" />
<calendar enabled="true" />
<sidebar>
<toc enabled="true" />
<sidebarRssFeed enabled="true" />
<sidebarWidgetDownloads enabled="true" />
</sidebar>

Certainly, we have overlooked things at this point that will only become apparent to us in the coming months and will then be adjusted. But we have laid a good foundation. Changes like these always make an update longer, because the local configuration file has to be adapted and migrated to the changed standard configuration. In the long run, however, they lead to a significant improvement in many workflows: A developer no longer has to think about how to name a new switch, because he can orientate himself on the existing ones. The learning curve is much steeper for everyone, the transferability of knowledge from one element to another is easy and does not have to be looked up every time. Last but not least, the configuration file as a whole becomes shorter and thus more concise.

We have also reviewed the comments contained in the configuration file to a large extent and homogenized them in the way functionality and switches are formulated.

Accessibility (QF)

In November 2020, we ensured WCAG 2.1 AA accessibility in the Goobi viewer. Now, a good half year later, we have gone through the code again and readjusted a few places. This mainly affects the slider and maps.

We went through all the pages in the Goobi viewer core and looked at how the sidebar is built. This had grown over the years and was no longer consistent. We made sure that all static pages now display consistent and meaningful widgets, removed some on some pages and added some on others.

XHTML (QF)

The Goobi viewer web pages are written in XHTML files and implemented there using the JSF templating framework. In the XHTML files we have cleaned up various things, such as aligning the order of code blocks within the files to the order of the page display, adjusting and correcting indentations of code, or standardizing the use of so-called namespaces. Typical "housekeeping".

Browser Console (QF)

For developers it is necessary that the console in the developer tools of the browser works and is clear. Any kind of errors, warnings and unnecessary output should be avoided. We went through this section again and made several changes. First, we commented out unnecessary messages. Then we made adjustments in Grunt for the generation of the Goobi viewer custom CSS and Javascript files to set the path to the source maps correctly. At the end we started to rework the management of the used javascript libraries to include the source maps as well.

Goobi viewer indexer

The way the Goobi viewer indexes and manages the configuration file has been modernized. Now it is no longer necessary to replace spaces with a placeholder but they can be used directly in regular expressions etc. without explicit masking.

Version numbers

The versions that must be entered in the pom.xml of the theme in order to get the functions described in this digest are:

<dependency>
<groupId>io.goobi.viewer</groupId>
<artifactId>viewer-core</artifactId>
<version>21.08.5</version>
</dependency>
<dependency>
<groupId>io.goobi.viewer</groupId>
<artifactId>viewer-core-config</artifactId>
<version>21.08</version>
</dependency>

The Goobi viewer Indexer has the version number 21.08

The Goobi viewer Connector has the version number 21.08.2

The Goobi viewer Crowdsourcing Module has the version number 21.08