[Rt-commit] rt branch master updated. rt-5.0.5-76-g9fca83d11d

BPS Git Server git at git.bestpractical.com
Thu Oct 19 20:23:57 UTC 2023


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "rt".

The branch, master has been updated
       via  9fca83d11d15fb8034308194b9c9052d5df7d454 (commit)
       via  6c00e407f750b8f9ed1ed01647d20878270e1291 (commit)
       via  1cc468df6e21aedca83927deaab96b39173a7432 (commit)
       via  019efbaab6930affe82819ffa2e8e2ac9b5c1f2c (commit)
       via  33e9203bf2a61e20f8b8e682d57f55cb7a995967 (commit)
       via  90fb016e604942256edf00a36644ce077bb5ea4e (commit)
       via  42124d39ac34d170b7f73b1d8c52031f061f75a8 (commit)
       via  54a3f830eb4205550692ec6f57c5124acdbf5bf1 (commit)
       via  308173600817b7f7b2a7e70f22bfe2f175375ad9 (commit)
       via  5f76719a96e1a10d19943b70e961859cdd4138b3 (commit)
       via  7e3a1ba521155cc5d79d83c07eedf7e0a188ca1c (commit)
       via  96c105f2364c6fbc4292f7b5bda370dbc4a6d0c6 (commit)
       via  ab0dbcf08c693c5ca4990a180c31af5cf3c45c4d (commit)
       via  ce6dfd3639519a05527e3cad5dfa9fc01f082017 (commit)
       via  b41b99541a389c1b3eb382b7351f6a60ebed1bcb (commit)
       via  6193385832fdedb4aa1113f530e42dd0cf2d3644 (commit)
       via  34180a3c79e58706aa37624e0f4ebbc427e61684 (commit)
       via  9fe3cd941e094346f7e553c3d9163a1fc900fcd9 (commit)
       via  2ded707673d13706a6dad0769ecfa514fe204f62 (commit)
       via  92e0d168f3927e4af79ecf96f7a1ab155285fff0 (commit)
       via  243e41e387d1d5f7ca3f48780a00835612f388c0 (commit)
       via  41fb84c203ea1f22190add1f5aa681831ddda760 (commit)
       via  6a7153f941254f622d9f7287818c8ade2ce4dfb2 (commit)
       via  5f3e8b6675cdbc30ca8609707a4f6c11c2ad7fb7 (commit)
       via  45aaf2587416341c4e7e35c6ed7c87a12853bcff (commit)
       via  d267bbb1dcae76df6de6eac85fcbe7198a554b99 (commit)
       via  03078096088097af1a5aa8621c2b61432d52e7e0 (commit)
       via  35548e3ee85dba8a590d8113ac40703dcf90a281 (commit)
       via  3b7cfecc2758145e80ea0d6c10998d34c953a2fa (commit)
       via  325ddfeda6255f7c011d3c6547ccaff77d9938af (commit)
       via  c4159088d317827a7dd8ebfd981269e970bcb59a (commit)
       via  7b0ff85dd18d0ac5f407edc138034dd5e0b35efd (commit)
       via  fcf8f76bb5ed19c35c7c5997588feb7b0b556ef2 (commit)
       via  c2d5d72cd5e6cfaed744a3a2defe716ca96d5375 (commit)
       via  666f8b43a7566b8aef4caedf258254eaf0e11586 (commit)
       via  96f0305b8515214a22eb2d2b1f23695b81e3c3ae (commit)
       via  446479dd140b1af510c75733d48db1524ccdd597 (commit)
       via  8032d4ab00fd9ab5d3adfc11671bc37715a7bdd0 (commit)
       via  3511c116f0b2fcb917b564f833b02560b981260c (commit)
       via  361d2849af8a87795e62bed293ca508d615792f9 (commit)
       via  54f25d67378862f6f181f9e4fec0758cc73d2bf0 (commit)
       via  4c5de2bcb9cec6fe899890b4af3802697c333ca2 (commit)
       via  6091759205c3b4a178cf274c73d66802efe48f03 (commit)
       via  0118c94906565a8d4536ef024bf4885fca717011 (commit)
       via  0dc3835ffc44e3d34ea14089f76959ca23ae08dc (commit)
       via  4dbb8b0797bdc693a95ba95e3e638113f65b63f4 (commit)
       via  af8015b825be60c4c4f733f7451b753f0240ac21 (commit)
       via  ef958dadf4387f11817b1125ecd5cbfa973e4d66 (commit)
       via  f5bfef5be8bf1ca60faa73caea9203d1d239da25 (commit)
       via  4cb028365b4ef7524bd1f1192b5c0b5f1f97d66a (commit)
       via  2b9ff1a8218bdbf4931fcea8c3676370669e1b24 (commit)
       via  ce9112420d12b889f2e44684b3da4cdc541a59fe (commit)
       via  335fc5ae0a1e7d4617afde7c33adc1f65d626699 (commit)
       via  abbdf539ace291ae0b09935dc84ef390aa9aef6a (commit)
       via  5b69c05f5a9a7d3e38a7e5269d911e04096517dd (commit)
       via  46cef1925d49c9140ec738d4a068fc470b0de290 (commit)
       via  afb7dcded721e27028e47b62e7e5ed8ffc492beb (commit)
       via  a7a83dfdf591cd4d9f547048e89a5a310eeef32d (commit)
       via  1280a7a987154a19ce3de63b2adc1a4735bcb6a3 (commit)
       via  c29acbe71ce07e5396f3f2d0726b346fc87986d6 (commit)
       via  2c63541437c5670667070352ab548aea5f38351f (commit)
       via  0e0d8de198c3784c92787aa251001694a87672ce (commit)
       via  115ec0aec4a0ac08d4a1d70132d85c10a511029b (commit)
       via  c3181844c6dd4ade1d06134c751f56fe7f10a096 (commit)
       via  9d976c7a4facf5c64c17c6c063b74dccc3acc328 (commit)
       via  2476da883e37bc848d094cbb8ba5a9f65c35656c (commit)
       via  c0651d2be06655bf199506fbdbc6e922caa43c3d (commit)
       via  16af35b640f58b21e10c0b06cac2e82a5252d7d7 (commit)
       via  84750a16aec4702dfde4f70f8a6b3398dded2c6f (commit)
       via  6322a8f31c3de04e3e18af63e974993f919d62de (commit)
       via  25b21235a61f43dfa4064b9a7086abd0ba468a0c (commit)
       via  ed2563b8d0944a7d34ba083495914728482cb9ef (commit)
       via  728c86970f7454ba35a02f812d606b2b478e698d (commit)
       via  71b4d45a42ef603aab000d33e94c1d8a71556b0e (commit)
       via  c90493a76c11335ecc40a8e30fb43e4c20864df3 (commit)
       via  2084f585f7e92c934f7365026209433352aae152 (commit)
       via  bd006e6097686f581d92c2ffb37a20c891d2bb72 (commit)
       via  b69fbc361c6475007e7cfd1f39cdea3cfea320c6 (commit)
       via  ec96360bbe237ddb0e796fc989464f72e9d8f012 (commit)
       via  936b39a7be71fddaed97e8babd57e5d2a1daa48e (commit)
       via  42ebc33d3f252f6655cbe80c01377bd296c7901a (commit)
       via  4569b9914294d765e4e84f614557feeb1f379ce8 (commit)
       via  89e2a5a3596eb49bfccf76e17058e5034aefe5d7 (commit)
       via  c782c813bba67be2d8b9589fc09f313ceb7b6a49 (commit)
       via  9bfd798b33fd413043c31c5faffcec1b3d1781a2 (commit)
       via  1f6a8795f0c02f365ba9df61ad9da5fc901954ce (commit)
       via  415764629d163465e44f0ee603bd3ac3d7112ce3 (commit)
       via  b9558de1bc2baa801a16014e34fe88c3dd24dac1 (commit)
       via  7ed53570622cc7760561cea04ce2978fa5868d50 (commit)
       via  a3bc7818e2eb6baca8a450dbc8c60e0cb1199624 (commit)
       via  52d3e1aa73953e34b804ae69d49be09f26943569 (commit)
       via  337f1918b25fdf47343108cc993f442092666f5a (commit)
       via  218850272ac7ed9b8e4d4db0eb51acf095c5b80b (commit)
       via  390e9e1d9f437f9ee40621a6fe2029800425dcfb (commit)
       via  9bf7d46770cd33fcdd3395fa7dd08808d85bc7a7 (commit)
       via  e2365b417e3714490c613fb086d0e8975a51206b (commit)
       via  df9e41deae5d2d753cff0c1fa15be7b8253dcbc2 (commit)
       via  dff631b80960f5030fbea243a7f0c80acdc84c1a (commit)
       via  e0fbb381969ce616eb38d2d5e178808346b6e033 (commit)
       via  155f31fc2480362937cbed3d11abb52dbdf2f146 (commit)
       via  f687cd52a7119f36062947539c0bb4a36a210c19 (commit)
       via  2992f2773250f23a8e7af87206bcdc7f9973509e (commit)
       via  d68dc82c55b1ef1099de222394a7623ab1a7cede (commit)
       via  9219752e35d5092d41f72ad2123d1e910c7430b4 (commit)
       via  c999de42cf4ea9bcc596d3fa37e5f8ea351764a3 (commit)
       via  0cc22cc260caa55690efcec97eff91fa2086bf50 (commit)
       via  f5c3058580478c290a1c3f8b963ccf03fb3789ba (commit)
       via  a94dd8461f8cd3405200b8646304c23f5cb19b3d (commit)
       via  53c75d2cf7ea45658ff8875f04fc8a2df01d816f (commit)
       via  492a03a55f79dcc4267ea5bc281cd29f14c5bd3e (commit)
       via  8d71c5cdc36806c6677964287d86017985718a59 (commit)
       via  c637e8c928ab07473ba916bb2b0a106db79c9ea4 (commit)
       via  69cd6f975c88dd639bcab9d16b365f9f43f89fdd (commit)
       via  df203e59b9bb97d7e28cbf6b2b6a799b34892579 (commit)
       via  6629a9515c0bd69d4859351ba8059ae4610dbeb2 (commit)
       via  e3c2c44b4464f5b5d5b9e3f801196e6c478d9a69 (commit)
       via  84fbb14a5c25e1695c84aa75470c24be3a3d7b45 (commit)
       via  a6d79540f2009356f31788d55185eaaed80c7685 (commit)
       via  33e54a7cb2c55ed5958360365a7f9236aae87acb (commit)
       via  932a37cf0bfb653c38aafbad12d728c08d40d94a (commit)
       via  19ded2419a82b4c8c45042061d1778e93c48e67c (commit)
       via  49c8a4b9e783fd33ebf4b761c8423eacb15f4629 (commit)
       via  d7f9f60b400d20f3bda6fe6b82149a0f6db2d693 (commit)
       via  442d727de90bdd11d7c23d70588e9cb139c178a9 (commit)
       via  f2fb3e722dee9ccce830d8d0497a8dee1abee418 (commit)
       via  015676cb8766e2134528e541793338c86e1c46d4 (commit)
       via  d07a607b030fff2f1de8ec8b575b85b5cd1f7bde (commit)
       via  bf956a7a67d3c81daa43ae3cdf14cf92a411e773 (commit)
       via  d27cec807d6480c5092a569a339262ae4dfbda30 (commit)
       via  80eb944a3ca57397c0e954fb4ee5c8b44263d3fa (commit)
       via  76ac1e57068f89751df6911638c5d4c41eff6fdb (commit)
       via  a28f420986785028d16d438b6728f7839b2c732d (commit)
       via  2e96570b9a1683db3d884ec8c792de72e5b4d023 (commit)
       via  378e2b528619add807c23a4b9879e0d251e17b20 (commit)
       via  72d33d42c9ca9d9ec285f49e7d6a5f948f3a2d88 (commit)
       via  0f1e24bdba466c0f9a9c6268f33b4452e7b31e19 (commit)
       via  a150ef4665ace7406fb554eac60e7061de8d5316 (commit)
       via  08038948cefa41799de7402252bbbaa45a039ebc (commit)
       via  d94c166b1c08f3f8ff2714470819981bb7b76306 (commit)
       via  11e68406ceae4297492dddbce3b01a884ca8736a (commit)
       via  2501a23b7b2c3949d35afe2cc3616c2b1ea59a58 (commit)
       via  516b12517d0eb9aef5272d4b44e0e448457f2c26 (commit)
       via  3bcd92964ffec880d4ab9444fcc3a4d461d79a5c (commit)
       via  1a4beac4d8d288a632743ef6f82c99b249c5c69d (commit)
       via  955bea4696d947d05fe46f9a48f3edf9141837b8 (commit)
       via  c74b9aa57aac7884b7034596fe051c6f0532bd15 (commit)
       via  19cd66ef291432c2422835f9ca6211575f549d83 (commit)
       via  898b36dc33f2322cccad29d07b1c83511f30e453 (commit)
       via  5bf9960ebe21de20e53fc92c31a9a6fff1a49ecc (commit)
       via  bc3b4804e75557aa57ff0a78514bbba98845d4f2 (commit)
       via  2a6d02e384c04c392fbc81b2a6219e68e4927782 (commit)
       via  e8def1d53408c980f2ec669d070ba415230124f9 (commit)
       via  bb0920da831d59be28bc3b29961fa8ed058e3960 (commit)
       via  79c99012671b4ec4bf0c8ab70cd928c1d790438b (commit)
       via  56b12116763a73e09da779b75770316ddf284963 (commit)
       via  48a4036471d546e1c70f391e33acfada8c7a1718 (commit)
       via  de8dc8a692b4f195a5618b70c492cb278ab39a5a (commit)
       via  6261aa0d4758c773954b2525d6c08513454a0f66 (commit)
       via  304fd96a812703fc66be6406821bff2c8bf771ab (commit)
       via  13501db85ca738eb7cbce3b5861c5063698172cc (commit)
       via  e9605db850d824b9f7f5fda6ec6794ef8f8a02b8 (commit)
       via  259f7a5d2f007da8582345e1257771c91add951f (commit)
       via  96df4632157ab76a2a05789cdc16db074eaddef9 (commit)
       via  284c40255bdddac1ab0f311c887573ca26892596 (commit)
       via  df4389ba698a101dfc68e2fab68955183bb1463c (commit)
       via  a90fbde9afdb60bbc793643c566e29844d5a92d5 (commit)
       via  4161e49d2c92f006a467f246141fa68529541f88 (commit)
       via  e6e7585a6d7fe7213b63fc98eaa38d04a6ea630e (commit)
       via  3dc86019d8d12594e4314989c32d48de8802542b (commit)
       via  d14593f62f88b5a4768b7fc20e43799743aff5d2 (commit)
       via  1a09e5c1b84a86a2b9d2dc4410168929dd0c69e9 (commit)
       via  9971eeed15978f1e9caf1a0ef51947628cbc13c7 (commit)
      from  69a470d0ca97684a4ae468aacb5bc7856b86dfe7 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 9fca83d11d15fb8034308194b9c9052d5df7d454
