<%doc> Hmm, this is now entirely redundant with edit/cust_main/contacts_new.html, and this one isn't being maintained well. :/ <& '/elements/validate_password_js.html', &> <& elements/edit.html, 'name_singular' => 'customer contacts', #yes, we're editing all of them 'table' => 'cust_main', 'post_url' => popurl(1). 'process/cust_main-contacts.html', 'no_pkey_display' => 1, 'submit_id' => 'submit', 'labels' => { 'contactnum' => ' ', #'Contact', #'locationnum' => ' ', }, 'fields' => [ { 'field' => 'contactnum', 'type' => 'contact', 'colspan' => 6, 'custnum' => $custnum, 'm2m_method' => 'cust_contact', 'm2m_dstcol' => 'contactnum', 'm2_label' => ' ', #'Contact', 'm2_error_callback' => $m2_error_callback, }, ], #'new_callback' => $new_callback, #'edit_callback' => $edit_callback, #'error_callback' => $error_callback, 'agent_virt' => 1, 'html_table_class' => 'fsinnerbox', 'menubar' => [], #remove "view all" link #XXX it would be nice if this could instead be after the error but before # the table 'html_init' => include('/elements/small_custview.html', $custnum, $conf->config('countrydefault') || 'US', 1, #no balance ). '
', &> <%init> my $curuser = $FS::CurrentUser::CurrentUser; my $conf = new FS::Conf; if ( $cgi->param('redirect') ) { my $session = $cgi->param('redirect'); my $pref = $curuser->option("redirect$session"); die "unknown redirect session $session\n" unless length($pref); $cgi = new CGI($pref); } my $custnum; if ( $cgi->param('error') ) { $custnum = scalar($cgi->param('custnum')); die "access denied" unless $curuser->access_right(($custnum ? 'Edit' : 'New'). ' customer'); #contacts? } elsif ( $cgi->keywords ) { #editing $custnum = ($cgi->keywords)[0]; die "access denied" unless $curuser->access_right('Edit customer'); } else { #new customer #this doesn't really work here, we're an edit only die "guru meditation #32"; die "access denied" unless $curuser->access_right('New customer'); } #my $new_callback = sub { # my( $cgi, $prospect_main, $fields_listref, $opt_hashref ) = @_; #}; #my $edit_callback = sub { # my( $cgi, $prospect_main, $fields_listref, $opt_hashref ) = @_; #}; #my $error_callback = sub { # my( $cgi, $prospect_main, $fields_listref, $opt_hashref ) = @_; #}; my $m2_error_callback = sub { my($cgi, $object) = @_; #process_o2m fields in process/cust_main-contacts.html my @fields = FS::contact->cgi_contact_fields; my @gfields = ( '', map "_$_", @fields ); map { if ( /^contactnum(\d+)$/ ) { my $num = $1; if ( grep $cgi->param("contactnum$num$_"), @gfields ) { my $x = new FS::contact { 'contactnum' => scalar($cgi->param("contactnum$num")), map { $_ => scalar($cgi->param("contactnum${num}_$_")) } @fields, }; $x; } else { (); } } else { (); } } $cgi->param; };