Loading...
 

Plugin PivotTable

Introduced in Tiki 16.2

Use this wiki plugin to create dashboards with summaries of data in Tiki objects through the unified search index to produce the pivottable report of your choice. It started by working with tracker data, but other Tiki objects can be connected later with this plugin. Results for the variables of interest (tracker fields, as well as creation_date, modification_date and tracker_status of the items) are aggregated by some criteria selected by the user.

It reuses the JavaScript Pivot Table (aka Pivot Grid, Pivot Chart, Cross-Tab) implementation from nicolaskruchten with drag'n'drop (see the list of changes in each version)


Parameters

Introduced in Tiki 16.1. Required parameters are in bold.
Preferences required: wikiplugin_pivottable
Parameters Accepted Values Description Default Since
(body of plugin) Leave one space in the box below to allow easier editing of current values with the plugin popup helper later on
data text
separator: :
For example tracker:1 0
chartTitle text Override title when using Chart renderers. 16.3
menuLimit digits Pivottable menuLimit option override - number of entries to consider the menu list too big when filtering on a particular column or row. 16.2
inclusions text Filter values for fields in rows or columns. Contains JSON encoded object of arrays of strings.
xAxisLabel text Override label of horizontal axis when using Chart renderers. 16.3
yAxisLabel text Override label of vertical axis when using Chart renderers. 16.3
height word Height of pivot table. Units: px 400px
width word Width of pivot table. Units: % or px. 100%
aggregateDetails text
separator: :
When enabled, clicking a table cell will popup all items that were aggregated into that cell. Specify the name of the field or fields to use to display the details separated by colon. Enabled by default. To disable, set contents to an empty string. 16.2
aggregatorName Count| Count Unique Values| List Unique Values| Sum| Integer Sum| Average| Minimum| Maximum| Sum over Sum| 80% Upper Bound| 80% Lower Bound| Sum as Fraction of Total| Sum as Fraction of Rows| Sum as Fraction of Columns| Count as Fraction of Total| Count as Fraction of Rows| Count as Fraction of Columns Function to apply on the numeric values from the variables selected. Count
chartHoverBar y
n
Display the Chart hover bar or not. y 16.3
highlightGroup (blank)
y
n
Highlight items' values belonging to one of my groups in Charts. n 16.3
highlightMine (blank)
y
n
Highlight owned items' values in Charts. n 16.3
rendererName Table| Table Barchart| Heatmap| Row Heatmap| Col Heatmap| Line Chart| Bar Chart| Stacked Bar Chart| Area Chart| Scatter Chart| Treemap Display format of data Table
vals text
separator: :
Variable with numeric values or tracker field permNames, on which the formula from the aggregator is applied. It can be left empty if aggregator is related to Counts. Use permanentNames in case of tracker fields, separated by : in case of multiple fields function.
cols text
separator: :
Which field or fields to use as table columns. Leaving blank will use the first available field. Use permanentNames in case of tracker fields. Separated by colon (:) if more than one.
rows text
separator: :
Which field or fields to use as table rows. Leaving blank will remove grouping by table rows. Use permanentNames in case of tracker fields. Separated by colon (:) if more than one.



Notes on aggregateDetails:
  • The aggregateDetails accepts multiple field names or permNames separated by colon.
  • The aggregateDetails parameter is also enabled by default and can be disabled setting aggregateDetails to an empty string.
  • Each item has the associated object_link available by default and clickable in the popup where the aggregateDetails field data is shown.
    • It will work with other unified search index content entries (not only tracker items) but might be slow for large result sets.
    • It is only activated if aggregateDetails is not disabled. Therefore, there is a workaround to disable this feature for large sets of data (e.g. containing several or hundreds of thousands of items).

Basic Usage

Basic usage requires just to provide the data source (e.g. a tracker with id 1: "tracker:1"), and the rest will be taken as default values by the pivot table plugin, and you will be able to edit it through the PivotTable UI itself. That will allow you to display all field names of the tracker, and will let you drag and drop them in rows or columns of the pivot table editor.

That will cover most use cases. However, if your dataset is huge, or the tracker has many fields, and some of them carrying heavy data (long text fields, or big files/images attached to the tracker items in files tracker fields), you can use an advanced syntax to filter the number of items or reduce the amount of tracker fields exposed to the pivot table to work with, so that performance of the pivot table plugin is fast again. See below for "Advanced Usage"

Example 1

After installing the Bug_Tracker_16 profile on a brand new Tiki 16, you will get a new tracker with id 1 to hold the data of the bug reports/issue tickets. When you add a few dozen items, you can use some syntax like the one indicated below to produce some demo pivot tables table with default values as a starting point, to let you start reviewing the data as wiki-wiki (quick) as possible.

