Skip to content

Conversation

@brymut
Copy link
Contributor

@brymut brymut commented Nov 10, 2025

/claim #35898
Resolves #35898

Summary of key changes:

  1. Add search functionality to tree view
  2. Add backend functionality to delete directory
  3. Add context menu for directories with functionality to copy path & delete a directory
  4. Move Add/Upload file dropdown to right for parity with Github UI
  5. Add tree view to the edit/upload & patch UI
  6. Remove redundant repo name from Apply Patch breadcrumb UI

Detailed breakdown:

1. Add search functionality to tree view

Added search to tree view using existing searchfilterRepoFilesWeighted, with new modal to display the search results. User can navigate through search results using keyboard to scroll, select and escape the search on top of using mouse. No matches found notice when no results are found.

Screen.Recording.2025-11-11.at.09.51.16.mov

2. Add backend functionality to delete directory

Modified the DeleteFilePost endpoint to also allow for deletion of whole directories to support the "Delete directory" menu option added to the context menu.

3. Add context menu for directories with functionality to copy path & delete a directory

Added context menu for "Copy path", "Copy Permalink" & "Delete directory" supported by backend change listed above.

Screen.Recording.2025-11-11.at.10.10.41.mov

4. Move Add/Upload file dropdown to right for parity with Github UI

Minor change to move this option to the right since already existed.

Screenshot 2025-11-11 at 10 08 02

5. Add tree view to the edit/upload & patch UI

Screenshot 2025-11-13 at 10 32 54

@GiteaBot GiteaBot added the lgtm/need 2 This PR needs two approvals by maintainers to be considered for merging. label Nov 10, 2025
@github-actions github-actions bot added modifies/templates This PR modifies the template files modifies/frontend labels Nov 10, 2025
@brymut brymut changed the title Add Search, Add/Upload File, delete directory & "copy path" functionality to the repo's tree view UI Add Search, move Add/Upload File, delete directory & "copy path" functionality to the repo's tree view UI Nov 10, 2025
@brymut brymut force-pushed the feat-enhance-tree-view branch from 3452673 to 1cf0812 Compare November 10, 2025 09:58
@brymut brymut force-pushed the feat-enhance-tree-view branch 3 times, most recently from ca8791e to 457f17f Compare November 11, 2025 03:59
@github-actions github-actions bot added the modifies/go Pull requests that update Go code label Nov 11, 2025
@brymut brymut force-pushed the feat-enhance-tree-view branch 3 times, most recently from f169aa3 to 809a645 Compare November 11, 2025 07:15
@brymut brymut marked this pull request as ready for review November 11, 2025 07:20
@lunny
Copy link
Member

lunny commented Nov 11, 2025

  1. When creating a new file, it currently redirects to the classic “new file” page. Instead, it should open an inline editor similar to GitHub’s implementation, keeping the left tree view visible. The same behavior should apply to Upload Files and Apply Patch actions.
  2. There is no way to add a new file for the root directory in the tree view UI.

@lunny lunny added this to the 1.26.0 milestone Nov 11, 2025
@brymut
Copy link
Contributor Author

brymut commented Nov 12, 2025

2. There is no way to add a new file for the root directory in the tree view UI.

You can do so in the main repo page in the code tab, same as to how its done on Github. Since I'm not aware of a way to view the root directory except for in the main repo page on the code tab (same on Github). Or perhaps I'm not understanding what you mean.

@brymut brymut force-pushed the feat-enhance-tree-view branch from 809a645 to 0adcc74 Compare November 12, 2025 10:10
@brymut
Copy link
Contributor Author

brymut commented Nov 12, 2025

  1. When creating a new file, it currently redirects to the classic “new file” page. Instead, it should open an inline editor similar to GitHub’s implementation, keeping the left tree view visible. The same behavior should apply to Upload Files and Apply Patch actions.

Added
Screenshot 2025-11-12 at 13 07 08

@lunny
Copy link
Member

lunny commented Nov 12, 2025

  • It seems there is a bug that the icon to show/hide tree view will always be hidden.
image
  • And maybe the commit box should be move to up right corner like what github did after the tree view introduced to the editor page.

@brymut brymut force-pushed the feat-enhance-tree-view branch 6 times, most recently from 4540d07 to 57782c3 Compare November 13, 2025 11:04
@brymut
Copy link
Contributor Author

brymut commented Nov 13, 2025

  • It seems there is a bug that the icon to show/hide tree view will always be hidden.

Fixed

  • And maybe the commit box should be move to up right corner like what github did after the tree view introduced to the editor page.

Moved. Should be more like Github's UX now:

Screen.Recording.2025-11-13.at.14.04.46.mov

@lunny
Copy link
Member

lunny commented Nov 13, 2025

Great work!

  • It seems the Delete File UI needs some improvements? The close button in the top-right corner doesn’t seem to work either. Perhaps converting this into a popup dialog would provide a better experience than open in a new page.

  • The Apply Patch UI seems to need some improvements. There are two “Cancel” buttons and the repository name appears twice. I don’t think this issue is caused by this PR, but since it’s related, it would be better to address them together.

image
  • Creating a new file under the root folder is inconvenient because I have to return to the repository’s home page each time. I understand this behavior is inherited from GitHub, but it doesn’t seem like the best design. Could you also add buttons for Create File / Upload File / Apply Patch directly in the file view, so that new items can be created under the same folder as the currently viewed file?

@brymut brymut requested a review from wxiaoguang November 20, 2025 11:27
@wxiaoguang

This comment was marked as resolved.

@brymut
Copy link
Contributor Author

brymut commented Nov 20, 2025

I don't think the "file list" code should be in ViewFileTree, don't see any relation between them.

Sorry about that, I thought I had pushed my refactor of that. Updated.

@wxiaoguang

This comment was marked as resolved.

@brymut brymut force-pushed the feat-enhance-tree-view branch 4 times, most recently from 7d4a08c to 765fff3 Compare November 21, 2025 14:21
@brymut brymut force-pushed the feat-enhance-tree-view branch from 765fff3 to 140c8cf Compare November 21, 2025 14:24
@brymut
Copy link
Contributor Author

brymut commented Nov 21, 2025

Rebased and had a look again with fresh eyes today. Debounced the search input and fixed an issue with scrolling while searching that I noticed. I've had a look through the changed lines and unless I've developed a blindspot to something in this PR I'm happy to sign off on it as is @wxiaoguang.

@wxiaoguang
Copy link
Contributor

Thank you for the updates. I've been very busy lately so I am not sure when I can get time to do a full review. Meanwhile other maintainers can also review.

@brymut
Copy link
Contributor Author

brymut commented Nov 22, 2025

Thank you for the updates. I've been very busy lately so I am not sure when I can get time to do a full review. Meanwhile other maintainers can also review.

Thanks for your time on this. I appreciate it. I feel like we're pretty close here, maybe @silverwind?

@brymut
Copy link
Contributor Author

brymut commented Nov 28, 2025

Any chance you could help out with a review here since you've got good context on it @wxiaoguang? Since we've lost momentum here for a week now, I'd appreciate the help.

@wxiaoguang
Copy link
Contributor

wxiaoguang commented Nov 29, 2025

Any chance you could help out with a review here since you've got good context on it @wxiaoguang? Since we've lost momentum here for a week now, I'd appreciate the help.

Did a quick test, it works but it doesn't look good to me.

  1. Misalignments: some elements have different sizes and spaces and make the UI look not good
  2. When the left tree view is hidden, then no way to "go to file"
    • GitHub shows the "go to file" on the right if the left tree view is hidden.
    • Maybe it needs some methods to make the code maintainable if this would be done.
  3. The repo home's "go to file" button becomes inconsistent with the file list page's "go to file" input

And some of the code can be simplified to improve maintainability.

If I have time, I could help to make more changes, but at the moment I don't and am not able to promise a predictable time.


These concerns can also be considered as "nits", and I won't block if other maintainers approve and merge.

}

for _, e := range entries {
if !e.IsDir() && !e.IsSubModule() {
Copy link
Contributor

Choose a reason for hiding this comment

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

Why IsSubModule is skipped?

If submodule is not supported, either have a TODO comment, or fix the code to support it?

Copy link
Contributor Author

@brymut brymut Nov 29, 2025

Choose a reason for hiding this comment

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

I figured the dealing with .gitmodules entries would be very complex and would introduce a whole set of issues to deal with preventing leaving the repo in a broken state, especially given the scope of this PR. And I'll be honest I'm not sure I've got the knowledge to handle submodules on this project. I'll add a TODO.

@brymut
Copy link
Contributor Author

brymut commented Nov 29, 2025

  • Misalignments: some elements have different sizes and spaces and make the UI look not good

Could you point me to the elements? Only found the repo-file-actions-dropdown button may have odd padding.

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

Labels

🙋 Bounty claim lgtm/need 1 This PR needs approval from one additional maintainer to be merged. modifies/frontend modifies/go Pull requests that update Go code modifies/templates This PR modifies the template files modifies/translation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Feat Request: Add Search, move Add/Upload File, delete directory & "copy path" functionality to the repo's tree view UI

5 participants