Upgrading to 3.0 from 2.6

SupportPal 3.0 is a major release containing a completely revamped interface. The interface has been designed for better functionality and mobile support, and includes a dark mode option.

Contents

Estimated Upgrade Time: 1-2 Hours.

What's New?

View the 3.0 Release Notes for the new features and improvements in this series.

New System Requirements

Email Template Changes

The upgrader will attempt to automatically update email templates that have not been modified. If you see a message stating Unable to update email template when running database upgrades then you'll need to update the template mentioned manually:
  1. Browse to Settings > General > Email Templates and find the template mentioned
  2. In the text editor, click on the <> button (view HTML)
  3. Replace all content with the relevant email template from the list below
  4. Repeat for any translated versions
  5. Click Save

Ticket feedback request

The 'Ticket feedback request' email template has been updated to add a neutral feedback option.

<table width="450" style="width:450px;">
    <tbody>
        <tr>
            <td align="center" style="text-align: center">
                <a href="{{ route('ticket.frontend.ticket.feedback', [ ticket.number, token ]) }}?rating=1">
                    <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAMAAAC7IEhfAAABqlBMVEUAAAAuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEuzHEeM3AYAAAAjXRSTlMAAQIDBAUGBwgJCgsMDg8QERITFBUWFxgaGxwdHh8gIiQmKSorLC4vMDIzNDY4OTo8Pj9BQ0RFR0lKS0xOT1RVVldYWVtcXV5hYmNmaG9zdHV4fH5/hYiLjo+UlZeYmp6gpaaoqqutr7C1t7q8vsHDxcfIzM7P0dPV19na3ODi5Obo6evt7/Hz9ff5+/3xUOGfAAACRklEQVQYGYXBiSOTYQDH8d+z7Z0iYpPpkhrpPuhS6dKlRBedohKx7kQpraKY7fs/9zzvsA2tz0cFvH3dbzJYk73Hy/VPdQPke3/YaDWxUZabOqgVTCfOrzv7akrDayvj18dwnq5RIe8V1qt65VT1Ys3ElK/0CzDZpEKRZ0A6rpzQZ+BxQCucBtK1WmRGgA6tpn4WZkq1oB3o1OrqgGFlVWagX5ZpaIlokWloicg6ARyVrx9+BiWFx4CLygqPAVdkPYTpgKwo0CyrByciXw9OtaR1wClZt2HCyEritMiXxDkm6yZMSTKzsF9OAqdBvgROk6y1QEzaCpmgnEasMSNfI9a4kTME16Q2eK6sxkSyJ6wFjYlkT1i+VngpPYBzKq4G5qW3sFPFeYCnKdik4gxQpnmo1n8AVfoBG1WcAdbpA8RVXAgI6wm0ybf+zUBQeZon2+WLQMboAvTJdxfOKMfLQEhOM7yWtsOckdMGyYCWXIXv8vXBDSmQhrickjT0atGmDJyR4wF1kh5AQr7LwP2gfLtTMBWQ0w4zRtJWoEGOGQamr26piB4YAdIxOV4KOuSMwoSRExwkZ3abfF2Q8uRsBm7JZ86mWfCiTL4dwCVl3QKOKMs7OZiC8a6Ysirm4KNRVmAC2K8lRksqvkI6qkVl00CnVorPAbuUs+E3MBxVIa8bq1X5yr9h3StXTuh8CsjsUSGvDyfRVhs2Uqjq0KMM1qdqrbD3O8vNdxitwrRMku9PZ1j/Er08lML3rrveqDivrKq8xGi5v+9pCmPJArjSAAAAAElFTkSuQmCC" alt="Good, I'm satisfied">
                </a><br>
                Good, I'm satisfied
            </td>
            <td align="center" style="text-align: center">
                <a href="{{ route('ticket.frontend.ticket.feedback', [ ticket.number, token ]) }}?rating=2">
                    <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAMAAAC7IEhfAAABmFBMVEUAAADxxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/xxA/4+wrwAAAAh3RSTlMAAQIDBAUGBwgJCgsMDQ4PERITFBUWFxgaGxwdHyAkJikqKywuLzAzNDY4Ojw+P0FDREVHSUpMTk9SVFZXWFlcXV5iY2Zob3BzdHV4fH6ChYaIiYuPlJWXmJqeoKWmqK2vsLK1t7q8vsHDxcfIzM7P0dPV19na3ODi5Obo6evt7/Hz9ff5+/36/rmZAAACCUlEQVQYGYXBCUNMUQCG4e9M3aFFNU2apIYpoVBZIkWIKNkiVKJQ2SMiad/m/dvOuVNqVs+jJF5j3/s41uzA+RJlVfuCvT6dMcokMkGquVNKY3pwFu83VhYGC8pit6ZxRvcrmTeFNRXVrtAA1nJEexX+AGYblKz8JbAV067878DzgNJcAraqtMO8BbqVSXQNlgu1rQvoUWa1wLgSyuIwIsvUtYT1T7S1WtYF4Kx8I7CQJyk4DdxQgnkDPJb1FJYCssJAs6yHOBXydeI0SCoGLsq6BzNG1jzOOflGce7IugtzkswaNMmZxGmQ7wHOZVkFQESqgXienHqsb0a+MNZKUM4Y3JTa4ZUS6ifnHwW1rWpsYfiAfG3wWhqETuVWCZvSBzim3DzA0xxUKzcDFGkTKvQfQEh/4JByM0CxPkNMueUDQQ1DuxICXgojXznEja7CkHwdpFqNyGmGd9IRWDdyFknTK2cIbkuBLYjJ6SDVWkSWB9RKGoRJ+QJeCiOnC5aNpBqgTtl5G9AtZwJmjLLqhQ1PzmGgX9kcBa4poR9oVWal6/DFKCEwAzQpk9KfsBXWjqIloEfpYuvAce06uAKMh5XM68Nq014lv7CelGhX/pUNIH5CybwhnMn2qqCR8kOnn8WxvlYozcnfpNrsNsrAtMyy12pPUNmEr49t4PvYFzXKzSsKlewzSvUXTrn3Jn1lbwAAAAAASUVORK5CYII=" alt="I'm not sure">
                </a><br>
                I'm not sure
            </td>
            <td align="center" style="text-align: center">
                <a href="{{ route('ticket.frontend.ticket.feedback', [ ticket.number, token ]) }}?rating=0">
                    <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAMAAAC7IEhfAAABpFBMVEUAAADnTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDznTDw8vlXlAAAAi3RSTlMAAQIDBAUGBwgJCgsMDQ4PERITFBUWFxgaGxwdHh8gJCYpKissLi8wMzQ2ODo8PT4/QUNERUZHSUpMTk9QUlZXWFlbXF1eYmNmaG9zdHV4fH6ChYiJi4+UlZeYmpudnqClpqitr7C1t7q8vsHDxcfIzM7P0dPV19na3N7g4uTm6Onr7e/x8/X3+fv9/9BgVAAAAkNJREFUGBmFwYlDi2EAx/Hfs/a+UUmtlLPYcuXMGbkSURJCyC20co4ICRVb7ftPe553W9tq5vNREa994FUaa+rmsVr9U8tjCr09YFRK8xjLTe/VCqYP59f19qYqf3Vd9HIC58kqFfPGscZblVd/E2uuWYWqPgNTO1Qs8hRYjCov/Am4F9IKJ4HF9coxL4FeldL6B+aqlNUN9Km0FuC5MurS8EiWiXVElGNiHRFZx4HDCjyCnxWS/ARwXhl+Argo6w7MhmQ1AAdlDeFEFBjCaZRUA5yQdQ0mjawZnA4FZnCOyLoK05LMH9gjJ44TUyCOs0PWaqBZ2gLpCjltWAmjQBvWRyNnFC5JXfBMGW3xmSFfWW3xmSFfgU54IQ3DGZXXBAvSa9iu8jzA0zRsVHkGqNYCNOo/gHr9gA0qzwA1egdR5YXab00mv492r1FeGPB1H7q0ZP88WcO+ciKQNjoHI8oyd8j72aSsgzAhbYWkUcZDYGEw1rz5RAJI1iljBPql0CJEFTgFPKlU4GgaPhs5HtAiaRjicrwUPFBOFOiU0w1zRtIWICbrGMyFtaQfpmR5KeiVMwaTRtIN6FFeJeBJugIpT84mYFBS47eJsAqcTvVL2gb0KGMQOKTS1ibhvVFGaBLYo1LWfoHFBuVUzwJ9WimaBHYqb9088LxBxbwBrE4Vqv2KdbtWeeGzKSC9S8W8EZx413rfSOH6fXfTWB8atcLu7yy30GtUgumYotDvPl//0nBhNEXgzUCrUXledX1tpdFyfwF8RgXXQ7P1gQAAAABJRU5ErkJggg==" alt="Bad, I'm unsatisfied">
                </a><br>
                Bad, I'm unsatisfied
            </td>
        </tr>
    </tbody>
