/*
*
* Copyright 2016 RIFT.IO 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 from 'react';
import RecordNavigator from './recordNavigator.jsx';
import RecordCard from './recordCard.jsx';
import RecordDetails from './recordDetails.jsx';
import RecordViewStore from './recordViewStore.js';
import RecordViewActions from './recordViewActions.js';
import LaunchpadBreadcrumbs from '../launchpadBreadcrumbs.jsx';
import Utils from 'utils/utils.js';
import AppHeader from 'widgets/header/header.jsx';
import './recordViewer.scss';
export default class RecordView extends React.Component {
constructor(props) {
super(props);
this.state = RecordViewStore.getState();
this.state.showRecordDetails = false;
this.state.jobData = [];
RecordViewStore.listen(this.storeListener);
}
storeListener = (state) => {
this.setState(state);
}
componentWillUnmount = () => {
RecordViewStore.handleCloseSocket();
RecordViewStore.handleCloseJobSocket();
RecordViewStore.unlisten(this.storeListener);
}
componentDidMount() {
let nsrRegEx = new RegExp("([0-9a-zA-Z-]+)\/detail");
let nsr_id;
try {
console.log('NSR ID in url is', this.props.location.query);
console.log(this.props)
nsr_id = this.props.location.query.id;
} catch (e) {
}
RecordViewStore.getNSR(nsr_id);
RecordViewStore.getRawNSR(nsr_id);
RecordViewStore.getNSRSocket(nsr_id);
RecordViewStore.getConfigJobSocket(nsr_id);
}
loadRecord = (record) => {
RecordViewActions.loadRecord(record);
RecordViewStore['getRaw' + record.type.toUpperCase()](record.id)
RecordViewStore['get' + record.type.toUpperCase() + 'Socket'](record.id)
}
recordDetailsToggle = () => {
this.setState({
showRecordDetails: !this.state.showRecordDetails
})
}
render() {
let {location} = this.props;
let html;
let mgmtDomainName = window.location.hash.split('/')[2];
let recordDetails = this.state.showRecordDetails || null;
let nsrId = 0;
let navItems = [{
name: 'Viewport'
},{
name: 'COMPUTE TOPOLOGY',
onClick: this.context.router.push.bind(this, {pathname:'/compute-topology', query: {id: location.query.id, sdnpresent: location.query.sdnpresent}})
}];
if (location.query.sdnpresent == 'true') {
navItems.push({
name: 'NETWORK TOPOLOGY',
onClick: this.context.router.push.bind(this, {pathname:'/network-topology', query: {id: location.query.id, sdnpresent: location.query.sdnpresent}})
});
}
let nav =