Skip to content

Releases: panichelpdesk/panichd

Fix for Laravel Breeze auth

28 Feb 18:47
Compare
Choose a tag to compare
Pre-release

Bug fixes

  • PanicHD in a Laravel app with an auth package that uses App\Models\User gives an error in PanicHD\Member model
    • Affected PanicHD installations:
      • Laravel 8 new installations with laravel/breeze or other auth packages
      • Earlier Laravel versions not using laravel/ui
    • Patch:
      • Creation of serveral PanicHD\Member models
        • Member_AppUser that extends App\User
        • Member_AppModelsUser that extends App\Models\User
      • Creation of MemberTrait that holds all Member models functionality
      • In service provider, if Member model setting is not configured, check for App\Models\User existence
      • use App\User if previous model was not found
      • Solves #28. Thank you @wertex !
  • Routes
    • PanicHD was using "dashboard" route name, which is already used and overlapped by Laravel. Renamed to "panichd.dashboard"
  • Seeders
    • Demo seeder was giving an error on execution
  • Search form
    • Got hang when using "attachment_name" or "any_text_field" fields
    • Using any of these fields added several attachment table joins which was making the search too much slow
    • Now attachment search for both fields is done apart and added as a ticket id array to the main ticket search query, which is faster
  • Ticket List
    • Agent change modal window
      • Check to change status was not showing default status name
      • After clicking on submit button, modal window was not closing

Patches

  • Documentation
    • Package requirements
      • Added MySQL off "strict mode" requirement. I did encounter this upgrading to MySQL 8, because DataTables was throwing a GROUP BY error until I changed these settings. 
    • Installation process steps reviewed and clarified
  • Summernote config file
    • Check file existence before loading it
  • Ticket complete / reopen action
    • Was deleting last complete / reopen comment, despite if last action was done by other member of if there was any comment between last comment and current action
    • Now it is only deleted if last comment of this kind is done by the same member and within 1 minute
  • Search form
    • "attachment_name" field has been changed to "attachment_text"

New settings

  • embedded_image_prefix : Name prefix for embedded images above resolution limit, which get transformed into an attachment

Laravel 8

11 Sep 13:49
Compare
Choose a tag to compare
Laravel 8 Pre-release
Pre-release

Added compatibility with Laravel 8.

Bug fixes

  • Aplication crash when closing tickets with error "Trying to get property 'lang' of non-object" Solved in PR #22 by @sprklinginfo. Thank you!
  • Error viewing members list at panichd/member "Missing required parameters for [Route: panichd.member.update]". Found by @sprklinginfo and commented in issue #21 Thanks again!
  • Ability to view tickets with a a related user (owner or agent) which is soft Deleted in Laravel (This happens when a user has deleted_at field set in database)

Laravel 7

31 Aug 15:08
Compare
Choose a tag to compare
Laravel 7 Pre-release
Pre-release

Added compatibility with Laravel 7

Compatibility with Laravel 6.x

16 Nov 23:14
Compare
Choose a tag to compare
Pre-release

Added and checked compatibility with Laravel 6.x

Additions and improvements

  • Unread tickets or comments
    • Ticket or comment will be marked as unread if assigned agent is different of auth user for:
      • New tickets
      • New comments
      • Any kind of ticket update
    • Assigned agent will see his unread tickets in list highlighted
      • Accessing to an unread ticket will:
        • Show unread comments highlighted
        • Update ticket and comments as read
    • Read status criteria has been added to search form
      • So you may have a permanent link to your unread tickets
  • Advanced search rules for:
    • Status
    • Priority
    • Tags
  • Datatable reload
    • Added updated tickets check javascript loop in any ticket list.
      • Reload datatable only if there is new content
    • Agent or priority changes from ticket list
      • Executed via AJAX
      • reload datatable checking last update
    • Status change from ticket list
      • Added to be done via AJAX
  • Navigation views
    • Added an own section for each nav element to help in developing custom views for your website
  • Tag management
    • Category edit
      • Set new tag colors without needing to save changes first
    • Ticket edit
      • Admins can create new tags on the fly: Type a new tag name in tags select and press enter
  • Tag colors: Ticket create / edit / search
    • Tag colors will be shown for selected ones in select2
  • Configuration settings
    • Improved existing settings distribution on the tabs and also added 2 new ones
    • Ability to delete settings under "Other" tab
    • After a setting update, the list view will show it's parent tab
    • Patch: Make status messages visible again
  • isAgent() and isAdmin() are now dynamic Member model methods
  • Settings
    • Cleanup of unused settings
    • Improved some setting descriptions to be more understandable
    • Show descriptions better in setting edition
  • PanicHDMember usage
    • Replace left member Model direct references
    • Improved usage in model member

