Skip to content
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

Normalize layers/groups management in TOC #10247 #10609

Open
wants to merge 4 commits into
base: master
Choose a base branch
from

Conversation

rowheat02
Copy link
Contributor

@rowheat02 rowheat02 commented Oct 10, 2024

Description

fixes: #10247.
Some old maps and exports have groups in legacy format which shows some bugs like those mentioned in #10247.
Old formats can be converted to new standard formats with UI-wise invisible default group as a parent of all groups.

legacyGroups = [
  { id: '1', name: 'Group 1' },
 { id: DEFAULT_GROUP_ID }
 ];

newStandardFormat=[
      {
          id: <DEFAULT_GROUP_ID>,
         name: <DEFAULT_GROUP_ID>,
        nodes: [
             { id: '1', name: 'Group 1' },
             { id: 'DEFAULT_GROUP_ID.DEFAULT_GROUP_ID' } // Unique UUID generated
         ],
        expanded: true
    }
 ]
 

Please check if the PR fulfills these requirements

What kind of change does this PR introduce? (check one with "x", remove the others)

  • Bugfix
  • Feature
  • Code style update (formatting, local variables)
  • Refactoring (no functional changes, no api changes)
  • Build related changes
  • CI related changes
  • Other... Please describe:

Issue

What is the current behavior?

#10247
There are some interactivity bugs on TOC in old maps and exports.

What is the new behavior?

There are no interactivity bugs on TOC in old maps and exports.

Breaking change

Does this PR introduce a breaking change? (check one with "x", remove the other)

  • Yes, and I documented them in migration notes
  • No

Other useful information

@rowheat02
Copy link
Contributor Author

rowheat02 commented Oct 10, 2024

@tdipisa

@tdipisa tdipisa requested a review from allyoucanmap October 14, 2024 14:40
@tdipisa tdipisa added this to the 2024.02.01 milestone Oct 14, 2024
@tdipisa tdipisa added Internal enhancement BackportNeeded Commits provided for an issue need to be backported to the milestone's stable branch labels Oct 14, 2024
@tdipisa tdipisa modified the milestones: 2024.02.01, 2024.02.02 Nov 13, 2024
@tdipisa
Copy link
Member

tdipisa commented Nov 15, 2024

@allyoucanmap it seems @rowheat02 is waiting for your feedback to unblock and finalize this PR. Can you please have a look?

@tdipisa tdipisa modified the milestones: 2024.02.02, 2025.01.00 Dec 11, 2024
@rowheat02 rowheat02 marked this pull request as ready for review January 14, 2025 12:42
@tdipisa tdipisa removed the BackportNeeded Commits provided for an issue need to be backported to the milestone's stable branch label Jan 14, 2025
Copy link
Contributor

@allyoucanmap allyoucanmap left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This changes in this PR are technically making the presented cases in the issue work but it's not addressing this part:

As part of this issue is definitely requested to provide also the necessary clean up for completely removing the concept of "default group" to make also old maps consistent with new TOC behaviors.

The solution provided is adding a group prefix to the default group resulting in a new group id (Default.Default) that it making it works someway.
We should instead understand the following:

  • Why the default group has the sort handler blocked?
  • Why the sort/move action used by the TOC is preventing the default to be moved?
  • Why the sort/move action used by the TOC is preventing the layers to be placed in the root?
  • Is it possible to remove the concept of Default group and place nodes (groups and layers) inside the TOC root?

We need to take this issue to really understand the problem related to groups and layers in TOC and if needed also refactor logic and component.
I think we could accept this PR only once we answered the questions above and there isn't other alternatives.


Side note:
Usually group ids in mapstore are following this structure parentGroupId.groupId but it seems with the proposed changes we are adding the following case, where group01 and group02 don't have a the parentId group:

[
    {
        "id": "Default",
        "name": "Default",
        "nodes": [
            {
                "id": "Default.Default",
                ...
            },
            {
                "id": "group01",
                ...
            },
            {
                "id": "group02",
                ...
            }
        ]
    }
]

image

We need also to understand and investigate why is this still working

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Normalize layers/groups management in TOC
3 participants