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,295 @@
import React from 'react';
import faker from 'faker/locale/en_US';
import {
Container,
Row,
Col,
Card,
ButtonToolbar,
Button,
ButtonGroup,
CardBody,
CardFooter,
Table,
TabPane,
Badge,
Nav,
NavItem,
Pagination,
PaginationLink,
PaginationItem,
UncontrolledTooltip,
UncontrolledTabs
} from './../../../components';
import { HeaderMain } from "../../components/HeaderMain";
import { Profile } from "../../components/Profile";
import { DlRowContacts } from "../../components/Profile/DlRowContacts";
import { DlRowAddress } from "../../components/Profile/DlRowAddress";
import { TrTableClients } from "./components/TrTableClients";
import { TrTableCompanies } from "./components/TrTableCompanies";
const Clients = () => (
<React.Fragment>
<Container>
<HeaderMain
title="Clients"
className="mb-5 mt-4"
/>
{ /* START Content */}
<Row>
<Col lg={ 8 }>
<Card className="mb-3">
<UncontrolledTabs initialActiveTabId="clients">
<CardBody>
<div className="d-flex">
<Nav pills>
<NavItem>
<UncontrolledTabs.NavLink tabId="clients">
Clients
</UncontrolledTabs.NavLink>
</NavItem>
<NavItem>
<UncontrolledTabs.NavLink tabId="companies">
Companies
</UncontrolledTabs.NavLink>
</NavItem>
</Nav>
<ButtonToolbar className="ml-auto">
<ButtonGroup>
<Button color="link" className="align-self-center mr-2 text-decoration-none" id="tooltipSettings">
<i className="fa fa-fw fa-gear"></i>
</Button>
</ButtonGroup>
<ButtonGroup>
<Button color="primary" className="align-self-center" id="tooltipAddNew">
<i className="fa fa-fw fa-plus"></i>
</Button>
</ButtonGroup>
</ButtonToolbar>
<UncontrolledTooltip placement="right" target="tooltipAddNew">
Add New
</UncontrolledTooltip>
<UncontrolledTooltip placement="right" target="tooltipSettings">
Settings
</UncontrolledTooltip>
</div>
</CardBody>
<UncontrolledTabs.TabContent>
<TabPane tabId="clients">
{ /* START Table */}
<Table className="mb-0" hover responsive>
<thead>
<tr>
<th className="bt-0"></th>
<th className="bt-0"></th>
<th className="bt-0">Name</th>
<th className="bt-0">Email</th>
<th className="text-right bt-0">Phone</th>
<th className="text-right bt-0">Label</th>
</tr>
</thead>
<tbody>
<TrTableClients />
<TrTableClients
id="2"
/>
<TrTableClients
id="3"
/>
<TrTableClients
id="4"
/>
<TrTableClients
id="5"
/>
<TrTableClients
id="6"
/>
<TrTableClients
id="7"
/>
<TrTableClients
id="8"
/>
<TrTableClients
id="9"
/>
</tbody>
</Table>
{ /* END Table */}
</TabPane>
<TabPane tabId="companies">
{ /* START Table */}
<Table className="mb-0" hover responsive>
<thead>
<tr>
<th className="bt-0"></th>
<th className="bt-0"></th>
<th className="bt-0">Name</th>
<th className="bt-0">PM</th>
<th className="text-right bt-0">Phone</th>
<th className="text-right bt-0">Label</th>
</tr>
</thead>
<tbody>
<TrTableCompanies />
<TrTableCompanies
id="2"
/>
<TrTableCompanies
id="3"
/>
<TrTableCompanies
id="4"
/>
<TrTableCompanies
id="5"
/>
<TrTableCompanies
id="6"
/>
<TrTableCompanies
id="7"
/>
<TrTableCompanies
id="8"
/>
<TrTableCompanies
id="9"
/>
<TrTableCompanies
id="10"
/>
<TrTableCompanies
id="11"
/>
<TrTableCompanies
id="12"
/>
</tbody>
</Table>
{ /* END Table */}
</TabPane>
</UncontrolledTabs.TabContent>
</UncontrolledTabs>
<CardFooter className="d-flex">
<span className="align-self-center">
Showing 1 to 10 of 57 entries
</span>
<Pagination aria-label="Page navigation example" className="ml-auto">
<PaginationItem>
<PaginationLink previous href="#">
<i className="fa fa-fw fa-angle-left"></i>
</PaginationLink>
</PaginationItem>
<PaginationItem active>
<PaginationLink href="#">
1
</PaginationLink>
</PaginationItem>
<PaginationItem>
<PaginationLink href="#">
2
</PaginationLink>
</PaginationItem>
<PaginationItem>
<PaginationLink href="#">
3
</PaginationLink>
</PaginationItem>
<PaginationItem>
<PaginationLink next href="#">
<i className="fa fa-fw fa-angle-right"></i>
</PaginationLink>
</PaginationItem>
</Pagination>
</CardFooter>
</Card>
</Col>
<Col lg={ 4 }>
<Card>
<CardBody>
<Profile />
<div className="text-center pb-1">
<ul className="list-inline">
<li className="list-inline-item text-center">
<h2 className="mb-1">23</h2>
<span>Contracts</span>
</li>
<li className="list-inline-item text-center">
<h2 className="mb-1">13</h2>
<span>Tasks</span>
</li>
<li className="list-inline-item text-center">
<h2 className="mb-1">5</h2>
<span>Relases</span>
</li>
</ul>
</div>
<Row className="mt-3">
<Col sm={ 6 }>
<Button color="primary" block>
Message
</Button>
</Col>
<Col sm={ 6 }>
<Button color="secondary" outline block>
Edit
</Button>
</Col>
</Row>
<div className="mt-4 mb-2">
<span className="small">
Profile
</span>
</div>
<p className="text-left">
Lorem ipsum dolor sit amet, consectetur adipisicing elit.
Dicta sapiente earum, necessitatibus commodi eius pariatur
repudiandae cum sunt officiis ex!
</p>
<div className="mt-4 mb-2">
<span className="small">
Labels
</span>
</div>
<div className="text-left mb-4">
<Badge pill color="primary" className="mr-1">
{ faker.commerce.department() }
</Badge>
<Badge pill color="secondary" className="mr-1">
{ faker.commerce.department() }
</Badge>
<Badge pill color="primary" className="mr-1">
{ faker.commerce.department() }
</Badge>
</div>
<div className="mt-4 mb-2">
<span className="small">Contact</span>
</div>
<DlRowContacts
leftSideClassName="text-left"
rightSideClassName="text-right text-inverse"
/>
<div className="mt-4 mb-2">
<span className="small">Address</span>
</div>
<DlRowAddress
leftSideClassName="text-left"
rightSideClassName="text-right text-inverse"
/>
</CardBody>
</Card>
</Col>
</Row>
{ /* END Content */}
</Container>
</React.Fragment>
);
export default Clients;

