Opened 13 years ago

Closed 13 years ago

#1674 closed task (fixed)

Define extension points for adding columns to table listings

Reported by: Nicklas Nordborg Owned by: Nicklas Nordborg
Priority: major Milestone: BASE 3.2
Component: web Version:
Keywords: Cc:

Description

Sometimes it would be useful for extensions to be able to add extra columns to a table listing. Basic types that are already supported by the BASE core should not be too difficult including filtering, sorting and exporting.

It would also be nice to have support for more complex columns that require special implementations to handle filtering, sorting, exporting, etc. This will probably also require some refactoring in the core with respect to how filters, etc. are handled.

Change History (9)

comment:1 by Nicklas Nordborg, 13 years ago

Owner: changed from everyone to Nicklas Nordborg
Status: newassigned

comment:2 by Nicklas Nordborg, 13 years ago

(In [6028]) References #1674: Define extension points for adding columns to table listings

Started to implement this feature. Using the sample list and software list as a test bed right now. It should support most of the features that are currently possible to do with built-in columns except that exporting is not yet supported at all.

The PropertyPathActionFactory is a test implementation that makes it possible to add columns for almost anything that can be expressed as a property path (see Metadata class). We'll obviously need something more complex for further testing. Maybe something should be added to the example code...

comment:3 by Nicklas Nordborg, 13 years ago

(In [6029]) References #1674: Define extension points for adding columns to table listings

Added support for exporting (to the sample and software list pages). It should support the regular case with a property path as well as the more complex case with a custom data loader (using the ListColumnAction.getExportValue()) and formatter. We need to implement some examples for testing this. See http://baseplugins.thep.lu.se/ticket/376

comment:4 by Nicklas Nordborg, 13 years ago

(In [6030]) References #1674: Define extension points for adding columns to table listings

Keep track of the class loader that is used for any given extension, since a factory (PropertyPathActionFactory) may need to load additional classes even if the main extension class is loaded by the default class loader.

Added a NiceFormatter since it could be useful for extensions (it is used by one of the example extensions (http://baseplugins.thep.lu.se/ticket/376).

Re-ordered certain method calls when creating loaders and formatters used for export.

Added support to users and raw bioassays list pages.

comment:5 by Nicklas Nordborg, 13 years ago

(In [6038]) References #1674: Define extension points for adding columns to table listings

Implemented for all list pages in the Biomaterial LIMS menu.

comment:6 by Nicklas Nordborg, 13 years ago

(In [6039]) References #1674: Define extension points for adding columns to table listings

Implemented for all list pages in the Array LIMS menu.

comment:7 by Nicklas Nordborg, 13 years ago

(In [6040]) References #1674: Define extension points for adding columns to table listings

Implemented for all list pages in the View menu.

comment:8 by Nicklas Nordborg, 13 years ago

(In [6045]) References #1674: Define extension points for adding columns to table listings

Implemented for all list pages in the Administrate menu.

comment:9 by Nicklas Nordborg, 13 years ago

Resolution: fixed
Status: assignedclosed

(In [6050]) Fixes #1674: Define extension points for adding columns to table listings

Documented the extension point.

Note: See TracTickets for help on using tickets.