parent
5160759f38
commit
06fc0fa4dd
@ -0,0 +1,53 @@
|
||||
package NGCP::Panel::Widget::Plugin::SubscriberCallsOverview;
|
||||
use Moose::Role;
|
||||
|
||||
has 'template' => (
|
||||
is => 'ro',
|
||||
isa => 'Str',
|
||||
default => 'widgets/subscriber_calls_overview.tt'
|
||||
);
|
||||
|
||||
has 'type' => (
|
||||
is => 'ro',
|
||||
isa => 'Str',
|
||||
default => 'dashboard_widgets',
|
||||
);
|
||||
|
||||
has 'priority' => (
|
||||
is => 'ro',
|
||||
isa => 'Int',
|
||||
default => 10,
|
||||
);
|
||||
|
||||
around handle => sub {
|
||||
my ($foo, $self, $c) = @_;
|
||||
|
||||
my $out_rs = $c->model('DB')->resultset('cdr')->search({
|
||||
source_user_id => $c->user->uuid,
|
||||
});
|
||||
my $in_rs = $c->model('DB')->resultset('cdr')->search({
|
||||
destination_user_id => $c->user->uuid,
|
||||
});
|
||||
my $calls_rs = $out_rs->union($in_rs)->search(undef, {
|
||||
order_by => { -desc => 'me.start_time' },
|
||||
})->slice(0, 9);
|
||||
|
||||
$c->stash(
|
||||
calls => $calls_rs,
|
||||
);
|
||||
return;
|
||||
};
|
||||
|
||||
sub filter {
|
||||
my ($self, $c, $type) = @_;
|
||||
|
||||
return $self if(
|
||||
$type eq $self->type &&
|
||||
($c->user_in_realm('subscriber') || $c->user_in_realm('subscriberadmin')) &&
|
||||
ref $c->controller eq 'NGCP::Panel::Controller::Dashboard'
|
||||
);
|
||||
return;
|
||||
}
|
||||
|
||||
1;
|
||||
# vim: set tabstop=4 expandtab:
|
@ -0,0 +1,50 @@
|
||||
package NGCP::Panel::Widget::Plugin::SubscriberVmOverview;
|
||||
use Moose::Role;
|
||||
|
||||
has 'template' => (
|
||||
is => 'ro',
|
||||
isa => 'Str',
|
||||
default => 'widgets/subscriber_vm_overview.tt'
|
||||
);
|
||||
|
||||
has 'type' => (
|
||||
is => 'ro',
|
||||
isa => 'Str',
|
||||
default => 'dashboard_widgets',
|
||||
);
|
||||
|
||||
has 'priority' => (
|
||||
is => 'ro',
|
||||
isa => 'Int',
|
||||
default => 10,
|
||||
);
|
||||
|
||||
around handle => sub {
|
||||
my ($foo, $self, $c) = @_;
|
||||
|
||||
my $rs = $c->model('DB')->resultset('voicemail_spool')->search({
|
||||
mailboxuser => $c->user->uuid,
|
||||
dir => { -like => '%/INBOX' },
|
||||
}, {
|
||||
order_by => { -desc => 'me.origtime' },
|
||||
})->slice(0, 9);
|
||||
|
||||
$c->stash(
|
||||
vmails => $rs,
|
||||
);
|
||||
return;
|
||||
};
|
||||
|
||||
sub filter {
|
||||
my ($self, $c, $type) = @_;
|
||||
|
||||
return $self if(
|
||||
$type eq $self->type &&
|
||||
($c->user_in_realm('subscriber') || $c->user_in_realm('subscriberadmin')) &&
|
||||
ref $c->controller eq 'NGCP::Panel::Controller::Dashboard'
|
||||
);
|
||||
return;
|
||||
}
|
||||
|
||||
1;
|
||||
# vim: set tabstop=4 expandtab:
|
@ -0,0 +1,51 @@
|
||||
[% USE Math -%]
|
||||
<div class="plan-container">
|
||||
<div class="plan">
|
||||
<div class="plan-header">
|
||||
<div class="plan-title">Call List</div>
|
||||
<div class="plan-price">
|
||||
<span>[% calls.count %]</span>
|
||||
<span class="term">Recent Calls</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="plan-features">
|
||||
<ul>
|
||||
[% IF calls.count == 0 -%]
|
||||
<li>No calls yet</li>
|
||||
[% ELSE -%]
|
||||
[% FOR call IN calls.all -%]
|
||||
<li>
|
||||
<div class="row-fluid">
|
||||
[% IF call.source_user_id == c.user.uuid -%]
|
||||
<span class="span1">
|
||||
[% IF call.call_status == "ok" -%]
|
||||
<i class="icon-circle-arrow-right" style="color:green"></i>
|
||||
[% ELSE -%]
|
||||
<i class="icon-circle-arrow-up" style="color:red"></i>
|
||||
[% END -%]
|
||||
</span>
|
||||
<span class="span4">[% call.destination_user_in %]</span>
|
||||
[% ELSE -%]
|
||||
<span class="span1">
|
||||
[% IF call.call_status == "ok" -%]
|
||||
<i class="icon-circle-arrow-left" style="color:green"></i>
|
||||
[% ELSE -%]
|
||||
<i class="icon-circle-arrow-down" style="color:red"></i>
|
||||
[% END -%]
|
||||
</span>
|
||||
<span class="span4">[% call.clir ? "anonymous" : call.source_cli %]</span>
|
||||
[% END -%]
|
||||
<span class="span3">[% call.start_time -%]</span>
|
||||
<span class="span1">[% Math.int(call.duration) -%]s</span>
|
||||
</div>
|
||||
</li>
|
||||
[% END -%]
|
||||
[% END -%]
|
||||
</ul>
|
||||
</div>
|
||||
<div class="plan-actions">
|
||||
<a href="[% c.uri_for('/subscriber') %]" class="btn">View Call List</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
[% # vim: set tabstop=4 syntax=html expandtab: -%]
|
@ -0,0 +1,38 @@
|
||||
[% USE Math -%]
|
||||
<div class="plan-container">
|
||||
<div class="plan">
|
||||
<div class="plan-header">
|
||||
<div class="plan-title">Voicebox Messages</div>
|
||||
<div class="plan-price">
|
||||
<span>[% vmails.count %]</span>
|
||||
<span class="term">New Messages</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="plan-features">
|
||||
<ul>
|
||||
[% IF vmails.count == 0 -%]
|
||||
<li>No new messages</li>
|
||||
[% ELSE -%]
|
||||
[% FOR vmail IN vmails.all -%]
|
||||
<li>
|
||||
<div class="row-fluid">
|
||||
<span class="span1">
|
||||
<a href="#" alt="listen">
|
||||
<i class="icon-volume-up" style="color:green"></i>
|
||||
</a>
|
||||
</span>
|
||||
<span class="span4">[% vmail.callerid -%]</span>
|
||||
<span class="span3">[% vmail.origtime -%]</span>
|
||||
<span class="span1">[% vmail.duration -%]s</span>
|
||||
</div>
|
||||
</li>
|
||||
[% END -%]
|
||||
[% END -%]
|
||||
</ul>
|
||||
</div>
|
||||
<div class="plan-actions">
|
||||
<a href="[% c.uri_for('/subscriber') %]" class="btn">View Call List</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
[% # vim: set tabstop=4 syntax=html expandtab: -%]
|
Loading…
Reference in new issue