go-gitea / gitea

Git with a cup of tea! Painless self-hosted all-in-one software development service, including Git hosting, code review, team collaboration, package registry and CI/CD
https://gitea.com
MIT License
44.36k stars 5.43k forks source link

Custom tabs for projects in web ui #1199

Open pgaskin opened 7 years ago

pgaskin commented 7 years ago

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.

lunny commented 7 years ago

It should be not very difficult to implement I think.

pgaskin commented 7 years ago

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

Fastidious commented 7 years ago

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

lunny commented 7 years ago

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.

zhv9 commented 6 years ago

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

lunny commented 6 years ago

@zhv9 That's not the same thing.

lunny commented 6 years ago

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

Morlinest commented 6 years ago

@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, ...).

bkcsoft commented 6 years ago

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

OmarAssadi commented 6 years ago

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.

daviian commented 6 years ago

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.

AlbertoGP commented 6 years ago

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:

lunny commented 6 years ago

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

stale[bot] commented 5 years ago

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.

warnat commented 4 years ago

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

lunny commented 4 years ago

@warnat If you mean custom template, it did.

sebthom commented 1 year ago

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.

silkentrance commented 3 months ago

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