Preview: http://dashboards.webkom.co/react/airframe
This commit is contained in:
Tomasz Owczarczyk
2019-08-15 00:54:44 +02:00
parent f975443095
commit 37092d1d6c
626 changed files with 56691 additions and 0 deletions

View File

@@ -0,0 +1,599 @@
import React from 'react';
import PropTypes from 'prop-types';
import faker from 'faker/locale/en_US';
import _ from 'lodash';
import {
Container,
ButtonToolbar,
ButtonGroup,
UncontrolledButtonDropdown,
DropdownToggle,
DropdownMenu,
DropdownItem,
FloatGrid as Grid,
Card,
Media,
CardBody,
ListGroup,
ListGroupItem,
Progress,
Table,
CardFooter,
Button,
CardHeader
} from './../../../components';
import { applyColumn } from './../../../components/FloatGrid';
import { HeaderMain } from "../../components/HeaderMain";
import {
MetricVsTarget
} from "../../components/Analytics/MetricVsTarget";
import {
WebsitePerformance
} from "../../components/Analytics/WebsitePerformance";
import {
AudienceMetricsChart
} from "./components/AudienceMetricsChart";
import {
TinyAreaChart
} from "../../components/Analytics/TinyAreaChart";
import {
SimpleLineChart
} from "./../../Graphs/ReCharts/components/SimpleLineChart";
import classes from './Analytics.scss';
const LAYOUT = {
'metric-v-target-users': { h: 6, md: 4 },
'metric-v-target-sessions': { h: 6, md: 4 },
'metric-v-target-pageviews': { h: 6, md: 4 },
'analytics-audience-metrics': { h: 9, minH: 7 },
'traffic-channels': { md: 6, h: 6 },
'sessions': { md: 6, h: 6, maxH: 9, minW: 3 },
'spend': { md: 6, h: 7 },
'website-performance': { md: 6, h: 11 },
'organic-traffic': { md: 6, h: 10 }
}
const SessionByDevice = (props) => (
<div className={classes['session']}>
<div className={classes['session__title']}>
{ props.title }
</div>
<div className={classes['session__values']}>
<div className={`${classes['session__percentage']} text-${props.color}`}>
{ props.valuePercent }%
</div>
<div className={`${classes['session__value']} text-${props.color}`}>
{ props.value }
</div>
</div>
</div>
);
SessionByDevice.propTypes = {
title: PropTypes.node,
color: PropTypes.string,
valuePercent: PropTypes.string,
value: PropTypes.string
}
export class Analytics extends React.Component {
state = {
layouts: _.clone(LAYOUT)
}
_resetLayout = () => {
this.setState({
layouts: _.clone(LAYOUT)
})
}
render() {
const { layouts } = this.state;
return (
<React.Fragment>
<Container fluid={ false }>
<div className="d-flex mt-3 mb-5">
<HeaderMain
title="Analytics"
className="mt-0"
/>
<ButtonToolbar className="ml-auto">
<ButtonGroup className="align-self-start mr-2">
<UncontrolledButtonDropdown className="ml-auto flex-column">
<DropdownToggle color="link" className="text-left pl-0 text-decoration-none mb-2">
<i className="fa fa-globe text-body mr-2"></i>
www.webkom.co<i className="fa fa-angle-down text-body ml-2" />
</DropdownToggle>
<div className="small">
Last 30 Days vs Previous Period
</div>
<DropdownMenu>
<DropdownItem header>
Select Site:
</DropdownItem>
<DropdownItem active>
www.webkom.co
</DropdownItem>
<DropdownItem>
www.spin.webkom.co
</DropdownItem>
<DropdownItem divider />
<DropdownItem>
<i className="fa fa-fw fa-plus mr-2"></i>
Add New
</DropdownItem>
</DropdownMenu>
</UncontrolledButtonDropdown>
</ButtonGroup>
<ButtonGroup className="align-self-start mr-2">
<UncontrolledButtonDropdown className="ml-auto flex-column">
<DropdownToggle color="link" className="text-left pl-0 text-decoration-none mb-2">
<i className="fa fa-calendar-o text-body mr-2"></i>
Last Month<i className="fa fa-angle-down text-body ml-2" />
</DropdownToggle>
<div className="small">
Jan 01, 2017 to Jan 31, 2017
</div>
<DropdownMenu>
<DropdownItem header>
Select Period:
</DropdownItem>
<DropdownItem active>
Last Month
</DropdownItem>
<DropdownItem>
Last 3 Months
</DropdownItem>
<DropdownItem>
Last 6 Months
</DropdownItem>
<DropdownItem>
Last Year
</DropdownItem>
<DropdownItem divider />
<DropdownItem>
Custom...
</DropdownItem>
</DropdownMenu>
</UncontrolledButtonDropdown>
</ButtonGroup>
<ButtonGroup className="align-self-start mr-2">
<UncontrolledButtonDropdown className="ml-auto flex-column">
<DropdownToggle color="link" className="text-left pl-0 text-decoration-none mb-2">
<i className="fa fa-calendar-o text-body mr-2"></i>
Previous Period<i className="fa fa-angle-down text-body ml-2" />
</DropdownToggle>
<div className="small">
Jan 01, 2017 to Jan 31, 2017
</div>
<DropdownMenu>
<DropdownItem header>
Select Period:
</DropdownItem>
<DropdownItem active>
Previous Period
</DropdownItem>
<DropdownItem>
Last 3 Months
</DropdownItem>
<DropdownItem>
Last 6 Months
</DropdownItem>
<DropdownItem>
Last Year
</DropdownItem>
<DropdownItem divider />
<DropdownItem>
Custom...
</DropdownItem>
</DropdownMenu>
</UncontrolledButtonDropdown>
</ButtonGroup>
<ButtonGroup className="align-self-start">
<Button color="primary" className="mb-2 mr-2 px-3">
Apply
</Button>
</ButtonGroup>
<ButtonGroup>
<Button
color="link"
className="mb-2 text-decoration-none align-self-start"
onClick={this._resetLayout}
>
Reset
</Button>
</ButtonGroup>
</ButtonToolbar>
</div>
</Container>
<Grid>
<Grid.Row
onLayoutChange={ layouts => this.setState({ layouts }) }
columnSizes={ this.state.layouts }
rowHeight={ 55 }
>
<Grid.Col { ...(applyColumn('metric-v-target-users', layouts)) }>
<Card>
<CardHeader className="bb-0 pt-3 pb-0 bg-none" tag="h6">
<i className="fa fa-ellipsis-v text-body mr-2"></i> Users
</CardHeader>
<CardBody className="pt-2">
<MetricVsTarget
title="Users"
value="168,793"
progressbarColor="danger"
targetValue="169,001"
/>
</CardBody>
<CardFooter>
<Media className="small">
<Media left>
<i className="fa fa-fw fa-info-circle mr-2"></i>
</Media>
<Media body>
How do your users (visitors), sessions (visits) and pageviews
metrics for <abbr title="attribute" className="text-dark">www.webkom.com</abbr> compare to your targets over the last 30 days?
</Media>
</Media>
</CardFooter>
</Card>
</Grid.Col>
<Grid.Col { ...(applyColumn('metric-v-target-sessions', layouts)) }>
<Card>
<CardHeader className="bb-0 pt-3 pb-0 bg-none" tag="h6">
<i className="fa fa-ellipsis-v text-body mr-2"></i> Sessions
</CardHeader>
<CardBody className="pt-2">
<MetricVsTarget
title="Sessions"
value="529,747"
progressbarValue="67"
progressbarColor="primary"
targetValue="782,957"
/>
</CardBody>
<CardFooter>
<Media className="small">
<Media left>
<i className="fa fa-fw fa-info-circle mr-2"></i>
</Media>
<Media body>
How do your users (visitors), sessions (visits) and pageviews
metrics for <abbr title="attribute" className="text-dark">www.webkom.com</abbr> compare to your targets over the last 30 days?
</Media>
</Media>
</CardFooter>
</Card>
</Grid.Col>
<Grid.Col { ...(applyColumn('metric-v-target-pageviews', layouts)) }>
<Card>
<CardHeader className="bb-0 pt-3 pb-0 bg-none" tag="h6">
<i className="fa fa-ellipsis-v text-body mr-2"></i> Pageviews
</CardHeader>
<CardBody className="pt-2">
<MetricVsTarget
title="Pageviews"
value="1,763,981"
progressbarValue="34"
progressbarColor="secondary"
targetValue="1,567,334"
/>
</CardBody>
<CardFooter>
<Media className="small">
<Media left>
<i className="fa fa-fw fa-info-circle mr-2"></i>
</Media>
<Media body>
How do your users (visitors), sessions (visits) and pageviews
metrics for <abbr title="attribute" className="text-dark">www.webkom.com</abbr> compare to your targets over the last 30 days?
</Media>
</Media>
</CardFooter>
</Card>
</Grid.Col>
<Grid.Col { ...(applyColumn('analytics-audience-metrics', layouts)) }>
<Card>
<CardHeader className="bb-0 pt-3 pb-4 bg-none" tag="h6">
<i className="fa fa-ellipsis-v mr-2 text-body"></i> Analytics Audience Metrics
</CardHeader>
<CardBody className="d-flex flex-column">
<Grid.Ready>
<AudienceMetricsChart height="100%" className="flex-fill" />
</Grid.Ready>
</CardBody>
<CardFooter>
<Media className="small">
<Media left>
<i className="fa fa-fw fa-info-circle mr-2"></i>
</Media>
<Media body>
How do your users (visitors), sessions (visits) and pageviews
metrics for <abbr title="attribute" className="text-dark">www.webkom.com</abbr> compare to your targets over the last 30 days?
</Media>
</Media>
</CardFooter>
</Card>
</Grid.Col>
<Grid.Col { ...(applyColumn('traffic-channels', layouts)) }>
<Card className="d-flex flex-column">
<CardHeader className="bb-0 pt-3 bg-none" tag="h6">
<i className="fa fa-ellipsis-v text-body mr-2"></i> Traffic Channels
</CardHeader>
<Table responsive className="table mb-0">
<thead>
<tr>
<th scope="col" className="bt-0">Channel</th>
<th scope="col" className="bt-0">Sessions</th>
<th scope="col" className="bt-0">Prev Period</th>
<th scope="col" className="text-right bt-0">Change</th>
<th scope="col" className="bt-0 text-right">Trend</th>
</tr>
</thead>
<tbody>
<tr>
<td className="align-middle text-inverse">
Organic Search
</td>
<td className="align-middle">
{ faker.finance.amount() }
</td>
<td className="align-middle">
<span data-faker="[[finance.amount]]">949.00</span>
</td>
<td className="align-middle text-right">
-75,0%
<i className="fa fa-caret-down text-danger ml-1"></i>
</td>
<td className="text-right align-middle">
<TinyAreaChart />
</td>
</tr>
<tr>
<td className="align-middle text-inverse">
Direct
</td>
<td className="align-middle">
{ faker.finance.amount() }
</td>
<td className="align-middle">
<span data-faker="[[finance.amount]]">157.11</span>
</td>
<td className="align-middle text-right">
82,1%
<i className="fa fa-caret-up text-success ml-1"></i>
</td>
<td className="text-right align-middle">
<TinyAreaChart />
</td>
</tr>
<tr>
<td className="align-middle text-inverse">
Social Media
</td>
<td className="align-middle">
{ faker.finance.amount() }
</td>
<td className="align-middle">
<span data-faker="[[finance.amount]]">949.00</span>
</td>
<td className="align-middle text-right">
-75,0%
<i className="fa fa-caret-down text-danger ml-1"></i>
</td>
<td className="text-right align-middle">
<TinyAreaChart />
</td>
</tr>
</tbody>
</Table>
<CardFooter className="mt-auto flex-grow-0">
<Media className="small">
<Media left>
<i className="fa fa-fw fa-info-circle mr-2"></i>
</Media>
<Media body>
How do your users (visitors), sessions (visits) and pageviews
metrics for <abbr title="attribute" className="text-dark">www.webkom.com</abbr> compare to your targets over the last 30 days?
</Media>
</Media>
</CardFooter>
</Card>
</Grid.Col>
<Grid.Col { ...(applyColumn('sessions', layouts)) }>
<Card>
<CardHeader className="bb-0 pt-3 pb-0 bg-none" tag="h6">
<i className="fa fa-ellipsis-v text-body mr-2"></i> Sessions by Device Type
</CardHeader>
<CardBody className="d-flex flex-column">
<div className={classes['sessions']}>
<SessionByDevice
title="Desktop"
color="purple"
valuePercent="51,5"
value="201,345"
/>
<SessionByDevice
title="Mobile"
color="primary"
valuePercent="34,4"
value="134,201"
/>
<SessionByDevice
title="Mobile"
color="success"
valuePercent="20,8"
value="81,525"
/>
</div>
<Progress multi className={ classes['sessions-progress'] } style={{height: "5px"}}>
<Progress bar color="purple" value="25" style={{height: "5px"}} />
<Progress bar color="primary" value="30" style={{height: "5px"}} />
<Progress bar color="success" value="45" style={{height: "5px"}} />
</Progress>
</CardBody>
<CardFooter className={`${classes['sessions-info']} mt-auto`}>
<Media className="small">
<Media left>
<i className="fa fa-fw fa-info-circle mr-2"></i>
</Media>
<Media body>
How do your users (visitors), sessions (visits) and pageviews
metrics for <abbr title="attribute" className="text-dark">www.webkom.com</abbr> compare to your targets over the last 30 days?
</Media>
</Media>
</CardFooter>
</Card>
</Grid.Col>
<Grid.Col { ...(applyColumn('spend', layouts)) }>
<Card>
<CardHeader className="d-flex bb-0 pt-3 bg-none">
<span className="h6">
<i className="fa fa-ellipsis-v text-body mr-2"></i> Spend
</span>
<span className="ml-auto text-right">
Dec 22, 2016 to<br />
Dec 31, 2016 <i>(prev.)</i>
</span>
</CardHeader>
<CardBody>
<div className="text-center mb-4">
<h2>
$2,890.12
</h2>
<div className="mb-1 text-success">
<i className="fa mr-1 fa-caret-up"></i>
23.34%
</div>
<div>
vs { faker.finance .amount() } (prev.)
</div>
</div>
</CardBody>
<CardBody className="p-0">
<TinyAreaChart height={ 70 } />
</CardBody>
<CardFooter>
<Media className="small">
<Media left>
<i className="fa fa-fw fa-info-circle mr-2"></i>
</Media>
<Media body>
How do your users (visitors), sessions (visits) and pageviews
metrics for <abbr title="attribute" className="text-dark">www.webkom.com</abbr> compare to your targets over the last 30 days?
</Media>
</Media>
</CardFooter>
</Card>
</Grid.Col>
<Grid.Col { ...(applyColumn('website-performance', layouts)) }>
<Card>
<CardHeader className="bb-0 pt-3 bg-none" tag="h6">
<i className="fa fa-ellipsis-v mr-2"></i> Website Performance
</CardHeader>
<ListGroup flush>
<ListGroupItem className="bt-0">
<WebsitePerformance
title="Bounce Rate (Avg)"
value="46,893"
valuePercentIcon="caret-up"
valuePercentColor="text-success"
valuePercent="23,91"
/>
</ListGroupItem>
<ListGroupItem className="bt-0">
<WebsitePerformance
title="Pageviews (Avg)"
value="2.15"
valuePercentColor="text-danger"
valuePercent="42,82"
/>
</ListGroupItem>
<ListGroupItem className="bt-0">
<WebsitePerformance
title="New Sessions"
value="76,40"
valuePercentIcon="caret-up"
valuePercentColor="text-success"
valuePercent="23,91"
/>
</ListGroupItem>
<ListGroupItem className="bt-0 bb-0">
<WebsitePerformance
title="Time on Site (Avg)"
value="2m:16s"
valuePercentColor="text-danger"
valuePercent="65,28"
/>
</ListGroupItem>
</ListGroup>
<CardFooter className="flex-grow-0 mt-auto">
<Media className="small">
<Media left>
<i className="fa fa-fw fa-info-circle mr-2"></i>
</Media>
<Media body>
How do your users (visitors), sessions (visits) and pageviews
metrics for <abbr title="attribute" className="text-dark">www.webkom.com</abbr> compare to your targets over the last 30 days?
</Media>
</Media>
</CardFooter>
</Card>
</Grid.Col>
<Grid.Col { ...(applyColumn('organic-traffic', layouts)) }>
<Card>
<CardHeader className="d-flex bb-0 pt-3 bg-none">
<Media>
<Media left className="mr-3">
<i className="fa fa-ellipsis-v"></i>
</Media>
<Media body>
<span className="h6">
How did my organic traffic perform?
</span>
<br />
<span>
Dec 22, 2016 to Dec 31, 2016 <i>(prev.)</i>
</span>
</Media>
</Media>
</CardHeader>
<CardBody className="d-flex flex-column">
<div className="text-center mb-4">
<h6>Organics Sessons</h6>
<h2>
46,982
</h2>
<div className="mb-1 text-success">
<i className="fa mr-1 fa-caret-up"></i>
23.34% <span> vs { faker.finance .amount() } <i>(prev.)</i>
</span>
</div>
</div>
<Grid.Ready>
<SimpleLineChart height="100%" className="flex-fill"/>
</Grid.Ready>
</CardBody>
<CardFooter>
<Media className="small">
<Media left>
<i className="fa fa-fw fa-info-circle mr-2"></i>
</Media>
<Media body>
How do your users (visitors), sessions (visits) and pageviews
metrics for <abbr title="attribute" className="text-dark">www.webkom.com</abbr> compare to your targets over the last 30 days?
</Media>
</Media>
</CardFooter>
</Card>
</Grid.Col>
</Grid.Row>
</Grid>
</React.Fragment>
);
}
}