View File

@@ -0,0 +1,94 @@
import React from 'react';
import faker from 'faker/locale/en_US';
import PropTypes from 'prop-types';
import {
Badge,
Avatar,
CustomInput,
UncontrolledTooltip,
AvatarAddOn,
Media
} from './../../../../components';
import { randomArray } from './../../../../utilities';
const status = [
"secondary",
"success",
"warning",
"danger"
];
const tag = [
"secondary",
"primary",
"info"
];
const TrTableClients = (props) => (
<React.Fragment>
<tr>
<td className="align-middle">
<CustomInput type="checkbox" id={`trTableClients-${ props.id }` } label="" inline />
</td>
<td className="align-middle">
<a href="#" id={`trTableClientsTooltip-${ props.id }` }>
<i className="fa fa-fw fa-star-o"></i>
</a>
<UncontrolledTooltip placement="top" target={`trTableClientsTooltip-${ props.id }` }>
Add To Favorites
</UncontrolledTooltip>
</td>
<td className="align-middle">
<Media>
<Media left className="align-self-center mr-3">
<Avatar.Image
size="md"
src="http://bs4.webkom.co/img/avatars/2.jpg"
addOns={[
<AvatarAddOn.Icon
className="fa fa-circle"
color="white"
key="avatar-icon-bg"
/>,
<AvatarAddOn.Icon
className="fa fa-circle"
color={ randomArray(status) }
key="avatar-icon-fg"
/>
]}
/>
</Media>
<Media body>
<a className="mt-0 d-flex text-decoration-none" href="#">
{ faker.name.firstName() } { faker.name.lastName() }
</a>
<span>
{ faker.name.jobTitle() }
</span>
</Media>
</Media>
</td>
<td className="align-middle">
{ faker.internet.email() }
</td>
<td className="align-middle">
{ faker.phone.phoneNumberFormat() }
</td>
<td className="align-middle text-right">
<Badge pill color={ randomArray(tag) }>
{ faker.commerce.department() }
</Badge>
</td>
</tr>
</React.Fragment>
)
TrTableClients.propTypes = {
id: PropTypes.node
};
TrTableClients.defaultProps = {
id: "1"
};
export { TrTableClients };

