Request Tracker v5.0.0 Release Notes

Release Date: 2020-07-16 // over 3 years ago
  • RT 5.0.0 -- 2020-07-17

    We're pleased to announce the general availability of RT 5.0.0. This
    🚀 release introduces a major update of the web UI as RT now uses
    the popular open source Bootstrap front-end toolkit. This brings
    📱 to RT a modern, responsive layout with all of the power and familiar
    🔋 features of RT. Details on this and other changes and new features
    are below.

    You can get the new version here:

    🚀 https://download.bestpractical.com/pub/rt/release/rt-5.0.0.tar.gz
    🚀 https://download.bestpractical.com/pub/rt/release/rt-5.0.0.tar.gz.asc

    SHA-256 sums

    781ac6e21d8e1cf3514ddc6a71418cefde903df241d4e7011e75f90eb62a952e rt-5.0.0.tar.gz
    f3fe75aca612cbd7904877fa2951be691f5451ef11b4048e7906700d42853975 rt-5.0.0.tar.gz.asc

    Although only noted in a few items in the list below, the Bootstrap
    ⚡️ update alone accounted for hundreds of commits and thousands of lines
    ⚡️ of code updates. We hope the update to a very popular web framework
    will make it even easier for users to create (and share!) new
    themes.

    🚀 In addition to that major UI update, this release also contains many
    other big new features including a new charting library, a graphical
    ⚡️ lifecycle builder, and new web access for admins to update RT's
    🔧 many configuration options. This new version of RT contains changes
    and improvements from over 1,500 git commits.

    🔧 We have also added configuration to run RT's 35,000+ tests using
    👀 TravisCI, so you can now see our test runs from GitHub.

    🚀 A list of changes included in this release is below.

    🆕 New features

    • 🌐 Convert to Bootstrap as base web design framework
    • ✂ Remove table-based page layout and make design responsive
    • Create new elevator-light and elevator-dark themes
    • Convert many on-screen hints/help to tooltips
    • ➕ Add Fontawesome and update all icons to svg
    • 👍 Allow CustomDateRanges to be defined in configuration for
      👉 use in ticket search results
    • 👌 Support BusinessHours times in CustomDateRanges
    • 👌 Support default dates when not defined for CustomDateRanges
    • ➕ Add linking support to groups
    • 🆕 New Group Summary page (similar to User Summary)
    • ➕ Add group-scoped options for default ticket listings on
      Self Service pages
    • 🆕 New transaction query builder for searching transactions
    • 🆕 New asset query builder for searching assets, support for AssetSQL
    • 🔧 RT configuration is now available to SuperUsers in the web interface
    • 💅 CKEditor updated to 4.13, re-styled for new themes
    • ⚡️ Update chart UI to use chart.js
    • ➕ Add CustomDateRanges and BusinessHours support to charts
    • ➕ Add line charts to chart options
    • Inline edit is now available on ticket display and in ticket
      listings (search results, saved searches, etc.)
    • ➕ Add jGrowl for pop-up style result messages
    • Ticket priority can now be set and managed using text priority
      🔧 options like Low, Medium, High (configurable)
    • 🆕 New graphical UI for building and editing lifecycles (workflow)
      and lifecycle settings
    • 🔗 LinkedQueuePortlets allows you to add a section to ticket display
      with linked tickets from another queue

    💻 General user UI

    • ➕ Add asset display menu actions to ShowAssets template
    • Relabel 'Password' box on /Prefs/AboutMe to 'Access control'
    • 0️⃣ Default search result count display to on
    • ➕ Add default value for Articles in Queues
    • ➕ Add autocomplete for articles
    • 🔨 Refactor ticket create and update to use new SelectArticle, merging
      previous 3 form controls for articles to one
    • ⚡️ Update article select to automatically show dropdown or autocomplete
      box based on DropdownMenuLimit
    • ✂ Remove article hotlist configuration since all articles in a class
      are available to associated queues
    • Queue can now be selected directly on the ticket create page and changed
      before creating a ticket
    • Catalog can now be selected on the asset create page and changed
      before creating an asset
    • 💻 Re-designed listing and selection UI for RT at a glance edit page and
      dashboard edit pages
    • 🆕 New Selectize "bubbles" when entering users in Requestors, Cc, etc. on
      ⚡️ ticket create and update pages
    • ➕ Add configuration to hide custom roles from some pages like the ticket
      create page, etc.
    • 0️⃣ Select one value custom fields now default to Dropdown
    • Content selected on ticket display is quoted on reply/comment
    • ➕ Add unread message count as an option for unread messages on RT at a glance
    • ⚡️ Display current queue on ticket update page (reply/comment)
    • ➕ Add Create Ticket option to Home menu so it is available when in assets, articles, etc.
    • 🆕 New page option to reverse transaction sort on current ticket while viewing
    • Convert logos and images to svg
    • ➕ Adding/deleting values for custom fields now uses ajax to update
      in-page without a full page refresh
    • 🚚 Move user-generated dashboards from the Home menu to Reports menu
    • 🔧 Make Reports menu configurable, including removing default reports and
      ➕ adding/removing dashboards (like previous functionality in Home)
    • 👌 Support for filtering by lifecycle in ticket query builder
    • 📱 Default mobile devices to full (now responsive) RT web UI. Mobile
      ⚡️ optimized UI still available by setting $ShowMobileSite
    • 🛠 Fix table wrapping error in Ticket/Update.html
    • Don't double-escape queue name in title generation stage
    • ⚡️ On ticket update, defer AJAX recipients update briefly to get form's latest status
    • 👌 Improve UI of unread messages notification
    • Omit groups in saved search privacy menu if user doesn't have rights
      to save searches for that group
    • ⚡️ Sync one time inputs back to checkboxes on ticket update page
    • 👌 Support searches on NULL(unset) values on user/group admin pages
    • Fill up cells of record's last row in search results
    • ➕ Add a display only Owner column as an alternative to OwnerName
    • 🛠 Fix mobile home navigation for iOS

    Extensions Added to Core

    • RT::Extension::QuoteSelection
    • RT::Extension::RightsInspector
    • RT::Extension::ConfigInDatabase
    • RT::Extension::CustomRole::Visibility
    • RT::Extension::PriorityAsString
    • 🍱 RT::Extension::AssetSQL
    • RT::Extension::LifecycleUI
    • RT::Extension::REST2
    • RT::Authen::Token

    Command-line

    • 🚚 Move perl dependencies to cpanfile
    • ✅ Many improvements to information and output of rt-test-dependencies (make testdeps)
    • ⚡️ Many updates to module dependency lists, versions, etc.
    • ➕ Add support for JSON-formatted initialdata
    • 👌 Support assets and catalogs in initialdata
    • 👌 Support ObjectCustomFieldValues in initialdata
    • 👌 Support Articles in initialdata
    • 🆕 New rt-dump-initialdata script to export RT objects to initialdata files
    • ➕ Add documentation for serializer/importer process

    Internals

    • Clear Subject header from auto-generated text email part
    • 💻 Respect AllowUserAutocompleteForUnprivileged for email inputs in self service UI
    • 🍱 Convert summary page asset searches to use AssetSQL
    • 🏗 Multiple changes to RT query builder to allow for customization
      in extensions (specifically RTIR)
    • Migrate owner autocomplete to the general autocomplete
    • 👌 Support gpg 2.2 for email encryption
    • 👍 Allow extensions to add custom field groupings to queue defaults
    • 👍 Allow a Limit value to be passed to tickets autocomplete
    • ➕ Add ExternalAuth support for attribute mappings to user CFs
    • ➕ Add ExternalAuth support for coderefs in attr_map
    • ➕ Add DisplayTotalTimeWorked to RT_Config.pm
    • ➕ Add $QuoteWrapWidth option for wrap length when quoting on ticket reply
    • Fix uninitialized warning in ticket searches with active and inactive items
    • 👉 Use system user to get custom field objects to inspect in searches
    • 0️⃣ Set a default for $AttachmentListCount
    • 🌲 Clarify external auth logging when users are not found
    • 0️⃣ Default lifecyle type to ticket on SelectStatus
    • 🚚 Move SignatureAboveQuote to Message box properties
    • ➕ Add support for setting user CFs on create
    • ➕ Add sort for external custom field values
    • 🛠 Fix removal of scrips when shredding queues
    • 🌐 Restore mistakenly translated quant function in German translation
    • 🛠 Handle subject tags prefixed with http:// by email clients
    • ✂ Remove duplicated closing tag for attachment delete links
    • Correctly handle custom field MaxValues
    • ⚡️ Update default rights check to false to correctly handle custom
      role edit rights checks on tickets
    • ➕ Add multipart/form-data encoding to EditAboutMe form
    • 🛠 Fix removal of custom fields when shredding queues
    • ✂ Remove search string including numbers in ticket autocomplete search on select
    • ⚡️ Update RecentlyViewedTickets to deal with shredded/merged tickets
    • 🛠 Fix bug that kept 11 tickets in the "recently visited" list instead of 10
    • Filter queues by checking "CreateTicket" right on ticket create page

    Database

    • ⬇️ Drop HotList column for Classes
    • ⚡️ Update to utf8mb4 charset on MySQL/MariaDB
    • ⚡️ Update id size to BigInt for some tables that get large in big RTs

    Server Administration

    • 🔧 Make RT logout link configurable
    • ➕ Add %ThemeJSFiles config to serve different js for different themes
    • ✂ Remove references to end-of-life versions and software
    • Document a fix for perl module permissions problem
    • ⬆️ Avoid upgrade warning of "no such table: Configurations" before it's created
    • 🌲 Document and log information on external HTML formatters

    Developer

    🏗 Move RT menu building logic from Mason templates into Perl
    library files

    🔨 Refactor asset menu logic into separate functions

    🗄 Deprecate RT::Article::LoadByInclude that was for old article selection UI

    Pass ShowHints via a callback to provide a way to hide hints

    Document additional plackup options via rt-server

    ✅ Load Test::MockTime earlier to fully replace time functions in core

    👍 Allow RT_HOST to be set via environment variable for testing

    ➕ Add docker and travis configuration to run RT tests on TravisCI

    ✅ Avoid running multiple rt-externalize-attachments simultaneously in tests

    🆕 New callbacks:
    🏗 /Search/Build.html BeforeDisplay
    /Ticket/Forward.html AfterMessageBox
    /Ticket/Forward.html Initial
    /SelfService/Create.html Initial
    /Elements/ShowTransactionAttachments ModifyContent

    A complete changelog is available from git by running:
    🌲 git log rt-4.4.4..rt-5.0.0
    or visiting
    rt-4.4.4...rt-5.0.0


