diff options
Diffstat (limited to 'rt/html/Reports/Activity/Elements')
-rw-r--r-- | rt/html/Reports/Activity/Elements/LimitReport | 23 | ||||
-rw-r--r-- | rt/html/Reports/Activity/Elements/MiniPlot | 57 | ||||
-rw-r--r-- | rt/html/Reports/Activity/Elements/PrintFooter | 7 | ||||
-rw-r--r-- | rt/html/Reports/Activity/Elements/PrintHeader | 32 | ||||
-rw-r--r-- | rt/html/Reports/Activity/Elements/ScreenFooter | 13 | ||||
-rw-r--r-- | rt/html/Reports/Activity/Elements/ScreenHeader | 8 | ||||
-rw-r--r-- | rt/html/Reports/Activity/Elements/Tabs | 52 | ||||
-rw-r--r-- | rt/html/Reports/Activity/Elements/Wrapper | 16 |
8 files changed, 208 insertions, 0 deletions
diff --git a/rt/html/Reports/Activity/Elements/LimitReport b/rt/html/Reports/Activity/Elements/LimitReport new file mode 100644 index 0000000..7c4aac7 --- /dev/null +++ b/rt/html/Reports/Activity/Elements/LimitReport @@ -0,0 +1,23 @@ +<form action="index.html" method="POST" enctype="multipart/form-data"> +Query: +<textarea name="query" rows="5" cols="80"><% $query %></textarea><br /> + +Report type: <select name="type"> +<option value="ActivityDetail" <% $ARGS{path} =~ /ActivityDetail/ ? 'selected' : '' %>>Activity detail</option> +<option value="ActivitySummary" <% $ARGS{path} =~ /ActivitySummary/ ? 'selected' : '' %>>Activity summary</option> +<option value="ResolutionComments" <% $ARGS{path} =~ /ResolutionComments/ ? 'selected' : '' %>>Resolution comments</option> +<option value="ResolutionStatistics" <% $ARGS{path} =~ /ResolutionStatistics/ ? 'selected' : '' %>>Resolution statistics</option> +</select><br /> + +Start date: <input type="text" name="start" value="<% $start %>" /><br /> +End date: <input type="text" name="end" value="<% $end %>" /><br /> +<& /Elements/Submit, Label => loc('Report') &> +</form> +<%args> +$type => undef +$start => undef +$end => undef +$query => undef +</%args> +<%init> +</%init> diff --git a/rt/html/Reports/Activity/Elements/MiniPlot b/rt/html/Reports/Activity/Elements/MiniPlot new file mode 100644 index 0000000..f920328 --- /dev/null +++ b/rt/html/Reports/Activity/Elements/MiniPlot @@ -0,0 +1,57 @@ +<table class="miniplot"><tr> +% for my $major (@major) { +<td><div class="graph"> + <ul> +% my $i = 0; +% for my $minor (@minor) { +% my $percent = int( 100 * ($data->{$major}{$minor} || 0) / $max ); + <li class="c<% ($i % 6) + 1%>" style="width: <% $barwidth %>%; + left: <% $baroffset + $each * $i %>%; + height: <% $percent %>%;"><div class="data"><% $minor %>: <% $percent %>%</div></li> +% $i++; +% } + </ul> +</div></td> +% } +</tr><tr> +% for my $major (@major) { +<th class="legend"><% $major %></th> +% } +</tr> +</table> + +<table class="miniplot"><tr> +% my $i = 0; +% for my $minor (@minor) { +<th><span class="demoblock c<% ($i++ % 6) + 1 %>"></span> <% $minor %></th> +% } +</tr> +</table> + +<%args> +$data +$major => undef +$minor => undef +</%args> +<%init> + +my $max = 1; + +my %minor; +for my $major (keys %{$data}) { + for (keys %{$data->{$major}}) { + $minor{$_}++; + $max = $data->{$major}{$_} if $data->{$major}{$_} > $max; + } +} + +my @major = $major ? @{$major} : sort keys %{$data}; +my @minor = $minor ? @{$minor} : sort keys %minor; + +return unless @minor and @major; + +my $each = int( (100 / @minor) ); +my $barwidth = int( (100 / @minor) * (3/4) ); +my $baroffset = int( (100 / @minor) * (1/8) ); + +</%init> diff --git a/rt/html/Reports/Activity/Elements/PrintFooter b/rt/html/Reports/Activity/Elements/PrintFooter new file mode 100644 index 0000000..fa9f475 --- /dev/null +++ b/rt/html/Reports/Activity/Elements/PrintFooter @@ -0,0 +1,7 @@ +<hr/> +<div style="text-align: center;"> +<%$RT::ReportFooterMessage || 'Proprietary and Confidential' %> +</div> +</body> +</html> +%$m->abort(); diff --git a/rt/html/Reports/Activity/Elements/PrintHeader b/rt/html/Reports/Activity/Elements/PrintHeader new file mode 100644 index 0000000..b7c4b34 --- /dev/null +++ b/rt/html/Reports/Activity/Elements/PrintHeader @@ -0,0 +1,32 @@ +<%args> +$title => undef +$path => undef +$query => undef +</%args> +<HTML> +<HEAD> +<TITLE><%$title%></TITLE> +<link rel="shortcut icon" href="<%$RT::WebImagesURL%>/favicon.png" type="image/png" /> +<link media="all" rel="stylesheet" href="<%$RT::WebPath%>/NoAuth/webrt.css" type="text/css" /> +<link media="print" rel="stylesheet" href="<%$RT::WebPath%>/NoAuth/printrt.css" type="text/css" /> +%# XXX TODO THIS SHOULD NOT BE A TABLE +<body> +<table width="100%"> +<tr> +<td align="left"> +<div id="username">User: <%$session{'CurrentUser'}->Name%></div> +<div id="reportdate"> +%my $d= RT::Date->new($session{'CurrentUser'}); $d->SetToNow; +<%$d->AsString%></div> +</td> +<td align="center"> +<h1><%$title%></h1> +</td> +<td align="right"> +<img src="<%$RT::LogoURL%>" alt="RT Logo"/> +</td> +</tr> +</table> +<hr/> +<&|/l&>Report criteria:</&> <%$query%> +<hr /> diff --git a/rt/html/Reports/Activity/Elements/ScreenFooter b/rt/html/Reports/Activity/Elements/ScreenFooter new file mode 100644 index 0000000..235b7b3 --- /dev/null +++ b/rt/html/Reports/Activity/Elements/ScreenFooter @@ -0,0 +1,13 @@ +<& LimitReport, %ARGS &> +% if ($show_print_link) { +<div align="right"> +% my %printable_args = %ARGS; +% delete $printable_args{$_} for (qw/path title mode/); +% $printable_args{'mode'} = 'print'; +% my $url = $ARGS{'path'} .'?'. join(';', map { $_."=".$printable_args{$_} } keys %printable_args); +<a href="<%$RT::WebPath|n%>/<%$url|n%>"><&|/l&>Printable version</&></a> +</div> +% } +<%args> +$show_print_link => 1 +</%args> diff --git a/rt/html/Reports/Activity/Elements/ScreenHeader b/rt/html/Reports/Activity/Elements/ScreenHeader new file mode 100644 index 0000000..080efc0 --- /dev/null +++ b/rt/html/Reports/Activity/Elements/ScreenHeader @@ -0,0 +1,8 @@ +<%args> +$title => undef +$path => undef +</%args> +<& /Elements/Header, Title => $title &> +<& Tabs, + current_subtab => $path, + Title => $title &> diff --git a/rt/html/Reports/Activity/Elements/Tabs b/rt/html/Reports/Activity/Elements/Tabs new file mode 100644 index 0000000..a949820 --- /dev/null +++ b/rt/html/Reports/Activity/Elements/Tabs @@ -0,0 +1,52 @@ +<& /Elements/Tabs, + tabs => $tabs, + subtabs => $subtabs, + current_toptab => 'Tools/Offline.html', + current_tab => 'Reports/Activity/index.html'.$args, + Title => $Title &> + +<%INIT> +my $subtabs = {}; + +my $top = $m->caller_args(-1); +my $args = "?" . $m->comp( '/Elements/QueryString', + query => $top->{query}, + start => $top->{start}, + end => $top->{end}); +if ($m->caller_args(-1)->{'query'}) { + $current_subtab .= $args; + $subtabs = { + a => { title => 'Activity detail', + path => 'Reports/Activity/ActivityDetail.html'.$args, + }, + b => { title => 'Activity summary', + path => 'Reports/Activity/ActivitySummary.html'.$args, + }, + c => { title => 'Resolution comments', + path => 'Reports/Activity/ResolutionComments.html'.$args, + }, + d => { title => 'Resolution statistics', + path => 'Reports/Activity/ResolutionStatistics.html'.$args, + }, + }; +} + +my $tabs = { + a => { title => loc('Offline'), + path => 'Tools/Offline.html', + }, + r => { title => loc('Reports'), + path => 'Reports/Activity/index.html'.$args, + subtabs => $subtabs, + current_subtab => $current_subtab, + } + }; + +</%INIT> + + +<%ARGS> +$current_tab => undef +$current_subtab => undef +$Title => undef +</%ARGS> diff --git a/rt/html/Reports/Activity/Elements/Wrapper b/rt/html/Reports/Activity/Elements/Wrapper new file mode 100644 index 0000000..6f81f5f --- /dev/null +++ b/rt/html/Reports/Activity/Elements/Wrapper @@ -0,0 +1,16 @@ +<%args> +$mode => 'screen' +</%args> + +% if ($mode eq 'print') { +<& PrintHeader, %ARGS &> +%} else { +<& ScreenHeader, %ARGS &> +% } +<%$m->content |n%> +% if ($mode eq 'print') { +<& PrintFooter, %ARGS &> +%} else { +<& ScreenFooter, %ARGS &> +% } + |