New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Flattening Tables via API and UI #3073
Comments
(In [6124]) refs #3073 data table flattener and test cases |
The previous commit introduces a base class for manipulating data tables. The idea is that the label filter uses it as a base as well. Please review. |
(In [6125]) refs #3073 svn properties for previous commit |
(In [6126]) refs #3073 proper class name for tests |
There's a number of things that the UI mechanism should provide.
How about a dialog to configure the way the table should be displayed? We could have some explanation of the different options there to make it easier than more icons at the bottom of the table. Also, the selected behavior from the dialog could influence the way the export is rendered. So most of the stuff we discussed about an export dialog would be valid here as well. Here' a very rough sketch of what I have in mind:
What do you think? I know this is not the way we usually do things but adding more icons will become confusing at some point. With this dialog, we can easily add more options in the future. Or is there a more simple way for adding the functionality we need? |
Code review:
|
What would the difference be exactly when this is enabled or disabled?
For this, we could for example name each combination, and put a screenshot of what the data will look like when this is ticked. I saw a very good example of such UI in Songbird software. It shows you screenshot of the directory/file organization based on the automatic filename pattern you choose.
|
For what including inner nodes means, see #2714 In your review, what css code are you talking about? So should we add a dialog? I would suggest to make it appear between the table and the icons when you click the (leftmost) table icon. Filters and what I called Manipulators are different (btw: the label filter is a manipulator as well, I want to refactor it into the new directory):
Are you sure we should combine those two things? IMO, only loading subtables from different places makes them different enough to keep them separate. The alternative would be to force expanded=1 and use them in API_DataTableGenericFilter. Then they would work like the other filters. But that's very wasteful for the label filter becuase at the moment, it only loads the subtables from the archive it really needs. That makes a huge difference on reports like the page urls report. |
Replying to EZdesign:
Thanks. we have to change the name... How about "keepParents" or "keepExpanded" ?
I meant, it would be nice to use this new code in the CSV exporter which does some of the same logic.
I have one idea among others:
It's just an idea, not sure how to integrate this easily yet discreetly as it will not be used a lot and cannot add a new icon visible all the time?
agreed, rather than popover..
Thanks. Can you please write this as a comment in the manipulator?
Can you please elaborate on this problem? Cheers |
(In [6159]) refs #3073 flatten table UI, option to include aggregate rows (this option will replace includeInnerNodes in the CSV renderer) |
I thought long and hard about how we could add these new options to the footer that already is pretty packed. So I added a dialog similar to the selection of how many rows you want to display. I put exclude low population and options for flattening in there. It can easily be extended in the future. I renamed includeInnerNodes to includeAggregateRows (since you suggested to pick a different name). Is that more clear? When the option is selected, the labels of the aggregate rows are suffixed with [aggregate] to make it clear. The option is only there in the UI if the report is flat. Matt, you mentioned two kinds of flattening in an email to me. If I understood what you meant correctly, both are implemented now. Please check. |
UX Review:
|
Yes thanks. However there are some "InnerNodes" left in code ini many places can you please change everywhere for consitency?
|
(In [6162]) Refs #3073 New icon more discreet |
One more UX suggestion:
Thoughts? |
Replying to matt:
I did it on click because to number of rows selection opens on click too. They look similar and are located next to eachother. Thus, they should work in a similar fashion. So do we do both on hover or both on click? The problem with hover is that the number of rows selection is pretty narrow so it would be easy to mouseout on accident.
I'm sure we will come up with new things ;-) Replying to matt:
I don't understand. Can you clarify? Do you mean row evolution? What is special about the custom variables in this context? Replying to matt:
Maybe we could show the modified state of the table on hover over the icon. So you'd have a highlighted icon on the bottom of the table. You'd hover over it and the tooltip would show "Report is flat. Aggregate rows are excluded". On click, the menu would open and give you the options. This way, you could quickly see what is going on with the table on hover. |
Replying to matt:
Are you sure this is an improvement? I don't think the faded style fits well with the other icons. |
(In [6181]) refs #2714, refs #3073
|
When you flatten the websites report and then display it as a bar chart, you get weird labels like |
Feedback on new commit:
I see some very useful use case where you could see the evolution over time of a particular custom variable name-value pair... very meaningful & powerful that would be!
My thoughts are that:
Im definitely more keen for a one fit all approach: show on hover the menu that shows both the current status and links to change status ie.
Maybe you can try it and if you don't like it we can all try it and discuss it. I think it will make the feature more accessible and generally better :)
I'm not entirely convinced indeed... but I prefer it than the previous one.
However we should keep open mind as there might be better solution ? thoughts?
I thought initially about using this icon which would be consistent with the Pages report: http://demo.piwik.org/themes/default/images/minus.png ? I think it would look nice and easier to understand. Displaying in italic is definitely an improvement!
I took a quick 5minutes look and couldn't find the cause. I'll definitely check before the release if you haven't found the bug then.
|
Replying to matt:
Row evoution does work on custom variable name-value pairs. Just open the subtable and click the icon. Using it on flat tables does not add any functionality. It's just orders of magnitue slower. Also, it doesn't work without further code modifications. |
Regarding the icon, take a look at this: http://www.iconfinder.com/search/?q=iconset%3Asilk2+cog We could show the first one (maybe faded out a little) by default. On hover, the menu opens and it's shown opaquely. When low population is excluded or the report is flat, we can show one of the other icons, maybe the one with the small yellow (!) sign? |
(In [6182]) refs #3073
|
(In [6183]) refs #3073
|
(In [6184]) refs #3073 svn properties for new file |
(In [6185]) refs #3073: extended test suite FlattenReports |
KABOOM! it looks beautiful!!
That makes sense. Perfect as it is.
First one looks good (agreed on fading out as it's too dark). for the "enabled state", the (!) wouldn't work as it triggers a "warning" feeling. I would be more inclined to have a "highlight" effect (for example yellow hallow around the icon, maybe needs a new icon image) that shows that something is enabled, but should not distract the user, but I'm not sure what would work nice... worst case scenario we could use: http://www.iconfinder.com/icondetails/9568/22/cog_face_female_gearhead_icon Feedback:
|
(In [6191]) refs #3073 new icon, highlighted icon when the configuration differs from default, showing (default) in options |
(In [6192]) refs #3073 removing left over lang string |
(In [6194]) refs #3073: cross-browser ie789, safari, chrome, firefox |
My to do list for this feature is empty now. Are there any more suggestions? If not, we can close the ticket. |
Well done, Looks good to me :) |
(In [6242]) refs #3073 save new options in dashboard, so that they are restored |
Small bug noticed: the cog icon should appear on the graph, since the graph plotting flattened custom variables is very useful in some cases, but better have a way to disable the flattening. |
Fixed in [6424] |
Provide a mechanism to make nested tables into a single flat table. This will allow users to compare (i.e. sort) rows from different data tables that make up a nested report.
flat=1
expanded=1
is set. Can we reuse the flattener for the CSV export?The text was updated successfully, but these errors were encountered: