RT: Request Tracker
RT 6.0.0 Release Notes
RT 6.0.0 -- 2025-05-28
======================
We are thrilled to announce the release of Request Tracker (RT) 6.0.0. This
major release introduces an updated user interface, new customization features,
integration of popular extensions into the core, and numerous enhancements to
improve performance, usability, and administration.
Highlights of RT 6.0.0 include:
* UI Modernization: Experience a refreshed look and feel with the upgrade to
Bootstrap 5, new Bootstrap Icons, and updated JavaScript libraries including
Tom-select for dropdowns and Tempus Dominus for date pickers. These changes
bring a more consistent and contemporary user experience across RT.
* HTMX Integration: RT now extensively uses HTMX for many UI interactions. This
results in faster, more dynamic pages with features like lazy loading of content,
smoother inline editing for tickets and assets, and partial page updates that
avoid full reloads, enhancing responsiveness.
* CKEditor 5: The rich text editor has been upgraded to CKEditor 5, offering an
improved editing experience with a modern interface and enhanced features for
composing messages and articles.
* Configurable Page Layouts: A powerful new Page Layout system allows
administrators to customize the structure and content of key pages, including
Ticket Display, Asset Display, Ticket Create/Update, Asset Create, and
Dashboards. A new admin UI facilitates the management of these layouts,
offering greater flexibility in tailoring RT to specific workflows.
* Time Tracking in Core: The widely-used TimeTracking extension is now a core
part of RT. This brings integrated functionality for recording time worked on
tickets, a "My Week" page for managing weekly time entries, time search
reports, and configurable time tracking options.
* Article Templates in Core: The ArticleTemplates extension has been
integrated into core RT, enabling the use of ticket variables in articles
inserted in replies and comments, streamlining common communication tasks.
* User Avatars: RT now supports user avatars. Avatars can be initials-based
or user-uploaded images, providing better visual identification of users
throughout the interface, including ticket history and menus.
* Scrips for Articles and Assets: The robust Scrip system has been extended
beyond tickets to now support automated actions and notifications for
Articles and Assets. (Thanks Bradley Bell!)
* Full-Text Search Enhancements: Full-text search capabilities have been
improved, including support for indexing custom field values,
leading to more comprehensive search results.
* New Ticket "Description" Field: A dedicated core field has been added
for ticket descriptions, allowing for a clear separation of the initial
problem/request summary from subsequent updates. This field is also
included in simple search.
* Accessibility Improvements: Various updates have been implemented
throughout RT to improve accessibility.
* Extension Configuration via UI: Administrators can now update
configurations for some extensions directly through the web UI,
simplifying the management of RT plugins.
* Selenium Testing Framework: To ensure ongoing quality and stability,
and to help test htmx interactions, RT's extensive automated testing
framework now runs Selenium tests using a Firefox or Chromium based
virtual browser.
You can get the new version here:
https://download.bestpractical.com/pub/rt/release/rt-6.0.0.tar.gz
https://download.bestpractical.com/pub/rt/release/rt-6.0.0.tar.gz.asc
SHA-256 sums
508f9a08f17b20ae8c96faf16da4a0b51e74a5332a69146ccfd3f4596eb5db2d rt-6.0.0.tar.gz
0d3bc45d065bf633af4837ba9cc1562870860a8e561b4e30d1408b6c8bd2dd0a rt-6.0.0.tar.gz.asc
A detailed list of changes included in this release is below.
New features
* Enable htmx for most of RT
* Implement htmx lazy loading for searches and components
* Dynamically refresh recently viewed tickets menu on hover
* Implement htmx lazy loading for dashboard rendering page
* Convert inline edit to htmx on ticket display
* Upgrade ckeditor5 to 40.2.0
* Add language support to ckeditor5
* Support to render embedded images
* Support to render embed videos added by ckeditor5
* Allow auto refresh on individual saved search portlets
* Convert Quick Create to htmx
* Support custom fields on the Quick Create portlet
* Support configurable widgets on ticket display page via WebDisplay config
* Support to customize widgets on asset display
* Convert inline edit to htmx on asset display
* Support multi-column content without a titlebox wrapper in %PageLayouts
* Support to add CSS classes to icons in titlebox menu
* Support modal toggling in titlebox menu icons
* Support Catalog in %PagelayoutMapping
* Initial version of PageLayout admin pages
* Support Queue/Catalog objects for future configurable ticket/asset create pages
* Make ticket create page configurable
* Make ticket update page configurable
* Make asset create page configurable
* Support custom field custom groupings on ticket update
* Use the structure of configurable pages for dashboards
* Enable new worker and worked date parameters on tickets
* Create new Times widget for time metadata
* Add MyWeek page for updating time on tickets
* Add the time search report from TimeTracking
* Add new One Column page layout for ticket Create and Update
* Add SavedSearches/Dashboards pages to list them on various levels
* Set up fts index for object custom field values
* Support object custom field values for ticket fulltext searches
* Add new Description core ticket field
* Support TimeWorker/TimeWorkedDate columns in transaction search results
* Display user avatars based on name initials
* Allow users to upload a picture for their avatar
* Support avatar images for unprivileged users
* Support to edit avatar image on user admin page
* Convert inline edit in search results to htmx
* Support skipping the default label for EditCustomField
* Implement dashboard advanced page
* Support scrips for articles and assets
* Support batch scrips for assets and articles
* Support to enable/disable saved searches/dashboards on list pages
* Support __TicketID__ placeholder in envelope of outgoing emails
* Support to upload custom small logo
* Support to translate asset core roles
* Support to update extension configs via web UI
General user UI
* Add a new 'FullWidth' option to /Element/Submit
* Remove a legacy bit of form styling ensuring that all submit elements were in divs at least 2.8em high.
* Upgrade bootstrap to 5.3.1
* Tweak/Tidy bootstrap css mainly to make it be like RT 5
* Rewrite .form-row as it's been dropped in bootstrap 5
* Update css class names to migrate to bootstrap 5
* Rewrite .form-group as it's been dropped in bootstrap 5
* Rewrite .form-inline as it's been dropped in bootstrap 5
* Rewrite .custom-file as it's been dropped in bootstrap 5
* Drop obsolete div.input-group-append
* Set padding between label and value columns
* Lift the position of widget's toggle caret
* Use rem for padding/margin settings of form rows consistently
* Tweak position of radio/checkbox form rows
* Put "Load saved search" inputs the same row as the label
* Put multiple one-time-cc email checkboxes to the same line when possible
* Use .accordion-flush for its border-less style
* Set the height of .form-control buttons the same as other .form-control inputs
* Add tooltip span only if there is a tooltip to show
* Fix radio in dark mode
* Drop obsolete custom-control css rules
* Drop unnecessary border lines for fieldsets on chart page
* LabeledValue for Validation Hint
* Remove border lines among rows
* Upgrade bootstrap-select to 1.14(beta)
* Drop the obsolete div.input-group-append from bootstrap-combobox
* Drop the hardcode width of record labels
* Make filter inputs in one row for "Rights Inspector"
* Update outdated checkbox css rules for Rights page
* Show spinner for htmx boost requests
* Do not add confusing empty messages to results on cf process
* Enable scrolling to ticket history after inline edit changes for all modes
* Automatically load new ticket history after inline edit changes
* Suppress footer too when SuppressHeader is true for error page
* Migrate js/css code to ckeditor5
* Make ckeditor5 work with dark mode
* Update placeholder css rules for dark mode
* Add one more selector to message textareas to increase weight
* Grouping ckeditor5 toolbar for small textarea inputs
* Define explicit font sizes rather than default classes
* Remove the todo-list formatting option from CKEditor
* Use bootstrap's default fonts
* Remove the Inter custom font
* Migrate to bootstrap classes for table hover
* Restructure tables with multiple rows into single rows
* Convert remaining odd/even table code to bootstrap
* Migrate remaining hardcoded table accent classes to use configuration
* Hide tooltip of bookmark links on toggle
* Hide top menu on ticket timer page
* Migrate from inactive superfish to customized bootstrap menu
* Restore main menu bottom border
* Allow a little more delay on menus
* Make page edit icon(cog) be similar to ones in titlebox
* Show nav sub menus rounded bg on hover
* Drop separators among top page menus
* Dynamically highlight active top menu
* Render the page menu font in the full default size
* Auto close nav dropdown menus on click
* Align right justified elements with bootstrap card edge
* Use bootstrap standard form layout for labels and values
* If the submitted Due value is unchanged skip the message
* Do not render top menu on ShowEmailRecord page
* Resize ticket timer to remove scrollbar
* Adjust Timer size and style for Estimated time
* Dynamically resize ticket timer popup for zoomed in screens
* Align query builder inputs after label/value changes
* Convert saved search controls to labeled value format
* Support to refresh widget title for saved search portlets
* Allow Quick Create to use the full width of its container
* Clean up .button styles
* Migrate fontawesome to bootstrap-icons
* Migrate spinner to bootstrap 5
* Tweak inline-edit spinner styles
* Make page link colors work with bootstrap 5
* Reset user messages after they are rendered
* Mark empty asset fields as "unset-field"
* Show multiple icons correctly in titlebox menu
* Reload page if layout changes after ticket/asset inline edits on display
* Migrate old showModal related code to htmx + vanilla bootstrap modals
* Dismiss modals on submit
* Refresh main content on big inline edit changes like queue
* Drop hard coded z-index for modals in dark mode
* Move asset page menu items to new Edit menu
* Set the default 'unset' language hint to the browser default
* Show HideUnsetFields menu only for display pages by default
* Limit height of "Available Widgets" in case there are too many saved searches
* Show default dashboard's description on homepage
* Change "RT at a glance" to "Homepage" for consistency
* With time in a separate portlet, default Total time to on
* Move time to separate widget on ticket create page
* Remove Basics tab on tickets because inline edit allows updates
* Set a new titlebox class for Time widget
* Display the new time widget on Jumbo
* Localize time search help text
* Make search filters use htmx
* Remove stray unbalanced closing div from ticket Create
* Remove default size setting for EmailInput template
* Update Create Ticket page elements to use LabeledValue
* Use LabeledValue for custom field edits
* Update Charts to use LabeledValue
* Update Shredder pages to use LabeledValue
* Convert additional pages to LabeledValue
* Update user preferences page to use LabeledValue
* Use Labeled Value for article links
* Fix auth token create menu style
* Use Labeled Value for approvals
* Disable automatic text transformations in CKEditor
* Fix permalink on page menu
* Convert Message on ticket update to Labeled Value
* Show all available dashboards for superusers
* Change delete to disabled checkboxes for saved searches and dashboards
* Convert Articles Overview portlets to use CollectionList
* Switch to native Clipboard API for permalink's copy button
* Reformat ticket basics to improve layout
* Load the Owner dropdown when the user clicks the pencil
* Show Owner edit only if the user has rights
* Include ticket custom fields in EditBasics component
* Update dropzone to version 7.2.0
* Tweak color of dropzone uploaded UI in dark mode
* Update Chart.js to version 4.4.7
* Remove CSS option no longer supported in Chart.js
* Restore Stacked selection on Charts
* Update jgrowl to version 1.4.10
* Search both subject and description in simple search
* Revert to the default bootstrap border radius
* In Bootstrap 5, the class for select menus is form-select
* Add base files for tom-select JS library
* Inform end users http network and 400/500 errors
* Convert select menus from bootstrap-select to tom-select
* Fix custom field select condition rows in query builder
* Add selectpicker class back to owner dropdown
* Enable tom-select for time unit selects
* Convert selectize inputs to tom-select
* Re-implement rt_drag_drop to move recipients across inputs
* Show content in dropdowns without line breaks
* Initialize tom-select for cloned elements in query builder cf conditions
* Reduce space between person type and field in query builder
* Clean up obsolete style for value column in query builder condition row
* Align text fields like "Queue" in query builder
* Drop unmatched .row in EditTimeValue
* Make field/operator columns wider in query builder
* Show worker in Set-TimeWorked transaction descriptions
* Display worked date for reply/comment transactions
* Show TimeWorker/TimeWorkedDate in transaction query builder
* Migrate bootstrap-select's remnants to tom-select
* Refactor theme page and make it work with htmx
* Improve layout of theme page elements
* Show unprivileged user avatars with .5 opacity
* Set a custom color for system users
* Replace Logged in as menu with new user avatar
* In transaction history, show avatars only for discussion
* Suppress avatars for text-only content
* Make user avatar image size follow font size nearby
* Show bigger user images on hover
* Show user image on User Summary page
* Support to update page menu on ticket/asset inline changes
* Convert Owner in Quick Create to a full owner list
* Change hint text and input to red on validation failure
* Drop useless attributes in jGrowl error html
* Update tom-select on grouped select custom fields sync
* Disable show user image popover in top menu
* Disable user image menu on user preferences page
* Initialize tom-select correctly for inline editor on search result pages
* Stay on current form and show invalid fields on error
* Show a hint message in dashboard emails if charts are not available
* Drop unnecessary overridden colors for inputs in dark mode
* Convert autocomplete to tom-select
* Convert sortable from jQueryUI to vanilla js
* Migrate datetime picker to tempus-dominus
* Show spinner for inline edit on display pages
* Show spinner on implicit text input change for inline edits on search results
* Switch to our own spinner svg image
* Delay the spinner display for htmx requests
* Add z-index to spinner to ensure it is always on top
* Delay the spinner display for boosted requests
* Prevent spinners from inheriting ancestor opacity
* Provide a reload button on saved searches
* Show the edit gear for charts also
* Add LabelFor parameters to QuickCreate for accessibility
* Add aria-label attribute on Home page elements
* Move search filter tooltips to the icons for better accessibility
* Add LabelFor parameters to ticket create for accessibility
* Drop ticket widget links that point to the removed ticket modify page
* Standardize button styling using Bootstrap buttons
* Fix left radius for input groups where select is the first child
* Drop the unneeded "Go" buttons for article topics select
* Apply Bootstrap styling to the user image tooltip
* Reformat CKEditor toolbar to display all in one line
* Set the CKEditor border radius the same as bootstrap
* Fix typo: css class name "mark-changed" should not contain a dot
* Use one-column layout for dashboards when sidebar is empty
* Add some space between "Save Changes" and "Restore Default Preferences"
* Fix Next/Previous week links on My Week
* Migrate Date/User select form to htmx on MyWeek page
* Add border radius to search filter modal background
* Set CKEditor language for ui and content to the RT language
* Show CKEditor accessibility help and emoji menus by default
* Tweak colors for CKEditor elements
* Default saved chart class to tickets
* Submit inline date changes selected from date picker
* Remove submit on close from RT 5 datepicker
* Fix CKEditor content not being preserved when changing queue
* Make sure saved widget collapse states are saved correctly
* Remove Modify Dates pages and menu items
* Restore inline edit as the default for the ticket Owner format
* Make colors of focused "textarea" be consistent with "input" in dark mode
* Align tomselect dropdowns in search filter according to modal position
* Remove outdated "Created" criteria in ticket time search
* Reset search filter form on cancel
* Don't restrict dropdown length in tom-select
* Do not use BS tooltip on profile picture if not set
* Add a Reports Actions menu for operating on reports
* Change ShowHistory default to scroll
* Add selectpicker class to display columns select
* Wrap "0em" with "calc()" to prevent it from being minified to "0"
* Use "Separated Columns" for all page layouts
* Update SelectUser widget to work with searches loaded by htmx
* Fix duplicated submissions for ticket description inline edit modal
* Fix clipContent for formats with multiple rows
* Stop keyboard shortcuts when tom select is active
* Tweak tooltip texts of page layout edit UI
* Remove Modify Links pages and menu items
* Add brief description for set image transactions
* Add bootstrap size class md to multi column layouts
* Show error messages for failed htmx boosted requests
* Add some margin like the My Week page
* Add clear button to single-value tom-select autocomplete inputs
* Highlight tom-select autocomplete "Add" link color in dark mode
* Exclude URL params from "Jump to page" form action
* Remove extra margin below bootstrap alerts
* Handle CSRF warnings in ajax/htmx components
* Add form to make filter search results work
* Clear orphaned tooltips
* Limit the height of ckeditor source edit area
* Add unchanged option for priorities on ticket update page
* Update translations for new loc strings (Thanks elacour!)
* Add description widget for ticket update page
* Improve dropdown interactions with the dropdown_input plugin
* Blur dropdowns when a value is selected
* Do not show refresh items in dashboard emails
* Do not show user avatar images for dashboard emails
* Force light mode for dashboard emails
* Tweak custom field search operator with better options and default value
* Update query builder sort and columns to new label value
* Remove Assets Basics menu and Modify page
* Update default page layouts to use the md breakpoint
* Remove the obsolete empty label of Sign/Encrypt inputs on ticket update page
* Reload page to show crypt issues on ticket create/update pages
* Update "Go!" buttons to use Elements/Submit for consistency
* Enable htmx for ticket and asset search filtering
* Show bigger modal for role filters
* Do not mark role search-filter modals scrollable
* Improve Ticket Display page accessibility
* Don't render an empty anchor if ShowUserAvatar is 0
* Increase unprivileged user initials opacity for better readability
* Improve Ticket Update page accessibility
* Update approval rendering for linked tickets
* Clear inline edit forms on ticket display on success
* Add logo image file in SVG format for small screens
* Add small logo for small screens
* Tweak the position of tomselected inline edit inputs on search result page
* Omit custom field labels in ticket listings
* Do not submit inline edit for multiple value select
* Remove border outline for tom-select dropdown inputs
* Change the default ticket history order to newest first
* Recalculate top actions position on window resize
* Rebalance menus on htmx page load
* Rebalance top menu on logo images load in case images are loaded too late
* Update translations from Launchpad
* Show search box only if options number exceeds SelectLiveSearchLimit
* Do not render div.hx-boost-spinner in dashboard emails
* Exclude buttons from visited link styling
* Add top spacing for buttons when they wrap in narrow columns
Extensions added to core
* Core RT-Extension-TimeTracking
* Core RT-Extension-ArticleTemplates
Documentation
* Update doc of docker tests as we migrated to github actions
* Document packages needed for selenium tests
* Add initial UPGRADING docs for RT 6
* Update documentation for new automatic refresh feature
* Document Quick Create changes
* Document ticket and asset display and callback changes
* Document callback changes on ticket create/update pages
* Add time tracking docs
* Document removal of UseSideBySideLayout
* Add upgrade steps for separated search/dashboard/subscription tables
* Update document for saved search and dashboard changes
* Document fts index changes
* Add upgrade steps to set TimeWorker and TimeWorkedDate
* Document RT::Extension::TimeTracking in upgrading doc
* Document ticket Times grouping in %CustomFieldGroupings
* Document the Owner inline edit change
* Add instructions for page layout and dashboard content pages
* Update rt5 name/path to rt6
* Update theme doc for RT 6
* Update upgrading doc notes in README for RT 6
* Bump the example perl version in doc to the latest version
* Update versions of supported databases
* Document bootstrap size classes
* Update upgrading doc with refresh changes
* Fix typo after rt-clean-sessions link in README
* Document $SendmailBounceArguments changes
* Remove Dashboard Reporting POD
* Document new objects available for scrips
* Update Dashboards POD for RT 6
* Add docs for new page layouts feature
* Clarify LogoURL documentation for large screen usage
* Update various docs to prepare for the 6.0.0 release
Administration
* Add config %MessageBoxRichTextInitArguments
* Update global style config in DB if needed
* Allow the code tag in the scrubber configuration
* Separate layout definitions from %WebDisplay to %WebDisplayLayout
* Rename %WebDisplayLayout/%WebDisplay to %PageLayouts/%PageLayoutMapping
* Tweak default PageLayout config to avoid top-level plain widgets
* Alias "" to "Default" as the custom field default grouping
* Support recursive hash merge for PageLayouts and PageLayoutMapping
* Hide PageLayout configs from system config edit page
* Canonicalize dashboards in dashboard content after import
* Add time configuration options
* Remove the SideBySideLayout configration option
* Update admin Scrips pages to use LabeledValue
* Remove obsolete UseSideBySideLayout config from the DB
* Refactor rights of saved searches and dashboards
* Grant SuperUser access to all saved searches/dashboards
* Set custom fields for Quick Create in a dedicated config
* Grant privileged users global-level SeeSavedSearch right on upgrade
* Add --cf-only option to set up cf fts index
* Respect DateTimeFormat config for TimeWorkedDate
* Refactor LifecycleEditor to make it work with htmx
* Limit user uploaded image size via $MaxUserImageSize config
* Tweak styles of principal tabs on rights edit pages
* Remove nav-tabs from vertical nav items on rights page
* Move user settings into a new menu on user admin page
* Move auth token create from the page menu to a button
* Organize admin menu items by topic and reduce width
* Define CKEditor plugins to load to support the default RT configuration
* Canonicalize widgets for both dashboards and tickets/assets layout edit pages
* Avoid reapplying unchanged db configurations for performance
* Create an initial row for page layouts and dashboards
* Only update Layout input if number of cols changes
* Remove search results refresh interval
* Remove home page refresh interval
* Update EditPageLayout form method to POST
* Warn unknown domain on web UI
* Only load updated db configs on refresh
* Make SendmailArguments and SendmailBounceArguments totally independent
* Remove an unused dashboard object in 5.0.2 upgrade content
* Use RT 5 RT::Attribute::_SyncLinks for old database content
* Limit Rules to tickets
* Remove duplicated form end tags on scrip conditions/actions pages
* Wipeout full text cf index records during shredding
* Update saved search/dashboard rights along with ModifySelf in upgrade
* Add upgrade backcompat for LookupType/ObjectId changes of scrips and related tables
* Assign valid names to old unnamed saved searches
* Revert "populate existing dashboards in menu on 4.0"
* Show correct right descriptions for group saved searches
* Check meta IsJSON to determine if config is JSON
* Make doc_url optional for plugin config options
* Add NoReset config meta option
* Use "Separated Columns" for initial rows of dashboards and page layouts
### Internals
* Move a UI pattern making a Submit button into a "full width" item into /Elements/Submit
* Make the RT session non-blocking in a request
* Test for actions message in forward
* Pass specific %session variable in session tests
* Run session tests for SQLite
* Add htmx JS files
* Remove backward compatibility code for RTIR 5.0.1
* Replace default jQuery call with htmx onload
* Refresh dropdowns after htmx loads them
* Update richtext values before htmx submits data
* Disable htmx requests for inline edit toggle buttons
* Disable htmx boost requests for inline edits on ticket list
* Separate top menu code from others
* Skip generating top menu for htmx boost requests
* Disable htmx boost requests for Login
* Move refresh meta to body for htmx boosted requests
* Skip generating unused tags in head for htmx boosted requests
* Protect RequestENV from fake requests in dashboard mailer
* Disable htmx boost requests for download links
* Disable htmx boost requests for special links/forms with customized behavior
* Disable htmx boost requests for DashboardsInMenu as it modifies top menu
* Disable htmx boost requests for Prefs page as it may modify theme
* Disable htmx boost requests for pages with additional js files
* Disable htmx boost requests for menu list pages
* Move script in Footer to .main-container so it can be run on htmx load
* Drop jqueryui/ckeditor helper elements on htmx boost load
* Load content for mechanize tests that do not support js
* Pass ticket with correct argument name to ProcessObjectCustomFieldUpdates
* Support to pass additional options to EncodeJSON
* Pass instance object when adding/deleting members of role groups
* Move js code that loads ticket history on scroll for other modes
* Reset ckeditor/datepicker/selectpicker state before htmx saves history
* Check rights/paths/objects to protect /Views/
* Enable htmx boost requests for autosubmits
* Initial version of RT::Test::Selenium
* Add basic selenium test
* Use Time::HiRes::sleep so we can sleep floating_seconds like 0.5
* Test ticket update page with selenium
* Add dependencies of selenium tests
* Export selector_to_xpath to selenium tests
* Test ticket inline edit pages
* Run selenium tests one by one
* Update to new docker image
* Drop ckeditor4
* Drop unnecessary jquery.cookie.js
* Extract inline/internal images from HTML content
* Test extracting inline/internal images from HTML content
* Drop chosen JS library as it has been replaced by selectize
* Update tests for label/value changes
* Update tests for saved search changes
* Move quick create tests to selenium directory
* Convert quick create testing to selenium
* Update queue cache tests to load pages with a queue dropdown
* Move quick create CF tests to new selenium quick create file
* Remove quick create from results and CSRF tests
* Add another short sleep to allow the page to render
* Disable htmx boost request for "Hide unset fields" links
* Lazy load main content on initial page load
* Respect explicit transaction order on history refresh triggered by changes
* Increase implicit wait timeout for selenium tests
* Add WebPath to htmx_get value in ShowWidgets and QuickCreate
* Don't wipe out CKEDITOR instances if they already exist
* Add page info to object widget paths
* Handle UTF-8 title retrieved from titlebox htmx requests properly
* Disable htmx boost for menu items that trigger modals
* Disable htmx boost requests for AboutMe page as changes might affect menu
* No need to pass undefined Argument
* Tweak arguments passed for widget wrapper and non-htmx widgets
* Consistently encode cookie values set via javascript
* Explicitly set SameSite on javascript cookies
* Make sure history container is always the latest for scrolling load
* Update tests for the configurable ticket create page changes
* Validate widget items that contain arguments on edit pages correctly
* Update base docker image for testing
* Update dashboard tests for the dashboard structure change
* Add remaining All link methods for other link types
* Support base and target validation with a link type
* Add a date-only format to Set in RT::Date
* Date API tests don't need initialdata loaded
* Convert RT:Date to timegm_modern to avoid issues with 2 digit years
* Fix GetPageLayout for ticket/asset create pages
* Run validation checks before processing ajax submits
* Remove todo test for fixed circular link checking
* Pass %ARGS to CustomField templates for processing
* Allow date-only fields in REST2
* Update tests for new Time widget and removed Basics
* Make sure test date is consistent with server timezone
* Update to htmx version 2
* Remove htmx 1 devel files
* Default content to an empty arrayref rather than undef
* Render all widgets on load for create/update pages
* Fire scrips and recipients update code after all widgets are rendered
* Tweak get_ok to wait until all widgets are rendered
* Move hidden id input from Basics widget to ticket Update.html
* Make UpdateType always available on ticket update page
* Clean up obsolete code on ticket update page
* Add action attribute to forms to make htmx 2 happy
* Confirm the footer is shown on the ticket Create page
* Remove the extra newline, only one is needed
* Ignore negative answers of equivalent object cache
* Abstract Principal role from RT::User and RT::Group
* Update tests for table/right changes of searches, dashboards, and subscriptions
* Split fulltext search terms for both correctness and performance
* Revert "Only search Content, not Content and Subject, for better indexing"
* Fix aggregator of no-indexed content fields for transaction searches
* Add more fulltext search tests for the new split feature
* Drop sphinx fts support
* Clean obsolete code that was for unsupported MySQL/Pg
* Override AddRecord instead to skip ACL check for fts indexer
* Test object custom field values in ticket fulltext searches
* Abstract "click" to scroll it into view first for selenium tests
* Remove old Chart.js file
* Update RT code for Chart.js API changes
* Remove the sourceMappingURL config to reduce console logging
* Update js code that finds related elements for DOM change on Chart.html
* Update "Permission Denied" content tests
* Drop obsolete bootstrap-select and selectize
* Update recipients/scrips only once for more multiple concurrent changes
* No need to update recipients/scrips if the form data doesn't actually change
* Refactor js code that updates recipients/scrips
* Wrap tomselect code for autocomplete to not expose internal variables
* Add units to 0 values to enable correct max calculations
* Add TimeWorkerObj method
* Fix TimeWorkedPerUser to use TimeWorkerObj
* Ensure transaction Creator is the current user
* Add WeekStartDate tests
* Use GMT in Time::ParseDate to adjust for user timezone
* Search TimeWorker instead of Creator to find TimeTaken txns
* Set TimeWorkedDate when adding reply or comment
* Add time tracking fields metadata
* Update FindDeps and Serialize
* Respect current user's timezone when calculating default TimeWorkedDate
* Simplify code as TimeWorkedDate always exists in the search result
* Ignore the time part for TimeWorkedDate searches
* Fix TimeWorkedDate timezone issue in selenium inline edit tests
* Drop obsolete IE detector as IE is not supported any more
* Update tests for user avatar changes
* Add callbacks so extensions can easily customize avatar template
* Add user image signature to URL and inform browsers to cache it
* Use ASCII JSON string for HX-Trigger http header
* Test UTF-8 widget title to make sure it is correctly decoded
* Add the missing WebPath to user image url
* Validate custom fields on asset inline update
* Validate values in all custom field groupings
* Validate transaction custom fields on ticket create
* Always sync grouped custom fields on change event
* Sync textarea grouped custom fields on key up
* Sync html grouped custom fields on change
* Refactor grouped custom fields sync code to process inputs in new content only
* Move grouped custom fields sync code from late.js to util.js
* Remove unnecessary code that was to avoid double-clicking
* Update obsolete event name reloadRequired to mainContainerChanged
* Add new callbacks to modify the main page navigation menu
* Switch widget arguments to ...Obj like TicketObj to indicate they are objects
* Update tests for new classes/status on validation failure
* Migrate inline js in EditRights to util.js
* Email JSChart images with WWW::Mechanize::Chrome
* Add EndOfWidget callbacks for ticket display widgets
* Test JSChart images in dashboard emails
* Test UTF-8 BOM to make sure all static files do not have it
* Drop dependencies on GD libraries
* Switch to htmx requests for explicit form.submit() calls
* Remove a redundant double quote
* Switch to standalone popper.js
* Sort SVG config items for easier management
* Switch row requests to POST in case params are too long
* Add /SelfService/Views/Component to make SelfService dashboard work
* Check component existence in advance to avoid unnecessary processing
* Filter mason components requested from views
* Support components not in /Elements/ for requests from /Views/Component/
* Clean up CKEDITOR.instances when editor is destroyed
* Switch to POST for widgets on create/update pages
* Drop explicit id param from display widgets
* Bump HTTP::Message to 6.46 to use HTTP::Status::HTTP_UNPROCESSABLE_CONTENT
* Drop unnecessary jQuery UI
* Drop relics that were for jQuery UI
* Blur elements to update on htmx request
* Update element selector to identify ongoing htmx requests in selenium tests
* Move spinner related css to misc.css
* Make sure class "refreshing" is removed in history DOM
* Clear sourceMappingURL comment from tempus-dominus.css
* Update CKEditor build based on version 42 installation options
* Dynamically load CKEditor plugins from RT configuration
* Set licenseKey as required for CKEditor 5 version 44
* Update CKEditor static code based on newest CKEditor build steps
* Avoid collisions with default global export `CKEDITOR`
* Use js-beautify via git config to generate readable min.js diffs
* Reload Message widget only on Topic/Article changes
* Correctly encode the newly set grouping configuration
* Retain extra widget configuration after a : in widget name
* Make download links work with boosted requests
* Remove class "refreshing" when boosted requests finish
* Unset hx-vals right after widget's htmx load request finishes
* Remove the optional hx-vals arg on reload
* Update CKEditor build process to use new package files
* Add the new CKEditor files
* Drop relics of CKEditor 4 css/js code
* Move CKEditor styles to the correct CSS file
* Add ".min" to ckeditor5.umd.js to prevent it from being minified again
* Mark json inputs using data-type attribute instead of name
* Do not redirect with json values on validate
* Pass page %ARGS to widgets in case it gets modified in INIT block
* Initialize autocomplete inputs for new content only
* Update tests for new dashboard menu
* Use the same rename method as in "addFile" for delete request from dropzone
* Use tomselect method to update "Columns" select value
* Restrict some update operations to ticket display page
* Pass "source" param for row refresh after inline edit on results pages
* Whitelist /Views/ for CSRF checks
* Whitelist /SelfService/Views/ for CSRF checks
* Add the missing WebPath for URLs
* Clean up obsolete deprecated code and update related tests
* Update ModifyLinks-dependent tests
* Update time reports as TimeWorkedDate does not contain time
* Render final response directly for htmx boosted requests with redirects
* Bump required perl version to 5.26.3
* Update tests to drop old perl support
* Drop obsolete --siteinstall that is for perl older than 5.011
* Expand shortener code for direct responses of redirects
* Add basic selenium tests for query builder
* Create CSRFDetected event for htmx requests
* Skip default selenium tests if firefox and geckodriver do not exist
* Start server early to short circuit in case selenium is not available
* Update request info for direct responses of redirects
* Remove obsolete refreshCollectionListRow function
* Exclude unnecessary blessed arguments in hx-vals of widgets
* Refactor code that handles "unknown" priority
* Allow english sentences using utf-8 (Thanks elacour!)
* Add missing i18n loc calls (Thanks elacour!)
* Update tests to reflect the removal of the ticket edit menu
* Fix perl version typo, should be 5.26.3
* Escalate default cache strategy from no-cache to no-store
* Tweak timing test order to reduce the difference caused by server load
* Convert <style> blocks to inline before scrubbing the HTML
* Enable encode_entities and ignore_style_type_attr options for CSS::Inliner
* Update docker image for tests
* Update GitHub actions/checkout to v4
* Update GitHub actions/cache to v4
* Update simple-slack-notify GitHub action
* Update docker image for github actions
* Support LookupType for scrip conditions, actions, and templates
* Add initial scrip conditions/actions/templates
* Update request_args for direct response of redirects
* Clean up obsolete code for scrip's Queue column
* Add asset/article variables to scrip conditions/actions/templates
* Support to validate ExecModule for scrip conditions/actions
* Don't trigger collectionsChanged on ticket display updates
* Exclude fields that do not have corresponding columns defined on create
* Short-circuit the template's CurrentUserCanRead check for system user
* Update tests for reverse transaction order in ticket history
* Switch to RT::Template::LoadObjectTemplate in rt-crontool
* Make deprecated RT::Template::LoadQueueTemplate work as before
* Add $TicketDescription for new added Description field to simple templates
* Remove obsolete Chart-2.9.4 directory
* Remove obsolete rt-dump-metadata
* Queue singleton commands and run them in order in tests
* Use high resolution time for Queue/Catalog/CustomRole/Lifecycle cache flags
* Try normal GET if htmx GET encounters network error
Database
* Add new Transaction columns to store time tracking data
* Move saved searches, dashboards, and subscriptions to separated tables
* Set engine/charset for new created tables on MariaDB/MySQL
* Wrap SQL with another SELECT to avoid DEPENDENT UNION/SUBQUERY
* Bump database version requirements for the full support of INTERSECT/UNION SQL
* Change TimeWorkedDate to DATE
* Add ImageContentType/Image to ColumnMap
* Strip time part from TimeWorkedDate for Oracle
A complete changelog is available from git by running:
git log rt-5.0.8..rt-6.0.0
or visiting
https://github.com/bestpractical/rt/compare/rt-5.0.8...rt-6.0.0