This code:
{pivottable data="tracker:1"}


Would produce with the data from that profile (at the time of this writing):
Click to expand
Click to expand


Once saved, you can click on any cell of the pivottable report, and you will be shown a popup with the information tracker items that produced the count for that cel, with a link to view the full record of each of the tracker items.

Click to expand
Click to expand


From there we can edit the Pivottable again through the PivotTable UI itself, and modify the variables to be used as row or column data, or add new variables in columns, change the type of table or chart produced, etc.

A table can even consider more than one value in a single dimension. The following example therefore uses both Status and Priority on the horizontal axis (meaning a column can have subcolumns):

Click to expand
Click to expand


Example 2

A default configuration for each parameter of the plugin can also be specified. For instance, the values considered in both dimensions can be specified, using the rows and cols parameters, as in the following example (which considers 2 values on the horizontal axis, as in the previous screenshot).

This code:
{PIVOTTABLE(data="tracker:1" width="100%" height="500px" rows="bug_tracker_severity" cols="bug_tracker_bug_status:bug_tracker_priority" rendererName="Heatmap" aggregatorName="Count as Fraction of Columns" vals="bug_tracker_priority")} {PIVOTTABLE}


Would produce with the data from that profile (at the time of this writing):

Click to expand
Click to expand


Example 3

You can also make some charts:
  • Line Chart
  • Bar Chart
  • Stacked Bar Chart
  • Area Chart
  • Scatter Chart

For instance...

This code:
{PIVOTTABLE(data="tracker:1"  width="400px" height="300px" rows="bug_tracker_severity" cols="bug_tracker_bug_status" rendererName="Stacked Bar Chart" aggregatorName="Count")}
{PIVOTTABLE}


Would produce:

Click to expand
Click to expand


Advanced Usage

If your dataset is huge (many thousands), or the tracker has many fields (many hundreds), and some of them carrying heavy data (long text fields, or big files/images attached to the tracker items in files tracker fields), you can use an advanced syntax to filter the number of items or reduce the amount of tracker fields exposed to the pivot table to work with, so that the good performance of the pivot table plugin is preserved.

You can use the filter or display commands (both from PluginList ) to indicate which items (filter) or tracker fields (display) you want to use, respectively, in the pivot table plugin.

See:

Add creation_date, modification_date and status

You can also indicate if you want the creation_date, modification_date and status if the tracker items to be displayed as optional variables to be used in the report.

{display name="creation_date" format="datetime"}
{display name="modification_date" format="datetime"}
{display name="tracker_status"}


Customize aggregation date values

You can also customize the date format of these dates to show only the date, not the time, for instance, And also:
  • only the day number of the month with %d , or
  • only the day number of the year with %z , or
  • only or the week number of the year with %W , or
  • only the month number with %m , or
  • only the year with %Y , etc
This way, you can get the aggregated values of interest for your report.

Example of code to display only the month number from these dates so that you can draw charts with counts per month, etc:
{display name="creation_date" format="date" dateFormat="%m"}
{display name="modification_date" format="date" dateFormat="%m"}


Full list of codes available here:
http://php.net/manual/en/function.date.php

Advanced Example 1


This code:
{PIVOTTABLE(data="tracker:4" rows="bug_tracker_submitted_by:bug_tracker_severity:" cols="bug_tracker_bug_status:bug_tracker_priority:" rendererName="Heatmap" aggregatorName="Count as Fraction of Total")}
   {display name="tracker_field_bug_tracker_submitted_by" default=""}
   {display name="tracker_field_bug_tracker_severity" default=""}
   {display name="tracker_field_bug_tracker_bug_status" default=""}
   {display name="tracker_field_bug_tracker_priority" default=""}
   {display name="tracker_field_bug_tracker_version" default=""}
{PIVOTTABLE}


Would produce with the data from that profile (at the time of this writing):

Click to expand
Click to expand


And once you click at the Edit Pivot Table button, you would see the controls to edit variable selection, but notice that you have less amount of variables to choose from than before; only the ones you have selected in the display commands of the plugin body above:

Click to expand
Click to expand


Advanced example 2

This code:
{PIVOTTABLE(data="tracker:4" rows="bug_tracker_submitted_by:bug_tracker_severity:" cols="bug_tracker_bug_status:bug_tracker_priority:" rendererName="Heatmap" aggregatorName="Count as Fraction of Total")}

   {filter field="tracker_field_bug_tracker_bug_status" content="new"}

   {display name="tracker_field_bug_tracker_submitted_by" default=""}
   {display name="tracker_field_bug_tracker_severity" default=""}
   {display name="tracker_field_bug_tracker_bug_status" default=""}
   {display name="tracker_field_bug_tracker_priority" default=""}
   {display name="tracker_field_bug_tracker_version" default=""}
{PIVOTTABLE}