Patches

  • Ticket table loading error in some circumstances which involve department feature
  • Change assigned agent or priority from list
    • If it was done without admin permissions was giving an error
    • If the agent is not changed, don't update any field
  • Embedded comment recipients
    • If we change ticket owner or agent, a following new embedded comment will include them

Breaking changes

  • Member model
    • Deleted allTickets() and getTickets() relations
    • Replacement of Member userTickets() and tickets() relations with ticketsAsOwner()
    • Delete of agentTickets() Member relation and replacement with other eloquent methods
  • Ticket model
    • Deleted AgentUserTickets() scope (which was unused)
    • Rename agentTickets() ticket scope to fromAgent()
    • Rename userTickets() ticket scope to fromOwner()

Added a ticket search page

04 Sep 18:33
Compare
Choose a tag to compare
Pre-release

Additions

  • Search tickets
    • Specify tickets by any available field
    • Keeps specified parameters after form submit
    • Advanced search features
      • Special field for text search in any attachment text field
      • Special field for text search in any ticket text field (subject, content, intervention, comments or attachments)
      • Dates search with dedicated extra options
    • Preset search parameters via URL with /field/value pairs in any order
      • Date field values in URL can be specified as year, date string or date time string
    • Specified parameters will be highlighted to locate them easily
    • A permanent URL for each search will be generated

Improvements

  • Allow embedded comment attachments. Befor this update, embedded comments in the create / edit ticket form didn't have any option to attach files to them.

Patches and bugfixes

  • Edition of an attachment name and description was not showing or applying changes correctly
  • Page titles were not being applied
    • We have added specific title for every ticket list and ticket edition / creation
  • Some page titles were wrong

Updated assets

  • FontAwesome from 5.7.1 to 5.10.2
  • Bootstrap from 4.1.3 to 4.3.1
  • Jquery from3.3.1 to 3.4.1
  • Select2 from 4.0.8 to 4.0.10
  • Summernote from 0.8.10 to 0.8.12
  • Codemirror from 5.40.0 to 5.48.4

Compatibility with Laravel 5.8

22 Apr 18:33
c69e3b4
Compare
Choose a tag to compare
Pre-release

Upgrades

  • Compatibility is now up to Laravel 5.8.*
  • Added package autodiscover

Patches

  • Comment notification: A comment without recipients when it's allowed to custom them was returning an error in notification process
  • Apply html_replacements in any notification

Several improvements and patches

11 Feb 15:06
Compare
Choose a tag to compare
Pre-release

Changes in views structure

  • Show ticket view have been moved to tickets/partials/comments/
  • Create or edit ticket views have been moved to tickets/createedit/

Patches

General

  • Font Awesome has been updated from 5.2.0 to 5.7.1

Newest tickets list

  • We have replaced reload countdown modal with a less intrusive message box like a "toast" bottom message

New features

Ticket edition

  • Show all ticket comments
  • Allow to create comments or internal notes in the same form.

Custom notification recipients

  • It allows to any agent / admin to choose recipients for any notification (reply or internal note)
    • Allowed recipients are all members
    • Any recipient who has no previous access to the ticket will gain it and will be able to add replies. Also he / she will receive all future user replies notifications.
  • Enabled by default. It may be disabled updating "custom_recipients" setting to use basic (previous) functionality

