Thanks to visit codestin.com
Credit goes to github.com

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. Move "Commit changes" button to above the editor and the commit form into a modal for parity with Github's UX.
  7. Move Delete file commit UI into a modal.
  8. Remove redundant "Cancel" and 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

6. Move "Commit changes" button to above the editor and the commit form into a modal for parity with Github's UX.

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

7. Move Delete file commit UI into a modal.

Screen.Recording.2025-11-15.at.12.57.06.mov

8. Remove redundant "Cancel" and repo name from Apply Patch breadcrumb UI

Screenshot 2025-11-15 at 13 00 36

@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 from 0adcc74 to 9266b9c Compare November 13, 2025 04:24
@brymut brymut force-pushed the feat-enhance-tree-view branch 2 times, most recently from db8fc5a to 3ec69bf Compare November 13, 2025 08:34
@brymut brymut force-pushed the feat-enhance-tree-view branch 2 times, most recently from 2b608e7 to 4540d07 Compare November 13, 2025 09:03
@brymut brymut force-pushed the feat-enhance-tree-view branch 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
Copy link
Contributor Author

brymut commented Nov 15, 2025

Ok, attempting the changes requested but concerned that PR is starting to go beyond scope.

@brymut
Copy link
Contributor Author

brymut commented Nov 15, 2025

  • 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.

Moved to popup modal

Screen.Recording.2025-11-15.at.12.57.06.mov
  • 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.
Screenshot 2025-11-15 at 13 00 36
  • 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?

Added

@brymut brymut force-pushed the feat-enhance-tree-view branch from 41005b4 to 72d9f96 Compare November 15, 2025 10:08
@lunny
Copy link
Member

lunny commented Nov 15, 2025

Ok, attempting the changes requested but concerned that PR is starting to go beyond scope.

Sorry, I didn’t fully consider how the commit model would look after the change—it does become a bit awkward. I also noticed that deleting a file opens a popup window, but deleting a directory still redirects to a separate page. Could we update the delete directory action to use the same popup window approach for consistency?

I think this should be the last feature request from me (though I still need to review the code).

@@ -0,0 +1,102 @@
import $ from 'jquery';
Copy link
Member

Choose a reason for hiding this comment

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

We use fomanticQuery instead of referencing jQuery directly. This helps prepare for removing jQuery in the future.

@wxiaoguang
Copy link
Contributor

wxiaoguang commented Nov 16, 2025

Sorry, I didn’t fully consider how the commit model would look after the change—it does become a bit awkward. I also noticed that deleting a file opens a popup window, but deleting a directory still redirects to a separate page. Could we update the delete directory action to use the same popup window approach for consistency?

No, it shouldn't use a modal unless you can make the code/logic exactly the same as that page. The "deleting modal" in this PR is also incomplete.

If you are not able to provide a feasible solution, just redirect all to the existing pages, but not keep adding unmaintainable "modals"

@brymut
Copy link
Contributor Author

brymut commented Nov 16, 2025

Getting conflicting feedback, should I proceed with the modals or not? Maybe the modals are proving to be problematic? @lunny

The "deleting modal" in this PR is also incomplete.

Can I get clarification on which part is incomplete. @wxiaoguang

@lunny
Copy link
Member

lunny commented Nov 16, 2025

Getting conflicting feedback, should I proceed with the modals or not? Maybe the modals are proving to be problematic? @lunny

The "deleting modal" in this PR is also incomplete.

Can I get clarification on which part is incomplete. @wxiaoguang

It appears that GitHub redirects to a dedicated page with a left-side tree view and a complete list of files that will be deleted. In that case, please disregard my earlier request to move it to a popup dialog.

@wxiaoguang
Copy link
Contributor

wxiaoguang commented Nov 16, 2025

Getting conflicting feedback, should I proceed with the modals or not? Maybe the modals are proving to be problematic? @lunny

You need to do your best to understand the problem and figure out what's the right thing to do, but not just follow the reviewer's suggestions that can be wrong.

The "deleting modal" in this PR is also incomplete.

Can I get clarification on which part is incomplete. @wxiaoguang

Many, you can read the code to see more details, for example: fork-on-edit (why the form uses "TargetFormAction" but not the current one?), commit-email-selector (why there is "CommitCandidateEmails" and how it works?), etc. Blindly copying-pasting existing code only causes problems.

@brymut
Copy link
Contributor Author

brymut commented Nov 16, 2025

Personally, I think switching to the modals for the commit form may have been an unnecessary change in this PR. They introduced complexity and I agree that the look is kind of awkward. Personally I think the existing approach was already a pretty solid solution. To switch to the modal approach needs more consideration both in design and implementation, which can be done in a separate issue.

If we can roll back on the modal approach and no longer add feature requests, I can clean up the code better and wind this PR up. What do you think @lunny ?

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

Labels

🙋 Bounty claim lgtm/need 2 This PR needs two approvals by maintainers to be considered for merging. 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

4 participants