Merge: 69a470d0ca 6c00e407f7
Author: sunnavy <sunnavy at bestpractical.com>
Date:   Thu Oct 19 15:45:11 2023 -0400

    Merge branch '5.0-trunk'

diff --cc share/html/Admin/Scrips/Elements/EditCustomCode
index 7f5f8b61ac,22fa075865..05d87ca32a
--- a/share/html/Admin/Scrips/Elements/EditCustomCode
+++ b/share/html/Admin/Scrips/Elements/EditCustomCode
@@@ -65,6 -65,18 +65,18 @@@
      <textarea spellcheck="false" cols="80" class="form-control" rows="<% $lines %>" name="<% $method %>"><% $code %></textarea>
    </div>
  </div>
+ 
+ % if ( $errors{$method} ) {
 -<div class="form-row">
++<div class="row mt-2">
+   <div class="label col-2 labeltop scrip-log">
+     <% loc('Log Output') %>:
+   </div>
+   <div class="value col-9">
+     <textarea spellcheck="false" cols="80" rows="5" class="form-control" readonly><% $errors{$method} %></textarea>
+   </div>
+ </div>
+ % }
+ 
  % }
  
  </&>
diff --cc share/html/Admin/Scrips/Logging.html
index 7f5f8b61ac,07f4c8e4c4..54e3727bd5
--- a/share/html/Admin/Scrips/Logging.html
+++ b/share/html/Admin/Scrips/Logging.html
@@@ -45,38 -45,67 +45,54 @@@
  %# those contributions and any derivatives thereof.
  %#
  %# END BPS TAGGED BLOCK }}}