View File

@@ -0,0 +1,60 @@
@import "./../../../styles/variables.scss";
.sessions {
display: flex;
width: 100%;
margin-bottom: 1rem;
}
.sessions-progress {
margin-bottom: 2rem;
}
.session {
flex: 1 1 auto;
&__percentage {
font-size: 2.5rem;
}
}
:global(.float-column--size-xs),
:global(.float-column--size-sm) {
.sessions {
flex-direction: column;
}
.session {
display: flex;
align-items: center;
padding: 0.5rem 0;
&__values {
margin-left: auto;
}
&__percentage {
font-size: 1.2rem;
font-weight: bold;
line-height: 1;
}
&__value {
line-height: 1;
}
+ .session {
border-top: 1px solid $gray-400;
}
}
}
:global(.float-column--size-xs) {
.sessions-progress {
margin-top: 2rem;
}
.sessions-info {
display: none;
}
}

View File

@@ -0,0 +1,77 @@
import React from 'react';
import PropTypes from 'prop-types';
import _ from 'lodash';
import moment from 'moment';
import {
ResponsiveContainer,
ComposedChart,
CartesianGrid,
XAxis,
YAxis,
Tooltip,
Legend,
Area,
Bar,
Dot
} from './../../../../components/recharts';
import colors from './../../../../colors';
const CHART_LENGTH = 30;
const CHART_START_DATE = moment().subtract(CHART_LENGTH, 'months');
const dataGenerator = (index) => {
const referenceValue = _.random(1500, 1800);
const halfedRefVal = referenceValue / 2;
return {
key: index,
month: moment(CHART_START_DATE).add(index, 'months').format('MMM YY'),
"Tokyo": referenceValue,
"New York": _.random(1200, 2200),
"Berlin": referenceValue - _.random(halfedRefVal, halfedRefVal * 1.1),
};
}
const data = _.times(CHART_LENGTH, dataGenerator);
// eslint-disable-next-line react/prop-types
const generateDot = ({stroke, ...other}) => (
<Dot
{ ...other }
fill={ stroke }
stroke={ colors['white'] }
strokeWidth={ 2 }
r={ 5 }
/>
);
export const AudienceMetricsChart = ({height, className}) => (
<ResponsiveContainer
width='100%'
minHeight='250px'
className={ className }
{...(!_.isUndefined(height) ? {
height
} : {
aspect: 2 / 1
})}
>
<ComposedChart data={data}
margin={{top: 20, right: 20, bottom: 20, left: 20}}>
<CartesianGrid stroke={ colors['200'] } strokeDasharray='none' vertical={ false }/>
<XAxis dataKey="month"/>
<YAxis />
<Tooltip />
<Legend />
<Bar dataKey='New York' barSize={5} fill={ colors['400'] } />
<Area dataKey='Tokyo' fill={ colors['purple-02'] } stroke={ colors['purple'] } activeDot={ null } />
<Area dataKey='Berlin' fill={ colors['primary-04'] } stroke={ colors['primary'] } activeDot={{r: 5}} dot={generateDot} />
</ComposedChart>
</ResponsiveContainer>
);
AudienceMetricsChart.propTypes = {
height: PropTypes.string,
className: PropTypes.string
}

View File

@@ -0,0 +1,3 @@
import { Analytics } from './Analytics';
export default Analytics;

View File

@@ -0,0 +1,262 @@
import React from 'react';
import {
Container,
Row,
Card,
CardBody,
CustomInput,
CardDeck,
Table,
UncontrolledDropdown,
DropdownToggle,
DropdownMenu,
DropdownItem,
CardTitle,
ListGroup,
ListGroupItem,
Button,
Col
} from './../../../components';
import { setupPage } from './../../../components/Layout/setupPage';
import { HeaderMain } from "../../components/HeaderMain";
import {
TrTableInvoices
} from "../../components/Financial/TrTableInvoices"
import {
TinyDonutChartBig
} from "../../components/Financial/TinyDonutChartBig"
import {
StackedAreaChart
} from "../../components/Financial/StackedAreaChart"
import {
TrTableRecentFundings
} from "../../components/Financial/TrTableRecentFundings"
/*eslint-disable */
const progressCompletion = [
"25",
"50",
"75",
"97"
];
/*eslint-enable */
const Financial = () => (
<Container>
<Row className="mb-2">
<Col lg={ 12 }>
<HeaderMain
title="Financial"
className="mb-4 mb-lg-3"
/>
</Col>
</Row>
<Row>
<Col lg={ 12 }>
<div className="hr-text hr-text-center mt-4 mb-4">
<span>Your Cash</span>
</div>
</Col>
<Col lg={ 3 }>
<Card className="mb-3">
<CardBody>
<CardTitle tag="h6" className="mb-4">
Main Fundings
</CardTitle>
<div>
<div className="mb-3">
<h2>$ 188.00</h2>
</div>
<div>
<i className="fa fa-caret-down fa-fw text-danger"></i> $464.00
</div>
</div>
</CardBody>
</Card>
</Col>
<Col lg={ 3 }>
<Card className="mb-3">
<CardBody>
<CardTitle tag="h6" className="mb-4">
Invoices
</CardTitle>
<div>
<div className="mb-3">
<h2>$ 553.00</h2>
</div>
<div>
<i className="fa fa-caret-down fa-fw text-danger"></i> $994.00
</div>
</div>
</CardBody>
</Card>
</Col>
<Col lg={ 3 }>
<Card className="mb-3">
<CardBody>
<CardTitle tag="h6" className="mb-4">
Accounts Receivable
</CardTitle>
<div>
<div className="mb-3">
<h2>$ 451.00</h2>
</div>
<div>
<i className="fa fa-caret-up fa-fw text-success"></i> $938.00
</div>
</div>
</CardBody>
</Card>
</Col>
<Col lg={ 3 }>
<Card className="mb-3">
<CardBody>
<CardTitle tag="h6" className="mb-4">
Accounts Receivable
</CardTitle>
<div>
<div className="mb-3">
<h2>$ 194.00</h2>
</div>
<div>
<i className="fa fa-caret-up fa-fw text-success"></i> $519.00
</div>
</div>
</CardBody>
</Card>
</Col>
<Col lg={ 12 }>
<CardDeck>
<Card className="mb-3">
<CardBody>
<CardTitle className="mb-4 d-flex">
<h6>Money Map</h6>
<UncontrolledDropdown className="ml-auto">
<DropdownToggle color="link" size="sm" caret className="pt-0">
Last Month
</DropdownToggle>
<DropdownMenu right>
<DropdownItem header>Select Date</DropdownItem>
<DropdownItem active>Last Month</DropdownItem>
<DropdownItem>Last 12 Months</DropdownItem>
<DropdownItem divider />
<DropdownItem>Custom...</DropdownItem>
</DropdownMenu>
</UncontrolledDropdown>
</CardTitle>
<div className="d-flex justify-content-center">
<TinyDonutChartBig />
</div>
</CardBody>
</Card>
<Card className="mb-3">
<CardBody>
<CardTitle className="mb-1 d-flex">
<h6>Recent Fundings</h6>
<Button color="link" size="sm" className="pt-0 ml-auto">
View All <i className="fa fa-angle-right"></i>
</Button>
</CardTitle>
</CardBody>
<Table responsive striped className="mb-0">
<thead>
<tr>
<th className="bt-0">Company</th>
<th className="bt-0">Amount</th>
<th className="bt-0">Date</th>
<th className="bt-0 text-right">Action</th>
</tr>
</thead>
<tbody>
<TrTableRecentFundings />
</tbody>
</Table>
</Card>
</CardDeck>
<Card className="mb-3">
<CardBody>
<CardTitle className="mb-1 d-flex">
<h6>Invoices</h6>
<Button color="link" size="sm" className="pt-0 ml-auto">
View All <i className="fa fa-angle-right"></i>
</Button>
</CardTitle>
</CardBody>
<Table responsive striped className="mb-0">
<thead>
<tr>
<th className="bt-0">Company</th>
<th className="bt-0">Amount</th>
<th className="bt-0">Date</th>
<th className="bt-0">Contact</th>
<th className="bt-0">Email</th>
<th className="bt-0 text-right">Action</th>
</tr>
</thead>
<tbody>
<TrTableInvoices />
</tbody>
</Table>
</Card>
</Col>
<Col lg={ 8 }>
<Card className="mb-3">
<CardBody>
<CardTitle className="mb-4 d-flex">
<h6>Account Performance</h6>
</CardTitle>
<div className="d-flex justify-content-center">
<StackedAreaChart />
</div>
</CardBody>
</Card>
</Col>
<Col lg={ 4 }>
<Card className="mb-3">
<CardBody>
<CardTitle className="mb-1">
<h6 className="mb-0">Settings</h6>
</CardTitle>
</CardBody>
<ListGroup flush>
<ListGroupItem className="d-flex">
<span>My Cash</span>
<CustomInput type="switch" id="exampleCustomSwitch" name="customSwitch" label="" className="ml-auto" />
</ListGroupItem>
<ListGroupItem className="d-flex">
<span>My Cap</span>
<CustomInput type="switch" id="exampleCustomSwitch1" name="customSwitch" label="" className="ml-auto" defaultChecked />
</ListGroupItem>
<ListGroupItem className="d-flex">
<span>Client List</span>
<CustomInput type="switch" id="exampleCustomSwitch2" name="customSwitch" label="" className="ml-auto" defaultChecked />
</ListGroupItem>
<ListGroupItem className="d-flex">
<span>Recent Fundings</span>
<CustomInput type="switch" id="exampleCustomSwitch3" name="customSwitch" label="" className="ml-auto" />
</ListGroupItem>
<ListGroupItem className="d-flex">
<span>Invoice Creator</span>
<CustomInput type="switch" id="exampleCustomSwitch4" name="customSwitch" label="" className="ml-auto" />
</ListGroupItem>
<ListGroupItem className="d-flex">
<span>Sales Lead</span>
<CustomInput type="switch" id="exampleCustomSwitch5" name="customSwitch" label="" className="ml-auto" defaultChecked />
</ListGroupItem>
<ListGroupItem className="d-flex">
<span>Q&A</span>
<CustomInput type="switch" id="exampleCustomSwitch6" name="customSwitch" label="" className="ml-auto" defaultChecked />
</ListGroupItem>
</ListGroup>
</Card>
</Col>
</Row>
</Container>
);
export default setupPage({
pageTitle: 'Financial'
})(Financial);

View File

@@ -0,0 +1,3 @@
import Financial from './Financial';
export default Financial;

View File

@@ -0,0 +1,348 @@
import React from 'react';
import {
Container,
Row,
Card,
CardBody,
Badge,
Table,
CardTitle,
Progress,
Col
} from './../../../components';
import { setupPage } from './../../../components/Layout/setupPage';
import { HeaderMain } from "../../components/HeaderMain";
import {
TinyDonutChart
} from "../../components/Monitor/TinyDonutChart"
import {
TinyDonutChartBig
} from "../../components/Monitor/TinyDonutChartBig"
import {
TrTableMonitor
} from "../../components/Monitor/TrTableMonitor"
import {
TinyAreaChart
} from "../../components/Monitor/TinyAreaChart"
/*eslint-disable */
const progressCompletion = [
"25",
"50",
"75",
"97"
];
/*eslint-enable */
const Monitor = () => (
<Container>
<Row className="mb-2">
<Col lg={ 12 }>
<HeaderMain
title="Monitor"
className="mb-4 mb-lg-5"
/>
</Col>
</Row>
<Row>
<Col lg={ 4 }>
<Card className="mb-3">
<CardBody>
<CardTitle tag="h6" className="mb-4">
System Monitoring
</CardTitle>
<div className="mb-4">
<div>
<h6 className="mb-1">CPU</h6>
<p>Intel Celeron G1610 @2.60Ghz</p>
</div>
<div className="d-flex justify-content-between">
<span className="d-flex align-items-center mr-2">Core 0</span>
<Progress value="44" className="mt-2 w-50" style={{height: "5px"}} />
<span className="ml-2 text-inverse">86%</span>
</div>
<div className="d-flex justify-content-between">
<span className="d-flex align-items-center mr-2">Core 1</span>
<Progress value="74" className="mt-2 w-50" style={{height: "5px"}} />
<span className="ml-2 text-inverse">40%</span>
</div>
</div>
<div className="mb-4">
<div>
<h6 className="mb-1">Memory <small>(Ram)</small></h6>
<p>GSkill 2 x 8 GB DDR3 @1333 Mhz</p>
</div>
<div className="mb-3 d-flex">
<TinyDonutChart />
<div className="ml-2 align-self-center">
<h2 className="mb-0">52 <small>GB</small></h2>
<span>Total Memory</span>
</div>
</div>
<div className="d-flex justify-content-between">
<div className="text-left">
<div className="small mb-2">
<i className="fa fa-circle fa-fw text-info"></i> Allocated
</div>
<h6 className="mb-0">48,7 MB</h6>
<span>79%</span>
</div>
<div className="text-left">
<div className="small mb-2">
<i className="fa fa-circle fa-fw text-primary"></i> In Cache
</div>
<h6 className="mb-0">26,9 MB</h6>
<span>65%</span>
</div>
<div className="text-left">
<div className="small mb-2">
<i className="fa fa-circle fa-fw text-gray-300"></i> Available
</div>
<h6 className="mb-0">2,7 MB</h6>
<span>34%</span>
</div>
</div>
</div>
<div>
<div>
<h6 className="mb-1">Interface Traffic <small>(re0)</small></h6>
<p>Intel Celeron G1610 @2.60Ghz</p>
</div>
</div>
</CardBody>
</Card>
<Card className="mb-3">
<CardBody>
<CardTitle tag="h6" className="mb-4">
Network Monitoring
</CardTitle>
<div>
<div>
<h6 className="mb-1">Interface Traffic <small>(re0)</small></h6>
<p>Intel Celeron G1610 @2.60Ghz</p>
</div>
</div>
<TinyAreaChart />
</CardBody>
</Card>
<Card className="mb-3">
<CardBody>
<CardTitle tag="h6" className="mb-4">
Hardware Temperature
</CardTitle>
<div className="mb-4">
<div>
<h6>CPU <small>(idle)</small></h6>
</div>
<div className="d-flex justify-content-between mb-3">
<div className="text-left">
<i className="fa fa-caret-down fa-fw text-danger"></i>Min: 19ºC
</div>
<div className="text-left">
<i className="fa fa-caret-up fa-fw text-success"></i>Min: 26ºC
</div>
<div className="text-left">
<i className="fa fa-caret-up fa-fw text-success"></i>Min: 32ºC
</div>
</div>
<TinyAreaChart />
</div>
<div className="mb-4">
<div>
<h6>HDD1 WD30EZRX <small>(ada0)</small></h6>
</div>
<div className="d-flex justify-content-between mb-3">
<div className="text-left">
<i className="fa fa-caret-down fa-fw text-danger"></i>Min: 19ºC
</div>
<div className="text-left">
<i className="fa fa-caret-up fa-fw text-success"></i>Min: 26ºC
</div>
<div className="text-left">
<i className="fa fa-caret-up fa-fw text-success"></i>Min: 32ºC
</div>
</div>
<TinyAreaChart />
</div>
<div>
<div>
<h6>HDD1 WD30EZRX <small>(ada1)</small></h6>
</div>
<div className="d-flex justify-content-between mb-3">
<div className="text-left">
<i className="fa fa-caret-down fa-fw text-danger"></i>Min: 19ºC
</div>
<div className="text-left">
<i className="fa fa-caret-up fa-fw text-success"></i>Min: 26ºC
</div>
<div className="text-left">
<i className="fa fa-caret-up fa-fw text-success"></i>Min: 32ºC
</div>
</div>
<TinyAreaChart />
</div>
</CardBody>
</Card>
</Col>
<Col lg={ 8 }>
<p>
Nesciunt odit eius nihil molestiae tenetur earum enim quidem. Aperiam non sapiente voluptatum in doloremque rerum magnam quae sed.
Quisquam eos non voluptate sapiente qui temporibus harum in illo. Aliquid at dolor labore. Qui error modi.
</p>
<div className="hr-text hr-text-left mt-4 mb-4">
<span>Volume Status</span>
</div>
<Row className="mb-5">
<Col lg={ 3 }>
<div>
<div className="mb-3">
<h6 className="mb-1">Path</h6>
<Badge color="secondary" pill>/mtn/volume1</Badge>
</div>
<div className="mb-0">
<h2 className="mb-0">2.24 <small>TiB</small></h2>
<span>Volume Size</span>
</div>
<TinyDonutChartBig
pieColor="primary"
/>
<div className="d-flex justify-content-between">
<div className="text-left">
<div className="small mb-2">
<i className="fa fa-circle fa-fw text-purple"></i> Used Space
</div>
<h6 className="mb-0">483,7 MB</h6>
<span>79%</span>
</div>
<div className="text-left">
<div className="small mb-2">
<i className="fa fa-circle fa-fw text-gray-300"></i> Free Space
</div>
<h6 className="mb-0">269,3 MB</h6>
<span>65%</span>
</div>
</div>
</div>
</Col>
<Col lg={ 3 }>
<div>
<div className="mb-3">
<h6 className="mb-1">Path</h6>
<Badge color="secondary" pill>/mtn/volume1</Badge>
</div>
<div className="mb-0">
<h2 className="mb-0">5.07 <small>TiB</small></h2>
<span>Volume Size</span>
</div>
<TinyDonutChartBig
pieColor="purple"
/>
<div className="d-flex justify-content-between">
<div className="text-left">
<div className="small mb-2">
<i className="fa fa-circle fa-fw text-purple"></i> Used Space
</div>
<h6 className="mb-0">48,7 MB</h6>
<span>79%</span>
</div>
<div className="text-left">
<div className="small mb-2">
<i className="fa fa-circle fa-fw text-gray-300"></i> Free Space
</div>
<h6 className="mb-0">26,9 MB</h6>
<span>65%</span>
</div>
</div>
</div>
</Col>
<Col lg={ 3 }>
<div>
<div className="mb-3">
<h6 className="mb-1">Path</h6>
<Badge color="secondary" pill>/mtn/volume1</Badge>
</div>
<div className="mb-0">
<h2 className="mb-0">3.16 <small>TiB</small></h2>
<span>Volume Size</span>
</div>
<TinyDonutChartBig
pieColor="success"
/>
<div className="d-flex justify-content-between">
<div className="text-left">
<div className="small mb-2">
<i className="fa fa-circle fa-fw text-success"></i> Used Space
</div>
<h6 className="mb-0">483,3 MB</h6>
<span>79%</span>
</div>
<div className="text-left">
<div className="small mb-2">
<i className="fa fa-circle fa-fw text-gray-300"></i> Free Space
</div>
<h6 className="mb-0">262,9 MB</h6>
<span>65%</span>
</div>
</div>
</div>
</Col>
<Col lg={ 3 }>
<div>
<div className="mb-3">
<h6 className="mb-1">Path</h6>
<Badge color="secondary" pill>/mtn/volume1</Badge>
</div>
<div className="mb-0">
<h2 className="mb-0">9.27 <small>TiB</small></h2>
<span>Volume Size</span>
</div>
<TinyDonutChartBig
pieColor="yellow"
/>
<div className="d-flex justify-content-between">
<div className="text-left">
<div className="small mb-2">
<i className="fa fa-circle fa-fw text-yellow"></i> Used Space
</div>
<h6 className="mb-0">482,7 MB</h6>
<span>79%</span>
</div>
<div className="text-left">
<div className="small mb-2">
<i className="fa fa-circle fa-fw text-gray-300"></i> Free Space
</div>
<h6 className="mb-0">26,9 MB</h6>
<span>65%</span>
</div>
</div>
</div>
</Col>
</Row>
<div className="hr-text hr-text-left mt-2 mb-4">
<span>Mounted Devices</span>
</div>
<Table responsive>
<thead>
<tr>
<th className="bt-0">Description</th>
<th className="bt-0">RAID</th>
<th className="bt-0">Capacity</th>
<th className="bt-0 text-right">Usage</th>
<th className="bt-0 text-right">Status</th>
</tr>
</thead>
<tbody>
<TrTableMonitor />
</tbody>
</Table>
</Col>
</Row>
</Container>
);
export default setupPage({
pageTitle: 'Monitor'
})(Monitor);

