relocate repo files so ND2 is the only code

This commit is contained in:
Oliver Gorwits
2017-04-14 23:08:55 +01:00
parent 9a016ea6ba
commit d23b32500f
469 changed files with 0 additions and 6920 deletions

View File

@@ -0,0 +1,107 @@
package App::Netdisco::DB::ResultSet::DeviceModule;
use base 'App::Netdisco::DB::ResultSet';
use strict;
use warnings;
=head1 ADDITIONAL METHODS
=head2 search_by_field( \%cond, \%attrs? )
This variant of the standard C<search()> method returns a ResultSet of Device
Module entries. It is written to support web forms which accept fields that
match and locate Device Modules in the database.
The hashref parameter should contain fields from the Device Module table
which will be intelligently used in a search query.
In addition, you can provide the key C<matchall> which, given a True or False
value, controls whether fields must all match or whether any can match, to
select a row.
Supported keys:
=over 4
=item matchall
If a True value, fields must all match to return a given row of the Device
table, otherwise any field matching will cause the row to be included in
results.
=item description
Can match the C<description> field as a substring.
=item name
Can match the C<name> field as a substring.
=item type
Can match the C<type> field as a substring.
=item model
Can match the C<model> field as a substring.
=item serial
Can match the C<serial> field as a substring.
=item class
Will match exactly the C<class> field.
=item ips
List of Device IPs containing modules.
=back
=cut
sub search_by_field {
my ( $rs, $p, $attrs ) = @_;
die "condition parameter to search_by_field must be hashref\n"
if ref {} ne ref $p
or 0 == scalar keys %$p;
my $op = $p->{matchall} ? '-and' : '-or';
return $rs->search_rs( {}, $attrs )->search(
{ $op => [
( $p->{description}
? ( 'me.description' =>
{ '-ilike' => "\%$p->{description}\%" } )
: ()
),
( $p->{name}
? ( 'me.name' => { '-ilike' => "\%$p->{name}\%" } )
: ()
),
( $p->{type}
? ( 'me.type' => { '-ilike' => "\%$p->{type}\%" } )
: ()
),
( $p->{model}
? ( 'me.model' => { '-ilike' => "\%$p->{model}\%" } )
: ()
),
( $p->{serial}
? ( 'me.serial' => { '-ilike' => "\%$p->{serial}\%" } )
: ()
),
( $p->{class}
? ( 'me.class' => { '-in' => $p->{class} } )
: ()
),
( $p->{ips} ? ( 'me.ip' => { '-in' => $p->{ips} } ) : () ),
],
}
);
}
1;