From 3911119b3924a14e3fd849396846aec0d903f33a Mon Sep 17 00:00:00 2001 From: Andreas Granig Date: Wed, 3 Jul 2013 15:25:54 +0200 Subject: [PATCH] Make datatables fields searchable by "subnames". --- lib/NGCP/Panel/Controller/Contract.pm | 18 +++++++----------- lib/NGCP/Panel/Controller/Root.pm | 2 +- 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/lib/NGCP/Panel/Controller/Contract.pm b/lib/NGCP/Panel/Controller/Contract.pm index d4a8a8b909..c8ac36ca0c 100644 --- a/lib/NGCP/Panel/Controller/Contract.pm +++ b/lib/NGCP/Panel/Controller/Contract.pm @@ -41,10 +41,10 @@ sub contract_list :Chained('/') :PathPart('contract') :CaptureArgs(0) { }, '+select' => [ 'billing_mappings.billing_profile_id', - 'billing_profile.name as billing_profile_name', + 'billing_profile.name', ], '+as' => [ - 'billing_profile', + 'billing_profile_id', 'billing_profile_name', ], }); @@ -197,15 +197,11 @@ sub delete :Chained('base') :PathPart('delete') :Args(0) { sub ajax :Chained('contract_list') :PathPart('ajax') :Args(0) { my ($self, $c) = @_; - my $rs = $c->stash->{contract_select_rs}->search({},{ - '+select' => 'billing_profile.name', - '+as' => 'billing_profile_name', - 'join' => {billing_mappings => 'billing_profile'}, - }); + my $rs = $c->stash->{contract_select_rs}; $c->forward( "/ajax_process_resultset", [$rs, ["id","contact_id","billing_profile_name","status"], - [2, 3]]); + ["billing_profile.name", "status"]]); $c->detach( $c->view("JSON") ); } @@ -231,8 +227,8 @@ sub peering_ajax :Chained('peering_list') :PathPart('ajax') :Args(0) { }); $c->forward( "/ajax_process_resultset", [$rs, - ["id","contact_id","billing_profile","status"], - []]); + ["id","contact_id","billing_profile_name","status"], + ["billing_profile.name", "status"]]); $c->detach( $c->view("JSON") ); } @@ -316,7 +312,7 @@ sub customer_ajax :Chained('customer_list') :PathPart('ajax') :Args(0) { $c->forward( "/ajax_process_resultset", [$rs, ["id","contact_id","billing_profile_name","status"], - [2, 3]]); + ["billing_profile.name", "status"]]); $c->detach( $c->view("JSON") ); } diff --git a/lib/NGCP/Panel/Controller/Root.pm b/lib/NGCP/Panel/Controller/Root.pm index 40584b312e..a048a025e9 100644 --- a/lib/NGCP/Panel/Controller/Root.pm +++ b/lib/NGCP/Panel/Controller/Root.pm @@ -105,7 +105,7 @@ sub ajax_process_resultset :Private { my $totalRecords = $rs->count; if ($sSearch) { - $rs = $rs->search([ map{ +{ $_ => { like => '%'.$sSearch.'%' } } } @$columns[@$searchable] ]); + $rs = $rs->search([ map{ +{ $_ => { like => '%'.$sSearch.'%' } } } @$searchable ]); } my $totalDisplayRecords = $rs->count;