View File

@@ -0,0 +1,3 @@
import Monitor from './Monitor';
export default Monitor;

View File

@@ -0,0 +1,120 @@
import React from 'react';
import uid from 'uuid/v4';
import faker from 'faker/locale/en_US';
import { DragDropContext, Droppable, Draggable } from 'react-beautiful-dnd';
import _ from 'lodash';
import {
ProjectsList
} from "../../components/ProjectsDashboards/ProjectsList";
const reorder = (list, startIndex, endIndex) => {
const result = Array.from(list);
const [removed] = result.splice(startIndex, 1);
result.splice(endIndex, 0, removed);
return result;
};
export class DraggableProjects extends React.Component {
constructor(props) {
super(props);
this.state = {
projects: [
{
id: uid(),
title: faker.commerce.productName(),
badgeColor: "success",
badgeTitle: "Active",
progressValue: "76",
completeValue: "13",
myTasksValue: "35",
daysDueValue: "6"
}, {
id: uid(),
title: faker.commerce.productName(),
badgeColor: "danger",
badgeTitle: "Suspended",
progressValue: "23",
completeValue: "6",
myTasksValue: "87",
daysDueValue: "15"
}, {
id: uid(),
title: faker.commerce.productName(),
badgeColor: "secondary",
badgeTitle: "Archived",
progressValue: "4",
completeValue: "98",
myTasksValue: "21",
daysDueValue: "7"
}, {
id: uid(),
title: faker.commerce.productName(),
badgeColor: "warning",
badgeTitle: "Paused",
progressValue: "63",
completeValue: "98",
myTasksValue: "21",
daysDueValue: "7"
}
]
};
this.onDragEnd = this.onDragEnd.bind(this);
}
onDragEnd(result) {
if (!result.destination) {
return;
}
const projects = reorder(
this.state.projects,
result.source.index,
result.destination.index
);
this.setState({
projects,
});
}
render() {
return (
<DragDropContext onDragEnd={this.onDragEnd}>
<Droppable droppableId="droppable">
{(provided, snapshot) => (
<div
className="list-group list-group-flush"
ref={provided.innerRef}
>
{_.map(this.state.projects, ({id, ...project}, index) => (
<Draggable key={id} draggableId={id} index={index}>
{(provided, snapshot) => (
<div
className="list-group-item"
ref={provided.innerRef}
{...provided.draggableProps}
{...provided.dragHandleProps}
style={{
...provided.draggableProps.style,
borderLeft: snapshot.isDragging && '1px solid rgba(0, 0, 0, 0.125)',
borderRight: snapshot.isDragging && '1px solid rgba(0, 0, 0, 0.125)'
}}
>
<ProjectsList
{ ...project }
/>
</div>
)}
</Draggable>
))}
</div>
)}
</Droppable>
</DragDropContext>
);
}
}

View File

@@ -0,0 +1,304 @@
import React from 'react';
import faker from 'faker/locale/en_US';
import { Link } from 'react-router-dom';
import {
Container,
Row,
Card,
CardBody,
Badge,
Table,
CardTitle,
Button,
InputGroup,
InputGroupAddon,
Input,
ListGroup,
ListGroupItem,
Media,
Col
} from './../../../components';
import { setupPage } from './../../../components/Layout/setupPage';
import { HeaderMain } from "../../components/HeaderMain";
import {
TasksMedia
} from "../../components/ProjectsDashboards/TasksMedia";
import {
TinyDonutChart
} from "../../components/ProjectsDashboards/TinyDonutChart"
import {
TinyDonutChartAllProjects
} from "../../components/ProjectsDashboards/TinyDonutChartAllProjects"
import {
TimelineMini
} from "../../components/Timeline/TimelineMini"
import { DraggableProjects } from './DraggableProjects';
const ProjectsDashboard = () => (
<Container>
<Row className="mb-5">
<Col lg={ 12 }>
<HeaderMain
title="Projects"
className="mb-4 mb-lg-5"
/>
<p>
{ faker.lorem.paragraph() }
</p>
</Col>
<Col lg={ 3 }>
<div className="hr-text hr-text-center my-2">
<span>Payments</span>
</div>
<Row>
<Col xs={ 6 } className="text-center">
<p className="text-center mb-0">
<i className="fa fa-circle text-primary mr-2"></i>
Today
</p>
<h4 className="mt-2 mb-0">
$3,267
</h4>
</Col>
<Col xs={ 6 } className="text-center">
<p className="text-center mb-0">
<i className="fa fa-circle text-info mr-2"></i>
This Month
</p>
<h4 className="mt-2 mb-0">
$8,091
</h4>
</Col>
</Row>
<div className="hr-text hr-text-center mb-2 mt-3">
<span>Invoices</span>
</div>
<Row className="mb-4 mb-xl-0">
<Col xs={ 6 } className="text-center">
<p className="text-center mb-0">
<i className="fa fa-circle text-warning mr-2"></i>
Due
</p>
<h4 className="mt-2 mb-0">
$4,007
</h4>
</Col>
<Col xs={ 6 } className="text-center">
<p className="text-center mb-0">
<i className="fa fa-circle text-danger mr-2"></i>
Overdue
</p>
<h4 className="mt-2 mb-0">
$11,091
</h4>
</Col>
</Row>
</Col>
<Col lg={ 3 } md={ 6 }>
<div className="hr-text hr-text-left my-2">
<span>All Tasks</span>
</div>
<Media>
<Media left className="mr-3">
<TinyDonutChart />
</Media>
<Media body>
<div>
<i className="fa fa-circle mr-1 text-yellow"></i>
<span className="text-inverse">23</span> Pending
</div>
<div>
<i className="fa fa-circle mr-1 text-danger"></i>
<span className="text-inverse">3</span> Behind
</div>
<div>
<i className="fa fa-circle mr-1 text-success"></i>
<span className="text-inverse">34</span> Completed
</div>
</Media>
</Media>
</Col>
<Col lg={ 3 } md={ 6 } className="mb-4 mb-lg-0">
<div className="hr-text hr-text-left my-2">
<span>All Projects</span>
</div>
<Media>
<Media left className="mr-3">
<TinyDonutChartAllProjects />
</Media>
<Media body>
<div>
<i className="fa fa-circle mr-1 text-info"></i>
<span className="text-inverse">14</span> Pending
</div>
<div>
<i className="fa fa-circle mr-1 text-primary"></i>
<span className="text-inverse">24</span> Behind
</div>
<div>
<i className="fa fa-circle mr-1 text-purple"></i>
<span className="text-inverse">2</span> Completed
</div>
</Media>
</Media>
</Col>
<Col lg={ 3 }>
<div className="hr-text hr-text-left my-2">
<span>My Stats</span>
</div>
<Table size="sm">
<tbody>
<tr>
<td className="text-inverse bt-0">Active Projects</td>
<td className="text-right bt-0">
<Badge color="success" pill>6</Badge>
</td>
</tr>
<tr>
<td className="text-inverse">Open Tasks</td>
<td className="text-right">
<Badge color="primary" pill>4</Badge>
</td>
</tr>
<tr>
<td className="text-inverse">Support Tickets</td>
<td className="text-right">
<Badge color="info" pill>15</Badge>
</td>
</tr>
<tr>
<td className="text-inverse">Active Timers</td>
<td className="text-right">
<Badge color="secondary" pill>0</Badge>
</td>
</tr>
</tbody>
</Table>
</Col>
</Row>
<Row>
<Col lg={ 4 }>
<Card className="mb-3">
<CardBody>
<CardTitle tag="h6" className="mb-3">
Tasks
</CardTitle>
<InputGroup>
<Input placeholder="Search Tasks..." />
<InputGroupAddon addonType="append">
<Button color="secondary" outline tag={ Link } to="/apps/tasks/list">
<i className="fa fa-search"></i>
</Button>
</InputGroupAddon>
</InputGroup>
</CardBody>
<ListGroup flush>
<ListGroupItem action>
<TasksMedia
iconColor="success"
/>
</ListGroupItem>
<ListGroupItem action>
<TasksMedia
iconColor="danger"
id="2"
/>
</ListGroupItem>
<ListGroupItem action>
<TasksMedia
iconColor="warning"
id="3"
/>
</ListGroupItem>
<ListGroupItem action>
<TasksMedia
id="4"
/>
</ListGroupItem>
<ListGroupItem action tag={ Link } to="/apps/tasks/list" className="text-center">
View All Tasks
<i className="fa fa-angle-right ml-2"></i>
</ListGroupItem>
</ListGroup>
</Card>
</Col>
<Col lg={ 4 }>
<Card className="mb-3">
<CardBody>
<CardTitle tag="h6">
Timeline Mini
</CardTitle>
<TimelineMini
showPillDate
pillDate="2 Days ago"
icon="times-circle"
iconClassName="text-danger"
badgeTitle="Alert"
badgeColor="danger"
/>
<TimelineMini
icon="question-circle"
iconClassName="text-warning"
badgeTitle="Warning"
badgeColor="warning"
/>
<TimelineMini
icon="info-circle"
iconClassName="text-info"
badgeTitle="Info"
badgeColor="info"
/>
<TimelineMini
showPillDate
pillDate="Yesterday"
icon="plus-circle"
iconClassName="text-primary"
badgeTitle="Message"
badgeColor="primary"
/>
<TimelineMini
icon="check-circle"
iconClassName="text-success"
badgeTitle="Success"
badgeColor="success"
/>
<TimelineMini
icon="circle"
badgeTitle="Obsolete"
/>
</CardBody>
<ListGroup flush>
<ListGroupItem action tag={ Link } to="/pages/timeline" className="text-center">
Timeline Details
<i className="fa fa-angle-right ml-2"></i>
</ListGroupItem>
</ListGroup>
</Card>
</Col>
<Col lg={ 4 }>
<Card className="mb-3">
<CardBody>
<CardTitle tag="h6" className="mb-3">
Projects
</CardTitle>
<InputGroup>
<Input placeholder="Search Projects..." />
<InputGroupAddon addonType="append">
<Button color="secondary" outline tag={ Link } to="/apps/projects/list">
<i className="fa fa-search"></i>
</Button>
</InputGroupAddon>
</InputGroup>
</CardBody>
<DraggableProjects />
</Card>
</Col>
</Row>
</Container>
);
export default setupPage({
pageTitle: 'Projects Dashboard'
})(ProjectsDashboard);

