diff options
author | groditi <groditi@03d0b0b2-0e1a-0410-a411-fdb2f4bd65d7> | 2009-05-06 15:58:22 +0000 |
---|---|---|
committer | groditi <groditi@03d0b0b2-0e1a-0410-a411-fdb2f4bd65d7> | 2009-05-06 15:58:22 +0000 |
commit | c1b16a7de0859d507d350fd946abed84ac3683ad (patch) | |
tree | b38c5cee9ef3d37ddba0a4fafab4230a439f4297 /lib/Reaction/UI/Widget/ListView.pm | |
parent | a6dd5692f77afb88f9aa5a8de13a0519e24a361d (diff) | |
download | reaction-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.pm | 17 |
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 { |