[Rt-commit] r13474 - in rt/3.8/branches/3.8.0-releng: . lib/RT lib/RT/Action lib/RT/Interface lib/RT/Report sbin share/html/Dashboards share/html/Dashboards/Elements share/html/Elements/RT__Ticket share/html/Install share/html/NoAuth/css/web2 share/html/Prefs share/html/Search share/html/Search/Elements share/html/Ticket share/html/Ticket/Elements share/html/Ticket/Graphs share/html/Ticket/Graphs/Elements share/html/Widgets t/mail t/maildigest t/web

jesse at bestpractical.com jesse at bestpractical.com
Fri Jun 20 16:56:18 EDT 2008


Author: jesse
Date: Fri Jun 20 16:56:18 2008
New Revision: 13474

Added:
   rt/3.8/branches/3.8.0-releng/sbin/rt-email-digest.in
      - copied unchanged from r13310, /rt/3.8/branches/3.8.0-releng/sbin/rt-send-digest.in
   rt/3.8/branches/3.8.0-releng/sbin/rt-email-group-admin.in
      - copied, changed from r13310, /rt/3.8/branches/3.8.0-releng/sbin/rt-notify-group-admin.in
   rt/3.8/branches/3.8.0-releng/share/html/Widgets/FinalizeWidgetArguments
   rt/3.8/branches/3.8.0-releng/t/mail/charsets-outgoing.t
Removed:
   rt/3.8/branches/3.8.0-releng/sbin/rt-notify-group-admin.in
   rt/3.8/branches/3.8.0-releng/sbin/rt-send-digest.in
Modified:
   rt/3.8/branches/3.8.0-releng/   (props changed)
   rt/3.8/branches/3.8.0-releng/Makefile.in
   rt/3.8/branches/3.8.0-releng/README
   rt/3.8/branches/3.8.0-releng/config.layout
   rt/3.8/branches/3.8.0-releng/configure.ac
   rt/3.8/branches/3.8.0-releng/lib/RT/Action/NotifyGroup.pm
   rt/3.8/branches/3.8.0-releng/lib/RT/Action/NotifyGroupAsComment.pm
   rt/3.8/branches/3.8.0-releng/lib/RT/Config.pm
   rt/3.8/branches/3.8.0-releng/lib/RT/CurrentUser.pm
   rt/3.8/branches/3.8.0-releng/lib/RT/Dashboard.pm
   rt/3.8/branches/3.8.0-releng/lib/RT/I18N/blank.po
   rt/3.8/branches/3.8.0-releng/lib/RT/I18N/cs.po
   rt/3.8/branches/3.8.0-releng/lib/RT/I18N/da.po
   rt/3.8/branches/3.8.0-releng/lib/RT/I18N/de.po
   rt/3.8/branches/3.8.0-releng/lib/RT/I18N/en.po
   rt/3.8/branches/3.8.0-releng/lib/RT/I18N/es.po
   rt/3.8/branches/3.8.0-releng/lib/RT/I18N/fi.po
   rt/3.8/branches/3.8.0-releng/lib/RT/I18N/fr.po
   rt/3.8/branches/3.8.0-releng/lib/RT/I18N/he.po
   rt/3.8/branches/3.8.0-releng/lib/RT/I18N/hr.po
   rt/3.8/branches/3.8.0-releng/lib/RT/I18N/hu.po
   rt/3.8/branches/3.8.0-releng/lib/RT/I18N/id.po
   rt/3.8/branches/3.8.0-releng/lib/RT/I18N/it.po
   rt/3.8/branches/3.8.0-releng/lib/RT/I18N/ja.po
   rt/3.8/branches/3.8.0-releng/lib/RT/I18N/nl.po
   rt/3.8/branches/3.8.0-releng/lib/RT/I18N/no.po
   rt/3.8/branches/3.8.0-releng/lib/RT/I18N/pl.po
   rt/3.8/branches/3.8.0-releng/lib/RT/I18N/pt_br.po
   rt/3.8/branches/3.8.0-releng/lib/RT/I18N/ru.po
   rt/3.8/branches/3.8.0-releng/lib/RT/I18N/sv.po
   rt/3.8/branches/3.8.0-releng/lib/RT/I18N/tr.po
   rt/3.8/branches/3.8.0-releng/lib/RT/I18N/zh_cn.po
   rt/3.8/branches/3.8.0-releng/lib/RT/I18N/zh_tw.po
   rt/3.8/branches/3.8.0-releng/lib/RT/Installer.pm
   rt/3.8/branches/3.8.0-releng/lib/RT/Interface/Web.pm
   rt/3.8/branches/3.8.0-releng/lib/RT/Report/Tickets.pm
   rt/3.8/branches/3.8.0-releng/lib/RT/SharedSetting.pm
   rt/3.8/branches/3.8.0-releng/lib/RT/Template_Overlay.pm
   rt/3.8/branches/3.8.0-releng/sbin/rt-setup-database.in
   rt/3.8/branches/3.8.0-releng/share/html/Dashboards/Elements/SelectPrivacy
   rt/3.8/branches/3.8.0-releng/share/html/Dashboards/Elements/Tabs
   rt/3.8/branches/3.8.0-releng/share/html/Dashboards/Modify.html
   rt/3.8/branches/3.8.0-releng/share/html/Elements/RT__Ticket/ColumnMap
   rt/3.8/branches/3.8.0-releng/share/html/Install/Basics.html
   rt/3.8/branches/3.8.0-releng/share/html/Install/DatabaseDetails.html
   rt/3.8/branches/3.8.0-releng/share/html/Install/DatabaseType.html
   rt/3.8/branches/3.8.0-releng/share/html/Install/Emails.html
   rt/3.8/branches/3.8.0-releng/share/html/Install/Finish.html
   rt/3.8/branches/3.8.0-releng/share/html/Install/Initialize.html
   rt/3.8/branches/3.8.0-releng/share/html/Install/Sendmail.html
   rt/3.8/branches/3.8.0-releng/share/html/Install/autohandler
   rt/3.8/branches/3.8.0-releng/share/html/Install/index.html
   rt/3.8/branches/3.8.0-releng/share/html/NoAuth/css/web2/forms.css
   rt/3.8/branches/3.8.0-releng/share/html/NoAuth/css/web2/msie.css
   rt/3.8/branches/3.8.0-releng/share/html/NoAuth/css/web2/ticket-search.css
   rt/3.8/branches/3.8.0-releng/share/html/Prefs/Other.html
   rt/3.8/branches/3.8.0-releng/share/html/Search/Chart
   rt/3.8/branches/3.8.0-releng/share/html/Search/Elements/Chart
   rt/3.8/branches/3.8.0-releng/share/html/Search/Elements/PickCriteria
   rt/3.8/branches/3.8.0-releng/share/html/Ticket/Display.html
   rt/3.8/branches/3.8.0-releng/share/html/Ticket/Elements/Tabs
   rt/3.8/branches/3.8.0-releng/share/html/Ticket/Graphs/Elements/ShowGraph
   rt/3.8/branches/3.8.0-releng/share/html/Ticket/Graphs/dhandler
   rt/3.8/branches/3.8.0-releng/share/html/Widgets/BulkEdit
   rt/3.8/branches/3.8.0-releng/t/mail/gnupg-incoming.t
   rt/3.8/branches/3.8.0-releng/t/maildigest/attributes.t
   rt/3.8/branches/3.8.0-releng/t/web/dashboards.t

Log:
 r33121 at 31b (orig r13413):  ruz | 2008-06-18 23:09:24 -0400
 * handle better empty content when type is text/html
 * <br /> can be <br type="_moz" />
 r33122 at 31b (orig r13414):  ruz | 2008-06-19 07:32:46 -0400
 * add charting by Creator and LastUpdatedBy
 r33123 at 31b (orig r13415):  ruz | 2008-06-19 08:55:10 -0400
 * missed another array with metadata, should be generalized
 r33124 at 31b (orig r13416):  ruz | 2008-06-19 09:00:49 -0400
 * add charting by watchers
 r33125 at 31b (orig r13417):  sunnavy | 2008-06-19 09:48:13 -0400
 more #loc tag
 r33126 at 31b (orig r13418):  sunnavy | 2008-06-19 10:05:57 -0400
 added loc to titles in installer
 r33127 at 31b (orig r13419):  ruz | 2008-06-19 10:12:09 -0400
 * Queue returns id when we need object
 r33128 at 31b (orig r13420):  ruz | 2008-06-19 10:19:11 -0400
 * s/Preview/Show/, that's the only way to view a DB
 r33129 at 31b (orig r13421):  sunnavy | 2008-06-19 10:33:00 -0400
 text fixes
 r33130 at 31b (orig r13422):  sunnavy | 2008-06-19 10:38:11 -0400
 wrapped <&|/l&></&> for installer texts
 r33131 at 31b (orig r13423):  sunnavy | 2008-06-19 10:44:35 -0400
 keep rt_pass if people already set it up
 r33132 at 31b (orig r13424):  sunnavy | 2008-06-19 11:33:00 -0400
 extract sub finalize_meta to /Widgets/FinalizeWidgetArguments
 r33133 at 31b (orig r13425):  sunnavy | 2008-06-19 11:35:36 -0400
 added call to /Widgets/FinalizeWidgetArguments in BulkEdit
 r33135 at 31b (orig r13427):  kyoki | 2008-06-19 13:34:34 -0400
  r23149 at nyx:  kyoki | 2008-06-19 13:34:21 -0400
  Search/Build.html looks more reasonable
 
 r33143 at 31b (orig r13428):  sunnavy | 2008-06-19 14:24:06 -0400
 cleaned Install/autohandler, and we need to set up charset there too
 r33144 at 31b (orig r13429):  kyoki | 2008-06-19 14:27:24 -0400
  r23151 at nyx:  kyoki | 2008-06-19 14:26:43 -0400
  RT-Ticket: 9673
  RT-Status: Resolved
  RT-Update: Correspond
  added width to css properties. labels now right justified.
 
 r33145 at 31b (orig r13430):  kyoki | 2008-06-19 15:12:50 -0400
  r23155 at nyx:  kyoki | 2008-06-19 15:12:14 -0400
  fixed dashboards.t - replaced all instances of "Preview" with "Show"
 
 r33146 at 31b (orig r13431):  alexmv | 2008-06-19 15:58:39 -0400
  r33259 at kohr-ah:  chmrr | 2008-06-19 15:58:02 -0400
   * Update Project-Id-Version on .po files
 
 r33148 at 31b (orig r13433):  sunnavy | 2008-06-19 16:39:00 -0400
 don't set default lang to en if ::SystemUser in undef: we need undef to autodect lang
 r33149 at 31b (orig r13434):  ruz | 2008-06-19 18:17:21 -0400
 * perl 5.10's namespace entries may have references
   to other references, skip them, those are used for
   new implementation of lightweight constants
 r33150 at 31b (orig r13435):  alexmv | 2008-06-19 18:34:27 -0400
  r33273 at kohr-ah:  chmrr | 2008-06-19 18:25:54 -0400
   * Warnings avoidance
  r33274 at kohr-ah:  chmrr | 2008-06-19 18:31:35 -0400
   * Revert overzealous commit
  r33275 at kohr-ah:  chmrr | 2008-06-19 18:33:57 -0400
   * Factor out and use signature-only-comment code on ticket create, too
 
 r33152 at 31b (orig r13437):  ruz | 2008-06-19 18:59:55 -0400
 * if we're upgrading from 3.7.85 then we shouldn't apply etc/upgrade/3.7.85
 r33153 at 31b (orig r13438):  ruz | 2008-06-19 19:09:47 -0400
 * actually test return value of yesno function
 r33154 at 31b (orig r13439):  ruz | 2008-06-19 19:10:28 -0400
 * report some message when from and to versions are equal
 r33160 at 31b (orig r13445):  ruz | 2008-06-20 07:59:40 -0400
 * use mail catcher from RT::Test
 r33161 at 31b (orig r13446):  ruz | 2008-06-20 11:05:09 -0400
 * add tests for non-ascii subjects, non-ascii subject tags,
   adjusting subject in templates (like in autoreply) and doing
   it using non-ascii chars.
 * test as many combinations of those as possible
 r33162 at 31b (orig r13447):  ruz | 2008-06-20 11:09:48 -0400
 * don't fool yourself, it never worked that way.
   output_to_core is boolean option. that's it.
 r33163 at 31b (orig r13448):  ruz | 2008-06-20 11:11:33 -0400
 * if MIME parser can not cope with utf8 then drop off utf8 flag
   where you want to when _ParseContent has nothing to do with
   MIME parser
 r33164 at 31b (orig r13449):  ruz | 2008-06-20 11:13:54 -0400
 * parse_data methdo open our scalar as stream without IO
   layears when we want to leave them, so open scalar
   ourself and use ->parse method instead
 r33165 at 31b (orig r13450):  sartak | 2008-06-20 12:36:40 -0400
  r62971 at dhcp32:  sartak | 2008-06-20 11:36:26 -0500
  Use selected="selected" on the dashboard's current privacy
 
 r33166 at 31b (orig r13451):  sartak | 2008-06-20 12:45:05 -0400
  r62973 at dhcp32:  sartak | 2008-06-20 11:44:52 -0500
  Don't escape the quotes in dashboard-privacy's selected="selected"
 
 r33167 at 31b (orig r13452):  sartak | 2008-06-20 12:52:44 -0400
  r62975 at dhcp32:  sartak | 2008-06-20 11:52:35 -0500
  Use RT::System-1 instead of falling back to RT::System
 
 r33169 at 31b (orig r13453):  falcone | 2008-06-20 13:06:14 -0400
  r34647 at ketch:  falcone | 2008-06-20 13:05:43 -0400
  * make it a little clearer that this Email setting is only for reports,
    not for Ticket mail that RT sends you
 
 r33171 at 31b (orig r13454):  alexmv | 2008-06-20 13:43:24 -0400
  r33295 at kohr-ah:  chmrr | 2008-06-20 13:27:34 -0400
   * Fix a typo -- that code path must never have worked
 
 r33172 at 31b (orig r13455):  alexmv | 2008-06-20 13:43:29 -0400
  r33296 at kohr-ah:  chmrr | 2008-06-20 13:28:23 -0400
   * Perltidy
 
 r33173 at 31b (orig r13456):  alexmv | 2008-06-20 13:43:35 -0400
  r33297 at kohr-ah:  chmrr | 2008-06-20 13:43:04 -0400
   * Unify UpdateTimeWorked adjustment into ProcessUpdateMessage
 
 r33177 at 31b (orig r13459):  alexmv | 2008-06-20 14:09:56 -0400
  r33305 at kohr-ah:  chmrr | 2008-06-20 14:09:47 -0400
   * Code reuse for MIME::Parser setup
 
 r33180 at 31b (orig r13462):  sartak | 2008-06-20 14:23:21 -0400
  r62978 at dhcp184:  sartak | 2008-06-20 12:54:43 -0500
  Don't try to update the dashboard's name if it hasn't changed
 
 r33181 at 31b (orig r13463):  sartak | 2008-06-20 14:23:31 -0400
  r62979 at dhcp184:  sartak | 2008-06-20 13:22:09 -0500
  Update the privacy in Dashboard->UpdateAttribute
 
 r33184 at 31b (orig r13466):  falcone | 2008-06-20 14:45:28 -0400
  r34664 at ketch:  falcone | 2008-06-20 14:45:14 -0400
  * actually does apply to ticket mail
 
 r33185 at 31b (orig r13467):  sartak | 2008-06-20 15:00:05 -0400
  r62995 at dhcp184:  sartak | 2008-06-20 13:59:37 -0500
  Fix the dashboard tests that looked at the wrong form value
 
 r33188 at 31b (orig r13470):  ruz | 2008-06-20 15:52:17 -0400
 * revert template changes as some tests fail
 r33189 at 31b (orig r13471):  jesse | 2008-06-20 16:22:48 -0400
 * Make the inplace layout actually inplace
 r33190 at 31b (orig r13472):  ruz | 2008-06-20 16:36:59 -0400
 * delete last code that was handling Type of graphs
 r33191 at 31b (orig r13473):  jesse | 2008-06-20 16:50:34 -0400
 renamed rt-notify-group-admin and rt-send-digest to rt-email-digest and rt-email-group-admin for consistency
 


Modified: rt/3.8/branches/3.8.0-releng/Makefile.in
==============================================================================
--- rt/3.8/branches/3.8.0-releng/Makefile.in	(original)
+++ rt/3.8/branches/3.8.0-releng/Makefile.in	Fri Jun 20 16:56:18 2008
@@ -157,13 +157,13 @@
 
 SYSTEM_BINARIES		=	rt-dump-database \
 				rt-setup-database \
-				rt-send-digest \
+				rt-email-digest \
 				rt-email-dashboards \
+				rt-email-group-admin \
 				rt-server \
 				rt-test-dependencies \
 				rt-clean-sessions \
-				rt-shredder \
-				rt-notify-group-admin
+				rt-shredder
 
 
 ETC_FILES		=	acl.Informix \

Modified: rt/3.8/branches/3.8.0-releng/README
==============================================================================
--- rt/3.8/branches/3.8.0-releng/README	(original)
+++ rt/3.8/branches/3.8.0-releng/README	Fri Jun 20 16:56:18 2008
@@ -179,8 +179,8 @@
 
         crontab -e    # as the RT administrator (probably root)
         # insert the following lines:
-        0 0 * * * /opt/rt3/sbin/rt-send-digest -m daily
-        0 0 * * 0 /opt/rt3/sbin/rt-send-digest -m weekly
+        0 0 * * * /opt/rt3/sbin/rt-email-digest -m daily
+        0 0 * * 0 /opt/rt3/sbin/rt-email-digest -m weekly
         0 * * * * /opt/rt3/sbin/rt-email-dashboards
 
 

Modified: rt/3.8/branches/3.8.0-releng/config.layout
==============================================================================
--- rt/3.8/branches/3.8.0-releng/config.layout	(original)
+++ rt/3.8/branches/3.8.0-releng/config.layout	Fri Jun 20 16:56:18 2008
@@ -38,7 +38,7 @@
   customlibdir:		${customdir}/lib
 </Layout>
 <Layout inplace>
-  prefix:		`pwd`
+  prefix:		.
   exec_prefix:		${prefix}
   bindir:		${exec_prefix}/bin
   sbindir:		${exec_prefix}/sbin

Modified: rt/3.8/branches/3.8.0-releng/configure.ac
==============================================================================
--- rt/3.8/branches/3.8.0-releng/configure.ac	(original)
+++ rt/3.8/branches/3.8.0-releng/configure.ac	Fri Jun 20 16:56:18 2008
@@ -116,11 +116,11 @@
 dnl DB_TYPE
 AC_ARG_WITH(db-type,
 	    AC_HELP_STRING([--with-db-type=TYPE],
-	    		   [sort of database RT will use (default: mysql) (mysql, Pg, Oracle, Informix and SQLite are valid)]), 
+	    		   [sort of database RT will use (default: mysql) (mysql, Pg, Oracle and SQLite are valid)]), 
             DB_TYPE=$withval,
             DB_TYPE=mysql)
 if test "$DB_TYPE" != 'mysql' -a "$DB_TYPE" != 'Pg' -a "$DB_TYPE" != 'SQLite' -a "$DB_TYPE" != 'Oracle' -a "$DB_TYPE" != 'Informix' -a "$DB_TYPE" != 'Sybase' ; then
-	AC_MSG_ERROR([Only Oracle, Informix, Pg, mysql and SQLite are valid db types])
+	AC_MSG_ERROR([Only Oracle, Pg, mysql and SQLite are valid db types])
 fi
 AC_SUBST(DB_TYPE)
 
@@ -389,12 +389,12 @@
                  sbin/rt-dump-database
                  sbin/rt-setup-database
                  sbin/rt-test-dependencies
-                 sbin/rt-send-digest
+                 sbin/rt-email-digest
                  sbin/rt-email-dashboards
                  sbin/rt-clean-sessions
                  sbin/rt-shredder
                  sbin/rt-validator
-                 sbin/rt-notify-group-admin
+                 sbin/rt-email-group-admin
                  sbin/rt-server
                  bin/mason_handler.fcgi
                  bin/mason_handler.scgi

Modified: rt/3.8/branches/3.8.0-releng/lib/RT/Action/NotifyGroup.pm
==============================================================================
--- rt/3.8/branches/3.8.0-releng/lib/RT/Action/NotifyGroup.pm	(original)
+++ rt/3.8/branches/3.8.0-releng/lib/RT/Action/NotifyGroup.pm	Fri Jun 20 16:56:18 2008
@@ -53,7 +53,7 @@
 =head1 DESCRIPTION
 
 RT action module that allow you to notify particular groups and/or users.
-Distribution is shipped with C<rt-notify-group-admin> script that
+Distribution is shipped with C<rt-email-group-admin> script that
 is command line tool for managing NotifyGroup scrip actions. For more
 more info see its documentation.
 
@@ -188,7 +188,7 @@
 
 Ruslan U. Zakirov E<lt>ruz at bestpractical.comE<gt>
 
-L<RT::Action::NotifyGroupAsComment>, F<rt-notify-group-admin>
+L<RT::Action::NotifyGroupAsComment>, F<rt-email-group-admin>
 
 =cut
 

Modified: rt/3.8/branches/3.8.0-releng/lib/RT/Action/NotifyGroupAsComment.pm
==============================================================================
--- rt/3.8/branches/3.8.0-releng/lib/RT/Action/NotifyGroupAsComment.pm	(original)
+++ rt/3.8/branches/3.8.0-releng/lib/RT/Action/NotifyGroupAsComment.pm	Fri Jun 20 16:56:18 2008
@@ -53,7 +53,7 @@
 =head1 DESCRIPTION
 
 This is subclass of L<RT::Action::NotifyGroup> that send comments instead of replies.
-See C<rt-notify-group-admin> and L<RT::Action::NotifyGroup> docs for more info.
+See C<rt-email-group-admin> and L<RT::Action::NotifyGroup> docs for more info.
 
 =cut
 

