Skip to content

Row Evolution shows wrong data when directory and file with identical names exist at same level #4363

Description

@RMastop

Problem exists in the Actions -> Page titles section of Piwik Dashboard.

The customer has a site where a visit to /m/verbind-mobiel has the same result as /m/verbind-mobiel/ (remark the last /)
When we select row evaluation on the /m/verbind-mobiel row, we get the results of the /m/verbind-mobiel/ row.

Is there a way to fix this error.

Activity

  1. RMastop commented on Dec 6, 2013

    @RMastop
    ContributorAuthor

    Attachment:
    pageTitles.jpg

  2. RMastop commented on Dec 6, 2013

    @RMastop
    ContributorAuthor

    Attachment:
    RowEvaluation.jpg

  3. mattab commented on Dec 8, 2013

    @mattab
    Member

    Do you also experience the problem with the latest Piwik 2.0 beta? I remember fixing a problem similar to this so please try the latest beta. If you still have the bug we will definitely like to fix it.

  4. RMastop commented on Dec 9, 2013

    @RMastop
    ContributorAuthor

    I can confirm that the problem exists in piwik 2.0-b10

  5. RMastop commented on Dec 9, 2013

    @RMastop
    ContributorAuthor

    Attachment: row evaluation in piwik 2.0-b10
    rowevaluation-in-piwik2.0-b10 .png

  6. mattab commented on Dec 9, 2013

    @mattab
    Member

    Also, the labels should be m/docs instead of m - docs (using slash separator for URL paths, instead of -)

    There has been a regression somewhere along the way, thanks for the report!

  7. diosmosis commented on Dec 10, 2013

    @diosmosis
    Member

    In 346ef97: Refs #4363 display correct row evolution title for actions URL reports.

  8. diosmosis commented on Dec 10, 2013

    @diosmosis
    Member

    @RMastop I tried to reproduce the error, but couldn't. The data was correct for each row evolution popup. Can you check again? The third screenshot you posted (the one for piwik 2.0-b10) looks correct as well.

    If there is still an error, can you post the 'popover' query parameter (the part of the url that's like popover=...) for each row evolution popup?

  9. RMastop commented on Dec 10, 2013

    @RMastop
    ContributorAuthor

    Hi capedfuzz,

    I will explain a bit better. With some more screenshots.

    I open the Page title and click the row pagetitel with the value 7 behind it (the row with the page value)

    The result I get is the value of the row with the value 2 (the row with the directory value)

    clicking the directory row results in the following URL variable:
    popover=RowAction$3ARowEvolution$3AActions.getPageTitles$3A0$3Am$20$3E$20pagetitel

    Clicking the page row results in the following URL variable:
    popover=RowAction$3ARowEvolution$3AActions.getPageTitles$3A0$3Am$20$3E$20pagetitel

    the value for both calls is the same, when the page title path is separated by '/' you could tell the difference between a file and a directory, since the directory will end with a /

  10. RMastop commented on Dec 10, 2013

    @RMastop
    ContributorAuthor
  11. RMastop commented on Dec 10, 2013

    @RMastop
    ContributorAuthor
  12. RMastop commented on Jan 2, 2014

    @RMastop
    ContributorAuthor

    Piwik 2.0.3-b3 still shows the same issue

  13. mattab commented on Feb 6, 2014

    @mattab
    Member

    Removing owner from tickets. from now on, I suggest we assign tickets to ourselves for cases when we we plan to actively work on them in the coming days/weeks. let's discuss if needed during our team call.

  14. diosmosis commented on Jun 27, 2014

    @diosmosis
    Member

    In 37c2d8d: Refs #4363, add workaround to fix bug where leaf rows of page titles reports were not accessible via RowEvolution.

  15. diosmosis commented on Jun 27, 2014

    @diosmosis
    Member

    Fixed for now, problem is as follows:

    In reports, branch + terminal rows for page title reports are differentiated by a ' ' (space) prefix. This space cannot be placed w/i a row evolution 'label' parameter since it will be trimmed away, thus there is no way to differentiate between branch & terminal rows in a row evolution query. The 'correct' fix would be to introduce a difference that can be specified in the 'label' query parameter while still maintaining backwards compatibility. Such a fix would be complicated so waiting to confer for now.

  16. mattab commented on Jun 30, 2014

    @mattab
    Member

    there is no way to differentiate between branch & terminal rows in a row evolution query

    Alternatively of using the appended '+', maybe adding a new parameter to the request that indicates whether the label is a branch or a leaf would be a better solution?

  17. diosmosis commented on Jun 30, 2014

    @diosmosis
    Member

    Anything that differentiates between row types should be in the row evolution query itself since selecting the right row is the sole purpose of the 'label' query parameter. So adding a query parameter should be considered just as temporary as the committed solution. I considered using a query parameter but discarded the idea for the following reasons:

    • A query parameter looks official and could be used by others and could be considered final, despite the fact that it is not a true solution.
    • A new query parameter means detecting whether a row is terminal or not in the JS and then manipulating one or more AJAX requests, which is far more complicated than the committed solution.
    • An appended '+' will urldecode to a space which will be trimmed away which makes the committed solution very non-intrusive and easier to remove.

    I think the best solution is to add a new symbol to row evolution queries that differentiates. For URL tables, the '/' is effectively used (since 'dir' would be a dir and '/dir' would be a file). Since labels are stored in the database as '/...' for URLs, we can't use '/', but we can use something like '!' or '$' or something else. So, 'm > !verbind-mobiel' would select a terminal as would 'dir > sub > !/page' & 'dir > sub > /page'.

  18. mattab commented on Jul 1, 2014

    @mattab
    Member

    Sounds good, I'm closing ticket as the bug is fixed, but feel free to append your commits using eg. ! character.

  19. diosmosis commented on Jul 4, 2014

    @diosmosis
    Member

    In bcf5595: Fixes #5411, refs #4363 use '%20' to differentiate between terminal + leaf rows in row evolution JS instead of '+' since JS urlDecodeComponent does not decode + chars.

  20. added this to the milestone on Jul 8, 2014
  21. added 2 commits that reference this issue on Jul 9, 2014
  22. added a commit that references this issue on Sep 23, 2014
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    BugFor errors / faults / flaws / inconsistencies etc.MajorIndicates the severity or impact or benefit of an issue is much higher than normal but not critical.

    Type

    No type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions