Totara Release Notes

Totara Learn Evergreen-20191230, 12.13, 11.22, 10.28, 9.39

 
David Curry (Core Developer)
Totara Learn Evergreen-20191230, 12.13, 11.22, 10.28, 9.39
door David Curry (Core Developer) - Sunday, 29 December 2019, 15:52 PM
Groep Totara

Hello everyone,

The following versions of Totara Learn have now been released:

These versions do contain security fixes, and for this reason we strongly recommend upgrade.
Each release also includes bug fixes and improvements.

A big thanks to the following people for their contributions to this release:

  • Derek Henderson at Remote-Learner - TL-22097
Kind regards David Curry

Release Evergreen (30th December 2019):


Key:           + Evergreen only

Important:

    TL-22800       Reworked the appraisal role assignment process to prevent duplicate assignments

                   1) This patch adds a new index to the appraisal_user_assignment table – a
                   unique index on an appraisal ID/appraisee ID combination.
                   
                   It is possible that a site's appraisal_user_assignment table already has
                   duplicates; in this case, the site upgrade will fail. Therefore before
                   doing this upgrade, back up the site and then run this SQL query:
                   
                   SELECT userid, appraisalid, count(appraisalid) as duplicates
                    FROM mdl_appraisal_user_assignment
                    GROUP BY appraisalid, userid
                    HAVING count(appraisalid) > 1
                   
                   If this query returns a result, it means that the table has duplicates, and
                   they must be resolved first before an upgrade can successfully run. For
                   help, get in touch with the Totara support team and indicate the site has
                   been affected by TL-22800.
                   
                   2) The behaviour has changed when the 'Update now' button is pressed in the
                   appraisal assignment tab. This is only for dynamic appraisals and the
                   button appears when appraisal assignments are added/removed after
                   activation. Previously when the button was pressed, the assignments were
                   updated in real time and the user would wait until the operation completed.
                   The refreshed screen would then show the updated list of appraisees.
                   
                   With this patch, pressing the button spawns an ad hoc task instead and the
                   refreshed screen does not show the updated list of appraisees. Only when
                   the ad hoc task runs (depending on the next cron run – usually in the
                   next minute) are the assignments updated. When the user revisits the
                   appraisal assignment page, it will show the updated list of appraisees.


Security issues:

    TL-21671       Legacy internal flag 'ignoresesskey' is now usable within one request only, to prevent any potential security issues

Improvements:

    TL-19291       Disabled the MathJax filter plugin for fresh installations

                   The MathJax library is being fetched through the official content
                   distribution network. While it is a secure way of distributing the library,
                   this introduces some extra security risks that are unnecessary if the
                   library is not being used. Therefore it is recommended to disable the
                   plugin if formulas are not used in the editor anywhere on the site.

    TL-22097       Added support for redirection to originally-requested page when users are required to add missing profile information
    TL-22118       Removed support for obsolete counted recordsets

                   SQL_CALC_FOUND_ROWS and FOUND_ROWS() were deprecated as of MySQL 8.0.17.
                   Both were used by the get_counted_recordset() function, which is now marked
                   as deprecated and all usages have been modified to use alternatives.

    TL-22598       Improved 'Course visibility' selector help text
    TL-22837       Added setting to allow Solr search engine-defined default search fields to be used instead of those sent by Totara
    TL-22979       Added screen reader text stating which filters are in use when using the Grid catalogue
    TL-22982       Improved button signification when using a screen reader on the Grid catalogue

                   The 'share', 'list view' and 'grid view' buttons are now correctly
                   signified as buttons when using screen reader on the Grid catalogue.

    TL-23053   +   Improved user assignment search for appraisals

                   Previously, the user search for appraisal assignments, 360 feedback and
                   report builder global restrictions did not find expected results for some
                   search terms, e.g. when typing first name and last name of a user. This has
                   been improved by switching to a better keyword parsing method.

    TL-23169       Fixed an editor width issue when modifying database activity templates
    TL-23261       Improved the error message when a user without managers cannot be added to a wait-listed event

                   Please note that a user without managers cannot be added to a wait-listed
                   event if the seminar requires manager approval.

    TL-23265       Introduced an environment check for Totara 12 and below to prevent installation and upgrade if PHP 7.4 is being used
    TL-23280   +   Improved the handling of record-sets in HR Import

                   Made sure that database record-sets are closed properly in HR Import
                   hierarchy.element.class.php

    TL-23328       Improved the parsing of dates for custom profile fields obtained from LDAP servers

                   Previously the supported format of dates in LDAP servers was limited to
                   unix timestamps, this change adds parsing of multiple date formats
                   supported by PHP DateTime class.


