Version 9.1.182 (22 September 2025)
Ruleset Management
[Custom URL] When a new ruleset is created, the Custom URL is copied from Ruleset 1 (#136300)
Problem
- When copying or creating a ruleset, the custom logout URL is also copied, which is incorrect.
Solution
- Do not copy the custom logout URL when creating or copying a ruleset.
[System Help Page] Can't turn off certain sections (#135322)
Problem
- The logic that handles the display on newly added sections does not function in terms of the wording of the toggle
- When a toggle is "on", it will only show for admin users, whereas the section will read as an example visible to all users
Solution
- Add a change to rename the column to "isActive" and alter the logic to handle each section accordingly to the working and functionality intended
Preview empty (#133418)
Problem
Solution
- Ensuring the default banner path is correctly assigned to the image URL, as well as ensuring the default banner path is correctly returned for different environments, with multiple fallbacks.
Translations
[Translations] [Dutch] No translation for the message that shows in a table when no data is available (#134020)
Problem
- JQuery DataTable internal tokens were not translated.
Solution
- Translate the jQuery DataTable tokens globally
Correct the error message that displays when Nextcloud credentials can't be validated (#130098)
Problem
- The error message when Nextcloud auth fails is grammatically incorrect.
Solution
- Fixed the translations for the error message.
[Date Picker] Format to user language (#135450)
Problem
- Date inputs were not formatting according to the user’s language.
Solution
- Store the user’s date format in browser session storage (similar to timezones, but not persisted in cookies).
- Add a global JavaScript event listener for date inputs.
- This listener sets a data attribute on the input, containing the correctly formatted date.
- CSS then uses this data attribute to display the date in the appropriate format.
Auto-Doc
Image uploaded when signing is shown overlapping placeholder fields (#135952)
Problem
- Signatures on documents are not positioned correctly on the page on the placeholder after being signed by the user.
Solution
- Remove the code which moved the image up and to the left, allowing the image/signature to be positioned at the correct location on the page where the placeholder is located.
Performance Management
Long period names go over the divider line (#136280)
Problem
- The review survey is currently overlapping content on the timeline within the performance management dashboard
Solution
- Add an ellipse tool tip to ellipse the text to a certain length and display the full name on mouse hover
Icon overlaps with the documents icon (#136150)
Problem
- Tag Message Icon is overlapping icons on the perspective document folder
Solution
- Adjust the icon to show inline and not overlap
Rename "Moderate" to "Moderated rating" (#129754)
Problem
- The label for the "Moderate" dropdown is confusing for users, as there are a lot of variations of the word "Moderate" already present.
Solution
- Rename the label from "Moderate" to "Rating" as requested.
Agreements locked when closing the browser (#135384)
Problem
- When a user opens a contract, that contract is locked and another user can not open until the previous user closes the contract. But in cases where the user just closes the browser, the contract stays locked until it times out, which unlocks the contract
Solution
- Implement a change to add an event that gets triggered when the user closes their browser to invoke another message to unlock the contract. Also, add a change to make use of the ref of the state, as when it gets triggered to unlock, another useState is triggered to lock it again.
Default "is Library Item" to No if left blank (#129463)
Problem
- Within the Performance management template imports, if Library items and perspective columns are left blank, it must default to a false value
Solution
- Implement a change to default to false values on the 3 identified columns
Handle special characters on dashboard (#132067)
Problem
- On performance management, some text is not being sanitised
Solution
- Make use of the new implementation helper to sanitise the text
People Management
Back button on appointment history (#135252)
Problem
- When adding or editing appointment histories, the back button was taking users to the people management page instead of returning them to the specific person's appointment history.
Solution
- Fixed the back button to remember where you came from and take you back to the specific person's appointment history page you were on.
Enhance Search (#135210)
Problem
- Currently, if you search for an employee, it does not search in the Middle Name or Known As fields, only in Name and Surname.
Solution
- Added the Middle Name field to the Materialised Users table. Then added the Middle Name and Known As field to be included within the User queries when searching from the people management page.
Double "Click here" text is being displayed with incorrect Label text (#135479)
Problem
- Duplicate "Click here" text for "Not finding the person" link.
Solution
- Removed duplicate "Click here" and made minor UI changes.
Preview empty (#133418)
Problem
- When selecting banners in the main dashboard, after every reload before a banner is selected, the banner preview is empty.
Solution
- Correctly set the default banner preview link to the default banner URL.
Sign-ins (#135213)
- Show the “Sign-ins” menu item under the Audit Information tab on People Management.
- No additional access rights are required
- Top 200, also limit My Profile sign-ins to the top 200
Learning Management
Product Setup - Training Requirements Matrix Spelling Error in Header (#133472)
Problem
- On the Training Requirements Matrix tab, the header has a spelling error: "client-spesific" should be "client-specific"
Solution
- Updated the translations.
Content Management
V9 Document Signing Robustness (#135310)
Problem
- When V8 sends to digitally sign a document, safety and fallback measures are put in place for cases where it can fail; some of these cases do not log against an entry in which the document failed
Solution
- Implement a new entity to log errors regarding the document signing process, as well as enhance the robustness of the process to singularize the validating and uploading of a file.
SigniChat
System notification sent every 4 hours to inform a person they have unread messages (#133263)
Problem
- When retrieving data from a new service, the old schema is still referenced
Solution
- Update to use the new reference value
Character entity displayed for special characters (#135449)
Problem
- Some places still had unsanitized text within the communication portal.
Solution
- Implement the new tag helper to sanitise the text fields
The button to add new chats is still shown when discussions are disabled (#136147)
Problem
- With the new implemented change to not show the dropdown of products when there are no messages, it occupies a lot of white space
Solution
- Implement a change to decrease the modal height when there are no message counts
Unread counter not rendered when there were no previous unread messages (#135935)
Problem
- When a new SignalR message is received, the unread counts are updated if the user has their popup open, but the product group has the incorrect ID in which tries to update
Solution
- Correct the ID value to update the product count
Unable to delete a people group (#136146)
Problem
- When people groups are selected to be unlinked, nothing happens, as the wrong ID is being bound for the row to be removed
Solution
- Correct the row ID value to be bound correctly for deletion
The button to add new chats is still shown when discussions are disabled (#136147)
Problem
When the discussion enabled has been toggled off, users can still see the Start New Discussions
Solution
Implement a fix to parse the correct value for the case where the new discussions are being rendered
Notifications
Product names displayed as one word (#136230)
Problem
- The product name within the templates is only cast to a string value instead of getting the translation to localise
Solution
- Implement a change to get the correct display name of the enum
Search functionality not working (#136235)
Problem
- A new change was made to do child links under sub-tabs on the left-hand side, which results in the global search functionality relying on the tab name to filter the data.
Solution
- Fix the query to get the child active names that are being used within the global search
Data Warehouse
Send job completion mail (#135969)
Problem
- The separate scripts for V8 and V9 are not required
- Error occurs within accUserLoginStats on UAT
Solution
- Adjust the V9 DWH Job Results script to cater for V8 as well
- Resolved the error accUserLoginStats by excluding the V8 offline DB within UAT
Dashboards
Kudos Not Found Error (#136229)
Problem
- After confirming the "Do not show this message again" modal and then navigating with the Kudos widget button, an empty page is returned, with a duplicate "spa" in the URL.
Solution
Add pop-up modal (#133274)
Problem
- A small help modal for the kudos dashboard widget is required. It should have a "Do not show this message again" prompt. The Kudos button on the people management page needs to be changed to a pill button.
Solution
- Modal implemented. Do not show this message again flag stored in local storage. If the flag does not exist, the modal is opened before navigating to the people management page; else, it navigates directly to the people management page. Kudos button changed to pill button.
Imports
Errors (#136080)
Problem
- When updating a user's username, sometimes the detection misses the existence of the user and attempts to create a new user
Solution
- The logic for identifying new users now checks both existingUsers and existingApplicationUsers lists, ensuring that users are only created if they do not exist in either collection. This improves accuracy when importing users and prevents duplicate entries
Automated Employee Import Error (#135625)
Problem
- The instance of entity type 'ApplicationUser' cannot be tracked because another instance with the same key value for {'Id'} is already being tracked. When attaching existing entities, ensure that only one entity instance with a given key value is attached. Consider using 'DbContextOptionsBuilder.EnableSensitiveDataLogging' to see the conflicting key values.
Solution
- Refactor identity update to resolve untracked update exception
People group import to be triggered as soon as employee import has been executed (#124098)
Problem
- When a user import completes, only users are imported, not the people groups, people group users and reporting lines.
Solution
- This pull request updates the list of import types sent during the additional service import request in the `ImportUsersEventConsumer` class. The change ensures that more types of data are included in the import request.
General
Location in Org displays character Entity when org name contains apostrophe (#132003)
Problem
- With certain text values, characters like & are generated to an encoded value, as well as an apostrophe and so forth.
Solution
- Implement a new global sanitised-input tag helper that resolves this case, so that we still have limitations on what gets sanitised
Master Data
Disabled Disciplinary Transgression Items break existing transgressions that use the item (#135320)
Problem
- When disabling a Transgression Type, current Disciplinary Actions using the type cannot be edited.
Solution
- Ensured the Transgression Edit page can be opened even when Transgression is not active.