- <&| /Widgets/TitleBox, title => loc('User Defined conditions and results') &>
+ <& /Admin/Elements/Header, Title => loc("Logging for scrip #[_1]", $id) &>
+ <& /Elements/Tabs &>
  
- <div class="row mt-2">
-   <div class="col-12 comment">
-     <i><&|/l&>(Use these fields when you choose 'User Defined' for a condition or action)</&></i>
-   </div>
- </div>
+ <div class="mx-auto max-width-xl">
  
- % while ( my ($method, $desc) = splice @list, 0, 2 ) {
- <div class="row mt-2">
-   <div class="label col-2 labeltop">
-     <% $desc %>:
-   </div>
-   <div class="value col-9">
- % my $code = $ARGS{ $method } || $Scrip->$method() || '';
- % my $lines = @{[ $code =~ /\n/gs ]} + 3;
- % $lines = $min_lines if $lines < $min_lines;
-     <textarea spellcheck="false" cols="80" class="form-control" rows="<% $lines %>" name="<% $method %>"><% $code %></textarea>
-   </div>
- </div>
- % }
+ <&| /Widgets/TitleBox, title => loc('Logging') &>
+ 
 -<div class="form-row">
 -  <div class="label col-3">
 -    <% loc('Condition') %>:
 -  </div>
 -  <div class="value col-9">
++  <&| /Elements/LabeledValue, Label => loc('Condition') &>
+     <textarea rows="5" name="Condition" class="form-control" readonly><% $errors{IsApplicable} || loc('No log output') %></textarea>
 -  </div>
 -</div>
 -<div class="form-row">
 -  <div class="label col-3">
 -    <% loc('Action preparation')%>:
 -  </div>
 -  <div class="value col-9">
++  </&>
++
++  <&| /Elements/LabeledValue, Label => loc('Action preparation') &>
+     <textarea rows="5" name="Prepare" class="form-control" readonly><% $errors{Prepare} || loc('No log output') %></textarea>
 -  </div>
 -</div>
 -<div class="form-row">
 -  <div class="label col-3">
 -    <% loc('Action commit') %>:
 -  </div>
 -  <div class="value col-9">
 -    <textarea rows="5" name="Commit" class="form-control" readonly><% $errors{Commit} || loc('No log output') %></textarea>
 -  </div>
 -</div>