View File

@@ -0,0 +1,287 @@
import React from 'react';
import faker from 'faker/locale/en_US';
import PropTypes from 'prop-types';
import {
Avatar,
CustomInput,
UncontrolledTooltip,
AvatarAddOn,
Media
} from './../../../../components';
import { randomArray } from './../../../../utilities';
const status = [
"success",
"danger",
"warning",
"secondary"
];
const brand = [
<Media key="facebook">
<Media left className="align-self-center mr-3">
<span className="fa-stack fa-lg">
<i className="fa fa-stop fa-stack-2x text-facebook"></i>
<i className="fa fa-facebook fa-stack-1x fa-inverse"></i>
</span>
</Media>
<Media body>
<div className="text-inverse mt-0 d-flex">
Facebook
</div>
<span>
{ faker.address.country() }
</span>
</Media>
</Media>,
<Media key="twitter">
<Media left className="align-self-center mr-3">
<span className="fa-stack fa-lg">
<i className="fa fa-stop fa-stack-2x text-twitter"></i>
<i className="fa fa-twitter fa-stack-1x fa-inverse"></i>
</span>
</Media>
<Media body>
<div className="text-inverse mt-0 d-flex">
Twitter
</div>
<span>
{ faker.address.country() }
</span>
</Media>
</Media>,
<Media key="linkedin">
<Media left className="align-self-center mr-3">
<span className="fa-stack fa-lg">
<i className="fa fa-stop fa-stack-2x text-linkedin"></i>
<i className="fa fa-linkedin fa-stack-1x fa-inverse"></i>
</span>
</Media>
<Media body>
<div className="text-inverse mt-0 d-flex">
Linkedin
</div>
<span>
{ faker.address.country() }
</span>
</Media>
</Media>,
<Media key="foursquare">
<Media left className="align-self-center mr-3">
<span className="fa-stack fa-lg">
<i className="fa fa-stop fa-stack-2x text-foursquare"></i>
<i className="fa fa-foursquare fa-stack-1x fa-inverse"></i>
</span>
</Media>
<Media body>
<div className="text-inverse mt-0 d-flex">
Foursquare
</div>
<span>
{ faker.address.country() }
</span>
</Media>
</Media>,
<Media key="lastfm">
<Media left className="align-self-center mr-3">
<span className="fa-stack fa-lg">
<i className="fa fa-stop fa-stack-2x text-lastfm"></i>
<i className="fa fa-lastfm fa-stack-1x fa-inverse"></i>
</span>
</Media>
<Media body>
<div className="text-inverse mt-0 d-flex">
LastFM
</div>
<span>
{ faker.address.country() }
</span>
</Media>
</Media>,
<Media key="paypal">
<Media left className="align-self-center mr-3">
<span className="fa-stack fa-lg">
<i className="fa fa-stop fa-stack-2x text-paypal"></i>
<i className="fa fa-paypal fa-stack-1x fa-inverse"></i>
</span>
</Media>
<Media body>
<div className="text-inverse mt-0 d-flex">
PayPal
</div>
<span>
{ faker.address.country() }
</span>
</Media>
</Media>,
<Media key="amazon">
<Media left className="align-self-center mr-3">
<span className="fa-stack fa-lg">
<i className="fa fa-stop fa-stack-2x text-amazon"></i>
<i className="fa fa-amazon fa-stack-1x fa-inverse"></i>
</span>
</Media>
<Media body>
<div className="text-inverse mt-0 d-flex">
Amazon
</div>
<span>
{ faker.address.country() }
</span>
</Media>
</Media>,
<Media key="skype">
<Media left className="align-self-center mr-3">
<span className="fa-stack fa-lg">
<i className="fa fa-stop fa-stack-2x text-skype"></i>
<i className="fa fa-skype fa-stack-1x fa-inverse"></i>
</span>
</Media>
<Media body>
<div className="text-inverse mt-0 d-flex">
Skype
</div>
<span>
{ faker.address.country() }
</span>
</Media>
</Media>,
<Media key="spotify">
<Media left className="align-self-center mr-3">
<span className="fa-stack fa-lg">
<i className="fa fa-stop fa-stack-2x text-spotify"></i>
<i className="fa fa-spotify fa-stack-1x fa-inverse"></i>
</span>
</Media>
<Media body>
<div className="text-inverse mt-0 d-flex">
Spotify
</div>
<span>
{ faker.address.country() }
</span>
</Media>
</Media>,
<Media key="pinterest">
<Media left className="align-self-center mr-3">
<span className="fa-stack fa-lg">
<i className="fa fa-stop fa-stack-2x text-pinterest"></i>
<i className="fa fa-pinterest fa-stack-1x fa-inverse"></i>
</span>
</Media>
<Media body>
<div className="text-inverse mt-0 d-flex">
Pinterest
</div>
<span>
{ faker.address.country() }
</span>
</Media>
</Media>,
<Media key="windows">
<Media left className="align-self-center mr-3">
<span className="fa-stack fa-lg">
<i className="fa fa-stop fa-stack-2x text-windows"></i>
<i className="fa fa-windows fa-stack-1x fa-inverse"></i>
</span>
</Media>
<Media body>
<div className="text-inverse mt-0 d-flex">
Windows
</div>
<span>
{ faker.address.country() }
</span>
</Media>
</Media>,
<Media key="android">
<Media left className="align-self-center mr-3">
<span className="fa-stack fa-lg">
<i className="fa fa-stop fa-stack-2x text-android"></i>
<i className="fa fa-android fa-stack-1x fa-inverse"></i>
</span>
</Media>
<Media body>
<div className="text-inverse mt-0 d-flex">
Android
</div>
<span>
{ faker.address.country() }
</span>
</Media>
</Media>,
<Media key="medium">
<Media left className="align-self-center mr-3">
<span className="fa-stack fa-lg">
<i className="fa fa-stop fa-stack-2x text-medium"></i>
<i className="fa fa-medium fa-stack-1x fa-inverse"></i>
</span>
</Media>
<Media body>
<div className="text-inverse mt-0 d-flex">
Medium
</div>
<span>
{ faker.address.country() }
</span>
</Media>
</Media>,
];
const TrTableCompanies = (props) => (
<React.Fragment>
<tr>
<td className="align-middle">
<CustomInput type="checkbox" id={`trTableCompanies-${ props.id }` } label="" inline />
</td>
<td className="align-middle">
<a href="#" id={`trTableCompaniesTooltip-${ props.id }` }>
<i className="fa fa-fw fa-star-o"></i>
</a>
<UncontrolledTooltip placement="top" target={`trTableCompaniesTooltip-${ props.id }` }>
Add To Favorites
</UncontrolledTooltip>
</td>
<td className="align-middle">
{ randomArray(brand) }
</td>
<td className="align-middle">
<Avatar.Image
size="sm"
src="http://bs4.webkom.co/img/avatars/2.jpg"
className="mr-2"
addOns={[
<AvatarAddOn.Icon
className="fa fa-circle"
color="white"
key="avatar-icon-bg"
/>,
<AvatarAddOn.Icon
className="fa fa-circle"
color={ randomArray(status) }
key="avatar-icon-fg"
/>
]}
/>
</td>
<td className="align-middle text-right">
{ faker.phone.phoneNumberFormat() }<br />
{ faker.internet.email() }
</td>
<td className="align-middle text-right">
{ faker.address.streetAddress() }<br />
{ faker.address.city() }
</td>
</tr>
</React.Fragment>
)
TrTableCompanies.propTypes = {
id: PropTypes.node
};
TrTableCompanies.defaultProps = {
id: "1"
};
export { TrTableCompanies };

View File

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