Updated for 1.7.4
[freeside.git] / httemplate / elements / tr-select-reason.html
1
2 <SCRIPT TYPE="text/javascript">
3   function sh_add<% $name %>()
4   {
5
6     if (document.getElementById('<% $name %>').selectedIndex == 0){
7       <% $controlledbutton ? $controlledbutton.'.disabled = true;' : ';' %>
8     }else{
9       <% $controlledbutton ? $controlledbutton.'.disabled = false;' : ';' %>
10     }
11
12 %if ($curuser->access_right($access_right)){
13
14     if (document.getElementById('<% $name %>').selectedIndex == 
15          (document.getElementById('<% $name %>').length - 1)) {
16       document.getElementById('new<% $name %>').disabled = false;
17       document.getElementById('new<% $name %>').style.display = 'inline';
18       document.getElementById('new<% $name %>Label').style.display = 'inline';
19       document.getElementById('new<% $name %>T').disabled = false;
20       document.getElementById('new<% $name %>T').style.display = 'inline';
21       document.getElementById('new<% $name %>TLabel').style.display = 'inline';
22     }else{
23       document.getElementById('new<% $name %>').disabled = true;
24       document.getElementById('new<% $name %>').style.display = 'none';
25       document.getElementById('new<% $name %>Label').style.display = 'none';
26       document.getElementById('new<% $name %>T').disabled = true;
27       document.getElementById('new<% $name %>T').style.display = 'none';
28       document.getElementById('new<% $name %>TLabel').style.display = 'none';
29     }
30
31 %}
32
33   }
34 </SCRIPT>
35
36 <TR>
37   <TD ALIGN="right">Reason</TD>
38   <TD>
39     <SELECT id="<% $name %>" name="<% $name %>" onFocus="sh_add<% $name %>()" onChange="sh_add<% $name %>()">
40       <OPTION VALUE="" <% ($init_reason eq "") ? 'SELECTED' : '' %>>Select Reason...</OPTION>
41 %    foreach my $reason (@reasons) {
42       <OPTION VALUE="<% $reason->reasonnum %>" <% ($init_reason == $reason->reasonnum) ? 'SELECTED' : '' %>><% $reason->reasontype->type %> : <% $reason->reason %></OPTION>
43 %    }
44 %    if ($curuser->access_right($access_right)) {
45       <OPTION VALUE="-1" <% ($init_reason == -1) ? 'SELECTED' : '' %>>Add new reason</OPTION>
46 %    }
47 %
48     </SELECT>
49   </TD>
50 </TR>
51
52 %   my @types = qsearch( 'reason_type', { 'class' => $class } );
53 %   if (scalar(@types) < 1) {  # we should never reach this
54 <TR>
55   <TD ALIGN="right">
56     <P>No reason types.  Go add some. </P>
57   </TD>
58 </TR>
59 %   }elsif (scalar(@types) == 1) {
60 <TR>
61   <TD ALIGN="right">
62     <P id="new<% $name %>TLabel" style="display:<% $display %>">Reason Type</P>
63   </TD>
64   <TD>
65     <P id="new<% $name %>T" disabled="<% $disabled %>" style="display:<% $display %>"><% $types[0]->type %>
66     <INPUT type="hidden" name="new<% $name %>T" value="<% $types[0]->typenum %>">
67   </TD>
68 </TR>
69
70 %   }else{
71
72 <TR>
73   <TD ALIGN="right">
74     <P id="new<% $name %>TLabel" style="display:<% $display %>">Reason Type</P>
75   </TD>
76   <TD>
77     <SELECT id="new<% $name %>T" name="new<% $name %>T" disabled="<% $disabled %>" style="display:<% $display %>">
78 %     for my $type (@types) {
79         <OPTION VALUE="<% $type->typenum %>" <% ($init_type == $type->typenum) ? 'SELECTED' : '' %>><% $type->type %></OPTION>
80 %     }
81     </SELECT>
82   </TD>
83 </TR>
84 %   }
85
86 <TR>
87   <TD ALIGN="right">
88     <P id="new<% $name %>Label" style="display:<% $display %>">New Reason</P>
89   </TD>
90   <TD><INPUT id="new<% $name %>" name="new<% $name %>" type="text" value="<% $init_newreason |h %>" disabled="<% $disabled %>" style="display:<% $display %>"></TD>
91 </TR>
92
93 <%init>
94 my($name, $class, $init_reason, $init_type, $init_newreason, $controlledbutton) = @_;
95 my($access_right, $display, $disabled); 
96
97 if ($class eq 'C') {
98   $access_right='Add on-the-fly cancel reason';
99 }elsif ($class eq 'S') {
100   $access_right='Add on-the-fly suspend reason';
101 }elsif ($class eq 'R') {
102   $access_right='Add on-the-fly credit reason';
103 }else{
104   print "illegal class: $class";
105 }
106
107 if ($init_reason == -1){
108   $display = 'inline';
109   $disabled = 'false';
110 }else{
111   $display = 'none';
112   $disabled = 'true';
113 }
114
115 my $extra_sql =
116   "WHERE class = '$class' and (disabled = '' OR disabled is NULL)";
117
118 my @reasons = qsearch({
119   table     => 'reason', 
120   hashref   => {},
121   extra_sql => $extra_sql,
122   addl_from => 'LEFT JOIN reason_type '.
123                ' ON reason_type.typenum = reason.reason_type',
124   order_by  => 'ORDER BY reason_type.type ASC, reason.reason ASC',
125 });
126
127 my $curuser = $FS::CurrentUser::CurrentUser;
128
129 </%init>