[GH-ISSUE #3] Implement the Source Tree v1: Basic layout + Domain Folder #3

Open
opened 2026-03-03 19:48:09 +03:00 by kerem · 1 comment
Owner

Originally created by @NghiaTranUIT on GitHub (Jun 29, 2022).
Original GitHub issue: https://github.com/ProxymanApp/proxyman-windows-linux/issues/3

Originally assigned to: @kics223w1 on GitHub.

Description

We should implement the Source Tree v1 panel like Proxyman for macOS. This epic feature will be split into some sub-tickets.

⚠️ Before working on this ticket, please book @NghiaTranUIT a video call for better explanation 👍

Acceptance Criteria

  • Setup the Source Tree Panel by using the Blueprint Tree
  • Implement the All Group
  • Implement the Domains Folder
  • Display a new Domain if it's the first time the traffic goes through the Proxyman app
  • Show the subpath of the domain as child nodes
  • When selecting the domain node -> Display all traffic of this domain on the main table view
  • When selecting the child node -> Display traffic of this sub-domain
  • Domain Nodes are not persisted. They will reset in the next launch.
  • New domain will be appended to the end of the list
  • Show the number of domain
Screen Shot 2022-11-14 at 16 35 35
Originally created by @NghiaTranUIT on GitHub (Jun 29, 2022). Original GitHub issue: https://github.com/ProxymanApp/proxyman-windows-linux/issues/3 Originally assigned to: @kics223w1 on GitHub. ## Description We should implement the Source Tree v1 panel like Proxyman for macOS. This epic feature will be split into some sub-tickets. ⚠️ Before working on this ticket, please book @NghiaTranUIT a video call for better explanation 👍 ## Acceptance Criteria - Setup the Source Tree Panel by using the [Blueprint Tree](https://blueprintjs.com/docs/#core/components/tree) - Implement the `All` Group - Implement the `Domains` Folder - Display a new Domain if it's the first time the traffic goes through the Proxyman app - Show the subpath of the domain as child nodes - When selecting the domain node -> Display all traffic of this domain on the main table view - When selecting the child node -> Display traffic of this sub-domain - Domain Nodes are not persisted. They will reset in the next launch. - New domain will be appended to the end of the list - Show the number of domain <img width="225" alt="Screen Shot 2022-11-14 at 16 35 35" src="https://user-images.githubusercontent.com/5878421/201625763-131d0a97-aa42-41ca-a53c-cec73e61368b.png">
Author
Owner

@NghiaTranUIT commented on GitHub (Nov 14, 2022):

Sample class structure

SourceList class

  • Represent the entire Left Panel
  • Has a list of groups.
  • In this ticket, when the source list is initialized, it will contain the All group.

Group class

  • Represent All, Favorite, Pin Group (in the future, we can have Remote Group, Atlantis Group) -> Define as an Enum.
  • A Group class has a list of Folder

Folder class

  • Present a New Folder, App Folder, Domain Folder (Pinned and Saved folder for later) -> Define as an Enum.
  • has a list of TreeNode

What happens if there is a new flow

  1. Append to the source list
  2. Source List will add to all group
  3. For Each group, add to all subfolders
  4. For the folder: If it's a Domain Folder -> Get the TreeNode which has a host -> If it's not existed -> Created
  5. Add the flow to the TreeNode
  6. TreeNode will breakdown the URL into each paths and recursively create child nodes for each path (See the macOS for reference)
<!-- gh-comment-id:1313365070 --> @NghiaTranUIT commented on GitHub (Nov 14, 2022): ### Sample class structure #### SourceList class - Represent the entire Left Panel - Has a list of groups. - In this ticket, when the source list is initialized, it will contain the `All` group. #### Group class - Represent All, Favorite, Pin Group (in the future, we can have Remote Group, Atlantis Group) -> Define as an Enum. - A Group class has a list of Folder ### Folder class - Present a New Folder, App Folder, Domain Folder (Pinned and Saved folder for later) -> Define as an Enum. - has a list of TreeNode ### What happens if there is a new flow 1. Append to the source list 2. Source List will add to all group 3. For Each group, add to all subfolders 4. For the folder: If it's a Domain Folder -> Get the TreeNode which has a host -> If it's not existed -> Created 5. Add the flow to the TreeNode 6. TreeNode will breakdown the URL into each paths and recursively create child nodes for each path (See the macOS for reference)
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/proxyman-windows-linux#3
No description provided.