Bug fixes:

    TL-19293       Replaced parsing of members in course groups using JavaScript eval function with JSON.parse
    TL-20745       Ensured that due dates are not changed on user reassignment of expired certifications
    TL-22062   +   Allow more relevant access to goal names in the 'Goal status' report

                   Previously, the 'Goal name' column had been changed to only appear when the
                   user had the 'totara/hierarchy:viewallgoals' capability due to data privacy
                   and protection concerns for user reports created by the report source. This
                   resulted in learners being unable to see their own company goals in the
                   embedded or user reports. Similarly, managers could not see their team's
                   goals in the report unless they had this broad capability.
                   
                   Now, the 'Goal name' column is shown (using a new Report Builder display
                   class) if the viewer has any of the following:
                    * the capability 'totara/hierarchy:viewallgoals'
                    * the goal is their own and they have the
                   'totara/hierarchy:viewownpersonalgoal' capability
                    * the goal belongs to someone the viewer manages and they have
                   'totara/hierarchy:viewstaffpersonalgoal' capability.

    TL-22914       Ensured MS Word-type document files display the correct flex icon
    TL-22945       Removed "Home", "Find Learning" and "Log in" menu items from the site policy page when users are not logged in

                   This includes a fix for site policies set up to use the 'multi-language
                   content' filter. Previously if a user changed languages on the site policy
                   page it would still display the 'en' content, now it displays the correct
                   content for the selected language when possible.

    TL-22952       Fixed a bug so that the 'session_deleted' event will always be triggered after deleting a seminar event
    TL-23047       Fixed SQL server version detection to work around problems with legacy database compatibility levels
    TL-23048       Fixed a bug causing a 'duplicate key value violates unique constraint' error when swapping dates between seminar sessions
    TL-23070       Fixed the certification active period translation in the Grid catalogue

                   Previously, the duration of the certification active period was displayed
                   as a hard-coded English-language string in the catalogue. It is now
                   converted to a language string.

    TL-23120   +   Fixed a bug that sent a booking confirmation when the attendance state was set to 'not set' on the taking attendance page
    TL-23162       Fixed JavaScript error when loading a page with no results in Grid catalogue
    TL-23225   +   Adjusted popover's z-index to display in the correct stack order

                   This will require CSS to be regenerated for themes that use LESS
                   inheritance.

    TL-23234   +   Fixed profiling runs table being hidden from view
    TL-23236       Prevented the resetting of course format 'Number of sections' values during course upload update

                   Previously when updating a course through course upload update, the 'Number
                   of sections' of course format (say "topics" or "weeks") was reset with the
                   default value (under some conditions). If the actual number of sections
                   exceeded the default value, some activities were affected by being moved
                   to the Orphaned section of the course.
                   
                   This fix ensures that the 'Number of sections' value is not reset.

    TL-23237       Fixed an issue where incorrect links were generated for certificate downloads

                   Previously the list of certificate files used to generate the links
                   included directories, and when generating the links the filenames were
                   overridden with the next one in the list. Due to the sort order of some
                   databases this could result in the filename in the link being replaced by
                   the full-stop representing the directory.

    TL-23260       Fixed an issue with iCalendar attachments (ical) that could prevent seminar booking confirmation emails sending when 'One message per date' is enabled
    TL-23281       Fixed attendee bookings when manager reservation expires

                   Previously when a manager reservation expired, users who were not on the
                   wait-list were given priority to sign up over the wait-listed users. This
                   patch has fixed the issue, so that when a manager reservation expires, the
                   wait listed users are automatically added as attendees.

    TL-23291       Glossary auto-linking filter now works correctly in the Grid catalogue
    TL-23293       Fixed the enrol users modal to always appear above all other content on the page
    TL-23311       Reworked gradebook purging in course archiving

                   Manual grades as well as grade overrides are now consistently purged when
                   course completion is archived during certification reset or manual course
                   archiving.

    TL-23313       Fixed typos in various language strings in the English language pack
    TL-23344       Fixed 'Booked by' column displaying 'Reserved' for self-booked users instead of their name
    TL-23345       Fixed the capitalisation of tag names displayed in the grid catalogue filter

                   When configuring the Grid catalogue to use tags as a filter, the tag names
                   would always be displayed in lowercase, regardless of the case used when
                   creating them. The display case now reflects exactly what was entered by
                   the user when the tag was created.


