Custom tabs for projects in web ui #470

Open
opened 2025-11-02 03:24:37 -06:00 by GiteaMirror · 18 comments
Owner

Originally created by @pgaskin on GitHub (Mar 10, 2017).

It would be nice to be able to add custom tabs to the web ui, because then people can link to important places and have it fit in with the rest of the ui. There should be an option to have it be an iframe (for integration), or a standard link.

Originally created by @pgaskin on GitHub (Mar 10, 2017). It would be nice to be able to add custom tabs to the web ui, because then people can link to important places and have it fit in with the rest of the ui. There should be an option to have it be an iframe (for integration), or a standard link.
GiteaMirror added the type/proposaltype/featureissue/confirmed labels 2025-11-02 03:24:37 -06:00
Author
Owner

@lunny commented on GitHub (Mar 10, 2017):

It should be not very difficult to implement I think.

@lunny commented on GitHub (Mar 10, 2017): It should be not very difficult to implement I think.
Author
Owner

@pgaskin commented on GitHub (Mar 10, 2017):

@lunny Where would the data be stored? I am not familiar with that part of gitea yet,

@pgaskin commented on GitHub (Mar 10, 2017): @lunny Where would the data be stored? I am not familiar with that part of gitea yet,
Author
Owner

@Fastidious commented on GitHub (Mar 19, 2017):

Did someone wrote iframe? Dear lord! So, @geek1011, you are asking that Gitea becomes like WordPress, a bookmark manager, or a Portal, right? While you are at it, may as well add a bulletin board, chats, blogs, etc. 😝 .

I give this one a 👎 .

@Fastidious commented on GitHub (Mar 19, 2017): Did someone wrote `iframe`? Dear lord! So, @geek1011, you are asking that Gitea becomes like WordPress, a bookmark manager, or a Portal, right? While you are at it, may as well add a bulletin board, chats, blogs, etc. 😝 </sarcasm>. I give this one a 👎 .
Author
Owner

@lunny commented on GitHub (Mar 19, 2017):

I think we need a plugin system. a plugin could setup a tab on the repository and user could chose repository should use which tabs. Code, Issues, Wiki and etc. could be as basic tabs.

@lunny commented on GitHub (Mar 19, 2017): I think we need a plugin system. a plugin could setup a tab on the repository and user could chose repository should use which tabs. `Code`, `Issues`, `Wiki` and etc. could be as basic tabs.
Author
Owner

@zhv9 commented on GitHub (Oct 14, 2017):

I think you can try this:
https://docs.gitea.io/en-us/customizing-gitea/

@zhv9 commented on GitHub (Oct 14, 2017): I think you can try this: https://docs.gitea.io/en-us/customizing-gitea/
Author
Owner

@lunny commented on GitHub (Oct 15, 2017):

@zhv9 That's not the same thing.

@lunny commented on GitHub (Oct 15, 2017): @zhv9 That's not the same thing.
Author
Owner

@lunny commented on GitHub (Oct 15, 2017):

Currently, if a repo is in an organization, you could define which Unit you want and you also could give it to some team. maybe this is what's you want? @geek1011

@lunny commented on GitHub (Oct 15, 2017): Currently, if a repo is in an organization, you could define which `Unit` you want and you also could give it to some team. maybe this is what's you want? @geek1011
Author
Owner

@Morlinest commented on GitHub (Oct 15, 2017):

@lunny I think he wants to add new tab with custom name (same as code, issues, pr, ...) as bookmark to other page or to be able to load that page to iframe inside that tab. So when you click on tab, it will show you page from from another url (maybe tables, graphs, map, ...).

@Morlinest commented on GitHub (Oct 15, 2017): @lunny I think he wants to add new tab with custom name (same as code, issues, pr, ...) as bookmark to other page or to be able to load that page to iframe inside that tab. So when you click on tab, it will show you page from from another url (maybe tables, graphs, map, ...).
Author
Owner

@bkcsoft commented on GitHub (Oct 15, 2017):

