1. 03 Sep, 2014 4 commits
    • Alex Vandiver's avatar
      Standardize on the stricter Encode::encode("UTF-8", ...) everywhere · 1d18663b
      Alex Vandiver authored
      This is not only for code consistency, but also for consistency of
      output.  Encode::encode_utf8(...) is equivalent to
      Encode::encode("utf8",...) which is the non-"strict" form of UTF-8.
      Strict UTF-8 encoding differs in that (from `perldoc Encode`):
          ...its range is much narrower (0 ..  0x10_FFFF to cover only 21 bits
          instead of 32 or 64 bits) and some sequences are not allowed, like
          those used in surrogate pairs, the 31 non-character code points
          0xFDD0 .. 0xFDEF, the last two code points in any plane (0xXX_FFFE
          and 0xXX_FFFF), all non-shortest encodings, etc.
      RT deals with interchange with databases, email, and other systems.  In
      dealing with encodings, it should ensure that it does not produce byte
      sequences that are invalid according to official Unicode standards.
    • Alex Vandiver's avatar
      Ensure all MIME::Entity headers are UTF-8 encoded bytes · 41d084f1
      Alex Vandiver authored
      Placing wide characters into MIME::Entity objects can lead to
      double-encoding, as discovered most recently in d469cacc.  Explicitly
      decode all headers as UTF-8 when retrieving them with ->get(), and
      encode them as UTF-8 before updating them with ->set() or ->replace().
      This also applies to headers passed to ->build().  The only exceptions
      to this are fixed strings in the source (which, in the absence of "use
      utf8", are always bytes).
      While the majority of these headers will never have wide characters in
      them, always decoding and encoding ensures the proper disipline to
      guarantee that strings with the "UTF8" flag do not get placed in a
      header, which can cause double-encoding.
    • Alex Vandiver's avatar
      Ensure all MIME::Entity bodies are UTF-8 encoded bytes · 6d9bd63c
      Alex Vandiver authored
      Placing wide characters into MIME::Entity objects can lead to
      double-encoding.  Always treat them as byte stores, encoding as UTF-8
      and noting their character set.
      In the case of Approvals/index.html, there was no need for an explicit
      MIME::Entity object; ->Correspond creates one as needed from a "Content"
    • Alex Vandiver's avatar
      Always log bytes, not characters · a275a7fa
      Alex Vandiver authored
      Ensure that we always send UTF-8 encoded bytes to loggers, and not wide
      characters.  This is correctly done via an explicit call to
      Encode::encode, and not via checks of utf8::is_utf8 (which may be false
      for character strings with codepoints > 127 but < 256), and not via
      _utf8_off (which would fail similarly for such characters).
  2. 02 Sep, 2014 2 commits
  3. 28 Aug, 2014 1 commit
    • Kevin Falcone's avatar
      Allow modification of which types of links are shown · 191f789c
      Kevin Falcone authored
      There's a callback to add data at the end of the Links portlet, but
      nothing to allow you to change what's display.  This provides a callback
      that would let you remove (for example) the Parents from the listing, so
      that you can list them in a separate portlet later, with a custom
  4. 18 Aug, 2014 1 commit
  5. 13 Aug, 2014 2 commits
    • Kevin Falcone's avatar
      Allow extra arguments to be passed to ShowHistory · ec0bb0d9
      Kevin Falcone authored
      RTIR wants to customize a number of paths during history display (see
      RTIR/Display.html and RTIR/Incident/Display.html).  In order to use
      delayed history loading, RTIR either needs to pass those as GET
      arguments (allowing user injection of paths that we use to build links,
      which is dangerous without sanitation) or otherwise get them to
      With this, RTIR can just callback in the custom arguments (you can also
      clobber any of the other arguments to ShowHistory with it).
    • Kevin Falcone's avatar
      Still delay loading when showing headers · 1ff7f30c
      Kevin Falcone authored
      In 75a405b5 we added the ForceShowHistory flag to Click to load history
      so that even if your JS was off, clicking on the link would load the
      This flag is also found in the Show Headers links added in 1a3327ce
      and I think added so that when you clicked on ShowHeaders with Click to
      load enable, you didn't *then* have to click on "Load history" just to
      see the headers.
      However, with delay, we already passed ShowHeaders to the helper, but
      clicking on Show Headers forced us to do the page load inline instead.
      This negates all of the perceived speed boost from delayed loading.
      Removing it from the delay case hasn't immediately broken things, and
      the delayed loading really doesn't play well with having JS off anyway.
  6. 06 Aug, 2014 1 commit
    • Kevin Falcone's avatar
      Allow @Groupings to be passed in · b1ba2c3d
      Kevin Falcone authored
      The display template (ShowCustomFieldCustomGroupings) takes Groupings as
      an argument, for symmetry, also take it during editing.
      This allows code to better control which groups are shown
      on Create or other editing pages (in particular, RTIR and the multitude
      of complex editing/creating pages in that workflow).
  7. 05 Aug, 2014 1 commit
  8. 25 Jul, 2014 1 commit
  9. 22 Jul, 2014 1 commit
  10. 09 Jul, 2014 3 commits
  11. 07 Jul, 2014 1 commit
  12. 03 Jul, 2014 1 commit
    • Wallace Reis's avatar
      Issues#29015 - Saved chart should load settings · f8bc8bb2
      Wallace Reis authored
      Use the %ARGS which gets updated with data from $saved_search
      and still honor the request payload in case the user wants to
      update the chart.
      The _right_ order is something like:
        1. Saved search values
        2. or GET/POST parameters
        3. or parameters on last Search/Build.html page
        4. or some sane defaults
  13. 01 Jul, 2014 9 commits
  14. 23 Jun, 2014 1 commit
  15. 19 Jun, 2014 2 commits
  16. 18 Jun, 2014 1 commit
  17. 16 Jun, 2014 8 commits