API changes:

    TL-23143       Mustache autoloader no longer repetitively registers shutdown handlers
    TL-23144       Improved the bulk loading of table data within the XMLDB editor improving its overall performance

Contributions:

    * Derek Henderson at Remote-Learner - TL-22097

Release 12.13 (30th December 2019):



Important:

    TL-22800       Reworked the appraisal role assignment process to prevent duplicate assignments

                   1) This patch adds a new index to the appraisal_user_assignment table – a
                   unique index on an appraisal ID/appraisee ID combination.
                   
                   It is possible that a site's appraisal_user_assignment table already has
                   duplicates; in this case, the site upgrade will fail. Therefore before
                   doing this upgrade, back up the site and then run this SQL query:
                   
                   SELECT userid, appraisalid, count(appraisalid) as duplicates
                    FROM mdl_appraisal_user_assignment
                    GROUP BY appraisalid, userid
                    HAVING count(appraisalid) > 1
                   
                   If this query returns a result, it means that the table has duplicates, and
                   they must be resolved first before an upgrade can successfully run. For
                   help, get in touch with the Totara support team and indicate the site has
                   been affected by TL-22800.
                   
                   2) The behaviour has changed when the 'Update now' button is pressed in the
                   appraisal assignment tab. This is only for dynamic appraisals and the
                   button appears when appraisal assignments are added/removed after
                   activation. Previously when the button was pressed, the assignments were
                   updated in real time and the user would wait until the operation completed.
                   The refreshed screen would then show the updated list of appraisees.
                   
                   With this patch, pressing the button spawns an ad hoc task instead and the
                   refreshed screen does not show the updated list of appraisees. Only when
                   the ad hoc task runs (depending on the next cron run – usually in the
                   next minute) are the assignments updated. When the user revisits the
                   appraisal assignment page, it will show the updated list of appraisees.


Security issues:

    TL-21671       Legacy internal flag 'ignoresesskey' is now usable within one request only, to prevent any potential security issues

Improvements:

    TL-19291       Disabled the MathJax filter plugin for fresh installations

                   The MathJax library is being fetched through the official content
                   distribution network. While it is a secure way of distributing the library,
                   this introduces some extra security risks that are unnecessary if the
                   library is not being used. Therefore it is recommended to disable the
                   plugin if formulas are not used in the editor anywhere on the site.

    TL-22097       Added support for redirection to originally-requested page when users are required to add missing profile information
    TL-22118       Removed support for obsolete counted recordsets

                   SQL_CALC_FOUND_ROWS and FOUND_ROWS() were deprecated as of MySQL 8.0.17.
                   Both were used by the get_counted_recordset() function, which is now marked
                   as deprecated and all usages have been modified to use alternatives.

    TL-22598       Improved 'Course visibility' selector help text
    TL-22697       Added a label to the seminar sign-in sheet download form
    TL-22837       Added setting to allow Solr search engine-defined default search fields to be used instead of those sent by Totara
    TL-22979       Added screen reader text stating which filters are in use when using the Grid catalogue
    TL-22982       Improved button signification when using a screen reader on the Grid catalogue

                   The 'share', 'list view' and 'grid view' buttons are now correctly
                   signified as buttons when using screen reader on the Grid catalogue.

    TL-23169       Fixed an editor width issue when modifying database activity templates
    TL-23170       Improved user interface of course enrolment page for guest and learning plan enrolment types
    TL-23261       Improved the error message when a user without managers cannot be added to a wait-listed event

                   Please note that a user without managers cannot be added to a wait-listed
                   event if the seminar requires manager approval.

    TL-23265       Introduced an environment check for Totara 12 and below to prevent installation and upgrade if PHP 7.4 is being used
    TL-23274       Allowed seminar events dashboard to scroll left-to-right on small screens
    TL-23328       Improved the parsing of dates for custom profile fields obtained from LDAP servers

                   Previously the supported format of dates in LDAP servers was limited to
                   unix timestamps, this change adds parsing of multiple date formats
                   supported by PHP DateTime class.


