Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Appanvil karma designer
summary YOU ASKED, SO WE DELIVERED Dashboard Release April 20242024_04 BackUp & Restore     Download Now     Ken Miller CTO I'm pleased to share with you our latest dashboard release, pi.2024_04 which is available to download now.In this release, we've taken the opportunity to make some changes around Editable Tables, Multilingual and Sub Totals - but thats not all! As always, have a read through the notes in full to learn of all the changes before you upgrade, just to make sure its right for you and your end users. Highlights - Editable Tables - New HTTP Method- Multilingual - New Translation Fields- Table Sub Totals - Optional Label Attribute- Card Charts - Improved Display (inc Mobile) 8 New Features 10 Changes 5 Bug Fixes 14 Customer Requests
page{"premium":true,"id":"FMkTud2JrHXMpzIylO0bD","name":"page","children":[{"name":"section","params":{"backgroundSize":"cover","gap":10,"background":"#2d2f4cd4","padding":8,"image":{"value":"https://images.unsplash.com/photo-1491582325207-80d06869fb3d?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=MnwzMzg3MzF8MHwxfHNlYXJjaHwxMnx8bmV3JTIweW9ya3xlbnwwfDB8MXxibGFja19hbmRfd2hpdGV8MTY2MjEyNDU2MA&ixlib=rb-1.2.1&q=80&w=1080","target":"_self","type":"link"}},"children":[{"children":[{"children":[{"name":"text","children":[],"params":{"value":[{"children":[{"type":"paragraph","children":[{"letterSpacing":0,"fontSize":20,"fontWeight":700,"fontFamily":"Poppins, sans-serif","text":"YOU ASKED, SO WE DELIVERED","lineHeight":"10px","color":"#ffffff"}]}],"type":"paragraph"}]},"id":"rNX3qXaG8Q4ewjRCBgZcx"},{"params":{"value":[{"children":[{"type":"paragraph","children":[{"text":"Dashboard Release ","letterSpacing":0,"fontWeight":700,"fontFamily":"Poppins, sans-serif","color":"#ffffff","lineHeight":"90px","fontSize":64}]}],"type":"paragraph"}]},"children":[],"name":"text","id":"nr3C5FnGCNgZlayR21QHV"},{"children":[],"params":{"value":[{"type":"paragraph","children":[{"children":[{"fontFamily":"Poppins, sans-serif","letterSpacing":0,"text":"April 2024","lineHeight":"unset","color":"#ffffff","fontSize":24,"fontWeight":700}],"type":"paragraph"},{"type":"paragraph","children":[{"fontFamily":"Poppins, sans-serif","letterSpacing":0,"lineHeight":"unset","color":"#ffffff","text":"2024_04","fontSize":16}]}]}]},"name":"text","id":"DmpJb_rO3Qj4l9Aj66HdK"},{"name":"divider","params":{"templateId":"solid long","color":"#ef5693","alignment":"start","fontSize":24,"fontColor":{"light":"#000000","dark":"#ffffff"},"height":1,"borderStyle":"solid"},"children":[],"id":"TAZcq3EgP-1KdJ2bsdXuE"},{"name":"button","params":{"templateId":"regular button","label":"BackUp & Restore ","size":"medium","shape":"circular","alignment":"start","states":{"idle":{"colors":{"background":"#1181F8"}},"hover":{"colors":{}}},"link":{"value":"https://panintelligence.atlassian.net/wiki/spaces/PD/pages/376307765/Backup+and+Restore+of+the+Dashboard","target":"_blank","type":"link"}},"children":[],"id":"hfpGR1FJxGFfePSJR4g7T"},{"name":"button","params":{"templateId":"regular button","label":"   Download Now    ","size":"medium","shape":"circular","alignment":"start","states":{"idle":{"colors":{"background":"#1181F8"}},"hover":{"colors":{}}},"link":{"value":"https://panintelligence.atlassian.net/wiki/spaces/PD/pages/1258652085","target":"_blank","type":"link"}},"children":[],"id":"ImDnaOMj9XpCxaDqyPZPk"}],"params":{"verticalAlignment":"center","borderRadius":{"btl":0,"btr":0,"bbl":0,"bbr":0,"all":0,"isIndividualCorners":false},"padding":0,"gap":20},"name":"column","id":"jm4mo6d7GzYx3hUB4l-F0"},{"name":"column","children":[],"params":{"gap":20,"padding":0,"borderRadius":{"isIndividualCorners":false,"all":0,"bbl":0,"bbr":0,"btr":0,"btl":0},"verticalAlignment":"center"},"id":"yBKq_7TPH5d1DV8hFdhLu"},{"children":[],"name":"column","params":{"gap":20,"padding":0,"verticalAlignment":"center","borderRadius":{"bbl":0,"all":0,"btl":0,"bbr":0,"btr":0,"isIndividualCorners":false}},"id":"fH6MHBuk3I0R4it7BRCGP"},{"children":[],"params":{"verticalAlignment":"center","borderRadius":{"btl":0,"bbl":0,"bbr":0,"isIndividualCorners":false,"all":0,"btr":0},"padding":0,"gap":20},"name":"column","id":"_FPGEp6mQPRJJvPIB6VPD"},{"name":"column","params":{"borderRadius":{"bbr":0,"isIndividualCorners":false,"btl":0,"all":0,"btr":0,"bbl":0},"verticalAlignment":"center","gap":20,"padding":0},"children":[],"id":"mJWfn1yDf0yleGusTvyDV"},{"name":"column","params":{"verticalAlignment":"center","gap":20,"borderRadius":{"bbl":0,"btr":0,"bbr":0,"all":0,"btl":0,"isIndividualCorners":false},"padding":0},"children":[],"id":"3WBEHbIwEeCHcL3oWU6bg"}],"name":"row","params":{"gap":100,"padding":10,"minHeight":200,"borderRadius":0,"layout":[1]},"id":"mbQy4dSTfKlyYK-9k0_SM"}],"id":"AazdKjV1KYMbgvQPAld6a"},{"id":"iPYoTT8UrrUFlXqDlVg1m","params":{"background":"#ffffff","padding":22,"gap":10},"children":[{"id":"HaE0KXsm3rDEJhjTV7Mjx","name":"row","children":[{"id":"VaA-Y-CIV4m2ogQe_Sqmo","name":"column","children":[{"name":"image","params":{"alignment":"center","height":400,"position":"center center","borderRadius":{"all":5,"bbl":0,"bbr":0,"btl":0,"btr":0,"isIndividualCorners":false},"image":{"value":"att1673265190","target":"_blank","type":"attachment"}},"children":[],"id":"T2bXrsdBHviCyZtS2HZvV"}],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":10,"verticalAlignment":"center"}},{"id":"0HIQC86K7mXpaQnPu4lsM","name":"column","children":[{"name":"text","params":{"value":[{"type":"paragraph","children":[{"type":"paragraph","children":[{"text":"Ken Miller","letterSpacing":0,"fontWeight":600,"fontSize":28,"color":"#2c2c2c"}],"align":"left"}]}]},"children":[],"id":"pHAKnX_bCCwJ0kzgKbWXi"},{"name":"text","params":{"value":[{"type":"paragraph","children":[{"type":"paragraph","children":[{"text":"CTO ","letterSpacing":0,"color":"#969696","fontWeight":300,"fontSize":18}],"align":"left"}]}]},"children":[],"id":"l_VOVkhnKQUZUw-ve2Wf0"},{"name":"text","params":{"value":[{"type":"paragraph","children":[{"type":"paragraph","children":[{"lineHeight":"24px","letterSpacing":0,"text":"I'm pleased to share with you our latest dashboard release, ","fontFamily":"unset","fontSize":16,"color":"#555555"},{"lineHeight":"24px","letterSpacing":0,"fontFamily":"unset","fontSize":16,"fontWeight":700,"text":"pi.2024_04 ","color":"#ef5693"},{"lineHeight":"24px","letterSpacing":0,"fontFamily":"unset","fontSize":16,"text":"which","color":"#555555"},{"lineHeight":"24px","letterSpacing":0,"fontFamily":"unset","fontSize":16,"color":"#000000","text":" "},{"lineHeight":"24px","letterSpacing":0,"fontFamily":"unset","fontSize":16,"text":"is available to download now.","color":"#555555"}],"align":"left"},{"type":"paragraph","align":"left","children":[{"lineHeight":"24px","letterSpacing":0,"fontFamily":"unset","fontSize":16,"color":"#555555","text":""}]},{"type":"paragraph","align":"left","children":[{"lineHeight":"24px","letterSpacing":0,"fontFamily":"unset","fontSize":16,"color":"#555555","text":"In this release, we've taken the opportunity to make some changes around Editable Tables, Multilingual and Sub Totals - but thats not all! "}]},{"type":"paragraph","align":"left","children":[{"lineHeight":"24px","letterSpacing":0,"fontFamily":"unset","fontSize":16,"color":"#555555","text":""}]},{"type":"paragraph","align":"left","children":[{"lineHeight":"24px","letterSpacing":0,"fontFamily":"unset","fontSize":16,"color":"#555555","text":"As always, have a read through the notes in full to learn of all the changes "},{"lineHeight":"24px","letterSpacing":0,"fontFamily":"unset","fontSize":16,"color":"#555555","text":"before","fontWeight":700},{"lineHeight":"24px","letterSpacing":0,"fontFamily":"unset","fontSize":16,"color":"#555555","text":" you upgrade, just to make sure its right for you and your end users."}]}]}]},"children":[],"id":"3yPpnPcG9Ua1cMKx_-oPx"},{"name":"button","params":{"label":"","size":"medium","shape":"circular","alignment":"start","states":{"idle":{"colors":{"background":"#414141","label":"#ffffff"}},"hover":{"colors":{"background":"#000000","label":"#ffffff"}}},"icon":"linkedin-in","link":{"value":"https://www.linkedin.com/in/ken-miller-bb77975/?originalSubdomain=uk","target":"_blank","type":"link"}},"children":[],"id":"YkQiC1UEdSABfAG30yCAE"}],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":10,"verticalAlignment":"center"}},{"id":"zQPv9B1ZIKSgIEL2-TqyZ","name":"column","children":[{"name":"image","params":{"alignment":"center","height":300,"position":"top center","borderRadius":{"all":5,"bbl":0,"bbr":0,"btl":0,"btr":0,"isIndividualCorners":false},"image":{"value":"att1698562062","target":"_blank","type":"attachment"}},"children":[],"id":"HC2565mrpH6QIPWrXG9rq"}],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":10,"verticalAlignment":"center"}},{"id":"uFI2qIqzCdlp4soZcoFKh","name":"column","children":[{"name":"text","params":{"value":[{"type":"paragraph","children":[{"type":"paragraph","children":[{"text":"Highlights","letterSpacing":0,"fontWeight":600,"fontSize":28,"color":"#2c2c2c"}],"align":"left"}]}]},"children":[],"id":"StFraL4oyQVb2F1-fMUdr"},{"name":"text","params":{"value":[{"type":"paragraph","children":[{"type":"paragraph","children":[{"text":"- Editable Tables - New HTTP Method","letterSpacing":0,"color":"#969696","fontWeight":300,"fontSize":18}],"align":"left"},{"type":"paragraph","align":"left","children":[{"letterSpacing":0,"color":"#969696","fontWeight":300,"fontSize":18,"text":"- Multilingual - New Translation Fields"}]},{"type":"paragraph","align":"left","children":[{"letterSpacing":0,"color":"#969696","fontWeight":300,"fontSize":18,"text":"- Table Sub Totals - Optional Label Attribute"}]},{"type":"paragraph","align":"left","children":[{"letterSpacing":0,"color":"#969696","fontWeight":300,"fontSize":18,"text":"- Card Charts - Improved Display (inc Mobile)"}]},{"type":"paragraph","children":[{"type":"paragraph","align":"left","children":[{"letterSpacing":0,"color":"#969696","fontWeight":300,"fontSize":18,"text":""}]}]},{"type":"paragraph","align":"left","children":[{"letterSpacing":0,"color":"#969696","fontWeight":300,"fontSize":18,"text":""}]},{"type":"paragraph","align":"left","children":[{"letterSpacing":0,"color":"#969696","fontWeight":300,"fontSize":18,"text":""}]},{"type":"paragraph","align":"left","children":[{"letterSpacing":0,"color":"#969696","fontWeight":300,"fontSize":18,"text":""}]},{"type":"paragraph","align":"left","children":[{"letterSpacing":0,"color":"#969696","fontWeight":300,"fontSize":18,"text":""}]},{"type":"paragraph","align":"left","children":[{"letterSpacing":0,"color":"#969696","fontWeight":300,"fontSize":18,"text":""}]}]}]},"children":[],"id":"lDEf-U_uv7DU3v6czqDnR"},{"name":"spacer","params":{"space":10},"children":[],"id":"iLlGX7VLo5DPMdB15Nsu8"},{"name":"spacer","params":{"space":10},"children":[],"id":"CEa3nvn4dCUclBcV0LcGx"}],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":10,"verticalAlignment":"center"}},{"id":"6IYCbdH0yACltgbuUqUsV","name":"column","children":[],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":10,"verticalAlignment":"center"}},{"id":"TC07p_TJiJqkld5i-FtRF","name":"column","children":[],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":10,"verticalAlignment":"center"}}],"params":{"layout":[1,1,1,1],"gap":35,"minHeight":200,"padding":10,"borderRadius":0,"size":"full"}}],"name":"section"},{"params":{"background":"#393d4f","gap":10,"padding":0},"name":"section","children":[{"children":[{"name":"column","children":[{"name":"card","children":[{"children":[],"params":{"value":[{"children":[{"color":"#6fceb4","fontFamily":"Montserrat, sans-serif","fontWeight":700,"text":"8","fontSize":54}],"type":"paragraph","align":"center"}]},"name":"text","id":"x8h3JtbaitH4rONaExd2J"},{"children":[],"name":"text","params":{"value":[{"children":[{"text":"New Features","fontSize":20,"fontFamily":"Montserrat, sans-serif","color":"#ffffff"}],"type":"paragraph","align":"center"}]},"id":"lSiInwGpA8cK6ew5Fkmlz"}],"params":{"padding":20,"gap":10,"borderRadius":{"bbl":0,"bbr":0,"btr":0,"isIndividualCorners":false,"all":0,"btl":0},"hover":"elevate"},"id":"8sGgpAEhoNbWpufDnX9Is"}],"params":{"padding":0,"verticalAlignment":"center","gap":20,"borderRadius":{"all":0,"btr":0,"isIndividualCorners":false,"btl":0,"bbl":0,"bbr":0}},"id":"vxQl8_xUTLUeSdy6Zj667"},{"name":"column","children":[{"name":"card","children":[{"params":{"value":[{"type":"paragraph","children":[{"fontWeight":700,"text":"10","color":"#4bb9d2","fontFamily":"Montserrat, sans-serif","fontSize":54}],"align":"center"}]},"children":[],"name":"text","id":"YCgKCdTm1qwKX5q1EuCdr"},{"params":{"value":[{"align":"center","children":[{"fontSize":20,"color":"#ffffff","fontFamily":"Montserrat, sans-serif","text":"Changes"}],"type":"paragraph"}]},"name":"text","children":[],"id":"BR4va-GpZlAJOp2mwMH-1"}],"params":{"borderRadius":{"bbr":0,"isIndividualCorners":false,"btr":0,"btl":0,"bbl":0,"all":0},"gap":10,"hover":"elevate","padding":20},"id":"18AFcFB160BbE0iQeYr8c"}],"params":{"borderRadius":{"bbl":0,"bbr":0,"isIndividualCorners":false,"all":0,"btr":0,"btl":0},"verticalAlignment":"center","gap":20,"padding":0},"id":"l-GJ3YT3H_VJSsOjq70wP"},{"params":{"gap":20,"borderRadius":{"all":0,"bbr":0,"btr":0,"btl":0,"bbl":0,"isIndividualCorners":false},"verticalAlignment":"center","padding":0},"children":[{"name":"card","params":{"gap":10,"borderRadius":{"bbr":0,"isIndividualCorners":false,"all":0,"bbl":0,"btr":0,"btl":0},"padding":20,"hover":"elevate"},"children":[{"params":{"value":[{"type":"paragraph","align":"center","children":[{"fontWeight":700,"color":"#8871f9","fontSize":54,"text":"5","fontFamily":"Montserrat, sans-serif"}]}]},"name":"text","children":[],"id":"OLpC1-Pgjlm5sO19zrQ39"},{"params":{"value":[{"align":"center","type":"paragraph","children":[{"text":"Bug Fixes","fontSize":20,"color":"#ffffff","fontFamily":"Montserrat, sans-serif"}]}]},"children":[],"name":"text","id":"9mMYPgwoc1O74DZkegvHw"}],"id":"r5axRw3H73kS5E_cIjBvm"}],"name":"column","id":"zXI-oq_sWnVXrhI0dB3so"},{"children":[{"params":{"borderRadius":{"bbl":0,"bbr":0,"btr":0,"btl":0,"all":0,"isIndividualCorners":false},"gap":10,"hover":"elevate","padding":20},"name":"card","children":[{"name":"text","children":[],"params":{"value":[{"children":[{"fontFamily":"Montserrat, sans-serif","text":"14","fontSize":54,"fontWeight":700,"color":"#5098fa"}],"type":"paragraph","align":"center"}]},"id":"7DNl9bkskIgNrLnsUqDjN"},{"name":"text","children":[],"params":{"value":[{"align":"center","type":"paragraph","children":[{"fontSize":20,"color":"#ffffff","fontFamily":"Montserrat, sans-serif","text":"Customer Requests"}]}]},"id":"YLmi5VfiWq6zAkHD5bIWH"}],"id":"OWVeUSdsPsJFgJV2KFu6M"}],"name":"column","params":{"verticalAlignment":"center","gap":20,"borderRadius":{"btl":0,"all":0,"bbr":0,"btr":0,"isIndividualCorners":false,"bbl":0},"padding":0},"id":"3eUuDQUJ_7Wt3H0ogN0gG"},{"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"isIndividualCorners":false,"btr":0,"bbr":0},"gap":20,"verticalAlignment":"center","padding":0},"name":"column","children":[],"id":"LFnVMjeI8jdrjJ5UCbCpq"},{"params":{"borderRadius":{"bbr":0,"isIndividualCorners":false,"bbl":0,"all":0,"btl":0,"btr":0},"verticalAlignment":"center","gap":20,"padding":0},"name":"column","children":[],"id":"FotJeCTUtI5G5on3410IY"}],"params":{"gap":40,"borderRadius":0,"layout":[1,1,1,1],"minHeight":200,"padding":0},"name":"row","id":"d6_mAzNbYQvSXQvqfrwO7"}],"id":"hBpUSNSybAXZlGhjE3HRg"}]}

Table of Contents
minLevel1
maxLevel6
include
outlinefalse
indent
exclude
typelist
class
printablefalse
  • Customer requested changes are indicated with this icon 🗣️

  • The 2024_04 release contains x1 schema changes


NEW FEATURES

Editable Tables - New HTTP Method - Send All Modified Rows In A Single Requested (JSON Format) 🗣️

pi#2297

29070

Editable Tables

A new option has been added for the HTTP Method, to be used for sending requests from an Editable Table. This new method, named “POST (JSON)” as opposed to the pre-existing method that has been renamed “POST (Classic)” will send all modified rows in a single request formatted in the following JSON structure:

Code Block
{
  dashboardUser: usercode,
  dashboardToken: token,
  modifiedRows: [
    {colValue: firstRowValue1, colValue2: firstRowValue2},
    {colValue: secondRowValue1, colValue2: secondRowValue2}
  ]
}

To accommodate this new option, the radio buttons for this setting have been changed to a drop down as shown below:

pi-2297_new-method-in-drop-down.png
Info

NOTE: The GET request has also been updated to send the values as Form URL Encoded, allowing more complex data to be sent via this method

Sub Totals - Attribute Added To Enable On/Off Display Of Dimension Subtotal Break Labels 🗣️

pi#2350

30256

Table Display - Sub Totals

A new checkbox has been added to control whether the labels are shown for dimension subtotal breaks. By default, the checkbox will be unticked, hiding the labels next to subtotal break values.

The checkbox is only be available to Table chart type.

sub1.png

Once the checkbox is ticked, the labels will appear to all subtotal values, e.g.

sub2.png

New Magic Variable - LAST_MONTH_YEAR 🗣️

pi#2345

29021

Magic Variables

Added a new Magic Variable [[LAST_MONTH_YEAR]] that resolves to the year (formatted yyyy) the previous month was in i.e. if the current month is January 2024 it will yield 2023.

Info

See our documentation on Magic Variables HERE

Migrations - Ability To Skip Migrations 🗣️

configuration-tool#132

-

Migrations

Adding the ability to skip migrations by providing the following flag, under the ‘advanced’ section under ‘repository’ in the configuration tool:

Screenshot from 2024-04-04 16-22-27.png

It can also be applied by setting the following environment variable under the dashboard service in docker: PI_DB_SKIP_MIGRATIONS=”true”

NOTE - This is an advanced setup option and to upgrade successfully migrations MUST have run at least once. This is most useful when you use multiple Dashboard server nodes because you can more closely control the migration behaviour.

Multilingual - Translation For Category Object Types 🗣️

pi#2296

29496

Multilingual

The following new entries have been added to the messagesStatic.properties file, to allow the translations of Category Objects types in the dropdown list.

List of new key=value pairs:

Code Block
category.object.type.droplist.label=Drop List
category.object.type.search.label=Multi-picker
category.object.type.checkbox.label=Checkboxes
category.object.type.images.label=Images
category.object.type.slider.label=Slider
category.object.type.num.picker.label=Number Picker
category.object.type.single.date.picker.label=Single Date Picker
category.object.type.date.picker.label=Date Range
category.object.type.free.text.label=Free Text

If you wish to use these new fields, you will need to update the existing language files (e.g. messagesStatic_en_GB.properties, messagesStatic_pt_PT.properties) with the above keys and add your translated values.

Example of the result in the UI:

Screenshot from 2024-03-08 12-03-34.png

 

Multilingual - Translation For Confirmation Pop Up - When Closing A Tab With Unsaved Changes 🗣️

pi#2294

29494

Configuration Screen

New associations and entries have been added between the Dashboard UI and the messagesStatic.properties file, to allow the translations of both the text and the hover text of elements on the pop up window - which appears when you attempt to close a tab with unsaved changes. Additionally, the yellow ‘unsaved changes’ indicator’s hover text is now translatable.

List of new key=value pairs:

Code Block
default.button.edited.indicator.title=Modified and not saved
default.button.save.title=Save changes
default.button.cancel.title=Cancel to close this dialog
default.button.discard.title=Discard changes and close the tab
default.status.bar.message=You have made some changes, do you want to:

Pre-existing Key=Value pairs used:

Code Block
default.button.discard.label=Discard
default.button.cancel.label=Cancel
default.button.save.label=Save

If you wish to use these new fields, you will need to update the existing language files (e.g. messagesStatic_en_GB.properties, messagesStatic_pt_PT.properties) with the above keys and add your translated values.

Example of the result in the UI:

pi-2294_translated.png

Data Connections - Additional Variable Replacement Options 🗣️

#2326

28872

Data Connections

The JDBC URL field of Free Format Data Connections has been updated to allow the use of secure variables - it already supports insecure ones.

This also means that other data connections that have multiple fields that ultimately combine to form the JDBC URL, for example the ‘Host’ field, now support secure variables as well. Additionally, the Driver Class Path field that previously did not allow any variable replacement has been updated to support both secure and non-secure variable replacement.

The Username and Password fields still only allow for secure variable replacement however they now have a lock icon with a tooltip to indicate that this is the case

pi-2316_secure-only-icon.png

 

Data Object Screen - Cursor Focus Improvement

pi#2301

-

Data Connection

Previously, after having written in one of the text boxes within the data objects screen, followed by selecting another text box to write to, you would have to click twice to focus on the 2nd text box. Now, you can click once and it will focus immediately as normal.

CHANGES

Duplicating Category Layout (inc Charts), When Duplicating A Category 🗣️

pi#2302

29446

Categories

Previously, upon duplicating a category, it would not copy the category layout. This means all of the charts would need to be added manually. Now, it will attempt to copy the layout, following this hierarchy:

  1. If a default layout exists, it will copy that

  2. If a user layout exists for the user attempting to duplicate the category, and no default layout exists, it will copy that

  3. If no layout exists, it will copy nothing

User Management - Forename & Surname Option For The More Options Menu 🗣️

pi#2328

28658

User Management

User’s forename and surname will be used by default in the dropdown in ‘More Options’ menu and will also be added to user’s account screen.

When forename and/or surname are not provided, the option will default to using usercode.

More Options dropdown:

Screenshot from 2024-03-25 13-26-29.png

User Account screen:

Screenshot from 2024-03-25 13-27-26.png

 

Scheduler - Failing When Disabled Users Or Email Addresses Are Missing 🗣️

scheduler#73

28374

Scheduler

Previously, upon detecting a disabled user or a user with a missing email, a schedule job would fail entirely. Now, it will simply skip over these users and continue scheduling to all other non-problematic users without fault. It will also skip over users under a role which are either disabled or have a missing email too.

piAnalytics - Decision Tree - MIN_SAMPLE_LEAF Added To DecisionTree

pirana#45

-

piAnalytics

We now include min_samples_leaf option to the decision tree logic in piAnalytics. This option imposes a constraint on the minimum number of samples required to be at a leaf node that prevents the tree from growing overly complex and capturing noise.

With this setting we can control the level of detail in the decision tree as larger leaf sizes result in simpler trees, which are easier to interpret. Each leaf node will contain at least 5% of the total samples. This setting for min_samples_leaf will be made configurable in the upcoming releases.

Card Charts - Remove White Space Underneath A Card Chart (Desktop & Mobile Views) 🗣️

pi#2252

29726, 29484, 29570, 29447 & 29313

Card Charts

Fixed various display and scaling issues of card charts on both desktop and mobile view.

Changed the way the size of the card chart container is being calculated; now we will be using the width-height ratio that is applied to cards in the chart editor. As a result, when having multiple card charts in the same category, more content will be displayed in mobile view.

Example Video below; (Safari, iOS 17.2, iPhone 15):

cards.mp4

 

Improvements have also been made around the scaling of card charts, specifically when displaying large amounts of content.

Excel Export - Chart Title Inconsistencies 🗣️

pi#2332

29629 & 29283

Excel Export

Fixed an issue where incorrect chart title was used in the excel spreadsheet. Excel export will mirror the chart title displayed for the chart in the UI that is consistent with the rest of export types e.g. if the chart title is defined in the ‘Attributes' section, this chart title will be used in the exported file.

Combined Charts - Not Drawing When Trend Line Is On

pi#2315

28859

Chart Display

Fixed an issue where the combined chart with multiple measures was breaking if the trend line was being used and the data for all measures was put on the second y axis.

Exporting (PowerPoint & Excel) - NULL Values Should Display As Empty When Used In Dimensions 🗣️

pi#2303 & pi#2306

29370

Exporting

PowerPoint & Excel exports were showing a hardcoded 'NULL' value when NULL values were used in the dimension data. Instead, we now convert any NULL values into empty strings to reflect thew view in the UI. Currently, NULL values in the dimensions are shown as empty cells in the table in the dashboard.

Info

This change only affects Dimensions. The implementation of NULL handling for measures will continue to work the same way with extra options in the chart configuration.

Importing/Exporting - Removed Leading And Trailing

Sspaces

Spaces From Identifiers 🗣️

pi#2238

29354

Import / Export

Removed the leading and trailing spaces from the domain values that are used as identifiers in export import functionality e.g. chart name, data connection name, category name, report name, schedule name. All leading and trailing spaces will now be trimmed before being saved to the database.

Go Library Upgrade - Upgrade PGX Package

scheduler#84

-

Scheduler

A high level SQL injection vulnerability (CVE-2024-27289)was reported in one of the go libraries used by the scheduler. Although we don’t believe it would be possible to exploit, we’ve upgraded the library to fully mitigate any risk.

SCHEMA CHANGES

SHOW_DIMENSION_BREAK_SUB_TOTAL_LABELS

PI#2350

30256

Schema

Column added to mis_hierarchies table