# Version 9.1.103 (19 July 2024)

### Performance Management

#### Blank screen after opening an agreement (TP#118171)

**Problem**

- The user contract does not load due to a JavaScript error if one section has no name.

**Solution**

- Ensure that a section item always has a name, by returning "unknown" if it is null or empty.

#### Index panel problem (TP#118173)

**Problem**

- "Natural" sorting of items was not implemented when perspectives were enabled.

**Solution**

- Ensure that level 2 items are always sorted naturally.

#### Prevent the delete icon from wrapping to a new line (TP#117026)

**Problem**

- The delete icon wraps to another line

**Solution**

- Disable the wrapping of the delete icon in the overall summary section

---

### People Management

#### Duplicate employees saved (TP#118162)

**Problem**

- Duplicate users were displayed due to a bug in the back-end logic.

**Solution**

- Ensure duplicate users are not returned when people group users are returned.

#### Roles are not applying to V8 pages (TP#112977)

**Problem**

- Ruleset admin and Schema admin in V9 and V8 respectively are handled differently.
- In V8, schema admin always has edit/view rights.
- In V9 a Ruleset admin needs the appropriate right to view/edit.

  
**Solution**

- Added a check, when coming from V9 it will only check the view/edit permissions and not if the user is an admin.

---

### Ruleset Management

#### 'User not active' message when attempting to log into the newly created ruleset (TP#116988)

**Problem**

- When a new ruleset is created, when trying to log into that ruleset with the user that created it a user not active message is displayed.
- The problem is that the user has no appointment and does not exist on JobProfiler.MaterializedUsers because of an error when trying to materialize the user.
- This error is because the user has tried to be added before the ruleset has been created on JP which causes the context to go invalid and the user never gets created.

**Solution**

- Changed the order of execution to first send the ruleset created event, and then send the copy identity user (which calls user created event) to reduce the chance of a race condition occurring and the user being created before the ruleset exists on JP.
- Add a check to delay user creation until the ruleset is created

#### Translation Resource names displayed (TP#118163)

**Problem**

- The functionality from the initial development was not working 100% and it saved the actual translated value not the key, also where it did have the key saved it displayed that instead of the value.

**Solution**

- Made it so that when editing/adding a theme it always saves the translation key. When viewing the viewed value is the translation value.  
    Also made it auto-scroll and focus on the relevant key when clicking on the Hand icon next to the inputs

---

### SigniChat

#### Read Receipt for Messages does not display accurate time (TP#116198)

**Problem**

- Newly Sent Message displays a Read Receipt Time that is not accurate as the user the message was sent to has not yet viewed the message

**Solution**

- Read Receipt time is only logged when the New Message is read by the user it was sent to.

---

### Translation for the Login Page

#### The login page language setting is not working (TP#118207)

<div id="bkmrk-problem-12">**Problem**</div><div id="bkmrk-static-translations-">- Static translations did not work when the user was not signed in (ie on the login page)

</div><div id="bkmrk--5"></div><div id="bkmrk-solution-12">**Solution**</div><div id="bkmrk-ensure-that-static-t">- Ensure that static translation works even when the user is not logged in and authenticated.

</div>---