View File

@@ -0,0 +1,3 @@
import ProjectsDashboard from './ProjectsDashboard';
export default ProjectsDashboard;

View File

@@ -0,0 +1,936 @@
import React from 'react';
import faker from 'faker/locale/en_US';
import {
Container,
Row,
Card,
CardBody,
UncontrolledTooltip,
Progress,
Table,
Nav,
NavItem,
NavLink,
CardTitle,
ListGroup,
ListGroupItem,
UncontrolledCollapse,
Col
} from './../../../components';
import { setupPage } from './../../../components/Layout/setupPage';
import { HeaderMain } from "../../components/HeaderMain";
import {
TinyLineChart
} from "./components/TinyLineChart";
import {
TinyAreaChart
} from "./components/TinyAreaChart";
import {
TinyArcChart
} from "./components/TinyArcChart";
/*eslint-disable */
const progressCompletion = [
"25",
"50",
"75",
"97"
];
/*eslint-enable */
const Reports = () => (
<Container>
<Row className="mb-2">
<Col lg={ 12 }>
<HeaderMain
title="Reports"
className="mb-3 mb-lg-5"
/>
</Col>
<Col xl={ 3 } lg={ 6 } className="mb-4 mb-lg-0">
<Card>
<CardBody className="bb-0">
<span className="d-flex">
<CardTitle tag="h6" className="mb-0 bb-0">
Temperatures
</CardTitle>
<span className="ml-auto justify-content-start">
<a href="javascript:;" className="ml-auto justify-content-start pr-2 text-decoration-none" id="TemperaturesTooltipSettings">
<i className="fa fa-fw fa-sliders"></i>
</a> <a href="javascript:;" id="TemperaturesTooltipAdd" className="text-decoration-none">
<i className="fa fa-fw fa-plus"></i>
</a>
</span>
<UncontrolledTooltip placement="top" target="TemperaturesTooltipSettings">
Settings
</UncontrolledTooltip>
<UncontrolledTooltip placement="top" target="TemperaturesTooltipAdd">
Add
</UncontrolledTooltip>
</span>
</CardBody>
<ListGroup flush>
<ListGroupItem tag="a" href="#" id="TemperaturesProcessorToggler" className="by-0 d-flex text-decoration-none">
Processor
<i className="fa fa-fw fa-angle-down ml-auto justify-content-end" id="TemperaturesProcessorTooltip"></i>
</ListGroupItem>
<UncontrolledTooltip placement="top" target="TemperaturesProcessorTooltip">
Show/Hide Section
</UncontrolledTooltip>
</ListGroup>
<UncontrolledCollapse toggler="#TemperaturesProcessorToggler" isOpen>
<CardBody className="pt-0">
<span className="d-flex mb-4">
<h1>39º</h1>
<span className="ml-auto text-right">
102º F <br />
<i className="fa fa-arrow-down fa-fw text-primary"></i>
</span>
</span>
<div className="d-flex justify-content-between mb-2">
<span className="d-flex align-items-center mr-2">Core 0</span>
<Progress value="25" className="mt-2 w-50 progress" style={{height: "5px"}} />
<span className="ml-2 text-inverse">86º</span>
</div>
<div className="d-flex justify-content-between mb-2">
<span className="d-flex align-items-center mr-2">Core 1</span>
<Progress value="59" className="mt-2 w-50 progress" style={{height: "5px"}} />
<span className="ml-2 text-inverse">40º</span>
</div>
<div className="d-flex justify-content-between mb-2">
<span className="d-flex align-items-center mr-2">Core 2</span>
<Progress value="25" className="mt-2 w-50 progress" style={{height: "5px"}} />
<span className="ml-2 text-inverse">86º</span>
</div>
<div className="d-flex justify-content-between mb-2">
<span className="d-flex align-items-center mr-2">Core 3</span>
<Progress value="59" className="mt-2 w-50 progress" style={{height: "5px"}} />
<span className="ml-2 text-inverse">40º</span>
</div>
</CardBody>
</UncontrolledCollapse>
<ListGroup flush>
<ListGroupItem tag="a" href="#" id="TemperaturesGraphicsToggler" className="by-0 d-flex text-decoration-none">
Graphics
<i className="fa fa-fw fa-angle-down ml-auto justify-content-end" id="TemperaturesGraphicsTooltip"></i>
</ListGroupItem>
<UncontrolledTooltip placement="top" target="TemperaturesGraphicsTooltip">
Show/Hide Section
</UncontrolledTooltip>
</ListGroup>
<UncontrolledCollapse toggler="#TemperaturesGraphicsToggler" isOpen>
<CardBody className="pt-0">
<span className="d-flex mb-3">
<h1>68º</h1>
<span className="ml-auto text-right">
102º F <br />
<i className="fa fa-arrow-up fa-fw text-danger"></i>
</span>
</span>
<div className="d-flex justify-content-between mb-2">
<span className="d-flex align-items-center mr-2">Core</span>
<Progress value="85" className="mt-2 w-50" style={{height: "5px"}} />
<span className="ml-2 text-inverse">86º</span>
</div>
</CardBody>
</UncontrolledCollapse>
<ListGroup flush>
<ListGroupItem tag="a" href="#" id="TemperaturesStorageToggler" className="by-0 d-flex text-decoration-none">
Storage
<i className="fa fa-fw fa-angle-down ml-auto justify-content-end" id="TemperaturesStorageTooltip"></i>
</ListGroupItem>
<UncontrolledTooltip placement="top" target="TemperaturesStorageTooltip">
Show/Hide Section
</UncontrolledTooltip>
</ListGroup>
<UncontrolledCollapse toggler="#TemperaturesStorageToggler" isOpen>
<CardBody className="pt-0">
<div className="mb-3 mt-2">
<TinyLineChart />
</div>
<div className="mb-3">
<span className="d-flex">
<span className="text-inverse">
Samsung 850 PRO
</span>
<span className="ml-auto">
512GB
</span>
</span>
<div className="d-flex justify-content-between">
<span className="d-flex align-items-center mr-2">SSD 0</span>
<Progress value="25" className="mt-2 w-50 progress" style={{height: "5px"}} />
<span className="ml-2 text-inverse">31º</span>
</div>
</div>
<div className="mb-3">
<span className="d-flex">
<span className="text-inverse">
WD Black
</span>
<span className="ml-auto">
1TB
</span>
</span>
<div className="d-flex justify-content-between">
<span className="d-flex align-items-center mr-2">HDD 1</span>
<Progress value="67" className="mt-2 w-50 progress" style={{height: "5px"}} />
<span className="ml-2 text-inverse">81º</span>
</div>
</div>
<div className="mb-0">
<span className="d-flex">
<span className="text-inverse">
Quantum PCI
</span>
<span className="ml-auto">
2TB
</span>
</span>
<div className="d-flex justify-content-between">
<span className="d-flex align-items-center mr-2">SSD 3</span>
<Progress value="35" className="mt-2 w-50 progress" style={{height: "5px"}} />
<span className="ml-2 text-inverse">21º</span>
</div>
</div>
</CardBody>
</UncontrolledCollapse>
</Card>
</Col>
<Col xl={ 3 } lg={ 6 } className="mb-4 mb-lg-0">
<Card className="mb-sm-4 mb-xl-0">
<CardBody className="bb-0">
<span className="d-flex">
<CardTitle tag="h6" className="mb-0 bb-0">
Usage
</CardTitle>
<span className="ml-auto justify-content-start">
<a href="javascript:;" className="ml-auto justify-content-start pr-2 text-decoration-none" id="UsageTooltipSettings">
<i className="fa fa-fw fa-sliders"></i>
</a> <a href="javascript:;" id="UsageTooltipAdd" className="text-decoration-none">
<i className="fa fa-fw fa-plus"></i>
</a>
</span>
<UncontrolledTooltip placement="top" target="UsageTooltipSettings">
Settings
</UncontrolledTooltip>
<UncontrolledTooltip placement="top" target="UsageTooltipAdd">
Add
</UncontrolledTooltip>
</span>
</CardBody>
<ListGroup flush>
<ListGroupItem tag="a" href="#" id="ProcessorToggler" className="by-0 d-flex text-decoration-none">
Processor
<i className="fa fa-fw fa-angle-down ml-auto justify-content-end" id="ProcessorTooltip"></i>
</ListGroupItem>
<UncontrolledTooltip placement="top" target="ProcessorTooltip">
Show/Hide Section
</UncontrolledTooltip>
</ListGroup>
<UncontrolledCollapse toggler="#ProcessorToggler" isOpen>
<CardBody className="pt-0">
<dl className="row mb-3">
<dt className="col-sm-5">CPU</dt>
<dd className="col-sm-7 text-right text-inverse">Intel Core i7</dd>
<dt className="col-sm-5">Base (Turbo)</dt>
<dd className="col-sm-7 text-right text-inverse">4 GHz (4.4 GHz)</dd>
<dt className="col-sm-8">Cores (Threads)</dt>
<dd className="col-sm-4 text-right text-inverse">4 (8)</dd>
</dl>
<Progress multi className="mt-2" style={{height: "5px"}}>
<Progress bar value="45" />
<Progress bar color="danger" value="15" />
</Progress>
</CardBody>
</UncontrolledCollapse>
<ListGroup flush>
<ListGroupItem tag="a" href="#" id="UsageLoadToggler" className="by-0 d-flex text-decoration-none">
Usage (Load)
<i className="fa fa-fw fa-angle-down ml-auto justify-content-end" id="UsageLoadTooltip"></i>
</ListGroupItem>
<UncontrolledTooltip placement="top" target="UsageLoadTooltip">
Show/Hide Section
</UncontrolledTooltip>
<UncontrolledCollapse toggler="#UsageLoadToggler" isOpen>
<CardBody className="pt-0">
<Table size="sm" className="mb-0">
<thead>
<tr>
<th scope="col" className="bt-0 bb-0 align-middle text-left">
<h1 className="pt-0">78%</h1>
</th>
<th scope="col" className="text-center bt-0 bb-0 align-bottom" width="5">
<p style={{ textOrientation: 'unset', lineHeight: '0' }} className="mb-0">
<i className="fa fa-fw fa-stop text-gray-300"></i>
<i className="fa fa-fw fa-stop text-gray-300"></i>
<i className="fa fa-fw fa-stop text-primary"></i>
<i className="fa fa-fw fa-stop text-primary"></i>
<i className="fa fa-fw fa-stop text-primary"></i>
</p>
</th>
<th scope="col" className="text-center bt-0 bb-0 align-bottom" width="5">
<p style={{ textOrientation: 'unset', lineHeight: '0' }} className="mb-0">
<i className="fa fa-fw fa-stop text-gray-300"></i>
<i className="fa fa-fw fa-stop text-gray-300"></i>
<i className="fa fa-fw fa-stop text-gray-300"></i>
<i className="fa fa-fw fa-stop text-primary"></i>
<i className="fa fa-fw fa-stop text-primary"></i>
</p>
</th>
<th scope="col" className="text-center bt-0 bb-0 align-bottom" width="5">
<p style={{ textOrientation: 'unset', lineHeight: '0' }} className="mb-0">
<i className="fa fa-fw fa-stop text-gray-300"></i>
<i className="fa fa-fw fa-stop text-gray-300"></i>
<i className="fa fa-fw fa-stop text-gray-300"></i>
<i className="fa fa-fw fa-stop text-gray-300"></i>
<i className="fa fa-fw fa-stop text-primary"></i>
</p>
</th>
</tr>
</thead>
<tbody>
<tr>
<td className="bt-0">Cores</td>
<td className="bt-0 text-center text-inverse">1</td>
<td className="bt-0 text-center text-inverse">2</td>
<td className="bt-0 text-center text-inverse">3</td>
</tr>
<tr>
<td>Usage %</td>
<td className="text-center text-inverse">27</td>
<td className="text-center text-inverse">78</td>
<td className="text-center text-inverse">13</td>
</tr>
<tr>
<td>Tendency</td>
<td className="text-center">
<i className="fa fa-arrow-down fa-fw text-danger"></i>
</td>
<td className="text-center">
<i className="fa fa-arrow-down fa-fw text-danger"></i>
</td>
<td className="text-center">
<i className="fa fa-arrow-down fa-fw text-danger"></i>
</td>
</tr>
</tbody>
</Table>
</CardBody>
</UncontrolledCollapse>
</ListGroup>
<ListGroup flush>
<ListGroupItem tag="a" href="#" id="GraphicsToggler" className="by-0 d-flex text-decoration-none">
Graphics
<i className="fa fa-fw fa-angle-down ml-auto justify-content-end" id="GraphicsTooltip"></i>
</ListGroupItem>
<UncontrolledTooltip placement="top" target="GraphicsTooltip">
Show/Hide Section
</UncontrolledTooltip>
<UncontrolledCollapse toggler="#GraphicsToggler" isOpen>
<CardBody className="pt-0">
<dl className="row mb-0">
<dt className="col-sm-5">GPU Name</dt>
<dd className="col-sm-7 text-right text-inverse">NVIDIA GTX 980</dd>
<dt className="col-sm-5">Bus Width</dt>
<dd className="col-sm-7 text-right text-inverse">4 GHz (4.4 GHz)</dd>
<dt className="col-sm-7">Memory</dt>
<dd className="col-sm-5 text-right text-inverse">4096 GDDR5</dd>
</dl>
</CardBody>
</UncontrolledCollapse>
</ListGroup>
<ListGroup flush>
<ListGroupItem tag="a" href="#" id="UsageLoadToggler2" className="by-0 d-flex text-decoration-none">
Usage (Load)
<i className="fa fa-fw fa-angle-down ml-auto justify-content-end" id="UsageLoadTooltip2"></i>
</ListGroupItem>
<UncontrolledTooltip placement="top" target="UsageLoadTooltip2">
Show/Hide Section
</UncontrolledTooltip>
<UncontrolledCollapse toggler="#UsageLoadToggler2" isOpen>
<CardBody className="pt-0">
<Table size="sm">
<thead>
<tr>
<th scope="col" className="bt-0 bb-0 align-top text-left">
<h1 className="pt-0">85%</h1>
</th>
<th scope="col" className="text-right bt-0 bb-0 align-middle">
<TinyArcChart />
</th>
</tr>
</thead>
<tbody>
<tr>
<td className="bt-0">Current Core Clock</td>
<td className="bt-0 text-right text-inverse">390Mhz</td>
</tr>
<tr>
<td>Current Memory Clock</td>
<td className="text-right text-inverse">160MHz</td>
</tr>
<tr>
<td>Memory Usage (%)</td>
<td className="text-right text-inverse">306MB (7%)</td>
</tr>
<tr>
<td>Tendency</td>
<td className="text-right">
<i className="fa fa-arrow-down fa-fw text-danger"></i>
</td>
</tr>
</tbody>
</Table>
</CardBody>
</UncontrolledCollapse>
</ListGroup>
</Card>
</Col>
<Col xl={ 6 } lg={ 12 }>
<Row>
<Col xl={ 6 } lg={ 6 }>
<Card className="mb-4">
<CardBody className="bb-0">
<span className="d-flex">
<CardTitle tag="h6" className="mb-0 bb-0">
Allocation
</CardTitle>
<span className="ml-auto justify-content-start">
<a href="javascript:;" className="ml-auto justify-content-start pr-2 text-decoration-none" id="AllocationTooltipSettings">
<i className="fa fa-fw fa-sliders"></i>
</a> <a href="javascript:;" id="AllocationTooltipAdd" className="text-decoration-none">
<i className="fa fa-fw fa-plus"></i>
</a>
</span>
<UncontrolledTooltip placement="top" target="AllocationTooltipSettings">
Settings
</UncontrolledTooltip>
<UncontrolledTooltip placement="top" target="AllocationTooltipAdd">
Add
</UncontrolledTooltip>
</span>
</CardBody>
<ListGroup flush>
<ListGroupItem tag="a" href="#" id="RamToggler" className="by-0 d-flex text-decoration-none">
RAM
<i className="fa fa-fw fa-angle-down ml-auto justify-content-end" id="RamTooltip"></i>
</ListGroupItem>
<UncontrolledTooltip placement="top" target="RamTooltip">
Show/Hide Section
</UncontrolledTooltip>
</ListGroup>
<UncontrolledCollapse toggler="#RamToggler" isOpen>
<CardBody className="pt-0">
<dl className="row mb-3">
<dt className="col-sm-5">Installed</dt>
<dd className="col-sm-7 text-right text-inverse">16GB DDR3</dd>
<dt className="col-sm-5">DRAM Freq</dt>
<dd className="col-sm-7 text-right text-inverse">4 GHz (4.4 GHz)</dd>
<dt className="col-sm-8">Cores (Threads)</dt>
<dd className="col-sm-4 text-right text-inverse">4 (8)</dd>
</dl>
<Progress multi className="mt-2 mb-3" style={{height: "5px"}}>
<Progress bar value="45" />
<Progress bar color="danger" value="15" />
</Progress>
<Table size="sm">
<tbody>
<tr>
<td className="bt-0">
<i className="fa fa fa-circle-o text-primary mr-1"></i>
In Use
</td>
<td className="text-right text-inverse bt-0">
796MB <i className="fa fa-arrow-up fa-fw text-gray-300"></i>
</td>
</tr>
<tr>
<td>
<i className="fa fa fa-circle-o text-danger mr-1"></i>
In Cache
</td>
<td className="text-right text-inverse">
180MB <i className="fa fa-arrow-down fa-fw text-gray-300"></i>
</td>
</tr>
<tr>
<td>
<i className="fa fa fa-circle-o text-gray-300 mr-1"></i>
Available
</td>
<td className="text-right text-inverse">
1672MB <i className="fa fa-arrow-down fa-fw text-gray-300"></i>
</td>
</tr>
</tbody>
</Table>
<div>
<TinyAreaChart />
</div>
</CardBody>
</UncontrolledCollapse>
</Card>
</Col>
<Col xl={ 6 } lg={ 6 }>
<Card className="mb-4">
<CardBody className="bb-0">
<span className="d-flex">
<CardTitle tag="h6" className="mb-0 bb-0">
Cooling
</CardTitle>
<span className="ml-auto justify-content-start">
<a href="javascript:;" className="ml-auto justify-content-start pr-2 text-decoration-none" id="CoolingTooltipSettings">
<i className="fa fa-fw fa-sliders"></i>
</a> <a href="javascript:;" id="CoolingTooltipAdd" className="text-decoration-none">
<i className="fa fa-fw fa-plus"></i>
</a>
</span>
<UncontrolledTooltip placement="top" target="CoolingTooltipSettings">
Settings
</UncontrolledTooltip>
<UncontrolledTooltip placement="top" target="CoolingTooltipAdd">
Add
</UncontrolledTooltip>
</span>
</CardBody>
<ListGroup flush>
<ListGroupItem tag="a" href="#" id="FansToggler" className="by-0 d-flex text-decoration-none">
Fans
<i className="fa fa-fw fa-angle-down ml-auto justify-content-end" id="FansTooltip"></i>
</ListGroupItem>
<UncontrolledTooltip placement="top" target="FansTooltip">
Show/Hide Section
</UncontrolledTooltip>
</ListGroup>
<UncontrolledCollapse toggler="#FansToggler" isOpen>
<CardBody className="pt-0">
<div className="mb-2">
<span className="d-flex">
<span>
Left Fontal Fan
</span>
<span className="ml-auto text-inverse">
120mm
</span>
</span>
<input type="range" className="custom-range pb-0" id="leftFontalFan" />
<span className="d-flex">
<span>
<i className="fa fa-fw fa-leaf"></i>
</span>
<span className="ml-auto">
250RPM
</span>
</span>
</div>
<div className="mb-4">
<span className="d-flex">
<span>
Right Fontal Fan
</span>
<span className="ml-auto text-inverse">
120mm
</span>
</span>
<input type="range" max="3" step="1" className="custom-range pb-0" id="leftFontalFan" />
<span className="d-flex">
<span>
<i className="fa fa-fw fa-leaf"></i>
</span>
<span className="ml-auto">
250RPM
</span>
</span>
</div>
<Nav pills className="nav-fill">
<NavItem>
<NavLink href="#" active>
<i className="fa fa-sliders"></i>
</NavLink>
</NavItem>
<NavItem>
<NavLink href="#">
<i className="fa fa-leaf"></i>
</NavLink>
</NavItem>
<NavItem>
<NavLink href="#">
<i className="fa fa-dashboard"></i>
</NavLink>
</NavItem>
</Nav>
</CardBody>
</UncontrolledCollapse>
</Card>
</Col>
<Col xl={ 12 }>
<Card>
<CardBody className="bb-0 pb-0">
<span className="d-flex">
<CardTitle tag="h6" className="mb-0 bb-0">
Activity
</CardTitle>
<span className="ml-auto justify-content-start">
<a href="javascript:;" className="ml-auto justify-content-start pr-2" id="ActivityTooltipSettings">
<i className="fa fa-fw fa-sliders"></i>
</a> <a href="javascript:;" id="ActivityTooltipAdd">
<i className="fa fa-fw fa-plus"></i>
</a>
</span>
<UncontrolledTooltip placement="top" target="ActivityTooltipSettings">
Settings
</UncontrolledTooltip>
<UncontrolledTooltip placement="top" target="ActivityTooltipAdd">
Add
</UncontrolledTooltip>
</span>
</CardBody>
<CardBody>
<Nav tabs className="mb-3">
<NavItem>
<NavLink href="#" active>
Processes
</NavLink>
</NavItem>
<NavItem>
<NavLink href="#">
Network
</NavLink>
</NavItem>
<NavItem>
<NavLink href="#">
Storage
</NavLink>
</NavItem>
<NavItem>
<NavLink href="#">
Energy
</NavLink>
</NavItem>
</Nav>
<Row>
<Col lg={ 6 }>
<dl className="row mb-0">
<dt className="col-sm-5">
Operating System
</dt>
<dd className="col-sm-7 text-right text-inverse">
Windows 10 x64
</dd>
<dt className="col-sm-5">
Build
</dt>
<dd className="col-sm-7 text-right text-inverse">
9876
</dd>
</dl>
</Col>
<Col lg={ 6 }>
<dl className="row mb-0">
<dt className="col-sm-5">
Admin
</dt>
<dd className="col-sm-7 text-right text-inverse">
John Malkovich
</dd>
<dt className="col-sm-5">
Network
</dt>
<dd className="col-sm-7 text-right text-inverse">
Wireless Network
</dd>
</dl>
</Col>
</Row>
<Table hover className="mb-0" size="sm" responsive>
<thead>
<tr>
<th scope="col" className="bt-0">
Process
</th>
<th scope="col" className="align-middle text-right bt-0">
Read
</th>
<th scope="col" className="align-middle text-right bt-0">
Threads
</th>
<th scope="col" className="align-middle text-right bt-0">
CPU
</th>
<th scope="col" className="align-middle text-right bt-0">
GPU
</th>
<th scope="col" className="align-middle text-right bt-0">
Memory
</th>
<th scope="col" className="align-middle text-right bt-0">
Tend
</th>
<th className="bt-0"></th>
</tr>
</thead>
<tbody>
<tr>
<td className="align-middle text-nowrap">
<i className="fa fa fa-window-maximize mr-1"></i>
<span className="text-inverse">
Chrome
</span>
</td>
<td className="align-middle text-right">
30MB/s
</td>
<td className="align-middle text-right">
20
</td>
<td className="align-middle text-right">
24%
</td>
<td className="align-middle text-right">
56%
</td>
<td className="align-middle text-right">
7.9GB
</td>
<td className="align-middle text-right">
<i className="fa fa-arrow-down fa-fw text-danger"></i>
</td>
<td className="align-middle text-right">
<a href="#" id="tr1">
<i className="fa fa-fw fa-angle-down"></i>
</a>
<UncontrolledTooltip placement="top" target="tr1">
Show Details
</UncontrolledTooltip>
</td>
</tr>
<UncontrolledCollapse toggler="#tr1">
<tr>
<td colSpan="8" className="bt-0">
<samp className="small">{ faker.internet.ip() }</samp>
</td>
</tr>
</UncontrolledCollapse>
<tr>
<td className="align-middle text-nowrap">
<i className="fa fa fa-window-maximize mr-1"></i>
<span className="text-inverse">
Photoshop
</span>
</td>
<td className="align-middle text-right">
40MB/s
</td>
<td className="align-middle text-right">
60
</td>
<td claclassNamess="align-middle text-right">
25%
</td>
<td className="align-middle text-right">
10%
</td>
<td className="align-middle text-right">
1.1GB
</td>
<td className="align-middle text-right">
<i className="fa fa-arrow-up fa-fw text-success"></i>
</td>
<td className="align-middle text-right">
<a href="#" id="tr2">
<i className="fa fa-fw fa-angle-down"></i>
</a>
<UncontrolledTooltip placement="top" target="tr2">
Show Details
</UncontrolledTooltip>
</td>
</tr>
<UncontrolledCollapse toggler="#tr2">
<tr>
<td colSpan="8" className="bt-0">
<samp className="small">{ faker.internet.ip() }</samp>
</td>
</tr>
</UncontrolledCollapse>
<tr>
<td className="align-middle text-nowrap">
<i className="fa fa fa-window-maximize mr-1"></i>
<span className="text-inverse">
Chrome
</span>
</td>
<td className="align-middle text-right">
60MB/s
</td>
<td className="align-middle text-right">
60
</td>
<td className="align-middle text-right">
19%
</td>
<td className="align-middle text-right">
56%
</td>
<td className="align-middle text-right">
2.4GB
</td>
<td className="align-middle text-right">
<i className="fa fa-arrow-down fa-fw text-danger"></i>
</td>
<td className="align-middle text-right">
<a href="#" id="tr3">
<i className="fa fa-fw fa-angle-down"></i>
</a>
<UncontrolledTooltip placement="top" target="tr3">
Show Details
</UncontrolledTooltip>
</td>
</tr>
<UncontrolledCollapse toggler="#tr3">
<tr>
<td colSpan="8" className="bt-0">
<samp className="small">{ faker.internet.ip() }</samp>
</td>
</tr>
</UncontrolledCollapse>
<tr>
<td className="align-middle text-nowrap">
<i className="fa fa fa-window-maximize mr-1"></i>
<span className="text-inverse">
Safari
</span>
</td>
<td className="align-middle text-right">
10MB/s
</td>
<td className="align-middle text-right">
40
</td>
<td className="align-middle text-right">
19%
</td>
<td className="align-middle text-right">
56%
</td>
<td className="align-middle text-right">
1.1GB
</td>
<td className="align-middle text-right">
<i className="fa fa-arrow-up fa-fw text-success"></i>
</td>
<td className="align-middle text-right">
<a href="#" id="tr4">
<i className="fa fa-fw fa-angle-down"></i>
</a>
<UncontrolledTooltip placement="top" target="tr4">
Show Details
</UncontrolledTooltip>
</td>
</tr>
<UncontrolledCollapse toggler="#tr4">
<tr>
<td colSpan="8" className="bt-0">
<samp className="small">{ faker.internet.ip() }</samp>
</td>
</tr>
</UncontrolledCollapse>
<tr>
<td className="align-middle text-nowrap">
<i className="fa fa fa-window-maximize mr-1"></i>
<span className="text-inverse">
Chrome
</span>
</td>
<td className="align-middle text-right">
30MB/s
</td>
<td className="align-middle text-right">
10
</td>
<td className="align-middle text-right">
27%
</td>
<td className="align-middle text-right">
27%
</td>
<td className="align-middle text-right">
9.1GB
</td>
<td className="align-middle text-right">
<i className="fa fa-arrow-down fa-fw text-danger"></i>
</td>
<td className="align-middle text-right">
<a href="#" id="tr5">
<i className="fa fa-fw fa-angle-down"></i>
</a>
<UncontrolledTooltip placement="top" target="tr5">
Show Details
</UncontrolledTooltip>
</td>
</tr>
<UncontrolledCollapse toggler="#tr5">
<tr>
<td colSpan="8" className="bt-0">
<samp className="small">{ faker.internet.ip() }</samp>
</td>
</tr>
</UncontrolledCollapse>
<tr>
<td className="align-middle text-nowrap">
<i className="fa fa fa-window-maximize mr-1"></i>
<span className="text-inverse">
System
</span>
</td>
<td className="align-middle text-right">
70MB/s
</td>
<td className="align-middle text-right">
30
</td>
<td className="align-middle text-right">
10%
</td>
<td className="align-middle text-right">
19%
</td>
<td className="align-middle text-right">
8.8GB
</td>
<td className="align-middle text-right">
<i className="fa fa-arrow-up fa-fw text-success"></i>
</td>
<td className="align-middle text-right">
<a href="#" id="tr6">
<i className="fa fa-fw fa-angle-down"></i>
</a>
<UncontrolledTooltip placement="top" target="tr6">
Show Details
</UncontrolledTooltip>
</td>
</tr>
<UncontrolledCollapse toggler="#tr6">
<tr>
<td colSpan="8" className="bt-0">
<samp className="small">{ faker.internet.ip() }</samp>
</td>
</tr>
</UncontrolledCollapse>
</tbody>
</Table>
</CardBody>
</Card>
</Col>
</Row>
</Col>
</Row>
</Container>
);
export default setupPage({
pageTitle: 'Reports'
})(Reports);

