Version 9.1.180 (1 September 2025)
SigniChat
[Communications Portal] Multi-line messages displayed with the "<br/>" tag (#135973)
SigniChatProblem
(#135973)
- Text
areis displayed with encoding such as & and for new lines
Problem
Solution
Solution
- Implement a new
sanitizesanitise tag helper whichsanitizessanitises the text anddisplaydisplays the output as needed
[Communications Portal] New message pulsing dot is hidden when you send a second message (#135988)
Problem
(#135988)
- When a message is received from another
useruser, the notification dot isbeingtoggled todisplaydisplay, but once another one isreceivedreceived, it removes itselfSolution:
Problem:
Solution
- Implement a fix to extend the logic that if a message is received and a dot is already
shownshown, do not remove
[Communications Portal] Unable to start a new chat when setting allows everyone to start one (#135961)
Problem
(#135961)
- When the configuration type is set to " everyone can create a new
discussiondiscussion", a user still has no access, query only caters for the people groupSolution:
Problem:
Solution
- Implement a change to allow for a check
toon the type of everyone or people groupjoinedjoined, if the user is included
Communications Portal] Rename the setting: "Everyone can start discussion" (#135968)
Problem
(#135968)
- The
Phrasephrase reads that everyone can start a discussionSolution:
Problem:
Solution
- Change wording to
ratherread that anyone can start a discussion
[Communications Portal] Unread counter not rendered when there were no previous unread messages (#135935)
Problem
(#135935)
- When a message is received and the user
havehas the portalopenopen, the count is notincrementedincreased, as the content is not renderedinif the userhadhasnotno unread messagesSolution:
Problem:
Solution
- Change the
htmlHTML syntax to still render in theelementelement, as well as update the wording being displayed
[Communications Portal] Translations not shown correctly (#135926)
Problem
(#135926)
- Some translations
wherewere not updated to the new file formatSolution:
Problem:
Solution
- Updated the missing file formats on some labels and headings
[Communications Portal] Owner cannot delete a group chat (#135963)
Problem
(#135963)
- A group owner must also be able to delete a group chat if he/she is the owner
Problem:
Solution
- Change code check to allow deletion if the user is the owner
[Communication Portal]
(#135313)
Problem:red Solution:dot Implementnot aremoved newfrom singleton pattern to load the communicationcoms portal configuration,icon and(#135372)
make use of the data for the unread check as well as the rule if the logged in user can start a discussion, Also add the ability to after 10min when signed in to just go and reload. This will remove the heavy querying being done on checks to the server
Problem
- When a user
havehas their chat portal open, andreceivereceives a message, a red dot indication is pulsing in the banner, but the userdodoes have the chat already open
(#133263)
Problem: Solution: Implement a new schedule to sent out notifications for every 4hours to users that have unread messages.
(#135372)
Problem:
Solution
- Implement a change to validate
idif the portal is open ornotnot, and toggle the new notification depending on the state of the modal
[Communication Portal] Character entity displayed for special characters (#135449)
Problem
(#135449)
- The discussion name value shows
valuedvalue for &
Problem:
Solution
- Implement a change to display the raw
htmlHTML name of the discussion
[Performance] [Communication Portal] Group Chat images loaded on every page (#135485)
Problem
(#135485)
- The new group chat modal is rendered on every page
Problem:
Solution
- Move the modal out to only render when the new group chat is opened
[Communication Portal] Move options to start new chats to align horizontally with the add button (#135444)
Problem
(#135444)
- When the user
havehas no permission to create a new group discussion, the otheritemitems are pushedof atto the bottom
Problem:
Solution
- Decrease the position where it is being
displayed at,displayed, so that both items render in accordancetowith when only onedodoes render
General UI changes (#135326)
Problem
(#135326)
- A
Newnew translation file has been added, and not all places have been updated
Problem:
Solution
- Update the portal to make use of new
translationstranslations. Add a check to show the total unreadcountcount, and only if thereisare any unread messages
Notifications
[V9 to V8 Integration][Admin][Import] Error on Import and unable to open Import Error Link (#135994)
NotificationsProblem
(#135994)
- On Import error mails, the web
mvcMVC link is used fornavigationnavigation, which does not include the needed ruleset code and theme for authentication
Problem:
Solution
- Correct call to generate a login redirect short
urlURL with the needed link
As a Ruleset Administrator, I want a new section for the Communication Portal under the Notifications tab (#135313)
Problem
(#135313)
- The
Communicationcommunication portal is currently open to anyclientclient, withany oneanyone being able to create new chats
Problem:
Solution
- Implement a new setup where each client can configure
for theretheir ruleset if discussions should be enabled or not, withadditionadditional newsettingsettings to allow for people groups or everyone to start new chats
General UI changes (#135326)
Problem
(#135326)
- Currently, the modal is opened inside a wrapper, which causes it not to
notbehave like a modal, andneedingit needs to reload data each time
Problem: Currently
Solution
- Change so that the UI reflects as a modal, keep the state of the modal content, and just display the modal as needed. Implement change to send a request to an iframe if it exists, capture the
responseresponse, should there be one else follow normal process with chat. Should avlauevalue be received back from the v8iframe.iframe? Give the option to the user to create a new chat or group chat regarding the eLearning pathway content.
Performance Management
[Performance Management][Review Year][Review Period] Check-in button giving error when outside of active Review Period (#132041)
Problem
(#132041)
- A change was made to make the check-in dial clickable as the eye-icon for mouse over, but the condition check to allow the click was not
includedincluded, which caused an error should the user click onitit, even if they are not allowed to
Problem:
Solution
- Implement a change to move the validation check to accommodate the 2 cases where the check is needed.
Report Builder
[Report Builder][End User][Last Run Date] Last run date tooltip shows time report was last run +2 (#135938)
Problem
(#135938)
- We calculate the DateTime value according to the client details(timezone|culture) in the server
sideside, which is then sent to the client which includes the value 'Z' within the converted stringvaluevalue, indicating that the time is not local. This causesthatanyjqueryjQuery orconvertionsconversions being doneareto be reapplied with the currentclientsclient's local timezone.SoSo, forexampleexample, if a UTC datetime was for 10:0000, after calculation in UTC+22, the time will be 12:00 sent to the UI, and after the dayjscalculationcalculation, the time will be 14:00Solution:
Problem:
Solution
- By removing the 'Z' will indicate to the UI that the time is local time already calculated
Ruleset Management
Warning when ruleset code/ theme key is changed (#135407)
**Problem:**
- When a login URL is
usedused, the ruleset code forms part of the URL that many users bookmark. When the ruleset code ischangechanged, this URL becomes invalid and breaks. - Currently, the user has no warning that this is the
effecteffect, nor is there any measure to allow bookmarked URLs with the code to not become invalid. - When the theme key also stored in the URL is
changed thechanged, users willusinguse theurlURL will beredirectredirected to the default theme for the ruleset. The userchaningchanging the theme key is not warned about the impact.
Solution
- When saving the ruleset management details for a new
codecode, show a system message to inform the user that the themeurlURL will change.
- When changing the theme key, show a system message to inform the user that the theme
urlURL willchangechange, and any user still using thepreviouseprevious theme URL will automatically be redirected to the default theme key for the ruleset
- When the rulesetcode is
changes,changed, store the historic codes as a list against the ruleset in a value object. Use these codes in the app controller and identity when the rulesetidID is determined.
-
- When the previous code is
usedused, the theme key must also exist on the same ruleset to ensure an incorrect ruleset is not loaded that also uses the code as its new active code - When the rulesetcode cannot be found in the
historyhistory,ydisplaydisplays a message to the user that the URL is not valid and they should contacttheretheir system administrator
- When the previous code is
Imports
Automated Employee Import Error (2) (#135625)
ImportsProblem
(#135625)
- When a terminated user is imported without a position code, a new position is created with every import. When a terminated user is
importimported with a new start date and position with the same end date as the appointment, it is processed asana newappointmentappointment, causing all newappointmentappointments to fail to create.Solution:
Problem:
Solution
- When retrieving the position code from the existing
appointmentsappointments, include allappointmentappointments, not just the active appointments. When a new termination record is imported for a terminated user where the start date is before the current terminated appointment enddatedate, handle it as a termination. Updated appointment import logic to use last appointments instead of only active appointments for transfer and new appointment calculations, ensuring no date overlaps. Refactored queries and handlers to support this, and added/updated unit tests to cover new scenarios for transfers, corrections, and overlapping appointments.
[Payroll Connectors] Client ID and option to change Client secret missing when editing existing connector (#135776)
Problem
(#135776)
- When an integration form
opensopens, the details are populated without theclient-id,client ID, as theclient-idclient ID isbothshared with the sameidID value between payroll andpowershell.PowerShell.Solution:
Problem:
Solution
- Implement a check as to which form is currently open and populate the client
idID based on that check
Import Error (#135543)
Problem
(#135543)
- When a schedule processes the Payspace or
PowershellPowerShellscriptsscripts, the data cannot be staged due to Cannot insert a staging record without a valid OwnerUserId
Problem:
Solution
- Eliminated the check for a valid OwnerUserId in the UserImportStaging constructor and updated related unit tests. Also added ProcessPayroll job configuration to appsettings.Development.json.
[Payroll Connectors] Unable to add a new PowerShell script connector (#135772)
Problem
(#135772)
- A new setting has been implemented to make use of for pay-space payroll connector, but within
power shellPowerShell, this control does notexistsexist andtherefortherefore causes an error
Problem:
Solution
- Implement a null check to ensure the control first exists
[People Import] [Validation Report] Validation report populates "New Start Date In Group" when it was left blank in the import template (#134861)
Problem
(#134861)
- When a user pulls the Import validation report, the
usersuser's Start Date of Position is used to populate the StartDateInGroup
Problem:
Solution
- Alter the check to make use of the correct field needed
Payspace changes to correct the appointment dates (#134132)
Problem
(#134132)
- Start Date in the company is not mapped from Payspace
Solution:
Problem:
Solution
- Map the employment date from the employee status API as the Start Date In Company for import
People Management
[Images] Issues with images on master (#135931)
Problem
(#135931)
- The default list of avatar images
areis not shown.InitiallyInitially, avatar images are fetched from Ruleset 1 if the current ruleset has none. Once an avatar picture isuploadeduploaded, it never does the fallback and then the 'defaults' are lost. Additionally, it appears as though the ruleset 1 specific content is not available on allenvironmentsenvironments, resulting in only the custom uploaded avatar images being displayed.Solution:
Problem:
Solution
- Always include the default avatar images
ontoin the list of available images to choose from. No longer fallback to Ruleset 1contentcontent, but use the existing defaults avatar images folder.
[People Management]: The Load More button overlaps with People's Card (#135597)
Problem
(#135597)
Solution
- Removed the height specificity on the card
containercontainer, causing the load more button to overlap the actual cards.
Upgrade issue (#135875)
Problem
(#135875)
- The people group user list
timesouttimes out after 60s
Problem:
Solution
- Removal of the CTE (Common Table Expression) and restructuring the query to use a single SELECT statement, which improves readability and potentially performance.
- Additionally, the query now includes
organizationorganisation path information directly and sets a longer command timeout for large queries. - Query refactoring and
optimizationoptimisation*- Removed the CTE (`cteUser`) and replaced it with a single, streamlined SELECT statement in the SQL query for listing user items. This simplifies the query structure and reduces complexity.
* - Moved the join to `OrgNodes` (`cnp`) directly into the main query, ensuring that the `FlattenedOrgPath` is included for each user item without requiring a secondary join.
- Added a command timeout of 600 seconds to the query execution, which helps handle cases where the query might take longer due to large datasets.
* - Removed the CTE (`cteUser`) and replaced it with a single, streamlined SELECT statement in the SQL query for listing user items. This simplifies the query structure and reduces complexity.
[People Management]: Profile Avatar selection is not saving (#134835)
Problem
(#134835)
- Images of
filetypefile types that are not JPG are not saving when selecting and saving the profile avatar.Solution:
Problem:
Solution
- Fixed what filetypes can be returned and used for avatar/profile. Not in scope of ticket, but changed the allowed file types when uploading images on profile image modal. Small code cleanup. Allowed filetypes (from Image Resources) are: PNG, JPG, JPEG, GIF, and SVG (this is an exception, as we only want admins to be able to upload SVGs). Changes discussed with William. No changes affect his current work.
Translations
[Login][End User][Language] Language selection duplicated on drop down (#135774)
TranslationsProblem
(#135774)
- Language options are shown in duplicate on Login screen.
Problem:
Solution
- Added
safegaurda safeguard to the language publishing to not add the language to the cultures cache if it already exists.
[Ruleset Management][Admin User][Default Language] Able to select a language which is not published from the Default Language drop-down (#135670)
Problem
(#135670)
- When setting the default language for a
rulesetruleset, you can pick a culture that is Not Published.
Problem:
Solution
- Change the default language options dropdown to not show languages that are not both selected (available) and published
Data Warehouse
Report Issues (#135915)
Problem
(#135915)
- The Promotion Status calculations are not calculated correctly within TermMarks
Problem:
Solution
- Adjusted script that will calculate the TermMarks more accurately
Daily Server Monitoring Checks 2025 (#125159)
Problem
(#125159)
- There are no emails that
returnsreturn the Deploy SSIS Packages results
Problem:
Solution
- Created SQL Script C_03610_99999_GenerateDWHDeployJobResultsToBeEmailed that will return the SSIS Deployment Packages results
(#135282)
Problem:
[DWH] - Remove join between datasources People and Learner records (#135282)
Problem
- There is no difference between Users and LearnerRecords within ReportBuilder
- There is
notno notification regardingifwhether theDeployeddeployed SSIS Packages ran successfullySolution:
Solution
- Added Join between Users and LearnerRecords
- Added
Addeda Task to execute the SQL Job that will email the SSIS Package run results
Integrations: Bulk Additional Service Imports: DWH (#135629)
Problem
(#135629)
- A
a Newnew SSIS Package is required within theDatawarehouseData Warehouse to refresh the report data onit'sits own
Problem:
Solution
- Created a new SSIS Package LearningManagementReport_ETL THAT contains the required tasks to refresh the school report data
Job Profiler
Job Profiler: Importing competencies (#132883)
Problem
(#132883)
- Competency analysis is not showing the correct position information, only the first appointment record
returnedreturned, resulting in older positiondetaildetails displaying.Solution:
Problem:
Solution
- Order the appointments to ensure that the latest appointment information is selected to get the current position information.
[Job Management] Copy Position Error (#135780)
Problem
(#135780)
- Copy position gives a
datatableDataTable error due to a missing column.Solution:
Problem:
Solution
- Refresh the position tab instead of manually adding a
datattabledatatablerowrow, which can be unstable if the rows ever change.
Dashboards
(#133268)
[Dashboards]
Problem:Indicate Therewhen isthe dashboard has no data (#133268)
Problem
- No script
thatwill do a Data Integrity check for the current V10 DashboardsSolution:
Solution
- Created a Script that
returnreturns the Data Integrity data
Learning Management
The training matrix page gives an error on load when the server is busy (#135799)
Problem
(#135799)
- The
Trainingtraining matrix page does not load at certain times when the server is busySolution:
Problem:
Solution
- Replace
longthe long-running query to populate the job profiles dropdown with ListJobProfiles
LMS Portal: Subject Setup: No Cycle 'Weight in Period' Validation (#132285)
Problem
(#132285)
- The weights in a cycle can exceed 100
Problem:
Solution
- Prevent users from assigning more than 100 total weight to interventions in a cycle, improving data integrity and user experience.
Identity and Authorisation
Login Report - Not recording reset password login data (#135574)
Problem
(#135574)
- No new login logs are viewable on the report builder
Problem:
Solution
- Fixed backend User reference
Tenant Management
Tenant Creation | Not receiving initial email and user not authenticated (#135653)
Issue 1
(#135653)Problem
Problem:
- A check is being done if the tenant setup has been completed before a notification for rulesetup is sent out, but an attempt is made to send the notification of the ruleset out before the last command for tenant is called
Solution
- Correct the order to first finish last tenant setup command and then proceed with the notification with the ruleset
Issue 2
(#135653)Problem
Problem:
- When a new tenant is
createdcreated, it creates a supportuser,user and a fewotherothers aswell,well.thisThis makes use of the bulk user import functionality, as this nowdo requirerequires an importidID,itwhich failed to create users
Solution
- Parse
inthe importidID to create the new users to proceed with the tenant setup
Caching
Employee appointment/termination error (#134571)
CachingProblem
(#134571)
- When a
signedsigned-inuser,user terminates a user or adds a new user, the cache/roles are cleared and re-materialized ,materialised, thus causing authenticationissuesissues, which throws a we're sorry screenSolution:
Problem:
Solution
- Extend the duration attempt to wait as well as increase the retry count to 2
times,times.
Date Handling
[Date Picker] Format to user language (#135450)
Problem
(#135450)
- Date inputs were not formatting according to the user’s language.
Problem:
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.
[People Management][Admin User][Date Fields] Date fields not populated on edit, even though dates have been captured (#135972)
Problem
(#135972)
- The way the date formats
waswere applied did not work onfirefox -Firefox, due to theway :way::before was used.
Problem:
Solution
- Instead of using a date-attribute and applying a style on that
forfor:::brefore, ratherbefore, draw a span over the date input so that the correct date format is displayed.