loading up the forgejo repo on tangled to test page performance
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

ui: update language stats layout and click behavior (#6700)

Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/6700
Reviewed-by: Michael Kriese <michael.kriese@gmx.de>
Reviewed-by: Beowulf <beowulf@beocode.eu>
Reviewed-by: Gusted <gusted@noreply.codeberg.org>

0ko 4cc0320e fd285bfc

+28 -8
+6 -6
templates/repo/sub_menu.tmpl
··· 20 20 {{end}} 21 21 </div> 22 22 {{if and (.Permission.CanRead $.UnitTypeCode) (not .IsEmptyRepo) .LanguageStats}} 23 - <div class="ui segment sub-menu language-stats-details tw-hidden"> 23 + <a class="ui segment show-panel toggle" id="language-stats-bar" data-panel="#language-stats-legend"> 24 + {{range .LanguageStats}} 25 + <div class="bar" style="width: {{.Percentage}}%; background-color: {{.Color}}" data-tooltip-placement="top" data-tooltip-content={{.Language}} data-tooltip-follow-cursor="horizontal"></div> 26 + {{end}} 27 + </a> 28 + <div class="ui segment sub-menu tw-hidden" id="language-stats-legend"> 24 29 {{range .LanguageStats}} 25 30 <div class="item"> 26 31 <i class="color-icon" style="background-color: {{.Color}}"></i> ··· 35 40 </div> 36 41 {{end}} 37 42 </div> 38 - <a class="ui segment language-stats show-panel toggle" data-panel=".repository-summary > .sub-menu"> 39 - {{range .LanguageStats}} 40 - <div class="bar" style="width: {{.Percentage}}%; background-color: {{.Color}}" data-tooltip-placement="top" data-tooltip-content={{.Language}} data-tooltip-follow-cursor="horizontal"></div> 41 - {{end}} 42 - </a> 43 43 {{end}} 44 44 </div> 45 45 {{end}}
+19
tests/e2e/repo-home.e2e.ts
··· 1 + // @watch start 2 + // web_src/js/features/common-global.js 3 + // web_src/css/repo.css 4 + // @watch end 5 + 6 + import {expect} from '@playwright/test'; 7 + import {save_visual, test} from './utils_e2e.ts'; 8 + 9 + test('Language stats bar', async ({page}) => { 10 + const response = await page.goto('/user2/repo1'); 11 + expect(response?.status()).toBe(200); 12 + 13 + await expect(page.locator('#language-stats-legend')).toBeVisible(); 14 + await save_visual(page); 15 + 16 + await page.click('#language-stats-bar'); 17 + await expect(page.locator('#language-stats-legend')).toBeHidden(); 18 + await save_visual(page); 19 + });
+3 -2
web_src/css/repo.css
··· 2022 2022 font-weight: var(--font-weight-medium); 2023 2023 } 2024 2024 2025 - .repository .repository-summary .segment.language-stats { 2025 + .repository .repository-summary #language-stats-bar { 2026 2026 display: flex; 2027 2027 gap: 2px; 2028 2028 padding: 0; 2029 2029 height: 10px; 2030 2030 white-space: nowrap; 2031 - border-radius: 0 0 3px 3px !important; 2031 + border-top-left-radius: 0 !important; 2032 + border-top-right-radius: 0 !important; 2032 2033 overflow: hidden; 2033 2034 } 2034 2035