View File

@@ -0,0 +1,38 @@
import React from 'react';
import {
PieChart,
Pie,
Cell
} from './../../../../components/recharts';
import colors from './../../../../colors';
const data = [
{name: 'Free', value: 40 },
{name: 'Used', value: 60 },
];
const COLORS = [ colors['light'], colors['primary'] ];
const SIZE = 70;
const TinyArcChart = () => (
<PieChart width={ SIZE } height={ SIZE / 2 } margin={{ bottom: 0, top: 0, left: 5, right: 5 }}>
<Pie
data={data}
dataKey="value"
stroke="no"
innerRadius={ SIZE / 2 * 0.7 }
outerRadius={ SIZE / 2 }
fill="#8884d8"
startAngle={ 0 }
endAngle={ 180 }
cy="100%"
>
{
data.map((entry, index) => <Cell key={ index } fill={COLORS[index % COLORS.length]} />)
}
</Pie>
</PieChart>
);
export { TinyArcChart };

View File

@@ -0,0 +1,21 @@
import React from 'react';
import _ from 'lodash';
import {
ResponsiveContainer,
AreaChart,
Area
} from './../../../../components/recharts';
import colors from './../../../../colors';
const data = _.times(20, () => ({ pv: Math.random() * 100 }));
const TinyAreaChart = () => (
<ResponsiveContainer width='100%' height={ 40 }>
<AreaChart data={data}>
<Area dataKey='pv' stroke={ colors['primary'] } fill={ colors['primary-03'] } />
</AreaChart>
</ResponsiveContainer>
);
export { TinyAreaChart };

