Projekt

Allgemein

Profil

Herunterladen (1,37 KB) Statistiken
| Zweig: | Markierung: | Revision:
53d80f2a Moritz Bunkus
package SL::Controller::CTI;

use strict;

use SL::CTI;
use SL::DB::AuthUserConfig;
use SL::Helper::Flash;
use SL::Locale::String;

use parent qw(SL::Controller::Base);

use Rose::Object::MakeMethods::Generic (
'scalar --get_set_init' => [ qw(internal_extensions) ],
);

sub action_call {
my ($self) = @_;

eval {
my $res = SL::CTI->call(number => $::form->{number}, internal => $::form->{internal});
flash('info', t8('Calling #1 now', $::form->{number}));
1;
} or do {
flash('error', $@);
};

$self->render('cti/calling');
}

sub action_list_internal_extensions {
my ($self) = @_;

$self->render('cti/list_internal_extensions', title => t8('Internal Phone List'));
}

#
# filters
#

sub init_internal_extensions {
my ($self) = @_;

my $user_configs = SL::DB::Manager::AuthUserConfig->get_all(
where => [
cfg_key => 'phone_extension',
'!cfg_value' => undef,
'!cfg_value' => '',
],
with_objects => [ qw(user) ],
);

my %users;
foreach my $config (@{ $user_configs }) {
$users{$config->user_id} ||= {
name => $config->user->get_config_value('name') || $config->user->login,
phone_extension => $config->cfg_value,
call_link => SL::CTI->call_link(number => $config->cfg_value, internal => 1),
};
}

return [
sort { lc($a->{name}) cmp lc($b->{name}) } values %users
];
}

1;