++  </&>
++
++  <&| /Elements/LabeledValue, Label => loc('Action commit') &>
++      <textarea rows="5" name="Commit" class="form-control" readonly><% $errors{Commit} || loc('No log output') %></textarea>
++  </&>
  
  </&>
+ 
+ </div>
+ 
+ 
  <%ARGS>
- $Scrip
+ $id => undef
  </%ARGS>
  <%INIT>
- my @list = (
-     CustomIsApplicableCode => loc('Custom condition'),
-     CustomPrepareCode      => loc('Custom action preparation code'),
-     CustomCommitCode       => loc('Custom action commit code'),
+ my $scrip = RT::Scrip->new( $session{'CurrentUser'} );
+ $scrip->Load( $id );
+ Abort(loc("Couldn't load scrip #[_1]", $id))
+     unless $scrip->id;
+ 
+ my %errors = (
+     'IsApplicable' => '',
+     'Prepare'      => '',
+     'Commit'       => '',
  );
  
- my $min_lines = 10;
+ my $logdir = RT->Config->Get('LogDir') || File::Spec->catdir( $RT::VarPath, 'log' );
+ $logdir    = File::Spec->catdir( $logdir, 'scrips' );
+ foreach my $stage ( qw( IsApplicable Prepare Commit ) ) {
+     my $filename = File::Spec->catfile( $logdir, 'scrip-' . $scrip->id . '-' .  $stage . '.log' );
+     if ( -s $filename ) {
+         local $/;
+         open ( my $f, '<:encoding(UTF-8)', $filename )
+             or die "Cannot open initialdata file '$filename' for read: $@";
+         $errors{$stage} = <$f>;
+     }
+ }
  </%INIT>
diff --cc share/html/Elements/AuthToken/Create
index d13b125fb6,fc1e557af1..2221bedc56
--- a/share/html/Elements/AuthToken/Create
+++ b/share/html/Elements/AuthToken/Create
@@@ -55,10 -55,10 +55,10 @@@
          </a>
        </div>
        <div class="modal-body">
-         <form method="POST">
+         <form method="POST" id="createAuthToken">
            <input type="hidden" name="Owner" value="<% $Owner %>">
  %         if ( $require_password ){
 -          <div class="form-row">
 +          <div class="row mt-2">
              <div class="label col-4">
                <&|/l, $session{'CurrentUser'}->Name()&>[_1]'s current password</&>:
              </div>
@@@ -76,8 -76,44 +76,40 @@@
                <input class="form-control" type="text" name="Description" value="<% $Description %>" size="16" />
              </div>
            </div>
 -          <div class="form-row">
++          <div class="row">
+             <div class="label col-4">
+               <span class="prev-icon-helper"><&|/l&>Expires</&>:</span>\
+ <span class="far fa-question-circle icon-helper" data-toggle="tooltip" data-placement="top" data-original-title="<% loc("Set an optional Expires date?") %>"></span>
+             </div>
 -            <div class="col-8">
 -              <div class="custom-control custom-checkbox">
 -                <input type="checkbox" id="ExpiresCheckbox" name="ExpiresCheckbox" class="custom-control-input" value="0" />
 -                <label class="custom-control-label" for="ExpiresCheckbox">Set Expires Date</label>
++            <div class="col-8 mt-2">
++              <div class="form-check">
++                <input type="checkbox" id="ExpiresCheckbox" name="ExpiresCheckbox" class="form-check-input checkbox" value="0" />
++                <label class="form-check-label" for="ExpiresCheckbox">Set Expires Date</label>
+               </div>
+             </div>
+           </div>
 -          <div class="form-row">
++          <div class="row mt-2">
+             <div class="label col-4">
+             </div>
+             <div class="col-8">
+               <select name="ExpiresSelect" id="ExpiresSelect" class="form-control selectpicker">
+                 <option value="1M" ><&|/l, 1 &>[quant,_1,Month,Months]</&></option>
+                 <option value="3M"><&|/l, 3 &>[quant,_1,Month,Months]</&></option>
+                 <option value="6M"><&|/l, 6 &>[quant,_1,Month,Months]</&></option>
+                 <option value="1Y"><&|/l, 1 &>[quant,_1,Year,Years]</&></option>
+                 <option value="Custom"><&|/l&>Custom Date</&></option>
+               </select>
+             </div>
+           </div>
 -          <div class="form-row">
++          <div class="row mt-2">
+             <div class="label col-4">
+             </div>
+             <div class="col-8">
+               <& /Elements/SelectDate, Name=>"Expires", id=>"Expires", Default => $Expires, ShowTime => 1 &>
+             </div>
+           </div>
  
 -          <div class="form-row">
 -            <div class="col-12">
 -              <& /Elements/Submit, Label => loc("Create"), Name => 'Create' &>
 -            </div>
 -          </div>
 +          <& /Elements/Submit, Label => loc("Create"), Name => 'Create', FullWidth => 1 &>
          </form>
        </div>
      </div>
diff --cc share/html/Elements/AuthToken/List
index 2b086b2a6b,dd5089444c..53813d7b92
--- a/share/html/Elements/AuthToken/List
+++ b/share/html/Elements/AuthToken/List
@@@ -67,8 -67,20 +67,20 @@@
            <&|/l&>never used</&>
  %       }
          </span>
+ 
+ %       my $expires = $token->ExpiresObj;
+ %       if ( $expires->IsSet ) {
+ %           if ( $expires->Unix < $now->Unix ) {
+         <span class="expires font-italic ml-2 text-danger">
+           <% loc("expired") %>
+ %           } else {
+         <span class="expires font-italic ml-2">
+           <&|/l, $expires->AsString &>expires at [_1]</&>
+ %           }
+         </span>
+ %       }
        </div>
 -      <a class="button btn btn-sm btn-primary float-right" href="#edit-auth-token-<% $token->id %>" data-toggle="modal" rel="modal:open"><% loc('Edit') %></a>
 +      <a class="button btn btn-sm btn-primary float-end" href="#edit-auth-token-<% $token->id %>" data-bs-toggle="modal" rel="modal:open"><% loc('Edit') %></a>
      </li>
  % }
    </ul>
diff --cc share/html/Elements/FindAsset
index 2caa92cab2,b8b953dc7f..60aca5dfbe
--- a/share/html/Elements/FindAsset
+++ b/share/html/Elements/FindAsset
@@@ -47,7 -47,13 +47,13 @@@
  %# END BPS TAGGED BLOCK }}}
  <&|/Widgets/TitleBox, title => loc('Find an asset') &>
  <form action="<% RT->Config->Get('WebPath') %>/Asset/Search/">