View File

@@ -0,0 +1,30 @@
import React from 'react';
import _ from 'lodash';
import {
ResponsiveContainer,
LineChart,
Line,
Dot
} from './../../../../components/recharts';
import colors from './../../../../colors';
const data = _.times(20, () => ({ pv: Math.random() * 100 }));
const generateDot = ({stroke, ...other}) => (
<Dot
{ ...other }
fill={ stroke }
stroke={ colors['white'] }
/>
);
const TinyLineChart = () => (
<ResponsiveContainer width='100%' height={ 40 }>
<LineChart data={data}>
<Line dataKey='pv' stroke={ colors['primary-07'] } strokeWidth={2} activeDot={{r: 5}} dot={generateDot} />
</LineChart>
</ResponsiveContainer>
);
export { TinyLineChart };

View File

@@ -0,0 +1,3 @@
import Reports from './Reports';
export default Reports;

View File

@@ -0,0 +1,244 @@
import React from 'react';
import {
Container,
Row,
Card,
CardBody,
Table,
Badge,
CardTitle,
Nav,
NavLink,
NavItem,
Col
} from './../../../components';
import { setupPage } from './../../../components/Layout/setupPage';
import { HeaderMain } from "../../components/HeaderMain";
import {
SimpleLineChart
} from "../../components/Stock/SimpleLineChart"
import {
TrTableSummary
} from "../../components/Stock/TrTableSummary"
import {
TrTableStock
} from "../../components/Stock/TrTableStock"
import {
TrTableFavStock
} from "../../components/Stock/TrTableFavStock"
/*eslint-disable */
const progressCompletion = [
"25",
"50",
"75",
"97"
];
/*eslint-enable */
const Stock = () => (
<Container>
<Row className="mb-2">
<Col lg={ 12 }>
<HeaderMain
title="Stock"
className="mb-4 mb-lg-4"
/>
</Col>
</Row>
<Row>
<Col lg={ 12 }>
<Table responsive size="sm" className="mb-4 text-nowrap">
<thead>
<tr>
<td className="bt-0">
<h4 className="mb-1">
Your 5
</h4>
Favourites Stocks
</td>
<td className="bt-0">
<h4 className="mb-1">
AAPL
</h4>
<span className="text-success">
<i className="fa fa-caret-up mr-1"></i> 22.38
</span> / 5.9%
</td>
<td className="bt-0">
<h4 className="mb-1">
MSFT
</h4>
<span className="text-danger">
<i className="fa fa-caret-down mr-1"></i> 34.18
</span> / 0.56%
</td>
<td className="bt-0">
<h4 className="mb-1">
CAT
</h4>
<span className="text-success">
<i className="fa fa-caret-up mr-1"></i> 22.38
</span> / 12.2%
</td>
<td className="bt-0">
<h4 className="mb-1">
TSLA
</h4>
<span className="text-success">
<i className="fa fa-caret-up mr-1"></i> 31.03
</span> / 3.2%
</td>
<td className="bt-0">
<h4 className="mb-1">
KN
</h4>
<span className="text-danger">
<i className="fa fa-caret-down mr-1"></i> 34.18
</span> / 0.56%
</td>
<td className="bt-0">
<h4 className="mb-1">
QZA
</h4>
<span className="text-danger">
<i className="fa fa-caret-down mr-1"></i> 4.02
</span> / 4.21%
</td>
</tr>
</thead>
<tbody>
<TrTableFavStock />
</tbody>
</Table>
</Col>
<Col lg={ 8 }>
<Card className="mb-3">
<CardBody>
<span className="d-flex mb-3">
<CardTitle>
<h6>Nokia Corp.
<small>
<span className="text-success ml-2">
<i className="fa fa-caret-up mr-1"></i> 22.38
</span> / 5.9%
</small>
</h6>
</CardTitle>
<Badge pill className="ml-auto align-self-start"> Score: 7.24 </Badge>
</span>
<div className="text-center">
<SimpleLineChart />
<div className="d-flex mt-4">
<dl className="row">
<dt className="col-sm-4 text-left text-sm-right">Open</dt>
<dd className="col-sm-8 text-left text-inverse">$834.00</dd>
<dt className="col-sm-4 text-left text-sm-right">High</dt>
<dd className="col-sm-8 text-left text-inverse">$198.00</dd>
<dt className="col-sm-4 text-left text-sm-right">Low</dt>
<dd className="col-sm-8 text-left text-inverse">$575.00</dd>
</dl>
<dl className="row">
<dt className="col-sm-4 text-left text-sm-right">Market Cap</dt>
<dd className="col-sm-8 text-left text-inverse">876.00B</dd>
<dt className="col-sm-4 text-left text-sm-right">P/E ratio (ttm)</dt>
<dd className="col-sm-8 text-left text-inverse">62.00</dd>
<dt className="col-sm-4 text-left text-sm-right">Divided Yield</dt>
<dd className="col-sm-8 text-left text-inverse">94.7%</dd>
</dl>
</div>
</div>
</CardBody>
</Card>
</Col>
<Col lg={ 4 }>
<Card className="mb-3">
<CardBody className="pb-1">
<Nav pills>
<NavItem>
<NavLink href="#" active>Summary</NavLink>
</NavItem>
<NavItem>
<NavLink href="#">Key Stats</NavLink>
</NavItem>
</Nav>
</CardBody>
<Table responsive striped className="mb-0">
<thead>
<tr>
<th className="bt-0">Name</th>
<th className="bt-0 text-right">2013</th>
<th className="bt-0 text-right">2014</th>
<th className="bt-0 text-right">TTM</th>
</tr>
</thead>
<tbody>
<TrTableSummary />
</tbody>
</Table>
</Card>
</Col>
<Col lg={ 6 }>
<Card className="mb-3">
<CardBody className="pb-1">
<CardTitle className="mb-0">
<h6>
Cheap Stock
</h6>
</CardTitle>
</CardBody>
<Table responsive striped className="mb-0">
<thead>
<tr>
<th className="bt-0"></th>
<th className="bt-0 text-right">Price</th>
<th className="bt-0 text-right">Score</th>
<th className="bt-0 text-right">Q</th>
<th className="bt-0 text-right">V</th>
<th className="bt-0 text-right">G</th>
</tr>
</thead>
<tbody>
<TrTableStock />
</tbody>
</Table>
</Card>
</Col>
<Col lg={ 6 }>
<Card className="mb-3">
<CardBody className="pb-1">
<CardTitle className="mb-0">
<h6>
Expensive Stock
</h6>
</CardTitle>
</CardBody>
<Table responsive striped className="mb-0">
<thead>
<tr>
<th className="bt-0"></th>
<th className="bt-0 text-right">Price</th>
<th className="bt-0 text-right">Score</th>
<th className="bt-0 text-right">Q</th>
<th className="bt-0 text-right">V</th>
<th className="bt-0 text-right">G</th>
</tr>
</thead>
<tbody>
<TrTableStock />
</tbody>
</Table>
</Card>
</Col>
</Row>
</Container>
);
export default setupPage({
pageTitle: 'Stock'
})(Stock);