Bug fixes:

    TL-19293       Replaced parsing of members in course groups using JavaScript eval function with JSON.parse
    TL-20745       Ensured that due dates are not changed on user reassignment of expired certifications
    TL-22914       Ensured MS Word-type document files display the correct flex icon
    TL-22945       Removed "Home", "Find Learning" and "Log in" menu items from the site policy page when users are not logged in

                   This includes a fix for site policies set up to use the 'multi-language
                   content' filter. Previously if a user changed languages on the site policy
                   page it would still display the 'en' content, now it displays the correct
                   content for the selected language when possible.

    TL-22952       Fixed a bug so that the 'session_deleted' event will always be triggered after deleting a seminar event
    TL-23047       Fixed SQL server version detection to work around problems with legacy database compatibility levels
    TL-23048       Fixed a bug causing a 'duplicate key value violates unique constraint' error when swapping dates between seminar sessions
    TL-23070       Fixed the certification active period translation in the Grid catalogue

                   Previously, the duration of the certification active period was displayed
                   as a hard-coded English-language string in the catalogue. It is now
                   converted to a language string.

    TL-23162       Fixed JavaScript error when loading a page with no results in Grid catalogue
    TL-23165       Fixed inconsistency of Bootstrap Javascript versions

                   Previously, the thirdpartylibs.xml stated that the bootstrap Javascript
                   version in use was 3.3.7, when in fact it was version 3.3.4.
                   
                   There were no code changes and all security fixes included in 3.4.1 are
                   still present.

    TL-23236       Prevented the resetting of course format 'Number of sections' values during course upload update

                   Previously when updating a course through course upload update, the 'Number
                   of sections' of course format (say "topics" or "weeks") was reset with the
                   default value (under some conditions). If the actual number of sections
                   exceeded the default value, some activities were affected by being moved
                   to the Orphaned section of the course.
                   
                   This fix ensures that the 'Number of sections' value is not reset.

    TL-23237       Fixed an issue where incorrect links were generated for certificate downloads

                   Previously the list of certificate files used to generate the links
                   included directories, and when generating the links the filenames were
                   overridden with the next one in the list. Due to the sort order of some
                   databases this could result in the filename in the link being replaced by
                   the full-stop representing the directory.

    TL-23260       Fixed an issue with iCalendar attachments (ical) that could prevent seminar booking confirmation emails sending when 'One message per date' is enabled
    TL-23281       Fixed attendee bookings when manager reservation expires

                   Previously when a manager reservation expired, users who were not on the
                   wait-list were given priority to sign up over the wait-listed users. This
                   patch has fixed the issue, so that when a manager reservation expires, the
                   wait listed users are automatically added as attendees.

    TL-23291       Glossary auto-linking filter now works correctly in the Grid catalogue
    TL-23293       Fixed the enrol users modal to always appear above all other content on the page
    TL-23311       Reworked gradebook purging in course archiving

                   Manual grades as well as grade overrides are now consistently purged when
                   course completion is archived during certification reset or manual course
                   archiving.

    TL-23313       Fixed typos in various language strings in the English language pack
    TL-23344       Fixed 'Booked by' column displaying 'Reserved' for self-booked users instead of their name
    TL-23345       Fixed the capitalisation of tag names displayed in the grid catalogue filter

                   When configuring the Grid catalogue to use tags as a filter, the tag names
                   would always be displayed in lowercase, regardless of the case used when
                   creating them. The display case now reflects exactly what was entered by
                   the user when the tag was created.


API changes:

    TL-23143       Mustache autoloader no longer repetitively registers shutdown handlers
    TL-23144       Improved the bulk loading of table data within the XMLDB editor improving its overall performance

Contributions:

    * Derek Henderson at Remote-Learner - TL-22097

Release 11.22 (30th December 2019):