Would produce the same as before, but restricting the data set to only those items tagged as new bugs (bug status is "new"):

Click to expand
Click to expand


Again, if you edit the pivot table, you will see that also have the restricted the number of fields, as well as the data points, that comply with your filtering criteria:

Click to expand
Click to expand



Advanced example 3

Since Tiki 16.2, any plugin using unified index search formatter and wikibuilder (aka filter, output, display, format, etc. wiki syntax, such as PluginPivottable ) now accepts {filter field=... editable=...} syntax to allow user enter a search value instead of hard-coding it. This means a trackerfilter-like functionality for unified index-based plugins.

You can see this feature in action if you apply profile Bug_Tracker_16

Therefore, this code:
{PIVOTTABLE(data="tracker:4" rows="bug_tracker_severity" cols="bug_tracker_bug_status" rendererName="Heatmap" aggregatorName="Count")}
  {filter field="tracker_field_bug_tracker_priority" editable="content"}
  {filter field="tracker_field_bug_tracker_assignee" editable="content"}
  {filter field="tracker_field_bug_tracker_summary" editable="content"}
{PIVOTTABLE}


Would produce the expected pivottable report, with some fields on top to allow the user to filter results before re-drawing the table or chart:

Click to expand
Click to expand



Aliases

Plugin Pivot Table | Plugin PivotTable | PluginPivot Table | Pivot Table | PivotTable | Plugin Pivot Tables | Plugin PivotTables | PluginPivot Tables | Pivot Tables | PivotTables | Plugin Data Pilot | Plugin DataPilot | PluginData Pilot | Data Pilot | Data Pilot |

doc.tiki.org


Bootstrap

AdminGuide

UserGuide

Keywords

Keywords serve as "hubs" for navigation within the Tiki documentation. They correspond to development keywords (bug reports and feature requests):

Accessibility (WAI and 508)
Accounting (7.x)
Articles and Submissions
Backlinks
Banners
Batch (6.x)
BigBlueButton audio/video/chat/screensharing (5.x)
Blog
Bookmark
Browser Compatibility
Link Cache
Calendar
Category
Chat
Clean URLs
Comments
Communication Center
Compression (gzip)
Contacts (Address Book)
Contact us
Content Templates
Contribution (2.x)
Cookie
Copyright
Credit (6.x)
Custom Home and Group Home Page
Date and Time
Debugger Console
Directory of hyperlinks
Documentation link from Tiki to doc.tiki.org (Help System)
Docs 8.x
Draw 7.x
Dynamic Content
Dynamic Variable
External Authentication
FAQ
Featured links
File Gallery
Forum
Friendship Network (Community)
Gmap Google maps
Groups
Hotword
HTML Page
i18n (Multilingual, l10n, Babelfish)
Image Gallery
Import-Export
Install
Integrator
Interoperability
Inter-User Messages
InterTiki
Kaltura video management (4.x)
Karma
Live Support
Login
Logs (system & action)
Look and Feel
Lost edit protection
Mail-in
Map with Mapserver
Menu
Meta Tags
Mobile Tiki and Voice Tiki
Mods
Module
MultiTiki
MyTiki
Newsletter
Notepad
Payment
Performance Speed / Load
Permissions
Platform independence (Linux-Apache, Windows/IIS, Mac, BSD)
Polls
Profiles
Profile Manager
Report
Toolbar
Quiz
Rating
Feeds
Score
Search engine optimization
Search
Search and Replace
Security
Semantic links (3.x)
Shadowbox
Shadow Layers
Share
Shopping cart
Shoutbox
Slideshow
Smiley
Social Networks
Spam protection (Anti-bot CATPCHA)
Spellcheck
Spreadsheet
Stats
Surveys
Tags (2.x)
Task
Tell a Friend, alert + Social Bookmarking
TikiTests (2.x)
Theme CSS & Smarty
Trackers
Transitions (5.x)
TRIM
User Administration including registration and banning
User Files
User Menu
Watch
WebHelp
WebDAV (5.x)
Webmail
Web Services
Wiki 3D
Wiki History, page rename, etc
Wiki Page Staging and Approval (2.x)
Wiki Plugin extends basic syntax
Wiki Syntax
Wiki structure (book and table of content)
Workspace
WSOD
WYSIWYCA
WYSIWYG (2.x)
XMLRPC


Tiki Newsletter

Delivered fresh to your email inbox!
Newsletter subscribe icon
Don't miss major announcements and other news!
Contribute to Tiki