// Copyright 2018 Red Hat, Inc
//
// Licensed under the Apache License, Version 2.0 (the "License"); you may
// not use this file except in compliance with the License. You may obtain
// a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
// License for the specific language governing permissions and limitations
// under the License.
import React, { useState } from 'react'
import PropTypes from 'prop-types'
import { connect } from 'react-redux'
import { Link } from 'react-router-dom'
import { Flex, FlexItem, List, ListItem, Title } from '@patternfly/react-core'
import {
BookIcon,
BuildIcon,
CodeBranchIcon,
FileCodeIcon,
FingerprintIcon,
HistoryIcon,
OutlinedCalendarAltIcon,
OutlinedClockIcon,
StreamIcon,
ThumbtackIcon,
LockIcon,
} from '@patternfly/react-icons'
import * as moment from 'moment'
import * as moment_tz from 'moment-timezone'
import _ from 'lodash'
import 'moment-duration-format'
import { BuildResultBadge, BuildResultWithIcon } from './Misc'
import { buildExternalLink, renderRefInfo, ExternalLink, IconProperty } from '../../Misc'
import AutoholdModal from '../autohold/autoholdModal'
function getRefs(build) {
// This method has a purpose beyond backwards compat: return the
// zuul ref for this build first, then the remaining refs.
if (!('refs' in build.buildset)) {
// Backwards compat
return [build]
}
return [build.ref, ...build.buildset.refs.filter((i) => !_.isEqual(i, build.ref))]
}
function getRef(build) {
return 'project' in build ? build : build.ref
}
function Build({ build, tenant, timezone, user }) {
const [showAutoholdModal, setShowAutoholdModal] = useState(false)
const buildRef = getRef(build)
// the change or ref to use for api actions like autohold
const actionRef = buildRef.change ? '' : buildRef.ref
const actionChange = buildRef.change ? String(buildRef.change) : ''
//const project = build.project
const job_name = build.job_name
const index_links = build.manifest && build.manifest.index_links
const build_log_url = build.log_url ?
(index_links ? build.log_url + 'index.html' : build.log_url)
: ''
function renderAutoholdButton() {
const value = (
{
event.preventDefault()
setShowAutoholdModal(true)
}}
>
Autohold future build failure(s)
)
return (