forgejo/web_src/js/features
Şahin Akkaya e9be8b25ae
Implement contributors graph (#27882)
Continuation of https://github.com/go-gitea/gitea/pull/25439. Fixes #847

Before:
<img width="1296" alt="image"
src="https://github.com/go-gitea/gitea/assets/32161460/24571ac8-b254-43c9-b178-97340f0dc8a9">

----
After:
<img width="1296" alt="image"
src="https://github.com/go-gitea/gitea/assets/32161460/c60b2459-9d10-4d42-8d83-d5ef0f45bf94">

---
#### Overview
This is the implementation of a requested feature: Contributors graph
(#847)

It makes Activity page a multi-tab page and adds a new tab called
Contributors. Contributors tab shows the contribution graphs over time
since the repository existed. It also shows per user contribution graphs
for top 100 contributors. Top 100 is calculated based on the selected
contribution type (commits, additions or deletions).

---
#### Demo
(The demo is a bit old but still a good example to show off the main
features)

<video src="https://github.com/go-gitea/gitea/assets/32161460/9f68103f-8145-4cc2-94bc-5546daae7014" controls width="320" height="240">
  <a href="https://github.com/go-gitea/gitea/assets/32161460/9f68103f-8145-4cc2-94bc-5546daae7014">Download</a>
</video>

#### Features:

- Select contribution type (commits, additions or deletions)
- See overall and per user contribution graphs for the selected
contribution type
- Zoom and pan on graphs to see them in detail
- See top 100 contributors based on the selected contribution type and
selected time range
- Go directly to users' profile by clicking their name if they are
registered gitea users
- Cache the results so that when the same repository is visited again
fetching data will be faster

---------

Co-authored-by: silverwind <me@silverwind.io>
Co-authored-by: hiifong <i@hiif.ong>
Co-authored-by: delvh <dev.lh@web.de>
Co-authored-by: 6543 <6543@obermui.de>
Co-authored-by: yp05327 <576951401@qq.com>
(cherry picked from commit 21331be30cb8f6c2d8b9dd99f1061623900632b9)
2024-02-17 23:24:31 +01:00
..
admin Use appSubUrl for OAuth2 callback URL tip (#28266) 2023-11-29 01:37:12 +00:00
comp Improve user search display name (#29002) 2024-02-01 17:10:16 +00:00
captcha.js Add new captcha: cloudflare turnstile (#22369) 2023-02-05 15:29:03 +08:00
citation.js Don't show unnecessary citation JS error on UI (#28433) 2023-12-12 11:31:11 +00:00
clipboard.js Clipboard copy enhancements (#27669) 2023-10-18 15:16:06 +00:00
codeeditor.js Preserve BOM in web editor (#28935) 2024-01-27 18:02:51 +00:00
colorpicker.js JS refactors (#22227) 2022-12-24 00:03:11 +08:00
common-global.js Introduce htmx and use it to avoid full page load on Subscribe and Follow (#28908) 2024-01-30 15:45:54 +01:00
common-issue-list.js Polyfill SubmitEvent for PaleMoon (#28441) 2023-12-15 07:26:36 +08:00
common-issue-list.test.js Use vitest globals (#27102) 2023-09-27 04:37:13 +00:00
common-organization.js Fix Org edit page bugs: renaming detection, maxlength (#24161) 2023-04-17 11:35:57 -04:00
contextpopup.js Fix issue and commit status popup padding (#25254) 2023-06-15 10:09:16 +02:00
contributors.js Implement contributors graph (#27882) 2024-02-17 23:24:31 +01:00
copycontent.js Use fetch helpers instead of fetch (#27026) 2023-09-19 00:50:30 +00:00
dropzone.js JS refactors (#22227) 2022-12-24 00:03:11 +08:00
emoji.js Update JS and PY dependencies (#27501) 2023-10-08 00:16:20 +00:00
eventsource.sharedworker.js Fix the JS error "EventSource is not defined" caused by some non-standard browsers (#20584) 2022-08-03 22:58:27 +03:00
file-fold.js Update JS dependencies (#27922) 2023-11-06 21:14:32 +00:00
heatmap.js Remove fomantic loader module (#26670) 2023-08-25 16:03:14 +00:00
imagediff.js Replace ajax with fetch, improve image diff (#27267) 2023-10-11 12:34:21 +00:00
install.js [BRANDING] Rebrand default config settings for new installs (#140) 2024-02-05 16:02:13 +01:00
notification.js Fix notification list bugs (#25781) 2023-07-09 18:42:31 +00:00
org-team.js Update JS dependencies (#27922) 2023-11-06 21:14:32 +00:00
pull-view-file.js Update JS dependencies (#27922) 2023-11-06 21:14:32 +00:00
repo-branch.js Display warning when user try to rename default branch (#24512) 2023-05-04 22:54:38 +00:00
repo-code.js Change form actions to fetch for submit review box (#25219) 2023-06-14 16:01:37 +08:00
repo-code.test.js Use vitest globals (#27102) 2023-09-27 04:37:13 +00:00
repo-commit.js Add Hide/Show all checks button to commit status check (#26284) 2023-11-02 14:49:02 +00:00
repo-common.js Improve "language stats" UI (#26968) 2023-09-10 18:27:23 +08:00
repo-diff-commit.js Use fetch helpers instead of fetch (#27026) 2023-09-19 00:50:30 +00:00
repo-diff-commitselect.js Add commits dropdown in PR files view and allow commit by commit review (#25528) 2023-07-28 21:18:12 +02:00
repo-diff-filetree.js JS refactors (#22227) 2022-12-24 00:03:11 +08:00
repo-diff.js [BUG] Fix Ctrl+Enter on submitting review comment 2024-02-17 12:52:11 +01:00
repo-editor.js Update JS dependencies (#27922) 2023-11-06 21:14:32 +00:00
repo-findfile.js Update JS dependencies (#27922) 2023-11-06 21:14:32 +00:00
repo-findfile.test.js Use vitest globals (#27102) 2023-09-27 04:37:13 +00:00
repo-graph.js Refactor hiding-methods, remove jQuery show/hide, remove .hide class, remove inline style=display:none (#22950) 2023-02-19 12:06:14 +08:00
repo-home.js Fix edit topic UI (#27925) 2023-11-06 09:23:50 +00:00
repo-issue-content.js Improve issue history dialog and make poster can delete their own history (#27323) 2023-09-28 08:43:20 +00:00
repo-issue-list.js Hide archived labels by default from the suggestions when assigning labels for an issue (#27451) 2023-10-17 16:10:45 +02:00
repo-issue-pr-form.js JS refactors (#22227) 2022-12-24 00:03:11 +08:00
repo-issue-pr-status.js Fix the overflow style for "Hide all checks" (#27932) 2023-11-07 18:53:35 +00:00
repo-issue.js Fix incorrect URL for "Reference in New Issue" (#28716) 2024-01-07 10:50:03 +00:00
repo-legacy.js Update JS dependencies (#27922) 2023-11-06 21:14:32 +00:00
repo-migrate.js Use fetch helpers instead of fetch (#27026) 2023-09-19 00:50:30 +00:00
repo-migration.js Use "input" event instead of "keyup" event for migration form (#26602) 2023-08-20 16:36:07 +02:00
repo-projects.js Fix duplicate project board when hitting enter key (#27746) 2023-10-23 12:40:33 +00:00
repo-release.js Update JS dependencies, add new eslint rules (#24597) 2023-05-09 02:35:49 +00:00
repo-settings.js Improve user search display name (#29002) 2024-02-01 17:10:16 +00:00
repo-template.js Add status indicator on main home screen for each repo (#24638) 2023-05-13 21:59:01 +00:00
repo-unicode-escape.js Improve accessibility when (re-)viewing files (#24817) 2023-05-21 20:47:41 +00:00
repo-wiki.js Improve wiki sidebar and TOC (#25460) 2023-06-23 15:51:43 -04:00
sshkey-helper.js Use explicit jQuery import, remove unused eslint globals (#18435) 2022-01-28 21:00:11 +00:00
stopwatch.js Move helpers to be prefixed with gt- (#22879) 2023-02-13 17:59:59 +00:00
tablesort.js JS refactors (#22227) 2022-12-24 00:03:11 +08:00
tribute.js Avoiding accessing undefined mentionValues (#26461) 2023-08-12 08:36:23 +00:00
user-auth-webauthn.js Use fetch helpers instead of fetch (#27026) 2023-09-19 00:50:30 +00:00
user-auth.js Show the mismatched ROOT_URL warning on the sign-in page if OAuth2 is enabled (#25947) 2023-07-18 22:14:30 +00:00
user-settings.js Refactor hiding-methods, remove jQuery show/hide, remove .hide class, remove inline style=display:none (#22950) 2023-02-19 12:06:14 +08:00