-   <input type="text" name="q" />
-   <input type="submit" value="<&|/l&>Search</&>" class="button" />
 -  <div class="form-row justify-content-center">
++  <div class="row mt-2 justify-content-center">
+     <div class="col-9">
+       <input type="text" class="form-control" name="q" />
+     </div>
+     <div class="col-auto">
+       <input type="submit" value="<&|/l&>Search</&>" class="form-control btn btn-primary button" />
+     </div>
+   </div>
  </form>
  </&>
diff --cc share/html/Elements/GotoGroup
index e3f7d88ebd,7c653df712..76e23e10c1
--- a/share/html/Elements/GotoGroup
+++ b/share/html/Elements/GotoGroup
@@@ -54,8 -54,8 +54,8 @@@ jQuery(function()
  });
  </script>
  <form name="GroupSearch" method="post" action="<% RT->Config->Get('WebPath') %>/Group/Search.html">
 -  <div class="form-row justify-content-center">
 +  <div class="row mt-2 justify-content-center">
-     <div class="col-4">
+     <div class="col-<% $Cols %>">
        <input type="text" class="form-control" name="GroupString" value="<% $Default %>" data-autocomplete="Groups" data-autocomplete-return="Name" id="autocomplete-GroupString" />
      </div>
      <div class="col-auto">
