Version 9.1.180 (1 September 2025)
SigniChat
[Communications Portal] Multi-line messages displayed with the "<br/>" tag (#135973)
SigniChatProblem
(#135973)
Problem
Text
areis displayed with encoding such as & and for new lines
Solution
Solution
Implement a new
sanitizesanitise tag helper which
sanitizessanitises the text and
displaydisplays the output as needed
[Communications Portal] New message pulsing dot is hidden when you send a second message (#135988)
Problem
(#135988)
Problem:
When a message is received from another
useruser, the notification dot is
being toggled to
displaydisplay, but once another one is
receivedreceived, it removes itself
Solution:
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)
Problem:
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 group
Solution:
Solution
Implement
a change to allow for a check
toon the type of everyone or people group
joinedjoined, if
the user is included
Communications Portal] Rename the setting: "Everyone can start discussion" (#135968)
Problem
(#135968)
Problem:
The Phrasephrase reads that everyone can start a discussion
Solution:
Solution
Change wording to
rather read that anyone can start a discussion
[Communications Portal] Unread counter not rendered when there were no previous unread messages (#135935)
Problem
(#135935)
Problem:
When a message is received and the user
havehas the portal
openopen, the count is not
incrementedincreased, as the content is not rendered
in if the user
hadhas notno unread messages
Solution:
Solution
Change the
htmlHTML syntax to still render in the
elementelement, as well as update the wording being displayed
[Communications Portal] Translations not shown correctly (#135926)
Problem
(#135926)
Problem:
Some translations
wherewere not updated to
the new file format
Solution:
Solution
Updated the missing file formats on some labels and headings
[Communications Portal] Owner cannot delete a group chat (#135963)
Problem
(#135963)
Problem:
A group owner must also be able to delete a group chat if he/she is the owner
Solution:
Solution
Change code check to allow deletion if the user is the owner
[Communication Portal]
(#135313)
Pulsing 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
(#133263)
Problem: Solution: Implement a new schedule to sent out notifications for every 4hours to users that have unread messages.
(#135372)
Problem:
When a user
havehas their chat portal open, and
receivereceives a message, a red dot indication is pulsing in the banner, but the user
dodoes have the chat already open
Solution:
Solution
Implement
a change to validate
idif the portal is open or
notnot, and toggle the new notification depending on the state of the modal
[Communication Portal] Character entity displayed for special characters (#135449)
Problem
(#135449)
Problem:
The discussion name value shows
valuedvalue for &
Solution:
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)
Problem:
The new group chat modal is rendered on every page
Solution:
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)
Problem:
When the user
havehas no permission to create a new group discussion, the other
itemitems are pushed
of atto the bottom
Solution:
Solution
Decrease the position where it is being
displayed at,displayed, so that both items render in accordance
towith when only one
dodoes render
General UI changes (#135326)
Problem
(#135326)
Problem:
A Newnew translation file has been added, and not all places have been updated
Solution:
Solution
Update
the portal to make use of new
translationstranslations. Add
a check to show
the total unread
countcount, and only if there
isare any unread messages
Notifications
[V9 to V8 Integration][Admin][Import] Error on Import and unable to open Import Error Link (#135994)
NotificationsProblem
(#135994)
Problem:
On Import error mails, the web
mvcMVC link is used for
navigationnavigation, which does not include the needed ruleset code and theme for authentication
Solution:
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)
Problem:
The Communicationcommunication portal is currently open to any
clientclient, with
any oneanyone being able to create new chats
Solution:
Solution
Implement a new setup where each client can configure
for theretheir ruleset if discussions should be enabled or not, with
additionadditional new
settingsettings to allow for people groups or everyone to start new chats
General UI changes (#135326)
Problem
(#135326)
Problem: Currently
Currently, the modal is opened inside a wrapper, which causes it
not to
not behave like a modal, and
needingit needs to reload data each time
Solution:
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 a
vlauevalue be received back from the v8
iframe.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)
Problem:
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 on
itit, even if they are not allowed to
Solution:
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)
Problem:
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 string
valuevalue, indicating that the time is not local. This causes
that any
jqueryjQuery or
convertionsconversions being done
areto be reapplied with the current
clientsclient's local timezone.
SoSo, for
exampleexample, 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 dayjs
calculationcalculation, the time will be 14:00
Solution:
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:**
Problem
When a login URL is
usedused, the ruleset code forms part of the URL
that many users bookmark. When the ruleset code is
changechanged, 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 will
usinguse the
urlURL will be
redirectredirected to the default theme for the ruleset. The user
chaningchanging the theme key is not warned about the impact.
**Solution:**
Solution
When saving the ruleset management details for a new
codecode, show a system message to inform the user that the theme
urlURL will change.
When changing the theme key, show a system message to inform the user that the theme
urlURL will
changechange, and any user still using the
previouseprevious 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 ruleset
idID 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,y displaydisplays a message to the user that the URL is not valid and they should contact
theretheir system administrator
Imports
Automated Employee Import Error (2) (#135625)
ImportsProblem
(#135625)
Problem:
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 as
ana new
appointmentappointment, causing all new
appointmentappointments to fail to create.
Solution:
Solution
When retrieving the position code from the existing
appointmentsappointments, include all
appointmentappointments, 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 end
datedate, 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)
Problem:
When an integration form
opensopens, the details are populated without the
client-id,client ID, as the
client-idclient ID is
both shared with the same
idID value between payroll and
powershell.PowerShell. Solution:
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)
Problem:
When a schedule processes the Payspace or
PowershellPowerShell scriptsscripts, the data cannot be staged due to Cannot insert a staging record without a valid OwnerUserId
Solution:
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)
Problem:
A new setting has been implemented to make use of for pay-space payroll connector, but within
power shellPowerShell, this control does not
existsexist and
therefortherefore causes an error
Solution:
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)
Problem:
When a user pulls the Import validation report, the
usersuser's Start Date of Position is used to populate the StartDateInGroup
Solution:
Solution
Alter the check to make use of the correct field needed
Payspace changes to correct the appointment dates (#134132)
Problem
(#134132)
Problem:
Start Date in
the company is not mapped from Payspace
Solution:
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)
Problem:
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 is
uploadeduploaded, 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 all
environmentsenvironments, resulting in only the custom uploaded avatar images
being displayed.
Solution:
Solution
Always include the default avatar images
ontoin the list of available images to choose from. No longer fallback to Ruleset 1
contentcontent, but use the existing defaults avatar images folder.
[People Management]: The Load More button overlaps with People's Card (#135597)
Problem
(#135597)
Problem:
The Load More button on the People Management card view overlaps user cards when the
view portviewport is
a certain resolution.
Solution:
Solution
Removed the height specificity on the card
containercontainer, causing
the load more button to overlap the actual cards.
Upgrade issue (#135875)
Problem
(#135875)
Problem:
The people group user list
timesouttimes out after 60s
Solution:
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.
[People Management]: Profile Avatar selection is not saving (#134835)
Problem
(#134835)
Problem:
Images of
filetypefile types that are not JPG are not saving when selecting and saving
the profile avatar.
Solution:
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)
Problem:
Language options are shown in duplicate on Login screen.
Solution:
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)
Problem:
When setting the default language for a
rulesetruleset, you can pick a culture that is Not Published.
Solution:
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)
Problem:
The Promotion Status calculations are not calculated correctly within TermMarks
Solution:
Solution
Adjusted script that will calculate the TermMarks more accurately
Daily Server Monitoring Checks 2025 (#125159)
Problem
(#125159)
Problem:
There are no emails that
returnsreturn the Deploy SSIS Packages results
Solution:
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 regarding
ifwhether the
Deployeddeployed SSIS Packages ran successfully
Solution:
-
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)
Problem:
A a Newnew SSIS Package is required within the
DatawarehouseData Warehouse to refresh the report data on
it'sits own
Solution:
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)
Problem:
Competency analysis
is not showing the correct position information, only
the first appointment record
returnedreturned, resulting in older position
detaildetails displaying.
Solution:
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)
Problem:
Copy position gives a
datatableDataTable error due to
a missing column.
Solution:
Solution
Refresh the position tab instead of manually adding a
datattabledatatable rowrow, which can be unstable if the rows ever change.
Dashboards
(#133268)
[Dashboards]
Problem:Indicate Therewhen isthe dashboard has no data (#133268)
Problem
No script
that will do a Data Integrity check for
the current V10 Dashboards
Solution:
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)
Problem:
The Trainingtraining matrix page does not load at certain times when
the server is busy
Solution:
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)
Problem:
The weights in a cycle can exceed 100
Solution:
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)
Problem:
No new login logs are viewable on the report builder
Solution:
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:
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 support user,user and a few otherothers as well,well. thisThis makes use of the bulk user import functionality, as this now do requirerequires an import idID, itwhich failed to create users
Solution:
Solution
Parse
in the import
idID to create the new users to proceed with
the tenant setup
Caching
Employee appointment/termination error (#134571)
CachingProblem
(#134571)
Problem:
When a
signed signed-in
user,user terminates a user or adds a new user, the cache/roles are cleared and re-
materialized ,materialised, thus causing authentication
issuesissues, which throws a we're sorry screen
Solution:
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)
Problem:
Date inputs were not formatting according to the user’s language.
Solution:
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)
Problem:
The way the date formats
waswere applied did not work on
firefox -Firefox, due to the
way :way::before was used.
Solution:
Solution
Instead of using a date-attribute and applying a style on that
for for::
:brefore, ratherbefore, draw
a span over the date input so that the correct date format is displayed.