projects
/
freeside.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
8fe83dc
)
okay group editing UI as well as part_svc group editing UI seem to be working
author
ivan
<ivan>
Sat, 23 Mar 2002 17:49:01 +0000
(17:49 +0000)
committer
ivan
<ivan>
Sat, 23 Mar 2002 17:49:01 +0000
(17:49 +0000)
FS/FS/part_svc.pm
patch
|
blob
|
history
FS/FS/svc_acct.pm
patch
|
blob
|
history
httemplate/browse/part_svc.cgi
patch
|
blob
|
history
httemplate/edit/part_svc.cgi
patch
|
blob
|
history
httemplate/edit/process/part_svc.cgi
patch
|
blob
|
history
diff --git
a/FS/FS/part_svc.pm
b/FS/FS/part_svc.pm
index
82935dd
..
94f51fa
100644
(file)
--- a/
FS/FS/part_svc.pm
+++ b/
FS/FS/part_svc.pm
@@
-57,19
+57,25
@@
database, see L<"insert">.
sub table { 'part_svc'; }
sub table { 'part_svc'; }
-=item insert
+=item insert
EXTRA_FIELDS_ARRAYREF
Adds this service definition to the database. If there is an error, returns
the error, otherwise returns false.
Adds this service definition to the database. If there is an error, returns
the error, otherwise returns false.
+TODOC:
+
=item I<svcdb>__I<field> - Default or fixed value for I<field> in I<svcdb>.
=item I<svcdb>__I<field>_flag - defines I<svcdb>__I<field> action: null, `D' for default, or `F' for fixed
=item I<svcdb>__I<field> - Default or fixed value for I<field> in I<svcdb>.
=item I<svcdb>__I<field>_flag - defines I<svcdb>__I<field> action: null, `D' for default, or `F' for fixed
+TODOC: EXTRA_FIELDS_ARRAYREF
+
=cut
sub insert {
my $self = shift;
=cut
sub insert {
my $self = shift;
+ my @fields = ();
+ @fields = @{shift(@_)} if @_;
local $SIG{HUP} = 'IGNORE';
local $SIG{INT} = 'IGNORE';
local $SIG{HUP} = 'IGNORE';
local $SIG{INT} = 'IGNORE';
@@
-96,7
+102,7
@@
sub insert {
foreach my $field (
grep { $_ ne 'svcnum'
&& defined( $self->getfield($svcdb.'__'.$_.'_flag') )
foreach my $field (
grep { $_ ne 'svcnum'
&& defined( $self->getfield($svcdb.'__'.$_.'_flag') )
- }
fields($svcdb
)
+ }
(fields($svcdb), @fields
)
) {
my $part_svc_column = $self->part_svc_column($field);
my $previous = qsearchs('part_svc_column', {
) {
my $part_svc_column = $self->part_svc_column($field);
my $previous = qsearchs('part_svc_column', {
@@
-141,11
+147,15
@@
sub delete {
# check & make sure the svcpart isn't in cust_svc or pkg_svc (in any packages)?
}
# check & make sure the svcpart isn't in cust_svc or pkg_svc (in any packages)?
}
-=item replace OLD_RECORD
+=item replace OLD_RECORD
[ '1.3-COMPAT' [ , EXTRA_FIELDS_ARRAYREF ] ]
Replaces OLD_RECORD with this one in the database. If there is an error,
returns the error, otherwise returns false.
Replaces OLD_RECORD with this one in the database. If there is an error,
returns the error, otherwise returns false.
+TODOC: 1.3-COMPAT
+
+TODOC: EXTRA_FIELDS_ARRAYREF
+
=cut
sub replace {
=cut
sub replace {
@@
-172,11
+182,15
@@
sub replace {
}
if ( @_ && $_[0] eq '1.3-COMPAT' ) {
}
if ( @_ && $_[0] eq '1.3-COMPAT' ) {
+ shift;
+ my @fields = ();
+ @fields = @{shift(@_)} if @_;
+
my $svcdb = $new->svcdb;
foreach my $field (
grep { $_ ne 'svcnum'
&& defined( $new->getfield($svcdb.'__'.$_.'_flag') )
my $svcdb = $new->svcdb;
foreach my $field (
grep { $_ ne 'svcnum'
&& defined( $new->getfield($svcdb.'__'.$_.'_flag') )
- }
fields($svcdb
)
+ }
(fields($svcdb),@fields
)
) {
my $part_svc_column = $new->part_svc_column($field);
my $previous = qsearchs('part_svc_column', {
) {
my $part_svc_column = $new->part_svc_column($field);
my $previous = qsearchs('part_svc_column', {
@@
-309,7
+323,7
@@
sub part_export {
=head1 VERSION
=head1 VERSION
-$Id: part_svc.pm,v 1.1
0 2002-03-20 21:31:49
ivan Exp $
+$Id: part_svc.pm,v 1.1
1 2002-03-23 17:49:01
ivan Exp $
=head1 BUGS
=head1 BUGS
diff --git
a/FS/FS/svc_acct.pm
b/FS/FS/svc_acct.pm
index
bb6b995
..
a3e97f7
100644
(file)
--- a/
FS/FS/svc_acct.pm
+++ b/
FS/FS/svc_acct.pm
@@
-799,7
+799,7
@@
sub replace {
$new->usergroup( [ grep { $groupname ne $_ } @{$new->usergroup} ] );
next;
}
$new->usergroup( [ grep { $groupname ne $_ } @{$new->usergroup} ] );
next;
}
- my $radius_usergroup = qsearch('radius_usergroup', {
+ my $radius_usergroup = qsearch
s
('radius_usergroup', {
svcnum => $old->svcnum,
groupname => $groupname,
} );
svcnum => $old->svcnum,
groupname => $groupname,
} );
@@
-1395,7
+1395,10
@@
END
foreach my $group ( @all_groups ) {
$html .= '<OPTION';
foreach my $group ( @all_groups ) {
$html .= '<OPTION';
- $html .= ' SELECTED' if $sel_groups{$group}--;
+ if ( $sel_groups{$group} ) {
+ $html .= ' SELECTED';
+ $sel_groups{$group} = 0;
+ }
$html .= ">$group</OPTION>\n";
}
foreach my $group ( grep { $sel_groups{$_} } keys %sel_groups ) {
$html .= ">$group</OPTION>\n";
}
foreach my $group ( grep { $sel_groups{$_} } keys %sel_groups ) {
diff --git
a/httemplate/browse/part_svc.cgi
b/httemplate/browse/part_svc.cgi
index
c66b8ac
..
250b1ff
100755
(executable)
--- a/
httemplate/browse/part_svc.cgi
+++ b/
httemplate/browse/part_svc.cgi
@@
-41,13
+41,15
@@
function part_export_areyousure(href) {
<% foreach my $part_svc ( sort {
$a->getfield('svcpart') <=> $b->getfield('svcpart')
} @part_svc ) {
<% foreach my $part_svc ( sort {
$a->getfield('svcpart') <=> $b->getfield('svcpart')
} @part_svc ) {
- my($hashref)=$part_svc->hashref;
- my($svcdb)=$hashref->{svcdb};
+ my $hashref = $part_svc->hashref;
+ my $svcdb = $hashref->{svcdb};
+ my @dfields = fields($svcdb);
+ push @dfields, 'usergroup' if $svcdb eq 'svc_acct'; #kludge
my @fields =
grep { $_ ne 'svcnum' && $part_svc->part_svc_column($_)->columnflag }
my @fields =
grep { $_ ne 'svcnum' && $part_svc->part_svc_column($_)->columnflag }
-
fields($svcdb)
;
+
@dfields
;
- my
($rowspan)=
scalar(@fields) || 1;
+ my
$rowspan =
scalar(@fields) || 1;
my $url = "${p}edit/part_svc.cgi?$hashref->{svcpart}";
%>
my $url = "${p}edit/part_svc.cgi?$hashref->{svcpart}";
%>
diff --git
a/httemplate/edit/part_svc.cgi
b/httemplate/edit/part_svc.cgi
index
b1bb7f3
..
b4900a0
100755
(executable)
--- a/
httemplate/edit/part_svc.cgi
+++ b/
httemplate/edit/part_svc.cgi
@@
-86,10
+86,10
@@
my %defs = (
select_key => 'svcnum',
select_label => 'domain',
},
select_key => 'svcnum',
select_label => 'domain',
},
- '
radius_groups
' => {
-
desc =>'ICRADIUS/FreeRADIUS groups',
-
type =>'radius_usergroup_selector',
-
},
+ '
usergroup
' => {
+ desc =>'ICRADIUS/FreeRADIUS groups',
+ type =>'radius_usergroup_selector',
+ },
},
'svc_domain' => {
'domain' => 'Domain',
},
'svc_domain' => {
'domain' => 'Domain',
@@
-138,6
+138,7
@@
my %defs = (
my @fields = defined( $FS::Record::dbdef->table($layer) )
? grep { $_ ne 'svcnum' } fields($layer)
: ();
my @fields = defined( $FS::Record::dbdef->table($layer) )
? grep { $_ ne 'svcnum' } fields($layer)
: ();
+ push @fields, 'usergroup' if $layer eq 'svc_acct'; #kludge
foreach my $field (@fields) {
my $part_svc_column = $part_svc->part_svc_column($field);
my $value = $cgi->param('error')
foreach my $field (@fields) {
my $part_svc_column = $part_svc->part_svc_column($field);
my $value = $cgi->param('error')
@@
-171,6
+172,9
@@
my %defs = (
$record->getfield($def->{select_label}). '</OPTION>';
}
$html .= '</SELECT>';
$record->getfield($def->{select_label}). '</OPTION>';
}
$html .= '</SELECT>';
+ } elsif ( $def->{type} eq 'radius_usergroup_selector' ) {
+ $html .= FS::svc_acct::radius_usergroup_selector(
+ [ split(',', $value) ], "${layer}__${field}" );
} else {
$html .= '<font color="#ff0000">unknown type'. $def->{type};
}
} else {
$html .= '<font color="#ff0000">unknown type'. $def->{type};
}
diff --git
a/httemplate/edit/process/part_svc.cgi
b/httemplate/edit/process/part_svc.cgi
index
423db93
..
31ab134
100755
(executable)
--- a/
httemplate/edit/process/part_svc.cgi
+++ b/
httemplate/edit/process/part_svc.cgi
@@
-4,14
+4,18
@@
my $svcpart = $cgi->param('svcpart');
my $old = qsearchs('part_svc',{'svcpart'=>$svcpart}) if $svcpart;
my $old = qsearchs('part_svc',{'svcpart'=>$svcpart}) if $svcpart;
+$cgi->param( 'svc_acct__usergroup',
+ join(',', $cgi->param('svc_acct__usergroup') ) );
+
my $new = new FS::part_svc ( {
map {
$_, scalar($cgi->param($_));
# } qw(svcpart svc svcdb)
} ( fields('part_svc'),
map { my $svcdb = $_;
my $new = new FS::part_svc ( {
map {
$_, scalar($cgi->param($_));
# } qw(svcpart svc svcdb)
} ( fields('part_svc'),
map { my $svcdb = $_;
- map { ( $svcdb.'__'.$_, $svcdb.'__'.$_.'_flag' ) }
- fields($svcdb)
+ my @fields = fields($svcdb);
+ push @fields, 'usergroup' if $svcdb eq 'svc_acct'; #kludge
+ map { ( $svcdb.'__'.$_, $svcdb.'__'.$_.'_flag' ) } @fields;
} grep defined( $FS::Record::dbdef->table($_) ),
qw( svc_acct svc_domain svc_acct_sm svc_forward svc_www )
)
} grep defined( $FS::Record::dbdef->table($_) ),
qw( svc_acct svc_domain svc_acct_sm svc_forward svc_www )
)
@@
-19,9
+23,9
@@
my $new = new FS::part_svc ( {
my $error;
if ( $svcpart ) {
my $error;
if ( $svcpart ) {
- $error = $new->replace($old, '1.3-COMPAT');
+ $error = $new->replace($old, '1.3-COMPAT'
, [ 'usergroup' ]
);
} else {
} else {
- $error = $new->insert;
+ $error = $new->insert
( [ 'usergroup' ] )
;
$svcpart=$new->getfield('svcpart');
}
$svcpart=$new->getfield('svcpart');
}