1 %# BEGIN BPS TAGGED BLOCK {{{
5 %# This software is Copyright (c) 1996-2017 Best Practical Solutions, LLC
6 %# <sales@bestpractical.com>
8 %# (Except where explicitly superseded by other copyright notices)
13 %# This work is made available to you under the terms of Version 2 of
14 %# the GNU General Public License. A copy of that license should have
15 %# been provided with this software, but in any event can be snarfed
18 %# This work is distributed in the hope that it will be useful, but
19 %# WITHOUT ANY WARRANTY; without even the implied warranty of
20 %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
21 %# General Public License for more details.
23 %# You should have received a copy of the GNU General Public License
24 %# along with this program; if not, write to the Free Software
25 %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
26 %# 02110-1301 or visit their web page on the internet at
27 %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
30 %# CONTRIBUTION SUBMISSION POLICY:
32 %# (The following paragraph is not intended to limit the rights granted
33 %# to you to modify and distribute this software under the terms of
34 %# the GNU General Public License and is only of importance to you if
35 %# you choose to contribute your changes and enhancements to the
36 %# community by submitting them to Best Practical Solutions, LLC.)
38 %# By intentionally submitting any modifications, corrections or
39 %# derivatives to this work, or any other work intended for use with
40 %# Request Tracker, to Best Practical Solutions, LLC, you confirm that
41 %# you are the copyright holder for those contributions and you grant
42 %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable,
43 %# royalty-free, perpetual, license to use, copy, create derivative
44 %# works based on those contributions, and sublicense and distribute
45 %# those contributions and any derivatives thereof.
47 %# END BPS TAGGED BLOCK }}}
48 <&| /Widgets/TitleBox, title => loc('Graph Properties') &>
50 <% loc('Direction') %> <select name="Direction">
51 <option value="TB" <% ($Direction||'TB') eq 'TB'? 'selected="selected"': '' |n %>><% loc('top to bottom') %></option>
52 <option value="LR" <% ($Direction||'TB') eq 'LR'? 'selected="selected"': '' |n %>><% loc('left to right') %></option>
53 %# XXX: not supported by GraphViz perl module
54 %#<option value="BT" <% ($Direction||'TB') eq 'BT'? 'selected="selected"': '' |n %>><% loc('bottom to top') %></option>
55 %#<option value="RL" <% ($Direction||'TB') eq 'RL'? 'selected="selected"': '' |n %>><% loc('right to left') %></option>
58 <% loc('Main type of links') %> <select name="LeadingLink">
59 % foreach ( @link_types ) {
60 <option value="<% $_ %>" <% ($LeadingLink||'Members') eq $_? 'selected="selected"': '' |n %>><% loc($_) %></option>
64 <% loc('maximum depth') %> <select name="MaxDepth">
65 <option value="0"><% loc('Unlimit') %></option>
67 <option value="<% $_ %>" <% ($MaxDepth||0) == $_? 'selected="selected"': '' %>><% $_ %></option>
71 <% loc('Show as well') %>:
72 % foreach my $type ( @link_types ) {
74 % $checked = 'checked="checked"' if grep $type eq $_, @ShowLinks;
75 <input type="checkbox" id="ShowLinks" name="ShowLinks" value="<% $type %>" <% $checked |n %> />
76 <label for="ShowLinks"><% loc($type) %></label>
80 % my @properties = RT::Graph::Tickets->TicketProperties( $session{'CurrentUser'} );
82 <% loc('Fill boxes with color using') %>:
83 <select name="FillUsing">
84 <option value=""><% loc('nothing') %></option>
86 my @tmp = @properties;
87 while ( my ($group, $list) = (splice @tmp, 0, 2) ) {
88 # coloring by links and dates sounds stupid
89 next if $group eq 'Dates' || $group eq 'Links';
91 foreach my $prop ( @$list ) {
93 $selected = 'selected="selected"' if $prop eq ($FillUsing||'');
95 <option value="<% $prop %>" <% $selected |n %>><% loc($prop) %></option>
99 % if ( RT::Link->can('Description' ) ) {
101 % $checked = 'checked="checked"' if $ShowLinkDescriptions;
102 <label for="ShowLinkDescriptions"><% loc('Show link descriptions') %>:</label>
103 <input type="checkbox" id="ShowLinkDescriptions" name="ShowLinkDescriptions" value="1" <% $checked |n %> />
108 for my $i ( 1..($MaxDepth||6) ) {
110 if ( my $tmp = $ARGS{ 'Level-'. $i .'-Properties' } ) {
111 @default = ref $tmp? @$tmp : ($tmp);
114 $m->comp('SELF:Properties',
116 Available => \@properties,
117 Default => \@default,
122 <& /Elements/Submit, Label => loc('Update Graph'), Name => 'Update' &>
129 $LeadingLink => 'Members'
130 @ShowLinks => ('MemberOf', 'DependsOn', 'RefersTo')
133 $ShowLinkDescriptions => 0
136 require RT::Graph::Tickets;
139 my @link_types = qw(Members MemberOf RefersTo ReferredToBy DependsOn DependedOnBy); #loc_qw
140 @ShowLinks = grep $_ ne $LeadingLink, @ShowLinks;
150 my $id = "graph-properties-box-$Level";
152 $class = 'class="hidden"' if $Level != 1 && !@Default;
154 <% loc('Show Tickets Properties on [_1] level', $Level) %>
155 (<small><a href="#" onclick="hideshow(<% $id |n,j%>); return false;"><% loc('open/close') %></a></small>):
156 <table id="<% $id %>" <% $class |n %>>
157 % while ( my ($group, $list) = (splice @Available, 0, 2) ) {
158 <tr><td><% loc($group) %>:</td><td>
159 % foreach my $prop ( @$list ) {
161 % $checked = 'checked="checked"' if grep $_ eq $prop, @Default;
162 <input type="checkbox" class="checkbox" id="Level-<% $Level %>-Properties" name="Level-<% $Level %>-Properties" value="<% $prop %>" <% $checked |n %> />
163 <label for="Level-<% $Level %>-Properties"><% loc($prop) %></label>