From 5e4b73813b2475a40ffcc51224296dcb7e0c512e Mon Sep 17 00:00:00 2001 From: Irina Peshinskaya Date: Mon, 18 Mar 2019 11:24:24 +0100 Subject: [PATCH] TT#47017 Fix Phonebook and Timeset UI rendering Phonebook for Subscribers, Customers, Resellers and TimeSets for Resellers Change-Id: I1a0ab2bd15a1f96d637642a3840322a3427b1569 --- lib/NGCP/Panel/Controller/Customer.pm | 16 +++++++--- lib/NGCP/Panel/Controller/Reseller.pm | 41 +++++++++++++++++-------- lib/NGCP/Panel/Controller/Subscriber.pm | 20 +++++++----- share/templates/customer/details.tt | 5 ++- share/templates/reseller/details.tt | 12 +++++--- share/templates/subscriber/master.tt | 5 ++- 6 files changed, 68 insertions(+), 31 deletions(-) diff --git a/lib/NGCP/Panel/Controller/Customer.pm b/lib/NGCP/Panel/Controller/Customer.pm index a5a102867e..ee19ac4021 100644 --- a/lib/NGCP/Panel/Controller/Customer.pm +++ b/lib/NGCP/Panel/Controller/Customer.pm @@ -2441,6 +2441,10 @@ sub phonebook_ajax :Chained('base') :PathPart('phonebook/ajax') :Args(0) { $c->detach( $c->view("JSON") ); } +sub phonebook_root :Chained('base_restricted') :PathPart('phonebook') :Args(0) { + my ($self, $c) = @_; +} + sub phonebook_create :Chained('base_restricted') :PathPart('phonebook/create') :Args(0) { my ($self, $c) = @_; @@ -2485,7 +2489,7 @@ sub phonebook_create :Chained('base_restricted') :PathPart('phonebook/create') : $c->stash( close_target => $c->uri_for_action("/customer/details", [$contract->id]), - create_flag => 1, + phonebook_create_flag => 1, form => $form ); } @@ -2559,7 +2563,7 @@ sub phonebook_edit :Chained('phonebook_base') :PathPart('edit') :Args(0) { $c->stash( close_target => $c->uri_for_action("/customer/details", [$contract->id]), - edit_flag => 1, + phonebook_edit_flag => 1, form => $form ); } @@ -2589,7 +2593,7 @@ sub phonebook_delete :Chained('phonebook_base') :PathPart('delete') :Args(0) { NGCP::Panel::Utils::Navigation::back_or($c, $c->uri_for_action("/customer/details", [$contract->id])); } -sub phonebook_upload_csv :Chained('base') :PathPart('phonebook_upload_csv') :Args(0) { +sub phonebook_upload_csv :Chained('base_restricted') :PathPart('phonebook_upload_csv') :Args(0) { my ($self, $c) = @_; my $contract = $c->stash->{contract}; @@ -2600,8 +2604,10 @@ sub phonebook_upload_csv :Chained('base') :PathPart('phonebook_upload_csv') :Arg $c->uri_for_action('/customer/details',[$contract->id]) ); - $c->stash(create_flag => 1); - $c->stash(form => $form); + $c->stash( + phonebook_create_flag => 1, + form => $form, + ); return; } diff --git a/lib/NGCP/Panel/Controller/Reseller.pm b/lib/NGCP/Panel/Controller/Reseller.pm index 81f3ad0bdc..e930244a42 100644 --- a/lib/NGCP/Panel/Controller/Reseller.pm +++ b/lib/NGCP/Panel/Controller/Reseller.pm @@ -416,7 +416,14 @@ sub terminate :Chained('base') :PathPart('terminate') :Args(0) :Does(ACL) :ACLDe NGCP::Panel::Utils::Navigation::back_or($c, $c->uri_for('/reseller')); } -sub details :Chained('base') :PathPart('details') :Args(0) :Does(ACL) :ACLDetachTo('/denied_page') :AllowedRole(admin) { +sub base_details :Chained('base') :PathPart('details') :CaptureArgs(0) :Does(ACL) :ACLDetachTo('/denied_page') :AllowedRole(admin) { + my ($self, $c) = @_; + + $c->stash(template => 'reseller/details.tt'); + return; +} + +sub details :Chained('base_details') :PathPart('') :Args(0) :Does(ACL) :ACLDetachTo('/denied_page') :AllowedRole(admin) { my ($self, $c) = @_; $c->stash(template => 'reseller/details.tt'); @@ -770,7 +777,11 @@ sub phonebook_ajax :Chained('base') :PathPart('phonebook/ajax') :Args(0) :Does(A $c->detach( $c->view("JSON") ); } -sub phonebook_create :Chained('base') :PathPart('phonebook/create') :Args(0) :Does(ACL) :ACLDetachTo('/denied_page') :AllowedRole(admin) :AllowedRole(reseller) { +sub phonebook_root :Chained('base_details') :PathPart('phonebook') :Args(0) { + my ($self, $c) = @_; +} + +sub phonebook_create :Chained('base_details') :PathPart('phonebook/create') :Args(0) :Does(ACL) :ACLDetachTo('/denied_page') :AllowedRole(admin) :AllowedRole(reseller) { my ($self, $c) = @_; my $reseller = $c->stash->{reseller}->first; @@ -814,12 +825,12 @@ sub phonebook_create :Chained('base') :PathPart('phonebook/create') :Args(0) :Do $c->stash( close_target => $c->uri_for_action("/reseller/details", [$reseller->id]), - create_flag => 1, + phonebook_create_flag => 1, form => $form ); } -sub phonebook_base :Chained('base') :PathPart('phonebook') :CaptureArgs(1) { +sub phonebook_base :Chained('base_details') :PathPart('phonebook') :CaptureArgs(1) { my ($self, $c, $phonebook_id) = @_; unless($phonebook_id && is_int($phonebook_id)) { @@ -888,7 +899,7 @@ sub phonebook_edit :Chained('phonebook_base') :PathPart('edit') :Args(0) :Does(A $c->stash( close_target => $c->uri_for_action("/reseller/details", [$reseller->id]), - edit_flag => 1, + phonebook_edit_flag => 1, form => $form ); } @@ -918,7 +929,7 @@ sub phonebook_delete :Chained('phonebook_base') :PathPart('delete') :Args(0) :Do NGCP::Panel::Utils::Navigation::back_or($c, $c->uri_for_action("/reseller/details", [$reseller->id])); } -sub phonebook_upload_csv :Chained('base') :PathPart('phonebook_upload_csv') :Args(0) { +sub phonebook_upload_csv :Chained('base_details') :PathPart('phonebook_upload_csv') :Args(0) { my ($self, $c) = @_; my $reseller = $c->stash->{reseller}->first; @@ -929,8 +940,10 @@ sub phonebook_upload_csv :Chained('base') :PathPart('phonebook_upload_csv') :Arg $c->uri_for_action('/reseller/details',[$reseller->id]) ); - $c->stash(create_flag => 1); - $c->stash(form => $form); + $c->stash( + phonebook_create_flag => 1, + form => $form + ); return; } @@ -954,7 +967,11 @@ sub timeset_ajax :Chained('base') :PathPart('reseller/ajax') :Args(0) :Does(ACL) $c->detach( $c->view("JSON") ); } -sub timeset_create :Chained('base') :PathPart('timeset/create') :Args(0) :Does(ACL) :ACLDetachTo('/denied_page') :AllowedRole(admin) :AllowedRole(reseller) { +sub timeset_root :Chained('base_details') :PathPart('timeset') :Args(0) { + my ($self, $c) = @_; +} + +sub timeset_create :Chained('base_details') :PathPart('timeset/create') :Args(0) :Does(ACL) :ACLDetachTo('/denied_page') :AllowedRole(admin) :AllowedRole(reseller) { my ($self, $c) = @_; my $reseller = $c->stash->{reseller}->first; @@ -1007,12 +1024,12 @@ sub timeset_create :Chained('base') :PathPart('timeset/create') :Args(0) :Does(A $c->stash( close_target => $c->uri_for_action("/reseller/details", [$reseller->id]), - create_flag => 1, + timeset_create_flag => 1, form => $form ); } -sub timeset_base :Chained('base') :PathPart('timeset') :CaptureArgs(1) { +sub timeset_base :Chained('base_details') :PathPart('timeset') :CaptureArgs(1) { my ($self, $c, $timeset_id) = @_; unless($timeset_id && is_int($timeset_id)) { @@ -1097,7 +1114,7 @@ sub timeset_edit :Chained('timeset_base') :PathPart('edit') :Args(0) :Does(ACL) $c->stash( close_target => $c->uri_for_action("/reseller/details", [$reseller->id]), - edit_flag => 1, + timeset_edit_flag => 1, form => $form ); } diff --git a/lib/NGCP/Panel/Controller/Subscriber.pm b/lib/NGCP/Panel/Controller/Subscriber.pm index 6c1db97504..56513a38c6 100644 --- a/lib/NGCP/Panel/Controller/Subscriber.pm +++ b/lib/NGCP/Panel/Controller/Subscriber.pm @@ -5215,7 +5215,11 @@ sub phonebook_ajax :Chained('base') :PathPart('phonebook/ajax') :Args(0) { $c->detach( $c->view("JSON") ); } -sub phonebook_create :Chained('base') :PathPart('phonebook/create') :Args(0) { +sub phonebook_root :Chained('master') :PathPart('phonebook') :Args(0) { + my ($self, $c) = @_; +} + +sub phonebook_create :Chained('master') :PathPart('phonebook/create') :Args(0) { my ($self, $c) = @_; my $subscriber = $c->stash->{subscriber}; @@ -5260,12 +5264,12 @@ sub phonebook_create :Chained('base') :PathPart('phonebook/create') :Args(0) { $c->stash( close_target => $c->uri_for_action("/subscriber/details", [$subscriber->id]), - create_flag => 1, + phonebook_create_flag => 1, form => $form ); } -sub phonebook_base :Chained('base') :PathPart('phonebook') :CaptureArgs(1) { +sub phonebook_base :Chained('master') :PathPart('phonebook') :CaptureArgs(1) { my ($self, $c, $phonebook_id) = @_; unless($phonebook_id && is_int($phonebook_id)) { @@ -5335,7 +5339,7 @@ sub phonebook_edit :Chained('phonebook_base') :PathPart('edit') :Args(0) { $c->stash( close_target => $c->uri_for_action("/subscriber/details", [$subscriber->id]), - edit_flag => 1, + phonebook_edit_flag => 1, form => $form ); } @@ -5365,7 +5369,7 @@ sub phonebook_delete :Chained('phonebook_base') :PathPart('delete') :Args(0) { NGCP::Panel::Utils::Navigation::back_or($c, $c->uri_for_action("/subscriber/details", [$subscriber->id])); } -sub phonebook_upload_csv :Chained('base') :PathPart('phonebook_upload_csv') :Args(0) { +sub phonebook_upload_csv :Chained('master') :PathPart('phonebook_upload_csv') :Args(0) { my ($self, $c) = @_; my $subscriber = $c->stash->{subscriber}; @@ -5376,8 +5380,10 @@ sub phonebook_upload_csv :Chained('base') :PathPart('phonebook_upload_csv') :Arg $c->uri_for_action('/subscriber/details',[$subscriber->id]) ); - $c->stash(create_flag => 1); - $c->stash(form => $form); + $c->stash( + phonebook_create_flag => 1, + form => $form + ); return; } diff --git a/share/templates/customer/details.tt b/share/templates/customer/details.tt index 73b1a866be..f837099aeb 100644 --- a/share/templates/customer/details.tt +++ b/share/templates/customer/details.tt @@ -736,10 +736,13 @@ $(function() { helper.name = c.loc('Phonebook'); helper.identifier = 'phonebook'; helper.messages = messages; + helper.create_flag = phonebook_create_flag; + helper.edit_flag = phonebook_edit_flag; + helper.form_object = form; helper.length_change = 1; helper.dt_columns = phonebook_dt_columns; helper.ajax_uri = c.uri_for_action('/customer/phonebook_ajax', [ c.req.captures.0 ]); - helper.tmpuri = c.uri_for(contract.id, 'phonebook'); + helper.tmpuri = c.uri_for_action('/customer/phonebook_root', [ c.req.captures.0 ]); UNLESS c.user.read_only; helper.dt_buttons = [ diff --git a/share/templates/reseller/details.tt b/share/templates/reseller/details.tt index 4278466d96..114c278bae 100644 --- a/share/templates/reseller/details.tt +++ b/share/templates/reseller/details.tt @@ -418,9 +418,12 @@ helper.identifier = 'phonebook'; helper.messages = messages; helper.length_change = 1; + helper.create_flag = phonebook_create_flag; + helper.edit_flag = phonebook_edit_flag; + helper.form_object = form; helper.dt_columns = phonebook_dt_columns; helper.ajax_uri = c.uri_for_action('/reseller/phonebook_ajax', [ c.req.captures.0 ]); - helper.tmpuri = c.uri_for(reseller.first.id, 'phonebook'); + helper.tmpuri = c.uri_for_action('/reseller/phonebook_root', [ c.req.captures.0 ]); UNLESS c.user.read_only; helper.dt_buttons = [ @@ -453,12 +456,11 @@ helper.dt_columns = timeset_dt_columns; helper.messages = messages; helper.close_target = close_target; - helper.create_flag = create_flag; - helper.edit_flag = edit_flag; + helper.create_flag = timeset_create_flag; + helper.edit_flag = timeset_edit_flag; helper.form_object = form; helper.ajax_uri = c.uri_for_action('/reseller/timeset_ajax', [c.req.captures.0] ); - helper.tmpuri = c.uri_for(reseller.first.id, 'timeset'); - + helper.tmpuri = c.uri_for_action('/reseller/timeset_root', [ c.req.captures.0 ]); UNLESS c.user.read_only; helper.dt_buttons = [ { name = c.loc('Events'), uri = "/timeset/'+full.id+'/event", class = 'btn-small btn-tertiary', icon = 'icon-th-list' }, diff --git a/share/templates/subscriber/master.tt b/share/templates/subscriber/master.tt index f898d0589e..223a906b58 100644 --- a/share/templates/subscriber/master.tt +++ b/share/templates/subscriber/master.tt @@ -343,11 +343,14 @@ function process_pbx_items(moveId,direction){ [% helper.name = c.loc('Phonebook'); helper.identifier = 'phonebook'; + helper.create_flag = phonebook_create_flag; + helper.edit_flag = phonebook_edit_flag; + helper.form_object = form; helper.messages = messages; helper.length_change = 1; helper.dt_columns = phonebook_dt_columns; helper.ajax_uri = c.uri_for_action('/subscriber/phonebook_ajax', [ c.req.captures.0 ]); - helper.tmpuri = c.uri_for(subscriber.id, 'phonebook'); + helper.tmpuri = c.uri_for_action('/subscriber/phonebook_root', [ c.req.captures.0 ]); UNLESS c.user.read_only; helper.dt_buttons = [