diff --git a/lib/NGCP/Panel/Utils/Device.pm b/lib/NGCP/Panel/Utils/Device.pm index 8414b738bd..2c111ee0e6 100644 --- a/lib/NGCP/Panel/Utils/Device.pm +++ b/lib/NGCP/Panel/Utils/Device.pm @@ -6,22 +6,27 @@ use strict; sub process_connectable_models{ my ($c, $just_created, $devmod, $connectable_models_in) = @_; my $schema = $c->model('DB'); - if($connectable_models_in){ - my $connectable_models_ids = [ - map{ - my $name_or_id = $_; - if( $name_or_id !~ /^\d+$/ ){ - (my($vendor,$model_name)) = $name_or_id =~ /^([^ ]+) (.*)$/; - my $model = $schema->resultset('autoprov_devices')->search_rs({ - 'vendor' => $vendor, - 'model' => $model_name, - })->first; - return $model ? $model->id : () ; - }else{ - return $name_or_id; + $connectable_models_in ||= []; + if('ARRAY' ne ref $connectable_models_in){ + $connectable_models_in = [$connectable_models_in]; + } + if(@$connectable_models_in){ + my $connectable_models_ids = []; + foreach(@$connectable_models_in){ + my $name_or_id = $_; + if( $name_or_id !~ /^\d+$/ ){ + (my($vendor,$model_name)) = $name_or_id =~ /^([^ ]+) (.*)$/; + my $model = $schema->resultset('autoprov_devices')->search_rs({ + 'vendor' => $vendor, + 'model' => $model_name, + })->first; + if($model){ + push @$connectable_models_ids, $model->id; } - } @$connectable_models_in - ]; + }else{ + push @$connectable_models_ids, $name_or_id; + } + } my @columns = ('device_id' , 'extension_id'); if('extension' eq $devmod->type){ #extension can be connected to other extensions? If I remember right - yes.