[Rt-commit] r8417 - in rt/branches/3.7-EXPERIMENTAL: . bin etc html
html/Admin/Elements html/Admin/Global html/Admin/Users
html/Elements html/Elements/CollectionAsTable
html/Elements/RT__Template html/Elements/RT__Ticket
html/Elements/RT__User html/NoAuth/css
html/NoAuth/css/3.4-compat html/NoAuth/css/3.5-default
html/NoAuth/css/web2 html/NoAuth/images html/NoAuth/js
html/Search html/Search/Elements html/Ticket
html/Ticket/Elements html/User html/Widgets lib/RT
lib/RT/Interface lib/RT/Interface/Web
clkao at bestpractical.com
clkao at bestpractical.com
Tue Aug 7 03:03:34 EDT 2007
Author: clkao
Date: Tue Aug 7 03:03:31 2007
New Revision: 8417
Added:
rt/branches/3.7-EXPERIMENTAL/html/Elements/ColumnMap
rt/branches/3.7-EXPERIMENTAL/html/Elements/RT__Template/
rt/branches/3.7-EXPERIMENTAL/html/Elements/RT__Template/ColumnMap
rt/branches/3.7-EXPERIMENTAL/html/Elements/RT__User/
rt/branches/3.7-EXPERIMENTAL/html/Elements/RT__User/ColumnMap
rt/branches/3.7-EXPERIMENTAL/html/NoAuth/css/3.5-default/local.css
rt/branches/3.7-EXPERIMENTAL/html/NoAuth/css/web2/
rt/branches/3.7-EXPERIMENTAL/html/NoAuth/css/web2/approvals.css
rt/branches/3.7-EXPERIMENTAL/html/NoAuth/css/web2/body.css (contents, props changed)
rt/branches/3.7-EXPERIMENTAL/html/NoAuth/css/web2/footer.css
rt/branches/3.7-EXPERIMENTAL/html/NoAuth/css/web2/forms.css (contents, props changed)
rt/branches/3.7-EXPERIMENTAL/html/NoAuth/css/web2/header.css
rt/branches/3.7-EXPERIMENTAL/html/NoAuth/css/web2/login.css
rt/branches/3.7-EXPERIMENTAL/html/NoAuth/css/web2/logo.css
rt/branches/3.7-EXPERIMENTAL/html/NoAuth/css/web2/main.css
rt/branches/3.7-EXPERIMENTAL/html/NoAuth/css/web2/misc.css (contents, props changed)
rt/branches/3.7-EXPERIMENTAL/html/NoAuth/css/web2/nav-left.css
rt/branches/3.7-EXPERIMENTAL/html/NoAuth/css/web2/nav.css
rt/branches/3.7-EXPERIMENTAL/html/NoAuth/css/web2/quickbar.css
rt/branches/3.7-EXPERIMENTAL/html/NoAuth/css/web2/ticket.css
rt/branches/3.7-EXPERIMENTAL/html/NoAuth/css/web2/titlebox.css
rt/branches/3.7-EXPERIMENTAL/html/NoAuth/css/web2/transactions.css (contents, props changed)
rt/branches/3.7-EXPERIMENTAL/html/NoAuth/css/web2/yui.css
rt/branches/3.7-EXPERIMENTAL/html/dhandler
Modified:
rt/branches/3.7-EXPERIMENTAL/ (props changed)
rt/branches/3.7-EXPERIMENTAL/bin/rt-mailgate.in
rt/branches/3.7-EXPERIMENTAL/etc/initialdata
rt/branches/3.7-EXPERIMENTAL/html/Admin/Elements/EditTemplates
rt/branches/3.7-EXPERIMENTAL/html/Admin/Elements/ShowKeyInfo
rt/branches/3.7-EXPERIMENTAL/html/Admin/Global/MyRT.html
rt/branches/3.7-EXPERIMENTAL/html/Admin/Users/Modify.html
rt/branches/3.7-EXPERIMENTAL/html/Admin/Users/MyRT.html
rt/branches/3.7-EXPERIMENTAL/html/Admin/Users/index.html
rt/branches/3.7-EXPERIMENTAL/html/Elements/CollectionAsTable/Header
rt/branches/3.7-EXPERIMENTAL/html/Elements/CollectionAsTable/Row
rt/branches/3.7-EXPERIMENTAL/html/Elements/Login
rt/branches/3.7-EXPERIMENTAL/html/Elements/PageLayout
rt/branches/3.7-EXPERIMENTAL/html/Elements/RT__Ticket/ColumnMap
rt/branches/3.7-EXPERIMENTAL/html/Elements/SelectOwner
rt/branches/3.7-EXPERIMENTAL/html/NoAuth/css/3.4-compat/misc.css
rt/branches/3.7-EXPERIMENTAL/html/NoAuth/css/3.5-default/main.css
rt/branches/3.7-EXPERIMENTAL/html/NoAuth/css/3.5-default/misc.css
rt/branches/3.7-EXPERIMENTAL/html/NoAuth/css/autohandler
rt/branches/3.7-EXPERIMENTAL/html/NoAuth/images/autohandler
rt/branches/3.7-EXPERIMENTAL/html/NoAuth/js/autohandler
rt/branches/3.7-EXPERIMENTAL/html/Search/Build.html
rt/branches/3.7-EXPERIMENTAL/html/Search/Elements/EditSearches
rt/branches/3.7-EXPERIMENTAL/html/Search/Elements/PickCriteria
rt/branches/3.7-EXPERIMENTAL/html/SelfService/Prefs.html
rt/branches/3.7-EXPERIMENTAL/html/Ticket/Display.html
rt/branches/3.7-EXPERIMENTAL/html/Ticket/Elements/ShowHistory
rt/branches/3.7-EXPERIMENTAL/html/Ticket/Elements/ShowMessageStanza
rt/branches/3.7-EXPERIMENTAL/html/User/Prefs.html
rt/branches/3.7-EXPERIMENTAL/html/Widgets/TitleBoxStart
rt/branches/3.7-EXPERIMENTAL/lib/RT/CurrentUser.pm
rt/branches/3.7-EXPERIMENTAL/lib/RT/Date.pm
rt/branches/3.7-EXPERIMENTAL/lib/RT/Interface/Web.pm
rt/branches/3.7-EXPERIMENTAL/lib/RT/Interface/Web/Handler.pm
rt/branches/3.7-EXPERIMENTAL/lib/RT/User_Overlay.pm
rt/branches/3.7-EXPERIMENTAL/lib/RT/Users_Overlay.pm
Log:
re-merge all changes on 3.7 after the test rename merge from tunis.
Modified: rt/branches/3.7-EXPERIMENTAL/bin/rt-mailgate.in
==============================================================================
--- rt/branches/3.7-EXPERIMENTAL/bin/rt-mailgate.in (original)
+++ rt/branches/3.7-EXPERIMENTAL/bin/rt-mailgate.in Tue Aug 7 03:03:31 2007
@@ -52,17 +52,21 @@
=cut
-
use strict;
+use warnings;
+
use Getopt::Long;
use LWP::UserAgent;
+use HTTP::Request::Common qw($DYNAMIC_FILE_UPLOAD);
+$DYNAMIC_FILE_UPLOAD = 1;
use constant EX_TEMPFAIL => 75;
+use constant BUFFER_SIZE => 8192;
my %opts;
GetOptions( \%opts, "queue=s", "action=s", "url=s", "jar=s", "help", "debug", "extension=s", "timeout=i" );
-if ( $opts{help} ) {
+if ( $opts{'help'} ) {
require Pod::Usage;
import Pod::Usage;
pod2usage("RT Mail Gateway\n");
@@ -74,61 +78,63 @@
exit 1;
}
-my $ua = LWP::UserAgent->new();
-$ua->cookie_jar( { file => $opts{jar} } );
+my $ua = new LWP::UserAgent;
+$ua->cookie_jar( { file => $opts{'jar'} } ) if $opts{'jar'};
my %args = (
- queue => $opts{queue},
- action => $opts{action},
+ queue => $opts{'queue'},
+ action => ($opts{'action'} || 'correspond'),
SessionType => 'REST', # Surpress login box
);
-# Read the message in from STDIN
-$args{'message'} = do { local (@ARGV, $/); <> };
-unless ( $args{message} =~ /\S/ ) {
- print STDERR "$0: no message passed on STDIN!\n";
- exit 0;
-}
-
if ( ($opts{'extension'} || '') =~ /^(?:action|queue|ticket)$/i ) {
$args{ lc $opts{'extension'} } = $ENV{'EXTENSION'};
} elsif ( $opts{'extension'} && $ENV{'EXTENSION'} ) {
print STDERR "Value of the --extension argument is not action, queue or ticket"
- .", but environment variable EXTENSION is also defined. The former is ignored.";
+ .", but environment variable EXTENSION is also defined. The former is ignored.\n";
}
# add ENV{'EXTENSION'} as X-RT-MailExtension to the message header
if ( my $value = ( $ENV{'EXTENSION'} || $opts{'extension'} ) ) {
- # prepare value to avoid MIME format brakage
+ # prepare value to avoid MIME format breakage
# strip trailing newline symbols
$value =~ s/(\r*\n)+$//;
# make a correct multiline header field,
# with tabs in the beginning of each line
$value =~ s/(\r*\n)/$1\t/g;
- $args{'message'} = "X-RT-Mail-Extension: $value\n"
- . $args{'message'};
- print $args{'message'};
+ $opts{'headers'} .= "X-RT-Mail-Extension: $value\n";
}
-# Set up cookie here.
+# Read the message in from STDIN
+my %message = write_down_message();
+unless( $message{'filename'} ) {
+ $args{'message'} = [
+ undef, '',
+ 'Content-Type' => 'application/octet-stream',
+ Content => ${ $message{'content'} },
+ ];
+} else {
+ $args{'message'} = [
+ $message{'filename'}, '',
+ 'Content-Type' => 'application/octet-stream',
+ ];
+}
my $full_url = $opts{'url'}. "/REST/1.0/NoAuth/mail-gateway";
-warn "Connecting to $full_url" if $opts{'debug'};
-
-
+print STDERR "$0: connecting to $full_url\n" if $opts{'debug'};
-$ua->timeout(exists($opts{'timeout'}) ? $opts{'timeout'} : 180);
-my $r = $ua->post( $full_url, {%args} );
+$ua->timeout( exists( $opts{'timeout'} )? $opts{'timeout'}: 180 );
+my $r = $ua->post( $full_url, \%args, Content_Type => 'form-data' );
check_failure($r);
my $content = $r->content;
-warn $content if ($opts{debug});
+print STDERR $content ."\n" if $opts{'debug'};
if ( $content !~ /^(ok|not ok)/ ) {
# It's not the server's fault if the mail is bogus. We just want to know that
# *something* came out of the server.
- warn <<EOF;
+ print STDERR <<EOF;
RT server error.
The RT server which handled your email did not behave as expected. It
@@ -137,16 +143,19 @@
$content
EOF
-exit EX_TEMPFAIL;
-
+ exit EX_TEMPFAIL;
}
exit;
+END {
+ unlink $message{'filename'} if $message{'filename'};
+}
+
sub check_failure {
my $r = shift;
- return if $r->is_success();
+ return if $r->is_success;
# This ordinarily oughtn't to be able to happen, suggests a bug in RT.
# So only load these heavy modules when they're needed.
@@ -154,17 +163,62 @@
require HTML::FormatText;
my $error = $r->error_as_HTML;
- my $tree = HTML::TreeBuilder->new->parse($error);
+ my $tree = HTML::TreeBuilder->new->parse( $error );
$tree->eof;
# It'll be a cold day in hell before RT sends out bounces in HTML
- my $formatter = HTML::FormatText->new( leftmargin => 0,
- rightmargin => 50 );
- warn $formatter->format($tree);
- warn "This is $0 exiting because of an undefined server error" if ($opts{debug});
+ my $formatter = HTML::FormatText->new(
+ leftmargin => 0,
+ rightmargin => 50,
+ );
+ print STDERR $formatter->format( $tree );
+ print STDERR "\n$0: undefined server error\n" if $opts{'debug'};
exit EX_TEMPFAIL;
}
+sub write_down_message {
+ use File::Temp qw(tempfile);
+
+ my ($fh, $filename) = tempfile('rt-mailgate-XXXX', SUFIX => '.bin');
+ unless( $fh ) {
+ print STDERR "$0: couldn't create temp file, using memory\n";
+
+ my $message = \do { local (@ARGV, $/); <> };
+ unless ( $$message =~ /\S/ ) {
+ print STDERR "$0: no message passed on STDIN\n";
+ exit 0;
+ }
+ $$message = $opts{'headers'} . $$message if $opts{'headers'};
+ return ( content => $message );
+ }
+
+ binmode $fh;
+ binmode \*STDIN;
+
+ print $fh $opts{'headers'} if $opts{'headers'};
+
+ my $buf; my $empty = 1;
+ while(1) {
+ my $status = read \*STDIN, $buf, BUFFER_SIZE;
+ unless ( defined $status ) {
+ print STDERR "$0: couldn't read message: $!\n";
+ exit EX_TEMPFAIL;
+ } elsif ( !$status ) {
+ last;
+ }
+ $empty = 0 if $buf =~ /\S/;
+ print $fh $buf;
+ };
+ close $fh;
+
+ if ( $empty ) {
+ print STDERR "$0: no message passed on STDIN\n";
+ exit 0;
+ }
+ print STDERR "$0: temp file is '$filename'\n" if $opts{'debug'};
+ return (filename => $filename);
+}
+
=head1 SYNOPSIS
Modified: rt/branches/3.7-EXPERIMENTAL/etc/initialdata
==============================================================================
--- rt/branches/3.7-EXPERIMENTAL/etc/initialdata (original)
+++ rt/branches/3.7-EXPERIMENTAL/etc/initialdata Tue Aug 7 03:03:31 2007
@@ -438,6 +438,20 @@
}
}}
},
+ { Queue => 0,
+ Name => "PasswordChange", # loc
+ Description =>
+ "Inform user that his password has been reset", # loc
+ Content => q{Subject: [{RT->Config->Get('rtname')}] Password reset
+
+Greetings,
+
+Someone at {$ENV{'REMOTE_ADDR'}} requested a password reset for you on {RT->Config->Get('WebURL')}
+
+Your new password is:
+ {$NewPassword}
+}
+ },
);
# }}}
Modified: rt/branches/3.7-EXPERIMENTAL/html/Admin/Elements/EditTemplates
==============================================================================
--- rt/branches/3.7-EXPERIMENTAL/html/Admin/Elements/EditTemplates (original)
+++ rt/branches/3.7-EXPERIMENTAL/html/Admin/Elements/EditTemplates Tue Aug 7 03:03:31 2007
@@ -1,128 +1,80 @@
-%# BEGIN BPS TAGGED BLOCK {{{
-%#
-%# COPYRIGHT:
-%#
-%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.html.
-%#
-%#
-%# CONTRIBUTION SUBMISSION POLICY:
-%#
-%# (The following paragraph is not intended to limit the rights granted
-%# to you to modify and distribute this software under the terms of
-%# the GNU General Public License and is only of importance to you if
-%# you choose to contribute your changes and enhancements to the
-%# community by submitting them to Best Practical Solutions, LLC.)
-%#
-%# By intentionally submitting any modifications, corrections or
-%# derivatives to this work, or any other work intended for use with
-%# Request Tracker, to Best Practical Solutions, LLC, you confirm that
-%# you are the copyright holder for those contributions and you grant
-%# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable,
-%# royalty-free, perpetual, license to use, copy, create derivative
-%# works based on those contributions, and sublicense and distribute
-%# those contributions and any derivatives thereof.
-%#
-%# END BPS TAGGED BLOCK }}}
<& /Elements/ListActions, actions => \@actions &>
<form method="get" action="Templates.html">
-<input type="hidden" class="hidden" name="id" value="<%$id%>" />
+<input type="hidden" class="hidden" name="id" value="<% $id %>" />
-% if ($Templates->Count == 0 ) {
+% unless ( $Templates->Count ) {
<p><i><&|/l&>(No templates)</&></i></p>
% } else {
-<table>
-<tr>
-<th>
+
<i><&|/l&>(Check box to delete)</&></i>
-</th>
-<th>
-</th>
-</tr>
-% my $count;
-% while (my $TemplateObj = $Templates->Next) {
-<tr>
-<td>
-<input type="checkbox" class="checkbox" name="DeleteTemplate-<%$TemplateObj->Id%>" value="1" />
-</td>
-<td>
-<a href="Template.html?Queue=<%$id%>&Template=<%$TemplateObj->id()%>">
-<strong><% loc($TemplateObj->Name) %></strong></a>
-<br /><% loc($TemplateObj->Description) %>
-</td>
-</tr>
-% }
-</table>
+<& /Elements/CollectionList,
+ OrderBy => 'id',
+ Order => 'ASC',
+ BaseURL => 'Templates.html?',
+ %ARGS,
+ DisplayFormat => '__CheckBox.{DeleteTemplates}__,'. $Format,
+ Format => $Format,
+ Collection => $Templates,
+ AllowSorting => 1,
+ PassArguments => [qw(Format Rows Page Order OrderBy FindDisabledQueues)],
+&>
% }
<& /Elements/Submit, Label => loc('Delete Template') &>
</form>
<%INIT>
-my $Templates = RT::Templates->new($session{'CurrentUser'});
-my $QueueObj = RT::Queue->new($session{'CurrentUser'});
-my @actions;
+my $dir_path = $m->request_comp->dir_path;
+$Format ||= qq{'<a href="__WebPath__$dir_path/Template.html?Queue=$id&Template=__id__">__id__</a>/TITLE:#'}
+ .qq{,'<a href="__WebPath__$dir_path/Template.html?Queue=$id&Template=__id__">__Name__</a>/TITLE:Name'}
+ .qq{,'__Description__'};
-if ($id) {
- $QueueObj->Load($id);
-}
+my $QueueObj = RT::Queue->new( $session{'CurrentUser'} );
+$QueueObj->Load( $id ) if $id;
-if ($QueueObj->id) {
- $Templates->LimitToQueue($id);
-}
-else {
- $Templates->LimitToGlobal();
-}
+my $Templates = RT::Templates->new($session{'CurrentUser'});
+if ( $QueueObj->id ) {
+ $Templates->LimitToQueue( $id );
+}
+else {
+ $Templates->LimitToGlobal;
+}
# Now let callbacks add their extra limits
$m->callback( %ARGS, Templates => $Templates );
+$Templates->RedoSearch;
-# {{{ deal with deleting existing templates
+# deal with deleting existing templates
+my @actions;
+# backwards compatibility, use DeleteTemplates array for this
foreach my $key (keys %ARGS) {
- # {{{ if we're trying to delete the template
- if ($key =~ /^DeleteTemplate-(\d+)/) {
- my $id = $1;
- my $TemplateObj = RT::Template->new($session{'CurrentUser'});
- $TemplateObj->Load($id);
+ next unless $key =~ /^DeleteTemplate-(\d+)/;
+ push @DeleteTemplates, $1;
+}
+
+foreach my $id( @DeleteTemplates ) {
+ my $TemplateObj = RT::Template->new( $session{'CurrentUser'} );
+ $TemplateObj->Load( $id );
+ unless ( $TemplateObj->id ) {
+ push @actions, loc("Couldn't load template #[_1]", $id);
+ next;
+ }
+
my ($retval, $msg) = $TemplateObj->Delete;
- if ($retval) {
- push @actions, loc("Template deleted");
+ if ( $retval ) {
+ push @actions, loc("Template #[_1] deleted", $id);
}
else {
- push @actions, $msg;
+ push @actions, $msg;
}
- }
- # }}}
}
-# }}}
</%INIT>
<%ARGS>
$id => 0
-$title => undef
-$Move => undef
-$Source => undef
-$Template => undef
+
+$Format => undef
+
+ at DeleteTemplates => ()
</%ARGS>
Modified: rt/branches/3.7-EXPERIMENTAL/html/Admin/Elements/ShowKeyInfo
==============================================================================
--- rt/branches/3.7-EXPERIMENTAL/html/Admin/Elements/ShowKeyInfo (original)
+++ rt/branches/3.7-EXPERIMENTAL/html/Admin/Elements/ShowKeyInfo Tue Aug 7 03:03:31 2007
@@ -64,7 +64,7 @@
% foreach my $uinfo( @{ $res{'info'}{'User'} } ) {
<tr><th><% loc('User (created - expire)') %>:</th>
<td><% $uinfo->{'String'} %>\
-(<% $uinfo->{'Created'}->AsString( Time => 0 ) %> - \
+(<% $uinfo->{'Created'}? $uinfo->{'Created'}->AsString( Time => 0 ): loc('never') %> - \
<% $uinfo->{'Expire'}? $uinfo->{'Expire'}->AsString( Time => 0 ): loc('never') %>)
</td></tr>
% }
Modified: rt/branches/3.7-EXPERIMENTAL/html/Admin/Global/MyRT.html
==============================================================================
--- rt/branches/3.7-EXPERIMENTAL/html/Admin/Global/MyRT.html (original)
+++ rt/branches/3.7-EXPERIMENTAL/html/Admin/Global/MyRT.html Tue Aug 7 03:03:31 2007
@@ -63,7 +63,7 @@
<%init>
my @actions;
-my @items = map { [ "component-$_", $_ ] } sort RT->Config->Get('HomepageComponents');
+my @items = map { [ "component-$_", $_ ] } sort @{ RT->Config->Get('HomepageComponents') };
my $sys = RT::System->new( $session{'CurrentUser'} );
# XXX: put this in savedsearches_to_portlet_items
for ( $m->comp( "/Search/Elements/SearchesForObject",
Modified: rt/branches/3.7-EXPERIMENTAL/html/Admin/Users/Modify.html
==============================================================================
--- rt/branches/3.7-EXPERIMENTAL/html/Admin/Users/Modify.html (original)
+++ rt/branches/3.7-EXPERIMENTAL/html/Admin/Users/Modify.html Tue Aug 7 03:03:31 2007
@@ -121,14 +121,14 @@
<&|/l&>New Password</&>:
</td>
<td align="left">
-<input type="password" name="Pass1" />
+<input type="password" name="Pass1" autocomplete="off" />
</td>
</tr>
<tr><td align="right">
<&|/l&>Retype Password</&>:
</td>
<td>
-<input type="password" name="Pass2" />
+<input type="password" name="Pass2" autocomplete="off" />
</td>
</tr>
</table>
Modified: rt/branches/3.7-EXPERIMENTAL/html/Admin/Users/MyRT.html
==============================================================================
--- rt/branches/3.7-EXPERIMENTAL/html/Admin/Users/MyRT.html (original)
+++ rt/branches/3.7-EXPERIMENTAL/html/Admin/Users/MyRT.html Tue Aug 7 03:03:31 2007
@@ -83,7 +83,7 @@
my ($default_portlets) = RT::System->new($session{'CurrentUser'})->Attributes->Named('HomepageSettings');
my $portlets = $UserObj->Preferences('HomepageSettings', $default_portlets ? $default_portlets->Content : {});
-my %allowed_components = map {$_ => 1} RT->Config->Get('HomepageComponents');
+my %allowed_components = map {$_ => 1} @{RT->Config->Get('HomepageComponents')};
my @items;
push @items, map {["component-$_", $_]} sort keys %allowed_components;
Modified: rt/branches/3.7-EXPERIMENTAL/html/Admin/Users/index.html
==============================================================================
--- rt/branches/3.7-EXPERIMENTAL/html/Admin/Users/index.html (original)
+++ rt/branches/3.7-EXPERIMENTAL/html/Admin/Users/index.html Tue Aug 7 03:03:31 2007
@@ -50,67 +50,87 @@
current_subtab => 'Admin/Users/',
Title => loc('Select a user') &>
-<h1><%$caption%></h1>
+<h1><% $caption %></h1>
<p><&|/l&>Select a user</&>:</p>
-<ul>
% unless ( $users->Count ) {
<li><em><&|/l&>No users matching search criteria found.</&></em></li>
-% }
+% } else {
-% my @ids;
-% while ( $user = $users->Next ) {
-% push @ids, $user->Id;
-<li><a href="Modify.html?id=<% $user->id %>"><& /Elements/ShowUser, User => $user &></a></li>
-%}
-</ul>
-% if ( my $ids = join(',', @ids) ) {
-<em>(<a href="<%RT->Config->Get('WebPath')%>/Download/Tabular/User/<% $ids %>/Users.tsv"><&|/l&>Download as a tab-delimited file</&></a>)</em><br />
+<& /Elements/CollectionList,
+ OrderBy => 'Name',
+ Order => 'ASC',
+ Rows => 100,
+ BaseURL => RT->Config->Get('WebPath') .'/Admin/Users/index.html?',
+ %ARGS,
+ Format => $Format,
+ Collection => $users,
+ AllowSorting => 1,
+ PassArguments => [qw(Format Rows Page Order OrderBy UserString UserOp UserField IdLike EmailLike FindDisabledUsers)],
+&>
+
+% my $ids = join ',', map $_->id, @{ $users->ItemsArrayRef };
+% if ( $ids ) {
+<div align="right"><em>
+(<a href="<%RT->Config->Get('WebPath')%>/Download/Tabular/User/<% $ids %>/Users.tsv">
+<&|/l&>Download as a tab-delimited file</&>
+</a>)</em></div>
% }
<br /><br />
-<form method="post" action="<% RT->Config->Get('WebPath') %>/Admin/Users/index.html">
+% }
+<form method="post" action="<% RT->Config->Get('WebPath') %>/Admin/Users/index.html">
+% foreach my $field( qw(Format Rows Page Order OrderBy) ) {
+% next unless defined $ARGS{ $field } && length $ARGS{ $field };
+<input type="hidden" name="<% $field %>" value="<% $ARGS{ $field } %>" />
+% }
<&|/l&>Find people whose</&> <& /Elements/SelectUsers &><br />
-<input type="checkbox" class="checkbox" name="FindDisabledUsers" value="1" /> <&|/l&>Include disabled users in search.</&>
+<input type="checkbox" class="checkbox" name="FindDisabledUsers" value="1" <% $FindDisabledUsers? 'checked="checked"': '' %> />
+<&|/l&>Include disabled users in search.</&>
<br />
<div align="right"><input type="submit" class="button" value="<&|/l&>Go!</&>" /></div>
</form>
<%INIT>
-my ($user, $caption);
-my $users = new RT::Users($session{'CurrentUser'});
+my $caption;
+my $users = RT::Users->new( $session{'CurrentUser'} );
+$users->{'find_disabled_rows'} = 1 if $FindDisabledUsers;
-if ($FindDisabledUsers) {
- $users->{'find_disabled_rows'} = 1;
-}
-
-if (length $UserString) {
+if ( length $UserString ) {
$caption = loc("Users matching search criteria");
- if ($UserField =~ /^CustomField-(\d+)/) {
- $users->LimitCustomField(
- CUSTOMFIELD => $1,
- OPERATOR => $UserOp,
- VALUE => $UserString,
- );
+ if ( $UserField =~ /^CustomField-(\d+)/ ) {
+ $users->LimitCustomField(
+ CUSTOMFIELD => $1,
+ OPERATOR => $UserOp,
+ VALUE => $UserString,
+ );
}
else {
- $users->Limit(
- FIELD => $UserField,
- OPERATOR => $UserOp,
- VALUE => $UserString,
- );
+ $users->Limit(
+ FIELD => $UserField,
+ OPERATOR => $UserOp,
+ VALUE => $UserString,
+ );
}
}
else {
$caption = loc("Privileged users");
$users->LimitToPrivileged;
}
+
+$Format ||= q{'<a href="__WebPath__/Admin/Users/Modify.html?id=__id__">__id__</a>/TITLE:#'}
+ .q{,'<a href="__WebPath__/Admin/Users/Modify.html?id=__id__">__Name__</a>/TITLE:Name'}
+ .q{,__RealName__, __EmailAddress__};
+
</%INIT>
<%ARGS>
+$Format => undef,
+
$UserString => undef
$UserOp => '='
$UserField => 'Name'
$IdLike => undef
$EmailLike => undef
+
$FindDisabledUsers => 0
</%ARGS>
Modified: rt/branches/3.7-EXPERIMENTAL/html/Elements/CollectionAsTable/Header
==============================================================================
--- rt/branches/3.7-EXPERIMENTAL/html/Elements/CollectionAsTable/Header (original)
+++ rt/branches/3.7-EXPERIMENTAL/html/Elements/CollectionAsTable/Header Tue Aug 7 03:03:31 2007
@@ -92,10 +92,10 @@
$m->out('<th class="collection-as-table">');
$title =~ s/^__(.*)__$/$1/o;
- my $tmp = $m->comp(
- "/Elements/$Class/ColumnMap",
- Name => $title,
- Attr => 'title',
+ my $tmp = $m->comp( '/Elements/ColumnMap',
+ Class => $Class,
+ Name => $title,
+ Attr => 'title',
);
unless( $tmp ) {
Modified: rt/branches/3.7-EXPERIMENTAL/html/Elements/CollectionAsTable/Row
==============================================================================
--- rt/branches/3.7-EXPERIMENTAL/html/Elements/CollectionAsTable/Row (original)
+++ rt/branches/3.7-EXPERIMENTAL/html/Elements/CollectionAsTable/Row Tue Aug 7 03:03:31 2007
@@ -88,9 +88,10 @@
my $col = $1;
unless ( exists $ColumnMap->{ $col } ) {
$ColumnMap->{ $col } = $m->comp(
- "/Elements/$Class/ColumnMap",
- Name => $col,
- Attr => 'value'
+ "/Elements/ColumnMap",
+ Class => $Class,
+ Name => $col,
+ Attr => 'value'
);
}
Added: rt/branches/3.7-EXPERIMENTAL/html/Elements/ColumnMap
==============================================================================
--- (empty file)
+++ rt/branches/3.7-EXPERIMENTAL/html/Elements/ColumnMap Tue Aug 7 03:03:31 2007
@@ -0,0 +1,109 @@
+<%ARGS>
+$Class => 'RT__Ticket'
+$Name
+$Attr => undef
+</%ARGS>
+<%ONCE>
+
+# This is scary and should totally be refactored -- jesse
+my $COLUMN_MAP = {
+ id => {
+ attribute => 'id',
+ align => 'right',
+ value => sub { return $_[0]->id }
+ },
+
+ Created => {
+ attribute => 'Created',
+ title => 'Created',
+ value => sub { return $_[0]->CreatedObj->AsString }
+ },
+ CreatedRelative => {
+ attribute => 'Created',
+ title => 'Created',
+ value => sub { return $_[0]->CreatedObj->AgeAsString }
+ },
+ CreatedBy => {
+ attribute => 'CreatedBy',
+ title => 'Created By',
+ value => sub { return $_[0]->CreatorObj->Name }
+ },
+ LastUpdated => {
+ attribute => 'LastUpdated',
+ title => 'Last Updated',
+ value => sub { return $_[0]->LastUpdatedObj->AsString }
+ },
+ LastUpdatedRelative => {
+ attribute => 'LastUpdated',
+ title => 'Last Updated',
+ value => sub { return $_[0]->LastUpdatedObj->AgeAsString }
+ },
+ LastUpdatedBy => {
+ attribute => 'LastUpdatedBy',
+ title => 'Last Updated By',
+ value => sub { return $_[0]->LastUpdatedByObj->Name }
+ },
+
+
+ CheckBox => {
+ title => sub {
+ my $name = $_[1] || 'SelectedTickets';
+ my $checked = $m->request_args->{ $name .'All' }? 'checked="checked"': '';
+
+ return \qq{<input type="checkbox" name="${name}All" value="1" $checked
+ onclick="setCheckbox(this.form, '$name', this.checked)" />};
+ },
+ value => sub {
+ my $id = $_[0]->id;
+
+ my $name = $_[2] || 'SelectedTickets';
+ return \qq{<input type="checkbox" name="$name" value="$id" checked />}
+ if $m->request_args->{ $name . 'All'};
+
+ my $arg = $m->request_args->{ $name };
+ my $checked = '';
+ if ( $arg && ref $arg ) {
+ $checked = 'checked="checked"' if grep $_ == $id, @$arg;
+ }
+ elsif ( $arg ) {
+ $checked = 'checked="checked"' if $arg == $id;
+ }
+ return \qq{<input type="checkbox" name="$name" value="$id" $checked />}
+ },
+ },
+ RadioButton => {
+ title => \' ',
+ value => sub {
+ my $id = $_[0]->id;
+
+ my $name = $_[2] || 'SelectedTicket';
+ my $arg = $m->request_args->{ $name };
+ my $checked = '';
+ $checked = 'checked="checked"' if $arg && $arg == $id;
+ return \qq{<input type="radio" name="SelectedTicket" value="$id" $checked />};
+ },
+ },
+};
+
+</%ONCE>
+<%INIT>
+$m->callback( COLUMN_MAP => $COLUMN_MAP, CallbackName => 'Once', CallbackOnce => 1 );
+$m->callback( COLUMN_MAP => $COLUMN_MAP );
+
+# first deal with class specific things
+my $class_map = $m->comp("/Elements/$Class/ColumnMap", Attr => $Attr, Name => $Name );
+return $class_map if $class_map;
+
+# deal with the simple things from the generic map
+if ( $COLUMN_MAP->{$Name} ) {
+ return ( $COLUMN_MAP->{$Name}->{$Attr} );
+}
+# complex things
+elsif ( (my ($mainkey, $subkey) = $Name =~ /^(.*?)\.{(.+)}$/) && $COLUMN_MAP->{$1} ) {
+ return $COLUMN_MAP->{$mainkey}->{$Attr}
+ unless ref $COLUMN_MAP->{$mainkey}->{$Attr} eq 'CODE';
+
+ return sub { $COLUMN_MAP->{$mainkey}->{$Attr}->( @_, $subkey ) };
+}
+
+</%INIT>
Modified: rt/branches/3.7-EXPERIMENTAL/html/Elements/Login
==============================================================================
--- rt/branches/3.7-EXPERIMENTAL/html/Elements/Login (original)
+++ rt/branches/3.7-EXPERIMENTAL/html/Elements/Login Tue Aug 7 03:03:31 2007
@@ -96,7 +96,7 @@
<div class="input-row">
<span class="label"><&|/l&>Password</&>:</span>
- <span class="input"><input type="password" name="pass" /></span>
+ <span class="input"><input type="password" name="pass" autocomplete="off" /></span>
</div>
<div class="button-row">
Modified: rt/branches/3.7-EXPERIMENTAL/html/Elements/PageLayout
==============================================================================
--- rt/branches/3.7-EXPERIMENTAL/html/Elements/PageLayout (original)
+++ rt/branches/3.7-EXPERIMENTAL/html/Elements/PageLayout Tue Aug 7 03:03:31 2007
@@ -60,7 +60,7 @@
<div id="header">
<h1><% $title %></h1>
-
+<div id="page-navigation">
% my $sep = 0;
% my $postsep = 0;
% my $count = 0;
@@ -155,7 +155,7 @@
</ul>
% }
</div>
-
+</div>
<div id="body">
% $m->callback( %ARGS, CallbackName => 'BeforeBody' );
% $m->flush_buffer(); # we've got the page laid out, let's flush the buffer;
Added: rt/branches/3.7-EXPERIMENTAL/html/Elements/RT__Template/ColumnMap
==============================================================================
--- (empty file)
+++ rt/branches/3.7-EXPERIMENTAL/html/Elements/RT__Template/ColumnMap Tue Aug 7 03:03:31 2007
@@ -0,0 +1,71 @@
+%# BEGIN BPS TAGGED BLOCK {{{
+%#
+%# COPYRIGHT:
+%#
+%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}}
+<%ARGS>
+$Name
+$Attr => undef
+</%ARGS>
+<%ONCE>
+our $TEMPLATE_COLUMN_MAP = {
+ id => {
+ title => '#',
+ attribute => 'id',
+ align => 'right',
+ value => sub { return $_[0]->id },
+ },
+};
+
+foreach my $col(qw(Name Description)) {
+ $TEMPLATE_COLUMN_MAP->{ $col } = { attribute => $col, value => sub { return $_[0]->$col() } };
+}
+
+</%ONCE>
+<%INIT>
+$m->callback( COLUMN_MAP => $TEMPLATE_COLUMN_MAP, CallbackName => 'ColumnMap', CallbackOnce => 1 );
+return undef unless $TEMPLATE_COLUMN_MAP->{ $Name };
+return $TEMPLATE_COLUMN_MAP->{ $Name }->{ $Attr };
+</%INIT>
Modified: rt/branches/3.7-EXPERIMENTAL/html/Elements/RT__Ticket/ColumnMap
==============================================================================
--- rt/branches/3.7-EXPERIMENTAL/html/Elements/RT__Ticket/ColumnMap (original)
+++ rt/branches/3.7-EXPERIMENTAL/html/Elements/RT__Ticket/ColumnMap Tue Aug 7 03:03:31 2007
@@ -102,11 +102,6 @@
attribute => 'Owner',
value => sub { return $_[0]->OwnerObj->Name }
},
- id => {
- attribute => 'id',
- align => 'right',
- value => sub { return $_[0]->id }
- },
Status => {
attribute => 'Status',
value => sub { return loc($_[0]->Status) }
@@ -196,16 +191,6 @@
attribute => 'Started',
value => sub { return $_[0]->StartedObj->AgeAsString }
},
- CreatedRelative => {
- title => 'Created',
- attribute => 'Created',
- value => sub { return $_[0]->CreatedObj->AgeAsString }
- },
- LastUpdatedRelative => {
- title => 'Last Updated',
- attribute => 'LastUpdated',
- value => sub { return $_[0]->LastUpdatedObj->AgeAsString }
- },
ToldRelative => {
title => 'Told',
attribute => 'Told',
@@ -236,25 +221,6 @@
attribute => 'Started',
value => sub { return $_[0]->StartedObj->AsString }
},
- Created => {
- attribute => 'Created',
- value => sub { return $_[0]->CreatedObj->AsString }
- },
- CreatedBy => {
- attribute => 'CreatedBy',
- title => 'Created By',
- value => sub { return $_[0]->CreatorObj->Name }
- },
- LastUpdated => {
- attribute => 'LastUpdated',
- title => 'Last Updated',
- value => sub { return $_[0]->LastUpdatedObj->AsString }
- },
- LastUpdatedBy => {
- attribute => 'LastUpdatedBy',
- title => 'Last Updated By',
- value => sub { return $_[0]->LastUpdatedByObj->Name }
- },
Told => {
attribute => 'Told',
value => sub { return $_[0]->ToldObj->AsString }
Added: rt/branches/3.7-EXPERIMENTAL/html/Elements/RT__User/ColumnMap
==============================================================================
--- (empty file)
+++ rt/branches/3.7-EXPERIMENTAL/html/Elements/RT__User/ColumnMap Tue Aug 7 03:03:31 2007
@@ -0,0 +1,73 @@
+%# BEGIN BPS TAGGED BLOCK {{{
+%#
+%# COPYRIGHT:
+%#
+%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}}
+<%ARGS>
+$Name
+$Attr => undef
+</%ARGS>
+<%ONCE>
+our $USER_COLUMN_MAP = {
+ id => {
+ title => '#',
+ attribute => 'id',
+ align => 'right',
+ value => sub { return $_[0]->id },
+ },
+};
+
+foreach my $col(qw(Name RealName NickName EmailAddress Organization
+ HomePhone WorkPhone MobilePhone PagerPhone Address1 Address2 City State Zip Country))
+{
+ $USER_COLUMN_MAP->{ $col } = { attribute => $col, value => sub { return $_[0]->$col() } };
+}
+
+</%ONCE>
+<%INIT>
+$m->callback( COLUMN_MAP => $USER_COLUMN_MAP, CallbackName => 'ColumnMap', CallbackOnce => 1 );
+return undef unless $USER_COLUMN_MAP->{ $Name };
+return $USER_COLUMN_MAP->{ $Name }->{ $Attr };
+</%INIT>
Modified: rt/branches/3.7-EXPERIMENTAL/html/Elements/SelectOwner
==============================================================================
--- rt/branches/3.7-EXPERIMENTAL/html/Elements/SelectOwner (original)
+++ rt/branches/3.7-EXPERIMENTAL/html/Elements/SelectOwner Tue Aug 7 03:03:31 2007
@@ -80,6 +80,7 @@
my %user_uniq_hash;
+$m->callback( %ARGS, objects => \@objects, CallbackName => 'UpdateObjectList');
foreach my $object (@objects) {
my $Users = RT::Users->new($session{CurrentUser});
Modified: rt/branches/3.7-EXPERIMENTAL/html/NoAuth/css/3.4-compat/misc.css
==============================================================================
--- rt/branches/3.7-EXPERIMENTAL/html/NoAuth/css/3.4-compat/misc.css (original)
+++ rt/branches/3.7-EXPERIMENTAL/html/NoAuth/css/3.4-compat/misc.css Tue Aug 7 03:03:31 2007
@@ -47,3 +47,32 @@
%# END BPS TAGGED BLOCK }}}
.oddline { background: white; }
.evenline { background: #cecfef; }
+
+
+#comp-Search-Build .titlebox-content {
+ padding-left: 0.7em;
+ padding-right: 0.3em;
+}
+
+#editsearches {
+ width: 55%;
+ float:right;
+ text-align: left;
+ padding-right: 1em;
+}
+
+#editsearches .titlebox-content {
+ padding: 1em;
+}
+
+
+#editquery {
+ width: 40%;
+ float: left;
+ padding-left: 1em;
+}
+
+#pick-criteria {
+ clear: both;
+}
+
Added: rt/branches/3.7-EXPERIMENTAL/html/NoAuth/css/3.5-default/local.css
==============================================================================
--- (empty file)
+++ rt/branches/3.7-EXPERIMENTAL/html/NoAuth/css/3.5-default/local.css Tue Aug 7 03:03:31 2007
@@ -0,0 +1,51 @@
+%# BEGIN BPS TAGGED BLOCK {{{
+%#
+%# COPYRIGHT:
+%#
+%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}}
+
+%# This is the file you want to override in local/html for adding
+%# custom css.
+
Modified: rt/branches/3.7-EXPERIMENTAL/html/NoAuth/css/3.5-default/main.css
==============================================================================
--- rt/branches/3.7-EXPERIMENTAL/html/NoAuth/css/3.5-default/main.css (original)
+++ rt/branches/3.7-EXPERIMENTAL/html/NoAuth/css/3.5-default/main.css Tue Aug 7 03:03:31 2007
@@ -58,4 +58,5 @@
@import "nav.css";
@import "header.css";
@import "footer.css";
+ at import "local.css";
Modified: rt/branches/3.7-EXPERIMENTAL/html/NoAuth/css/3.5-default/misc.css
==============================================================================
--- rt/branches/3.7-EXPERIMENTAL/html/NoAuth/css/3.5-default/misc.css (original)
+++ rt/branches/3.7-EXPERIMENTAL/html/NoAuth/css/3.5-default/misc.css Tue Aug 7 03:03:31 2007
@@ -117,6 +117,30 @@
padding-right: 0.3em;
}
+
+
+#editsearches {
+ width: 55%;
+ float:right;
+ text-align: left;
+ padding-right: 1em;
+}
+
+#editsearches .titlebox-content {
+ padding: 1em;
+}
+
+
+#editquery {
+ width: 40%;
+ float: left;
+ padding-left: 1em;
+}
+
+#pick-criteria {
+ clear: both;
+}
+
.shredder-form { line-height: 3em }
.shredder-form span { margin-left: 1em; margin-right: 1em }
.shredder-help {
Modified: rt/branches/3.7-EXPERIMENTAL/html/NoAuth/css/autohandler
==============================================================================
--- rt/branches/3.7-EXPERIMENTAL/html/NoAuth/css/autohandler (original)
+++ rt/branches/3.7-EXPERIMENTAL/html/NoAuth/css/autohandler Tue Aug 7 03:03:31 2007
@@ -46,6 +46,7 @@
%#
%# END BPS TAGGED BLOCK }}}
<%init>
+RT::Interface::Web::StaticFileHeaders();
$r->content_type('text/css');
$m->call_next();
return();
Added: rt/branches/3.7-EXPERIMENTAL/html/NoAuth/css/web2/approvals.css
==============================================================================
--- (empty file)
+++ rt/branches/3.7-EXPERIMENTAL/html/NoAuth/css/web2/approvals.css Tue Aug 7 03:03:31 2007
@@ -0,0 +1,97 @@
+%# BEGIN BPS TAGGED BLOCK {{{
+%#
+%# COPYRIGHT:
+%#
+%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}}
+.approval {
+ margin-bottom: 3em;
+ padding: 0 0 1em 0;
+ border: 1px solid #069;
+}
+
+.approval .name {
+ background: #069;
+ color: white;
+ font-size: 1.1em;
+ padding: 0.2em 0 0.4em 0.2em;
+}
+
+#body .approval .name :link, #body .approval .name :visited {
+ color: white;
+}
+
+.approval .originating-ticket {
+ margin: 0.5em;
+ border: 1px solid #aaa;
+}
+
+.approval .originating-ticket .link {
+ display: block;
+ background: #aaa;
+ padding: 0.2em 0 0.4em 0.2em;
+}
+
+.approval .originating-ticket .info {
+ padding: 0.5em;
+}
+
+#body .approval .originating-ticket .link :link,
+#body .approval .originating-ticket .link :visited {
+ color: black;
+}
+
+.approval .form {
+ margin: 1em 0.5em 0.5em 0.5em;
+}
+
+.approval .form .action, .approval .form .notes {
+ float: left;
+ margin-left: 1em;
+}
+
+.approval .form .action { padding-top: 1em; }
+
+.approval .form .action label { font-weight: normal; }
+.approval .form .notes label { display: block; }
Added: rt/branches/3.7-EXPERIMENTAL/html/NoAuth/css/web2/body.css
==============================================================================
--- (empty file)
+++ rt/branches/3.7-EXPERIMENTAL/html/NoAuth/css/web2/body.css Tue Aug 7 03:03:31 2007
@@ -0,0 +1,78 @@
+%# BEGIN BPS TAGGED BLOCK {{{
+%#
+%# COPYRIGHT:
+%#
+%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}}
+#body {
+ border-left: 10px solid #ccc;
+ border-right: 10px solid #ccc;
+
+}
+
+#body {
+ clear: both;
+}
+
+#body h1 {
+ border-bottom: 1px dotted #069;
+ padding-left: 0.5em;
+}
+
+#body h1, #body h2, #body h3, #body h4, #body h5, #body h6 {
+ color: #930;
+ font-weight: bold;
+}
+
+#body :link { color: #069; }
+
+#body :link, #body :visited {
+ font-weight: bold;
+ text-decoration: none;
+}
+
+#body :link:hover, #body :visited:hover {
+ text-decoration: underline;
+}
+
Added: rt/branches/3.7-EXPERIMENTAL/html/NoAuth/css/web2/footer.css
==============================================================================
--- (empty file)
+++ rt/branches/3.7-EXPERIMENTAL/html/NoAuth/css/web2/footer.css Tue Aug 7 03:03:31 2007
@@ -0,0 +1,66 @@
+%# BEGIN BPS TAGGED BLOCK {{{
+%#
+%# COPYRIGHT:
+%#
+%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}}
+
+
+#footer {
+ border-top: 1px solid black;
+ font-size: 1em;
+ text-align: right;
+ padding: 1em;
+ margin-top: 3em;
+ color: #000;
+}
+
+#footer a {
+ color: #000;
+
+}
+
+p#time {
+ display: none;
+}
Added: rt/branches/3.7-EXPERIMENTAL/html/NoAuth/css/web2/forms.css
==============================================================================
--- (empty file)
+++ rt/branches/3.7-EXPERIMENTAL/html/NoAuth/css/web2/forms.css Tue Aug 7 03:03:31 2007
@@ -0,0 +1,129 @@
+%# BEGIN BPS TAGGED BLOCK {{{
+%#
+%# COPYRIGHT:
+%#
+%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}}
+form input, form select, form .combobox {
+ border-top: 1px solid #ddd;
+ border-left: 1px solid #ddd;
+ border-bottom: 2px solid #999;
+ border-right: 2px solid #999;
+ padding: 0.25em;
+ background: #eee;
+ font-weight: bold;
+ font-size: 1em;
+ margin: 0.5em 0.5em 0 0.5em;
+}
+
+
+form input.checkbox, form input.radio {
+ border: none;
+ padding: 0;
+}
+
+/* form .entry input, form .value input */
+
+.label, form label, .labeltop {
+ font-weight: bold;
+}
+
+.label-comment {
+ font-weight: normal;
+ font-size: 0.9em;
+}
+
+.labeltop {
+ vertical-align: top;
+}
+
+.submit {
+ font-weight: bold;
+ color: #a00;
+ font-size: 1.1em;
+ padding: 0.3em 1.5em 0 1.5em;
+ border-top: 1px solid #930;
+ margin: 1.5em 0 2.5em 0;
+}
+
+.submit .buttons { float: right; }
+.submit .extra-buttons { float: left; }
+.submit .button { font-size: 0.9em; }
+.submit .submit-clear { display: none; }
+
+.input-row {
+ clear: both;
+ padding: 0.25em;
+}
+
+%# ComboBox styles... some properties like height and width must be dynamically
+%# set in the JS (at least for now).
+.comibobox {
+ border: 2px inset #069;
+ padding-left: 0.5em;
+ padding-bottom: 0.1em;
+}
+
+.combobox .combo-button {
+ padding: 0 2px 0 2px;
+ margin: 0;
+ background: ButtonFace;
+ color: ButtonText;
+ border: 2px outset ButtonHighlight;
+ cursor: default;
+ font-size: 8pt;
+}
+
+.combobox .combo-text {
+ border: none;
+ margin: 0;
+ padding: 0;
+}
+
+.combobox .combo-list {
+ z-index: 200;
+ border: 10px solid red;
+ background: red;
+}
+
Added: rt/branches/3.7-EXPERIMENTAL/html/NoAuth/css/web2/header.css
==============================================================================
--- (empty file)
+++ rt/branches/3.7-EXPERIMENTAL/html/NoAuth/css/web2/header.css Tue Aug 7 03:03:31 2007
@@ -0,0 +1,112 @@
+%# BEGIN BPS TAGGED BLOCK {{{
+%#
+%# COPYRIGHT:
+%#
+%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}}
+
+
+body {
+ background: #ccc;
+ text-align: left;
+ padding:0;
+}
+
+div#logo {
+ width: 100%;
+ height: 4em;
+ background-color:#999;
+
+}
+
+div#logo img {
+ float: left;
+ padding: 0em;
+ border: 0;
+}
+
+div#logo span {
+ clear: both;
+ float: left;
+}
+
+
+#header h1 {
+ color: #930;
+ padding-top: 1em;
+ padding-left: .25em;
+ font-weight: bold;
+ text-align: left;
+ font-size: 2em;
+}
+
+#header ul {
+ margin: 0;
+ padding: 0;
+ color: #eee;
+ float: left;
+}
+
+#header :link,
+#header :visited
+{
+ color: white;
+ text-decoration: none;
+}
+
+#header :link.selected,
+#header :visited.selected,
+#header :link:hover,
+#header :visited:hover
+{
+ color: #fc6; /*#ff6;*/
+}
+
+#header :link.selected,
+#header :visited.selected
+{
+ font-weight: bold;
+ text-decoration: underline;
+}
+
Added: rt/branches/3.7-EXPERIMENTAL/html/NoAuth/css/web2/login.css
==============================================================================
--- (empty file)
+++ rt/branches/3.7-EXPERIMENTAL/html/NoAuth/css/web2/login.css Tue Aug 7 03:03:31 2007
@@ -0,0 +1,99 @@
+%# BEGIN BPS TAGGED BLOCK {{{
+%#
+%# COPYRIGHT:
+%#
+%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}}
+#login-box {
+ width: 50%;
+ margin: 0 auto 4em auto;
+}
+
+%# More rules only IE will recognize (but are still valid!) to correct for
+%# IE's incorrect handling of auto margins and the W3C defined behavior.
+%# text-align will affect a block element in IE, therefore centering it, like
+%# left and right auto margins *should*
+
+
+#login-box {
+
+ padding-top: 4em;
+
+}
+
+/*
+
+* html #login-box {
+ text-align: center;
+}
+
+
+
+%# ... and align the text back the way it should be
+* html #login-box .titlebox {
+ text-align: left;
+}
+
+#login-box .input-row {
+ padding: 0.5em;
+}
+
+#login-box .input-row .label {
+ width: 8em;
+ float: left;
+ text-align: right;
+ padding: 0.2em 1em 0 0;
+}
+
+#login-box .input-row .input {
+ float: left;
+}
+
+#login-box .button-row {
+ clear: both;
+ padding: 0.5em;
+ float: right;
+}
+
+*/
Added: rt/branches/3.7-EXPERIMENTAL/html/NoAuth/css/web2/logo.css
==============================================================================
--- (empty file)
+++ rt/branches/3.7-EXPERIMENTAL/html/NoAuth/css/web2/logo.css Tue Aug 7 03:03:31 2007
@@ -0,0 +1,48 @@
+%# BEGIN BPS TAGGED BLOCK {{{
+%#
+%# COPYRIGHT:
+%#
+%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}}
+
Added: rt/branches/3.7-EXPERIMENTAL/html/NoAuth/css/web2/main.css
==============================================================================
--- (empty file)
+++ rt/branches/3.7-EXPERIMENTAL/html/NoAuth/css/web2/main.css Tue Aug 7 03:03:31 2007
@@ -0,0 +1,62 @@
+%# BEGIN BPS TAGGED BLOCK {{{
+%#
+%# COPYRIGHT:
+%#
+%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}}
+ at import "yui.css";
+ at import "misc.css";
+ at import "login.css";
+ at import "logo.css";
+ at import "quickbar.css";
+ at import "body.css";
+ at import "approvals.css";
+ at import "titlebox.css";
+ at import "forms.css";
+ at import "ticket.css";
+ at import "transactions.css";
+ at import "nav.css";
+ at import "header.css";
+ at import "footer.css";
+
Added: rt/branches/3.7-EXPERIMENTAL/html/NoAuth/css/web2/misc.css
==============================================================================
--- (empty file)
+++ rt/branches/3.7-EXPERIMENTAL/html/NoAuth/css/web2/misc.css Tue Aug 7 03:03:31 2007
@@ -0,0 +1,149 @@
+%# BEGIN BPS TAGGED BLOCK {{{
+%#
+%# COPYRIGHT:
+%#
+%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}}
+
+.hide, .hidden { display: none !important; }
+
+#body.calpopup {
+ margin-left: 2em;
+}
+
+.calendar {
+ text-align: center;
+ margin: 2em 0 0 0;
+}
+
+.calendar td, .calendar th { padding: 0.1em 0.25em 0.1em 0.25em; }
+
+.calendar caption .month {
+ padding: 0 1em 0 1em;
+ font-size: 1.5em;
+}
+
+.evenline { background-color: white; }
+.oddline { background-color: #ddd; }
+
+td {
+ padding: 0.1em 0.5em 0.1em 0.5em;
+}
+
+.clear { clear: both; }
+
+ul.action-results {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+
+#comp-Search-Build body {
+}
+
+div.autocomplete {
+ position: absolute;
+ background-color: white;
+ border: 1px solid #888;
+ margin: 0px;
+ padding: 0px;
+}
+div.autocomplete ul {
+ list-style-type: none;
+ margin: 0px;
+ padding: 0px;
+}
+div.autocomplete ul li.selected {
+ background-color: #0088cc;
+ color: #eee;
+}
+div.autocomplete ul li {
+ list-style-type: none;
+ display: block;
+ margin: 0;
+ padding: 2px;
+}
+
+#comp-Search-Build .titlebox-content {
+ padding-left: 0.7em;
+ padding-right: 0.3em;
+}
+
+#editsearches {
+ width: 55%;
+ float:right;
+ text-align: left;
+ padding-right: 1em;
+}
+
+#editsearches .titlebox-content {
+ padding: 1em;
+}
+
+
+#editquery {
+ width: 40%;
+ float: left;
+ padding-left: 1em;
+}
+
+#pick-criteria {
+ clear: both;
+}
+
+.shredder-form { line-height: 3em }
+.shredder-form span { margin-left: 1em; margin-right: 1em }
+.shredder-help {
+ background-color: #ffe99d;
+ margin: 1em 2em;
+ padding: 1em;
+ border-style: solid;
+ border-color: black;
+ border-width: 1px;
+}
+#shredder-select-plugin { border-style: solid; border-color: black; border-width: 1px }
+#shredder-plugin-results { border-style: solid; border-color: black; border-width: 1px; margin-top: 1em; }
+#shredder-plugin-results input { margin-left: 1em; }
+
+.pod-sequence-C { background-color: #eee }
+
Added: rt/branches/3.7-EXPERIMENTAL/html/NoAuth/css/web2/nav-left.css
==============================================================================
--- (empty file)
+++ rt/branches/3.7-EXPERIMENTAL/html/NoAuth/css/web2/nav-left.css Tue Aug 7 03:03:31 2007
@@ -0,0 +1,47 @@
+%# BEGIN BPS TAGGED BLOCK {{{
+%#
+%# COPYRIGHT:
+%#
+%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}}
Added: rt/branches/3.7-EXPERIMENTAL/html/NoAuth/css/web2/nav.css
==============================================================================
--- (empty file)
+++ rt/branches/3.7-EXPERIMENTAL/html/NoAuth/css/web2/nav.css Tue Aug 7 03:03:31 2007
@@ -0,0 +1,143 @@
+%# BEGIN BPS TAGGED BLOCK {{{
+%#
+%# COPYRIGHT:
+%#
+%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}}
+#nav {
+ float: left;
+ clear: both;
+ height: 4em;
+ width: 100%;
+ background: #999;
+ padding-top: 1em;
+}
+
+#nav ul {
+ float: left;
+ clear: left;
+ color: #eee;
+ font-weight: bold;
+
+ margin: 0;
+ padding: 0;
+
+}
+
+#nav li ul {
+}
+
+/*
+%# We need the extra padding above for browsers where we display the arrows
+%# but those don't work in IE so we don't want as much spacing
+%#
+%# IE wrongly matches the selector below even though there isn't an element
+%# above <html> in the doc tree
+*/
+* html #nav li ul {
+ margin-top: 0.25em;
+}
+
+#nav li {
+ display: inline;
+ margin-bottom: 1em;
+ padding: 0.2em 0 0.4em 0;
+}
+
+
+#nav ul div div.wrapper {
+ text-align: left;
+ padding: 0.2em 1em 0.4em 0;
+ margin-left:0;
+}
+
+
+#nav :link,
+#nav :visited
+{
+ color: #ececec;
+ text-decoration: none;
+}
+
+#nav :link.selected,
+#nav :visited.selected,
+#nav :link:hover,
+#nav :visited:hover
+{
+ color: #fc6; /*#ff6;*/
+}
+
+#nav :link.selected,
+#nav :visited.selected
+{
+ text-decoration: underline;
+}
+
+
+
+
+#header #page-menu {
+ width: 100%;
+ height: 3em;
+ margin-top: -3.5em;
+ text-align: left;
+ padding-right: 0em;
+ float: left;
+ clear: both;
+ background: #999;
+}
+
+#header ul li {
+ display: inline;
+}
+
+
+
+#actions-menu div div div{
+ position: relative;
+ right: 0;
+ top: -2em;
+ float: right;
+ margin-right: 2em;
+}
Added: rt/branches/3.7-EXPERIMENTAL/html/NoAuth/css/web2/quickbar.css
==============================================================================
--- (empty file)
+++ rt/branches/3.7-EXPERIMENTAL/html/NoAuth/css/web2/quickbar.css Tue Aug 7 03:03:31 2007
@@ -0,0 +1,105 @@
+%# BEGIN BPS TAGGED BLOCK {{{
+%#
+%# COPYRIGHT:
+%#
+%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}}
+
+#quickbar {
+ position: absolute;
+ right: 0;
+ top: 0;
+
+}
+#quickbar #quick-personal {
+ display: inline;
+ color: #fff;
+ padding: 0.5em 1em 0 0;
+ float: right;
+}
+
+#quickbar #quick-personal span {
+ font-weight: bold;
+}
+
+#quickbar #quick-personal :link,
+#quickbar #quick-personal :visited
+{
+ color: #fff;
+ font-weight: bold;
+}
+
+#quickbar #quick-personal :link:hover,
+#quickbar #quick-personal :visited:hover
+{
+ color: black;
+}
+
+#quickbar #topactions {
+ float: right;
+ clear: right;
+
+ font-size: 0.9em;
+ padding-right: 1em;
+}
+
+#quickbar #topactions form {
+ display: inline;
+ margin-left: 1em;
+}
+
+#quickbar #topactions form .button {
+ padding: 0 2px 0 2px;
+ font-size: 1em;
+ margin: 0;
+}
+
+#quickbar #topactions form .field {
+ padding: 1px;
+ font-size: 0.9em;
+}
+
+#quickbar #topactions form input.field {
+ padding: 3px;
+}
Added: rt/branches/3.7-EXPERIMENTAL/html/NoAuth/css/web2/ticket.css
==============================================================================
--- (empty file)
+++ rt/branches/3.7-EXPERIMENTAL/html/NoAuth/css/web2/ticket.css Tue Aug 7 03:03:31 2007
@@ -0,0 +1,57 @@
+%# BEGIN BPS TAGGED BLOCK {{{
+%#
+%# COPYRIGHT:
+%#
+%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}}
+.ticket-info-cfs .label {
+ vertical-align: top;
+}
+
+.ticket-info-cfs ul {
+ margin: 0;
+ padding: 0;
+ margin-left: 0.5em;
+ list-style: none;
+}
Added: rt/branches/3.7-EXPERIMENTAL/html/NoAuth/css/web2/titlebox.css
==============================================================================
--- (empty file)
+++ rt/branches/3.7-EXPERIMENTAL/html/NoAuth/css/web2/titlebox.css Tue Aug 7 03:03:31 2007
@@ -0,0 +1,198 @@
+%# BEGIN BPS TAGGED BLOCK {{{
+%#
+%# COPYRIGHT:
+%#
+%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}}
+.titlebox {
+ margin-bottom: 1em;
+}
+
+.titlebox .titlebox-content {
+ margin-top: -1px;
+ background: #fff;
+ /*padding: 1em 2em 0.5em 2em;*/
+ margin: 0;
+ /*margin: 1em 2em 0.5em 2em;*/
+}
+
+
+
+%# TRS: I wish there was a more elegant way to do this... I essentially need to
+%# select all elements X that do NOT have element Y as a descendant... which I can
+%# fake with the child selector of CSS2, but IE is stupid and does not support that.
+
+
+.titlebox {
+ padding:-right 3px;
+ border-bottom: 3px solid #666;
+ border-right: 3px solid #666;
+ border-left: 1px solid #ccc;
+ border-top: 1px solid #ccc;
+}
+
+
+
+
+.titlebox-content th {
+ background-color: #fff;
+ font-size: 80%;
+ font-weight: bold;
+ text-align: center;
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border: 1px solid #aaa;
+ border-top:0;
+
+}
+
+.titlebox-content td {
+ text-align:left;
+
+}
+
+#login-box .titlebox .titlebox-content .button
+{
+}
+
+
+
+
+.titlebox .titlebox-title {
+ position: relative;
+ font-weight: bold;
+ color: #930;
+ font-size: 1.2em;
+ padding: 0.2em;
+ padding-left: 3em;
+ background-color: #ddd;
+ text-align: left;
+ border-bottom: 1px solid #ccc;
+}
+
+.titlebox .titlebox-title .right {
+ position: absolute;
+ top: 0.25em;
+ right: 0.5em; font-size: 0.8em;
+ color: #888;
+}
+
+.titlebox .titlebox-title .right .selected { color: #930; }
+
+#body .titlebox .titlebox-title .right :link,
+#body .titlebox .titlebox-title .right :visited {
+ color: #888;
+}
+
+#body .titlebox .titlebox-title .right :link:hover,
+#body .titlebox .titlebox-title .right :visited:hover {
+ color: #930;
+}
+
+.titlebox .titlebox-title .widget a {
+ display: block;
+ padding-top: 1em;
+ width: 2em;
+
+ background: url(<%RT->Config->Get('WebImagesURL')%>/css/rollup-arrow.gif) no-repeat center center;
+
+ margin: 0;
+ text-indent: -9999px;
+
+ position: absolute;
+ top: 0.4em;
+ left: 0.75em;
+ float: left;
+
+%# Basically IE5 will see those crazy backslashes and prematurely end the rule.
+%# This allows values for IE 5's broken box model to be set before the hack and
+%# the real values to be set after. We also set voice-family back to whatever it
+%# would have been on the off chance it's actually used.
+ /* WIN IE5 hack */
+ height: 7px;
+ voice-family: "\"}\"";
+ voice-family: inherit;
+ height: 0;
+ overflow: hidden;
+}
+
+%# IE also doesn't support the child selector ">", so we can use it to set values
+%# that only other browsers will see (in this case, playing nice with Opera, which
+%# also suffers from the backslash hack above.)
+html>body .titlebox .titlebox-title .widget a {
+ height: 0;
+ overflow: hidden;
+}
+
+%# Compensates for IE's bad box model by hiding this rule from other browsers
+* html .titlebox .titlebox-title .widget a {
+ background-position: center 0.3em;
+ left: -3.5em;
+}
+
+.titlebox.rolled-up .titlebox-title .widget a {
+ background-image: url(<%RT->Config->Get('WebImagesURL')%>/css/rolldown-arrow.gif);
+}
+
+#body .titlebox .titlebox-title :link,
+#body .titlebox .titlebox-title :visited
+{
+ color: #930;
+ text-decoration: none;
+}
+
+#body .titlebox .titlebox-title :link:hover,
+#body .titlebox .titlebox-title :visited:hover
+{
+ text-decoration: underline;
+}
+
+.titlebox .titlebox-content hr.clear {
+ display: none;
+ visibility: hidden;
+}
+.titlebox .titlebox-content table{
+ padding-left: 1em;
+}
+
Added: rt/branches/3.7-EXPERIMENTAL/html/NoAuth/css/web2/transactions.css
==============================================================================
--- (empty file)
+++ rt/branches/3.7-EXPERIMENTAL/html/NoAuth/css/web2/transactions.css Tue Aug 7 03:03:31 2007
@@ -0,0 +1,160 @@
+%# BEGIN BPS TAGGED BLOCK {{{
+%#
+%# COPYRIGHT:
+%#
+%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}}
+
+.history .titlebox, .summary .titlebox {
+ margin: 1em;
+}
+.history .titlebox, .summary .titlebox table table {
+ margin: 1em;
+
+}
+.ticket-transaction {
+ padding-bottom: 0.25em;
+ padding-top: 0.25em;
+ border-bottom: 1px solid #ddd;
+ border-right: 3px solid #069;
+}
+
+#ticket-history .ticket-transaction {
+ border-bottom-color: #ccc;
+}
+
+.ticket-transaction.even {
+ background: #eee;
+}
+
+.ticket-transaction .date {
+ font-size: 0.9em;
+ width: 10em;
+}
+
+.ticket-transaction .description {
+ font-weight: bold;
+ text-align: left;
+ font-size: 0.9em;
+}
+
+.ticket-transaction .actions {
+ text-align: right;
+ font-weight: bold;
+}
+
+.ticket-transaction .type {
+ background: #888;
+ width: 1.5em;
+ color: white;
+ text-align: center;
+ font-size: 1.1em;
+}
+
+#body .ticket-transaction .type :link,
+#body .ticket-transaction .type :visited
+{
+ color: white;
+ font-weight: normal;
+}
+
+.ticket-transaction.basics { border-color: #b32; }
+.ticket-transaction.basics .type { background: #b32; }
+.ticket-summary .ticket-info-basics .titlebox { border-left: 0.5em solid #b32; }
+
+.ticket-transaction.reminders { border-color: #561; }
+.ticket-transaction.reminders .type { background: #5612; }
+.ticket-summary .ticket-info-reminders .titlebox { border-left: 0.5em solid #561; }
+
+.ticket-transaction.people { border-color: #48c; }
+.ticket-transaction.people .type { background: #48c; }
+.ticket-summary .ticket-info-people .titlebox { border-left: 0.5em solid #48c; }
+
+%# light green - #ad8
+.ticket-transaction.links { border-color: #316531; }
+.ticket-transaction.links .type { background: #316531; }
+.ticket-summary .ticket-info-links .titlebox { border-left: 0.5em solid #316531; }
+
+%# orange - #d71
+.ticket-transaction.dates { border-color: #633063; }
+.ticket-transaction.dates .type { background: #633063; }
+.ticket-summary .ticket-info-dates .titlebox { border-left: 0.5em solid #633063; }
+
+.ticket-transaction.message { border-color: #069; }
+.ticket-transaction.message .type { background: #069; }
+
+.ticket-transaction.other { border-color: #888; }
+
+.ticket-transaction td .message-header-value {
+ padding: 0;
+}
+
+.ticket-transaction td .message-header-key {
+ padding: 0 1em 0 1.5em;
+ font-weight: bold;
+}
+
+.ticket-transaction .downloadattachment {
+ float: right;
+ font-size: 0.9em;
+ text-align: right;
+}
+
+.ticket-transaction .messagebody {
+ clear: both;
+ padding-left: 3em;
+ padding-bottom: 1em;
+}
+
+%# Message stanza colors
+.message-stanza-depth-0 { color: #000; }
+.message-stanza-depth-1 { color: #600; }
+.message-stanza-depth-2 { color: #060; }
+.message-stanza-depth-3 { color: #006; }
+.message-stanza-depth-4 { color: #ccc; }
+.message-stanza-depth-5 { color: #0c0; }
+.message-stanza-depth-6 { color: #00c; }
+.message-stanza-depth-7 { color: #f00; }
+.message-stanza-depth-8 { color: #0f0; }
+.message-stanza-depth-9 { color: #00f; }
Added: rt/branches/3.7-EXPERIMENTAL/html/NoAuth/css/web2/yui.css
==============================================================================
--- (empty file)
+++ rt/branches/3.7-EXPERIMENTAL/html/NoAuth/css/web2/yui.css Tue Aug 7 03:03:31 2007
@@ -0,0 +1,13 @@
+
+/*
+Copyright (c) 2007, Yahoo! Inc. All rights reserved.
+Code licensed under the BSD License:
+http://developer.yahoo.net/yui/license.txt
+version: 2.2.2
+*/
+/*reset.css*/body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,textarea,p,blockquote,th,td{margin:0;padding:0;}table{border-collapse:collapse;border-spacing:0;}fieldset,img{border:0;}address,caption,cite,code,dfn,em,strong,th,var{font-style:normal;font-weight:normal;}ol,ul {list-style:none;}caption,th {text-align:left;}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal;}q:before,q:after{content:'';}abbr,acronym {border:0;}
+/*fonts.css*/body{font:13px arial,helvetica,clean,sans-serif;*font-size:small;*font:x-small;}table {font-size:inherit;font:100%;}select, input, textarea {font:99% arial,helvetica,clean,sans-serif;}pre, code {font:115% monospace;*font-size:100%;}body * {line-height:1.22em;}
+/*grids.css*/body{text-align:center;}#ft{clear:both;}#doc,#doc2,#doc3,.yui-t1,.yui-t2,.yui-t3,.yui-t4,.yui-t5,.yui-t6,.yui-t7{margin:auto;text-align:left;width:57.69em;*width:56.3em;min-width:750px;}#doc2{width:73.074em;*width:71.313em;min-width:950px;}#doc3{margin:auto 10px;width:auto;}.yui-b{position:relative;}.yui-b{_position:static;}#yui-main .yui-b{position:static;}#yui-main{width:100%;}.yui-t1 #yui-main,.yui-t2 #yui-main,.yui-t3 #yui-main{float:right;margin-left:-25em;}.yui-t4 #yui-main,.yui-t5 #yui-main,.yui-t6 #yui-main{float:left;margin-right:-25em;}.yui-t1 .yui-b{float:left;width:12.3207em;*width:12.0106em;}.yui-t1 #yui-main .yui-b{margin-left:13.3207em;*margin-left:13.0106em;}.yui-t2 .yui-b{float:left;width:13.8456em;*width:13.512em;}.yui-t2 #yui-main .yui-b{margin-left:14.8456em;*margin-left:14.512em;}.yui-t3 .yui-b{float:left;width:23.0759em;*width:22.52em;}.yui-t3 #yui-main .yui-b{margin-left:24.0759em;*margin-left:23.52em;}.yui-t4 .yui-b{float:right;width:13.8456em;*width:13.512em;}.yui-t4 #yui-main .yui-b{margin-right:14.8456em;*margin-right:14.512em;}.yui-t5 .yui-b{float:right;width:18.4608em;*width:18.016em;}.yui-t5 #yui-main .yui-b{margin-right:19.4608em;*margin-right:19.016em;}.yui-t6 .yui-b{float:right;width:23.0759em;*width:22.52em;}.yui-t6 #yui-main .yui-b{margin-right:24.0759em;*margin-right:23.52em;}.yui-t7 #yui-main .yui-b{display:block;margin:0 0 1em 0;}#yui-main .yui-b{float:none;width:auto;}.yui-g .yui-u,.yui-g .yui-g,.yui-gc .yui-u,.yui-gc .yui-g .yui-u,.yui-ge .yui-u,.yui-gf .yui-u{float:right;display:inline;}.yui-g div.first,.yui-gc div.first,.yui-gc div.first div.first,.yui-gd div.first,.yui-ge div.first,.yui-gf div.first{float:left;}.yui-g .yui-u,.yui-g .yui-g{width:49.1%;}.yui-g .yui-g .yui-u,.yui-gc .yui-g .yui-u{width:48.1%;}.yui-gb .yui-u,.yui-gc .yui-u,.yui-gd .yui-u{float:left;margin-left:2%;*margin-left:1.895%;width:32%;}.yui-gb div.first,.yui-gc div.first,.yui-gd div.first{margin-left:0;}.yui-gc div.first,.yui-gd .yui-u{width:66%;}.yui-gd div.first{width:32%;}.yui-ge .yui-u{width:24%;}.yui-ge div.first,.yui-gf .yui-u{width:74.2%;}.yui-gf div.first{width:24%;}.yui-ge div.first{width:74.2%;}#bd:after,.yui-g:after,.yui-gb:after,.yui-gc:after,.yui-gd:after,.yui-ge:after,.yui-gf:after{content:".";display:block;height:0;clear:both;visibility:hidden;}#bd,.yui-g,.yui-gb,.yui-gc,.yui-gd,.yui-ge,.yui-gf{zoom:1;}
+
+
+
Modified: rt/branches/3.7-EXPERIMENTAL/html/NoAuth/images/autohandler
==============================================================================
--- rt/branches/3.7-EXPERIMENTAL/html/NoAuth/images/autohandler (original)
+++ rt/branches/3.7-EXPERIMENTAL/html/NoAuth/images/autohandler Tue Aug 7 03:03:31 2007
@@ -1,11 +1,12 @@
<%INIT>
+&RT::Interface::Web::StaticFileHeaders();
# This autohandler will spit out RT's images if the user hasn't
# properly configured their webserver to stop RT from passing
# images through the mason handler.
-
my $file = $m->base_comp->source_file;
+
my $type = "application/octet-stream";
if ($file =~ /\.(gif|png|jpe?g)$/i) {
$type = "image/$1";
Modified: rt/branches/3.7-EXPERIMENTAL/html/NoAuth/js/autohandler
==============================================================================
--- rt/branches/3.7-EXPERIMENTAL/html/NoAuth/js/autohandler (original)
+++ rt/branches/3.7-EXPERIMENTAL/html/NoAuth/js/autohandler Tue Aug 7 03:03:31 2007
@@ -46,6 +46,7 @@
%#
%# END BPS TAGGED BLOCK }}}
<%init>
+&RT::Interface::Web::StaticFileHeaders();
$r->content_type('application/x-javascript');
$m->call_next();
return();
Modified: rt/branches/3.7-EXPERIMENTAL/html/Search/Build.html
==============================================================================
--- rt/branches/3.7-EXPERIMENTAL/html/Search/Build.html (original)
+++ rt/branches/3.7-EXPERIMENTAL/html/Search/Build.html Tue Aug 7 03:03:31 2007
@@ -78,29 +78,29 @@
<input type="hidden" class="hidden" name="Query" value="<% $query{'Query'} %>" />
<input type="hidden" class="hidden" name="Format" value="<% $query{'Format'} %>" />
-<table width="100%" border="0" cellpadding="5">
-<tr valign="top"><td class="boxcontainer" rowspan="2" width="65%">
-
-<& Elements/PickCriteria, query => $query{'Query'}, cfqueues => $queues &>
-<& /Elements/Submit, Caption => loc('Add these terms to your search'), Label => loc('Add'), Name => 'AddClause'&>
-
-</td><td>
+<div id="editquery">
<& Elements/EditQuery,
%ARGS,
actions => \@actions,
optionlist => $optionlist,
Description => $saved_search{'Description'},
-&>
-<& /Elements/Submit, Label => loc('Add and Search'), Name => 'DoSearch'&>
+ &>
+</div>
+<div id="editsearches">
+ <& Elements/EditSearches, %saved_search, CurrentSearch => \%query &>
+</div>
+
+
+<div id="pick-criteria">
+ <& Elements/PickCriteria, query => $query{'Query'}, cfqueues => $queues &>
+</div>
+<& /Elements/Submit, Label => loc('Add these terms'), Name => 'AddClause'&>
+
+<& /Elements/Submit, Label => loc('Add these terms and Search'), Name => 'DoSearch'&>
-</td></tr>
-<tr valign="top"><td>
-<& Elements/EditSearches, %saved_search, CurrentSearch => \%query &>
-</td></tr>
-<tr><td colspan="2" class="boxcontainer">
<& Elements/DisplayOptions,
%ARGS, %query,
@@ -110,7 +110,6 @@
<& /Elements/Submit, Label => loc('Add and Search'), Name => 'DoSearch'&>
-</td></tr></table>
</form>
<%INIT>
Modified: rt/branches/3.7-EXPERIMENTAL/html/Search/Elements/EditSearches
==============================================================================
--- rt/branches/3.7-EXPERIMENTAL/html/Search/Elements/EditSearches (original)
+++ rt/branches/3.7-EXPERIMENTAL/html/Search/Elements/EditSearches Tue Aug 7 03:03:31 2007
@@ -75,7 +75,7 @@
<input type="submit" name="SavedSearchSave" value="<%loc('Save')%>" class="button" />
% }
<br />
-
+<hr />
<&|/l&>Load saved search:</&>
<& SelectSearchesForObjects, Name => 'SavedSearchLoad', Objects => \@Objects, SearchType => $Type &>
<input type="submit" value="<% loc('Load') %>" class="button" />
Modified: rt/branches/3.7-EXPERIMENTAL/html/Search/Elements/PickCriteria
==============================================================================
--- rt/branches/3.7-EXPERIMENTAL/html/Search/Elements/PickCriteria (original)
+++ rt/branches/3.7-EXPERIMENTAL/html/Search/Elements/PickCriteria Tue Aug 7 03:03:31 2007
@@ -49,19 +49,18 @@
<table width="100%" cellspacing="0" cellpadding="0" border="0">
-<tr><th><&|/l&>Field</&></th><th><&|/l&>Operator</&></th><th><&|/l&>Value</&></th></tr>
+
+<& PickBasics &>
+<& PickCFs, cfqueues => \%cfqueues &>
+
+<tr class="separator"><td colspan="3"><hr /></td></tr>
<tr>
<td class="label"><&|/l&>Aggregator</&>:</td>
<td class="operator"> </td>
<td class="value"><& SelectAndOr, Name => "AndOr" &></td>
</tr>
-<tr class="separator"><td colspan="3"><hr /></td></tr>
-
-<& PickBasics &>
-<& PickCFs, cfqueues => \%cfqueues &>
-
</table>
</&>
Modified: rt/branches/3.7-EXPERIMENTAL/html/SelfService/Prefs.html
==============================================================================
--- rt/branches/3.7-EXPERIMENTAL/html/SelfService/Prefs.html (original)
+++ rt/branches/3.7-EXPERIMENTAL/html/SelfService/Prefs.html Tue Aug 7 03:03:31 2007
@@ -52,8 +52,8 @@
% unless (RT->Config->Get('WebExternalAuth') and !RT->Config->Get('WebFallbackToInternalAuth')) {
<&| /Widgets/TitleBox, title => loc('Change password') &>
-<&|/l&>New password</&>: <input type="password" name="NewPass1" size="16" />
-<&|/l&>Confirm</&>: <input type="password" name="NewPass2" size="16" />
+<&|/l&>New password</&>: <input type="password" name="NewPass1" size="16" autocomplete="off" />
+<&|/l&>Confirm</&>: <input type="password" name="NewPass2" size="16" autocomplete="off" />
</&>
<br />
% }
Modified: rt/branches/3.7-EXPERIMENTAL/html/Ticket/Display.html
==============================================================================
--- rt/branches/3.7-EXPERIMENTAL/html/Ticket/Display.html (original)
+++ rt/branches/3.7-EXPERIMENTAL/html/Ticket/Display.html Tue Aug 7 03:03:31 2007
@@ -56,10 +56,11 @@
<& Elements/ShowUpdateStatus, Ticket => $TicketObj &>
% $m->callback( %ARGS, Ticket => $TicketObj, CallbackName => 'BeforeShowSummary' );
+<div class="summary">
<&| /Widgets/TitleBox, title => loc('Ticket metadata') &>
<& /Ticket/Elements/ShowSummary, Ticket => $TicketObj, Attachments => $attachments &>
</&>
-
+</div>
<br />
% $m->callback( Ticket => $TicketObj, %ARGS, CallbackName => 'BeforeShowHistory' );
Modified: rt/branches/3.7-EXPERIMENTAL/html/Ticket/Elements/ShowHistory
==============================================================================
--- rt/branches/3.7-EXPERIMENTAL/html/Ticket/Elements/ShowHistory (original)
+++ rt/branches/3.7-EXPERIMENTAL/html/Ticket/Elements/ShowHistory Tue Aug 7 03:03:31 2007
@@ -58,7 +58,7 @@
my $titleright;
if ($ShowDisplayModes) {
- $titleright = q[<span style="color: black">] . loc('Display mode') . ':</span> ';
+ $titleright = '';
if ($ShowHeaders) {
$titleright .= qq{<a href="$URIFile?id=} .
@@ -76,7 +76,8 @@
}
}
</%perl>
-<& /Widgets/TitleBoxStart, title => $title, titleright => $titleright &>
+<div class="history">
+<& /Widgets/TitleBoxStart, title => $title, titleright_raw => $titleright &>
% }
<div id="ticket-history">
@@ -125,6 +126,7 @@
% if ($ShowDisplayModes or $ShowTitle) {
<& /Widgets/TitleBoxEnd &>
% }
+</div>
<%INIT>
my $Transactions = new RT::Transactions($session{'CurrentUser'});
if ($Tickets) {
Modified: rt/branches/3.7-EXPERIMENTAL/html/Ticket/Elements/ShowMessageStanza
==============================================================================
--- rt/branches/3.7-EXPERIMENTAL/html/Ticket/Elements/ShowMessageStanza (original)
+++ rt/branches/3.7-EXPERIMENTAL/html/Ticket/Elements/ShowMessageStanza Tue Aug 7 03:03:31 2007
@@ -58,7 +58,7 @@
Message => $stanza );
}
elsif ( ref $stanza eq "HASH" ) {
- $para .= ($stanza->{raw}||'');
+ $para .= ($stanza->{raw}||'')."\n";
}
}
$print_content->( \$para ) if length $para;
Modified: rt/branches/3.7-EXPERIMENTAL/html/User/Prefs.html
==============================================================================
--- rt/branches/3.7-EXPERIMENTAL/html/User/Prefs.html (original)
+++ rt/branches/3.7-EXPERIMENTAL/html/User/Prefs.html Tue Aug 7 03:03:31 2007
@@ -111,14 +111,14 @@
<&|/l&>New Password</&>:
</td>
<td class="value">
-<input type="password" name="Pass1" />
+<input type="password" name="Pass1" autocomplete="off"/>
</td>
</tr>
<tr><td class="label">
<&|/l&>Retype Password</&>:
</td>
<td class="value">
-<input type="password" name="Pass2" />
+<input type="password" name="Pass2" autocomplete="off" />
</td>
</tr>
</table>
Modified: rt/branches/3.7-EXPERIMENTAL/html/Widgets/TitleBoxStart
==============================================================================
--- rt/branches/3.7-EXPERIMENTAL/html/Widgets/TitleBoxStart (original)
+++ rt/branches/3.7-EXPERIMENTAL/html/Widgets/TitleBoxStart Tue Aug 7 03:03:31 2007
@@ -50,8 +50,8 @@
% if ($hideable) {
<span class="widget"><a href="#" onclick="return rollup('<%$tid%>');" onfocus="this.blur(); return false;" title="Toggle visibility">X</a></span>
% }
- <span class="left"><% $title_href && qq[<a href="$title_href">] | n %><% $title |n %><% $title_href && "</a>" |n%></span>
- <span class="right"><% $titleright_href && qq[<a href="$titleright_href">] | n %><% $titleright |n %><% $titleright_href && "</a>" |n%></span>
+ <span class="left"><% $title_href && qq[<a href="$title_href">] | n %><% $title %><% $title_href && "</a>" |n%></span>
+ <span class="right"><% $titleright_href && qq[<a href="$titleright_href">] | n %><% $titleright %><% $titleright_raw |n%> <% $titleright_href && "</a>" |n%></span>
</div>
<div class="titlebox-content <% $bodyclass %>" id="<% $tid %>">
@@ -64,6 +64,7 @@
$title_class => ''
$titleright_href => ''
$titleright => ''
+$titleright_raw => ''
$contentbg => "#dddddd"
$color => "#336699"
$id => ''
Added: rt/branches/3.7-EXPERIMENTAL/html/dhandler
==============================================================================
--- (empty file)
+++ rt/branches/3.7-EXPERIMENTAL/html/dhandler Tue Aug 7 03:03:31 2007
@@ -0,0 +1,7 @@
+<& /Elements/Header, Title=>loc("Page not found")&>
+<& /Elements/Tabs, Title=>loc("Page not found"), &>
+<h1><&|/l&>The page you requested could not be found</&></h1>
+<&|/l&>Please check the URL and try again.</&>
+<%init>
+$r->header_out( Status => '404 File not found' );
+</%init>
Modified: rt/branches/3.7-EXPERIMENTAL/lib/RT/CurrentUser.pm
==============================================================================
--- rt/branches/3.7-EXPERIMENTAL/lib/RT/CurrentUser.pm (original)
+++ rt/branches/3.7-EXPERIMENTAL/lib/RT/CurrentUser.pm Tue Aug 7 03:03:31 2007
@@ -51,15 +51,36 @@
=head1 SYNOPSIS
- use RT::CurrentUser
+ use RT::CurrentUser;
+
+ # laod
+ my $current_user = new RT::CurrentUser;
+ $current_user->Load(...);
+ # or
+ my $current_user = RT::CurrentUser->new( $user_obj );
+ # or
+ my $current_user = RT::CurrentUser->new( $address || $name || $id );
+
+ # manipulation
+ $current_user->UserObj->SetName('new_name');
=head1 DESCRIPTION
+B<Read-only> subclass of L<RT::User> class. Used to define the current
+user. You should pass an instance of this class to constructors of
+many RT classes, then the instance used to check ACLs and localize
+strings.
=head1 METHODS
+See also L<RT::User> for a list of methods this class has.
+
+=head2 new
+Returns new CurrentUser object. Unlike all other classes of RT it takes
+either subclass of C<RT::User> class object or scalar value that is
+passed to Load method.
=cut
@@ -67,12 +88,11 @@
package RT::CurrentUser;
use RT::I18N;
-use RT::User;
use strict;
-use base qw/RT::User/;
+use warnings;
-# {{{ sub _Init
+use base qw/RT::User/;
#The basic idea here is that $self->CurrentUser is always supposed
# to be a CurrentUser object. but that's hard to do when we're trying to load
@@ -101,31 +121,36 @@
$self->_BuildTableAttributes;
}
-# }}}
-# {{{ sub Create
+=head2 Create, Delete and Set*
+
+As stated above it's a subclass of L<RT::User>, but this class is read-only
+and calls to these methods are illegal. Return 'permission denied' message
+and log an error.
+
+=cut
sub Create {
my $self = shift;
+ $RT::Logger->error('RT::CurrentUser is read-only, RT::User for manipulation');
return (0, $self->loc('Permission Denied'));
}
-# }}}
-
-# {{{ sub Delete
-
sub Delete {
my $self = shift;
+ $RT::Logger->error('RT::CurrentUser is read-only, RT::User for manipulation');
return (0, $self->loc('Permission Denied'));
}
-# }}}
-
-# {{{ sub UserObj
+sub _Set {
+ my $self = shift;
+ $RT::Logger->error('RT::CurrentUser is read-only, RT::User for manipulation');
+ return (0, $self->loc('Permission Denied'));
+}
=head2 UserObj
-Returns the RT::User object associated with this CurrentUser object.
+Returns the L<RT::User> object associated with this CurrentUser object.
=cut
@@ -140,9 +165,6 @@
}
return $user;
}
-# }}}
-
-# {{{ sub _Accessible
sub _CoreAccessible {
{
@@ -155,9 +177,6 @@
};
}
-# }}}
-
-# {{{ sub LoadByGecos
=head2 LoadByGecos
@@ -170,9 +189,6 @@
my $self = shift;
return $self->LoadByCol( "Gecos", shift );
}
-# }}}
-
-# {{{ sub LoadByName
=head2 LoadByName
@@ -185,16 +201,12 @@
my $self = shift;
return $self->LoadByCol( "Name", shift );
}
-# }}}
-
-# {{{ Localization
=head2 LanguageHandle
Returns this current user's langauge handle. Should take a language
specification. but currently doesn't
-
=cut
sub LanguageHandle {
@@ -244,12 +256,10 @@
return $self->LanguageHandle->maketext_fuzzy( @_ );
}
-# }}}
-
=head2 CurrentUser
-Return the current currentuser object
+Return the current currentuser object
=cut
@@ -299,9 +309,6 @@
return ($password eq $auth_digest);
}
-# }}}
-
-
eval "require RT::CurrentUser_Vendor";
die $@ if ($@ && $@ !~ qr{^Can't locate RT/CurrentUser_Vendor.pm});
eval "require RT::CurrentUser_Local";
Modified: rt/branches/3.7-EXPERIMENTAL/lib/RT/Date.pm
==============================================================================
--- rt/branches/3.7-EXPERIMENTAL/lib/RT/Date.pm (original)
+++ rt/branches/3.7-EXPERIMENTAL/lib/RT/Date.pm Tue Aug 7 03:03:31 2007
@@ -544,7 +544,7 @@
Formatters may also add own arguments to the list, for example
in RFC2822 format day of time in output is optional so it
-understand argument C<DayOfTime>.
+understand boolean argument C<DayOfTime>.
=head3 DefaultFormat
@@ -659,11 +659,12 @@
};
-=head3 RFC2822
+=head3 RFC2822 (MIME)
-Returns the object's date and time in RFC2822 format.
+Returns the object's date and time in RFC2822 format,
+for example C<Sun, 06 Nov 1994 08:49:37 +0000>.
Format is locale independand as required by RFC. Time
-part always has timezone offset.
+part always has timezone offset in digits with sign prefix.
Supports arguments: C<Timezone>, C<Date>, C<Time>, C<DayOfWeek>
and C<Seconds>. See </Output formatters> for description of
@@ -698,6 +699,45 @@
return join ' ', grep $_, ($date, $time);
}
+=head3 RFC2616 (HTTP)
+
+Returns the object's date and time in RFC2616 (HTTP/1.1) format,
+for example C<Sun, 06 Nov 1994 08:49:37 GMT>. While the RFC describes
+version 1.1 of HTTP, but the same form date can be used in version 1.0.
+
+Format is fixed length, locale independand and always represented in GMT
+what makes it quite useless for users, but any date in HTTP transfers
+must be presented using this format.
+
+ HTTP-date = rfc1123 | ...
+ rfc1123 = wkday "," SP date SP time SP "GMT"
+ date = 2DIGIT SP month SP 4DIGIT
+ ; day month year (e.g., 02 Jun 1982)
+ time = 2DIGIT ":" 2DIGIT ":" 2DIGIT
+ ; 00:00:00 - 23:59:59
+ wkday = "Mon" | "Tue" | "Wed" | "Thu" | "Fri" | "Sat" | "Sun"
+ month = "Jan" | "Feb" | "Mar" | "Apr" | "May" | "Jun"
+ | "Jul" | "Aug" | "Sep" | "Oct" | "Nov" | "Dec"
+
+Supports arguments: C<Date> and C<Time>, but you should use them only for
+some personal reasons, RFC2616 doesn't define any optional parts.
+See </Output formatters> for description of arguments.
+
+=cut
+
+sub RFC2616 {
+ my $self = shift;
+ my %args = ( Date => 1, Time => 1,
+ @_,
+ Timezone => 'utc',
+ Seconds => 1, DayOfWeek => 1,
+ );
+
+ my $res = $self->RFC2822( @_ );
+ $res =~ s/\s*[+-]\d\d\d\d$/ GMT/ if $args{'Time'};
+ return $res;
+}
+
sub _SplitOffset {
my ($self, $offset) = @_;
my $sign = $offset < 0? '-': '+';
Modified: rt/branches/3.7-EXPERIMENTAL/lib/RT/Interface/Web.pm
==============================================================================
--- rt/branches/3.7-EXPERIMENTAL/lib/RT/Interface/Web.pm (original)
+++ rt/branches/3.7-EXPERIMENTAL/lib/RT/Interface/Web.pm Tue Aug 7 03:03:31 2007
@@ -60,6 +60,7 @@
package RT::Interface::Web;
+use URI;
use strict;
use warnings;
@@ -199,12 +200,15 @@
=cut
sub StaticFileHeaders {
+ my $date = RT::Date->new( $RT::SystemUser );
+
# Expire things in a month.
- $HTML::Mason::Commands::r->headers_out->{'Expires'} = HTTP::Date::time2str( time() + 2592000 );
+ $date->Set( Value => time + 30*24*60*60 );
+ $HTML::Mason::Commands::r->headers_out->{'Expires'} = $date->RFC2616;
# Last modified at server start time
- $HTML::Mason::Commands::r->headers_out->{'Last-Modified'} = HTTP::Date::time2str($^T);
-
+ $date->Set( Value => $^T );
+ $HTML::Mason::Commands::r->headers_out->{'Last-Modified'} = $date->RFC2616;
}
Modified: rt/branches/3.7-EXPERIMENTAL/lib/RT/Interface/Web/Handler.pm
==============================================================================
--- rt/branches/3.7-EXPERIMENTAL/lib/RT/Interface/Web/Handler.pm (original)
+++ rt/branches/3.7-EXPERIMENTAL/lib/RT/Interface/Web/Handler.pm Tue Aug 7 03:03:31 2007
@@ -73,6 +73,7 @@
static_source => (RT->Config->Get('DevelMode') ? '0' : '1'),
use_object_files => (RT->Config->Get('DevelMode') ? '0' : '1'),
autoflush => 0,
+ error_format => ((RT->Config->Get('DevelMode') ? 'html': 'brief',
request_class => 'RT::Interface::Web::Request',
) };
Modified: rt/branches/3.7-EXPERIMENTAL/lib/RT/User_Overlay.pm
==============================================================================
--- rt/branches/3.7-EXPERIMENTAL/lib/RT/User_Overlay.pm (original)
+++ rt/branches/3.7-EXPERIMENTAL/lib/RT/User_Overlay.pm Tue Aug 7 03:03:31 2007
@@ -708,38 +708,13 @@
return ( 0, "$pass" );
}
- my $template = RT::Template->new( $self->CurrentUser );
-
- if ( $self->Privileged ) {
- $template->LoadGlobalTemplate('RT_PasswordChange_Privileged');
- }
- else {
- $template->LoadGlobalTemplate('RT_PasswordChange_NonPrivileged');
- }
-
- unless ( $template->Id ) {
- $template->LoadGlobalTemplate('RT_PasswordChange');
- }
-
- unless ( $template->Id ) {
- $RT::Logger->crit( "$self tried to send "
- . $self->Name
- . " a password reminder "
- . "but couldn't find a password change template" );
- }
-
- my $notification = RT::Action::SendPasswordEmail->new(
- TemplateObj => $template,
- Argument => $pass
- );
-
- $notification->SetHeader( 'To', $self->EmailAddress );
-
- my ($ret);
- $ret = $notification->Prepare();
- if ($ret) {
- $ret = $notification->Commit();
- }
+ my $ret = RT::Interface::Email::SendEmailUsingTemplate(
+ To => $self->EmailAddress,
+ Template => 'PasswordChange',
+ Arguments => {
+ NewPassword => $pass,
+ },
+ );
if ($ret) {
return ( 1, $self->loc('New password notification sent') );
Modified: rt/branches/3.7-EXPERIMENTAL/lib/RT/Users_Overlay.pm
==============================================================================
--- rt/branches/3.7-EXPERIMENTAL/lib/RT/Users_Overlay.pm (original)
+++ rt/branches/3.7-EXPERIMENTAL/lib/RT/Users_Overlay.pm Tue Aug 7 03:03:31 2007
@@ -336,7 +336,7 @@
# XXX: This should be abstracted into object itself
if( $args{'Object'}->id ) {
- push @objects, $args{'Object'}->QueueObj;
+ push @objects, $args{'Object'}->ACLEquivalenceObjects;
} else {
push @objects, 'RT::Queue';
}
More information about the Rt-commit
mailing list