X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Fedit%2Fpayment_gateway.html;h=2840df35bc52e8110d0a94b0ef46f4fecbe52a33;hb=92aedddd3684167abb60cd3f1d77bbc156c592e6;hp=a618ecd26d8ef6a85303d269d0371bc76481c076;hpb=3293939238bdff4fabbfe32e5b685764e6db3717;p=freeside.git diff --git a/httemplate/edit/payment_gateway.html b/httemplate/edit/payment_gateway.html index a618ecd26..2840df35b 100644 --- a/httemplate/edit/payment_gateway.html +++ b/httemplate/edit/payment_gateway.html @@ -1,135 +1,160 @@ -% -% -%my $payment_gateway; -%if ( $cgi->param('error') ) { -% $payment_gateway = new FS::payment_gateway ( { -% map { $_, scalar($cgi->param($_)) } fields('payment_gateway') -% } ); -%} elsif ( $cgi->keywords ) { -% my($query) = $cgi->keywords; -% $query =~ /^(\d+)$/; -% $payment_gateway = qsearchs( 'payment_gateway', { 'gatewaynum' => $1 } ); -%} else { #adding -% $payment_gateway = new FS::payment_gateway {}; -%} -%my $action = $payment_gateway->gatewaynum ? 'Edit' : 'Add'; -%#my $hashref = $payment_gateway->hashref; -% -% - - -<% include("/elements/header.html","$action Payment gateway", menubar( - 'Main Menu' => $p, - 'View all payment gateways' => $p. 'browse/payment_gateway.html', -)) %> -% if ( $cgi->param('error') ) { - -Error: <% $cgi->param('error') %> -% } - - -
- -Gateway #<% $payment_gateway->gatewaynum || "(NEW)" %> - -<% ntable('#cccccc', 2, '') %> - - - Gateway: - -% if ( $payment_gateway->gatewaynum ) { - - - <% $payment_gateway->gateway_module %> - -% } else { - - - -% } - - - - - - - Username: - - - - - Password: - - - - - Action: - - - - - - - Options: (Name/Value pairs, one element per line) - - - - - - - -
"> -
- - - +<% include( 'elements/edit.html', + 'table' => 'payment_gateway', + 'name_singular' => 'Payment gateway', + 'viewall_dir' => 'browse', + 'fields' => $fields, + 'field_callback' => $field_callback, + 'labels' => { + 'gatewaynum' => 'Gateway', + 'gateway_namespace' => 'Gateway type', + 'gateway_module' => 'Gateway', + 'gateway_username' => 'Username', + 'gateway_password' => 'Password', + 'gateway_action' => 'Action', + 'gateway_options' => 'Options (Name/Value pairs,
one element per line)', + 'gateway_callback_url' => 'Callback URL', + }, + ) +%> + + + + +<%init> + +die "access denied" + unless $FS::CurrentUser::CurrentUser->access_right('Configuration'); + +my %modules = ( + '2CheckOut' => 'Business::OnlinePayment', + 'AuthorizeNet' => 'Business::OnlinePayment', + 'BankOfAmerica' => 'Business::OnlinePayment', #deprecated? + 'Beanstream' => 'Business::OnlinePayment', + 'Capstone' => 'Business::OnlinePayment', + 'Cardstream' => 'Business::OnlinePayment', + 'CashCow' => 'Business::OnlinePayment', + 'CyberSource' => 'Business::OnlinePayment', + 'eSec' => 'Business::OnlinePayment', + 'eSelectPlus' => 'Business::OnlinePayment', + 'eWayShared' => 'Business::OnlineThirdPartyPayment', + 'ElavonVirtualMerchant' => 'Business::OnlinePayment', + 'Exact' => 'Business::OnlinePayment', + 'iAuthorizer' => 'Business::OnlinePayment', + 'Ingotz' => 'Business::OnlinePayment', + 'InternetSecure' => 'Business::OnlinePayment', + 'Interswitchng' => 'Business::OnlineThirdPartyPayment', + 'IPaymentTPG' => 'Business::OnlinePayment', + 'IPPay' => 'Business::OnlinePayment', + 'Iridium' => 'Business::OnlinePayment', + 'Jettis' => 'Business::OnlinePayment', + 'Jety' => 'Business::OnlinePayment', + 'LinkPoint' => 'Business::OnlinePayment', + 'MerchantCommerce' => 'Business::OnlinePayment', + 'Network1Financial' => 'Business::OnlinePayment', + 'OCV' => 'Business::OnlinePayment', + 'OpenECHO' => 'Business::OnlinePayment', + 'PayConnect' => 'Business::OnlinePayment', + 'PayflowPro' => 'Business::OnlinePayment', + 'Paymentech' => 'Business::BatchPayment', + 'PaymenTech' => 'Business::OnlinePayment', + 'PaymentsGateway' => 'Business::OnlinePayment', + 'PayPal' => 'Business::OnlinePayment', + #'PaySystems' => 'Business::OnlinePayment', + 'PlugnPay' => 'Business::OnlinePayment', + 'PPIPayMover' => 'Business::OnlinePayment', + 'Protx' => 'Business::OnlinePayment', #now SagePay + 'PXPost' => 'Business::OnlinePayment', + 'SagePay' => 'Business::OnlinePayment', + 'SecureHostingUPG' => 'Business::OnlinePayment', + 'Skipjack' => 'Business::OnlinePayment', + 'StGeorge' => 'Business::OnlinePayment', + 'SurePay' => 'Business::OnlinePayment', + 'TCLink' => 'Business::OnlinePayment', + 'TransactionCentral' => 'Business::OnlinePayment', + 'TransFirsteLink' => 'Business::OnlinePayment', + 'Vanco' => 'Business::OnlinePayment', + 'viaKLIX' => 'Business::OnlinePayment', + 'VirtualNet' => 'Business::OnlinePayment', + 'WesternACH' => 'Business::OnlinePayment', + 'WorldPay' => 'Business::OnlinePayment', +); + +my %modules_for_namespace; +for (keys %modules) { + $modules_for_namespace{$modules{$_}} ||= []; + push @{ $modules_for_namespace{$modules{$_}} }, $_; +} + +my @actions = ( + 'Normal Authorization', + 'Authorization Only', + 'Authorization Only,Post Authorization', + ); + +my $fields = [ + { + field => 'gateway_namespace', + type => 'select', + options => [ qw( + Business::OnlinePayment + Business::BatchPayment + Business::OnlineThirdPartyPayment + ) ], + labels => { + 'Business::OnlinePayment' => 'Direct', + 'Business::BatchPayment' => 'Batch', + 'Business::OnlineThirdPartyPayment' => 'Hosted', + }, + onchange => 'changeNamespace', + }, + { + field => 'gateway_module', + type => 'select', + options => [ sort { lc($a) cmp lc ($b) } keys %modules ], + }, + 'gateway_username', + 'gateway_password', + { + field => 'gateway_action', + type => 'select', + options => \@actions, + }, + { + field => 'gateway_callback_url', + type => 'text', + size => 40, + }, + { + field => 'gateway_options', + type => 'textarea', + rows => '8', + cols => '40', + curr_value_callback => sub { my($cgi, $object, $fref) = @_; + join("\r", $object->options ); + }, + }, + ]; + +my $field_callback = sub { + my ($cgi, $object, $field_hashref ) = @_; + if ($object->gatewaynum) { + if ( $field_hashref->{field} =~ /gateway_(module|namespace)/ ) { + $field_hashref->{type} = 'fixed'; + } + } +}; + +