import {createApp} from 'vue'; export async function initRepositoryActionView() { const el = document.getElementById('repo-action-view'); if (!el) return; const {default: RepoActionView} = await import(/* webpackChunkName: "repo-action-view" */'../components/RepoActionView.vue'); // TODO: the parent element's full height doesn't work well now, // but we can not pollute the global style at the moment, only fix the height problem for pages with this component const parentFullHeight = document.querySelector('body > div.full.height') as HTMLDivElement; if (parentFullHeight) parentFullHeight.style.paddingBottom = '0'; const initialJobData = JSON.parse(el.getAttribute('data-initial-post-response')); const initialArtifactData = JSON.parse(el.getAttribute('data-initial-artifacts-response')); const view = createApp(RepoActionView, { initialJobData, initialArtifactData, runIndex: el.getAttribute('data-run-index'), runID: el.getAttribute('data-run-id'), jobIndex: el.getAttribute('data-job-index'), attemptNumber: el.getAttribute('data-attempt-number'), actionsURL: el.getAttribute('data-actions-url'), workflowName: el.getAttribute('data-workflow-name'), workflowURL: el.getAttribute('data-workflow-url'), locale: { approve: el.getAttribute('data-locale-approve'), cancel: el.getAttribute('data-locale-cancel'), rerun: el.getAttribute('data-locale-rerun'), artifactsTitle: el.getAttribute('data-locale-artifacts-title'), areYouSure: el.getAttribute('data-locale-are-you-sure'), confirmDeleteArtifact: el.getAttribute('data-locale-confirm-delete-artifact'), rerun_all: el.getAttribute('data-locale-rerun-all'), showTimeStamps: el.getAttribute('data-locale-show-timestamps'), showLogSeconds: el.getAttribute('data-locale-show-log-seconds'), showFullScreen: el.getAttribute('data-locale-show-full-screen'), downloadLogs: el.getAttribute('data-locale-download-logs'), runAttemptLabel: el.getAttribute('data-locale-run-attempt-label'), viewingOutOfDateRun: el.getAttribute('data-locale-viewing-out-of-date-run'), viewMostRecentRun: el.getAttribute('data-locale-view-most-recent-run'), preExecutionError: el.getAttribute('data-locale-pre-execution-error'), status: { unknown: el.getAttribute('data-locale-status-unknown'), waiting: el.getAttribute('data-locale-status-waiting'), running: el.getAttribute('data-locale-status-running'), success: el.getAttribute('data-locale-status-success'), failure: el.getAttribute('data-locale-status-failure'), cancelled: el.getAttribute('data-locale-status-cancelled'), skipped: el.getAttribute('data-locale-status-skipped'), blocked: el.getAttribute('data-locale-status-blocked'), }, }, }); view.mount(el); }