rt 4.2.15
[freeside.git] / rt / share / html / index.html
index 2d70358..e61f146 100755 (executable)
@@ -1,9 +1,7 @@
-<!DOCTYPE html 
-     PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!DOCTYPE html>
 <!--
 % $m->out('--'.'>');
-% $m->comp('/Elements/Header', Title=>loc("RT at a glance"), Refresh => $session{'home_refresh_interval'}||RT->Config->Get('HomePageRefreshInterval', $session{'CurrentUser'} ));
+% $m->comp('/Elements/Header', Title=>loc("RT at a glance"), Refresh => $session{'home_refresh_interval'}||RT->Config->Get('HomePageRefreshInterval', $session{'CurrentUser'}), SkipDoctype => 1 );
 % if (0) {
 %# -->
 <html><head>
@@ -20,7 +18,7 @@ You appear to have installed RT's web interface correctly, but haven't yet confi
 server to "run" the RT server which powers the web interface.
 
 The next step is to edit your webserver's configuration file to instruct it to use
-RT's <strong>mod_perl</strong>, <strong>FastCGI</strong> or <strong>SpeedyCGI</strong> handler.
+RT's <strong>mod_perl</strong> or <strong>FastCGI</strong> handler.
 
 If you need commercial support, please contact us at sales@bestpractical.com.
 
@@ -29,42 +27,42 @@ If you need commercial support, please contact us at sales@bestpractical.com.
 % }
 
 %# BEGIN BPS TAGGED BLOCK {{{
-%# 
+%#
 %# COPYRIGHT:
-%# 
-%# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC
-%#                                          <jesse@bestpractical.com>
-%# 
+%#
+%# This software is Copyright (c) 1996-2018 Best Practical Solutions, LLC
+%#                                          <sales@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
@@ -73,19 +71,18 @@ If you need commercial support, please contact us at sales@bestpractical.com.
 %# royalty-free, perpetual, license to use, copy, create derivative
 %# works based on those contributions, and sublicense and distribute
 %# those contributions and any derivatives thereof.
-%# 
+%#
 %# END BPS TAGGED BLOCK }}}
-<& /Elements/Tabs, 
-    Title          => loc("RT at a glance"),
-    current_tab    => 'index.html',
-    current_toptab => 'index.html',
-    tabs           => $tabs,
-    actions        => $actions,
-    &>
+<& /Elements/Tabs &>
 <& /Elements/ListActions, actions => \@results &>    
 <& /Elements/MyRT &>
 <%init>
 
+if ( RT::Interface::Web->MobileClient()) {
+    RT::Interface::Web::Redirect(RT->Config->Get('WebURL') ."m/");
+    $m->abort();
+}
+
 my @results;
 my $skip_create = 0;
 
@@ -93,55 +90,80 @@ $m->callback( ARGSRef => \%ARGS, results => \@results, CallbackName => 'Initial'
               skip_create => \$skip_create );
 
 if ( $ARGS{'QuickCreate'} ) {
-    my $QueueObj = new RT::Queue($session{'CurrentUser'});
+
+   ProcessAttachments(ARGSRef => \%ARGS);
+
+    my $QueueObj = RT::Queue->new($session{'CurrentUser'});
     $QueueObj->Load($ARGS{Queue}) or Abort(loc("Queue could not be loaded."));
     
     my $CFs = $QueueObj->TicketCustomFields();
     
-    my $ValidCFs = $m->comp(
+    my ($ValidCFs, @msg) = $m->comp(
         '/Elements/ValidateCustomFields',
-        CustomFields => $CFs,
-        ARGSRef => \%ARGS
+        CustomFields        => $CFs,
+        ARGSRef             => \%ARGS,
+        ValidateUnsubmitted => 1,
     );
 
 
+    my $created;
     if ( $ValidCFs && !$skip_create ) {
         my ($t, $msg) = CreateTicket( 
-                        Queue => $ARGS{'Queue'},
-                        Owner => $ARGS{'Owner'},
-                        Status => 'new',
-                        # yes! it's Requestors, not Requestor
-                        Requestors => $ARGS{'Requestors'},
-                        From => $session{'CurrentUser'}->EmailAddress,
-                        Content => $ARGS{'Content'},
-                        Subject => $ARGS{'Subject'});
-        if ( $t && $t->Id && RT->Config->Get('QuickCreateDisplay', $session{'CurrentUser'}) ) {
-          RT::Interface::Web::Redirect(RT->Config->Get('WebURL')."Ticket/Display.html?id=". $t->Id);
-        } else {
-          push @results, $msg;
+                          Queue => $ARGS{'Queue'},
+                          Owner => $ARGS{'Owner'},
+                          Status => $ARGS{'Status'},
+                          # yes! it's Requestors, not Requestor
+                          Requestors => $ARGS{'Requestors'},
+                          Content => $ARGS{'Content'},
+                          Subject => $ARGS{'Subject'},
+                          Token   => $ARGS{'Token'},
+                        );
+        push @results, $msg;
+
+        if ( $t && $t->Id ) {
+            $created = 1;
+            if ( RT->Config->Get('DisplayTicketAfterQuickCreate', $session{'CurrentUser'}) ) {
+                MaybeRedirectForResults(
+                    Actions   => \@results,
+                    Path      => '/Ticket/Display.html',
+                    Arguments => { id => $t->Id },
+                );
+            }
         }
     }
     elsif ( !$ValidCFs ) {
-        push @results, "can't quickly create ticket in queue " .
-            $QueueObj->Name . ' because some custom fields need to be set, please go to normal ticket creation page to do that.';
+        push @results, loc("Can't quickly create ticket in queue [_1] because custom fields are required.  Please finish by using the normal ticket creation page.", $QueueObj->Name);
+        push @results, @msg;
+
+        MaybeRedirectForResults(
+            Actions     => \@results,
+            Path        => "/Ticket/Create.html",
+            Arguments   => {
+                (map { $_ => $ARGS{$_} } qw(Queue Owner Status Content Subject)),
+                Requestors => $ARGS{Requestors},
+                # From is set above when CFs are OK, but not here since we're
+                # not calling CreateTicket() directly.  The proper place to set
+                # a default for From, if desired in the future, is in
+                # CreateTicket() itself, or at least /Ticket/Display.html
+                # (which processes /Ticket/Create.html).  From is rarely used
+                # overall.
+            },
+        );
     }
-}
 
+    $session{QuickCreate} = \%ARGS unless $created;
 
-if ( $ARGS{'q'} ) {
-    RT::Interface::Web::Redirect(RT->Config->Get('WebURL')."Search/Simple.html?q=".$m->interp->apply_escapes($ARGS{q}));
+    MaybeRedirectForResults(
+        Actions   => \@results,
+        Path      => '/',
+    );
 }
 
-my $actions;
-if ($session{'CurrentUser'}->HasRight(Right => 'ModifySelf', Object => $RT::System)) {
-    $actions = {
-        A => { title => loc('Edit'),
-               path  => 'Prefs/MyRT.html',
-             },
-    };
+
+if ( $ARGS{'q'} ) {
+    RT::Interface::Web::Redirect(RT->Config->Get('WebURL')."Search/Simple.html?q=".$m->interp->apply_escapes($ARGS{q}, 'u'));
 }
 
-my $tabs = $m->comp("/Elements/DashboardTabs");
 </%init>
 
 %# --></body></html>