Important:

    TL-22800       Reworked the appraisal role assignment process to prevent duplicate assignments

                   1) This patch adds a new index to the appraisal_user_assignment table – a
                   unique index on an appraisal ID/appraisee ID combination.
                   
                   It is possible that a site's appraisal_user_assignment table already has
                   duplicates; in this case, the site upgrade will fail. Therefore before
                   doing this upgrade, back up the site and then run this SQL query:
                   
                   SELECT userid, appraisalid, count(appraisalid) as duplicates
                    FROM mdl_appraisal_user_assignment
                    GROUP BY appraisalid, userid
                    HAVING count(appraisalid) > 1
                   
                   If this query returns a result, it means that the table has duplicates, and
                   they must be resolved first before an upgrade can successfully run. For
                   help, get in touch with the Totara support team and indicate the site has
                   been affected by TL-22800.
                   
                   2) The behaviour has changed when the 'Update now' button is pressed in the
                   appraisal assignment tab. This is only for dynamic appraisals and the
                   button appears when appraisal assignments are added/removed after
                   activation. Previously when the button was pressed, the assignments were
                   updated in real time and the user would wait until the operation completed.
                   The refreshed screen would then show the updated list of appraisees.
                   
                   With this patch, pressing the button spawns an ad hoc task instead and the
                   refreshed screen does not show the updated list of appraisees. Only when
                   the ad hoc task runs (depending on the next cron run – usually in the
                   next minute) are the assignments updated. When the user revisits the
                   appraisal assignment page, it will show the updated list of appraisees.


Security issues:

    TL-21671       Legacy internal flag 'ignoresesskey' is now usable within one request only, to prevent any potential security issues

Improvements:

    TL-22118       Removed support for obsolete counted recordsets

                   SQL_CALC_FOUND_ROWS and FOUND_ROWS() were deprecated as of MySQL 8.0.17.
                   Both were used by the get_counted_recordset() function, which is now marked
                   as deprecated and all usages have been modified to use alternatives.

    TL-22697       Added a label to the seminar sign-in sheet download form
    TL-22837       Added setting to allow Solr search engine-defined default search fields to be used instead of those sent by Totara
    TL-23265       Introduced an environment check for Totara 12 and below to prevent installation and upgrade if PHP 7.4 is being used

Bug fixes:

    TL-20745       Ensured that due dates are not changed on user reassignment of expired certifications
    TL-22945       Removed "Home", "Find Learning" and "Log in" menu items from the site policy page when users are not logged in

                   This includes a fix for site policies set up to use the 'multi-language
                   content' filter. Previously if a user changed languages on the site policy
                   page it would still display the 'en' content, now it displays the correct
                   content for the selected language when possible.

    TL-23047       Fixed SQL server version detection to work around problems with legacy database compatibility levels
    TL-23165       Fixed inconsistency of Bootstrap Javascript versions

                   Previously, the thirdpartylibs.xml stated that the bootstrap Javascript
                   version in use was 3.3.7, when in fact it was version 3.3.4.
                   
                   There were no code changes and all security fixes included in 3.4.1 are
                   still present.

    TL-23236       Prevented the resetting of course format 'Number of sections' values during course upload update

                   Previously when updating a course through course upload update, the 'Number
                   of sections' of course format (say "topics" or "weeks") was reset with the
                   default value (under some conditions). If the actual number of sections
                   exceeded the default value, some activities were affected by being moved
                   to the Orphaned section of the course.
                   
                   This fix ensures that the 'Number of sections' value is not reset.

    TL-23237       Fixed an issue where incorrect links were generated for certificate downloads

                   Previously the list of certificate files used to generate the links
                   included directories, and when generating the links the filenames were
                   overridden with the next one in the list. Due to the sort order of some
                   databases this could result in the filename in the link being replaced by
                   the full-stop representing the directory.

    TL-23311       Reworked gradebook purging in course archiving

                   Manual grades as well as grade overrides are now consistently purged when
                   course completion is archived during certification reset or manual course
                   archiving.

    TL-23313       Fixed typos in various language strings in the English language pack

Release 10.28 (30th December 2019):



