mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 08:30:25 +08:00 
			
		
		
		
	Add status indicator on main home screen for each repo (#24638)
It will show the calculated commit status state of the latest commit on the default branch for each repository in the dashboard repo list - Closes #15620 # Before  # After  --------- Signed-off-by: Yarden Shoham <git@yardenshoham.com> Co-authored-by: delvh <dev.lh@web.de> Co-authored-by: Giteabot <teabot@gitea.io>
This commit is contained in:
		@@ -79,6 +79,8 @@
 | 
			
		||||
                  <svg-icon name="octicon-archive" :size="16" class-name="gt-ml-2"/>
 | 
			
		||||
                </span>
 | 
			
		||||
              </div>
 | 
			
		||||
              <!-- the commit status icon logic is taken from templates/repo/commit_status.tmpl -->
 | 
			
		||||
              <svg-icon v-if="repo.latest_commit_status_state" :name="statusIcon(repo.latest_commit_status_state)" :class-name="'commit-status icon text ' + statusColor(repo.latest_commit_status_state)" :size="16"/>
 | 
			
		||||
            </a>
 | 
			
		||||
          </li>
 | 
			
		||||
        </ul>
 | 
			
		||||
@@ -154,6 +156,15 @@ import {SvgIcon} from '../svg.js';
 | 
			
		||||
 | 
			
		||||
const {appSubUrl, assetUrlPrefix, pageData} = window.config;
 | 
			
		||||
 | 
			
		||||
const commitStatus = {
 | 
			
		||||
  pending: {name: 'octicon-dot-fill', color: 'grey'},
 | 
			
		||||
  running: {name: 'octicon-dot-fill', color: 'yellow'},
 | 
			
		||||
  success: {name: 'octicon-check', color: 'green'},
 | 
			
		||||
  error: {name: 'gitea-exclamation', color: 'red'},
 | 
			
		||||
  failure: {name: 'octicon-x', color: 'red'},
 | 
			
		||||
  warning: {name: 'gitea-exclamation', color: 'yellow'},
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
const sfc = {
 | 
			
		||||
  components: {SvgIcon},
 | 
			
		||||
  data() {
 | 
			
		||||
@@ -387,7 +398,7 @@ const sfc = {
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      if (searchedURL === this.searchURL) {
 | 
			
		||||
        this.repos = json.data;
 | 
			
		||||
        this.repos = json.data.map((webSearchRepo) => {return {...webSearchRepo.repository, latest_commit_status_state: webSearchRepo.latest_commit_status.State}});
 | 
			
		||||
        const count = response.headers.get('X-Total-Count');
 | 
			
		||||
        if (searchedQuery === '' && searchedMode === '' && this.archivedFilter === 'both') {
 | 
			
		||||
          this.reposTotalCount = count;
 | 
			
		||||
@@ -412,6 +423,14 @@ const sfc = {
 | 
			
		||||
        return 'octicon-repo';
 | 
			
		||||
      }
 | 
			
		||||
      return 'octicon-repo';
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    statusIcon(status) {
 | 
			
		||||
      return commitStatus[status].name;
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    statusColor(status) {
 | 
			
		||||
      return commitStatus[status].color;
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
};
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user