1 <% include( 'elements/edit.html',
6 { field => 'disabled', type => 'checkbox', value=>'Y', },
7 { field => '_type', type => 'select',
8 options => \@_type_options,
9 onchange => '_type_changed',
11 { field => 'amount', type => 'money',
13 #cell_style => $amount_style,
15 { field => 'percent', type => 'percentage',
17 #cell_style => $percent_style,
19 { field => 'months', type => 'text', size => 2,
20 postfix => '<BR><FONT SIZE="-1"><I>(blank for non-expiring discount)</I></FONT>',
24 'discountnum' => 'Discount #',
25 'name' => 'Name ',
26 'disabled' => 'Disabled ',
27 '_type' => 'Type ',
28 'amount' => 'Amount ',
29 'percent' => 'Percentage ',
30 'months' => '# of Months',
32 'viewall_dir' => 'browse',
33 'new_callback' => $new_callback,
34 'edit_callback' => $edit_callback,
35 'error_callback' => $error_callback,
36 'html_init' => $javascript,
37 'body_etc' => 'onLoad="_type_changed(document.edit_topform._type)"',
43 unless $FS::CurrentUser::CurrentUser->access_right('Configuration');
45 my @_type_options = ( 'Amount', 'Percentage' );
47 #my $amount_style = '';
48 #my $percent_style = '';
50 #my $hide = 'display:none;visibility:hidden';
51 my $select = 'Select discount type';
53 my $new_callback = sub {
54 #my( $cgi, $object, $fields_listref, $opt_hashref ) = @_;
56 #$amount_style = $hide;
57 #$percent_style = $hide;
58 unshift @_type_options, $select;
61 my $edit_callback = sub {
62 #my( $cgi, $object, $fields_listref, $opt_hashref ) = @_;
63 my( $cgi, $object ) = @_;
65 if ( $object->amount > 0 && $object->percent == 0 ) {
66 $object->set('_type', 'Amount');
67 #$percent_style = $hide;
68 } elsif ( $object->amount == 0 && $object->percent > 0 ) {
69 $object->set('_type', 'Percentage');
70 #$amount_style = $hide;
71 } elsif ( $object->amount == 0 && $object->percent == 0 ) {
72 #$amount_style = $hide;
73 #$percent_style = $hide;
74 unshift @_type_options, $select;
76 die "discount.amount and discount.percent not yet handled by web UI";
81 my $error_callback = sub {
82 #my( $cgi, $object, $fields_listref, $opt_hashref ) = @_;
83 my( $cgi, $object ) = @_;
85 if ( $cgi->param('_type') eq 'Amount' ) {
86 $object->set('_type', 'Amount');
87 #A$percent_style = $hide;
88 } elsif ( $cgi->param('_type') eq 'Percentage' ) {
89 $object->set('_type', 'Percentage');
90 #$amount_style = $hide;
92 #$amount_style = $hide;
93 #$percent_style = $hide;
94 unshift @_type_options, $select;
99 my $javascript = <<END;
100 <SCRIPT TYPE="text/javascript">
101 function _type_changed(what) {
102 var _type = what.options[what.selectedIndex].value;
104 if ( _type == '$select' ) {
105 document.getElementById('amount_label').style.display = 'none';
106 document.getElementById('amount_label').style.visibility = 'hidden';
107 document.getElementById('amount_input0').style.display = 'none';
108 document.getElementById('amount_input0').style.visibility = 'hidden';
109 document.getElementById('percent_label').style.display = 'none';
110 document.getElementById('percent_label').style.visibility = 'hidden';
111 document.getElementById('percent_input0').style.display = 'none';
112 document.getElementById('percent_input0').style.visibility = 'hidden';
113 } else if ( _type == 'Amount' ) {
114 document.getElementById('amount_label').style.display = '';
115 document.getElementById('amount_label').style.visibility = '';
116 document.getElementById('amount_input0').style.display = '';
117 document.getElementById('amount_input0').style.visibility = '';
118 document.getElementById('percent_label').style.display = 'none';
119 document.getElementById('percent_label').style.visibility = 'hidden';
120 document.getElementById('percent_input0').style.display = 'none';
121 document.getElementById('percent_input0').style.visibility = 'hidden';
122 } else if ( _type == 'Percentage' ) {
123 document.getElementById('amount_label').style.display = 'none';
124 document.getElementById('amount_label').style.visibility = 'hidden';
125 document.getElementById('amount_input0').style.display = 'none';
126 document.getElementById('amount_input0').style.visibility = 'hidden';
127 document.getElementById('percent_label').style.display = '';
128 document.getElementById('percent_label').style.visibility = '';
129 document.getElementById('percent_input0').style.display = '';
130 document.getElementById('percent_input0').style.visibility = '';