diff --cc share/html/Ticket/Elements/AddAttachments
index 2658f56922,a4a2cdea3d..846b4260cd
--- a/share/html/Ticket/Elements/AddAttachments
+++ b/share/html/Ticket/Elements/AddAttachments
@@@ -46,8 -46,9 +46,9 @@@
  %#
  %# END BPS TAGGED BLOCK }}}
  % if ( $attachments ) {
 -<div class="form-row attachment"><div class="label col-3"><&|/l&>Attached file</&>:</div>
 +<div class="row mt-2 attachment"><div class="label col-3"><&|/l&>Attached file</&>:</div>
  <div class="value col-9">
+   <span class="current-value">
  % foreach my $attach_name ( sort keys %$attachments ) {
      <div>
          <label for="DeleteAttach-<%$attach_name%>"><% $attach_name %></label>
diff --cc share/html/Ticket/ModifyPeople.html
index afe023229b,3eca336591..2a111a7a3d
--- a/share/html/Ticket/ModifyPeople.html
+++ b/share/html/Ticket/ModifyPeople.html
@@@ -76,9 -76,18 +76,18 @@@ my $all_recipients_checked = (grep { !$
  % for my $addr (sort keys %recips) {
    <li class="list-group-item">
      <input type="hidden" name="autorecipient" value="<% $addr %>">
 -      <div class="custom-control custom-checkbox">
 -        <input type="checkbox" class="custom-control-input" name="checked_recipient" id="checked_recipient_<%$addr%>" value="<%$addr%>" <% $recips{$addr} ? "checked" : "" %>>
 -        <label class="custom-control-label" for="checked_recipient_<%$addr%>"><& /Elements/ShowUser, Address => Email::Address->parse($addr) &>
 +      <div class="form-check">
 +        <input type="checkbox" class="form-check-input" name="checked_recipient" id="checked_recipient_<%$addr%>" value="<%$addr%>" <% $recips{$addr} ? "checked" : "" %>>
-         <label class="form-check-label" for="checked_recipient_<%$addr%>"><& /Elements/ShowUser, Address => Email::Address->parse($addr) &></label>
++        <label class="form-check-label" for="checked_recipient_<%$addr%>"><& /Elements/ShowUser, Address => Email::Address->parse($addr) &>
+ %   if ( !$notify_actor && $addr eq ($session{CurrentUser}->EmailAddress // '') ) {
+     <span class="hints"><i>
+       <&|/l&>RT won't send you mail for ticket updates you make.</&>
+ %     if ( $session{CurrentUser}->HasRight( Right => 'ModifySelf', Object => RT->System ) ) {
+       <&|/l_unsafe, '<a target="_blank" href="' . RT->Config->Get('WebPath') . '/Prefs/Other.html">' . loc('Preferences') . '</a>'&>You can adjust this setting on the [_1] page.</&>
+ %     }
+     </i></span>
+ %   }
+         </label>
        </div>
    </li>
  % }
diff --cc share/html/Tools/PreviewSearches.html
index 0000000000,c892980244..987c692663
mode 000000,100644..100644
--- a/share/html/Tools/PreviewSearches.html
+++ b/share/html/Tools/PreviewSearches.html
@@@ -1,0 -1,161 +1,157 @@@
+ %# BEGIN BPS TAGGED BLOCK {{{
+ %#
+ %# COPYRIGHT:
+ %#
+ %# This software is Copyright (c) 1996-2023 Best Practical Solutions, LLC
+ %#                                          <sales at bestpractical.com>
+ %#
+ %# (Except where explicitly superseded by other copyright notices)
+ %#
+ %#
+ %# LICENSE:
+ %#
+ %# This work is made available to you under the terms of Version 2 of
+ %# the GNU General Public License. A copy of that license should have
+ %# been provided with this software, but in any event can be snarfed
+ %# from www.gnu.org.
+ %#
+ %# This work is distributed in the hope that it will be useful, but
+ %# WITHOUT ANY WARRANTY; without even the implied warranty of
+ %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ %# General Public License for more details.
+ %#
+ %# You should have received a copy of the GNU General Public License
+ %# along with this program; if not, write to the Free Software
+ %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ %# 02110-1301 or visit their web page on the internet at
+ %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
+ %#
+ %#
+ %# CONTRIBUTION SUBMISSION POLICY:
+ %#
+ %# (The following paragraph is not intended to limit the rights granted
+ %# to you to modify and distribute this software under the terms of
+ %# the GNU General Public License and is only of importance to you if
+ %# you choose to contribute your changes and enhancements to the
+ %# community by submitting them to Best Practical Solutions, LLC.)
+ %#
+ %# By intentionally submitting any modifications, corrections or
+ %# derivatives to this work, or any other work intended for use with
+ %# Request Tracker, to Best Practical Solutions, LLC, you confirm that
+ %# you are the copyright holder for those contributions and you grant
+ %# Best Practical Solutions,  LLC a nonexclusive, worldwide, irrevocable,
+ %# royalty-free, perpetual, license to use, copy, create derivative
+ %# works based on those contributions, and sublicense and distribute
+ %# those contributions and any derivatives thereof.
+ %#
+ %# END BPS TAGGED BLOCK }}}
+ <& /Elements/Header, Title => loc('Preview results of search modules') &>
+ <& /Elements/Tabs &>
+ 
+ <&| /Widgets/TitleBox, title => loc('Search Modules') &>
+   <p>
+     <&|/l&>RT can use searches packaged in modules for some utilities like rt-crontool. This page allows you to run the searches from these modules in the web UI to confirm they find the tickets you expect.</&>
+   </p>
+ 
+   <p>
+     <&|/l&>Note that the web version of the search will run as the logged in user. To see exactly the same results as rt-crontool, view the search with the user mapped via the Unix Login field or make sure your user account has the same rights as the user running rt-crontool.</&>
+   </p>
+ </&>
+ 
+ <form method="POST" action="PreviewSearches.html" class="mx-auto max-width-md">
+   <input type="hidden" name="ShowFormat" value="<% $ShowFormat // 0 %>" />
+   <&| /Elements/LabeledValue, Label => loc("Search Module") &>
+     <select name="Search" class="form-control selectpicker">
+ %   for my $module ( @modules ) {
+       <option value="<% $module %>" <% $module eq $Search ? 'selected="selected"' : '' |n%>><% $module %></option>
+ %   }
+     </select>
+   </&>
+ 
+   <&| /Elements/LabeledValue, Label => loc("Search argument") &>
+     <input name="SearchArg" class="form-control" size="60"value="<% $SearchArg %>" />
+   </&>
+ 
+ % if ( $ShowFormat ) {
+   <&| /Elements/LabeledValue, Label => loc("Format") &>
+     <textarea name="Format" class="form-control" rows="8" cols="72"><% $Format %></textarea>
+   </&>
+ % }
+ 
+   <&| /Elements/LabeledValue, Label => loc("Rows per page") &>
+     <& /Elements/SelectResultsPerPage, Name => "Rows", Default => $Rows &>
+   </&>
+ 
 -  <div class="form-row">
 -    <div class="col-12">
 -      <& /Elements/Submit, Label => loc('Search') &>
 -    </div>
 -  </div>
++  <& /Elements/Submit, Label => loc('Search'), FullWidth => 1 &>
+ </form>
+ 
+ % if ( $tickets ) {
+ 
+ <&| /Widgets/TitleBox, title => loc('Found [quant,_1,ticket,tickets]', $tickets->CountAll) &>
+ 
+ <& /Elements/CollectionList,
+     Collection => $tickets,
+     AllowSorting => 1,
+     Rows => $Rows,
+     Page => $Page,
+     Format => $Format,
+     SearchArg => $SearchArg,
+     Search => $Search,
+     PassArguments => [qw(Format Rows Page Order OrderBy Search SearchArg)],
+ &>
+ 
+ </&>
+ % }
+ 
+ % if ( not $ok ) {
+     <p class="mt-3 mb-1 ml-3">
+       <&|/l&>Your search did not run as expected. Confirm your argument is a value expected for the search and the format is correct. RT's logs may have more information.</&>
+     </p>
+ % }
+ 
+ <%INIT>
+ 
+ use List::MoreUtils 'uniq';
+ my @modules;
+ for my $root (@INC) {
+     my $mask = File::Spec->catfile( $root, qw(RT Search *.pm) );
+     for my $file ( glob $mask ) {
+         my ($name) = $file =~ /(\w+).pm$/;
+         next if $name =~ /_(?:Overlay|Vendor|Local)$/;
+         push @modules, "RT::Search::$name";
+     }
+ }
+ 
+ @modules = sort( uniq(@modules) );
+ 
+ my $tickets;
+ my $ok;
+ if ( $Search ) {
+     if ( RT::StaticUtil::RequireModule($Search) ) {
+         $tickets = RT::Tickets->new( $session{CurrentUser} );
+         my $search = $Search->new(
+             TicketsObj  => $tickets,
+             Argument    => $SearchArg,
+             CurrentUser => $session{CurrentUser},
+         );
+         $ok = $search->Prepare();
+     }
+     else {
+         $RT::Logger->error("Couldn't load $Search: $@");
+         Abort( loc( "Couldn't load [_1]", $Search ) );
+     }
+ }
+ else {
+     $ok = 1;
+ }
+ 
+ </%INIT>
+ 
+ <%ARGS>
+ $Search => ''
+ $SearchArg => ''
+ $Format => RT->Config->Get('DefaultSearchResultFormat')
+ $ShowFormat => undef
+ $Page => 1
+ $Rows => 50
+ </%ARGS>

-----------------------------------------------------------------------

Summary of changes:
 .gitignore                                         |    1 +
 Makefile.in                                        |    1 +
 README                                             |   15 +
 configure.ac                                       |    1 +
 docs/UPGRADING-5.0                                 |   23 +-
 docs/automating_rt.pod                             |   15 +
 docs/web_deployment.pod                            |   25 +
 etc/RT_Config.pm.in                                |   32 +-
 etc/initialdata                                    |   32 +
 etc/schema.Oracle                                  |    3 +-
 etc/schema.Pg                                      |    1 +
 etc/schema.SQLite                                  |    3 +-
 etc/schema.mysql                                   |    1 +
 etc/upgrade/5.0.5/content                          |   37 +
 etc/upgrade/5.0.5/schema.Oracle                    |    1 +
 etc/upgrade/5.0.5/schema.Pg                        |    2 +
 etc/upgrade/5.0.5/schema.SQLite                    |    2 +
 etc/upgrade/5.0.5/schema.mysql                     |    2 +
 lib/RT.pm                                          |  144 ++-
 lib/RT/ACE.pm                                      |   32 +-
 lib/RT/Action/Notify.pm                            |    4 +-
 lib/RT/Articles.pm                                 |    5 +
 lib/RT/Assets.pm                                   |    5 +
 lib/RT/Attachment.pm                               |   13 +
 lib/RT/Attachments.pm                              |    2 +-
 lib/RT/Attribute.pm                                |   97 +-
 lib/RT/AuthToken.pm                                |   38 +-
 lib/RT/Authen/Token.pm                             |    9 +
 lib/RT/Catalog.pm                                  |   22 +
 lib/RT/Catalogs.pm                                 |    5 +
 lib/RT/Class.pm                                    |   33 +
 lib/RT/Classes.pm                                  |    5 +
 lib/RT/Config.pm                                   |    3 +
 lib/RT/CustomField.pm                              |   22 +
 lib/RT/CustomFieldValue.pm                         |   10 +-
 lib/RT/CustomFields.pm                             |    5 +
 lib/RT/CustomRole.pm                               |   22 +
 lib/RT/CustomRoles.pm                              |    6 +
 lib/RT/ExternalStorage/AmazonS3.pm                 |   31 +-
 lib/RT/Group.pm                                    |  109 +-
 lib/RT/GroupMember.pm                              |    6 -
 lib/RT/Groups.pm                                   |    5 +
 lib/RT/Handle.pm                                   |  312 ++++-
 lib/RT/Interface/Email.pm                          |    7 +
 lib/RT/Interface/Email/Crypt.pm                    |    5 +-
 lib/RT/Interface/Web.pm                            |   29 +
 lib/RT/Interface/Web/MenuBuilder.pm                |    7 +
 lib/RT/Migrate/Importer.pm                         |  444 ++++++-
 lib/RT/Migrate/Serializer.pm                       |   77 +-
 lib/RT/Migrate/Serializer/JSON.pm                  |   11 +
 lib/RT/ObjectCustomFieldValue.pm                   |   27 +-
 lib/RT/Queue.pm                                    |   23 +
 lib/RT/Queues.pm                                   |    5 +
 lib/RT/REST2.pm                                    |   20 +-
 lib/RT/REST2/Resource/Article.pm                   |   10 +-
 lib/RT/REST2/Resource/Asset.pm                     |    6 +-
 lib/RT/REST2/Resource/Collection.pm                |   28 +-
 lib/RT/REST2/Resource/CustomField.pm               |   15 -
 lib/RT/REST2/Resource/Group.pm                     |   39 +-
 lib/RT/REST2/Resource/GroupMembers.pm              |    2 -
 lib/RT/REST2/Resource/ObjectCustomFieldValue.pm    |    6 -
 lib/RT/REST2/Resource/RT.pm                        |    4 +-
 lib/RT/REST2/Resource/Record.pm                    |   17 +-
 .../REST2/Resource/Record/DeletableByDisabling.pm  |    5 +
 lib/RT/REST2/Resource/Ticket.pm                    |   11 +-
 lib/RT/REST2/Resource/User.pm                      |    3 +-
 lib/RT/Record.pm                                   |   70 +-
 lib/RT/Record/Role/LookupType.pm                   |    6 +-
 lib/RT/Report/Tickets.pm                           |    8 +-
 lib/RT/Scrip.pm                                    |   74 ++
 lib/RT/Search/ActiveTicketsInQueue.pm              |   33 +-
 lib/RT/Search/FromSQL.pm                           |   33 +-
 lib/RT/Search/Simple.pm                            |   39 +-
 lib/RT/SearchBuilder.pm                            |    5 +
 lib/RT/SearchBuilder/Role/Roles.pm                 |    4 +-
 lib/RT/Ticket.pm                                   |    8 +-
 lib/RT/Tickets.pm                                  |   11 +-
 lib/RT/Transaction.pm                              |   48 +-
 lib/RT/Transactions.pm                             |   98 +-
 lib/RT/User.pm                                     |   26 +-
 lib/RT/Users.pm                                    |    5 +
 sbin/rt-dump-initialdata.in                        |   35 +
 sbin/rt-email-expiring-auth-tokens.in              |  325 +++++
 sbin/rt-importer.in                                |   40 +
 sbin/rt-munge-attachments.in                       |    2 +-
 sbin/rt-serializer.in                              |   27 +-
 share/html/Admin/Articles/Classes/Modify.html      |   63 +-
 share/html/Admin/Groups/Members.html               |    2 +
 share/html/Admin/Groups/Modify.html                |   40 +-
 share/html/Admin/Queues/Modify.html                |   57 +-
 share/html/Admin/Scrips/Elements/EditCustomCode    |   40 +
 .../{Actions/Create.html => Scrips/Logging.html}   |   72 +-
 share/html/Admin/Users/Modify.html                 |   59 +-
 share/html/Asset/Search/Bulk.html                  |    4 +-
 share/html/Elements/AuthToken/Create               |  110 +-
 share/html/Elements/AuthToken/List                 |   15 +
 share/html/Elements/CollectionAsTable/Header       |    6 +-
 share/html/Elements/CollectionList                 |    6 +-
 share/html/Elements/ColumnMap                      |    2 +-
 share/html/Elements/EditCustomFieldSelect          |    2 +-
 share/html/Elements/FindAsset                      |   10 +-
 share/html/Elements/FindGroup                      |    2 +-
 share/html/Elements/GotoGroup                      |    3 +-
 share/html/Elements/RT__Scrip/ColumnMap            |   15 +
 share/html/NoAuth/css/elevator-light/AfterMenus    |    3 -
 share/html/NoAuth/css/elevator-light/BeforeNav     |    1 +
 share/html/REST/1.0/NoAuth/mail-gateway            |   13 +-
 share/html/Search/Bulk.html                        |    4 +-
 share/html/Search/Elements/ChartTable              |    4 +-
 share/html/Search/Elements/EditSearches            |    2 +
 share/html/Search/Results.html                     |   10 +-
 share/html/Search/Results.tsv                      |   10 +-
 .../SelfService/Download/CustomFieldValue/dhandler |    2 +-
 .../SelfService/Helpers/Autocomplete/Principals    |    2 +-
 share/html/Ticket/Elements/AddAttachments          |    2 +
 share/html/Ticket/Elements/ShowBasics              |    2 +-
 share/html/Ticket/Elements/UpdateCc                |    3 +
 share/html/Ticket/ModifyPeople.html                |   17 +-
 share/html/Tools/PreviewSearches.html              |  157 +++
 share/po/ar.po                                     | 1311 +++++++++++--------
 share/po/bg.po                                     | 1309 +++++++++++--------
 share/po/ca.po                                     | 1311 +++++++++++--------
 share/po/cs.po                                     | 1311 +++++++++++--------
 share/po/da.po                                     | 1311 +++++++++++--------
 share/po/de.po                                     | 1311 +++++++++++--------
 share/po/el.po                                     | 1311 +++++++++++--------
 share/po/en.po                                     |    8 +-
 share/po/en_GB.po                                  |   30 +-
 share/po/es.po                                     | 1311 +++++++++++--------
 share/po/et.po                                     | 1311 +++++++++++--------
 share/po/eu.po                                     | 1311 +++++++++++--------
 share/po/fa.po                                     | 1311 +++++++++++--------
 share/po/fi.po                                     | 1311 +++++++++++--------
 share/po/fr.po                                     | 1311 +++++++++++--------
 share/po/hr.po                                     | 1311 +++++++++++--------
 share/po/hu.po                                     | 1309 +++++++++++--------
 share/po/id.po                                     | 1309 +++++++++++--------
 share/po/is.po                                     | 1309 +++++++++++--------
 share/po/it.po                                     | 1355 +++++++++++---------
 share/po/ja.po                                     | 1311 +++++++++++--------
 share/po/lt.po                                     | 1311 +++++++++++--------
 share/po/lv.po                                     | 1311 +++++++++++--------
 share/po/nb.po                                     | 1311 +++++++++++--------
 share/po/nl.po                                     | 1311 +++++++++++--------
 share/po/nn.po                                     | 1311 +++++++++++--------
 share/po/pl.po                                     | 1309 +++++++++++--------
 share/po/pt.po                                     | 1311 +++++++++++--------
 share/po/pt_BR.po                                  | 1311 +++++++++++--------
 share/po/pt_PT.po                                  | 1311 +++++++++++--------
 share/po/ro.po                                     | 1309 +++++++++++--------
 share/po/rt.pot                                    | 1303 +++++++++++--------
 share/po/ru.po                                     | 1311 +++++++++++--------
 share/po/sk.po                                     | 1311 +++++++++++--------
 share/po/sl.po                                     | 1311 +++++++++++--------
 share/po/sr.po                                     | 1311 +++++++++++--------
 share/po/sv.po                                     | 1311 +++++++++++--------
 share/po/tr.po                                     | 1311 +++++++++++--------
 share/po/zh_CN.po                                  | 1311 +++++++++++--------
 share/po/zh_TW.po                                  | 1311 +++++++++++--------
 share/static/css/elevator-light/admin.css          |    5 +
 share/static/css/elevator-light/collection.css     |    4 +-
 share/static/css/elevator-light/forms.css          |    6 +-
 share/static/js/lifecycleui-model.js               |    8 +-
 share/static/js/util.js                            |   21 +-
 t/api/date.t                                       |    2 +-
 t/api/initialdata_copy_queue.t                     |  280 ++++
 t/assets/web.t                                     |   23 +-
 t/data/smime/keys/demoCA/cacert.pem                |   68 +-
 t/data/smime/keys/otherCA/cacert.pem               |   93 +-
 t/data/smime/keys/root at example.com.crt             |  104 +-
 t/data/smime/keys/root at example.com.csr             |   33 +-
 t/data/smime/keys/root at example.com.key             |   64 +-
 t/data/smime/keys/root at example.com.pem             |  168 ++-
 t/data/smime/keys/sender at example.com.crt           |  104 +-
 t/data/smime/keys/sender at example.com.csr           |   33 +-
 t/data/smime/keys/sender at example.com.key           |   64 +-
 t/data/smime/keys/sender at example.com.pem           |  168 ++-
 t/data/smime/mails/1-signed.eml                    |  151 +--
 t/data/smime/mails/2-signed-attachment.eml         |  179 ++-
 t/data/smime/mails/3-signed-binary.eml             |  189 ++-
 t/data/smime/mails/4-encrypted-plain.eml           |   81 +-
 t/data/smime/mails/5-encrypted-attachment.eml      |  100 +-
 t/data/smime/mails/6-encrypted-binary.eml          |  112 +-
 t/data/smime/mails/7-signed-encrypted-plain.eml    |  215 ++--
 .../smime/mails/8-signed-encrypted-attachment.eml  |  234 ++--
 t/data/smime/mails/9-signed-encrypted-binary.eml   |  246 ++--
 t/mail/charsets-outgoing-plaintext.t               |    3 +-
 t/mail/charsets-outgoing.t                         |    3 +-
 t/mail/gateway.t                                   |    2 +-
 t/mail/han-encodings.t                             |    2 +-
 t/mail/sendmail-plaintext.t                        |    2 +-
 t/mail/sendmail.t                                  |    2 +-
 t/rest2/article-customfields.t                     |    8 +-
 t/rest2/articles.t                                 |    6 +-
 t/rest2/asset-customfields.t                       |    8 +-
 t/rest2/assets.t                                   |    6 +-
 t/rest2/attachments.t                              |    4 +-
 t/rest2/catalogs.t                                 |    2 +-
 t/rest2/cf-image.t                                 |    2 +-
 t/rest2/classes.t                                  |    4 +-
 t/rest2/customfields.t                             |    6 +-
 t/rest2/group-members.t                            |   25 +-
 t/rest2/queues.t                                   |    8 +-
 t/rest2/searches.t                                 |    2 +-
 t/rest2/tickets.t                                  |    4 +-
 t/rest2/transactions.t                             |    4 +-
 t/rest2/user-customfields.t                        |    6 +-
 t/shredder/03plugin_attachments.t                  |   58 +
 t/ticket/interface.t                               |    2 +-
 t/web/charting.t                                   |   30 +
 t/web/scrips.t                                     |  105 ++
 ...ch_bulk_update_links.t => search_bulk_update.t} |   12 +-
 t/web/smime/outgoing.t                             |    2 +-
 t/web/template.t                                   |    4 +-
 t/web/ticket_role_input.t                          |   42 +
 215 files changed, 33342 insertions(+), 23237 deletions(-)
 create mode 100644 etc/upgrade/5.0.5/content
 create mode 100644 etc/upgrade/5.0.5/schema.Oracle
 create mode 100644 etc/upgrade/5.0.5/schema.Pg
 create mode 100644 etc/upgrade/5.0.5/schema.SQLite
 create mode 100644 etc/upgrade/5.0.5/schema.mysql
 create mode 100644 sbin/rt-email-expiring-auth-tokens.in
 copy share/html/Admin/{Actions/Create.html => Scrips/Logging.html} (58%)
 create mode 100644 share/html/Tools/PreviewSearches.html
 create mode 100644 t/api/initialdata_copy_queue.t
 create mode 100644 t/shredder/03plugin_attachments.t
 rename t/web/{search_bulk_update_links.t => search_bulk_update.t} (93%)


hooks/post-receive
-- 
rt


More information about the rt-commit mailing list