/* global Flash */ import '~/lib/utils/datetime_utility'; import { statusIconEntityMap } from '../../vue_shared/ci_status_icons'; import MemoryUsage from './mr_widget_memory_usage'; import MRWidgetService from '../services/mr_widget_service'; export default { name: 'MRWidgetDeployment', props: { mr: { type: Object, required: true }, service: { type: Object, required: true }, }, components: { 'mr-widget-memory-usage': MemoryUsage, }, computed: { svg() { return statusIconEntityMap.icon_status_success; }, }, methods: { formatDate(date) { return gl.utils.getTimeago().format(date); }, hasExternalUrls(deployment = {}) { return deployment.external_url && deployment.external_url_formatted; }, hasDeploymentTime(deployment = {}) { return deployment.deployed_at && deployment.deployed_at_formatted; }, hasDeploymentMeta(deployment = {}) { return deployment.url && deployment.name; }, stopEnvironment(deployment) { const msg = 'Are you sure you want to stop this environment?'; const isConfirmed = confirm(msg); // eslint-disable-line if (isConfirmed) { MRWidgetService.stopEnvironment(deployment.stop_url) .then(res => res.json()) .then((res) => { if (res.redirect_url) { gl.utils.visitUrl(res.redirect_url); } }) .catch(() => { new Flash('Something went wrong while stopping this environment. Please try again.'); // eslint-disable-line }); } }, }, template: `
Deployed to {{deployment.name}} on