But why? That is literaly what the Wiki is for... 😒

@bkcsoft commented on GitHub (Oct 15, 2017): But why? That is literaly what the Wiki is for... 😒
Author
Owner

@OmarAssadi commented on GitHub (Oct 19, 2017):

Wouldn't mind having the ability to link to page (e.g., adding a forum tab or something like that to a project). But, personally, I wouldn't want an iframe option.

@OmarAssadi commented on GitHub (Oct 19, 2017): Wouldn't mind having the ability to link to page (e.g., adding a forum tab or something like that to a project). But, personally, I wouldn't want an iframe option.
Author
Owner

@daviian commented on GitHub (Oct 20, 2017):

IMHO I am against that feature as @bkcsoft mentioned the existing wiki.
However we should definitely work on a plugin architecture to enable such customization.

@daviian commented on GitHub (Oct 20, 2017): IMHO I am against that feature as @bkcsoft mentioned the existing wiki. However we should definitely work on a plugin architecture to enable such customization.
Author
Owner

@AlbertoGP commented on GitHub (Jan 5, 2018):

Hi, I could use a feature like this or even better the plugin system discussed in other issues (linked below).
This is a long comment, written as I considered a couple of approaches, and ends with a pull request (#3308 Templates for extra links in top navbar and repo tool tabs.) that to me seems to fix both this issue and #2115.

I'm writing a tool as a single-page web application that uses the HTTP API.
I put that page under custom/public/ and then it works as if it was part of Gitea, without having to log-in separately or anything like that.
To have it accessible from the main interface, I've copied and modified the templates base/head.tmpl and repo/header.tmpl.
This works great but complicates installation and maintenance: every time I upgrade, I have to check that those template files did not change. If they do, I need to copy and modify the new ones.

Being able to add links to the navigation menus / tabs from the configuration would make such single-page web mini-applications dead simple. The link specification string would need placeholders for parameters such as the current repository full name: that's what I do in repo/header.tmpl for instance, to have my application fetch the correct repository data.

However, it should stop at plain links, not iframes because they bring all kind of problems. For the cases where we want to insert extra content in the interface, a plugin system that allows specifying additional routes to new templates is more useful. If I understand correctly, I can add new .tmpl files but they won't be loaded unless I modify the go code at https://github.com/go-gitea/gitea/tree/master/routers

I'm looking now at the templates, thinking what a configuration entry might look like, and I just realized that it would have some issues, particularly with i18n.
Could this be done by adding an empty template at the end of the tabs?
I mean something like {{template "repo/extra_tabs" .}} at https://github.com/go-gitea/gitea/blob/master/templates/repo/header.tmpl#L91 right before {{if .IsRepositoryAdmin}}, and {{template "base/extra_tabs" .}} at https://github.com/go-gitea/gitea/blob/master/templates/base/head.tmpl#L159

After a quick test it seems to work wonderfully, so I've made a pull request:
#3308 Templates for extra links in top navbar and repo tool tabs.

This also solves "Custom Routing / new Pages?! #2115", which asked about custom routing but just needed to add links to pages like "imprint" (German "Impressum", noting who is responsible for the site and other legalities) and "privacy policy". Those pages can be put under "custom/public/".

Related issues about the plugin system:

@AlbertoGP commented on GitHub (Jan 5, 2018): Hi, I could use a feature like this or even better the plugin system discussed in other issues (linked below). This is a long comment, written as I considered a couple of approaches, and ends with a pull request (#3308 Templates for extra links in top navbar and repo tool tabs.) that to me seems to fix both this issue and #2115. I'm writing a tool as a single-page web application that uses the HTTP API. I put that page under `custom/public/` and then it works as if it was part of Gitea, without having to log-in separately or anything like that. To have it accessible from the main interface, I've copied and modified the templates `base/head.tmpl` and `repo/header.tmpl`. This works great but complicates installation and maintenance: every time I upgrade, I have to check that those template files did not change. If they do, I need to copy and modify the new ones. Being able to add links to the navigation menus / tabs from the configuration would make such single-page web mini-applications dead simple. The link specification string would need placeholders for parameters such as the current repository full name: that's what I do in `repo/header.tmpl` for instance, to have my application fetch the correct repository data. However, it should stop at plain links, not iframes because they bring all kind of problems. For the cases where we want to insert extra content in the interface, a plugin system that allows specifying additional routes to new templates is more useful. If I understand correctly, I can add new `.tmpl` files but they won't be loaded unless I modify the go code at https://github.com/go-gitea/gitea/tree/master/routers I'm looking now at the templates, thinking what a configuration entry might look like, and I just realized that it would have some issues, particularly with i18n. Could this be done by adding an empty template at the end of the tabs? I mean something like `{{template "repo/extra_tabs" .}}` at https://github.com/go-gitea/gitea/blob/master/templates/repo/header.tmpl#L91 right before `{{if .IsRepositoryAdmin}}`, and `{{template "base/extra_tabs" .}}` at https://github.com/go-gitea/gitea/blob/master/templates/base/head.tmpl#L159 After a quick test it seems to work wonderfully, so I've made a pull request: #3308 Templates for extra links in top navbar and repo tool tabs. This also solves "Custom Routing / new Pages?! #2115", which asked about custom routing but just needed to add links to pages like "imprint" (German "Impressum", noting who is responsible for the site and other legalities) and "privacy policy". Those pages can be put under "custom/public/". Related issues about the plugin system: - #661 Plugin system - #2222 Plugin system for obscure/non-universal features - gogits/gogs#2438 Support a plugin infrastructure
Author
Owner

@lunny commented on GitHub (Jan 6, 2018):

@AlbertoGP I would like a new tab type Link like others (i.e. Code, Issue) and repository owners could add one or more this tab on the repository. And External Issue Tracker and External Wiki could be removed sine they are both Link tabs.

@lunny commented on GitHub (Jan 6, 2018): @AlbertoGP I would like a new tab type `Link` like others (i.e. `Code`, `Issue`) and repository owners could add one or more this tab on the repository. And `External Issue Tracker` and `External Wiki` could be removed sine they are both `Link` tabs.
Author
Owner

@stale[bot] commented on GitHub (Feb 9, 2019):

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs during the next 2 weeks. Thank you for your contributions.

@stale[bot] commented on GitHub (Feb 9, 2019): This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs during the next 2 weeks. Thank you for your contributions.
Author
Owner

@warnat commented on GitHub (Sep 14, 2020):

so, this has been implemented here: https://github.com/go-gitea/gitea/pull/3308 ?
ready to close ?

@warnat commented on GitHub (Sep 14, 2020): so, this has been implemented here: https://github.com/go-gitea/gitea/pull/3308 ? ready to close ?
Author
Owner

@lunny commented on GitHub (Sep 15, 2020):

@warnat If you mean custom template, it did.

@lunny commented on GitHub (Sep 15, 2020): @warnat If you mean custom template, it did.
Author
Owner

@sebthom commented on GitHub (Jun 2, 2023):

We also link to add custom tabs to repos. Unfortunately the approach using templates does not work for us as they can only be edited by system administrators. We want to allow repo managers to be able to add custom tabs, e.g. linking to external apps/resources etc. So it would be great if the repo settings could be extended so custom links can be registered.

@sebthom commented on GitHub (Jun 2, 2023): We also link to add custom tabs to repos. Unfortunately the approach using templates does not work for us as they can only be edited by system administrators. We want to allow repo managers to be able to add custom tabs, e.g. linking to external apps/resources etc. So it would be great if the repo settings could be extended so custom links can be registered.
Author
Owner

@silkentrance commented on GitHub (Jun 22, 2024):

@sebthom Why do you not just include a README.md and include these links there? Or enable the wiki and provide these links there?

@silkentrance commented on GitHub (Jun 22, 2024): @sebthom Why do you not just include a README.md and include these links there? Or enable the wiki and provide these links there?
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/gitea#470