MT#11147 Allow "Vendor ModelName" refer to connectable models

Change-Id: I7e9cec85798860592bde63b09024896c17280895
changes/11/2011/3
Irina Peshinskaya 10 years ago
parent b0456e4c36
commit 3310c45e4f

@ -4,9 +4,24 @@ package NGCP::Panel::Utils::Device;
use strict;
sub process_connectable_models{
my ($c, $just_created, $devmod, $connectable_models) = @_;
my ($c, $just_created, $devmod, $connectable_models_in) = @_;
my $schema = $c->model('DB');
if($connectable_models){
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
];
my @columns = ('device_id' , 'extension_id');
if('extension' eq $devmod->type){
#extension can be connected to other extensions? If I remember right - yes.
@ -15,7 +30,7 @@ sub process_connectable_models{
#we defenitely can't connect phone to phone
my $phone2phone = $schema->resultset('autoprov_devices')->search_rs({
'type' => 'phone',
'id' => { 'in' => $connectable_models },
'id' => { 'in' => $connectable_models_ids },
});
if($phone2phone->first){
die("Phone can't be connected to the phone as extension.");
@ -27,7 +42,7 @@ sub process_connectable_models{
$columns[0] => $devmod->id,
})->delete;
}
foreach my $connected_id(@$connectable_models){
foreach my $connected_id(@$connectable_models_ids){
if($devmod->id == $connected_id){
die("Device can't be connected to itself as extension.");
}

Loading…
Cancel
Save