</table>

Development Changes

Database changes

The following tables have been changed:

API changes

The following API functions have backward incompatible changes:

Framework

We've upgraded the core framework (laravel/framework) from version 5.5 to 6. Some of these releases have breaking changes which may break any code you've written.

Notable changes

For a full list of changes, please read through the Laravel upgrade guides:

  1. 5.5 to 5.6
  2. 5.6 to 5.7
  3. 5.7 to 5.8
  4. 5.8 to 6.0

We recommend to test your plugin on a development installation before upgrading your help desk. Please contact us for a development license key if you don't already have one.

Views

Any jQuery code used before the scripts_footer block must be moved to the body end. jQuery is now loaded later to improve page rendering times.

The extendedViews and overriddenViews options have now also been removed. These have not been documented since being replaced with View Hooks in 2.4.0, we recommend to read over the extending templates plugin documentation if your plugin makes use of either of these.

Template Changes

Both the operator and frontend templates have been completely rewritten and many JavaScript libraries updated or removed. If you've made template modifications please review your files.

If you were using of the below functions in canned responses, email templates or your own custom portal templates then please read on:

Config File Changes

config/app.php
The following logging related configuration options have been removed:

See Logging Configuration for more information on the new config options.

config/trustedproxy.php
The config file refers to class constants which are no longer available - this may result in fatal PHP errors if not replaced. We recommend to compare your trusted proxy configuration with our new default and copy over any changes. View the /config/trustedproxy.php file and Configuring a Trusted Proxy section for more information.

Other Important Changes