Important:

    TL-22800       Reworked the appraisal role assignment process to prevent duplicate assignments

                   1) This patch adds a new index to the appraisal_user_assignment table – a
                   unique index on an appraisal ID/appraisee ID combination.
                   
                   It is possible that a site's appraisal_user_assignment table already has
                   duplicates; in this case, the site upgrade will fail. Therefore before
                   doing this upgrade, back up the site and then run this SQL query:
                   
                   SELECT userid, appraisalid, count(appraisalid) as duplicates
                    FROM mdl_appraisal_user_assignment
                    GROUP BY appraisalid, userid
                    HAVING count(appraisalid) > 1
                   
                   If this query returns a result, it means that the table has duplicates, and
                   they must be resolved first before an upgrade can successfully run. For
                   help, get in touch with the Totara support team and indicate the site has
                   been affected by TL-22800.
                   
                   2) The behaviour has changed when the 'Update now' button is pressed in the
                   appraisal assignment tab. This is only for dynamic appraisals and the
                   button appears when appraisal assignments are added/removed after
                   activation. Previously when the button was pressed, the assignments were
                   updated in real time and the user would wait until the operation completed.
                   The refreshed screen would then show the updated list of appraisees.
                   
                   With this patch, pressing the button spawns an ad hoc task instead and the
                   refreshed screen does not show the updated list of appraisees. Only when
                   the ad hoc task runs (depending on the next cron run – usually in the
                   next minute) are the assignments updated. When the user revisits the
                   appraisal assignment page, it will show the updated list of appraisees.


Security issues:

    TL-21671       Legacy internal flag 'ignoresesskey' is now usable within one request only, to prevent any potential security issues

Improvements:

    TL-22697       Added a label to the seminar sign-in sheet download form
    TL-23265       Introduced an environment check for Totara 12 and below to prevent installation and upgrade if PHP 7.4 is being used

Bug fixes:

    TL-23165       Fixed inconsistency of Bootstrap Javascript versions

                   Previously, the thirdpartylibs.xml stated that the bootstrap Javascript
                   version in use was 3.3.7, when in fact it was version 3.3.4.
                   
                   There were no code changes and all security fixes included in 3.4.1 are
                   still present.

    TL-23237       Fixed an issue where incorrect links were generated for certificate downloads

                   Previously the list of certificate files used to generate the links
                   included directories, and when generating the links the filenames were
                   overridden with the next one in the list. Due to the sort order of some
                   databases this could result in the filename in the link being replaced by
                   the full-stop representing the directory.


Release 9.39 (30th December 2019):



Important:

    TL-22800       Reworked the appraisal role assignment process to prevent duplicate assignments

                   1) This patch adds a new index to the appraisal_user_assignment table – a
                   unique index on an appraisal ID/appraisee ID combination.
                   
                   It is possible that a site's appraisal_user_assignment table already has
                   duplicates; in this case, the site upgrade will fail. Therefore before
                   doing this upgrade, back up the site and then run this SQL query:
                   
                   SELECT userid, appraisalid, count(appraisalid) as duplicates
                    FROM mdl_appraisal_user_assignment
                    GROUP BY appraisalid, userid
                    HAVING count(appraisalid) > 1
                   
                   If this query returns a result, it means that the table has duplicates, and
                   they must be resolved first before an upgrade can successfully run. For
                   help, get in touch with the Totara support team and indicate the site has
                   been affected by TL-22800.
                   
                   2) The behaviour has changed when the 'Update now' button is pressed in the
                   appraisal assignment tab. This is only for dynamic appraisals and the
                   button appears when appraisal assignments are added/removed after
                   activation. Previously when the button was pressed, the assignments were
                   updated in real time and the user would wait until the operation completed.
                   The refreshed screen would then show the updated list of appraisees.
                   
                   With this patch, pressing the button spawns an ad hoc task instead and the
                   refreshed screen does not show the updated list of appraisees. Only when
                   the ad hoc task runs (depending on the next cron run – usually in the
                   next minute) are the assignments updated. When the user revisits the
                   appraisal assignment page, it will show the updated list of appraisees.


Security issues:

    TL-21671       Legacy internal flag 'ignoresesskey' is now usable within one request only, to prevent any potential security issues

Improvements:

    TL-22697       Added a label to the seminar sign-in sheet download form

Bug fixes:

    TL-23165       Fixed inconsistency of Bootstrap Javascript versions

                   Previously, the thirdpartylibs.xml stated that the bootstrap Javascript
                   version in use was 3.3.7, when in fact it was version 3.3.4.
                   
                   There were no code changes and all security fixes included in 3.4.1 are
                   still present.

    TL-23237       Fixed an issue where incorrect links were generated for certificate downloads

                   Previously the list of certificate files used to generate the links
                   included directories, and when generating the links the filenames were
                   overridden with the next one in the list. Due to the sort order of some
                   databases this could result in the filename in the link being replaced by
                   the full-stop representing the directory.