View File

@@ -0,0 +1,3 @@
import Stock from './Stock';
export default Stock;

View File

@@ -0,0 +1,114 @@
import React from 'react';
import faker from 'faker/locale/en_US';
import {
Container,
Row,
Table,
Col
} from './../../../components';
import { HeaderMain } from "../../components/HeaderMain";
import {
CardSystem
} from "./components/CardSystem"
import {
TrSystem
} from "./components/trSystem"
const TrColors = [
{
fill: "primary-02",
stroke: "primary"
},
{
fill: "purple-02",
stroke: "purple"
},
{
fill: "success-02",
stroke: "success"
},
{
fill: "yellow-02",
stroke: "yellow"
}
]
const System = () => (
<Container>
<Row className="mb-5">
<Col lg={ 12 }>
<HeaderMain
title="System"
className="mb-4 mb-lg-5"
/>
</Col>
<Col lg={ 3 } md={ 6 }>
<CardSystem
title="Memory"
badgeColor="primary"
pieColor="primary"
/>
</Col>
<Col lg={ 3 } md={ 6 }>
<CardSystem
title="CPU"
unit="Mb"
badgeColor="purple"
pieColor="purple"
/>
</Col>
<Col lg={ 3 } md={ 6 }>
<CardSystem
title="Traffic"
unit="Kb"
badgeColor="success"
pieColor="success"
/>
</Col>
<Col lg={ 3 } md={ 6 }>
<CardSystem
title="Disk I/O"
unit="Kb"
pieColor="yellow"
/>
</Col>
<Col lg={ 12 }>
<h6 className="mt-5">Processes</h6>
<p className="pb-3">
{ faker.lorem.paragraphs() }
</p>
<Table responsive>
<thead>
<tr>
<th>Name</th>
<th>Memory</th>
<th>CPU</th>
<th>Traffic</th>
<th>Disk I/O</th>
</tr>
</thead>
<tbody>
<TrSystem
colors={TrColors}
/>
<TrSystem
colors={TrColors}
/>
<TrSystem
colors={TrColors}
/>
<TrSystem
colors={TrColors}
/>
<TrSystem
colors={TrColors}
/>
</tbody>
</Table>
</Col>
</Row>
</Container>
);
export default System;

View File

@@ -0,0 +1,78 @@
import React from 'react';
import PropTypes from 'prop-types';
import {
Card,
CardBody,
Badge
} from './../../../../components';
import {
TinyDonutChart
} from "./TinyDonutChart"
import {
TinyBarChart
} from "./TinyBarChart"
import { randomArray } from './../../../../utilities';
const percents = [
"15",
"25",
"30",
"35",
"40",
"45",
"55",
"60",
"75",
"80",
"95"
];
const caret = [
"down",
"up"
];
const CardSystem = (props) => (
<Card className="mb-3 mb-lg-0">
<CardBody className="pb-0">
<div className="d-flex">
<span>
<Badge pill className="mb-3" color={ props.badgeColor } >
<i className={` fa fa-fw fa-caret-${ randomArray(caret) }`} />
{ randomArray(percents) }%
</Badge>
<h6 className="mb-0">
{ props.title }
</h6>
<h2 className="mb-3">
{ randomArray(percents) } <small>{ props.unit }</small>
</h2>
</span>
<span className="text-right ml-auto">
<TinyDonutChart
pieColor={props.pieColor}
/>
</span>
</div>
<TinyBarChart />
</CardBody>
</Card>
);
CardSystem.propTypes = {
title: PropTypes.node,
badgeColor: PropTypes.string,
unit: PropTypes.node,
pieColor: PropTypes.string
};
CardSystem.defaultProps = {
title: "Waiting...",
badgeColor: "secondary",
unit: "%",
pieColor: "500"
};
export { CardSystem };

View File

@@ -0,0 +1,32 @@
import React from 'react';
import PropTypes from 'prop-types';
import _ from 'lodash';
import {
ResponsiveContainer,
AreaChart,
Area
} from './../../../../components/recharts';
import colors from './../../../../colors';
const TinyAreaChart = (props) => {
const data = _.times(20, () => ({ pv: Math.random() * 100 }));
return (
<ResponsiveContainer width='100%' minWidth='150px' height={ 40 }>
<AreaChart data={data}>
<Area dataKey='pv' stroke={ colors[ props.strokeColor ] } fill={ colors[ props.fillColor ] } />
</AreaChart>
</ResponsiveContainer>
)
};
TinyAreaChart.propTypes = {
strokeColor: PropTypes.string,
fillColor: PropTypes.string
};
TinyAreaChart.defaultProps = {
strokeColor: "600",
fillColor: "200",
};
export { TinyAreaChart };

View File

@@ -0,0 +1,31 @@
import React from 'react';
import PropTypes from 'prop-types';
import _ from 'lodash';
import {
ResponsiveContainer,
BarChart,
Bar
} from './../../../../components/recharts';
import colors from './../../../../colors';
const TinyBarChart = (props) => {
const data = _.times(40, () => ({ pv: 20+Math.random() * 100 }));
return (
<ResponsiveContainer width='100%' height={ 80 }>
<BarChart data={data} margin={{ top: 0, bottom: 0, right: 0, left: 0 }}>
<Bar dataKey='pv' fill={ colors[ props.barColor ] } />
</BarChart>
</ResponsiveContainer>
)
};
TinyBarChart.propTypes = {
barColor: PropTypes.string
};
TinyBarChart.defaultProps = {
barColor: "200"
};
export { TinyBarChart };

View File

@@ -0,0 +1,43 @@
import React from 'react';
import PropTypes from 'prop-types';
import {
PieChart,
Pie,
Cell
} from './../../../../components/recharts';
import colors from './../../../../colors';
const TinyDonutChart = (props) => {
const data = [
{name: 'Group A', value: 40+Math.random()*100},
{name: 'Group B', value: Math.random()*100}
];
return (
<PieChart width={ 80 } height={ 80 }>
<Pie
data={data}
dataKey="value"
stroke={ colors[ props.strokeColor ] }
innerRadius={ 28 }
outerRadius={ 35 }
fill={ colors[ props.pieBg ] }
>
<Cell fill={ colors[ props.pieColor ] } />
</Pie>
</PieChart>
)
};
TinyDonutChart.propTypes = {
pieColor: PropTypes.string,
strokeColor: PropTypes.string,
pieBg: PropTypes.string
};
TinyDonutChart.defaultProps = {
pieColor: "primary",
strokeColor: "white",
pieBg: "200"
};
export { TinyDonutChart };

View File

@@ -0,0 +1,132 @@
import React from 'react';
import PropTypes from 'prop-types';
import _ from 'lodash';
import {
Progress,
Badge
} from './../../../../components';
import {
TinyAreaChart
} from "./TinyAreaChart"
import { randomArray } from './../../../../utilities';
const percents = [
"15",
"25",
"30",
"35",
"40",
"45",
"55",
"60",
"75",
"80",
"95"
];
const versions = [
"1.10",
"1.34",
"2.35",
"0.23",
"2.90",
"9.05"
];
const name = [
"Apache",
"Postfix",
"Ruby R1",
"MySQL",
"Ruby R2"
];
const gbLeft = [
"2,234",
"6,738",
"982",
"9,001",
"1,329"
];
const tdValue = [
"783",
"45",
"4",
"190",
"65"
];
const tdUnits = [
"",
"Mb",
"%",
"Kb/s"
];
const TrSystem = (props) => (
<tr>
<td style={{ width: '20%' }}>
<span className="d-flex mb-2">
<h6 className="mb-0 mr-5">
{ randomArray(name) }
</h6>
<Badge pill className="ml-auto align-self-center">
v. { randomArray(versions) }
</Badge>
</span>
<Progress value={ randomArray(percents) } style={{height: "4px"}} className="mb-2" />
<span className="d-flex">
<span className="text-inverse">
{ randomArray(percents) }%
</span>
<span className="ml-auto text-right">
{ randomArray(gbLeft) } GB Left
</span>
</span>
</td>
{
_.map(props.colors, (color,index)=>(
<td style={{ width: '20%' }} key={index}>
<h6 className="mb-0">
{ randomArray(tdValue) } {tdUnits[index]}
</h6>
<TinyAreaChart
strokeColor={color.stroke}
fillColor={color.fill}
/>
</td>
))
}
</tr>
);
TrSystem.propTypes = {
title: PropTypes.node,
colors: PropTypes.array
};
TrSystem.defaultProps = {
colors: [
{
fill: "400",
stroke: "primary"
},
{
fill: "yellow",
stroke: "400"
},
{
fill: "purple",
stroke: "info"
},
{
fill: "success",
stroke: "500"
}
]
};
export { TrSystem };

View File

@@ -0,0 +1,3 @@
import System from './System';
export default System;

View File

@@ -0,0 +1,31 @@
import React from 'react';
import _ from 'lodash';
import {
ResponsiveContainer,
LineChart,
Line,
Dot
} from './../../../components/recharts';
import colors from './../../../colors';
const data = _.times(20, () => ({ pv: Math.random() * 100 }));
// eslint-disable-next-line react/prop-types
const generateDot = ({stroke, ...other}) => (
<Dot
{ ...other }
fill={ stroke }
stroke={ colors['white'] }
/>
);
const TinyLineChart = () => (
<ResponsiveContainer width='100%' height={ 40 }>
<LineChart data={data}>
<Line dataKey='pv' stroke={ colors['primary-07'] } strokeWidth={2} activeDot={{r: 5}} dot={generateDot} />
</LineChart>
</ResponsiveContainer>
);
export { TinyLineChart };