[v11.0/forgejo] fix(ui): show commit icon in branch dropdown button when viewing a commit (#7576)
Backport: https://codeberg.org/forgejo/forgejo/pulls/7571 Replaces https://codeberg.org/forgejo/forgejo/pulls/7574 Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/7576 Reviewed-by: 0ko <0ko@noreply.codeberg.org> Co-authored-by: Beowulf <beowulf@beocode.eu> Co-committed-by: Beowulf <beowulf@beocode.eu>
This commit is contained in:
		
					parent
					
						
							
								9ebdc09939
							
						
					
				
			
			
				commit
				
					
						722ea4179c
					
				
			
		
					 5 changed files with 52 additions and 25 deletions
				
			
		| 
						 | 
				
			
			@ -77,8 +77,10 @@
 | 
			
		|||
				{{else}}
 | 
			
		||||
					{{if eq $type "tag"}}
 | 
			
		||||
						{{svg "octicon-tag"}}
 | 
			
		||||
					{{else}}
 | 
			
		||||
					{{else if eq $type "branch"}}
 | 
			
		||||
						{{svg "octicon-git-branch"}}
 | 
			
		||||
					{{else}}
 | 
			
		||||
						{{svg "octicon-git-commit"}}
 | 
			
		||||
					{{end}}
 | 
			
		||||
					<strong ref="dropdownRefName" class="tw-ml-2 tw-inline-block gt-ellipsis">{{if and .root.IsViewTag (not .noTag)}}{{.root.TagName}}{{else if .root.IsViewBranch}}{{.root.BranchName}}{{else}}{{ShortSha .root.CommitID}}{{end}}</strong>
 | 
			
		||||
				{{end}}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -13,6 +13,7 @@ import (
 | 
			
		|||
	"forgejo.org/models/unittest"
 | 
			
		||||
	user_model "forgejo.org/models/user"
 | 
			
		||||
	"forgejo.org/modules/git"
 | 
			
		||||
	"forgejo.org/modules/indexer/stats"
 | 
			
		||||
	files_service "forgejo.org/services/repository/files"
 | 
			
		||||
	"forgejo.org/tests"
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -36,6 +37,10 @@ func DeclareGitRepos(t *testing.T) func() {
 | 
			
		|||
			Filename: "testfile",
 | 
			
		||||
			Versions: []string{"hello", "hallo", "hola", "native", "ubuntu-latest", "- runs-on: ubuntu-latest", "- runs-on: debian-latest"},
 | 
			
		||||
		}}),
 | 
			
		||||
		newRepo(t, 2, "language-stats-test", []FileChanges{{
 | 
			
		||||
			Filename: "main.rs",
 | 
			
		||||
			Versions: []string{"fn main() {", "println!(\"Hello World!\");", "}"},
 | 
			
		||||
		}}),
 | 
			
		||||
		newRepo(t, 2, "mentions-highlighted", []FileChanges{
 | 
			
		||||
			{
 | 
			
		||||
				Filename:  "history1.md",
 | 
			
		||||
| 
						 | 
				
			
			@ -105,5 +110,8 @@ func newRepo(t *testing.T, userID int64, repoName string, fileChanges []FileChan
 | 
			
		|||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	err := stats.UpdateRepoIndexer(somerepo)
 | 
			
		||||
	require.NoError(t, err)
 | 
			
		||||
 | 
			
		||||
	return cleanupFunc
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,19 +0,0 @@
 | 
			
		|||
// @watch start
 | 
			
		||||
// web_src/js/features/common-global.js
 | 
			
		||||
// web_src/css/repo.css
 | 
			
		||||
// @watch end
 | 
			
		||||
 | 
			
		||||
import {expect} from '@playwright/test';
 | 
			
		||||
import {save_visual, test} from './utils_e2e.ts';
 | 
			
		||||
 | 
			
		||||
test('Language stats bar', async ({page}) => {
 | 
			
		||||
  const response = await page.goto('/user2/repo1');
 | 
			
		||||
  expect(response?.status()).toBe(200);
 | 
			
		||||
 | 
			
		||||
  await expect(page.locator('#language-stats-legend')).toBeVisible();
 | 
			
		||||
  await save_visual(page);
 | 
			
		||||
 | 
			
		||||
  await page.click('#language-stats-bar');
 | 
			
		||||
  await expect(page.locator('#language-stats-legend')).toBeHidden();
 | 
			
		||||
  await save_visual(page);
 | 
			
		||||
});
 | 
			
		||||
							
								
								
									
										35
									
								
								tests/e2e/repo-home.test.e2e.ts
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								tests/e2e/repo-home.test.e2e.ts
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,35 @@
 | 
			
		|||
// @watch start
 | 
			
		||||
// web_src/js/components/RepoBranchTagSelector.vue
 | 
			
		||||
// web_src/js/features/common-global.js
 | 
			
		||||
// web_src/css/repo.css
 | 
			
		||||
// @watch end
 | 
			
		||||
 | 
			
		||||
import {expect} from '@playwright/test';
 | 
			
		||||
import {save_visual, test} from './utils_e2e.ts';
 | 
			
		||||
 | 
			
		||||
test('Language stats bar', async ({page}) => {
 | 
			
		||||
  const response = await page.goto('/user2/language-stats-test');
 | 
			
		||||
  expect(response?.status()).toBe(200);
 | 
			
		||||
 | 
			
		||||
  await expect(page.locator('#language-stats-legend')).toBeHidden();
 | 
			
		||||
 | 
			
		||||
  await page.click('#language-stats-bar');
 | 
			
		||||
  await expect(page.locator('#language-stats-legend')).toBeVisible();
 | 
			
		||||
  await save_visual(page);
 | 
			
		||||
 | 
			
		||||
  await page.click('#language-stats-bar');
 | 
			
		||||
  await expect(page.locator('#language-stats-legend')).toBeHidden();
 | 
			
		||||
  await save_visual(page);
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
test('Branch selector commit icon', async ({page}) => {
 | 
			
		||||
  const response = await page.goto('/user2/repo1');
 | 
			
		||||
  expect(response?.status()).toBe(200);
 | 
			
		||||
 | 
			
		||||
  await expect(page.locator('.branch-dropdown-button svg.octicon-git-branch')).toBeVisible();
 | 
			
		||||
  await expect(page.locator('.branch-dropdown-button')).toHaveText('master');
 | 
			
		||||
 | 
			
		||||
  await page.goto('/user2/repo1/src/commit/65f1bf27bc3bf70f64657658635e66094edbcb4d');
 | 
			
		||||
  await expect(page.locator('.branch-dropdown-button svg.octicon-git-commit')).toBeVisible();
 | 
			
		||||
  await expect(page.locator('.branch-dropdown-button')).toHaveText('65f1bf27bc');
 | 
			
		||||
});
 | 
			
		||||
| 
						 | 
				
			
			@ -54,12 +54,12 @@ const sfc = {
 | 
			
		|||
    if (this.viewType === 'tree') {
 | 
			
		||||
      this.isViewTree = true;
 | 
			
		||||
      this.refNameText = this.commitIdShort;
 | 
			
		||||
    } else if (this.viewType === 'tag') {
 | 
			
		||||
      this.isViewTag = true;
 | 
			
		||||
      this.refNameText = this.tagName;
 | 
			
		||||
    } else {
 | 
			
		||||
    } else if (this.viewType === 'branch') {
 | 
			
		||||
      this.isViewBranch = true;
 | 
			
		||||
      this.refNameText = this.branchName;
 | 
			
		||||
    } else {
 | 
			
		||||
      this.isViewTag = true;
 | 
			
		||||
      this.refNameText = this.tagName;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    document.body.addEventListener('click', (event) => {
 | 
			
		||||
| 
						 | 
				
			
			@ -252,7 +252,8 @@ export default sfc; // activate IDE's Vue plugin
 | 
			
		|||
        <template v-if="release">{{ textReleaseCompare }}</template>
 | 
			
		||||
        <template v-else>
 | 
			
		||||
          <svg-icon v-if="isViewTag" name="octicon-tag"/>
 | 
			
		||||
          <svg-icon v-else name="octicon-git-branch"/>
 | 
			
		||||
          <svg-icon v-else-if="isViewBranch" name="octicon-git-branch"/>
 | 
			
		||||
          <svg-icon v-else name="octicon-git-commit"/>
 | 
			
		||||
          <strong ref="dropdownRefName" class="tw-ml-2 tw-inline-block gt-ellipsis">{{ refNameText }}</strong>
 | 
			
		||||
        </template>
 | 
			
		||||
      </span>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue