summaryrefslogtreecommitdiff
path: root/httemplate/elements/tr-select-reason.html
blob: 71997c22165a56f3381ca306fc7b48bdeb7ba2c0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
<SCRIPT TYPE="text/javascript">
  function sh_add<% $func_suffix %>()
  {

    if (document.getElementById('<% $id %>').selectedIndex == 0){
      <% $controlledbutton ? $controlledbutton.'.disabled = true;' : ';' %>
    }else{
      <% $controlledbutton ? $controlledbutton.'.disabled = false;' : ';' %>
    }

%if ($curuser->access_right($add_access_right)){

    if (document.getElementById('<% $id %>').selectedIndex == 
         (document.getElementById('<% $id %>').length - 1)) {
      document.getElementById('new<% $id %>').disabled = false;
      document.getElementById('new<% $id %>').style.display = 'inline';
      document.getElementById('new<% $id %>Label').style.display = 'inline';
      document.getElementById('new<% $id %>T').disabled = false;
      document.getElementById('new<% $id %>T').style.display = 'inline';
      document.getElementById('new<% $id %>TLabel').style.display = 'inline';
    } else {
      document.getElementById('new<% $id %>').disabled = true;
      document.getElementById('new<% $id %>').style.display = 'none';
      document.getElementById('new<% $id %>Label').style.display = 'none';
      document.getElementById('new<% $id %>T').disabled = true;
      document.getElementById('new<% $id %>T').style.display = 'none';
      document.getElementById('new<% $id %>TLabel').style.display = 'none';
    }

%}

  }
</SCRIPT>

<TR>
  <TD ALIGN="right">Reason</TD>
  <TD>
    <SELECT id="<% $id %>" name="<% $name %>" onFocus="sh_add<% $func_suffix %>()" onChange="sh_add<% $func_suffix %>()">
%    my @reasons = qsearch( { table =>'reason', 
%                             hashref => {},
%                             extra_sql => $extra_sql,
%                             addl_from => 'LEFT JOIN reason_type ON reason_type.typenum = reason.reason_type',
%			     });
      <OPTION VALUE="" <% ($init_reason eq "") ? 'SELECTED' : '' %>>Select Reason...</OPTION>
%    foreach my $reason (@reasons) {
      <OPTION VALUE="<% $reason->reasonnum %>" <% ($init_reason == $reason->reasonnum) ? 'SELECTED' : '' %>><% $reason->reasontype->type %> : <% $reason->reason %></OPTION>
%    }
%    if ($curuser->access_right($add_access_right)) {
      <OPTION VALUE="-1" <% ($init_reason == -1) ? 'SELECTED' : '' %>>Add new reason</OPTION>
%    }
%
    </SELECT>
  </TD>
</TR>

<TR>
  <TD ALIGN="right">
    <P id="new<% $id %>TLabel" style="display:<% $display %>">Reason Type</P>
  </TD>
  <TD>
    <SELECT id="new<% $id %>T" name="new<% $name %>T" "<% $disabled %>" style="display:<% $display %>">
%     for my $type (qsearch( 'reason_type', { 'class' => $class } )){
        <OPTION VALUE="<% $type->typenum %>" <% ($init_type == $type->typenum) ? 'SELECTED' : '' %>><% $type->type %></OPTION>
%     }
    </SELECT>
  </TD>
</TR>

<TR>
  <TD ALIGN="right">
    <P id="new<% $id %>Label" style="display:<% $display %>">New Reason</P>
  </TD>
  <TD><INPUT id="new<% $id %>" name="new<% $name %>" type="text" value="<% $init_newreason %>" "<% $disabled %>" style="display:<% $display %>"></TD>
</TR>

<%init>

my %opt = @_;

my $name = $opt{'field'};
my $class = $opt{'reason_class'};
my $init_reason = $opt{'curr_value'};

my $controlledbutton = $opt{'control_button'};

( my $func_suffix = $name ) =~ s/\./_/g;

my $id = $opt{'id'} || $func_suffix;

my( $add_access_right, $access_right ); 
if ($class eq 'C') {
  $access_right = 'Cancel customer';
  $add_access_right = 'Add on-the-fly cancel reason';
} elsif ($class eq 'S') {
  $access_right = 'Suspend customer package';
  $add_access_right = 'Add on-the-fly suspend reason';
} else {
  die "illegal class: $class";
}

my( $display, $disabled ) = ( 'none', 'DISABLED' );
my( $init_type, $init_newreason ) = ( '', '' );
if ($init_reason == -1 || ref($init_reason) ) {

  $display = 'inline';
  $disabled = '';

  if ( ref($init_reason) ) {
    $init_type      = $init_reason->{'typenum'};
    $init_newreason = $init_reason->{'reason'};
    $init_reason = -1;
  }

}

my $extra_sql = "WHERE class = '$class' ORDER BY reason_type";
my $curuser = $FS::CurrentUser::CurrentUser;

</%init>