Feature #1718

Wiki - Table column sorting

Added by Ronie Henrich almost 6 years ago. Updated about 1 year ago.

Status:NewStart date:2008-07-30
Priority:NormalDue date:
Assignee:-% Done:

0%

Category:Wiki
Target version:-
Resolution:

Description

  • Suggestion / Request:
    • It would be great to have some table column sorting features on redmine Wiki.
  • At a glance…
    • Plays nicely with the JavaScript global namespace (the script creates and reuses only one JavaScript object);
    • Multiple columns can be sorted at once by pressing Shift while selecting the columns using either the keyboard or mouse;
    • The new script sorts (on average – based on my very non-scientific calculations), 5 times faster than its predecessor;
    • The plug-in architecture makes writing custom sort functions a breeze;
    • The script can highlight both alternate rows and full columns on a table by table basis;
    • Like its predecessor, the script is fully keyboard accessible;
    • The script can correctly determine a columns datatype should a datatype not be explicitly defined (datatypes determined are limited to numbers, text, currency values and dates);
    • The script is smart enough not to sort columns containing identical data
    • Sort routines can be initiated using JavaScript;
    • Tables can be automatically sorted on a column (or columns) of your choice, even in reverse order;
    • Before-sort and after-sort callback functions (or Object.methods) can be defined for individual tables.
  • Row and column highlighting:
    • The script enables both row and column highlighting.
  • Zebra striping the table rows:
    • Should the table be given the class rowstyle-something, each alternate table row is given the class something after the table has been sorted i.e giving the table a class of rowstyle-alternate will tell the script to give each alternate row the class alternate.
  • Highlighting the currently sorted column:
    • Should the table be given the class of colstyle-something, each TD node within the sorted column is given the class something after the table has been sorted i.e giving the table the class colstyle-alternate will tell the script to give each TD node within the sorted column the class alternate.
  • Making any column sortable:
    • To make any table column sortable, just give the associated table header (TH) tag the class sortable, the script will automatically determine the column datatype, make the entire table header clickable (and not just the text contained within) and create the appropriate up/down arrow within the header when clicked (using the ↑ & ↓ characters).
  • Forcing a columns sort algorithm:
    • Should a column contain a mix of datatypes (or should you know the column datatype), it is advised that you explicitly set the sort algorithm by adding one of the following classNames to the associated table header (TH) tag: sortable-numeric, sortable-currency, sortable-text , sortable-date, sortable-date-dmy or sortable-keep (which keeps the row in it’s original order).
  • Sorting multiple columns:
    • The script can now sort multiple columns. Just hold down the Shift key while selecting the columns to sort (either with the keyboard or with the mouse).

History

#1 Updated by Thomas Lecavelier almost 6 years ago

  • Target version deleted (0.8)

The target version field has to be set when it will actually part of the target release.

#2 Updated by Anton Dollmaier over 5 years ago

+1

as this feature is part of wikipedia, it would be nice to get this into redmine-wiki, too.

e.g. I got a table with serverIDs, hostnames and row-numbers, would be nice to re-sort the data dynamically.

#3 Updated by Terence Mill over 3 years ago

+1 Don't forget this one!

#5 Updated by Hrobky Hrobky about 1 year ago

It was not working on my 2.1.4.stable.10880. Maybe the plugin is missing some installation script or there is a change in plugin structure since 2.x.

Fix:

cd /opt/redmine-2.1/public/plugin_assets
ln -s ../../plugins/redmine_sortable_table-master/assets/ sortable_table

Operator '%' seems to be overridden to do HTML escaping, so do the concatenation in other flavor:

/opt/redmine-2.1/plugins/redmine_sortable_table-master/init.rb:

*** 15,22 ****
    macro :sortable_table do |obj, args|
      content_for :header_tags do
-       "  %s\n  %s" % [
-         javascript_include_tag( "tablesort.js", :plugin => 'sortable_table'),
+       javascript_include_tag( "tablesort.js", :plugin => 'sortable_table') + "\n" +
          stylesheet_link_tag( :default, :plugin => 'sortable_table')
-       ]
      end
      "" 

Also available in: Atom PDF