diff --git a/lib/NGCP/Panel/Controller/Subscriber.pm b/lib/NGCP/Panel/Controller/Subscriber.pm index 3e165fe8c7..6763ea4c06 100644 --- a/lib/NGCP/Panel/Controller/Subscriber.pm +++ b/lib/NGCP/Panel/Controller/Subscriber.pm @@ -1567,6 +1567,14 @@ sub calllist :Chained('master') :PathPart('calls') :Args(0) { ); } +sub reglist :Chained('master') :PathPart('regdevices') :Args(0) { + my ($self, $c) = @_; + + $c->stash( + template => 'subscriber/reglist.tt' + ); +} + sub edit_master :Chained('master') :PathPart('edit') :Args(0) { my ($self, $c) = @_; my $subscriber = $c->stash->{subscriber}; diff --git a/lib/NGCP/Panel/Widget/Plugin/SubscriberCFOverview.pm b/lib/NGCP/Panel/Widget/Plugin/SubscriberCFOverview.pm index 22d92fbcf3..e876c33dc9 100644 --- a/lib/NGCP/Panel/Widget/Plugin/SubscriberCFOverview.pm +++ b/lib/NGCP/Panel/Widget/Plugin/SubscriberCFOverview.pm @@ -16,7 +16,7 @@ has 'type' => ( has 'priority' => ( is => 'ro', isa => 'Int', - default => 10, + default => 30, ); around handle => sub { diff --git a/lib/NGCP/Panel/Widget/Plugin/SubscriberRegisterOverview.pm b/lib/NGCP/Panel/Widget/Plugin/SubscriberRegisterOverview.pm new file mode 100644 index 0000000000..dd410dc537 --- /dev/null +++ b/lib/NGCP/Panel/Widget/Plugin/SubscriberRegisterOverview.pm @@ -0,0 +1,55 @@ +package NGCP::Panel::Widget::Plugin::SubscriberRegisterOverview; +use Moose::Role; + +has 'template' => ( + is => 'ro', + isa => 'Str', + default => 'widgets/subscriber_reg_overview.tt' +); + +has 'type' => ( + is => 'ro', + isa => 'Str', + default => 'dashboard_widgets', +); + +has 'priority' => ( + is => 'ro', + isa => 'Int', + default => 40, +); + +around handle => sub { + my ($foo, $self, $c) = @_; + + my $rs = $c->model('DB')->resultset('location')->search({ + username => $c->user->username, + }); + if($c->config->{features}->{multidomain}) { + $rs = $rs->search({ + domain => $c->user->domain->domain, + }); + } + my $reg_count = $rs->count; + $rs = $rs->slice(0,4); + + $c->stash( + regs => $rs, + reg_count => $reg_count, + ); + 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: diff --git a/lib/NGCP/Panel/Widget/Plugin/SubscriberVmOverview.pm b/lib/NGCP/Panel/Widget/Plugin/SubscriberVmOverview.pm index 6887bfb8a2..6c0665128e 100644 --- a/lib/NGCP/Panel/Widget/Plugin/SubscriberVmOverview.pm +++ b/lib/NGCP/Panel/Widget/Plugin/SubscriberVmOverview.pm @@ -16,7 +16,7 @@ has 'type' => ( has 'priority' => ( is => 'ro', isa => 'Int', - default => 10, + default => 20, ); around handle => sub { diff --git a/share/templates/subscriber/reglist.tt b/share/templates/subscriber/reglist.tt new file mode 100644 index 0000000000..1b55b55234 --- /dev/null +++ b/share/templates/subscriber/reglist.tt @@ -0,0 +1,22 @@ +[% site_config.title = 'Registered Devices for ' _ subscriber.username _ '@' _ subscriber.domain.domain -%] + +
+ + Back + +
+[% back_created = 1 -%] + +
+ +[% + helper.name = 'Registered Devices'; + helper.dt_columns = reg_dt_columns; + helper.column_sort = 'expires'; + helper.form_object = form; + helper.ajax_uri = c.uri_for_action('/subscriber/ajax_registered', [c.req.captures.0]); + + PROCESS 'helpers/datatables.tt'; +%] + +[% # vim: set tabstop=4 syntax=html expandtab: -%] diff --git a/share/templates/widgets/subscriber_calls_overview.tt b/share/templates/widgets/subscriber_calls_overview.tt index dc29fee707..a7fccffe63 100644 --- a/share/templates/widgets/subscriber_calls_overview.tt +++ b/share/templates/widgets/subscriber_calls_overview.tt @@ -24,7 +24,7 @@ [% END -%] -
[% call.destination_user_in %]
+
[% call.destination_user_in %]
[% ELSE -%]
[% IF call.call_status == "ok" -%] @@ -33,11 +33,11 @@ [% END -%]
-
[% call.clir ? "anonymous" : call.source_cli %]
+
[% call.clir ? "anonymous" : call.source_cli %]
[% END -%]
-
[% call.start_time -%]
+
[% call.start_time -%]
[% Math.int(call.duration) -%]s
diff --git a/share/templates/widgets/subscriber_reg_overview.tt b/share/templates/widgets/subscriber_reg_overview.tt new file mode 100644 index 0000000000..defb293beb --- /dev/null +++ b/share/templates/widgets/subscriber_reg_overview.tt @@ -0,0 +1,37 @@ +[% USE Math -%] +
+
+
+
Registered Devices
+
+ [% reg_count %] + Registered Device[% reg_count != 1 ? 's' : '' %] +
+
+
+
    + [% IF reg_count == 0 -%] +
  • No devices registered
  • + [% ELSE -%] + [% FOR reg IN regs.all -%] +
  • +
    +
    + [% IF reg.user_agent.length > 48 -%] + [% ua = reg.user_agent.substr(45, reg.user_agent.length - 45, '...'); ua %] + [% ELSE -%] + [% reg.user_agent %] + [% END -%] +
    +
    +
  • + [% END -%] + [% END -%] +
+
+ +
+
+[% # vim: set tabstop=4 syntax=html expandtab: -%] diff --git a/share/templates/widgets/subscriber_topmenu_settings.tt b/share/templates/widgets/subscriber_topmenu_settings.tt index e2f7aa1160..a4e529181a 100644 --- a/share/templates/widgets/subscriber_topmenu_settings.tt +++ b/share/templates/widgets/subscriber_topmenu_settings.tt @@ -7,6 +7,7 @@ diff --git a/share/templates/widgets/subscriber_vm_overview.tt b/share/templates/widgets/subscriber_vm_overview.tt index 17e9790522..7aaa085480 100644 --- a/share/templates/widgets/subscriber_vm_overview.tt +++ b/share/templates/widgets/subscriber_vm_overview.tt @@ -1,4 +1,3 @@ -[% USE Math -%]
@@ -21,10 +20,10 @@
-
[% vmail.callerid -%]
+
[% vmail.callerid -%]
-
[% vmail.origtime -%]
+
[% vmail.origtime -%]
[% vmail.duration -%]s
diff --git a/share/templates/widgets/subscriberadmin_topmenu_settings.tt b/share/templates/widgets/subscriberadmin_topmenu_settings.tt index 7c1292e53e..523aa6b9eb 100644 --- a/share/templates/widgets/subscriberadmin_topmenu_settings.tt +++ b/share/templates/widgets/subscriberadmin_topmenu_settings.tt @@ -7,6 +7,8 @@