diff --git a/options/locale/locale_en-US.json b/options/locale/locale_en-US.json index 1ba431c5eae..ec564d3e262 100644 --- a/options/locale/locale_en-US.json +++ b/options/locale/locale_en-US.json @@ -2725,6 +2725,7 @@ "graphs.code_frequency.what": "code frequency", "graphs.contributors.what": "contributions", "graphs.recent_commits.what": "recent commits", + "graphs.chart_zoom_hint": "drag: zoom, shift+drag: pan, double click: reset zoom", "org.org_name_holder": "Organization Name", "org.org_full_name_holder": "Organization Full Name", "org.org_name_helper": "Organization names should be short and memorable.", @@ -3797,6 +3798,16 @@ "actions.runs.latest_attempt": "Latest attempt", "actions.runs.triggered_via": "Triggered via %s", "actions.runs.total_duration": "Total duration:", + "actions.runs.workflow_dependencies": "Workflow Dependencies", + "actions.runs.graph_jobs_count_1": "%d job", + "actions.runs.graph_jobs_count_n": "%d jobs", + "actions.runs.graph_dependencies_count_1": "%d dependency", + "actions.runs.graph_dependencies_count_n": "%d dependencies", + "actions.runs.graph_success_rate": "%s success", + "actions.runs.graph_zoom_in": "Zoom in (Ctrl/Cmd + scroll on graph)", + "actions.runs.graph_zoom_max": "Already at 100% zoom", + "actions.runs.graph_zoom_out": "Zoom out (Ctrl/Cmd + scroll on graph)", + "actions.runs.graph_reset_view": "Reset view", "actions.workflow.disable": "Disable Workflow", "actions.workflow.disable_success": "Workflow '%s' disabled successfully.", "actions.workflow.enable": "Enable Workflow", diff --git a/templates/projects/view.tmpl b/templates/projects/view.tmpl index 30056e211f1..8f4f1d60fda 100644 --- a/templates/projects/view.tmpl +++ b/templates/projects/view.tmpl @@ -134,16 +134,16 @@ {{if $canWriteProject}} {{end}} diff --git a/web_src/js/components/ActionRunSummaryView.vue b/web_src/js/components/ActionRunSummaryView.vue index afbc0a13bf1..6402c2465b7 100644 --- a/web_src/js/components/ActionRunSummaryView.vue +++ b/web_src/js/components/ActionRunSummaryView.vue @@ -59,6 +59,7 @@ onBeforeUnmount(() => { :jobs="run.jobs" :run-link="run.link" :workflow-id="run.workflowID" + :locale="locale" /> diff --git a/web_src/js/components/RepoContributors.vue b/web_src/js/components/RepoContributors.vue index 3fd34081e04..d4d5190c6e6 100644 --- a/web_src/js/components/RepoContributors.vue +++ b/web_src/js/components/RepoContributors.vue @@ -270,7 +270,7 @@ export default defineComponent({ plugins: { title: { display: type === 'main', - text: 'drag: zoom, shift+drag: pan, double click: reset zoom', + text: this.locale.chartZoomHint, position: 'top', align: 'center', }, diff --git a/web_src/js/components/WorkflowGraph.vue b/web_src/js/components/WorkflowGraph.vue index 3cca254dda2..c01226f2a91 100644 --- a/web_src/js/components/WorkflowGraph.vue +++ b/web_src/js/components/WorkflowGraph.vue @@ -4,6 +4,7 @@ import {SvgIcon} from '../svg.ts'; import ActionStatusIcon from './ActionStatusIcon.vue'; import {localUserSettings} from '../modules/user-settings.ts'; import {isPlainClick} from '../utils/dom.ts'; +import {trN} from '../modules/i18n.ts'; import {debounce} from 'throttle-debounce'; import type {ActionsJob, ActionsStatus} from '../modules/gitea-actions.ts'; import type {ActionRunViewStore} from './ActionRunView.ts'; @@ -43,6 +44,7 @@ const props = defineProps<{ jobs: ActionsJob[]; runLink: string; workflowId: string; + locale: Record; }>() const settingKeyStates = 'actions-graph-states'; @@ -344,6 +346,12 @@ const graphMetrics = computed(() => { }; }) +const graphStats = computed(() => [ + trN(props.jobs.length, props.locale.graphJobsCount1, props.locale.graphJobsCountN), + trN(edges.value.length, props.locale.graphDependenciesCount1, props.locale.graphDependenciesCountN), + props.locale.graphSuccessRate.replace('%s', graphMetrics.value.successRate), +].join(' • ')) + const nodeHeight = 52; const verticalSpacing = 90; const margin = 40; @@ -543,27 +551,22 @@ function onNodeClick(job: JobNode, event: MouseEvent) {