Modified: rt/3.8/branches/3.8.0-releng/lib/RT/Config.pm
==============================================================================
--- rt/3.8/branches/3.8.0-releng/lib/RT/Config.pm	(original)
+++ rt/3.8/branches/3.8.0-releng/lib/RT/Config.pm	Fri Jun 20 16:56:18 2008
@@ -619,7 +619,7 @@
         no strict 'refs';
         my $name = undef;
 
-        # scan $pack name table(hash)
+        # scan $pack's nametable(hash)
         foreach my $k ( keys %{$pack} ) {
 
             # hash for main:: has reference on itself
@@ -639,8 +639,10 @@
             next unless $entry;
 
             # get entry for type we are looking for
-            # XXX skip scalar references. Otherwie 5.10 goes boom
-            return if ref($entry) eq 'SCALAR';  
+            # XXX skip references to scalars or other references.
+            # Otherwie 5.10 goes boom. may be we should skip any
+            # reference
+            return if ref($entry) eq 'SCALAR' || ref($entry) eq 'REF';
             my $entry_ref = *{$entry}{ ref($ref) };
             next unless $entry_ref;
 

Modified: rt/3.8/branches/3.8.0-releng/lib/RT/CurrentUser.pm
==============================================================================
--- rt/3.8/branches/3.8.0-releng/lib/RT/CurrentUser.pm	(original)
+++ rt/3.8/branches/3.8.0-releng/lib/RT/CurrentUser.pm	Fri Jun 20 16:56:18 2008
@@ -216,12 +216,7 @@
         || !UNIVERSAL::can( $self->{'LangHandle'}, 'maketext' )
         || @_ )
     {
-        if (   !$RT::SystemUser
-            || !$RT::SystemUser->id
-            || ( $self->id || 0 ) == $RT::SystemUser->id ) {
-            @_ = qw(en-US);
-        }
-        elsif ( my $lang = $self->Lang ) {
+        if ( my $lang = $self->Lang ) {
             push @_, $lang;
         }
 

Modified: rt/3.8/branches/3.8.0-releng/lib/RT/Dashboard.pm
==============================================================================
--- rt/3.8/branches/3.8.0-releng/lib/RT/Dashboard.pm	(original)
+++ rt/3.8/branches/3.8.0-releng/lib/RT/Dashboard.pm	Fri Jun 20 16:56:18 2008
@@ -115,7 +115,22 @@
     }
 
     if ($status && $args->{'Name'}) {
-        ($status, $msg) = $self->{'Attribute'}->SetDescription($args->{'Name'});
+        ($status, $msg) = $self->{'Attribute'}->SetDescription($args->{'Name'})
+            unless $self->Name eq $args->{'Name'};
+    }
+
+    if ($status && $args->{'Privacy'}) {
+        my ($new_obj_type, $new_obj_id) = split /-/, $args->{'Privacy'};
+        my ($obj_type, $obj_id) = split /-/, $self->Privacy;
+
+        my $attr = $self->{'Attribute'};
+        if ($new_obj_type ne $obj_type) {
+            ($status, $msg) = $attr->SetObjectType($new_obj_type);
+        }
+        if ($status && $new_obj_id != $obj_id ) {
+            ($status, $msg) = $attr->SetObjectId($new_obj_id);
+        }
+        $self->{'Privacy'} = $args->{'Privacy'} if $status;
     }
 
     return ($status, $msg);

Modified: rt/3.8/branches/3.8.0-releng/lib/RT/I18N/blank.po
==============================================================================
--- rt/3.8/branches/3.8.0-releng/lib/RT/I18N/blank.po	(original)
+++ rt/3.8/branches/3.8.0-releng/lib/RT/I18N/blank.po	Fri Jun 20 16:56:18 2008
@@ -260,7 +260,7 @@
 msgid "%1 is a tool to act on tickets from an external scheduling tool, such as cron."
 msgstr ""
 
-#: sbin/rt-send-digest:69
+#: sbin/rt-email-digest:69
 #. ($0)
 msgid "%1 is a utility, meant to be run from cron, that dispatches all deferred RT notifications as a per-user digest."
 msgstr ""
@@ -2113,7 +2113,7 @@
 msgid "Enter up to %1 values with autocompletion"
 msgstr ""
 
-#: sbin/rt-send-digest:80 share/html/Elements/Login:78 share/html/SelfService/Error.html:48 share/html/SelfService/Error.html:49
+#: sbin/rt-email-digest:80 share/html/Elements/Login:78 share/html/SelfService/Error.html:48 share/html/SelfService/Error.html:49
 msgid "Error"
 msgstr ""
 
@@ -2205,11 +2205,11 @@
 msgid "Failed to load object for %1"
 msgstr ""
 
-#: sbin/rt-send-digest:143
+#: sbin/rt-email-digest:143
 msgid "Failed to load template"
 msgstr ""
 
-#: sbin/rt-send-digest:151
+#: sbin/rt-email-digest:151
 msgid "Failed to parse template"
 msgstr ""
 
@@ -3105,7 +3105,7 @@
 msgid "Message could not be recorded"
 msgstr ""
 
-#: sbin/rt-send-digest:268
+#: sbin/rt-email-digest:268
 msgid "Message for user"
 msgstr ""
 
@@ -4226,11 +4226,11 @@
 msgid "Principal %1 not found."
 msgstr ""
 
-#: sbin/rt-send-digest:73
+#: sbin/rt-email-digest:73
 msgid "Print the resulting digest messages to STDOUT; don't mail them. Do not mark them as sent"
 msgstr ""
 
-#: sbin/rt-send-digest:75
+#: sbin/rt-email-digest:75
 msgid "Print this message"
 msgstr ""
 
@@ -5074,7 +5074,7 @@
 msgid "Skip Menu"
 msgstr ""
 
-#: sbin/rt-send-digest:264
+#: sbin/rt-email-digest:264
 msgid "Skipping disabled user"
 msgstr ""
 
@@ -5094,7 +5094,7 @@
 msgid "Sorting"
 msgstr ""
 
-#: sbin/rt-send-digest:71
+#: sbin/rt-email-digest:71
 msgid "Specify whether this is a daily or weekly run."
 msgstr ""
 
@@ -5897,7 +5897,7 @@
 msgid "Upload your changes"
 msgstr ""
 
-#: sbin/rt-send-digest:65
+#: sbin/rt-email-digest:65
 msgid "Usage: "
 msgstr ""
 

Modified: rt/3.8/branches/3.8.0-releng/lib/RT/I18N/cs.po
==============================================================================
--- rt/3.8/branches/3.8.0-releng/lib/RT/I18N/cs.po	(original)
+++ rt/3.8/branches/3.8.0-releng/lib/RT/I18N/cs.po	Fri Jun 20 16:56:18 2008
@@ -1,7 +1,7 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: RT 3.6.x\n"
+"Project-Id-Version: RT 3.8.x\n"
 "POT-Creation-Date: 2002-05-02 11:36+0800\n"
 "PO-Revision-Date: 2008-03-27 19:75+0200\n"
 "Last-Translator: Daniel Kastner <kastner at mediso-art.cz>\n"
@@ -280,7 +280,7 @@
 msgid "%1 is a tool to act on tickets from an external scheduling tool, such as cron."
 msgstr "%1 je nástroj zpracující požadavky z vnějšího plánovacího nástroje jako je cron"
 
-#: sbin/rt-send-digest:69
+#: sbin/rt-email-digest:69
 #. ($0)
 msgid "%1 is a utility, meant to be run from cron, that dispatches all deferred RT notifications as a per-user digest."
 msgstr ""
@@ -2225,7 +2225,7 @@
 msgid "Enter up to %1 values with autocompletion"
 msgstr ""
 
-#: sbin/rt-send-digest:80 share/html/Elements/Login:78 share/html/SelfService/Error.html:48 share/html/SelfService/Error.html:49
+#: sbin/rt-email-digest:80 share/html/Elements/Login:78 share/html/SelfService/Error.html:48 share/html/SelfService/Error.html:49
 msgid "Error"
 msgstr "Chyba"
 
@@ -2325,11 +2325,11 @@
 msgid "Failed to load object for %1"
 msgstr "Nelze načíst objekt pro %1"
 
-#: sbin/rt-send-digest:143
+#: sbin/rt-email-digest:143
 msgid "Failed to load template"
 msgstr ""
 
-#: sbin/rt-send-digest:151
+#: sbin/rt-email-digest:151
 msgid "Failed to parse template"
 msgstr ""
 
@@ -3274,7 +3274,7 @@
 msgid "Message could not be recorded"
 msgstr "Zpráva nemůže být zaznamenána"
 
-#: sbin/rt-send-digest:268
+#: sbin/rt-email-digest:268
 msgid "Message for user"
 msgstr ""
 
@@ -4451,11 +4451,11 @@
 msgid "Principal %1 not found."
 msgstr "Uživatel %1 nenalezen."
 
-#: sbin/rt-send-digest:73
+#: sbin/rt-email-digest:73
 msgid "Print the resulting digest messages to STDOUT; don't mail them. Do not mark them as sent"
 msgstr ""
 
-#: sbin/rt-send-digest:75
+#: sbin/rt-email-digest:75
 msgid "Print this message"
 msgstr ""
 
@@ -5351,7 +5351,7 @@
 msgid "Skip Menu"
 msgstr "Přeskočit menu"
 
-#: sbin/rt-send-digest:264
+#: sbin/rt-email-digest:264
 msgid "Skipping disabled user"
 msgstr ""
 
@@ -5371,7 +5371,7 @@
 msgid "Sorting"
 msgstr ""
 
-#: sbin/rt-send-digest:71
+#: sbin/rt-email-digest:71
 msgid "Specify whether this is a daily or weekly run."
 msgstr ""
 
@@ -6202,7 +6202,7 @@
 msgid "Upload your changes"
 msgstr "Načíst vaše změny"
 
-#: sbin/rt-send-digest:65
+#: sbin/rt-email-digest:65
 msgid "Usage: "
 msgstr ""
 

Modified: rt/3.8/branches/3.8.0-releng/lib/RT/I18N/da.po
==============================================================================
--- rt/3.8/branches/3.8.0-releng/lib/RT/I18N/da.po	(original)
+++ rt/3.8/branches/3.8.0-releng/lib/RT/I18N/da.po	Fri Jun 20 16:56:18 2008
@@ -1,6 +1,6 @@
 msgid ""
 msgstr ""
-"Project-Id-Version: \n"
+"Project-Id-Version: RT 3.8.x\n"
 "POT-Creation-Date: \n"
 "PO-Revision-Date: 2007-03-16 13:02+0100\n"
 "Last-Translator: Heidi Senderovitz\n"
@@ -343,7 +343,7 @@
 msgid "%1 is a tool to act on tickets from an external scheduling tool, such as cron."
 msgstr "%1 er et værktøj, der arbejder med sager fra et bestemt planlægningsværktøj som f.eks. cron."
 
-#: sbin/rt-send-digest:69
+#: sbin/rt-email-digest:69
 #. ($0)
 msgid "%1 is a utility, meant to be run from cron, that dispatches all deferred RT notifications as a per-user digest."
 msgstr ""
@@ -2690,7 +2690,7 @@
 msgid "Enter up to %1 values with autocompletion"
 msgstr ""
 
-#: sbin/rt-send-digest:80 share/html/Elements/Login:78 share/html/SelfService/Error.html:48 share/html/SelfService/Error.html:49
+#: sbin/rt-email-digest:80 share/html/Elements/Login:78 share/html/SelfService/Error.html:48 share/html/SelfService/Error.html:49
 msgid "Error"
 msgstr "Fejl"
 
@@ -2806,11 +2806,11 @@
 msgid "Failed to load object for %1"
 msgstr "Kunne ikke indlæse objekt for %1"
 
-#: sbin/rt-send-digest:143
+#: sbin/rt-email-digest:143
 msgid "Failed to load template"
 msgstr ""
 
-#: sbin/rt-send-digest:151
+#: sbin/rt-email-digest:151
 msgid "Failed to parse template"
 msgstr ""
 
@@ -3858,7 +3858,7 @@
 msgid "Message could not be recorded"
 msgstr "Besked kunne ikke gemmes"
 
-#: sbin/rt-send-digest:268
+#: sbin/rt-email-digest:268
 msgid "Message for user"
 msgstr ""
 
@@ -5175,11 +5175,11 @@
 msgid "Principal %1 not found."
 msgstr "Principal %1 ikke fundet."
 
-#: sbin/rt-send-digest:73
+#: sbin/rt-email-digest:73
 msgid "Print the resulting digest messages to STDOUT; don't mail them. Do not mark them as sent"
 msgstr ""
 
-#: sbin/rt-send-digest:75
+#: sbin/rt-email-digest:75
 msgid "Print this message"
 msgstr ""
 
@@ -6239,7 +6239,7 @@
 msgid "Skip Menu"
 msgstr "Spring menu over"
 
-#: sbin/rt-send-digest:264
+#: sbin/rt-email-digest:264
 msgid "Skipping disabled user"
 msgstr ""
 
@@ -6271,7 +6271,7 @@
 msgid "Sorting"
 msgstr ""
 
-#: sbin/rt-send-digest:71
+#: sbin/rt-email-digest:71
 msgid "Specify whether this is a daily or weekly run."
 msgstr ""
 
@@ -7266,7 +7266,7 @@
 msgid "Upload your changes"
 msgstr "Overfør dine ændringer"
 
-#: sbin/rt-send-digest:65
+#: sbin/rt-email-digest:65
 msgid "Usage: "
 msgstr ""
 

Modified: rt/3.8/branches/3.8.0-releng/lib/RT/I18N/de.po
==============================================================================
--- rt/3.8/branches/3.8.0-releng/lib/RT/I18N/de.po	(original)
+++ rt/3.8/branches/3.8.0-releng/lib/RT/I18N/de.po	Fri Jun 20 16:56:18 2008
@@ -1,6 +1,6 @@
 msgid ""
 msgstr ""
-"Project-Id-Version: \n"
+"Project-Id-Version: RT 3.8.x\n"
 "POT-Creation-Date: \n"
 "PO-Revision-Date: 2006-12-20 15:50+0100\n"
 "Last-Translator: Torsten Brumm <tob at brummix.de>\n"
@@ -275,7 +275,7 @@
 msgid "%1 is a tool to act on tickets from an external scheduling tool, such as cron."
 msgstr "%1 ist ein Tool um mit Tickets von externen Programmen zu arbeiten, wie zum Beispiel cron."
 
-#: sbin/rt-send-digest:69
+#: sbin/rt-email-digest:69
 #. ($0)
 msgid "%1 is a utility, meant to be run from cron, that dispatches all deferred RT notifications as a per-user digest."
 msgstr ""
@@ -2246,7 +2246,7 @@
 msgid "Enter up to %1 values with autocompletion"
 msgstr ""
 
-#: sbin/rt-send-digest:80 share/html/Elements/Login:78 share/html/SelfService/Error.html:48 share/html/SelfService/Error.html:49
+#: sbin/rt-email-digest:80 share/html/Elements/Login:78 share/html/SelfService/Error.html:48 share/html/SelfService/Error.html:49
 msgid "Error"
 msgstr "Fehler"
 
@@ -2348,11 +2348,11 @@
 msgid "Failed to load object for %1"
 msgstr "Objekt %1 konnte nicht geladen werden"
 
-#: sbin/rt-send-digest:143
+#: sbin/rt-email-digest:143
 msgid "Failed to load template"
 msgstr ""
 
-#: sbin/rt-send-digest:151
+#: sbin/rt-email-digest:151
 msgid "Failed to parse template"
 msgstr ""
 
@@ -3304,7 +3304,7 @@
 msgid "Message could not be recorded"
 msgstr "Nachricht konnte nicht gespeichert werden"
 
-#: sbin/rt-send-digest:268
+#: sbin/rt-email-digest:268
 msgid "Message for user"
 msgstr ""
 
@@ -4481,11 +4481,11 @@
 msgid "Principal %1 not found."
 msgstr "Rolle %1 nicht gefunden."
 
-#: sbin/rt-send-digest:73
+#: sbin/rt-email-digest:73
 msgid "Print the resulting digest messages to STDOUT; don't mail them. Do not mark them as sent"
 msgstr ""
 
-#: sbin/rt-send-digest:75
+#: sbin/rt-email-digest:75
 msgid "Print this message"
 msgstr ""
 
@@ -5393,7 +5393,7 @@
 msgid "Skip Menu"
 msgstr "Überspringe Menü"
 
-#: sbin/rt-send-digest:264
+#: sbin/rt-email-digest:264
 msgid "Skipping disabled user"
 msgstr ""
 
@@ -5413,7 +5413,7 @@
 msgid "Sorting"
 msgstr ""
 
-#: sbin/rt-send-digest:71
+#: sbin/rt-email-digest:71
 msgid "Specify whether this is a daily or weekly run."
 msgstr ""
 
@@ -6268,7 +6268,7 @@
 msgid "Upload your changes"
 msgstr "Änderungen hochladen"
 
-#: sbin/rt-send-digest:65
+#: sbin/rt-email-digest:65
 msgid "Usage: "
 msgstr ""
 

Modified: rt/3.8/branches/3.8.0-releng/lib/RT/I18N/en.po
==============================================================================
--- rt/3.8/branches/3.8.0-releng/lib/RT/I18N/en.po	(original)
+++ rt/3.8/branches/3.8.0-releng/lib/RT/I18N/en.po	Fri Jun 20 16:56:18 2008
@@ -1,7 +1,7 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: RT 3.5.x\n"
+"Project-Id-Version: RT 3.8.x\n"
 "PO-Revision-Date: 2005-10-03 13:44-0400\n"
 "Last-Translator: rt-devel <rt-devel at lists.bestpractical.com>\n"
 "Language-Team: rt-devel <rt-devel at lists.bestpractical.com>\n"

Modified: rt/3.8/branches/3.8.0-releng/lib/RT/I18N/es.po
==============================================================================
--- rt/3.8/branches/3.8.0-releng/lib/RT/I18N/es.po	(original)
+++ rt/3.8/branches/3.8.0-releng/lib/RT/I18N/es.po	Fri Jun 20 16:56:18 2008
@@ -1,7 +1,7 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: RT 3.5.x\n"
+"Project-Id-Version: RT 3.8.x\n"
 "POT-Creation-Date: 2002-05-02 11:36+0800\n"
 "PO-Revision-Date: 2005-10-03 14:25-0400\n"
 "Last-Translator: Tomàs Núñez Lirola <tomasnl at dsl.upc.es>\n"
@@ -312,7 +312,7 @@
 msgid "%1 is a tool to act on tickets from an external scheduling tool, such as cron."
 msgstr "$1 es una herramienta para actuar sobre los tickets con una herramienta de planificación externa, como crom"
 
-#: sbin/rt-send-digest:69
+#: sbin/rt-email-digest:69
 #. ($0)
 msgid "%1 is a utility, meant to be run from cron, that dispatches all deferred RT notifications as a per-user digest."
 msgstr ""
@@ -2714,7 +2714,7 @@
 msgid "Enter up to %1 values with autocompletion"
 msgstr ""
 
-#: sbin/rt-send-digest:80 share/html/Elements/Login:78 share/html/SelfService/Error.html:48 share/html/SelfService/Error.html:49
+#: sbin/rt-email-digest:80 share/html/Elements/Login:78 share/html/SelfService/Error.html:48 share/html/SelfService/Error.html:49
 msgid "Error"
 msgstr "Error"
 
@@ -2834,11 +2834,11 @@
 msgid "Failed to load object for %1"
 msgstr "Error al cargar objeto para %1"
 
-#: sbin/rt-send-digest:143
+#: sbin/rt-email-digest:143
 msgid "Failed to load template"
 msgstr ""
 
-#: sbin/rt-send-digest:151
+#: sbin/rt-email-digest:151
 msgid "Failed to parse template"
 msgstr ""
 
@@ -3906,7 +3906,7 @@
 msgid "Message could not be recorded"
 msgstr "Mensaje no puedo ser grabado"
 
-#: sbin/rt-send-digest:268
+#: sbin/rt-email-digest:268
 msgid "Message for user"
 msgstr ""
 
@@ -5235,11 +5235,11 @@
 msgid "Principal %1 not found."
 msgstr "No se encontró el principal %1"
 
-#: sbin/rt-send-digest:73
+#: sbin/rt-email-digest:73
 msgid "Print the resulting digest messages to STDOUT; don't mail them. Do not mark them as sent"
 msgstr ""
 
-#: sbin/rt-send-digest:75
+#: sbin/rt-email-digest:75
 msgid "Print this message"
 msgstr ""
 
@@ -6311,7 +6311,7 @@
 msgid "Skip Menu"
 msgstr "Saltar Menu"
 
-#: sbin/rt-send-digest:264
+#: sbin/rt-email-digest:264
 msgid "Skipping disabled user"
 msgstr ""
 
@@ -6343,7 +6343,7 @@
 msgid "Sorting"
 msgstr ""
 
-#: sbin/rt-send-digest:71
+#: sbin/rt-email-digest:71
 msgid "Specify whether this is a daily or weekly run."
 msgstr ""
 
@@ -7362,7 +7362,7 @@
 msgid "Upload your changes"
 msgstr "Subir cambios"
 
-#: sbin/rt-send-digest:65
+#: sbin/rt-email-digest:65
 msgid "Usage: "
 msgstr ""
 

Modified: rt/3.8/branches/3.8.0-releng/lib/RT/I18N/fi.po
==============================================================================
--- rt/3.8/branches/3.8.0-releng/lib/RT/I18N/fi.po	(original)
+++ rt/3.8/branches/3.8.0-releng/lib/RT/I18N/fi.po	Fri Jun 20 16:56:18 2008
@@ -2,7 +2,7 @@
 # First Author: Janne Pirkkanen <jp at oppipoika.net>, Jul 2002
 msgid ""
 msgstr ""
-"Project-Id-Version: RT 3.5.x\n"
+"Project-Id-Version: RT 3.8.x\n"
 "POT-Creation-Date: 2002-07-08 17:41+0200\n"
 "PO-Revision-Date: 2005-10-03 13:45-0400\n"
 "Last-Translator: Tuukka Vainio <tuukka.vainio at utu.fi>\n"
@@ -305,7 +305,7 @@
 msgid "%1 is a tool to act on tickets from an external scheduling tool, such as cron."
 msgstr ""
 
-#: sbin/rt-send-digest:69
+#: sbin/rt-email-digest:69
 #. ($0)
 msgid "%1 is a utility, meant to be run from cron, that dispatches all deferred RT notifications as a per-user digest."
 msgstr ""
@@ -2546,7 +2546,7 @@
 msgid "Enter up to %1 values with autocompletion"
 msgstr ""
 
-#: sbin/rt-send-digest:80 share/html/Elements/Login:78 share/html/SelfService/Error.html:48 share/html/SelfService/Error.html:49
+#: sbin/rt-email-digest:80 share/html/Elements/Login:78 share/html/SelfService/Error.html:48 share/html/SelfService/Error.html:49
 msgid "Error"
 msgstr "Virhe"
 
@@ -2658,11 +2658,11 @@
 msgid "Failed to load object for %1"
 msgstr ""
 
-#: sbin/rt-send-digest:143
+#: sbin/rt-email-digest:143
 msgid "Failed to load template"
 msgstr ""
 
-#: sbin/rt-send-digest:151
+#: sbin/rt-email-digest:151
 msgid "Failed to parse template"
 msgstr ""
 
@@ -3674,7 +3674,7 @@
 msgid "Message could not be recorded"
 msgstr ""
 
-#: sbin/rt-send-digest:268
+#: sbin/rt-email-digest:268
 msgid "Message for user"
 msgstr ""
 
@@ -4959,11 +4959,11 @@
 msgid "Principal %1 not found."
 msgstr "Toimeksiantajaa %1 ei löytynyt"
 
-#: sbin/rt-send-digest:73
+#: sbin/rt-email-digest:73
 msgid "Print the resulting digest messages to STDOUT; don't mail them. Do not mark them as sent"
 msgstr ""
 
-#: sbin/rt-send-digest:75
+#: sbin/rt-email-digest:75
 msgid "Print this message"
 msgstr ""
 
@@ -5971,7 +5971,7 @@
 msgid "Skip Menu"
 msgstr ""
 
-#: sbin/rt-send-digest:264
+#: sbin/rt-email-digest:264
 msgid "Skipping disabled user"
 msgstr ""
 
@@ -6003,7 +6003,7 @@
 msgid "Sorting"
 msgstr ""
 
-#: sbin/rt-send-digest:71
+#: sbin/rt-email-digest:71
 msgid "Specify whether this is a daily or weekly run."
 msgstr ""
 
@@ -6978,7 +6978,7 @@
 msgid "Upload your changes"
 msgstr ""
 
-#: sbin/rt-send-digest:65
+#: sbin/rt-email-digest:65
 msgid "Usage: "
 msgstr ""
 

Modified: rt/3.8/branches/3.8.0-releng/lib/RT/I18N/fr.po
==============================================================================
--- rt/3.8/branches/3.8.0-releng/lib/RT/I18N/fr.po	(original)
+++ rt/3.8/branches/3.8.0-releng/lib/RT/I18N/fr.po	Fri Jun 20 16:56:18 2008
@@ -276,7 +276,7 @@
 msgid "%1 is a tool to act on tickets from an external scheduling tool, such as cron."
 msgstr "%1 est un outil agissant sur les tickets depuis un ordonnanceur externe tel que cron."
 
-#: sbin/rt-send-digest:69
+#: sbin/rt-email-digest:69
 #. ($0)
 msgid "%1 is a utility, meant to be run from cron, that dispatches all deferred RT notifications as a per-user digest."
 msgstr "%1 est un utilitaire, destiné a être lancé via cron, qui envoi une compilation par utilisateur des notifications RT en attente."
@@ -2129,7 +2129,7 @@
 msgid "Enter up to %1 values with autocompletion"
 msgstr "Saisir jusqu'à %1 valeurs avec complétion automatique"
 
-#: sbin/rt-send-digest:80 share/html/Elements/Login:78 share/html/SelfService/Error.html:48 share/html/SelfService/Error.html:49
+#: sbin/rt-email-digest:80 share/html/Elements/Login:78 share/html/SelfService/Error.html:48 share/html/SelfService/Error.html:49
 msgid "Error"
 msgstr "Erreur"
 
@@ -2221,11 +2221,11 @@
 msgid "Failed to load object for %1"
 msgstr "Impossible de charger l'objet pour %1"
 
-#: sbin/rt-send-digest:143
+#: sbin/rt-email-digest:143
 msgid "Failed to load template"
 msgstr "Impossible de charger le modèle"
 
-#: sbin/rt-send-digest:151
+#: sbin/rt-email-digest:151
 msgid "Failed to parse template"
 msgstr "Impossible d'analyser le modèle"
 
@@ -3121,7 +3121,7 @@
 msgid "Message could not be recorded"
 msgstr "Le message ne peut être sauvegardé"
 
-#: sbin/rt-send-digest:268
+#: sbin/rt-email-digest:268
 msgid "Message for user"
 msgstr "Message pour l'utilisateur"
 
@@ -4242,11 +4242,11 @@
 msgid "Principal %1 not found."
 msgstr "Personne/groupe %1 non trouvé(e)."
 
-#: sbin/rt-send-digest:73
+#: sbin/rt-email-digest:73
 msgid "Print the resulting digest messages to STDOUT; don't mail them. Do not mark them as sent"
 msgstr "Afficher la compilation des messages sur la sortie standard (STDOUT); ne pas les envoyer. Ne pas les marquer comme \"envoyés\""
 
-#: sbin/rt-send-digest:75
+#: sbin/rt-email-digest:75
 msgid "Print this message"
 msgstr "Imprimer ce message"
 
@@ -5090,7 +5090,7 @@
 msgid "Skip Menu"
 msgstr "Passer le menu"
 
-#: sbin/rt-send-digest:264
+#: sbin/rt-email-digest:264
 msgid "Skipping disabled user"
 msgstr "Sauter les utilisateurs désactivés"
 
@@ -5110,7 +5110,7 @@
 msgid "Sorting"
 msgstr "Tri"
 
-#: sbin/rt-send-digest:71
+#: sbin/rt-email-digest:71
 msgid "Specify whether this is a daily or weekly run."
 msgstr "Spécifie si le lancement et quotidien ou hebdomadaire."
 
@@ -5913,7 +5913,7 @@
 msgid "Upload your changes"
 msgstr "Envoyer vos changements"
 
-#: sbin/rt-send-digest:65
+#: sbin/rt-email-digest:65
 msgid "Usage: "
 msgstr "Utilisation: "
 

Modified: rt/3.8/branches/3.8.0-releng/lib/RT/I18N/he.po
==============================================================================
--- rt/3.8/branches/3.8.0-releng/lib/RT/I18N/he.po	(original)
+++ rt/3.8/branches/3.8.0-releng/lib/RT/I18N/he.po	Fri Jun 20 16:56:18 2008
@@ -1,7 +1,7 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: RT 3.5.x\n"
+"Project-Id-Version: RT 3.8.x\n"
 "PO-Revision-Date: 2005-10-03 13:47-0400\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: rt-devel <rt-devel at lists.bestpractical.com>\n"
@@ -283,7 +283,7 @@
 msgid "%1 is a tool to act on tickets from an external scheduling tool, such as cron."
 msgstr ""
 
-#: sbin/rt-send-digest:69
+#: sbin/rt-email-digest:69
 #. ($0)
 msgid "%1 is a utility, meant to be run from cron, that dispatches all deferred RT notifications as a per-user digest."
 msgstr ""
@@ -2212,7 +2212,7 @@
 msgid "Enter up to %1 values with autocompletion"
 msgstr ""
 
-#: sbin/rt-send-digest:80 share/html/Elements/Login:78 share/html/SelfService/Error.html:48 share/html/SelfService/Error.html:49
+#: sbin/rt-email-digest:80 share/html/Elements/Login:78 share/html/SelfService/Error.html:48 share/html/SelfService/Error.html:49
 msgid "Error"
 msgstr ""
 
@@ -2304,11 +2304,11 @@
 msgid "Failed to load object for %1"
 msgstr ""
 
-#: sbin/rt-send-digest:143
+#: sbin/rt-email-digest:143
 msgid "Failed to load template"
 msgstr ""
 
-#: sbin/rt-send-digest:151
+#: sbin/rt-email-digest:151
 msgid "Failed to parse template"
 msgstr ""
 
@@ -3244,7 +3244,7 @@
 msgid "Message could not be recorded"
 msgstr ""
 
-#: sbin/rt-send-digest:268
+#: sbin/rt-email-digest:268
 msgid "Message for user"
 msgstr ""
 
@@ -4433,11 +4433,11 @@
 msgid "Principal %1 not found."
 msgstr ""
 
-#: sbin/rt-send-digest:73
+#: sbin/rt-email-digest:73
 msgid "Print the resulting digest messages to STDOUT; don't mail them. Do not mark them as sent"
 msgstr ""
 
-#: sbin/rt-send-digest:75
+#: sbin/rt-email-digest:75
 msgid "Print this message"
 msgstr ""
 
@@ -5321,7 +5321,7 @@
 msgid "Skip Menu"
 msgstr ""
 
-#: sbin/rt-send-digest:264
+#: sbin/rt-email-digest:264
 msgid "Skipping disabled user"
 msgstr ""
 
@@ -5345,7 +5345,7 @@
 msgid "Sorting"
 msgstr ""
 
-#: sbin/rt-send-digest:71
+#: sbin/rt-email-digest:71
 msgid "Specify whether this is a daily or weekly run."
 msgstr ""
 
@@ -6236,7 +6236,7 @@
 msgid "Upload your changes"
 msgstr ""
 
-#: sbin/rt-send-digest:65
+#: sbin/rt-email-digest:65
 msgid "Usage: "
 msgstr ""
 

Modified: rt/3.8/branches/3.8.0-releng/lib/RT/I18N/hr.po
==============================================================================
--- rt/3.8/branches/3.8.0-releng/lib/RT/I18N/hr.po	(original)
+++ rt/3.8/branches/3.8.0-releng/lib/RT/I18N/hr.po	Fri Jun 20 16:56:18 2008
@@ -292,7 +292,7 @@
 msgid "%1 is a tool to act on tickets from an external scheduling tool, such as cron."
 msgstr "%1 je alat za obradu zahtjeva preko vanjskog radnog alata poput crona"
 
-#: sbin/rt-send-digest:69
+#: sbin/rt-email-digest:69
 #. ($0)
 msgid "%1 is a utility, meant to be run from cron, that dispatches all deferred RT notifications as a per-user digest."
 msgstr ""
@@ -2515,7 +2515,7 @@
 msgid "Enter up to %1 values with autocompletion"
 msgstr ""
 
-#: sbin/rt-send-digest:80 share/html/Elements/Login:78 share/html/SelfService/Error.html:48 share/html/SelfService/Error.html:49
+#: sbin/rt-email-digest:80 share/html/Elements/Login:78 share/html/SelfService/Error.html:48 share/html/SelfService/Error.html:49
 msgid "Error"
 msgstr "Greška"
 
@@ -2635,11 +2635,11 @@
 msgid "Failed to load object for %1"
 msgstr ""
 
-#: sbin/rt-send-digest:143
+#: sbin/rt-email-digest:143
 msgid "Failed to load template"
 msgstr ""
 
-#: sbin/rt-send-digest:151
+#: sbin/rt-email-digest:151
 msgid "Failed to parse template"
 msgstr ""
 
@@ -3651,7 +3651,7 @@
 msgid "Message could not be recorded"
 msgstr "Poruku nije bilo moguće zabilježiti"
 
-#: sbin/rt-send-digest:268
+#: sbin/rt-email-digest:268
 msgid "Message for user"
 msgstr ""
 
@@ -4924,11 +4924,11 @@
 msgid "Principal %1 not found."
 msgstr "Glavni parametar %1 nije pronađen."
 
-#: sbin/rt-send-digest:73
+#: sbin/rt-email-digest:73
 msgid "Print the resulting digest messages to STDOUT; don't mail them. Do not mark them as sent"
 msgstr ""
 
-#: sbin/rt-send-digest:75
+#: sbin/rt-email-digest:75
 msgid "Print this message"
 msgstr ""
 
@@ -5900,7 +5900,7 @@
 msgid "Skip Menu"
 msgstr "Preskoci izbornik"
 
-#: sbin/rt-send-digest:264
+#: sbin/rt-email-digest:264
 msgid "Skipping disabled user"
 msgstr ""
 
@@ -5936,7 +5936,7 @@
 msgid "Sorting"
 msgstr ""
 
-#: sbin/rt-send-digest:71
+#: sbin/rt-email-digest:71
 msgid "Specify whether this is a daily or weekly run."
 msgstr ""
 
@@ -6903,7 +6903,7 @@
 msgid "Upload your changes"
 msgstr "Učitaj promjene"
 
-#: sbin/rt-send-digest:65
+#: sbin/rt-email-digest:65
 msgid "Usage: "
 msgstr ""
 

Modified: rt/3.8/branches/3.8.0-releng/lib/RT/I18N/hu.po
==============================================================================
--- rt/3.8/branches/3.8.0-releng/lib/RT/I18N/hu.po	(original)
+++ rt/3.8/branches/3.8.0-releng/lib/RT/I18N/hu.po	Fri Jun 20 16:56:18 2008
@@ -1,7 +1,7 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: RT 3.5.x\n"
+"Project-Id-Version: RT 3.8.x\n"
 "POT-Creation-Date: 2002-06-22 06:06+0200\n"
 "PO-Revision-Date: 2005-10-03 13:48-0400\n"
 "Last-Translator: Attila K. Mergl <mergl at astron.hu>\n"
@@ -275,7 +275,7 @@
 msgid "%1 is a tool to act on tickets from an external scheduling tool, such as cron."
 msgstr ""
 
-#: sbin/rt-send-digest:69
+#: sbin/rt-email-digest:69
 #. ($0)
 msgid "%1 is a utility, meant to be run from cron, that dispatches all deferred RT notifications as a per-user digest."
 msgstr ""
@@ -2194,7 +2194,7 @@
 msgid "Enter up to %1 values with autocompletion"
 msgstr ""
 
-#: sbin/rt-send-digest:80 share/html/Elements/Login:78 share/html/SelfService/Error.html:48 share/html/SelfService/Error.html:49
+#: sbin/rt-email-digest:80 share/html/Elements/Login:78 share/html/SelfService/Error.html:48 share/html/SelfService/Error.html:49
 msgid "Error"
 msgstr "Hiba"
 
@@ -2290,11 +2290,11 @@
 msgid "Failed to load object for %1"
 msgstr ""
 
-#: sbin/rt-send-digest:143
+#: sbin/rt-email-digest:143
 msgid "Failed to load template"
 msgstr ""
 
-#: sbin/rt-send-digest:151
+#: sbin/rt-email-digest:151
 msgid "Failed to parse template"
 msgstr ""
 
@@ -3236,7 +3236,7 @@
 msgid "Message could not be recorded"
 msgstr "A sor nem hozható létre"
 
-#: sbin/rt-send-digest:268
+#: sbin/rt-email-digest:268
 msgid "Message for user"
 msgstr ""
 
@@ -4408,11 +4408,11 @@
 msgid "Principal %1 not found."
 msgstr "%1 vezetõ nem található."
 
-#: sbin/rt-send-digest:73
+#: sbin/rt-email-digest:73
 msgid "Print the resulting digest messages to STDOUT; don't mail them. Do not mark them as sent"
 msgstr ""
 
-#: sbin/rt-send-digest:75
+#: sbin/rt-email-digest:75
 msgid "Print this message"
 msgstr ""
 
@@ -5300,7 +5300,7 @@
 msgid "Skip Menu"
 msgstr ""
 
-#: sbin/rt-send-digest:264
+#: sbin/rt-email-digest:264
 msgid "Skipping disabled user"
 msgstr ""
 
@@ -5320,7 +5320,7 @@
 msgid "Sorting"
 msgstr ""
 
-#: sbin/rt-send-digest:71
+#: sbin/rt-email-digest:71
 msgid "Specify whether this is a daily or weekly run."
 msgstr ""
 
@@ -6175,7 +6175,7 @@
 msgid "Upload your changes"
 msgstr "Módosítások feltöltése"
 
-#: sbin/rt-send-digest:65
+#: sbin/rt-email-digest:65
 msgid "Usage: "
 msgstr ""
 

Modified: rt/3.8/branches/3.8.0-releng/lib/RT/I18N/id.po
==============================================================================
--- rt/3.8/branches/3.8.0-releng/lib/RT/I18N/id.po	(original)
+++ rt/3.8/branches/3.8.0-releng/lib/RT/I18N/id.po	Fri Jun 20 16:56:18 2008
@@ -2,7 +2,7 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: RT 3.5.x\n"
+"Project-Id-Version: RT 3.8.x\n"
 "POT-Creation-Date: \n"
 "PO-Revision-Date: 2005-10-03 13:48-0400\n"
 "Last-Translator: James <james at actionmessage.com>\n"
@@ -277,7 +277,7 @@
 msgid "%1 is a tool to act on tickets from an external scheduling tool, such as cron."
 msgstr "%1 adalah sebuah alat yang berfungsi pada tiket dari alat penjadwalan eksternal, seperti Cron."
 
-#: sbin/rt-send-digest:69
+#: sbin/rt-email-digest:69
 #. ($0)
 msgid "%1 is a utility, meant to be run from cron, that dispatches all deferred RT notifications as a per-user digest."
 msgstr ""
@@ -2326,7 +2326,7 @@
 msgid "Enter up to %1 values with autocompletion"
 msgstr ""
 
-#: sbin/rt-send-digest:80 share/html/Elements/Login:78 share/html/SelfService/Error.html:48 share/html/SelfService/Error.html:49
+#: sbin/rt-email-digest:80 share/html/Elements/Login:78 share/html/SelfService/Error.html:48 share/html/SelfService/Error.html:49
 msgid "Error"
 msgstr "Kesalahan"
 
@@ -2446,11 +2446,11 @@
 msgid "Failed to load object for %1"
 msgstr "Gagal memanggil objek untuk %1"
 
-#: sbin/rt-send-digest:143
+#: sbin/rt-email-digest:143
 msgid "Failed to load template"
 msgstr ""
 
-#: sbin/rt-send-digest:151
+#: sbin/rt-email-digest:151
 msgid "Failed to parse template"
 msgstr ""
 
@@ -3422,7 +3422,7 @@
 msgid "Message could not be recorded"
 msgstr "Pesan tidak dapat dicatat"
 
-#: sbin/rt-send-digest:268
+#: sbin/rt-email-digest:268
 msgid "Message for user"
 msgstr ""
 
@@ -4651,11 +4651,11 @@
 msgid "Principal %1 not found."
 msgstr "Prinsipal %1 tidak ditemukan."
 
-#: sbin/rt-send-digest:73
+#: sbin/rt-email-digest:73
 msgid "Print the resulting digest messages to STDOUT; don't mail them. Do not mark them as sent"
 msgstr ""
 
-#: sbin/rt-send-digest:75
+#: sbin/rt-email-digest:75
 msgid "Print this message"
 msgstr ""
 
@@ -5583,7 +5583,7 @@
 msgid "Skip Menu"
 msgstr "Lewati Menu"
 
-#: sbin/rt-send-digest:264
+#: sbin/rt-email-digest:264
 msgid "Skipping disabled user"
 msgstr ""
 
@@ -5607,7 +5607,7 @@
 msgid "Sorting"
 msgstr ""
 
-#: sbin/rt-send-digest:71
+#: sbin/rt-email-digest:71
 msgid "Specify whether this is a daily or weekly run."
 msgstr ""
 
@@ -6522,7 +6522,7 @@
 msgid "Upload your changes"
 msgstr "Upload perubahan anda"
 
-#: sbin/rt-send-digest:65
+#: sbin/rt-email-digest:65
 msgid "Usage: "
 msgstr ""
 

Modified: rt/3.8/branches/3.8.0-releng/lib/RT/I18N/it.po
==============================================================================
--- rt/3.8/branches/3.8.0-releng/lib/RT/I18N/it.po	(original)
+++ rt/3.8/branches/3.8.0-releng/lib/RT/I18N/it.po	Fri Jun 20 16:56:18 2008
@@ -1,7 +1,7 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: RT 3.5.x\n"
+"Project-Id-Version: RT 3.8.x\n"
 "POT-Creation-Date: 2002-05-02 11:36+0800\n"
 "PO-Revision-Date: 2005-10-03 13:48-0400\n"
 "Last-Translator: Angelo Turetta <aturetta at bestunion.it>\n"
@@ -312,7 +312,7 @@
 msgid "%1 is a tool to act on tickets from an external scheduling tool, such as cron."
 msgstr "%1 è uno strumento per agire sui ticket da uno schedulatore esterno, per esempio cron."
 
-#: sbin/rt-send-digest:69
+#: sbin/rt-email-digest:69
 #. ($0)
 msgid "%1 is a utility, meant to be run from cron, that dispatches all deferred RT notifications as a per-user digest."
 msgstr ""
@@ -2761,7 +2761,7 @@
 msgid "Enter up to %1 values with autocompletion"
 msgstr ""
 
-#: sbin/rt-send-digest:80 share/html/Elements/Login:78 share/html/SelfService/Error.html:48 share/html/SelfService/Error.html:49
+#: sbin/rt-email-digest:80 share/html/Elements/Login:78 share/html/SelfService/Error.html:48 share/html/SelfService/Error.html:49
 msgid "Error"
 msgstr "Errore"
 
@@ -2885,11 +2885,11 @@
 msgid "Failed to load object for %1"
 msgstr "Impossibile caricare un oggetto per %1"
 
-#: sbin/rt-send-digest:143
+#: sbin/rt-email-digest:143
 msgid "Failed to load template"
 msgstr ""
 
-#: sbin/rt-send-digest:151
+#: sbin/rt-email-digest:151
 msgid "Failed to parse template"
 msgstr ""
 
@@ -3989,7 +3989,7 @@
 msgid "Message could not be recorded"
 msgstr "Impossibile registrare il messaggio"
 
-#: sbin/rt-send-digest:268
+#: sbin/rt-email-digest:268
 msgid "Message for user"
 msgstr ""
 
@@ -5318,11 +5318,11 @@
 msgid "Principal %1 not found."
 msgstr "Utente/gruppo %1 not trovato."
 
-#: sbin/rt-send-digest:73
+#: sbin/rt-email-digest:73
 msgid "Print the resulting digest messages to STDOUT; don't mail them. Do not mark them as sent"
 msgstr ""
 
-#: sbin/rt-send-digest:75
+#: sbin/rt-email-digest:75
 msgid "Print this message"
 msgstr ""
 
@@ -6410,7 +6410,7 @@
 msgid "Skip Menu"
 msgstr "Salta menu"
 
-#: sbin/rt-send-digest:264
+#: sbin/rt-email-digest:264
 msgid "Skipping disabled user"
 msgstr ""
 
@@ -6442,7 +6442,7 @@
 msgid "Sorting"
 msgstr ""
 
-#: sbin/rt-send-digest:71
+#: sbin/rt-email-digest:71
 msgid "Specify whether this is a daily or weekly run."
 msgstr ""
 
@@ -7485,7 +7485,7 @@
 msgid "Upload your changes"
 msgstr "Upload delle modifiche"
 
-#: sbin/rt-send-digest:65
+#: sbin/rt-email-digest:65
 msgid "Usage: "
 msgstr ""
 

Modified: rt/3.8/branches/3.8.0-releng/lib/RT/I18N/ja.po
==============================================================================
--- rt/3.8/branches/3.8.0-releng/lib/RT/I18N/ja.po	(original)
+++ rt/3.8/branches/3.8.0-releng/lib/RT/I18N/ja.po	Fri Jun 20 16:56:18 2008
@@ -1,6 +1,6 @@
 msgid ""
 msgstr ""
-"Project-Id-Version: RT 3.6.x\n"
+"Project-Id-Version: RT 3.8.x\n"
 "POT-Creation-Date: 2002-05-02 11:36+0800\n"
 "PO-Revision-Date: 2007-11-30 01:18+0900\n"
 "Last-Translator: Shinji R. Yamane <s-yamane at computer.org>\n"
@@ -328,7 +328,7 @@
 msgid "%1 is a tool to act on tickets from an external scheduling tool, such as cron."
 msgstr ""
 
-#: sbin/rt-send-digest:69
+#: sbin/rt-email-digest:69
 #. ($0)
 msgid "%1 is a utility, meant to be run from cron, that dispatches all deferred RT notifications as a per-user digest."
 msgstr ""
@@ -2517,7 +2517,7 @@
 msgid "Enter up to %1 values with autocompletion"
 msgstr ""
 
-#: sbin/rt-send-digest:80 share/html/Elements/Login:78 share/html/SelfService/Error.html:48 share/html/SelfService/Error.html:49
+#: sbin/rt-email-digest:80 share/html/Elements/Login:78 share/html/SelfService/Error.html:48 share/html/SelfService/Error.html:49
 msgid "Error"
 msgstr "エラー"
 
@@ -2625,11 +2625,11 @@
 msgid "Failed to load object for %1"
 msgstr ""
 
-#: sbin/rt-send-digest:143
+#: sbin/rt-email-digest:143
 msgid "Failed to load template"
 msgstr ""
 
-#: sbin/rt-send-digest:151
+#: sbin/rt-email-digest:151
 msgid "Failed to parse template"
 msgstr ""
 
@@ -3627,7 +3627,7 @@
 msgid "Message could not be recorded"
 msgstr ""
 
-#: sbin/rt-send-digest:268
+#: sbin/rt-email-digest:268
 msgid "Message for user"
 msgstr ""
 
@@ -4876,11 +4876,11 @@
 msgid "Principal %1 not found."
 msgstr ""
 
-#: sbin/rt-send-digest:73
+#: sbin/rt-email-digest:73
 msgid "Print the resulting digest messages to STDOUT; don't mail them. Do not mark them as sent"
 msgstr ""
 
-#: sbin/rt-send-digest:75
+#: sbin/rt-email-digest:75
 msgid "Print this message"
 msgstr ""
 
@@ -5864,7 +5864,7 @@
 msgid "Skip Menu"
 msgstr ""
 
-#: sbin/rt-send-digest:264
+#: sbin/rt-email-digest:264
 msgid "Skipping disabled user"
 msgstr ""
 
@@ -5896,7 +5896,7 @@
 msgid "Sorting"
 msgstr ""
 
-#: sbin/rt-send-digest:71
+#: sbin/rt-email-digest:71
 msgid "Specify whether this is a daily or weekly run."
 msgstr ""
 
@@ -6853,7 +6853,7 @@
 msgid "Upload your changes"
 msgstr ""
 
-#: sbin/rt-send-digest:65
+#: sbin/rt-email-digest:65
 msgid "Usage: "
 msgstr ""
 

Modified: rt/3.8/branches/3.8.0-releng/lib/RT/I18N/nl.po
==============================================================================
--- rt/3.8/branches/3.8.0-releng/lib/RT/I18N/nl.po	(original)
+++ rt/3.8/branches/3.8.0-releng/lib/RT/I18N/nl.po	Fri Jun 20 16:56:18 2008
@@ -1,7 +1,7 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: RT 3.5.x\n"
+"Project-Id-Version: RT 3.8.x\n"
 "PO-Revision-Date: 2005-10-03 13:50-0400\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: rt-devel <rt-devel at lists.fsck.com>\n"
@@ -303,7 +303,7 @@
 msgid "%1 is a tool to act on tickets from an external scheduling tool, such as cron."
 msgstr "%1 is een gereedschap om te reageren op tickets van een extern rooster programma, zoals cron"
 
-#: sbin/rt-send-digest:69
+#: sbin/rt-email-digest:69
 #. ($0)
 msgid "%1 is a utility, meant to be run from cron, that dispatches all deferred RT notifications as a per-user digest."
 msgstr ""
@@ -2592,7 +2592,7 @@
 msgid "Enter up to %1 values with autocompletion"
 msgstr ""
 
-#: sbin/rt-send-digest:80 share/html/Elements/Login:78 share/html/SelfService/Error.html:48 share/html/SelfService/Error.html:49
+#: sbin/rt-email-digest:80 share/html/Elements/Login:78 share/html/SelfService/Error.html:48 share/html/SelfService/Error.html:49
 msgid "Error"
 msgstr "Fout"
 
@@ -2708,11 +2708,11 @@
 msgid "Failed to load object for %1"
 msgstr ""
 
-#: sbin/rt-send-digest:143
+#: sbin/rt-email-digest:143
 msgid "Failed to load template"
 msgstr ""
 
-#: sbin/rt-send-digest:151
+#: sbin/rt-email-digest:151
 msgid "Failed to parse template"
 msgstr ""
 
@@ -3756,7 +3756,7 @@
 msgid "Message could not be recorded"
 msgstr "bericht kon niet opgeslagen worden"
 
-#: sbin/rt-send-digest:268
+#: sbin/rt-email-digest:268
 msgid "Message for user"
 msgstr ""
 
@@ -5045,11 +5045,11 @@
 msgid "Principal %1 not found."
 msgstr "Hoofd %1 niet gevonden."
 
-#: sbin/rt-send-digest:73
+#: sbin/rt-email-digest:73
 msgid "Print the resulting digest messages to STDOUT; don't mail them. Do not mark them as sent"
 msgstr ""
 
-#: sbin/rt-send-digest:75
+#: sbin/rt-email-digest:75
 msgid "Print this message"
 msgstr ""
 
@@ -6109,7 +6109,7 @@
 msgid "Skip Menu"
 msgstr ""
 
-#: sbin/rt-send-digest:264
+#: sbin/rt-email-digest:264
 msgid "Skipping disabled user"
 msgstr ""
 
@@ -6141,7 +6141,7 @@
 msgid "Sorting"
 msgstr ""
 
-#: sbin/rt-send-digest:71
+#: sbin/rt-email-digest:71
 msgid "Specify whether this is a daily or weekly run."
 msgstr ""
 
@@ -7148,7 +7148,7 @@
 msgid "Upload your changes"
 msgstr ""
 
-#: sbin/rt-send-digest:65
+#: sbin/rt-email-digest:65
 msgid "Usage: "
 msgstr ""
 

Modified: rt/3.8/branches/3.8.0-releng/lib/RT/I18N/no.po
==============================================================================
--- rt/3.8/branches/3.8.0-releng/lib/RT/I18N/no.po	(original)
+++ rt/3.8/branches/3.8.0-releng/lib/RT/I18N/no.po	Fri Jun 20 16:56:18 2008
@@ -1,7 +1,7 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: RT 3.5.x\n"
+"Project-Id-Version: RT 3.8.x\n"
 "POT-Creation-Date: 2003-04-01 06:06+0200\n"
 "PO-Revision-Date: 2006-12-20 20:59+0100\n"
 "Last-Translator: Ronny Pettersen <ronny.pettersen at edb.com>\n"
@@ -312,7 +312,7 @@
 msgid "%1 is a tool to act on tickets from an external scheduling tool, such as cron."
 msgstr "%1 er et verktøy for å behandle saker fra eksterne verktøy, slik som cron."
 
-#: sbin/rt-send-digest:69
+#: sbin/rt-email-digest:69
 #. ($0)
 msgid "%1 is a utility, meant to be run from cron, that dispatches all deferred RT notifications as a per-user digest."
 msgstr ""
@@ -2709,7 +2709,7 @@
 msgid "Enter up to %1 values with autocompletion"
 msgstr ""
 
-#: sbin/rt-send-digest:80 share/html/Elements/Login:78 share/html/SelfService/Error.html:48 share/html/SelfService/Error.html:49
+#: sbin/rt-email-digest:80 share/html/Elements/Login:78 share/html/SelfService/Error.html:48 share/html/SelfService/Error.html:49
 msgid "Error"
 msgstr "Feil"
 
@@ -2825,11 +2825,11 @@
 msgid "Failed to load object for %1"
 msgstr ""
 
-#: sbin/rt-send-digest:143
+#: sbin/rt-email-digest:143
 msgid "Failed to load template"
 msgstr ""
 
-#: sbin/rt-send-digest:151
+#: sbin/rt-email-digest:151
 msgid "Failed to parse template"
 msgstr ""
 
@@ -3885,7 +3885,7 @@
 msgid "Message could not be recorded"
 msgstr ""
 
-#: sbin/rt-send-digest:268
+#: sbin/rt-email-digest:268
 msgid "Message for user"
 msgstr ""
 
@@ -5194,11 +5194,11 @@
 msgid "Principal %1 not found."
 msgstr "Primær %1 ikke funnet."
 
-#: sbin/rt-send-digest:73
+#: sbin/rt-email-digest:73
 msgid "Print the resulting digest messages to STDOUT; don't mail them. Do not mark them as sent"
 msgstr ""
 
-#: sbin/rt-send-digest:75
+#: sbin/rt-email-digest:75
 msgid "Print this message"
 msgstr ""
 
@@ -6258,7 +6258,7 @@
 msgid "Skip Menu"
 msgstr "Dropp Meny"
 
-#: sbin/rt-send-digest:264
+#: sbin/rt-email-digest:264
 msgid "Skipping disabled user"
 msgstr ""
 
@@ -6290,7 +6290,7 @@
 msgid "Sorting"
 msgstr ""
 
-#: sbin/rt-send-digest:71
+#: sbin/rt-email-digest:71
 msgid "Specify whether this is a daily or weekly run."
 msgstr ""
 
@@ -7313,7 +7313,7 @@
 msgid "Upload your changes"
 msgstr ""
 
-#: sbin/rt-send-digest:65
+#: sbin/rt-email-digest:65
 msgid "Usage: "
 msgstr ""
 

Modified: rt/3.8/branches/3.8.0-releng/lib/RT/I18N/pl.po
==============================================================================
--- rt/3.8/branches/3.8.0-releng/lib/RT/I18N/pl.po	(original)
+++ rt/3.8/branches/3.8.0-releng/lib/RT/I18N/pl.po	Fri Jun 20 16:56:18 2008
@@ -2,7 +2,7 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: RT 3.5.x\n"
+"Project-Id-Version: RT 3.8.x\n"
 "POT-Creation-Date: 2007-01-18 11:36+0800\n"
 "PO-Revision-Date: 2005-10-03 14:26-0400\n"
 "Last-Translator: Piotr Śliwa <piotr.sliwa at comarch.pl>\n"
@@ -310,7 +310,7 @@
 msgid "%1 is a tool to act on tickets from an external scheduling tool, such as cron."
 msgstr "%1 jest narzędziem umożliwiającym obsługę zgłoszeń z zewnętrznej aplikacji do sporządzania wykazów, takiej jak cron."
 
-#: sbin/rt-send-digest:69
+#: sbin/rt-email-digest:69
 #. ($0)
 msgid "%1 is a utility, meant to be run from cron, that dispatches all deferred RT notifications as a per-user digest."
 msgstr ""
@@ -2767,7 +2767,7 @@
 msgid "Enter up to %1 values with autocompletion"
 msgstr ""
 
-#: sbin/rt-send-digest:80 share/html/Elements/Login:78 share/html/SelfService/Error.html:48 share/html/SelfService/Error.html:49
+#: sbin/rt-email-digest:80 share/html/Elements/Login:78 share/html/SelfService/Error.html:48 share/html/SelfService/Error.html:49
 msgid "Error"
 msgstr "Błąd"
 
@@ -2891,11 +2891,11 @@
 msgid "Failed to load object for %1"
 msgstr ""
 
-#: sbin/rt-send-digest:143
+#: sbin/rt-email-digest:143
 msgid "Failed to load template"
 msgstr ""
 
-#: sbin/rt-send-digest:151
+#: sbin/rt-email-digest:151
 msgid "Failed to parse template"
 msgstr ""
 
@@ -3960,7 +3960,7 @@
 msgid "Message could not be recorded"
 msgstr "Wiadomość nie mogła zostać zapisana"
 
-#: sbin/rt-send-digest:268
+#: sbin/rt-email-digest:268
 msgid "Message for user"
 msgstr ""
 
@@ -5297,11 +5297,11 @@
 msgid "Principal %1 not found."
 msgstr "Nie udało się wyszukać zarządzającego %1."
 
-#: sbin/rt-send-digest:73
+#: sbin/rt-email-digest:73
 msgid "Print the resulting digest messages to STDOUT; don't mail them. Do not mark them as sent"
 msgstr ""
 
-#: sbin/rt-send-digest:75
+#: sbin/rt-email-digest:75
 msgid "Print this message"
 msgstr ""
 
@@ -6386,7 +6386,7 @@
 msgid "Skip Menu"
 msgstr "Pomiń menu"
 
-#: sbin/rt-send-digest:264
+#: sbin/rt-email-digest:264
 msgid "Skipping disabled user"
 msgstr ""
 
@@ -6422,7 +6422,7 @@
 msgid "Sorting"
 msgstr ""
 
-#: sbin/rt-send-digest:71
+#: sbin/rt-email-digest:71
 msgid "Specify whether this is a daily or weekly run."
 msgstr ""
 
@@ -7453,7 +7453,7 @@
 msgid "Upload your changes"
 msgstr "Zapisz swoje zmiany"
 
-#: sbin/rt-send-digest:65
+#: sbin/rt-email-digest:65
 msgid "Usage: "
 msgstr ""
 

Modified: rt/3.8/branches/3.8.0-releng/lib/RT/I18N/pt_br.po
==============================================================================
--- rt/3.8/branches/3.8.0-releng/lib/RT/I18N/pt_br.po	(original)
+++ rt/3.8/branches/3.8.0-releng/lib/RT/I18N/pt_br.po	Fri Jun 20 16:56:18 2008
@@ -8,7 +8,7 @@
 "Content-Transfer-Encoding: 8bit\n"
 "MIME-Version: 1.0\n"
 "PO-Revision-Date: 2008-02-23 11:48-0300\n"
-"Project-Id-Version: RT 3.6.x - pt_br\n"
+"Project-Id-Version: RT 3.8.x\n"
 "Language-Team: Portugues Brasileiro <pt at li.org>\n"
 "X-Generator: KBabel 1.11.4\n"
 "MIME-Version: 1.0\n"
@@ -331,7 +331,7 @@
 msgid "%1 is a tool to act on tickets from an external scheduling tool, such as cron."
 msgstr "%1 é uma ferramenta que age sobre os tíquetes a partir de uma ferramenta  externa de agendamento, como cron."
 
-#: sbin/rt-send-digest:69
+#: sbin/rt-email-digest:69
 #. ($0)
 msgid "%1 is a utility, meant to be run from cron, that dispatches all deferred RT notifications as a per-user digest."
 msgstr ""
@@ -2768,7 +2768,7 @@
 msgid "Enter up to %1 values with autocompletion"
 msgstr ""
 
-#: sbin/rt-send-digest:80 share/html/Elements/Login:78 share/html/SelfService/Error.html:48 share/html/SelfService/Error.html:49
+#: sbin/rt-email-digest:80 share/html/Elements/Login:78 share/html/SelfService/Error.html:48 share/html/SelfService/Error.html:49
 msgid "Error"
 msgstr "Erro"
 
@@ -2880,11 +2880,11 @@
 msgid "Failed to load object for %1"
 msgstr "Falha ao carregar objeto para %1"
 
-#: sbin/rt-send-digest:143
+#: sbin/rt-email-digest:143
 msgid "Failed to load template"
 msgstr ""
 
-#: sbin/rt-send-digest:151
+#: sbin/rt-email-digest:151
 msgid "Failed to parse template"
 msgstr ""
 
@@ -3946,7 +3946,7 @@
 msgid "Message could not be recorded"
 msgstr "Mensagem não pode ser gravada"
 
-#: sbin/rt-send-digest:268
+#: sbin/rt-email-digest:268
 msgid "Message for user"
 msgstr ""
 
@@ -5273,11 +5273,11 @@
 msgid "Principal %1 not found."
 msgstr "Usuário/Grupo %1 não encontrado."
 
-#: sbin/rt-send-digest:73
+#: sbin/rt-email-digest:73
 msgid "Print the resulting digest messages to STDOUT; don't mail them. Do not mark them as sent"
 msgstr ""
 
-#: sbin/rt-send-digest:75
+#: sbin/rt-email-digest:75
 msgid "Print this message"
 msgstr ""
 
@@ -6349,7 +6349,7 @@
 msgid "Skip Menu"
 msgstr "Saltar Menu"
 
-#: sbin/rt-send-digest:264
+#: sbin/rt-email-digest:264
 msgid "Skipping disabled user"
 msgstr ""
 
@@ -6383,7 +6383,7 @@
 msgid "Sorting"
 msgstr ""
 
-#: sbin/rt-send-digest:71
+#: sbin/rt-email-digest:71
 msgid "Specify whether this is a daily or weekly run."
 msgstr ""
 
@@ -7413,7 +7413,7 @@
 msgid "Upload your changes"
 msgstr "Enviar suas alterações"
 
-#: sbin/rt-send-digest:65
+#: sbin/rt-email-digest:65
 msgid "Usage: "
 msgstr ""
 

Modified: rt/3.8/branches/3.8.0-releng/lib/RT/I18N/ru.po
==============================================================================
--- rt/3.8/branches/3.8.0-releng/lib/RT/I18N/ru.po	(original)
+++ rt/3.8/branches/3.8.0-releng/lib/RT/I18N/ru.po	Fri Jun 20 16:56:18 2008
@@ -4,7 +4,7 @@
 # Andrew Kornilov <akornilov at gmail.com>, 2004, 2005, 2006.
 msgid ""
 msgstr ""
-"Project-Id-Version: RT 3.6.x\n"
+"Project-Id-Version: RT 3.8.x\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: (null)\n"
 "PO-Revision-Date: 2006-12-19 13:54+0200\n"
@@ -313,7 +313,7 @@
 msgid "%1 is a tool to act on tickets from an external scheduling tool, such as cron."
 msgstr ""
 
-#: sbin/rt-send-digest:69
+#: sbin/rt-email-digest:69
 #. ($0)
 msgid "%1 is a utility, meant to be run from cron, that dispatches all deferred RT notifications as a per-user digest."
 msgstr ""
@@ -2815,7 +2815,7 @@
 msgid "Enter up to %1 values with autocompletion"
 msgstr ""
 
-#: sbin/rt-send-digest:80 share/html/Elements/Login:78 share/html/SelfService/Error.html:48 share/html/SelfService/Error.html:49
+#: sbin/rt-email-digest:80 share/html/Elements/Login:78 share/html/SelfService/Error.html:48 share/html/SelfService/Error.html:49
 msgid "Error"
 msgstr "Ошибка"
 
@@ -2939,11 +2939,11 @@
 msgid "Failed to load object for %1"
 msgstr "Ошибка загрузки объекта для %1"
 
-#: sbin/rt-send-digest:143
+#: sbin/rt-email-digest:143
 msgid "Failed to load template"
 msgstr ""
 
-#: sbin/rt-send-digest:151
+#: sbin/rt-email-digest:151
 msgid "Failed to parse template"
 msgstr ""
 
@@ -4003,7 +4003,7 @@
 msgid "Message could not be recorded"
 msgstr "Невозможно записать сообщение"
 
-#: sbin/rt-send-digest:268
+#: sbin/rt-email-digest:268
 msgid "Message for user"
 msgstr ""
 
@@ -5372,11 +5372,11 @@
 msgid "Principal %1 not found."
 msgstr "Пользователь %1 не найден."
 
-#: sbin/rt-send-digest:73
+#: sbin/rt-email-digest:73
 msgid "Print the resulting digest messages to STDOUT; don't mail them. Do not mark them as sent"
 msgstr ""
 
-#: sbin/rt-send-digest:75
+#: sbin/rt-email-digest:75
 msgid "Print this message"
 msgstr ""
 
@@ -6476,7 +6476,7 @@
 msgid "Skip Menu"
 msgstr "Пропустить меню"
 
-#: sbin/rt-send-digest:264
+#: sbin/rt-email-digest:264
 msgid "Skipping disabled user"
 msgstr ""
 
@@ -6512,7 +6512,7 @@
 msgid "Sorting"
 msgstr ""
 
-#: sbin/rt-send-digest:71
+#: sbin/rt-email-digest:71
 msgid "Specify whether this is a daily or weekly run."
 msgstr ""
 
@@ -7567,7 +7567,7 @@
 msgid "Upload your changes"
 msgstr "Загрузить ваши изменения."
 
-#: sbin/rt-send-digest:65
+#: sbin/rt-email-digest:65
 msgid "Usage: "
 msgstr ""
 

Modified: rt/3.8/branches/3.8.0-releng/lib/RT/I18N/sv.po
==============================================================================
--- rt/3.8/branches/3.8.0-releng/lib/RT/I18N/sv.po	(original)
+++ rt/3.8/branches/3.8.0-releng/lib/RT/I18N/sv.po	Fri Jun 20 16:56:18 2008
@@ -1,6 +1,6 @@
 msgid ""
 msgstr ""
-"Project-Id-Version: \n"
+"Project-Id-Version: RT 3.8.x\n"
 "POT-Creation-Date: \n"
 "PO-Revision-Date: 2007-03-16 12:57+0100\n"
 "Last-Translator: Heidi Senderovitz\n"
@@ -279,7 +279,7 @@
 msgid "%1 is a tool to act on tickets from an external scheduling tool, such as cron."
 msgstr "%1 är ett verktyg som reagerar på ärenden från ett externt planeringsverktyg, så som cron."
 
-#: sbin/rt-send-digest:69
+#: sbin/rt-email-digest:69
 #. ($0)
 msgid "%1 is a utility, meant to be run from cron, that dispatches all deferred RT notifications as a per-user digest."
 msgstr ""
@@ -2228,7 +2228,7 @@
 msgid "Enter up to %1 values with autocompletion"
 msgstr ""
 
-#: sbin/rt-send-digest:80 share/html/Elements/Login:78 share/html/SelfService/Error.html:48 share/html/SelfService/Error.html:49
+#: sbin/rt-email-digest:80 share/html/Elements/Login:78 share/html/SelfService/Error.html:48 share/html/SelfService/Error.html:49
 msgid "Error"
 msgstr "Fel"
 
@@ -2328,11 +2328,11 @@
 msgid "Failed to load object for %1"
 msgstr "Misslyckades med att läsa in objekt för %1"
 
-#: sbin/rt-send-digest:143
+#: sbin/rt-email-digest:143
 msgid "Failed to load template"
 msgstr ""
 
-#: sbin/rt-send-digest:151
+#: sbin/rt-email-digest:151
 msgid "Failed to parse template"
 msgstr ""
 
@@ -3276,7 +3276,7 @@
 msgid "Message could not be recorded"
 msgstr "Meddelande sparades inte"
 
-#: sbin/rt-send-digest:268
+#: sbin/rt-email-digest:268
 msgid "Message for user"
 msgstr ""
 
@@ -4453,11 +4453,11 @@
 msgid "Principal %1 not found."
 msgstr "Principal %1 ej funnen."
 
-#: sbin/rt-send-digest:73
+#: sbin/rt-email-digest:73
 msgid "Print the resulting digest messages to STDOUT; don't mail them. Do not mark them as sent"
 msgstr ""
 
-#: sbin/rt-send-digest:75
+#: sbin/rt-email-digest:75
 msgid "Print this message"
 msgstr ""
 
@@ -5357,7 +5357,7 @@
 msgid "Skip Menu"
 msgstr "Hoppa över meny"
 
-#: sbin/rt-send-digest:264
+#: sbin/rt-email-digest:264
 msgid "Skipping disabled user"
 msgstr ""
 
@@ -5377,7 +5377,7 @@
 msgid "Sorting"
 msgstr ""
 
-#: sbin/rt-send-digest:71
+#: sbin/rt-email-digest:71
 msgid "Specify whether this is a daily or weekly run."
 msgstr ""
 
@@ -6224,7 +6224,7 @@
 msgid "Upload your changes"
 msgstr "Överför dina ändringar"
 
-#: sbin/rt-send-digest:65
+#: sbin/rt-email-digest:65
 msgid "Usage: "
 msgstr ""
 

Modified: rt/3.8/branches/3.8.0-releng/lib/RT/I18N/tr.po
==============================================================================
--- rt/3.8/branches/3.8.0-releng/lib/RT/I18N/tr.po	(original)
+++ rt/3.8/branches/3.8.0-releng/lib/RT/I18N/tr.po	Fri Jun 20 16:56:18 2008
@@ -2,7 +2,7 @@
 # First Author: Burak Gürsoy <burak at cpan.org>, Jun 2007
 msgid ""
 msgstr ""
-"Project-Id-Version: RT 3.6.x\n"
+"Project-Id-Version: RT 3.8.x\n"
 "POT-Creation-Date: 2007-15-06 22:30+0200\n"
 "PO-Revision-Date: 2007-15-06 22:30+0200\n"
 "Last-Translator: Burak Gürsoy <burak at cpan.org>\n"
@@ -281,7 +281,7 @@
 msgid "%1 is a tool to act on tickets from an external scheduling tool, such as cron."
 msgstr "%1, biletlere dışarıdan müdahale edebilen bir araçtır (cron gibi)"
 
-#: sbin/rt-send-digest:69
+#: sbin/rt-email-digest:69
 #. ($0)
 msgid "%1 is a utility, meant to be run from cron, that dispatches all deferred RT notifications as a per-user digest."
 msgstr ""
@@ -2230,7 +2230,7 @@
 msgid "Enter up to %1 values with autocompletion"
 msgstr ""
 
-#: sbin/rt-send-digest:80 share/html/Elements/Login:78 share/html/SelfService/Error.html:48 share/html/SelfService/Error.html:49
+#: sbin/rt-email-digest:80 share/html/Elements/Login:78 share/html/SelfService/Error.html:48 share/html/SelfService/Error.html:49
 msgid "Error"
 msgstr "Hata"
 
@@ -2330,11 +2330,11 @@
 msgid "Failed to load object for %1"
 msgstr "%1 için nesne yüklenemedi"
 
-#: sbin/rt-send-digest:143
+#: sbin/rt-email-digest:143
 msgid "Failed to load template"
 msgstr ""
 
-#: sbin/rt-send-digest:151
+#: sbin/rt-email-digest:151
 msgid "Failed to parse template"
 msgstr ""
 
@@ -3278,7 +3278,7 @@
 msgid "Message could not be recorded"
 msgstr "İleti kaydedilemedi"
 
-#: sbin/rt-send-digest:268
+#: sbin/rt-email-digest:268
 msgid "Message for user"
 msgstr ""
 
@@ -4455,11 +4455,11 @@
 msgid "Principal %1 not found."
 msgstr "%1 yetkilisi bulunamadı"
 
-#: sbin/rt-send-digest:73
+#: sbin/rt-email-digest:73
 msgid "Print the resulting digest messages to STDOUT; don't mail them. Do not mark them as sent"
 msgstr ""
 
-#: sbin/rt-send-digest:75
+#: sbin/rt-email-digest:75
 msgid "Print this message"
 msgstr ""
 
@@ -5359,7 +5359,7 @@
 msgid "Skip Menu"
 msgstr "Menüyü Geç"
 
-#: sbin/rt-send-digest:264
+#: sbin/rt-email-digest:264
 msgid "Skipping disabled user"
 msgstr ""
 
@@ -5379,7 +5379,7 @@
 msgid "Sorting"
 msgstr ""
 
-#: sbin/rt-send-digest:71
+#: sbin/rt-email-digest:71
 msgid "Specify whether this is a daily or weekly run."
 msgstr ""
 
@@ -6226,7 +6226,7 @@
 msgid "Upload your changes"
 msgstr "Değişikliklerinizi yükleyin"
 
-#: sbin/rt-send-digest:65
+#: sbin/rt-email-digest:65
 msgid "Usage: "
 msgstr ""
 

Modified: rt/3.8/branches/3.8.0-releng/lib/RT/I18N/zh_cn.po
==============================================================================
--- rt/3.8/branches/3.8.0-releng/lib/RT/I18N/zh_cn.po	(original)
+++ rt/3.8/branches/3.8.0-releng/lib/RT/I18N/zh_cn.po	Fri Jun 20 16:56:18 2008
@@ -1,7 +1,7 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: RT 3.6.x\n"
+"Project-Id-Version: RT 3.8.x\n"
 "PO-Revision-Date: 2007-12-09 13:05+0800\n"
 "Last-Translator: Audrey Tang <cpan at audreyt.org>\n"
 "Language-Team: rt-devel <rt-devel at lists.bestpractical.com>\n"
@@ -339,7 +339,7 @@
 msgid "%1 is a tool to act on tickets from an external scheduling tool, such as cron."
 msgstr "%1 是从外部排程程序(如 cron)来对申请单进行操作的工具。"
 
-#: sbin/rt-send-digest:69
+#: sbin/rt-email-digest:69
 #. ($0)
 msgid "%1 is a utility, meant to be run from cron, that dispatches all deferred RT notifications as a per-user digest."
 msgstr ""
@@ -3452,7 +3452,7 @@
 msgid "EntryTime"
 msgstr "时间填表"
 
-#: sbin/rt-send-digest:80 share/html/Elements/Login:78 share/html/SelfService/Error.html:48 share/html/SelfService/Error.html:49
+#: sbin/rt-email-digest:80 share/html/Elements/Login:78 share/html/SelfService/Error.html:48 share/html/SelfService/Error.html:49
 msgid "Error"
 msgstr "错误"
 
@@ -3596,11 +3596,11 @@
 msgid "Failed to load object for %1"
 msgstr "无法为 %1 加载对象。"
 
-#: sbin/rt-send-digest:143
+#: sbin/rt-email-digest:143
 msgid "Failed to load template"
 msgstr ""
 
-#: sbin/rt-send-digest:151
+#: sbin/rt-email-digest:151
 msgid "Failed to parse template"
 msgstr ""
 
@@ -4980,7 +4980,7 @@
 msgid "Message could not be recorded"
 msgstr "无法纪录讯息"
 
-#: sbin/rt-send-digest:268
+#: sbin/rt-email-digest:268
 msgid "Message for user"
 msgstr ""
 
@@ -6613,11 +6613,11 @@
 msgid "Principal %1 not found."
 msgstr "找不到单位 %1。"
 
-#: sbin/rt-send-digest:73
+#: sbin/rt-email-digest:73
 msgid "Print the resulting digest messages to STDOUT; don't mail them. Do not mark them as sent"
 msgstr ""
 
-#: sbin/rt-send-digest:75
+#: sbin/rt-email-digest:75
 msgid "Print this message"
 msgstr ""
 
@@ -7893,7 +7893,7 @@
 msgid "Skip Menu"
 msgstr "略过选单"
 
-#: sbin/rt-send-digest:264
+#: sbin/rt-email-digest:264
 msgid "Skipping disabled user"
 msgstr ""
 
@@ -7925,7 +7925,7 @@
 msgid "Sorting"
 msgstr ""
 
-#: sbin/rt-send-digest:71
+#: sbin/rt-email-digest:71
 msgid "Specify whether this is a daily or weekly run."
 msgstr ""
 
@@ -9084,7 +9084,7 @@
 msgid "Upload your changes"
 msgstr "上载您的更动"
 
-#: sbin/rt-send-digest:65
+#: sbin/rt-email-digest:65
 msgid "Usage: "
 msgstr ""
 

Modified: rt/3.8/branches/3.8.0-releng/lib/RT/I18N/zh_tw.po
==============================================================================
--- rt/3.8/branches/3.8.0-releng/lib/RT/I18N/zh_tw.po	(original)
+++ rt/3.8/branches/3.8.0-releng/lib/RT/I18N/zh_tw.po	Fri Jun 20 16:56:18 2008
@@ -1,7 +1,7 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: RT 3.6.x\n"
+"Project-Id-Version: RT 3.8.x\n"
 "PO-Revision-Date: 2008-04-29 14:37-0400\n"
 "Last-Translator: Audrey Tang <cpan at audreyt.org>\n"
 "Language-Team: rt-devel <rt-devel at lists.bestpractical.com>\n"
@@ -339,7 +339,7 @@
 msgid "%1 is a tool to act on tickets from an external scheduling tool, such as cron."
 msgstr "%1 是從外部排程程式(如 cron)來對申請單進行操作的工具。"
 
-#: sbin/rt-send-digest:69
+#: sbin/rt-email-digest:69
 #. ($0)
 msgid "%1 is a utility, meant to be run from cron, that dispatches all deferred RT notifications as a per-user digest."
 msgstr ""
@@ -3448,7 +3448,7 @@
 msgid "EntryTime"
 msgstr "時間填表"
 
-#: sbin/rt-send-digest:80 share/html/Elements/Login:78 share/html/SelfService/Error.html:48 share/html/SelfService/Error.html:49
+#: sbin/rt-email-digest:80 share/html/Elements/Login:78 share/html/SelfService/Error.html:48 share/html/SelfService/Error.html:49
 msgid "Error"
 msgstr "錯誤"
 
@@ -3592,11 +3592,11 @@
 msgid "Failed to load object for %1"
 msgstr "無法為 %1 載入物件。"
 
-#: sbin/rt-send-digest:143
+#: sbin/rt-email-digest:143
 msgid "Failed to load template"
 msgstr ""
 
-#: sbin/rt-send-digest:151
+#: sbin/rt-email-digest:151
 msgid "Failed to parse template"
 msgstr ""
 
@@ -4964,7 +4964,7 @@
 msgid "Message could not be recorded"
 msgstr "無法紀錄訊息"
 
-#: sbin/rt-send-digest:268
+#: sbin/rt-email-digest:268
 msgid "Message for user"
 msgstr ""
 
@@ -6589,11 +6589,11 @@
 msgid "Principal %1 not found."
 msgstr "找不到單位 %1。"
 
-#: sbin/rt-send-digest:73
+#: sbin/rt-email-digest:73
 msgid "Print the resulting digest messages to STDOUT; don't mail them. Do not mark them as sent"
 msgstr ""
 
-#: sbin/rt-send-digest:75
+#: sbin/rt-email-digest:75
 msgid "Print this message"
 msgstr ""
 
@@ -7869,7 +7869,7 @@
 msgid "Skip Menu"
 msgstr "略過選單"
 
-#: sbin/rt-send-digest:264
+#: sbin/rt-email-digest:264
 msgid "Skipping disabled user"
 msgstr ""
 
@@ -7901,7 +7901,7 @@
 msgid "Sorting"
 msgstr ""
 
-#: sbin/rt-send-digest:71
+#: sbin/rt-email-digest:71
 msgid "Specify whether this is a daily or weekly run."
 msgstr ""
 
@@ -9060,7 +9060,7 @@
 msgid "Upload your changes"
 msgstr "上載您的更動"
 
-#: sbin/rt-send-digest:65
+#: sbin/rt-email-digest:65
 msgid "Usage: "
 msgstr ""
 

Modified: rt/3.8/branches/3.8.0-releng/lib/RT/Installer.pm
==============================================================================
--- rt/3.8/branches/3.8.0-releng/lib/RT/Installer.pm	(original)
+++ rt/3.8/branches/3.8.0-releng/lib/RT/Installer.pm	Fri Jun 20 16:56:18 2008
@@ -1,40 +1,40 @@
 # BEGIN BPS TAGGED BLOCK {{{
-# 
+#
 # COPYRIGHT:
-# 
+#
 # This software is Copyright (c) 1996-2008 Best Practical Solutions, LLC
 #                                          <jesse 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
@@ -43,7 +43,7 @@
 # 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 }}}
 
 package RT::Installer;
@@ -55,7 +55,7 @@
     DatabaseType => {
         Widget          => '/Widgets/Form/Select',
         WidgetArguments => {
-            Description => 'Database type',
+            Description => 'Database type',    # loc
             Values      => [
                 grep {
                     my $m = 'DBD::' . $_;
@@ -63,10 +63,10 @@
                   } qw/mysql Pg SQLite Oracle/
             ],
             ValuesLabel => {
-                mysql  => 'MySQL',                                          #loc
-                Pg     => 'PostgreSQL',                                     #loc
-                SQLite => 'SQLite',  #loc
-                Oracle => 'Oracle',                                         #loc
+                mysql  => 'MySQL',             #loc
+                Pg     => 'PostgreSQL',        #loc
+                SQLite => 'SQLite',            #loc
+                Oracle => 'Oracle',            #loc
             },
         },
     },
@@ -91,14 +91,14 @@
     DatabaseName => {
         Widget          => '/Widgets/Form/String',
         WidgetArguments => {
-            Description => 'Database name', #loc
+            Description => 'Database name',                       #loc
         },
     },
     DatabaseAdmin => {
         Widget          => '/Widgets/Form/String',
         WidgetArguments => {
             Default => 1,
-            DefaultLabel => "Leave this alone to use a default value",
+            DefaultLabel => "Leave this alone to use a default value", #loc
             Description => 'DBA username', # loc
         },
     },
@@ -114,16 +114,14 @@
     DatabaseUser => {
         Widget          => '/Widgets/Form/String',
         WidgetArguments => {
-            Description =>
-              'RT database username', #loc
+            Description => 'Database username for RT',                      #loc
         },
     },
     DatabasePassword => {
         Widget          => '/Widgets/Form/String',
         WidgetArguments => {
-            Description =>
-              'RT database password',    #loc
-            Type => 'password',
+            Description => 'Database password for RT',                      #loc
+            Type        => 'password',
         },
     },
     DatabaseRequireSSL => {
@@ -142,7 +140,7 @@
     MinimumPasswordLength => {
         Widget          => '/Widgets/Form/Integer',
         WidgetArguments => {
-            Description => 'Minimum password length',         #loc
+            Description => 'Minimum password length',    #loc
         },
     },
     Password => {
@@ -163,33 +161,35 @@
     CommentAddress => {
         Widget          => '/Widgets/Form/String',
         WidgetArguments => {
-            Description => 'Comment address',                #loc
-            Hints => 'the default addresses that will be listed in From: and Reply-To: headers of comment mail.'
+            Description => 'Comment address',                           #loc
+            Hints =>
+'the default addresses that will be listed in From: and Reply-To: headers of comment mail.' #loc
         },
     },
     CorrespondAddress => {
         Widget          => '/Widgets/Form/String',
         WidgetArguments => {
-            Description => 'Correspond address',             #loc
-            Hints => 'the default addresses that will be listed in From: and Reply-To: headers of correspondence mail.'
+            Description => 'Correspond address',    #loc
+            Hints =>
+'the default addresses that will be listed in From: and Reply-To: headers of correspondence mail.' #loc
         },
     },
     SendmailArguments => {
         Widget          => '/Widgets/Form/String',
         WidgetArguments => {
-            Description => 'Sendmail arguments',             #loc
+            Description => 'Sendmail arguments',    #loc
         },
     },
     SendmailBounceArguments => {
         Widget          => '/Widgets/Form/String',
         WidgetArguments => {
-            Description => 'Sendmail bounce arguments',       #loc
+            Description => 'Sendmail bounce arguments',    #loc
         },
     },
     SendmailPath => {
         Widget          => '/Widgets/Form/String',
         WidgetArguments => {
-            Description => 'where is sendmail command',                  #loc
+            Description => 'where is sendmail command',    #loc
         },
     },
     WebDomain => {
@@ -201,7 +201,7 @@
     WebPort => {
         Widget          => '/Widgets/Form/Integer',
         WidgetArguments => {
-            Description => 'web port',                  #loc
+            Description => 'web port',                     #loc
         },
     },
 
@@ -213,10 +213,10 @@
     $Meta{Timezone} = {
         Widget          => '/Widgets/Form/Select',
         WidgetArguments => {
-            Description => 'Timezone',
+            Description => 'Timezone',                              #loc
             Values      => [ '', DateTime::TimeZone->all_names ],
             ValuesLabel => {
-                '' => 'System Default',    #loc
+                '' => 'System Default',                             #loc
             },
         },
     };
@@ -224,7 +224,9 @@
 else {
     $Meta{Timezone} = {
         Widget          => '/Widgets/Form/String',
-        WidgetArguments => { Description => 'Timezone', },
+        WidgetArguments => {
+            Description => 'Timezone',                              #loc
+        },
     };
 }
 
@@ -257,7 +259,7 @@
 
 sub ConfigFile {
     require File::Spec;
-    return File::Spec->catfile($RT::EtcPath, 'RT_SiteConfig.pm');
+    return File::Spec->catfile( $RT::EtcPath, 'RT_SiteConfig.pm' );
 }
 
 sub SaveConfig {
@@ -276,15 +278,16 @@
 
     # make organization the same as rtname
     $RT::Installer->{InstallConfig}{Organization} =
-        $RT::Installer->{InstallConfig}{rtname};
+      $RT::Installer->{InstallConfig}{rtname};
+
+    if ( open my $fh, '>', $file ) {
+        for ( keys %{ $RT::Installer->{InstallConfig} } ) {
 
-    if ( open my $fh, '>', $file  ) {
-        for ( keys %{$RT::Installer->{InstallConfig}} ) {
             # we don't want to store root's password in config.
             next if $_ eq 'Password';
 
-            $RT::Installer->{InstallConfig}{$_} = '' unless defined
-                $RT::Installer->{InstallConfig}{$_};
+            $RT::Installer->{InstallConfig}{$_} = ''
+              unless defined $RT::Installer->{InstallConfig}{$_};
 
             # remove obsolete settings we'll add later
             $content =~ s/^\s* Set \s* \( \s* \$$_ .*$//xm;

Modified: rt/3.8/branches/3.8.0-releng/lib/RT/Interface/Web.pm
==============================================================================
--- rt/3.8/branches/3.8.0-releng/lib/RT/Interface/Web.pm	(original)
+++ rt/3.8/branches/3.8.0-releng/lib/RT/Interface/Web.pm	Fri Jun 20 16:56:18 2008
@@ -236,6 +236,42 @@
     # $HTML::Mason::Commands::r->headers_out->{'Last-Modified'} = $date->RFC2616;
 }
 
+sub StripContent {
+    my %args    = @_;
+    my $content = $args{Content};
+    my $html    = ( ( $args{ContentType} || '' ) eq "text/html" );
+    my $sigonly = $args{StripSignature};
+
+    # Save us from undef warnings
+    return '' unless defined $content;
+
+    # Make the content have no 'weird' newlines in it
+    $content =~ s/\r+\n/\n/g;
+
+    # Filter empty content when type is text/html
+    return '' if $html && $content =~ m{^\s*(?:<br[^>]*/?>)*\s*$}s;
+
+    # If we aren't supposed to strip the sig, just bail now.
+    return $content unless $sigonly;
+
+    # Find the signature
+    my $sig = $args{'CurrentUser'}->UserObj->Signature || '';
+    $sig =~ s/^\s*|\s*$//g;
+
+    # Check for plaintext sig
+    return '' if not $html and $content =~ /^\s*(--)?\s*\Q$sig\E\s*$/;
+
+    # Check for html-formatted sig
+    RT::Interface::Web::EscapeUTF8( \$sig );
+    return ''
+        if $html
+        and $content
+        =~ m{^\s*<p>\s*(--)?\s*<br[^>]*?/?>\s*\Q$sig\E\s*</p>\s*$}s;
+
+    # Pass it through
+    return $content;
+}
+
 
 package HTML::Mason::Commands;
 
@@ -354,11 +390,18 @@
         $starts->Set( Format => 'unknown', Value => $ARGS{'Starts'} );
     }
 
+    my $sigless = RT::Interface::Web::StripContent(
+        Content        => $ARGS{Content},
+        ContentType    => $ARGS{ContentType},
+        StripSignature => 1,
+        CurrentUser    => $session{'CurrentUser'},
+    );
+
     my $MIMEObj = MakeMIMEEntity(
         Subject             => $ARGS{'Subject'},
         From                => $ARGS{'From'},
         Cc                  => $ARGS{'Cc'},
-        Body                => $ARGS{'Content'},
+        Body                => $sigless,
         Type                => $ARGS{'ContentType'},
     );
 
@@ -547,47 +590,38 @@
 
 sub ProcessUpdateMessage {
 
-    #TODO document what else this takes.
     my %args = (
-        ARGSRef   => undef,
-        TicketObj => undef,
+        ARGSRef           => undef,
+        TicketObj         => undef,
         SkipSignatureOnly => 1,
         @_
     );
 
-
     if ( $args{ARGSRef}->{'UpdateAttachments'}
-        && !keys %{$args{ARGSRef}->{'UpdateAttachments'}} )
+        && !keys %{ $args{ARGSRef}->{'UpdateAttachments'} } )
     {
         delete $args{ARGSRef}->{'UpdateAttachments'};
     }
 
-    return () unless    $args{ARGSRef}->{'UpdateTimeWorked'}
-                     || $args{ARGSRef}->{'UpdateAttachments'}
-                     || defined $args{ARGSRef}->{'UpdateContent'};
-
-    #Make the update content have no 'weird' newlines in it
-    $args{ARGSRef}->{'UpdateContent'} =~ s/\r+\n/\n/g if $args{ARGSRef}->{'UpdateContent'};
-
-    # skip updates if the content contains only user's signature
-    # and we don't update other fields
-    if ( $args{'SkipSignatureOnly'} ) {
-        my $sig = $args{'TicketObj'}->CurrentUser->UserObj->Signature || '';
-        $sig =~ s/^\s*|\s*$//g;
-        if ($args{ARGSRef}->{'UpdateContent'} =~ /^\s*(--)?\s*\Q$sig\E\s*$/
-            or (    defined $args{ARGSRef}->{'UpdateContentType'}
-                and $args{ARGSRef}->{'UpdateContentType'} eq "text/html"
-                and $args{ARGSRef}->{'UpdateContent'}
-                =~ /^\s*<p>\s*(--)?\s*<br\s*\/?>\s*\Q$sig\E\s*<\/p>\s*$/ )
-            )
-        {
-            return () unless $args{ARGSRef}->{'UpdateTimeWorked'} ||
-                             $args{ARGSRef}->{'UpdateAttachments'};
+    # Strip the signature
+    $args{ARGSRef}->{UpdateContent} = RT::Interface::Web::StripContent(
+        Content        => $args{ARGSRef}->{UpdateContent},
+        ContentType    => $args{ARGSRef}->{UpdateContentType},
+        StripSignature => $args{SkipSignatureOnly},
+        CurrentUser    => $args{'TicketObj'}->CurrentUser,
+    );
 
-            # we have to create transaction, but we don't create attachment
-            # XXX: this couldn't work as expected
-            $args{ARGSRef}->{'UpdateContent'} = '';
+    # If, after stripping the signature, we have no message, move the
+    # UpdateTimeWorked into adjusted TimeWorked, so that a later
+    # ProcessBasics can deal -- then bail out.
+    if ( not $args{ARGSRef}->{'UpdateAttachments'}
+        and not length $args{ARGSRef}->{'UpdateContent'} )
+    {
+        if ( $args{ARGSRef}->{'UpdateTimeWorked'} ) {
+            $args{ARGSRef}->{TimeWorked} = $args{TicketObj}->TimeWorked
+                + delete $args{ARGSRef}->{'UpdateTimeWorked'};
         }
+        return;
     }
 
     if ( $args{ARGSRef}->{'UpdateSubject'} eq $args{'TicketObj'}->Subject ) {
@@ -608,75 +642,74 @@
     my $old_txn = RT::Transaction->new( $session{'CurrentUser'} );
     if ( $args{ARGSRef}->{'QuoteTransaction'} ) {
         $old_txn->Load( $args{ARGSRef}->{'QuoteTransaction'} );
-    }
-    else {
+    } else {
         $old_txn = $args{TicketObj}->Transactions->First();
     }
 
     if ( my $msg = $old_txn->Message->First ) {
-        RT::Interface::Email::SetInReplyTo( Message => $Message, InReplyTo => $msg );
+        RT::Interface::Email::SetInReplyTo(
+            Message   => $Message,
+            InReplyTo => $msg
+        );
     }
 
     if ( $args{ARGSRef}->{'UpdateAttachments'} ) {
         $Message->make_multipart;
         $Message->add_part($_)
-           foreach values %{ $args{ARGSRef}->{'UpdateAttachments'} };
+            foreach values %{ $args{ARGSRef}->{'UpdateAttachments'} };
     }
 
     if ( $args{ARGSRef}->{'AttachTickets'} ) {
         require RT::Action::SendEmail;
         RT::Action::SendEmail->AttachTickets(
             RT::Action::SendEmail->AttachTickets,
-            ref $args{ARGSRef}->{'AttachTickets'}?
-                @{ $args{ARGSRef}->{'AttachTickets'} }
-                :( $args{ARGSRef}->{'AttachTickets'} )
+            ref $args{ARGSRef}->{'AttachTickets'}
+            ? @{ $args{ARGSRef}->{'AttachTickets'} }
+            : ( $args{ARGSRef}->{'AttachTickets'} )
         );
     }
 
-           my  $bcc = $args{ARGSRef}->{'UpdateBcc'};
-           my  $cc = $args{ARGSRef}->{'UpdateCc'};
+    my $bcc = $args{ARGSRef}->{'UpdateBcc'};
+    my $cc  = $args{ARGSRef}->{'UpdateCc'};
 
     my %message_args = (
-            CcMessageTo  => $cc,
-            BccMessageTo => $bcc,
-            Sign         => $args{ARGSRef}->{'Sign'},
-            Encrypt      => $args{ARGSRef}->{'Encrypt'},
-            MIMEObj      => $Message,
-            TimeTaken    => $args{ARGSRef}->{'UpdateTimeWorked'});
-
+        CcMessageTo  => $cc,
+        BccMessageTo => $bcc,
+        Sign         => $args{ARGSRef}->{'Sign'},
+        Encrypt      => $args{ARGSRef}->{'Encrypt'},
+        MIMEObj      => $Message,
+        TimeTaken    => $args{ARGSRef}->{'UpdateTimeWorked'}
+    );
 
-    unless ( $args{'ARGRef'}->{'UpdateIgnoreAddressCheckboxes'} ) {
+    unless ( $args{'ARGSRef'}->{'UpdateIgnoreAddressCheckboxes'} ) {
         foreach my $key ( keys %{ $args{ARGSRef} } ) {
             next unless $key =~ /^Update(Cc|Bcc)-(.*)$/;
 
-            my $var   = ucfirst($1).'MessageTo';
+            my $var   = ucfirst($1) . 'MessageTo';
             my $value = $2;
-            if ( $message_args{ $var } ) {
-                $message_args{ $var } .= ", $value";
+            if ( $message_args{$var} ) {
+                $message_args{$var} .= ", $value";
             } else {
-                $message_args{ $var } = $value;
+                $message_args{$var} = $value;
             }
         }
     }
 
     my @results;
     if ( $args{ARGSRef}->{'UpdateType'} =~ /^(private|public)$/ ) {
-        my ( $Transaction, $Description, $Object ) = $args{TicketObj}->Comment(%message_args);
+        my ( $Transaction, $Description, $Object )
+            = $args{TicketObj}->Comment(%message_args);
         push( @results, $Description );
         $Object->UpdateCustomFields( ARGSRef => $args{ARGSRef} ) if $Object;
-    }
-    elsif ( $args{ARGSRef}->{'UpdateType'} eq 'response' ) {
-        my ( $Transaction, $Description, $Object ) =
-        $args{TicketObj}->Correspond(%message_args);
+    } elsif ( $args{ARGSRef}->{'UpdateType'} eq 'response' ) {
+        my ( $Transaction, $Description, $Object )
+            = $args{TicketObj}->Correspond(%message_args);
         push( @results, $Description );
         $Object->UpdateCustomFields( ARGSRef => $args{ARGSRef} ) if $Object;
-    }
-    else {
-        push(
-            @results,
+    } else {
+        push( @results,
             loc("Update type was neither correspondence nor comment.") . " "
-              . loc("Update not recorded.")
-        );
+                . loc("Update not recorded.") );
     }
     return @results;
 }

Modified: rt/3.8/branches/3.8.0-releng/lib/RT/Report/Tickets.pm
==============================================================================
--- rt/3.8/branches/3.8.0-releng/lib/RT/Report/Tickets.pm	(original)
+++ rt/3.8/branches/3.8.0-releng/lib/RT/Report/Tickets.pm	Fri Jun 20 16:56:18 2008
@@ -59,6 +59,12 @@
     my %args = (@_);
     my @fields = qw(
         Owner
+        Requestor
+        Cc
+        AdminCc
+        Watcher
+        Creator
+        LastUpdatedBy
         Status
         Queue
         DueDaily
@@ -193,6 +199,10 @@
             my ($ticket_cf_alias, $cf_alias) = $self->_CustomFieldJoin($cf->id, $cf->id, $cf_name);
             @args{qw(ALIAS FIELD)} = ($ticket_cf_alias, 'Content');
         }
+    } elsif ( $field =~ /^(?:Watcher|(Requestor|Cc|AdminCc))$/ ) {
+        my $type = $1;
+        my ($g_alias, $gm_alias, $u_alias) = $self->_WatcherJoin( $type );
+        @args{qw(ALIAS FIELD)} = ($u_alias, 'Name');
     }
     return %args;
 }

Modified: rt/3.8/branches/3.8.0-releng/lib/RT/SharedSetting.pm
==============================================================================
--- rt/3.8/branches/3.8.0-releng/lib/RT/SharedSetting.pm	(original)
+++ rt/3.8/branches/3.8.0-releng/lib/RT/SharedSetting.pm	Fri Jun 20 16:56:18 2008
@@ -350,16 +350,16 @@
     # allow passing in just an object to find its privacy string
     if (ref($obj_type)) {
         my $Object = $obj_type;
-        return $Object->isa('RT::User')   ? 'RT::User-'  . $Object->Id
-             : $Object->isa('RT::Group')  ? 'RT::Group-' . $Object->Id
-             : $Object->isa('RT::System') ? 'RT::System'
+        return $Object->isa('RT::User')   ? 'RT::User-'   . $Object->Id
+             : $Object->isa('RT::Group')  ? 'RT::Group-'  . $Object->Id
+             : $Object->isa('RT::System') ? 'RT::System-' . $Object->Id
              : undef;
     }
 
     return undef unless ($obj_type);  # undef workaround
     return $obj_type eq 'RT::User'   ? "$obj_type-$obj_id"
          : $obj_type eq 'RT::Group'  ? "$obj_type-$obj_id"
-         : $obj_type eq 'RT::System' ? $obj_type
+         : $obj_type eq 'RT::System' ? "$obj_type-$obj_id"
          : undef;
 }
 

Modified: rt/3.8/branches/3.8.0-releng/lib/RT/Template_Overlay.pm
==============================================================================
--- rt/3.8/branches/3.8.0-releng/lib/RT/Template_Overlay.pm	(original)
+++ rt/3.8/branches/3.8.0-releng/lib/RT/Template_Overlay.pm	Fri Jun 20 16:56:18 2008
@@ -341,23 +341,13 @@
         $content = "\n".$content;
     }
 
-    #Lets build our mime Entity
-
+    # Re-use the MIMEParser setup code from RT::EmailParser, which
+    # tries to use tmpdirs, falling back to in-memory parsing. But we
+    # don't stick the RT::EmailParser into a lexical because it cleans
+    # out the tmpdir it makes on DESTROY
     my $parser = MIME::Parser->new();
-
-    # On some situations TMPDIR is non-writable. sad but true.
-    $parser->output_to_core(1);
-    $parser->tmp_to_core(1);
-
-    #If someone includes a message, don't extract it
-    $parser->extract_nested_messages(1);
-
-    # Set up the prefix for files with auto-generated names:
-    $parser->output_prefix("part");
-
-    # If content length is <= 50000 bytes, store each msg as in-core scalar;
-    # Else, write to a disk file (the default action):
-    $parser->output_to_core(50000);
+    $self->{rtparser} = RT::EmailParser->new;
+    $self->{rtparser}->_SetupMIMEParser($parser);
 
     ### Should we forgive normally-fatal errors?
     $parser->ignore_errors(1);

Copied: rt/3.8/branches/3.8.0-releng/sbin/rt-email-group-admin.in (from r13310, /rt/3.8/branches/3.8.0-releng/sbin/rt-notify-group-admin.in)
==============================================================================
--- /rt/3.8/branches/3.8.0-releng/sbin/rt-notify-group-admin.in	(original)
+++ rt/3.8/branches/3.8.0-releng/sbin/rt-email-group-admin.in	Fri Jun 20 16:56:18 2008
@@ -48,20 +48,20 @@
 # END BPS TAGGED BLOCK }}}
 =head1 NAME
 
-rt-notify-group-admin - Command line tool for administrating NotifyGroup actions
+rt-email-group-admin - Command line tool for administrating NotifyGroup actions
 
 =head1 SYNOPSIS
 
-    rt-notify-group-admin --list
-    rt-notify-group-admin --create 'Notify foo team' --group Foo
-    rt-notify-group-admin --create 'Notify foo team as comment' --comment --group Foo
-    rt-notify-group-admin --create 'Notify group Foo and Bar' --group Foo --group Bar
-    rt-notify-group-admin --create 'Notify user foo at bar.com' --user foo at bar.com
-    rt-notify-group-admin --create 'Notify VIPs' --user vip1 at bar.com
-    rt-notify-group-admin --add 'Notify VIPs' --user vip2 at bar.com --group vip1 --user vip3 at foo.com
-    rt-notify-group-admin --rename 'Notify VIPs' --newname 'Inform VIPs'
-    rt-notify-group-admin --switch 'Notify VIPs'
-    rt-notify-group-admin --delete 'Notify user foo at bar.com'
+    rt-email-group-admin --list
+    rt-email-group-admin --create 'Notify foo team' --group Foo
+    rt-email-group-admin --create 'Notify foo team as comment' --comment --group Foo
+    rt-email-group-admin --create 'Notify group Foo and Bar' --group Foo --group Bar
+    rt-email-group-admin --create 'Notify user foo at bar.com' --user foo at bar.com
+    rt-email-group-admin --create 'Notify VIPs' --user vip1 at bar.com
+    rt-email-group-admin --add 'Notify VIPs' --user vip2 at bar.com --group vip1 --user vip3 at foo.com
+    rt-email-group-admin --rename 'Notify VIPs' --newname 'Inform VIPs'
+    rt-email-group-admin --switch 'Notify VIPs'
+    rt-email-group-admin --delete 'Notify user foo at bar.com'
 
 =head1 DESCRIPTION
 
@@ -70,7 +70,7 @@
 
 For example you can create the following action using this script:
 
-    rt-notify-group-admin --create 'Notify developers' --group 'Development Team'
+    rt-email-group-admin --create 'Notify developers' --group 'Development Team'
 
 Then you can add the followoing scrip to your Bugs queue:
     
@@ -203,7 +203,7 @@
 
 =head1 USAGE
 
-rt-notify-group-admin --COMMAND ARGS
+rt-email-group-admin --COMMAND ARGS
 
 =head1 COMMANDS
 
@@ -284,7 +284,7 @@
     my $action = RT::ScripAction->new( $RT::SystemUser );
     $action->Create(
         Name => $name,
-        Description => "Created with rt-notify-group-admin script",
+        Description => "Created with rt-email-group-admin script",
         ExecModule => $as_comment? 'NotifyGroupAsComment': 'NotifyGroup',
         Argument => '',
     );

Modified: rt/3.8/branches/3.8.0-releng/sbin/rt-setup-database.in
==============================================================================
--- rt/3.8/branches/3.8.0-releng/sbin/rt-setup-database.in	(original)
+++ rt/3.8/branches/3.8.0-releng/sbin/rt-setup-database.in	Fri Jun 20 16:56:18 2008
@@ -165,6 +165,7 @@
     no strict 'refs';
     my ($status, $msg) = *{ 'action_'. $action }{'CODE'}->( %args );
     error($action, $msg) unless $status;
+    print $msg ."\n" if $msg;
     print "Done.\n";
 }
 
@@ -256,7 +257,7 @@
 sub action_upgrade {
     my %args = @_;
     my $base_dir = $args{'datadir'} || "./etc/upgrade";
-    return (0, "Couldn't read dir '$base_dir' with upgrade date")
+    return (0, "Couldn't read dir '$base_dir' with upgrade data")
         unless -d $base_dir || -r _;
 
     my $upgrading_from = undef;
@@ -274,25 +275,26 @@
     return (0, "The current version $upgrading_to is lower than $upgrading_from")
         if RT::Handle::cmp_version( $upgrading_from, $upgrading_to ) > 0;
 
+    return (1, "The version $upgrading_to you're upgrading to is up to date")
+        if RT::Handle::cmp_version( $upgrading_from, $upgrading_to ) == 0;
+
     opendir my $dh, $base_dir or die "couldn't open dir: $!";
     my @versions = grep -d "$base_dir/$_" && /\d+\.\d+\.\d+/, readdir $dh;
     closedir $dh;
 
     @versions =
         grep RT::Handle::cmp_version($_, $upgrading_to) <= 0,
-        grep RT::Handle::cmp_version($_, $upgrading_from) >= 0,
+        grep RT::Handle::cmp_version($_, $upgrading_from) > 0,
         sort RT::Handle::cmp_version @versions;
 
-    unless ( @versions ) {
-        print "No DB changes between $upgrading_from and $upgrading_to\n";
-        return 1;
-    }
+    return (1, "No DB changes between $upgrading_from and $upgrading_to")
+        unless @versions;
 
     print "Going to apply following upgrades:\n";
     print map "* $_\n", @versions;
 
     print "HI THERE IT'S VERY IMPORTANT TO BACK UP BEFORE THIS STEP\n\n";
-    _yesno() unless $args{'force'};
+    _yesno() or exit(-2) unless $args{'force'};
 
     foreach my $v ( @versions ) {
         print "Processing $v\n";

Modified: rt/3.8/branches/3.8.0-releng/share/html/Dashboards/Elements/SelectPrivacy
==============================================================================
--- rt/3.8/branches/3.8.0-releng/share/html/Dashboards/Elements/SelectPrivacy	(original)
+++ rt/3.8/branches/3.8.0-releng/share/html/Dashboards/Elements/SelectPrivacy	Fri Jun 20 16:56:18 2008
@@ -48,13 +48,17 @@
 <%args>
 @Objects => undef
 $Name => undef
+$Default => undef
 </%args>
 <select name="<%$Name%>">
 % foreach my $object (@Objects) {
+% my $privacy = ref($object) . '-' . $object->id;
+% my $selected = $privacy eq ($Default || '') ? 'selected="selected"' : '';
+
 % if (ref($object) eq 'RT::User' && $object->id == $session{'CurrentUser'}->Id) {
-<option value="<%ref($object)%>-<%$object->id%>"><&|/l&>My dashboards</&></option>
+<option <%$selected|n%> value="<%$privacy%>"><&|/l&>My dashboards</&></option>
 % } else {
-<option value="<%ref($object)%>-<%$object->id%>"><&|/l, $object->Name&>[_1]'s dashboards</&></option>
+<option <%$selected|n%> value="<%$privacy%>"><&|/l, $object->Name&>[_1]'s dashboards</&></option>
 % }
 % }
 </select>

Modified: rt/3.8/branches/3.8.0-releng/share/html/Dashboards/Elements/Tabs
==============================================================================
--- rt/3.8/branches/3.8.0-releng/share/html/Dashboards/Elements/Tabs	(original)
+++ rt/3.8/branches/3.8.0-releng/share/html/Dashboards/Elements/Tabs	Fri Jun 20 16:56:18 2008
@@ -80,7 +80,7 @@
             },
 
 
-            z_Preview => { title => loc('Preview'),
+            z_Preview => { title => loc('Show'),
                            path  => $render,
             },
         }

Modified: rt/3.8/branches/3.8.0-releng/share/html/Dashboards/Modify.html
==============================================================================
--- rt/3.8/branches/3.8.0-releng/share/html/Dashboards/Modify.html	(original)
+++ rt/3.8/branches/3.8.0-releng/share/html/Dashboards/Modify.html	Fri Jun 20 16:56:18 2008
@@ -69,10 +69,10 @@
 <tr><td align="right">
 <&|/l&>Privacy</&>:
 </td><td>
-<& /Dashboards/Elements/SelectPrivacy, Name => "Privacy", Objects => \@privacies &>
+<& /Dashboards/Elements/SelectPrivacy, Name => "Privacy", Objects => \@privacies, Default => $Dashboard->Privacy &>
 </td></tr>
 </table>
-<& /Elements/Submit, Label => loc('Save Changes') &>
+<& /Elements/Submit, Name => 'Save', Label => loc('Save Changes') &>
 </form>
 <%INIT>
 
@@ -130,7 +130,7 @@
     }
 }
 
-if (!$Create && !$tried_create && $id && defined($ARGS{'Name'})) {
+if (!$Create && !$tried_create && $id && $ARGS{'Save'}) {
     my ($ok, $msg);
     if ($session{'CurrentUser'}->HasRight(Right => 'ModifyDashboard', Object => $RT::System)) {
         ($ok, $msg) = $Dashboard->Update(Privacy  => $ARGS{'Privacy'},

Modified: rt/3.8/branches/3.8.0-releng/share/html/Elements/RT__Ticket/ColumnMap
==============================================================================
--- rt/3.8/branches/3.8.0-releng/share/html/Elements/RT__Ticket/ColumnMap	(original)
+++ rt/3.8/branches/3.8.0-releng/share/html/Elements/RT__Ticket/ColumnMap	Fri Jun 20 16:56:18 2008
@@ -185,7 +185,7 @@
         value     => sub { 
             my $date = $_[0]->DueObj;
             # Highlight the date if it was due in the past, and it's still active
-            if ( $date && $date->Unix > 0 && $date->Diff < 0 && $_[0]->Queue->IsActiveStatus($_[0]->Status)) {
+            if ( $date && $date->Unix > 0 && $date->Diff < 0 && $_[0]->QueueObj->IsActiveStatus($_[0]->Status)) {
                 return (\'<span class="overdue">' , $date->AgeAsString , \'</span>');
             } else {
                 return $date->AgeAsString;

Modified: rt/3.8/branches/3.8.0-releng/share/html/Install/Basics.html
==============================================================================
--- rt/3.8/branches/3.8.0-releng/share/html/Install/Basics.html	(original)
+++ rt/3.8/branches/3.8.0-releng/share/html/Install/Basics.html	Fri Jun 20 16:56:18 2008
@@ -45,7 +45,7 @@
 %# those contributions and any derivatives thereof.
 %# 
 %# END BPS TAGGED BLOCK }}}
-<&| Elements/Wrapper, Title => 'Step 3 of 7: Customize Basics' &> 
+<&| Elements/Wrapper, Title => loc('Step 3 of 7: Customize Basics') &> 
 
 <& /Elements/ListActions, actions => \@results &>
 

Modified: rt/3.8/branches/3.8.0-releng/share/html/Install/DatabaseDetails.html
==============================================================================
--- rt/3.8/branches/3.8.0-releng/share/html/Install/DatabaseDetails.html	(original)
+++ rt/3.8/branches/3.8.0-releng/share/html/Install/DatabaseDetails.html	Fri Jun 20 16:56:18 2008
@@ -45,7 +45,7 @@
 %# those contributions and any derivatives thereof.
 %# 
 %# END BPS TAGGED BLOCK }}}
-<&| Elements/Wrapper, Title => 'Step 2 of 7: Check your database credentials' &> 
+<&| Elements/Wrapper, Title => loc('Step 2 of 7: Check your database credentials') &> 
 
 <& /Elements/ListActions, actions => \@results &>
 
@@ -58,7 +58,8 @@
             ( $db_type eq 'mysql' ? 'root'
               : $db_type eq 'Pg' ? 'postgres'
               : '' ),
-       DatabasePassword => '' 
+       DatabasePassword => @results ?
+           $RT::Installer->{InstallConfig}{DatabasePassword} : ''
         }
                     &>
 <input type="hidden" name="Run" value="1">

Modified: rt/3.8/branches/3.8.0-releng/share/html/Install/DatabaseType.html
==============================================================================
--- rt/3.8/branches/3.8.0-releng/share/html/Install/DatabaseType.html	(original)
+++ rt/3.8/branches/3.8.0-releng/share/html/Install/DatabaseType.html	Fri Jun 20 16:56:18 2008
@@ -45,16 +45,20 @@
 %# those contributions and any derivatives thereof.
 %# 
 %# END BPS TAGGED BLOCK }}}
-<&|Elements/Wrapper, Title => 'Step 1 of 7: Choose a database engine' &>
+<&|Elements/Wrapper, Title => loc('Step 1 of 7: Choose a database engine') &>
 
 <& /Elements/ListActions, actions => \@results &>
 
-<form method="post">
+<div class="intro">
+<&|/l&>
     <p>RT works just great with a number of different databases. <b>MySQL</b>, <b>PostgreSQL</b>, <b>Oracle</b> and <b>SQLite</b> are all supported.</p>
     <p>You should choose the database you or your local database administrator is most comfortable with.</p>
     <p><i>SQLite is a simple database that doesn't need a server or any configuration whatsoever. RT's authors recommend it for testing, demoing and development, but <b>it's not quite right for a high-volume production RT server</b>.</i></p>
     <p>If your supported database isn't listed in the dropdown below, that means RT couldn't find a <i>database driver</i> for it installed locally. You may be able to remedy this by using <a href="http://search.cpan.org" target="_new">CPAN</a> to download and install DBD::MySQL, DBD::Oracle or DBD::Pg.</p>
+    </&>
+</div>
 
+<form method="post">
 <& /Widgets/BulkEdit, Types => \@Types, Meta => $RT::Installer->{Meta},
     CurrentValue => RT::Installer->CurrentValues(@Types) &>
 

Modified: rt/3.8/branches/3.8.0-releng/share/html/Install/Emails.html
==============================================================================
--- rt/3.8/branches/3.8.0-releng/share/html/Install/Emails.html	(original)
+++ rt/3.8/branches/3.8.0-releng/share/html/Install/Emails.html	Fri Jun 20 16:56:18 2008
@@ -45,7 +45,7 @@
 %# those contributions and any derivatives thereof.
 %# 
 %# END BPS TAGGED BLOCK }}}
-<&| Elements/Wrapper, Title => 'Step 4 of 7: Customize Email Addresses' &> 
+<&| Elements/Wrapper, Title => loc('Step 4 of 7: Customize Email Addresses') &> 
 
 <& /Elements/ListActions, actions => \@results &>
 

Modified: rt/3.8/branches/3.8.0-releng/share/html/Install/Finish.html
==============================================================================
--- rt/3.8/branches/3.8.0-releng/share/html/Install/Finish.html	(original)
+++ rt/3.8/branches/3.8.0-releng/share/html/Install/Finish.html	Fri Jun 20 16:56:18 2008
@@ -45,28 +45,26 @@
 %# those contributions and any derivatives thereof.
 %# 
 %# END BPS TAGGED BLOCK }}}
-<&| Elements/Wrapper, Title => 'Step 7 of 7: Finish' &> 
+<&| Elements/Wrapper, Title => loc('Step 7 of 7: Finish') &> 
 
 <div class="intro">
+<&|/l&>
 <p>
-Congratulations! You've completed the initial configuration of RT.
+Click "Finish Installation" below to complete this wizard.
 </p>
 
 <p>
-But if not, just click "Finish Installation" below. You should be taken directly
-to a login page. You'll be able to log in with username of <tt>root</tt>. 
-</p>
-
-<p>
-If you've changed web port, you have to restart the server.
+You should be taken directly to a login page. You'll be able to log in with username of <tt>root</tt>. 
+But if you've changed web port, then you have to restart the server to use RT.
 </p>
 
 <p>
 The settings you've chosen are stored in <% RT::Installer->ConfigFile %>,
-should you need to refine your configuration further. Using
+the place you can refine your configuration further. Using
 `<tt>chmod -w '<% RT::Installer->ConfigFile %>'</tt>` will prevent this
-installation from being run again.
+installation wizard from being run again.
 </p>
+</&>
 </div>
 
 <form method="post">

Modified: rt/3.8/branches/3.8.0-releng/share/html/Install/Initialize.html
==============================================================================
--- rt/3.8/branches/3.8.0-releng/share/html/Install/Initialize.html	(original)
+++ rt/3.8/branches/3.8.0-releng/share/html/Install/Initialize.html	Fri Jun 20 16:56:18 2008
@@ -45,7 +45,7 @@
 %# those contributions and any derivatives thereof.
 %# 
 %# END BPS TAGGED BLOCK }}}
-<&|Elements/Wrapper, Title => 'Step 6 of 7: Initialize Database' &> 
+<&|Elements/Wrapper, Title => loc('Step 6 of 7: Initialize Database') &> 
 
 <& /Elements/ListActions, actions => \@results &>
 

Modified: rt/3.8/branches/3.8.0-releng/share/html/Install/Sendmail.html
==============================================================================
--- rt/3.8/branches/3.8.0-releng/share/html/Install/Sendmail.html	(original)
+++ rt/3.8/branches/3.8.0-releng/share/html/Install/Sendmail.html	Fri Jun 20 16:56:18 2008
@@ -45,7 +45,7 @@
 %# those contributions and any derivatives thereof.
 %# 
 %# END BPS TAGGED BLOCK }}}
-<&|Elements/Wrapper, Title => 'Step 5 of 7: Email Configuration' &> 
+<&|Elements/Wrapper, Title => loc('Step 5 of 7: Email Configuration') &> 
 
 <& /Elements/ListActions, actions => \@results &>
 

Modified: rt/3.8/branches/3.8.0-releng/share/html/Install/autohandler
==============================================================================
--- rt/3.8/branches/3.8.0-releng/share/html/Install/autohandler	(original)
+++ rt/3.8/branches/3.8.0-releng/share/html/Install/autohandler	Fri Jun 20 16:56:18 2008
@@ -48,17 +48,20 @@
 <%flags>
 inherit => undef
 </%flags>
+
 <%init>
-RT::Interface::Web::Redirect(RT->Config->Get('WebURL')) unless (RT->InstallMode);
+
 if (RT->InstallMode) {
+    $r->content_type("text/html; charset=utf-8");
     require RT::Installer;
 
     $RT::Installer->{'CurrentUser'} = RT::CurrentUser->new();
     $RT::Installer->{Meta} = RT::Installer->Meta;
+    $m->call_next;
 }
 else {
-     RT::Interface::Web::Redirect(RT->Config->Get('WebURL'));
+    # redirect to login page if not in install mode
+    RT::Interface::Web::Redirect(RT->Config->Get('WebURL'))
 }
 </%init>
-<%$m->call_next()%>
 

Modified: rt/3.8/branches/3.8.0-releng/share/html/Install/index.html
==============================================================================
--- rt/3.8/branches/3.8.0-releng/share/html/Install/index.html	(original)
+++ rt/3.8/branches/3.8.0-releng/share/html/Install/index.html	Fri Jun 20 16:56:18 2008
@@ -54,6 +54,7 @@
 <h1>What is RT?</h1>
 
 <div class="intro">
+<&|/l&>
 <p>
 RT is an enterprise-grade issue tracking system designed to let you intelligently and efficiently manage tasks, issues, requests, defects or anything else that looks like an "action item."</p>
 <p>
@@ -64,6 +65,7 @@
 <b>You're seeing this screen because you started up an RT server without a working database. Most likely, this is the first time you're running RT.  If you click <i>Let's go!</i> below, RT will guide you through setting up your RT server and database.</b>
 </p>
 <p>If you already have a working RT server and database, you should take this opportunity to make sure that your database server is running and that the RT server can connect to it. Once you've done that, stop and start the RT server.</p>
+</&>
 </div>
 
 <form method="post">

Modified: rt/3.8/branches/3.8.0-releng/share/html/NoAuth/css/web2/forms.css
==============================================================================
--- rt/3.8/branches/3.8.0-releng/share/html/NoAuth/css/web2/forms.css	(original)
+++ rt/3.8/branches/3.8.0-releng/share/html/NoAuth/css/web2/forms.css	Fri Jun 20 16:56:18 2008
@@ -57,6 +57,7 @@
   display: inline-block;
   position: relative;
   text-align: right;
+  width: 4em;
 }
 
 .input-row .input {
@@ -146,6 +147,10 @@
   padding-top: 0.25em;
 }
 
+div.ticket-info-basics div.titlebox-content .labeltop{
+  width: 10em;
+}
+
 div.submit {
  text-align: right;
 }

Modified: rt/3.8/branches/3.8.0-releng/share/html/NoAuth/css/web2/msie.css
==============================================================================
--- rt/3.8/branches/3.8.0-releng/share/html/NoAuth/css/web2/msie.css	(original)
+++ rt/3.8/branches/3.8.0-releng/share/html/NoAuth/css/web2/msie.css	Fri Jun 20 16:56:18 2008
@@ -224,3 +224,11 @@
     margin-top:0.5em;
     margin-left: -0.2em;
 }
+
+#comp-Search-Build #pick-criteria td.label {
+     width: auto;
+}
+
+#comp-Search-Build #pick-criteria td.operator {
+  width: 7.5em;
+}
\ No newline at end of file

Modified: rt/3.8/branches/3.8.0-releng/share/html/NoAuth/css/web2/ticket-search.css
==============================================================================
--- rt/3.8/branches/3.8.0-releng/share/html/NoAuth/css/web2/ticket-search.css	(original)
+++ rt/3.8/branches/3.8.0-releng/share/html/NoAuth/css/web2/ticket-search.css	Fri Jun 20 16:56:18 2008
@@ -60,6 +60,7 @@
 #comp-Search-Build #pick-criteria td.label {
     font: message-box;    
     padding-right: 0.5em;
+    width: 11em;
 }
 
 #comp-Search-Build #pick-criteria td.label * {
@@ -72,10 +73,11 @@
 
 #comp-Search-Build #pick-criteria td.operator {
  padding-right: 0.5em;
- text-align: right;
-
- width: 1em;
+ text-align: left;
+ vertical-align: bottom;
+ width: 7em;
 }
+
 #comp-Search-Build #pick-criteria td.operator select {
  text-align: right;
 }

Modified: rt/3.8/branches/3.8.0-releng/share/html/Prefs/Other.html
==============================================================================
--- rt/3.8/branches/3.8.0-releng/share/html/Prefs/Other.html	(original)
+++ rt/3.8/branches/3.8.0-releng/share/html/Prefs/Other.html	Fri Jun 20 16:56:18 2008
@@ -59,7 +59,8 @@
 % my $meta = RT->Config->Meta( $option );
 <& $meta->{'Widget'},
     Default      => 1,
-    %{ $finalize_meta->( $meta->{'WidgetArguments'} ) },
+    %{ $m->comp('/Widgets/FinalizeWidgetArguments', WidgetArguments =>
+            $meta->{'WidgetArguments'} ) },
     Name         => $option,
     DefaultValue => scalar RT->Config->Get( $option ),
     CurrentValue => $preferences->{ $option },
@@ -102,17 +103,6 @@
     my ($ok, $msg) = $UserObj->SetPreferences( $RT::System, $preferences );
     push @results, $ok ? loc("Preferences saved.") : $msg;
 }
-my $finalize_meta = sub {
-    my %meta = %{ shift() };
-    %meta = (%meta, %{ $meta{Callback}->() }) if $meta{Callback};
-    $meta{'Description'} = loc( $meta{'Description'} ) if $meta{'Description'};
-    if ( $meta{'ValuesLabel'} ) {
-        while (my ($k, $v) = each %{ $meta{'ValuesLabel'} } ) {
-            $meta{'ValuesLabel'}->{$k} = loc( $meta{'ValuesLabel'}->{$k} );
-        }
-    }
-    return \%meta;
-};
 </%INIT>
 <%ARGS>
 $Update => 0,

Modified: rt/3.8/branches/3.8.0-releng/share/html/Search/Chart
==============================================================================
--- rt/3.8/branches/3.8.0-releng/share/html/Search/Chart	(original)
+++ rt/3.8/branches/3.8.0-releng/share/html/Search/Chart	Fri Jun 20 16:56:18 2008
@@ -118,6 +118,8 @@
 my %class = (
     Queue => 'RT::Queue',
     Owner => 'RT::User',
+    Creator => 'RT::User',
+    LastUpdatedBy => 'RT::User',
 );
 my $class = $class{ $PrimaryGroupBy };
 

Modified: rt/3.8/branches/3.8.0-releng/share/html/Search/Elements/Chart
==============================================================================
--- rt/3.8/branches/3.8.0-releng/share/html/Search/Elements/Chart	(original)
+++ rt/3.8/branches/3.8.0-releng/share/html/Search/Elements/Chart	Fri Jun 20 16:56:18 2008
@@ -62,6 +62,8 @@
 my %class = (
     Queue => 'RT::Queue',
     Owner => 'RT::User',
+    Creator => 'RT::User',
+    LastUpdatedBy => 'RT::User',
 );
 my $class = $class{ $PrimaryGroupBy };
 

Modified: rt/3.8/branches/3.8.0-releng/share/html/Search/Elements/PickCriteria
==============================================================================
--- rt/3.8/branches/3.8.0-releng/share/html/Search/Elements/PickCriteria	(original)
+++ rt/3.8/branches/3.8.0-releng/share/html/Search/Elements/PickCriteria	Fri Jun 20 16:56:18 2008
@@ -57,8 +57,8 @@
 <tr class="separator"><td colspan="3"><hr /></td></tr>
 <tr>
 <td class="label"><&|/l&>Aggregator</&></td>
-<td class="operator"><& SelectAndOr, Name => "AndOr" &></td>
-<td class="value">&nbsp;</td>
+<td class="operator" colspan="2"><& SelectAndOr, Name => "AndOr" &></td>
+
 </tr>
 
 </table>

Modified: rt/3.8/branches/3.8.0-releng/share/html/Ticket/Display.html
==============================================================================
--- rt/3.8/branches/3.8.0-releng/share/html/Ticket/Display.html	(original)
+++ rt/3.8/branches/3.8.0-releng/share/html/Ticket/Display.html	Fri Jun 20 16:56:18 2008
@@ -141,24 +141,15 @@
             ARGSRef => \%ARGS, 
             Actions => \@Actions);
     
-    $ARGS{'UpdateContent'} =~ s/\r\n/\n/g if defined $ARGS{'UpdateContent'};
-    my $signature = $session{'CurrentUser'}->UserObj->Signature || '';
-    if ( $ARGS{'UpdateTimeWorked'} || (
-        defined $ARGS{'UpdateContent'}
-        && $ARGS{'UpdateContent'} ne ''
-        && $ARGS{'UpdateContent'} ne "-- \n" . $signature ))
-    {
-        $ARGS{UpdateAttachments} = $session{'Attachments'};
-        push @Actions, ProcessUpdateMessage(
-            ARGSRef   => \%ARGS,
-            Actions   => \@Actions,
-            TicketObj => $TicketObj,
+    $ARGS{UpdateAttachments} = $session{'Attachments'};
+    push @Actions,
+        ProcessUpdateMessage(
+        ARGSRef   => \%ARGS,
+        Actions   => \@Actions,
+        TicketObj => $TicketObj,
         );
-	    delete $session{'Attachments'};
-    } elsif ( $ARGS{'UpdateTimeWorked'} ) {
-        # Add UpdateTimeWorked to TimeWorked (processed below with ProcessTicketBasics)
-        $ARGS{'TimeWorked'} = $TicketObj->TimeWorked + $ARGS{'UpdateTimeWorked'};
-    }
+    delete $session{'Attachments'};
+
     #Process status updates
     push @Actions, ProcessTicketWatchers(ARGSRef => \%ARGS, TicketObj => $TicketObj );
     push @Actions, ProcessTicketBasics(   ARGSRef => \%ARGS, TicketObj => $TicketObj );

Modified: rt/3.8/branches/3.8.0-releng/share/html/Ticket/Elements/Tabs
==============================================================================
--- rt/3.8/branches/3.8.0-releng/share/html/Ticket/Elements/Tabs	(original)
+++ rt/3.8/branches/3.8.0-releng/share/html/Ticket/Elements/Tabs	Fri Jun 20 16:56:18 2008
@@ -238,7 +238,7 @@
 my $has_query = '';
 my %query_args;
 my $search_id = $ARGS{'SavedSearchId'}
-            || $session{'CurrentSearchHash'}->{'SearchId'};
+            || $session{'CurrentSearchHash'}->{'SearchId'} || '';
 
 $has_query = 1 if ( $ARGS{'Query'} or $session{'CurrentSearchHash'}->{'Query'} );
   

Modified: rt/3.8/branches/3.8.0-releng/share/html/Ticket/Graphs/Elements/ShowGraph
==============================================================================
--- rt/3.8/branches/3.8.0-releng/share/html/Ticket/Graphs/Elements/ShowGraph	(original)
+++ rt/3.8/branches/3.8.0-releng/share/html/Ticket/Graphs/Elements/ShowGraph	Fri Jun 20 16:56:18 2008
@@ -45,13 +45,12 @@
 %# those contributions and any derivatives thereof.
 %# 
 %# END BPS TAGGED BLOCK }}}
-<div><img src="<% RT->Config->Get('WebPath') %>/Ticket/Graphs/<% $Type %>/<% $id %>?<% $m->comp('/Elements/QueryString', %ARGS) %>" usemap="#<% $graph->{'NAME'} || 'test' %>" style="border: none" />
+<div><img src="<% RT->Config->Get('WebPath') %>/Ticket/Graphs/<% $id %>?<% $m->comp('/Elements/QueryString', %ARGS) %>" usemap="#<% $graph->{'NAME'} || 'test' %>" style="border: none" />
 <% safe_run_child { Encode::decode_utf8( $graph->as_cmapx ) } |n %>
 </div>
 <& ShowLegends, %ARGS, Ticket => $ticket &>
 <%ARGS>
-$id => undef;
-$Type => 'Links',
+$id => undef
 </%ARGS>
 <%INIT>
 my $ticket = RT::Ticket->new( $session{'CurrentUser'} );
@@ -62,15 +61,8 @@
 }
 $ARGS{'id'} = $id = $ticket->id;
 
-$Type = ucfirst lc $Type;
-unless ( $Type eq 'Links' || $Type eq 'Members' ) {
-    $RT::Logger->error("'$Type' is incorrect type of ticket graph");
-    $Type = 'Links';
-}
-
 require RT::Graph::Tickets;
-my $method = 'Ticket'. $Type;
-my $graph = RT::Graph::Tickets->$method(
+my $graph = RT::Graph::Tickets->TicketLinks(
     %ARGS,
     Ticket => $ticket,
 );

Modified: rt/3.8/branches/3.8.0-releng/share/html/Ticket/Graphs/dhandler
==============================================================================
--- rt/3.8/branches/3.8.0-releng/share/html/Ticket/Graphs/dhandler	(original)
+++ rt/3.8/branches/3.8.0-releng/share/html/Ticket/Graphs/dhandler	Fri Jun 20 16:56:18 2008
@@ -48,9 +48,9 @@
 <%INIT>
 my $arg = $m->dhandler_arg;
 
-my ($type, $id);
-if ( $arg =~ m{^(Members|Links)/(\d+)$}i ) {
-    ($type, $id) = ($1, $2);
+my $id;
+if ( $arg =~ m{^(\d+)$}i ) {
+    ($id) = ($1);
 } else {
     return $m->abort( 404 );
 }
@@ -63,8 +63,7 @@
 }
 
 require RT::Graph::Tickets;
-my $method = 'Ticket'. ucfirst lc $type;
-my $graph = RT::Graph::Tickets->$method(
+my $graph = RT::Graph::Tickets->TicketLinks(
     %ARGS,
     Ticket => $ticket,
 );

Modified: rt/3.8/branches/3.8.0-releng/share/html/Widgets/BulkEdit
==============================================================================
--- rt/3.8/branches/3.8.0-releng/share/html/Widgets/BulkEdit	(original)
+++ rt/3.8/branches/3.8.0-releng/share/html/Widgets/BulkEdit	Fri Jun 20 16:56:18 2008
@@ -48,7 +48,8 @@
 % for my $type ( @$Types ) {
 <& $Meta->{$type}{'Widget'},
     Default      => $Default,
-    %{ $Meta->{$type}{'WidgetArguments'} },
+    %{ $m->comp('/Widgets/FinalizeWidgetArguments', WidgetArguments =>
+            $Meta->{$type}{'WidgetArguments'} ) },
     Name         => $type,
     exists $CurrentValue->{$type} ? ( CurrentValue => $CurrentValue->{$type} )
         : (),

Added: rt/3.8/branches/3.8.0-releng/share/html/Widgets/FinalizeWidgetArguments
==============================================================================
--- (empty file)
+++ rt/3.8/branches/3.8.0-releng/share/html/Widgets/FinalizeWidgetArguments	Fri Jun 20 16:56:18 2008
@@ -0,0 +1,63 @@
+%# BEGIN BPS TAGGED BLOCK {{{
+%# 
+%# COPYRIGHT:
+%# 
+%# This software is Copyright (c) 1996-2008 Best Practical Solutions, LLC
+%#                                          <jesse 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 }}}
+<%init>
+    my %args = %$WidgetArguments;
+
+    %args = (%args, %{ $args{Callback}->() }) if $args{Callback};
+    $args{'Description'} = loc( $args{'Description'} ) if $args{'Description'};
+    if ( $args{'ValuesLabel'} ) {
+        while (my ($k, $v) = each %{ $args{'ValuesLabel'} } ) {
+            $args{'ValuesLabel'}->{$k} = loc( $args{'ValuesLabel'}->{$k} );
+        }
+    }
+    return \%args;
+</%init>
+
+<%args>
+$WidgetArguments => {}
+</%args>

Added: rt/3.8/branches/3.8.0-releng/t/mail/charsets-outgoing.t
==============================================================================
--- (empty file)
+++ rt/3.8/branches/3.8.0-releng/t/mail/charsets-outgoing.t	Fri Jun 20 16:56:18 2008
@@ -0,0 +1,308 @@
+#!/usr/bin/perl
+use strict;
+use warnings;
+use utf8;
+
+use Test::More;
+use RT::Test;
+
+plan tests => 30;
+
+RT::Test->set_mail_catcher;
+
+my $queue = RT::Test->load_or_create_queue(
+    Name              => 'Regression',
+    CorrespondAddress => 'rt-recipient at example.com',
+    CommentAddress    => 'rt-recipient at example.com',
+);
+ok $queue && $queue->id, 'loaded or created queue';
+
+diag "make sure queue has no subject tag" if $ENV{'TEST_VERBOSE'};
+{
+    my ($status, $msg) = $queue->SetSubjectTag( undef );
+    ok $status, "set subject tag for the queue" or diag "error: $msg";
+}
+
+diag "set intial simple autoreply template" if $ENV{'TEST_VERBOSE'};
+{
+    my $template = RT::Template->new( $RT::SystemUser );
+    $template->Load('Autoreply');
+    ok $template->id, "loaded autoreply tempalte";
+
+    my ($status, $msg) = $template->SetContent(
+        "Subject: Autreply { \$Ticket->Subject }\n"
+        ."\n"
+        ."hi there it's an autoreply.\n"
+        ."\n"
+    );
+    ok $status, "changed content of the template"
+        or diag "error: $msg";
+}
+
+diag "basic test of autoreply" if $ENV{'TEST_VERBOSE'};
+{
+    my $ticket = RT::Ticket->new( $RT::SystemUser );
+    $ticket->Create(
+        Queue => $queue->id,
+        Subject => 'test',
+        Requestor => 'root at localhost',
+    );
+    my @mails = RT::Test->fetch_caught_mails;
+    ok @mails, "got some outgoing emails";
+}
+
+my $str_ru_test = "\x{442}\x{435}\x{441}\x{442}";
+my $str_ru_autoreply = "\x{410}\x{432}\x{442}\x{43e}\x{43e}\x{442}\x{432}\x{435}\x{442}";
+my $str_ru_support = "\x{43f}\x{43e}\x{434}\x{434}\x{435}\x{440}\x{436}\x{43a}\x{430}";
+
+diag "non-ascii Subject with ascii prefix set in the template"
+    if $ENV{'TEST_VERBOSE'};
+{
+    my $ticket = RT::Ticket->new( $RT::SystemUser );
+    $ticket->Create(
+        Queue => $queue->id,
+        Subject => $str_ru_test,
+        Requestor => 'root at localhost',
+    );
+    my @mails = RT::Test->fetch_caught_mails;
+    ok @mails, "got some outgoing emails";
+
+    my $status = 1;
+    foreach my $mail ( @mails ) {
+        my $entity = parse_mail( $mail );
+        my $subject = Encode::decode_utf8( $entity->head->get('Subject') );
+        $subject =~ /$str_ru_test/
+            or do { $status = 0; diag "wrong subject: $subject" };
+    }
+    ok $status, "all mails have correct data";
+}
+
+diag "set non-ascii subject tag for the queue" if $ENV{'TEST_VERBOSE'};
+{
+    my ($status, $msg) = $queue->SetSubjectTag( $str_ru_support );
+    ok $status, "set subject tag for the queue" or diag "error: $msg";
+}
+
+diag "ascii subject with non-ascii subject tag" if $ENV{'TEST_VERBOSE'};
+{
+    my $ticket = RT::Ticket->new( $RT::SystemUser );
+    $ticket->Create(
+        Queue => $queue->id,
+        Subject => 'test',
+        Requestor => 'root at localhost',
+    );
+    my @mails = RT::Test->fetch_caught_mails;
+    ok @mails, "got some outgoing emails";
+
+    my $status = 1;
+    foreach my $mail ( @mails ) {
+        my $entity = parse_mail( $mail );
+        my $subject = Encode::decode_utf8( $entity->head->get('Subject') );
+        $subject =~ /$str_ru_support/
+            or do { $status = 0; diag "wrong subject: $subject" };
+    }
+    ok $status, "all mails have correct data";
+}
+
+diag "non-ascii subject with non-ascii subject tag" if $ENV{'TEST_VERBOSE'};
+{
+    my $ticket = RT::Ticket->new( $RT::SystemUser );
+    $ticket->Create(
+        Queue => $queue->id,
+        Subject => $str_ru_test,
+        Requestor => 'root at localhost',
+    );
+    my @mails = RT::Test->fetch_caught_mails;
+    ok @mails, "got some outgoing emails";
+
+    my $status = 1;
+    foreach my $mail ( @mails ) {
+        my $entity = parse_mail( $mail );
+        my $subject = Encode::decode_utf8( $entity->head->get('Subject') );
+        $subject =~ /$str_ru_support/
+            or do { $status = 0; diag "wrong subject: $subject" };
+        $subject =~ /$str_ru_test/
+            or do { $status = 0; diag "wrong subject: $subject" };
+    }
+    ok $status, "all mails have correct data";
+}
+
+diag "return back the empty subject tag" if $ENV{'TEST_VERBOSE'};
+{
+    my ($status, $msg) = $queue->SetSubjectTag( undef );
+    ok $status, "set subject tag for the queue" or diag "error: $msg";
+}
+
+diag "add non-ascii subject prefix in the autoreply template" if $ENV{'TEST_VERBOSE'};
+{
+    my $template = RT::Template->new( $RT::SystemUser );
+    $template->Load('Autoreply');
+    ok $template->id, "loaded autoreply tempalte";
+
+    my ($status, $msg) = $template->SetContent(
+        "Subject: $str_ru_autoreply { \$Ticket->Subject }\n"
+        ."\n"
+        ."hi there it's an autoreply.\n"
+        ."\n"
+    );
+    ok $status, "changed content of the template" or diag "error: $msg";
+}
+
+diag "ascii subject with non-ascii subject prefix in template" if $ENV{'TEST_VERBOSE'};
+{
+    my $ticket = RT::Ticket->new( $RT::SystemUser );
+    $ticket->Create(
+        Queue => $queue->id,
+        Subject => 'test',
+        Requestor => 'root at localhost',
+    );
+    my @mails = RT::Test->fetch_caught_mails;
+    ok @mails, "got some outgoing emails";
+
+    my $status = 1;
+    foreach my $mail ( @mails ) {
+        my $entity = parse_mail( $mail );
+        my $subject = Encode::decode_utf8( $entity->head->get('Subject') );
+        $subject =~ /$str_ru_autoreply/
+            or do { $status = 0; diag "wrong subject: $subject" };
+    }
+    ok $status, "all mails have correct data";
+}
+
+diag "non-ascii subject with non-ascii subject prefix in template"
+    if $ENV{'TEST_VERBOSE'};
+{
+    my $ticket = RT::Ticket->new( $RT::SystemUser );
+    $ticket->Create(
+        Queue => $queue->id,
+        Subject => $str_ru_test,
+        Requestor => 'root at localhost',
+    );
+    my @mails = RT::Test->fetch_caught_mails;
+    ok @mails, "got some outgoing emails";
+
+    my $status = 1;
+    foreach my $mail ( @mails ) {
+        my $entity = parse_mail( $mail );
+        my $subject = Encode::decode_utf8( $entity->head->get('Subject') );
+        $subject =~ /$str_ru_autoreply/
+            or do { $status = 0; diag "wrong subject: $subject" };
+        $subject =~ /$str_ru_autoreply/
+            or do { $status = 0; diag "wrong subject: $subject" };
+    }
+    ok $status, "all mails have correct data";
+}
+
+diag "set non-ascii subject tag for the queue" if $ENV{'TEST_VERBOSE'};
+{
+    my ($status, $msg) = $queue->SetSubjectTag( $str_ru_support );
+    ok $status, "set subject tag for the queue" or diag "error: $msg";
+}
+
+diag "non-ascii subject, non-ascii prefix in template and non-ascii tag"
+    if $ENV{'TEST_VERBOSE'};
+{
+    my $ticket = RT::Ticket->new( $RT::SystemUser );
+    $ticket->Create(
+        Queue => $queue->id,
+        Subject => $str_ru_test,
+        Requestor => 'root at localhost',
+    );
+    my @mails = RT::Test->fetch_caught_mails;
+    ok @mails, "got some outgoing emails";
+
+    my $status = 1;
+    foreach my $mail ( @mails ) {
+        my $entity = parse_mail( $mail );
+        my $subject = Encode::decode_utf8( $entity->head->get('Subject') );
+        $subject =~ /$str_ru_autoreply/
+            or do { $status = 0; diag "wrong subject: $subject" };
+        $subject =~ /$str_ru_autoreply/
+            or do { $status = 0; diag "wrong subject: $subject" };
+        $subject =~ /$str_ru_autoreply/
+            or do { $status = 0; diag "wrong subject: $subject" };
+    }
+    ok $status, "all mails have correct data";
+}
+
+diag "flush subject tag of the queue" if $ENV{'TEST_VERBOSE'};
+{
+    my ($status, $msg) = $queue->SetSubjectTag( undef );
+    ok $status, "set subject tag for the queue" or diag "error: $msg";
+}
+
+
+diag "don't change subject via template" if $ENV{'TEST_VERBOSE'};
+{
+    my $template = RT::Template->new( $RT::SystemUser );
+    $template->Load('Autoreply');
+    ok $template->id, "loaded autoreply tempalte";
+
+    my ($status, $msg) = $template->SetContent(
+        "\n"
+        ."\n"
+        ."hi there it's an autoreply.\n"
+        ."\n"
+    );
+    ok $status, "changed content of the template" or diag "error: $msg";
+}
+
+diag "non-ascii Subject without changes in template" if $ENV{'TEST_VERBOSE'};
+{
+    my $ticket = RT::Ticket->new( $RT::SystemUser );
+    $ticket->Create(
+        Queue => $queue->id,
+        Subject => $str_ru_test,
+        Requestor => 'root at localhost',
+    );
+    my @mails = RT::Test->fetch_caught_mails;
+    ok @mails, "got some outgoing emails";
+
+    my $status = 1;
+    foreach my $mail ( @mails ) {
+        my $entity = parse_mail( $mail );
+        my $subject = Encode::decode_utf8( $entity->head->get('Subject') );
+        $subject =~ /$str_ru_test/
+            or do { $status = 0; diag "wrong subject: $subject" };
+    }
+    ok $status, "all mails have correct data";
+}
+
+diag "set non-ascii subject tag for the queue" if $ENV{'TEST_VERBOSE'};
+{
+    my ($status, $msg) = $queue->SetSubjectTag( $str_ru_support );
+    ok $status, "set subject tag for the queue" or diag "error: $msg";
+}
+
+diag "non-ascii Subject without changes in template and with non-ascii subject tag"
+    if $ENV{'TEST_VERBOSE'};
+{
+    my $ticket = RT::Ticket->new( $RT::SystemUser );
+    $ticket->Create(
+        Queue => $queue->id,
+        Subject => $str_ru_test,
+        Requestor => 'root at localhost',
+    );
+    my @mails = RT::Test->fetch_caught_mails;
+    ok @mails, "got some outgoing emails";
+
+    my $status = 1;
+    foreach my $mail ( @mails ) {
+        my $entity = parse_mail( $mail );
+        my $subject = Encode::decode_utf8( $entity->head->get('Subject') );
+        $subject =~ /$str_ru_test/
+            or do { $status = 0; diag "wrong subject: $subject" };
+        $subject =~ /$str_ru_support/
+            or do { $status = 0; diag "wrong subject: $subject" };
+    }
+    ok $status, "all mails have correct data";
+}
+
+sub parse_mail {
+    my $mail = shift;
+    require RT::EmailParser;
+    my $parser = new RT::EmailParser;
+    $parser->ParseMIMEEntityFromScalar( $mail );
+    return $parser->Entity;
+}
+

Modified: rt/3.8/branches/3.8.0-releng/t/mail/gnupg-incoming.t
==============================================================================
--- rt/3.8/branches/3.8.0-releng/t/mail/gnupg-incoming.t	(original)
+++ rt/3.8/branches/3.8.0-releng/t/mail/gnupg-incoming.t	Fri Jun 20 16:56:18 2008
@@ -20,19 +20,7 @@
 my $homedir = File::Spec->catdir( getcwd(), qw(t data gnupg keyrings) );
 
 # catch any outgoing emails
-unlink "t/mailbox";
-
-sub capture_mail {
-    my $MIME = shift;
-
-    open my $handle, '>>', 't/mailbox'
-        or die "Unable to open t/mailbox for appending: $!";
-
-    $MIME->print($handle);
-    print $handle "%% split me! %%\n";
-    close $handle;
-}
-
+RT::Test->set_mail_catcher;
 
 RT->Config->Set( LogToScreen => 'debug' );
 RT->Config->Set( 'GnuPG',
@@ -42,7 +30,6 @@
 RT->Config->Set( 'GnuPGOptions',
                  homedir => $homedir,
                  'no-permission-warning' => undef);
-RT->Config->Set( MailCommand => \&capture_mail);
 
 RT->Config->Set( 'MailPlugins' => 'Auth::MailFrom', 'Auth::GnuPG' );
 
@@ -311,7 +298,8 @@
 
 $buf =~ s/PGP MESSAGE/SCREWED UP/g;
 
-unlink 't/mailbox';
+RT::Test->fetch_caught_mails;
+
 $mail = RT::Test->open_mailgate_ok($baseurl);
 print $mail <<"EOF";
 From: recipient\@example.com
@@ -321,8 +309,7 @@
 $buf
 EOF
 RT::Test->close_mailgate_ok($mail);
-my $mails = RT::Test->file_content('t/mailbox', 'unlink' => 1);
-my @mail = grep {/\S/} split /%% split me! %%/, $mails;
+my @mail = RT::Test->fetch_caught_mails;
 is(@mail, 1, 'caught outgoing mail.');
 }
 

Modified: rt/3.8/branches/3.8.0-releng/t/maildigest/attributes.t
==============================================================================
--- rt/3.8/branches/3.8.0-releng/t/maildigest/attributes.t	(original)
+++ rt/3.8/branches/3.8.0-releng/t/maildigest/attributes.t	Fri Jun 20 16:56:18 2008
@@ -136,40 +136,40 @@
 # Now let's actually run the daily and weekly digest tool to make sure we generate those
 
 # the first time get the content
-{open (my $digester, "-|", $RT::SbinPath."/rt-send-digest --mode daily --print");
+{open (my $digester, "-|", $RT::SbinPath."/rt-email-digest --mode daily --print");
 my @results = <$digester>;
 my $content = join ('', @results);
 like($content, qr/in the last day/);
 } {
 # The second time run it for real so we make sure that we get RT to mark the txn as sent
-open (my $digester, "-|", $RT::SbinPath."/rt-send-digest --mode daily");
+open (my $digester, "-|", $RT::SbinPath."/rt-email-digest --mode daily");
 my @results = <$digester>;
 my $content = join ('', @results);
 like($content, qr/maildaily\@/);
 close($digester);
 }
 # now we should have nothing to do, so no content.
-{open (my $digester, "-|", $RT::SbinPath."/rt-send-digest --mode daily --print");
+{open (my $digester, "-|", $RT::SbinPath."/rt-email-digest --mode daily --print");
 my @results = <$digester>;
 my $content = join ('', @results);
 is ($content, '');
 } 
 
 # the first time get the content
-{open (my $digester, "-|", $RT::SbinPath."/rt-send-digest --mode weekly --print");
+{open (my $digester, "-|", $RT::SbinPath."/rt-email-digest --mode weekly --print");
 my @results = <$digester>;
 my $content = join ('', @results);
 like($content, qr/in the last seven days/);
 } {
 # The second time run it for real so we make sure that we get RT to mark the txn as sent
-open (my $digester, "-|", $RT::SbinPath."/rt-send-digest --mode weekly");
+open (my $digester, "-|", $RT::SbinPath."/rt-email-digest --mode weekly");
 my @results = <$digester>;
 my $content = join ('', @results);
 like($content, qr/mailweekly\@/);
 close($digester);
 }
 # now we should have nothing to do, so no content.
-{open (my $digester, "-|", $RT::SbinPath."/rt-send-digest --mode weekly --print");
+{open (my $digester, "-|", $RT::SbinPath."/rt-email-digest --mode weekly --print");
 my @results = <$digester>;
 my $content = join ('', @results);
 is ($content, '');

Modified: rt/3.8/branches/3.8.0-releng/t/web/dashboards.t
==============================================================================
--- rt/3.8/branches/3.8.0-releng/t/web/dashboards.t	(original)
+++ rt/3.8/branches/3.8.0-releng/t/web/dashboards.t	Fri Jun 20 16:56:18 2008
@@ -52,7 +52,7 @@
 $m->content_contains("Basics");
 $m->content_contains("Queries");
 $m->content_lacks("Subscription", "we don't have the SubscribeDashboard right");
-$m->content_contains("Preview");
+$m->content_contains("Show");
 
 $m->follow_link_ok({text => "Basics"});
 $m->content_contains("Modify the dashboard different dashboard");
@@ -60,7 +60,7 @@
 $m->follow_link_ok({text => "Queries"});
 $m->content_contains("Modify the queries of dashboard different dashboard");
 $m->form_name('DashboardQueries');
-$m->field('Searches-Available' => ["2-RT::System"]);
+$m->field('Searches-Available' => ["2-RT::System-1"]);
 $m->click_button(name => 'add');
 $m->content_contains("Dashboard updated");
 
@@ -75,7 +75,7 @@
 like($searches[0]->Name, qr/newest unowned tickets/, "correct search name");
 
 $m->form_name('DashboardQueries');
-$m->field('Searches-Available' => ["1-RT::System"]);
+$m->field('Searches-Available' => ["1-RT::System-1"]);
 $m->click_button(name => 'add');
 $m->content_contains("Dashboard updated");
 
@@ -96,7 +96,7 @@
 	Subject   => 'dashboard test',
 );
 
-$m->follow_link_ok({text => "Preview"});
+$m->follow_link_ok({text => "Show"});
 $m->content_contains("20 highest priority tickets I own");
 $m->content_contains("20 newest unowned tickets");
 $m->content_lacks("Bookmarked Tickets");


More information about the Rt-commit mailing list