2 function checkPasswordValidation(fieldid) {
3 var validationResult = document.getElementById(fieldid+'_result').innerHTML;
4 if (validationResult.match(/Password valid!/)) {
13 <& '/elements/validate_password_js.html', &>
15 <& elements/edit.html,
16 'name_singular' => 'customer contacts', #yes, we're editing all of them
17 'table' => 'cust_main',
18 'post_url' => popurl(1). 'process/cust_main-contacts.html',
19 'no_pkey_display' => 1,
20 'submit_id' => 'submit',
21 'labels' => { 'custnum' => ' ', #XXX supress this line entirely, its being redundant
22 'contactnum' => ' ', #'Contact',
23 #'locationnum' => ' ',
26 { 'field' => 'contactnum',
29 'custnum' => $custnum,
30 'm2m_method' => 'cust_contact',
31 'm2m_dstcol' => 'contactnum',
32 'm2_label' => ' ', #'Contact',
33 'm2_error_callback' => $m2_error_callback,
36 #'new_callback' => $new_callback,
37 #'edit_callback' => $edit_callback,
38 #'error_callback' => $error_callback,
40 'menubar' => [], #remove "view all" link
42 #XXX it would be nice if this could instead be after the error but before
44 'html_init' => include('/elements/small_custview.html',
46 $conf->config('countrydefault') || 'US',
52 my $curuser = $FS::CurrentUser::CurrentUser;
53 my $conf = new FS::Conf;
55 if ( $cgi->param('redirect') ) {
56 my $session = $cgi->param('redirect');
57 my $pref = $curuser->option("redirect$session");
58 die "unknown redirect session $session\n" unless length($pref);
59 $cgi = new CGI($pref);
63 if ( $cgi->param('error') ) {
64 $custnum = scalar($cgi->param('custnum'));
67 unless $curuser->access_right(($custnum ? 'Edit' : 'New'). ' customer'); #contacts?
69 } elsif ( $cgi->keywords ) { #editing
70 $custnum = ($cgi->keywords)[0];
73 unless $curuser->access_right('Edit customer');
75 } else { #new customer
77 #this doesn't really work here, we're an edit only
78 die "guru meditation #32";
81 unless $curuser->access_right('New customer');
85 #my $new_callback = sub {
86 # my( $cgi, $prospect_main, $fields_listref, $opt_hashref ) = @_;
89 #my $edit_callback = sub {
90 # my( $cgi, $prospect_main, $fields_listref, $opt_hashref ) = @_;
93 #my $error_callback = sub {
94 # my( $cgi, $prospect_main, $fields_listref, $opt_hashref ) = @_;
97 my $m2_error_callback = sub {
98 my($cgi, $object) = @_;
100 #process_o2m fields in process/cust_main-contacts.html
101 my @fields = qw( first last title comment );
102 my @gfields = ( '', map "_$_", @fields );
105 if ( /^contactnum(\d+)$/ ) {
107 if ( grep $cgi->param("contactnum$num$_"), @gfields ) {
108 my $x = new FS::contact {
109 'contactnum' => scalar($cgi->param("contactnum$num")),
110 map { $_ => scalar($cgi->param("contactnum${num}_$_")) } @fields,