X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Fedit%2Fprospect_main.html;h=f0a232be188ecaa1a6eb806c6d514ca5b417531c;hb=07ed221540128b8c75f4cb5a2af1e01b25fa8e18;hp=fb675153296445cdd9e61c37c5a357c2f59fae17;hpb=9aee669886202be7035e6c6049fc71bc99dd3013;p=freeside.git diff --git a/httemplate/edit/prospect_main.html b/httemplate/edit/prospect_main.html index fb6751532..f0a232be1 100644 --- a/httemplate/edit/prospect_main.html +++ b/httemplate/edit/prospect_main.html @@ -3,6 +3,7 @@ 'table' => 'prospect_main', 'html_table_class'=> 'fsinnerbox', 'labels' => { 'prospectnum' => 'Prospect', + 'disabled' => 'Disabled', 'agentnum' => 'Agent', 'refnum' => 'Advertising source', 'company' => 'Company', @@ -11,34 +12,42 @@ 'taxstatusnum'=> 'Tax status', }, 'fields' => [ + { 'field' => 'residential_commercial', + 'type' => 'radio', + 'options' => [ 'Residential', 'Commercial', ], + 'onchange' => 'rescom_changed', + }, + { 'field' => 'disabled', + 'type' => 'checkbox', + 'value' => 'Y', + }, { 'field' => 'agentnum', 'type' => 'select-agent', 'empty_label' => 'Select agent', 'colspan' => 7, + 'required' => 1, }, { 'field' => 'refnum', 'type' => 'select-part_referral', 'empty_label' => 'Select advertising source', 'colspan' => 7, }, - { 'field' => 'residential_commercial', - 'type' => 'radio', - 'options' => [ 'Residential', 'Commercial', ], - 'onchange' => 'rescom_changed', + { 'field' => 'contactnum', + 'type' => 'contact', + 'colspan' => 7, + 'prospectnum' => $prospectnum, + 'm2m_method' => 'prospect_contact', + 'm2m_dstcol' => 'contactnum', + 'm2_label' => 'Contact', + 'm2_error_callback' => $m2_error_callback, + 'include_opt_callback' => sub { 'for_prospect' => 1 }, + 'js_spawn_test' => 'document.edit_topform.residential_commercial_Commercial.checked', }, { 'field' => 'company', 'type' => 'text', 'size' => 50, 'colspan' => 7, }, - { 'field' => 'contactnum', - 'type' => 'contact', - 'colspan' => 7, - 'o2m_table' => 'contact', - 'm2_label' => 'Contact', - 'm2_error_callback' => $m2_error_callback, - - }, { 'field' => 'locationnum', 'type' => 'select-cust_location', 'empty_label' => 'No address', @@ -50,6 +59,7 @@ }, { 'field' => 'taxstatusnum', 'type' => 'select-tax_status', + 'required' => 1, 'empty_label' => ' ', }, ], @@ -65,21 +75,29 @@ my $curuser = $FS::CurrentUser::CurrentUser; my $conf = new FS::Conf; +my @agentnums = $curuser->agentnums; my $prospectnum; if ( $cgi->param('error') ) { - $prospectnum = scalar($cgi->param('prospectnum')); + $cgi->param('prospectnum') =~ /^(\d*)$/ or die 'illegal prospectnum'; + $prospectnum = $1; die "access denied" unless $curuser->access_right(($prospectnum ? 'Edit' : 'New'). ' prospect'); } elsif ( $cgi->keywords ) { #editing + my($query) = $cgi->keywords; + $query =~ /^(\d+)$/ or die 'no prospectnum'; + $prospectnum = $1; + die "access denied" unless $curuser->access_right('Edit prospect'); } else { #new prospect + $prospectnum = ''; + die "access denied" unless $curuser->access_right('New prospect'); @@ -128,6 +146,12 @@ my $new_callback = sub { #config to default to commercial and/or disable residential when someone needs $prospect_main->set('residential_commercial', 'Residential'); + # config to set default agent + $prospect_main->agentnum( $agentnums[0] ) + if scalar(@agentnums) == 1; + $prospect_main->agentnum( $conf->config('default_agentnum') ) + if $conf->exists('default_agentnum'); + }; my $edit_callback = sub { @@ -190,22 +214,20 @@ my $m2_error_callback = sub { $cgi->param; }; -#my @agentnums = $FS::CurrentUser::CurrentUser->agentnums; - -my $javascript = < function rescom_changed() { + var f = document.edit_topform; - var c = f.company; if ( f.residential_commercial_Residential.checked ) { - c.disabled = true; - c.style.backgroundColor = '#dddddd'; + $('#company_label').slideUp(); + $('#company_input0').slideUp(); } else if ( f.residential_commercial_Commercial.checked ) { - c.disabled = false; - c.style.backgroundColor = '#ffffff'; + $('#company_label').slideDown(); + $('#company_input0').slideDown(); } } -END +|;