FilterJust: Open a ticket list filtered by URL

  • Now you can load a ticket list with one or many of the available filters set by url, for example: URL/filterjust/owner/x/year/all/complete that:
    • opens the complete ticket list
    • filters by all years (default is current year)
    • filters by owner x
    • Doesn't care of filter order. Just paired filter name / value set by URL
    • Ticket list may be set as a list / value pair or by as an end parameter /list_name, so the example above...
      • Will return the same result as URL/filterjust/owner/x/list/complete/year/all

Package Tests

  • Basic set to test access to the main ticket routes.
  • It's in a really early status, so any helping hand on this topic will be very welcome.

Include latest patches

18 Nov 17:49
Compare
Choose a tag to compare
Pre-release

Functionality corrections

  • Notices widget is now visible without logged user

Improvements

  • Agent modal within ticket list: Allow agent to choose to change ticket status or not
  • Allow URL parameters for ticket creation / edition to predefine values when loading the form. Example usages:
    • Create ticket in a specific category
    • Create ticket with specific owner

Visual patches

  • Some patches on BS classes
    • pull-left, pull-right
  • Some visual improvements in ticket create / edit, ticket card, dashboard...
  • Some new translations from html pending texts
  • Improved submit button texts

There are some patches within this update that are not explicitly detailed here, so for more details please check the commit list.

Migrated to Bootstrap 4 and updated all other assets

01 Sep 13:45
Compare
Choose a tag to compare

All external libraries are up to date

  • Jquery from 3.2.1 to 3.3.1
  • Select2 from 4.0.3 to 4.0.5
  • Bootstrap from 3.3.7 to 4.1.3
  • Bootstrap Datetimepicker 4.17.47 with a BS 4 patch made by pingcheng
  • Datatables from 1.10.16 to 1.10.18
  • CodeMirror from 5.31.0 to 5.40.0

Patches

  • All assets are now loaded locally (Datatables was loaded still with CDN)
  • Usage of an alternate table for users was giving a datatables error
  • Members in member list were not able to be deleted
  • Bug when saving a new configuration setting: The action controller was not written with absolute namespace and redirection was crashing.
  • Optimisation of some assets load
  • Some visual patches for the BS 4 upgrade
  • Other minor changes

Improvements

  • Ticket list
    • See different icons and counters for replies and internal notes
    • Show a cutted version of long texts automatically
      • Using setting "list_text_max_length" that enables to desactivate it
      • Show plus icon to show all text if it is longer than the setting
    • Newest tickets list automatic reload countdown with a specific setting
  • Ticket show
    • Add a button in ticket's complete modal window that opens ticket edition and sets list and status according to what was selected in the modal
  • Ticket / Coment store or update:
    • Some html tags converted to punctuation signs for content field that will be displayed in ticket list to let the text be better readable
  • Ticket edit:
    • List separate radio buttons
    • Basic jquery interaction rules between chosen list and status
    • New setting "use_default_status_id". If disabled, it will not be possible to use "Newest" list or status that is equal to "default_status_id"

To care about in your local installation

  • Datatables assets are now loaded in the view tickets.datatable.assets
  • "include_font_awesome" configuration setting will not be used from this release because FA is now used in general by PanicHD, not only in summernote editor. In general, if you want to use your own assets, you have to use a custom master template for PanicHD.

Member model is now customizable

26 Aug 18:04
d73feb6
Compare
Choose a tag to compare
Pre-release

After this release specific changes, it is important that you read the recommended changes section.

Code changes

Patches

PanicHD Member model

  • Turned back to use "users" table instead of "panichd_members" view. We've deleted the migration that creates "panichd_members"
  • Added \PanicHDMember alias and replaced all calls to the Member model with it. By default it refferences the Member model in the package

Recommended changes in your Laravel App

  • References in your code to "PanicHD\PanicHD\Models\Member" are better to be replaced with our new "\PanicHDMember" alias. Older code will keep working if you don't use other table for PanicHD members than Laravel auth default "users"
  • If you were not using or don't want to use Laravel "users" table for PanicHD Members, you'll have to follow the specified steps in our wiki to use a custom Member model.
  • If you're not going to use "panichd_members" database view anymore, you may delete it from your database.