Previous changes from v4.4.3

  • RT 4.4.3 -- 2018-06-26

    We're pleased to announce the general availability of RT 4.4.3. This
    🛠 release introduces several new features and also bugfixes.

    🚀 https://download.bestpractical.com/pub/rt/release/rt-4.4.3.tar.gz
    🚀 https://download.bestpractical.com/pub/rt/release/rt-4.4.3.tar.gz.asc

    SHA-256 sums

    738ab43cac902420b3525459e288515d51130d85810659f6c8a7e223c77dadb1 rt-4.4.3.tar.gz
    29e0f9c44e30fb8bb2d23448f1930593aef28e4b3faf5bd22619f52e53229c4f rt-4.4.3.tar.gz.asc

    💻 General user UI

    • 👉 Show the Ticket's Subject when modifying the ticket.
    • 📜 Re-format RT/Config.pm so the # loc comment parses correctly.
    • Sort saved searches alphabetically by name rather than by id.
    • 🚚 In Self Service, provide a path to remove attachments from the session
      when they are deleted from dropzone by the user (I#32663).
    • 🛠 Fix evaluation of set vs. unset custom fields on display for correct hiding.
    • 🔧 Set dropzone attachment size based on RT's MaxAttachmentSize configuration.
    • ➕ Add a configuration option TreatAttachedEmailAsFiles to treat attached email
      📜 as a file attachment instead of parsing as regular email.
    • ⏪ Restore email header parsing for items like email addresses when
      TreatAttachedEmailAsFiles is not set. This was disabled in a previous
      🔖 version.
    • 0️⃣ Respect default queue settings in Create linked ticket dropdown (I#32884).
    • ⚡️ More fixes for recipient checkboxes on update. This version removes previous
      ⚡️ problematic fixes and gives a visual indication (shading) when RT is updating
      recipients in the background and checkboxes should not be changed (I#33027).
    • Provide a way to reset personal search preferences back to the RT system
      0️⃣ default (I#32854).
    • ➕ Add an Untake action to the Actions tab.
    • ➕ Add active and inactive status to query builder.
    • 🏗 Re-add Queue to 'Order by' dropdown in Search Builder.
    • 👉 Make admin searches for queue and group case insensitive making it easier to
      find groups.
    • 0️⃣ When editing ticket basics, always add valid default value to queue selection,
      👀 taking into account SeeQueue rights.
    • Set dropzone parallelUploads to 1 to avoid losing attachments. Also
      set parallelUploads when the dropzone object is created.
    • 💻 Correct error messages on user rights for CF admin UI.
    • In ticket history, respect ShowHeaders option from request for
      ScrollShowHistory (I#32699).
    • 🛠 Fix ExtraArgs of callback ExtraShowHistoryArguments in ScrollShowHistory.
    • In the ticket history with scroll set, continue to get transactions until all
      have been shown, even if a block has been hidden for some reason (rights, etc.).
    • ➕ Add PreferDropzone config/pref option for users. Dropzone is not accessible
      to screen readers and this enables the previous attachments interface which
      is accessible.
    • 🏗 In the query builder, set operator to "IS" or "IS NOT" for NULL values.
      🛠 This fixes a regression from pre-4.4 RT behavior.
    • Don't create ticket if user clicks "Go" buttons of "Include Article".
    • 🛠 Fix CF name escape for asset search's spreadsheet download.
    • 👉 Show the user in single member custom roles even if the user is
      disabled (I#32949).

    Administration

    • Stop wrapping ShowUser in tags to avoid unnecessary nested links.
    • When listing group members, sort by text-only representation of the
      👉 user, not HTML (I#30771)
    • In the group admin page, stop pre-computing ShowUser.
    • In shredder, check for both id and name mismatches when loading objects.
    • ➕ Add a new rt-passwd command to make it easy to reset passwords on the
      command-line.
    • 👌 Support custom roles in RT serializer/importer tools.
    • 👌 Support catalogs and assets in RT serializer/importer tools.
    • ⚡️ Update RT's module dependencies for SSL (https) to align with updates
      to the CPAN module ecosystem.
    • ➕ Add age, batchsize, and dry-run options to rt-externalize-attachments.
    • Set proper HTTP Status codes on Abort.
    • The value for converting the owner dropdown to an autocomplete textbox can
      ⚡️ now be updated in configuration with DropdownMenuLimit.
    • 👯 Switch to Clone::clone to copy config structures in Obfuscate callbacks. This
      🔧 restores support for REGEXP and CODE configuration on the System Configuration page.
    • 🔧 Provide a way to pass more options to Net::LDAP from LDAPImport configuration.
    • Provide more debug output on connection failures in LDAPImport.
    • 🌲 Store log messages until RT::Logger is initialized. This means messages logged
      before the logger is available, like "Change of config option..." can now
      🔧 respect the configured log level.
    • In shredder, check for both id and name mismatches when loading objects
    • Retain scrip sort order in pagination links

    Internals

    • 🐎 Cache OCFVs to improve performance searching for duplicates when adding
      values.
    • ✂ Remove unused dependencies on File::Copy and Carp.
    • On Oracle, return the empty string instead of undef for Subject when it
      has no value on a ticket.
    • 🍱 When linking, load assets by id to confirm the asset exists. This makes
      asset link handling consistent with ticket handling.
    • 🛠 Various fixes for compatibility with perl 5.26.
    • 👌 Support unicode characters in constant time comparison function
    • 👍 Allow merge for tickets only, not other types like reminders (I#32700).
    • Preload Encode with UTF-8 to avoid masking other errors (I#32648).
    • 🖨 Process multiple links via the REST 1.0 interface.
    • ➕ Add SLA field support on REST 1.0.
    • 🏗 Build table attributes for RT::Asset. This is needed to allow assets to work
      properly with REST 2.0.
    • Avoid uninitialized value warnings with CustomField.
    • Call DoAuth only if ExternalAuthPriority is not empty, allowing use of
      ExternalAuthInfo without ExternalAuthPriority set.
    • 0️⃣ Use "id asc" as the default sort order of GroupMembers for consistent ordering.
    • 🐎 Cache OCFVs to improve performance searching for duplicates on add.
    • ⚠ In CollectionAsTable, fix the uninitialized warning in case @order is empty.
    • ⚡️ In rt-validator, update link checking regex to match asset links.
    • ✂ Remove trailing "/" from RT::URI::asset::LocalURIPrefix for consistency.
    • ⚠ Use RT::Logger for EmailInputEncodings config warnings.
    • "Die" properly when receiving an invalid query via to FromSQL.

    Developer

    • Avoid using $id in /Ticket/Display.html so callbacks can modify id in ARGS.
    • 📜 Pass the MIME entity to ParseTicketId in addition to subject.
    • ✂ Remove a 'This is scary' comment from code that has been running fine for
      over 10 years.
    • 👌 Improve warning tracking for automated tests.
    • ➕ Add an Initial callback to Bulk.html.
    • ✅ Don't fail externalauth/auth_config.t tests if Net::LDAP is missing.
    • ✅ Find an idle port for LDAP test server to avoid tests hanging when running
      in parallel mode.
    • ✅ When testing, make sure DevelMode is on to catch compilation errors.
    • ⚠ Avoid uninitialized warnings of empty ticket subjects on Oracle.
    • 0️⃣ In the MessageBox template, default callback, pass $message by reference in
      MessageRef, as the variable name implies. This will break previous use of
      MessageRef as a scalar.
    • ➕ Add support for a NeverNotifyActor argument to Notify actions.

    📚 Documentation

    • 📄 Mention the RT-Attach-Message: yes header in template docs.
    • 🛠 Fix incorrect path in portlet documentation.
    • 📜 In $ParseNewMessageForTicketCcs docs, mention the RT::Action::AutoAddWatchers
      extension.
    • Document queue-level template overrides.
    • ✅ Document using prove and RT_TEST_PARALLEL for tests.
    • ⬆️ Note in UPGRADING that RT::Extension::AdminConditionsAndActions is now in core.
    • ✂ Remove unnecessary AUTHORS sections from docs.
    • 📚 Update rt-static-docs documentation processing to fix broken links.
    • ➕ Add MariaDB support to documentation and rt-setup-fulltext-index.

    Internationalization

    • 🔨 Many changes to refactor sections of RT's internationalization code.

    A complete changelog is available from git by running:
    🌲 git log rt-4.4.2..rt-4.4.3
    or visiting
    rt-4.4.2...rt-4.4.3