added not filter / noexport reason render components

This commit is contained in:
Matthias Hannig 2017-05-23 15:45:35 +02:00
parent d22ee9356d
commit 43c74153ac
3 changed files with 101 additions and 0 deletions

View File

@ -0,0 +1,31 @@
export const LOAD_REJECT_REASONS_REQUEST = '@birdseye/LOAD_REJECT_REASONS_REQUEST';
export const LOAD_REJECT_REASONS_SUCCESS = '@birdseye/LOAD_REJECT_REASONS_SUCCESS';
export const LOAD_NOEXPORT_REASONS_REQUEST = '@birdseye/LOAD_NOEXPORT_REASONS_REQUEST';
export const LOAD_NOEXPORT_REASONS_SUCCESS = '@birdseye/LOAD_NOEXPORT_REASONS_SUCCESS';
export function loadRejectReasonsSuccess(asn, reject_id, reject_reasons) {
return {
type: LOAD_REJECT_REASONS_SUCCESS,
payload: {
reject_asn: asn,
reject_id: reject_id,
reject_reasons: reject_reasons}
};
}
export function loadNoExportReasonsSuccess(asn, reject_id, reasons) {
return {
type: LOAD_NOEXPORT_REASONS_SUCCESS,
payload: {
noexport_asn: asn,
noexport_reject_id: reject_id,
noexport_reasons: reasons
}
};
}

View File

@ -0,0 +1,36 @@
import React from 'react'
import {connect} from 'react-redux'
class FilterReason extends React.Component {
render() {
const route = this.props.route;
if (!this.props.reject_reasons || !route || !route.bgp ||
!route.bgp.large_communities) {
return null;
}
const reason = route.bgp.large_communities.filter(elem =>
elem[0] == this.props.asn && elem[1] == this.props.reject_id
);
if (!reason.length) {
return null;
}
return <p className="reject-reason">{this.props.reject_reasons[reason[0][2]]}</p>;
}
}
export default connect(
state => {
return {
reject_reasons: state.routeservers.reject_reasons,
asn: state.routeservers.reject_asn,
reject_id: state.routeservers.reject_id,
}
}
)(FilterReason);

View File

@ -0,0 +1,34 @@
import React from 'react'
import {connect} from 'react-redux'
class NoExportReason extends React.Component {
render() {
const route = this.props.route;
if (!this.props.noexport_reasons || !route || !route.bgp ||
!route.bgp.large_communities) {
return null;
}
const reason = route.bgp.large_communities.filter(elem =>
elem[0] == this.props.asn && elem[1] == this.props.reject_id
);
if (!reason.length) {
return null;
}
return <p className="noexport-reason">{this.props.noexport_reasons[reason[0][2]]}</p>;
}
}
export default connect(
state => {
return {
noexport_reasons: state.routeservers.noexport_reasons,
asn: state.routeservers.noexport_asn,
reject_id: state.routeservers.noexport_reject_id,
}
}
)(NoExportReason);