rt 4.2.16
[freeside.git] / rt / share / html / Ticket / Graphs / Elements / EditGraphProperties
1 %# BEGIN BPS TAGGED BLOCK {{{
2 %#
3 %# COPYRIGHT:
4 %#
5 %# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC
6 %#                                          <sales@bestpractical.com>
7 %#
8 %# (Except where explicitly superseded by other copyright notices)
9 %#
10 %#
11 %# LICENSE:
12 %#
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
16 %# from www.gnu.org.
17 %#
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.
22 %#
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.
28 %#
29 %#
30 %# CONTRIBUTION SUBMISSION POLICY:
31 %#
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.)
37 %#
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.
46 %#
47 %# END BPS TAGGED BLOCK }}}
48 <&| /Widgets/TitleBox, title => loc('Graph Properties') &>
49
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>
56 </select><br />
57
58 <% loc('Main type of links') %> <select name="LeadingLink">
59 % foreach ( @link_types ) {
60 <option value="<% $_ %>" <% ($LeadingLink||'Members') eq $_? 'selected="selected"': '' |n %>><% loc($_) %></option>
61 % }
62 </select>
63
64 <% loc('maximum depth') %> <select name="MaxDepth">
65 <option value="0"><% loc('Unlimit') %></option>
66 % foreach ( 1..6 ) {
67 <option value="<% $_ %>" <% ($MaxDepth||0) == $_? 'selected="selected"': '' %>><% $_ %></option>
68 % }
69 </select><br />
70
71 <% loc('Show as well') %>:
72 % foreach my $type ( @link_types ) {
73 % my $checked = '';
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>
77 % }
78 <br />
79
80 % my @properties = RT::Graph::Tickets->TicketProperties( $session{'CurrentUser'} );
81
82 <% loc('Fill boxes with color using') %>:
83 <select name="FillUsing">
84 <option value=""><% loc('nothing') %></option>
85 <%PERL>
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';
90
91     foreach my $prop ( @$list ) {
92         my $selected = '';
93         $selected = 'selected="selected"' if $prop eq ($FillUsing||'');
94 </%PERL>
95 <option value="<% $prop %>" <% $selected |n %>><% loc($prop) %></option>
96 % } }
97 </select><br />
98
99 % if ( RT::Link->can('Description' ) ) {
100 % my $checked = '';
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 %> />
104 <br />
105 % }
106
107 <%PERL>
108 for my $i ( 1..($MaxDepth||6) ) {
109     my @default;
110     if ( my $tmp = $ARGS{ 'Level-'. $i .'-Properties' } ) {
111         @default = ref $tmp? @$tmp : ($tmp);
112     }
113
114     $m->comp('SELF:Properties',
115         Level => $i,
116         Available => \@properties,
117         Default => \@default,
118     );
119 }
120 </%PERL>
121
122 <& /Elements/Submit, Label => loc('Update Graph'), Name => 'Update' &>
123
124 </&>
125
126 <%ARGS>
127 $id => undef
128 $Direction => 'TB'
129 $LeadingLink => 'Members'
130 @ShowLinks => ('MemberOf', 'DependsOn', 'RefersTo')
131 $MaxDepth => 3
132 $FillUsing => ''
133 $ShowLinkDescriptions => 0
134 </%ARGS>
135 <%INIT>
136 require RT::Graph::Tickets;
137 require RT::Link;
138
139 my @link_types = qw(Members MemberOf RefersTo ReferredToBy DependsOn DependedOnBy); #loc_qw
140 @ShowLinks = grep $_ ne $LeadingLink, @ShowLinks;
141 </%INIT>
142
143 <%METHOD Properties>
144 <%ARGS>
145 @Available => ()
146 @Default   => ()
147 $Level     => 1,
148 </%ARGS>
149 <%INIT>
150 my $id = "graph-properties-box-$Level";
151 my $class = '';
152 $class = 'class="hidden"' if $Level != 1 && !@Default;
153 </%INIT>
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 ) {
160 % my $checked = '';
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>
164 % }
165 </td></tr>
166 % }
167 </table>
168 <br />
169 </%METHOD>