s/([0-9a-f]{4})([0-9a-f]{4})/$1 $2/g;
my $prefix = '';
if( /:.*:/ ) {
- $prefix = 'Subsystem';
+ $prefix = 'Sub-system';
} elsif( /:/ ) {
$prefix = 'Device';
} else {
return 'pci';
}
+sub addressDeps( $ ) {
+ my( $addr ) = ( shift->get() =~ /^PC\/....\/....\/(....)/ );
+ return [] unless defined $addr;
+ return [ [ PciIds::Address::new( "PC/$addr" ), "Sub-system vendor $addr does not exist" ] ];
+}
+
1;
sub submitItem( $$$ ) {
my( $self, $data, $auth ) = @_;
my( $addr ) = ( $data->{'address'} );
+ foreach( @{$addr->addressDeps()} ) {
+ my( $dep, $error ) = @{$_};
+ return ( $error, undef ) unless defined $self->item( $dep->get(), 0 );
+ }
return( 'exists', undef ) if( defined( $self->item( $addr->get(), 0 ) ) );
eval {
$self->command( 'newitem', [ $addr->get(), $addr->parent()->get() ] );
$self->command( 'newhistory', [ $addr->get(), $auth->{'authid'}, $data->{'discussion'}, $data->{'name'}, $data->{'note'} ] );
-
};
if( $@ ) {
$self->rollback();
genHtmlTail();
return OK;
} elsif( $result ) {
- die "Failed to submit new item: $result\n";
+ return genNewItemForm( $req, $args, $auth, $tables, $result, $data );
}
notify( $tables, $data->{'address'}->get(), $comName, 2, 0 );
tulog( $auth->{'authid'}, "Item created ".$data->{'address'}->get()." ".logEscape( $data->{'name'} )." ".logEscape( $data->{'note'} )." ".logEscape( $data->{'discussion'} )." $comName" );