aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Reaction/UI/Widget/ListView.pm
diff options
context:
space:
mode:
authorgroditi <groditi@03d0b0b2-0e1a-0410-a411-fdb2f4bd65d7>2009-05-06 15:58:22 +0000
committergroditi <groditi@03d0b0b2-0e1a-0410-a411-fdb2f4bd65d7>2009-05-06 15:58:22 +0000
commitc1b16a7de0859d507d350fd946abed84ac3683ad (patch)
treeb38c5cee9ef3d37ddba0a4fafab4230a439f4297 /lib/Reaction/UI/Widget/ListView.pm
parenta6dd5692f77afb88f9aa5a8de13a0519e24a361d (diff)
downloadreaction-c1b16a7de0859d507d350fd946abed84ac3683ad.tar.gz
reaction-c1b16a7de0859d507d350fd946abed84ac3683ad.zip
order_by fixes including enable_order_by and coerce_order_by
Diffstat (limited to 'lib/Reaction/UI/Widget/ListView.pm')
-rw-r--r--lib/Reaction/UI/Widget/ListView.pm17
1 files changed, 10 insertions, 7 deletions
diff --git a/lib/Reaction/UI/Widget/ListView.pm b/lib/Reaction/UI/Widget/ListView.pm
index 1db21ba..2fa13f8 100644
--- a/lib/Reaction/UI/Widget/ListView.pm
+++ b/lib/Reaction/UI/Widget/ListView.pm
@@ -24,13 +24,16 @@ implements fragment action {
render 'viewport';
};
-around fragment header_cell {
- arg order_uri => event_uri {
- order_by => $_,
- order_by_desc => ((($_{viewport}->order_by||'') ne $_
- || $_{viewport}->order_by_desc) ? 0 : 1)
- };
- call_next;
+implements fragment maybe_sortable_header_cell {
+ my $vp = $_{viewport};
+ if( $_{viewport}->can_order_by($_) ){
+ my $current = $vp->order_by;
+ my $desc = ( $vp->order_by_desc || ( $current || '') ne $_) ? 0 : 1;
+ arg order_uri => event_uri { order_by => $_, order_by_desc => $desc };
+ render 'sortable_header_cell';
+ } else {
+ render 'header_cell_contents';
+ }
};
implements fragment page_list {