From: ivan Date: Mon, 29 Sep 2003 05:51:50 +0000 (+0000) Subject: agents can be disabled (auto-sensing based on schema) X-Git-Tag: NET_WHOIS_RAW_0_31~366 X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=commitdiff_plain;h=b59a412755582d30b4f7be2147b6ad32037e6f59 agents can be disabled (auto-sensing based on schema) --- diff --git a/FS/FS/agent.pm b/FS/FS/agent.pm index 6de15ae6f..bcba602cc 100644 --- a/FS/FS/agent.pm +++ b/FS/FS/agent.pm @@ -50,6 +50,12 @@ from FS::Record. The following fields are currently supported: =item freq - For future use. +=item disabled - Disabled flag, empty or 'Y' + +=item username - Username for the Agent interface + +=item _password - Password for the Agent interface + =back =head1 METHODS @@ -110,6 +116,21 @@ sub check { ; return $error if $error; + if ( $self->dbdef_table->column('disabled') ) { + $error = $self->ut_enum('disabled', [ '', 'Y' ] ); + return $error if $error; + } + + if ( $self->dbdef_table->column('username') ) { + $error = $self->ut_alphan('username'); + return $error if $error; + if ( length($self->username) ) { + $error = $self->ut_text('password'); # ut_text... arbitrary choice + } else { + $self->_password(''); + } + } + return "Unknown typenum!" unless $self->agent_type; @@ -144,7 +165,7 @@ sub pkgpart_hashref { =head1 VERSION -$Id: agent.pm,v 1.4 2003-08-05 00:20:40 khoff Exp $ +$Id: agent.pm,v 1.5 2003-09-29 05:51:50 ivan Exp $ =head1 BUGS diff --git a/httemplate/browse/agent.cgi b/httemplate/browse/agent.cgi index 0d808cd0d..ece01724e 100755 --- a/httemplate/browse/agent.cgi +++ b/httemplate/browse/agent.cgi @@ -2,6 +2,14 @@ <% + my %search; + if ( $cgi->param('showdisabled') + || !dbdef->table('agent')->column('disabled') ) { + %search = (); + } else { + %search = ( 'disabled' => '' ); + } + #bad false laziness with search/cust_main.cgi (also needs fixing up for #old mysql) my $ncancelled = " @@ -36,9 +44,18 @@ Agents are resellers of your service. Agents may be limited to a subset of your full offerings (via their type).

Add a new agent

+<% if ( dbdef->table('agent')->column('disabled') ) { %> + <%= $cgi->param('showdisabled') + ? do { $cgi->param('showdisabled', 0); + '( hide disabled agents )'; } + : do { $cgi->param('showdisabled', 1); + '( show disabled agents )'; } + %> +<% } %> + <%= table() %> - Agent + param('showdisabled') ? 2 : 3 %>>Agent Type Customers Freq. @@ -51,7 +68,7 @@ full offerings (via their type).

foreach my $agent ( sort { #$a->getfield('agentnum') <=> $b->getfield('agentnum') $a->getfield('agent') cmp $b->getfield('agent') -} qsearch('agent',{}) ) { +} qsearch('agent', \%search ) ) { $ncancelled_sth->execute($agent->agentnum) or die $ncancelled_sth->errstr; my $num_ncancelled = $ncancelled_sth->fetchrow_arrayref->[0]; @@ -66,6 +83,11 @@ foreach my $agent ( sort { <%= $agent->agentnum %> +<% if ( dbdef->table('agent')->column('disabled') + && !$cgi->param('showdisabled') ) { %> + <%= $agent->disabled ? 'DISABLED' : '' %> +<% } %> + <%= $agent->agent %> <%= $agent->agent_type->atype %> diff --git a/httemplate/edit/agent.cgi b/httemplate/edit/agent.cgi index 449456cdd..8a1cb2ae1 100755 --- a/httemplate/edit/agent.cgi +++ b/httemplate/edit/agent.cgi @@ -16,59 +16,64 @@ if ( $cgi->param('error') ) { my $action = $agent->agentnum ? 'Edit' : 'Add'; my $hashref = $agent->hashref; -print header("$action Agent", menubar( +%> + +<%= header("$action Agent", menubar( 'Main Menu' => $p, 'View all agents' => $p. 'browse/agent.cgi', -)); +)) %> -print qq!Error: !, $cgi->param('error'), - "" - if $cgi->param('error'); +<% if ( $cgi->param('error') ) { %> +Error: <%= $cgi->param('error') %> +<% } %> -print '
', - qq!!, - "Agent #", $hashref->{agentnum} ? $hashref->{agentnum} : "(NEW)"; + + +Agent #<%= $hashref->{agentnum} ? $hashref->{agentnum} : "(NEW)" %> -print &ntable("#cccccc", 2, ''), < Agent - + Agent type {disabled} eq 'Y' ? ' CHECKED' : '' %>> + +<% } %> - + - + +<% if ( dbdef->table('agent')->column('username') ) { %> + + Agent interface username + + + + Agent interface password + + +<% } %> -END -print qq!
!; - -print <"> -END - -%> diff --git a/httemplate/edit/cust_main.cgi b/httemplate/edit/cust_main.cgi index eeceed889..73a0eef49 100755 --- a/httemplate/edit/cust_main.cgi +++ b/httemplate/edit/cust_main.cgi @@ -75,9 +75,11 @@ print qq!
!, my $r = qq!* !; -my @agents = qsearch( 'agent', {} ); +my %agent_search = dbdef->table('agent')->column('disabled') + ? ( 'disabled' => '' ) : (); +my @agents = qsearch( 'agent', \%agent_search ); #die "No agents created!" unless @agents; -eidiot "You have not created any agents. You must create at least one agent before adding a customer. Go to ". popurl(2). "browse/agent.cgi and create one or more agents." unless @agents; +eidiot "You have not created any agents (or all agents are disabled). You must create at least one agent before adding a customer. Go to ". popurl(2). "browse/agent.cgi and create one or more agents." unless @agents; my $agentnum = $cust_main->agentnum || $agents[0]->agentnum; #default to first if ( scalar(@agents) == 1 ) { print qq!!;