Opened 17 months ago

Closed 16 months ago

Last modified 16 months ago

#3582 closed Bug (fixed)

hideColumns/showColumns not working in Metadata API

Reported by: tsteur Owned by: capedfuzz
Priority: major Milestone: 1.10 - Piwik 1.10
Component: Core Keywords:
Cc: Sensitive: no

Description

Hi,

I found those "hideColumns/showColumns" parameters in API documentation. As I do always display only one value in Piwik Mobile App, this could be an interesting way to reduce the amount of transferred data a lot.

When using showColumns + Metadata.getProcessedReport I get a division by zero.

URL:
http://demo.piwik.org/index.php?idSite=25&date=today&hideMetricsDoc=1&filter_sort_column=nb_visits&hideColumns=nb_visits&apiModule=VisitTime&apiAction=getVisitInformationPerServerTime&period=year&filter_limit=30&module=API&format=json&method=API.getProcessedReport&language=en&

Answer:

Warning: Division by zero in /home/piwik/www/demo.piwik.org/core/DataTable/Filter/AddColumnsProcessedMetrics.php on line 59 

Backtrace -->

#0 Piwik_ErrorHandler(...) called at [/home/piwik/www/demo.piwik.org/core/DataTable/Filter/AddColumnsProcessedMetrics.php:59]
#1 Piwik_DataTable_Filter_AddColumnsProcessedMetrics->filter(...) called at [/home/piwik/www/demo.piwik.org/core/DataTable.php:388]
#2 Piwik_DataTable->filter(...) called at [/home/piwik/www/demo.piwik.org/plugins/API/API.php:807]
#3 Piwik_API_API->handleTableReport(...) called at [/home/piwik/www/demo.piwik.org/plugins/API/API.php:723]
#4 Piwik_API_API->getProcessedReport(...) called at [:]
#5 call_user_func_array(...) called at [/home/piwik/www/demo.piwik.org/core/API/Proxy.php:190]
#6 Piwik_API_Proxy->call(...) called at [/home/piwik/www/demo.piwik.org/core/API/Request.php:128]
#7 Piwik_API_Request->process(...) called at [/home/piwik/www/demo.piwik.org/plugins/API/Controller.php:27]
#8 Piwik_API_Controller->index(...) called at [:]
#9 call_user_func_array(...) called at [/home/piwik/www/demo.piwik.org/core/FrontController.php:138]
#10 Piwik_FrontController->dispatch(...) called at [/home/piwik/www/demo.piwik.org/index.php:53]

Am I doing something wrong? Please login when calling this method.

"showColumns" doesn't crash but seems to be simply not working. If I unterstand it right, the report below should contain only "nb_visits" column.
http://demo.piwik.org/index.php?idSite=25&date=today&hideMetricsDoc=1&filter_sort_column=nb_visits&showColumns=nb_visits&apiModule=VisitTime&apiAction=getVisitInformationPerServerTime&period=year&filter_limit=30&module=API&format=json&method=API.getProcessedReport&language=en&

When using "showColumns" on reports like VisitsSummary.get I get another error:

Fatal error: Call to a member function getRows() on a non-object in /home/piwik/www/demo.piwik.org/plugins/API/API.php on line 920

http://demo.piwik.org/index.php?idSite=25&date=today&hideMetricsDoc=1&filter_sort_column=nb_visits&showColumns=nb_visits&apiModule=VisitsSummary&apiAction=get&period=year&filter_limit=30&module=API&format=json&method=API.getProcessedReport&language=en

Please also give feedback since which version those parameters are available.

Change History (9)

comment:1 Changed 17 months ago by matt (mattab)

  • Owner set to capedfuzz

Thanks for the report. Indeed it would help. Also this could help with SVG Maps which uses metadata API and only need a subset of columns.

hideColumns/showColumns are available since Piwik 1.8.4

Last edited 17 months ago by matt (previous) (diff)

comment:2 Changed 17 months ago by matt (mattab)

  • Summary changed from hideColumns/showColumns not working in API? to hideColumns/showColumns not working in Metadata API

comment:3 Changed 16 months ago by capedfuzz (diosmosis)

Hi @tsteur, if you want to show only one or more columns and hide the rest you'd use showColumns=column1,column2. If you wanted to hide one or more columns you'd use hideColumns=column1,column2. The two latter URLs are correct, but their output isn't. I'll look into what's causing the bug(s).

comment:4 Changed 16 months ago by capedfuzz (diosmosis)

  • Resolution set to fixed
  • Status changed from new to closed

(In [7696]) Fixes #3582, fix bug w/ showColumns/hideColumns params where processed metrics that shouldn't have shown in reports were shown.

comment:5 Changed 16 months ago by capedfuzz (diosmosis)

@tsteur I fixed the problem w/ the first two URLs. There's no problem for me w/ the third one (can't reproduce). Let me know if there are any lingering issues.

comment:6 Changed 16 months ago by matt (mattab)

  • Resolution fixed deleted
  • Status changed from closed to reopened

Looks good, just one feedback:

  • it should also remove the columns from others keys where they can appear eg. <metricsDocumentation>

comment:7 Changed 16 months ago by capedfuzz (diosmosis)

  • Resolution set to fixed
  • Status changed from reopened to closed

(In [7697]) Fixes #3582, apply hide/show metrics to metrics docs & metrics in processed reports.

comment:8 Changed 16 months ago by capedfuzz (diosmosis)

(In [7698]) Refs #3582, hide processed metrics w/ showColumns/hideColumns.

comment:9 Changed 16 months ago by capedfuzz (diosmosis)

(In [7699]) Refs #3582, fix bug in last commit.

Note: See TracTickets for help on using tickets.