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,156 @@
import React from 'react';
import {
Container,
Row,
Col,
Input,
Card,
Button,
CardBody,
CardFooter,
CardTitle,
Label,
FormGroup,
Form
} from './../../../components';
import { HeaderMain } from "../../components/HeaderMain";
import { ProfileLeftNav } from "../../components/Profile/ProfileLeftNav";
import { ProfileHeader } from "../../components/Profile/ProfileHeader";
const AccountEdit = () => (
<React.Fragment>
<Container>
<HeaderMain
title="Account Edit"
className="mb-5 mt-4"
/>
{ /* START Content */}
<Row>
<Col lg={ 12 }>
<ProfileHeader />
</Col>
<Col lg={ 3 }>
<ProfileLeftNav />
</Col>
<Col lg={ 9 }>
<Card className="mb-3">
<CardBody>
<div className="d-flex mb-4">
<CardTitle tag="h6">
Account Edit
</CardTitle>
<span className="ml-auto align-self-start small">
Fields mark as <span className="text-danger">*</span> is required.
</span>
</div>
<Form>
{ /* START Input */}
<FormGroup row>
<Label for="oldPassword" sm={3} className="text-right">
<span className="text-danger">*</span> Old Password
</Label>
<Col sm={8}>
<Input
type="password"
name="password"
id="oldPassword"
defaultValue="********"
/>
</Col>
</FormGroup>
{ /* END Input */}
{ /* START Input */}
<FormGroup row>
<Label for="newPassword" sm={3} className="text-right">
<span className="text-danger">*</span> New Password
</Label>
<Col sm={8}>
<Input
type="password"
name="password"
id="newPassword"
defaultValue="********"
/>
</Col>
</FormGroup>
{ /* END Input */}
{ /* START Input */}
<FormGroup row className="mb-0">
<Label for="confirmNewPassword" sm={3} className="text-right">
<span className="text-danger">*</span> Confirm New Password
</Label>
<Col sm={8}>
<Input
type="password"
name="password"
id="confirmNewPassword"
defaultValue="********"
/>
</Col>
</FormGroup>
{ /* END Input */}
{ /* START Input */}
<FormGroup row>
<Label sm={3} >
</Label>
<Col sm={8}>
<Button color="primary">
Update Profile
</Button>
<Button color="link">
Forgot Password
</Button>
</Col>
</FormGroup>
{ /* END Input */}
</Form>
{ /* END Form */}
</CardBody>
<CardFooter className="small">
<i className="fa fa-fw fa-support text-muted mr-2"></i>
If you have trouble with the configuration, you can contact us. <a href="#">We Can Help</a>
</CardFooter>
</Card>
<Card className="mb-3">
<CardBody>
<CardTitle tag="h6">
Change Username
</CardTitle>
<p>
Changing the username is not recommended. In this connection,
I can appear <a href="#">many problems</a>.
</p>
<Button color="secondary" outline>
Change Username
</Button>
</CardBody>
</Card>
<Card className="mb-3 b-danger">
<CardBody>
<CardTitle tag="h6" className="text-danger">
Delete Account
</CardTitle>
<p>
Once you delete your account, there is no going back. Please be certain.
</p>
<Button color="danger" outline>
Yes, Delete
</Button>
</CardBody>
<CardFooter className="small">
<i className="fa fa-fw fa-support text-muted mr-2"></i>
Are you sure you dont want to just downgrade your account to a <strong>Free Account</strong>? We wont charge your PayPal account anymore.
</CardFooter>
</Card>
</Col>
</Row>
{ /* END Content */}
</Container>
</React.Fragment>
);
export default AccountEdit;

View File

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

View File

@@ -0,0 +1,157 @@
import React from 'react';
import {
Container,
Row,
Col,
Table,
Card,
Button,
CardBody,
CardFooter,
CardTitle,
Progress
} from './../../../components';
import { HeaderMain } from "../../components/HeaderMain";
import { ProfileLeftNav } from "./../../components/Profile/ProfileLeftNav";
import { ProfileHeader } from "./../../components/Profile/ProfileHeader";
import { TrTableBorderless } from "./../../Tables/Tables/components/TrTableBorderless";
const BillingEdit = () => (
<React.Fragment>
<Container>
<HeaderMain
title="Billing Edit"
className="mb-5 mt-4"
/>
{ /* START Content */}
<Row>
<Col lg={ 12 }>
<ProfileHeader />
</Col>
<Col lg={ 3 }>
<ProfileLeftNav />
</Col>
<Col lg={ 9 }>
<Card className="mb-3">
<CardBody>
<div className="d-flex mb-4">
<CardTitle tag="h6">
Billing Edit
</CardTitle>
<span className="ml-auto align-self-start small">
Fields mark as <span className="text-danger">*</span> is required.
</span>
</div>
<Row className="mb-4">
<Col sm={3} className="text-right">
Your Plan
</Col>
<Col sm={9}>
<div className="mb-2">
<span className="text-inverse">
Premium
</span> - You use <strong>37%</strong> of the available space.
</div>
<Progress multi style={{height: "5px"}} className="mb-3">
<Progress bar value="15" />
<Progress bar color="purple" value="30" />
<Progress bar color="yellow" value="25" />
</Progress>
<dl className="row">
<dt className="col-sm-4 text-right">Amount Space</dt>
<dd className="col-sm-8 text-inverse">214,8 GB / 1,03 TB</dd>
<dt className="col-sm-4 text-right">Regular Files</dt>
<dd className="col-sm-8">
<i className="fa fa-circle text-primary mr-2"></i>
<span className="text-inverse">177,8 GB</span>
</dd>
<dt className="col-sm-4 text-right">Shared Files</dt>
<dd className="col-sm-8">
<i className="fa fa-circle text-purple mr-2"></i>
<span className="text-inverse">37 GB</span>
</dd>
<dt className="col-sm-4 text-right">Available Files</dt>
<dd className="col-sm-8">
<i className="fa fa-circle text-yellow mr-2"></i>
<span className="text-inverse">177,8 GB</span>
</dd>
<dt className="col-sm-4 text-right">Action</dt>
<dd className="col-sm-8">
<Button color="secondary" outline size="sm">
Change Plan
</Button>
</dd>
</dl>
</Col>
</Row>
<div className="mb-4">
<span className="small">Payment</span>
</div>
<Row>
<Col sm={3} className="text-right">
Payment Method
</Col>
<Col sm={9}>
<div className="mb-2">
<i className="fa fa-fw fa-paypal text-primary mr-2"></i>
<span className="text-inverse">
PayPal
</span> - Account: <samp>Tyshawn_Lakin56@gmail.com</samp>
</div>
<dl className="row">
<dt className="col-sm-4 text-right">Next Payment Due</dt>
<dd className="col-sm-8 text-inverse">2016-05-21</dd>
<dt className="col-sm-4 text-right">Amount</dt>
<dd className="col-sm-8 text-inverse">$ 13.00</dd>
<dt className="col-sm-4 text-right">Action</dt>
<dd className="col-sm-8">
<Button color="secondary" outline size="sm">
Change Payment
</Button>
</dd>
</dl>
</Col>
</Row>
</CardBody>
<CardFooter className="small">
<i className="fa fa-fw fa-support text-muted mr-2"></i>
If you want to personalize the notification settings, go <a href="#">here</a>
</CardFooter>
</Card>
<Card className="mb-3">
<CardBody>
<CardTitle tag="h6" className="mb-0">
Billing History
</CardTitle>
</CardBody>
{ /* START Table */}
<Table className="mb-0" hover responsive>
<thead>
<tr>
<th className="bt-0">#</th>
<th className="bt-0">ID</th>
<th className="bt-0">Date</th>
<th className="bt-0">Amount</th>
<th className="bt-0">Description</th>
<th className="bt-0">Payment Method</th>
<th className="text-right bt-0">
Receipt
</th>
</tr>
</thead>
<tbody>
<TrTableBorderless />
</tbody>
</Table>
{ /* END Table */}
</Card>
</Col>
</Row>
{ /* END Content */}
</Container>
</React.Fragment>
);
export default BillingEdit;

View File

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

60
app/routes/Apps/Chat/Chat.js Executable file
View File

@@ -0,0 +1,60 @@
import React from 'react';
import {
Container,
Row,
CardBody,
Col,
CardHeader,
Card,
CardFooter
} from './../../../components';
import { HeaderMain } from "../../components/HeaderMain";
import { ChatLeft } from "../../components/Chat/ChatLeft";
import { ChatRight } from "../../components/Chat/ChatRight";
import { ChatLeftNav } from "../../components/Chat/ChatLeftNav";
import { ChatCardFooter } from "../../components/Chat/ChatCardFooter";
import { ChatCardHeader } from "../../components/Chat/ChatCardHeader";
const Clients = () => (
<React.Fragment>
<Container>
<HeaderMain
title="Chat"
className="mb-5 mt-4"
/>
{ /* START Content */}
<Row>
<Col lg={ 3 }>
<ChatLeftNav />
</Col>
<Col lg={ 9 }>
<Card className="mb-3">
<CardHeader className="d-flex bb-0 bg-white">
<ChatCardHeader />
</CardHeader>
<CardBody>
<ChatLeft cardClassName="bg-gray-300 b-0 text-dark" />
<ChatRight cardClassName="text-dark"/>
<ChatLeft cardClassName="bg-gray-300 b-0 text-dark" />
<ChatRight cardClassName="text-dark"/>
<div className="small mb-3 mt-4 text-center">
Yesterday
</div>
<ChatLeft cardClassName="bg-gray-300 b-0 text-dark" />
<ChatRight cardClassName="text-dark"/>
<ChatLeft cardClassName="bg-gray-300 b-0 text-dark" />
</CardBody>
<CardFooter>
<ChatCardFooter />
</CardFooter>
</Card>
</Col>
</Row>
{ /* END Content */}
</Container>
</React.Fragment>
);
export default Clients;

3
app/routes/Apps/Chat/index.js Executable file
View File

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

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;

View File

@@ -0,0 +1,239 @@
import React from 'react';
import faker from 'faker/locale/en_US';
import { Link } from 'react-router-dom';
import {
Container,
Row,
Col,
Card,
Button,
ButtonGroup,
CardBody,
CardFooter,
ButtonToolbar,
Badge,
Media,
Avatar,
AvatarAddOn,
UncontrolledTooltip
} from './../../../components';
import { randomAvatar } from './../../../utilities';
import { HeaderMain } from "../../components/HeaderMain";
import { MailboxLeftNav } from "../../components/Mailbox/MailboxLeftNav";
import { Attachment } from "../../components/Attachment";
const EmailDetails = () => (
<React.Fragment>
<Container>
<HeaderMain
title="Email Details"
className="mb-5 mt-4"
/>
{ /* START Content */}
<Row>
<Col lg={ 3 }>
<MailboxLeftNav />
</Col>
<Col lg={ 9 }>
<Card className="mb-3">
<CardBody>
{ /* START Header */}
<div className="d-lg-flex justify-content-end mb-4">
<div className="mr-auto d-flex align-items-center mb-3 mb-xl-0">
<Button color="link" tag={ Link } to="/apps/inbox" className="text-decoration-none">
<i className="fa fa-angle-left mr-2"></i> Inbox
</Button>
</div>
<ButtonToolbar>
<ButtonGroup className="mr-2 mb-3 mb-sm-0">
<Button color="link" className="text-decoration-none align-self-center" id="tooltipPrev">
<i className="fa fa-fw fa-angle-left"></i>
</Button>
<UncontrolledTooltip placement="bottom" target="tooltipPrev">
Prev Message
</UncontrolledTooltip>
<Button color="link" className="text-decoration-none align-self-center" id="tooltipNext">
<i className="fa fa-fw fa-angle-right"></i>
</Button>
<UncontrolledTooltip placement="bottom" target="tooltipNext">
Next Message
</UncontrolledTooltip>
</ButtonGroup>
<ButtonGroup className="mr-2">
<Button color="link" className="text-decoration-none align-self-center" id="tooltipForward">
<i className="fa fa-fw fa-mail-forward"></i>
</Button>
<UncontrolledTooltip placement="bottom" target="tooltipForward">
Forward
</UncontrolledTooltip>
<Button color="link" className="text-decoration-none align-self-center" id="tooltipFav">
<i className="fa fa-fw fa-star"></i>
</Button>
<UncontrolledTooltip placement="bottom" target="tooltipFav">
Add to Favorites
</UncontrolledTooltip>
<Button color="link" className="text-decoration-none align-self-center" id="tooltipPrint">
<i className="fa fa-fw fa-print"></i>
</Button>
<UncontrolledTooltip placement="bottom" target="tooltipPrint">
Print
</UncontrolledTooltip>
<Button color="link" className="text-decoration-none align-self-center" id="tooltipDelete">
<i className="fa fa-fw fa-trash"></i>
</Button>
<UncontrolledTooltip placement="bottom" target="tooltipDelete">
Delete
</UncontrolledTooltip>
</ButtonGroup>
<ButtonGroup className="ml-auto ml-lg-0">
<Button color="primary" className="align-self-center" tag={ Link } to="/apps/inbox" id="tooltipReply">
<i className="fa fa-fw fa-reply"></i>
</Button>
<UncontrolledTooltip placement="bottom" target="tooltipReply">
Reply
</UncontrolledTooltip>
</ButtonGroup>
</ButtonToolbar>
</div>
{ /* END Header */}
{ /* START Message */}
<div className="mb-4">
<div className="d-flex flex-column flex-md-row">
<Media>
<Media left className="align-self-center mr-4">
<Avatar.Image
size="md"
src={ randomAvatar() }
addOns={[
<AvatarAddOn.Icon
className="fa fa-circle"
color="white"
key="avatar-icon-bg"
/>,
<AvatarAddOn.Icon
className="fa fa-circle"
color="danger"
key="avatar-icon-fg"
/>
]}
/>
</Media>
<Media body>
<a className="mt-0 text-decoration-none d-flex" href="#">
{ faker.name.firstName() } { faker.name.lastName() }
</a>
<samp className="small">
{ faker.internet.email() }
</samp>
</Media>
</Media>
<div className="ml-md-auto align-self-start text-left text-md-right mt-2 mt-md-0">
18-Jun-2012<br />
08:43 PM
</div>
</div>
<hr />
<div className="d-flex mb-3">
<h5>
Secured Asynchronous Capacity
</h5>
<Badge pill color="primary" className="ml-auto align-self-start">
Work
</Badge>
</div>
<p className="lead">
{ faker.lorem.sentences() }
</p>
<p>
{ faker.lorem.paragraphs() }
</p>
</div>
{ /* END Message */}
{ /* START Attachments */}
<div>
<div className="mb-3">
<span className="small mr-2">
Attachments
</span>
<Badge pill color="secondary">3</Badge>
</div>
<Attachment
BgIconClassName="text-primary"
icon="file-word-o"
mediaClassName="mb-3"
/>
<Attachment
BgIconClassName="text-success"
icon="file-excel-o"
mediaClassName="mb-3"
/>
<Attachment
BgIconClassName="text-warning"
icon="file-powerpoint-o"
/>
</div>
</CardBody>
<CardFooter>
<ButtonToolbar className="flex-column flex-lg-row">
<ButtonGroup className="mb-2 mb-lg-0">
<Button color="link" className="text-decoration-none align-self-center" id="tooltipPrevBtm">
<i className="fa fa-fw fa-angle-left"></i>
</Button>
<UncontrolledTooltip placement="top" target="tooltipPrevBtm">
Prev Message
</UncontrolledTooltip>
<Button color="link" className="text-decoration-none align-self-center" id="tooltipNextBtm">
<i className="fa fa-fw fa-angle-right"></i>
</Button>
<UncontrolledTooltip placement="top" target="tooltipNextBtm">
Next Message
</UncontrolledTooltip>
</ButtonGroup>
<ButtonToolbar className="flex-column flex-sm-row ml-0 ml-lg-auto">
<ButtonGroup className="mr-2 mb-2 mb-sm-0">
<Button color="link" className="text-decoration-none align-self-center" id="tooltipForwardBtm">
<i className="fa fa-fw fa-mail-forward"></i>
</Button>
<UncontrolledTooltip placement="top" target="tooltipForwardBtm">
Forward
</UncontrolledTooltip>
<Button color="link" className="text-decoration-none align-self-center" id="tooltipFavBtm">
<i className="fa fa-fw fa-star"></i>
</Button>
<UncontrolledTooltip placement="top" target="tooltipFavBtm">
Add to Favorites
</UncontrolledTooltip>
<Button color="link" className="text-decoration-none align-self-center" id="tooltipPrintBtm">
<i className="fa fa-fw fa-print"></i>
</Button>
<UncontrolledTooltip placement="top" target="tooltipPrintBtm">
Print
</UncontrolledTooltip>
<Button color="link" className="text-decoration-none align-self-center" id="tooltipDeleteBtm">
<i className="fa fa-fw fa-trash"></i>
</Button>
<UncontrolledTooltip placement="top" target="tooltipDeleteBtm">
Delete
</UncontrolledTooltip>
</ButtonGroup>
<ButtonGroup className="ml-0 ml-md-auto m-lg-0">
<Button color="primary" className="align-self-center" tag={ Link } to="/apps/inbox" id="tooltipReplyBtm">
<i className="fa fa-fw fa-reply"></i>
</Button>
<UncontrolledTooltip placement="top" target="tooltipReplyBtm">
Reply
</UncontrolledTooltip>
</ButtonGroup>
</ButtonToolbar>
</ButtonToolbar>
</CardFooter>
</Card>
</Col>
</Row>
{ /* END Content */}
</Container>
</React.Fragment>
);
export default EmailDetails;

View File

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

50
app/routes/Apps/Files/Files.js Executable file
View File

@@ -0,0 +1,50 @@
import React from 'react';
import PropTypes from 'prop-types';
import {
Container,
Row,
Col
} from './../../../components';
import { HeaderMain } from "../../components/HeaderMain";
import FilesList from './FilesList';
import FilesGrid from './FilesGrid';
import { FilesLeftNav } from "../../components/Files/FilesLeftNav";
import { ProjectsSmHeader } from "../../components/Projects/ProjectsSmHeader";
const Files = (props) => (
<React.Fragment>
<Container>
<HeaderMain
title="Files"
className="mb-5 mt-4"
/>
<Row>
<Col lg={ 3 }>
<FilesLeftNav />
</Col>
<Col lg={ 9 }>
<ProjectsSmHeader
subTitle={props.match.params.type === "list"?"Files List":"Files Grid"}
linkList="/apps/files/list"
linkGrid="/apps/files/grid"
/>
{
props.match.params.type === "list" ?
<FilesList /> :
<FilesGrid />
}
</Col>
</Row>
</Container>
</React.Fragment>
);
Files.propTypes = {
match: PropTypes.object.isRequired
};
export default Files;

View File

@@ -0,0 +1,26 @@
import React from 'react';
import { CardColumns } from './../../../components';
import { FilesCardGrid } from "../../components/Files/FilesCardGrid";
import { Paginations } from "../../components/Paginations";
const FilesGrid = () => (
<React.Fragment>
<CardColumns>
<FilesCardGrid />
<FilesCardGrid />
<FilesCardGrid />
<FilesCardGrid />
<FilesCardGrid />
<FilesCardGrid />
<FilesCardGrid />
<FilesCardGrid />
<FilesCardGrid />
</CardColumns>
<div className="d-flex justify-content-center">
<Paginations />
</div>
</React.Fragment>
);
export default FilesGrid;

View File

@@ -0,0 +1,50 @@
import React from 'react';
import {
Card,
CardFooter,
Table
} from './../../../components';
import { Paginations } from "../../components/Paginations";
import { TrTableFilesList } from "./components/TrTableFilesList";
const FilesList = () => (
<Card className="mb-3">
{ /* START Table */}
<div className="table-responsive-xl">
<Table className="mb-0" hover>
<thead>
<tr>
<th className="align-middle bt-0">Directory</th>
<th className="align-middle bt-0">Last Change</th>
<th className="align-middle bt-0">Share</th>
<th className="align-middle bt-0">Tags</th>
<th className="align-middle bt-0 text-right">
Actions
</th>
</tr>
</thead>
<tbody>
<TrTableFilesList />
<TrTableFilesList />
<TrTableFilesList />
<TrTableFilesList />
<TrTableFilesList />
<TrTableFilesList />
<TrTableFilesList />
<TrTableFilesList />
<TrTableFilesList />
<TrTableFilesList />
</tbody>
</Table>
</div>
{ /* END Table */}
<CardFooter className="d-flex justify-content-center pb-0">
<Paginations />
</CardFooter>
</Card>
);
export default FilesList;

View File

@@ -0,0 +1,113 @@
import React from 'react';
import faker from 'faker/locale/en_US';
import {
Badge,
Avatar,
UncontrolledButtonDropdown,
DropdownToggle,
DropdownMenu,
AvatarAddOn,
Media,
DropdownItem
} from './../../../../components';
import { randomArray, randomAvatar } from './../../../../utilities';
const badges = [
"secondary"
];
const status = [
"success",
"danger",
"warning",
"secondary"
];
const TrTableFilesList = () => (
<React.Fragment>
<tr>
<td className="align-middle">
<Media>
<Media left middle>
<i className="fa fa-fw fa-folder-o fa-3x mr-2"></i>
</Media>
<Media body>
<div className="text-inverse">
{ faker.commerce.department() }
</div>
<span>
{ faker.finance.amount() } Mb
</span>
</Media>
</Media>
</td>
<td className="align-middle">
{ faker.date.weekday() }, 12 { faker.date.month() }, 2018<br />
12:23 PM
</td>
<td className="align-middle">
<Avatar.Image
size="md"
src={ randomAvatar() }
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">
<Badge color={ randomArray(badges) } pill className="mr-1">
{ faker.commerce.department() }
</Badge>
<Badge color={ randomArray(badges) } pill className="mr-1">
{ faker.commerce.department() }
</Badge>
<Badge color={ randomArray(badges) } pill className="mr-1">
{ faker.commerce.department() }
</Badge>
</td>
<td className="align-middle text-right">
<UncontrolledButtonDropdown>
<DropdownToggle color="link">
<i className="fa fa-gear" /><i className="fa fa-angle-down ml-2" />
</DropdownToggle>
<DropdownMenu right>
<DropdownItem>
<i className="fa fa-fw fa-reply mr-2"></i>
Share
</DropdownItem>
<DropdownItem>
<i className="fa fa-fw fa-download mr-2"></i>
Download
</DropdownItem>
<DropdownItem>
<i className="fa fa-fw fa-trash mr-2"></i>
Delete
</DropdownItem>
<DropdownItem>
<i className="fa fa-fw fa-pencil mr-2"></i>
Edit
</DropdownItem>
<DropdownItem divider />
<DropdownItem>
<i className="fa fa-fw fa-files-o mr-2"></i>
Copy
</DropdownItem>
</DropdownMenu>
</UncontrolledButtonDropdown>
</td>
</tr>
</React.Fragment>
)
export { TrTableFilesList };

3
app/routes/Apps/Files/index.js Executable file
View File

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

View File

@@ -0,0 +1,64 @@
import React from 'react';
import {
Container,
Row,
CardColumns,
Col
} from './../../../components';
import { HeaderMain } from "../../components/HeaderMain";
import { ProjectsSmHeader } from "../../components/Projects/ProjectsSmHeader";
import { GalleryCard } from "../../components/Gallery/GalleryCard";
import { Paginations } from "../../components/Paginations";
const GalleryGrid = () => (
<Container>
<HeaderMain
title="Gallery Grid"
className="mb-5 mt-4"
/>
{ /* START Content */}
<Row>
<Col lg={ 12 }>
<ProjectsSmHeader
subTitle="Gallery Grid"
linkList="/apps/gallery-table"
linkGrid="/apps/gallery-grid"
/>
<CardColumns>
<GalleryCard />
<GalleryCard
id="2"
/>
<GalleryCard
id="3"
/>
<GalleryCard
id="4"
/>
<GalleryCard
id="5"
/>
<GalleryCard
id="6"
/>
<GalleryCard
id="7"
/>
<GalleryCard
id="8"
/>
<GalleryCard
id="9"
/>
</CardColumns>
<div className="d-flex justify-content-center">
<Paginations />
</div>
</Col>
</Row>
{ /* END Content */}
</Container>
);
export default GalleryGrid;

View File

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

View File

@@ -0,0 +1,85 @@
import React from 'react';
import {
Container,
Row,
Table,
CardFooter,
Card,
Col
} from './../../../components';
import { HeaderMain } from "../../components/HeaderMain";
import { ProjectsSmHeader } from "../../components/Projects/ProjectsSmHeader";
import { Paginations } from "../../components/Paginations";
import { TrTableGalleryList } from "./components/TrTableGalleryList";
const GalleryTable = () => (
<React.Fragment>
<Container>
<HeaderMain
title="Gallery Table"
className="mb-5 mt-4"
/>
{ /* START Content */}
<Row>
<Col lg={ 12 }>
<ProjectsSmHeader
subTitle="Gallery Table"
linkList="/apps/gallery-table"
linkGrid="/apps/gallery-grid"
/>
<Card>
{ /* START Table */}
<Table className="mb-0" hover size="sm" responsive>
<thead>
<tr>
<th></th>
<th>Thumb</th>
<th>Title</th>
<th>Author</th>
<th>Date</th>
<th>Info</th>
<th className="text-right">Action</th>
</tr>
</thead>
<tbody>
<TrTableGalleryList />
<TrTableGalleryList
id="2"
/>
<TrTableGalleryList
id="3"
/>
<TrTableGalleryList
id="4"
/>
<TrTableGalleryList
id="5"
/>
<TrTableGalleryList
id="6"
/>
<TrTableGalleryList
id="7"
/>
<TrTableGalleryList
id="8"
/>
</tbody>
</Table>
{ /* END Table */}
<CardFooter className="d-flex justify-content-center pb-0">
<Paginations />
</CardFooter>
</Card>
</Col>
</Row>
{ /* END Content */}
</Container>
</React.Fragment>
);
export default GalleryTable;

View File

@@ -0,0 +1,122 @@
import React from 'react';
import faker from 'faker/locale/en_US';
import PropTypes from 'prop-types';
import {
Badge,
CustomInput,
Avatar,
HolderProvider,
CardImg,
Media,
AvatarAddOn,
Button,
UncontrolledTooltip
} from './../../../../components';
import { randomArray, randomAvatar } from './../../../../utilities';
const status = [
"secondary",
"danger",
"success",
"warning"
];
const badges = [
"secondary"
];
const TrTableGalleryList = (props) => (
<React.Fragment>
<tr>
<td className="align-middle">
<CustomInput type="checkbox" id={`trTableGalleryList-${ props.id }` } label="" inline />
</td>
<td className="align-middle">
<HolderProvider.Icon
iconChar=""
size={ 16 }
width={ 100 }
height={ 100 }
>
<CardImg className="rounded" />
</HolderProvider.Icon>
</td>
<td className="align-middle">
<span>
<a className="text-inverse" href="#">
{ faker.commerce.productName() }
</a>
<br />
<span href="#">
{ faker.system.fileName() }
</span>
<br />
<Badge pill color={ randomArray(badges) } className="mr-1">
{ faker.commerce.department() }
</Badge>
<Badge pill color={ randomArray(badges) } className="mr-1">
{ faker.commerce.department() }
</Badge>
<Badge pill color={ randomArray(badges) } className="mr-1">
{ faker.commerce.department() }
</Badge>
</span>
</td>
<td className="align-middle">
<Media>
<Media left className="align-self-center mr-3">
<Avatar.Image
size="md"
src={ randomAvatar() }
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 text-decoration-none d-flex" href="#">
{ faker.name.firstName() } { faker.name.lastName() }
</a>
<span>
{ faker.address.state() }, { faker.address.stateAbbr() }
</span>
</Media>
</Media>
</td>
<td className="align-middle">
22-Jul-2012
</td>
<td className="align-middle">
Size: { faker.random.number() } Kb<br />
Format: .png
</td>
<td className="align-middle text-right">
<Button color="link" id={`trTableGalleryListTooltip-${ props.id }` }>
<i className="fa fa-fw fa-download"></i>
</Button>
<UncontrolledTooltip placement="left" target={`trTableGalleryListTooltip-${ props.id }` }>
Download
</UncontrolledTooltip>
</td>
</tr>
</React.Fragment>
)
TrTableGalleryList.propTypes = {
id: PropTypes.node
};
TrTableGalleryList.defaultProps = {
id: "1"
};
export { TrTableGalleryList };

View File

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

View File

@@ -0,0 +1,50 @@
import React from 'react';
import {
Container,
Row,
CardColumns,
Col
} from './../../../components';
import { HeaderMain } from "../../components/HeaderMain";
import { SearchResultsLeftNav } from "../../components/SearchResults/SearchResultsLeftNav";
import { SearchResultsHeader } from "../../components/SearchResults/SearchResultsHeader";
import { ImagesResultsCard } from "../../components/SearchResults/ImagesResultsCard";
import { Paginations } from "../../components/Paginations";
const ImagesResults = () => (
<React.Fragment>
<Container>
<HeaderMain
title="Images Results"
className="mb-5 mt-4"
/>
{ /* START Content */}
<Row>
<Col lg={ 3 }>
<SearchResultsLeftNav />
</Col>
<Col lg={ 9 }>
<SearchResultsHeader />
<CardColumns>
<ImagesResultsCard />
<ImagesResultsCard />
<ImagesResultsCard />
<ImagesResultsCard />
<ImagesResultsCard />
<ImagesResultsCard />
<ImagesResultsCard />
<ImagesResultsCard />
<ImagesResultsCard />
</CardColumns>
<div className="d-flex justify-content-center">
<Paginations />
</div>
</Col>
</Row>
{ /* END Content */}
</Container>
</React.Fragment>
);
export default ImagesResults;

View File

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

138
app/routes/Apps/Inbox/Inbox.js Executable file
View File

@@ -0,0 +1,138 @@
import React from 'react';
import faker from 'faker/locale/en_US';
import { Link } from 'react-router-dom';
import _ from 'lodash';
import {
Container,
Row,
Col,
ButtonToolbar,
Avatar,
AvatarAddOn,
Card,
Button,
ButtonGroup,
CardBody,
CardFooter,
CustomInput,
Table,
Badge,
InputGroup,
InputGroupAddon,
Input,
UncontrolledTooltip
} from './../../../components';
import { HeaderMain } from "../../components/HeaderMain";
import { MailboxLeftNav } from "../../components/Mailbox/MailboxLeftNav";
import { Paginations } from "../../components/Paginations";
import { TrTableInbox } from "./components/TrTableInbox";
const Inbox = () => (
<React.Fragment>
<Container>
<HeaderMain
title="Inbox"
className="mb-5 mt-4"
/>
{ /* START Content */}
<Row>
<Col lg={ 3 }>
<MailboxLeftNav />
</Col>
<Col lg={ 9 }>
<Card className="mb-3">
<CardBody>
<div className="d-lg-flex justify-content-end">
<div className="mr-auto d-flex align-items-center mb-3 mb-lg-0">
<InputGroup>
<Input placeholder="Search for..." />
<InputGroupAddon addonType="append">
<Button color="secondary" outline>
<i className="fa fa-search"></i>
</Button>
</InputGroupAddon>
</InputGroup>
</div>
<ButtonToolbar>
<ButtonGroup className="mr-2">
<Button color="link" className="text-decoration-none align-self-center" id="tooltipRefresh">
<i className="fa fa-fw fa-refresh"></i>
</Button>
<UncontrolledTooltip placement="bottom" target="tooltipRefresh">
Refresh
</UncontrolledTooltip>
<Button color="link" className="text-decoration-none align-self-center" id="tooltipFav">
<i className="fa fa-fw fa-star"></i>
</Button>
<UncontrolledTooltip placement="bottom" target="tooltipFav">
Add to Favorites
</UncontrolledTooltip>
<Button color="link" className="text-decoration-none align-self-center" id="tooltipTag">
<i className="fa fa-fw fa-tag"></i>
</Button>
<UncontrolledTooltip placement="bottom" target="tooltipTag">
Tag
</UncontrolledTooltip>
<Button color="link" className="text-decoration-none align-self-center" id="tooltipBan">
<i className="fa fa-fw fa-ban"></i>
</Button>
<UncontrolledTooltip placement="bottom" target="tooltipBan">
Ban this User
</UncontrolledTooltip>
<Button color="link" className="text-decoration-none align-self-center" id="tooltipDelete">
<i className="fa fa-fw fa-trash"></i>
</Button>
<UncontrolledTooltip placement="bottom" target="tooltipDelete">
Delete
</UncontrolledTooltip>
</ButtonGroup>
<ButtonGroup className="ml-auto ml-lg-0">
<Button color="primary" className="align-self-center" tag={ Link } to="/apps/new-email" id="tooltipAddNew">
<i className="fa fa-fw fa-pencil"></i>
</Button>
<UncontrolledTooltip placement="bottom" target="tooltipAddNew">
Add New
</UncontrolledTooltip>
</ButtonGroup>
</ButtonToolbar>
</div>
</CardBody>
{ /* START Table */}
<Table className="mb-0" hover responsive>
<thead>
<tr>
<th className="bt-0"></th>
<th className="bt-0"></th>
<th className="bt-0">From</th>
<th className="bt-0">Subject</th>
<th className="text-right bt-0">
Date
</th>
</tr>
</thead>
<tbody>
{
_.times(11, (index) => (
<TrTableInbox
id={index.toString()}
key={index}
/>
))
}
</tbody>
</Table>
{ /* END Table */}
<CardFooter className="d-flex justify-content-center pb-0">
<Paginations />
</CardFooter>
</Card>
</Col>
</Row>
{ /* END Content */}
</Container>
</React.Fragment>
);
export default Inbox;

View File

@@ -0,0 +1,114 @@
import React from 'react';
import faker from 'faker/locale/en_US';
import PropTypes from 'prop-types';
import { Link } from 'react-router-dom';
import {
Badge,
Avatar,
UncontrolledTooltip,
CustomInput,
AvatarAddOn,
Media
} from './../../../../components';
import { randomArray, randomAvatar } from './../../../../utilities';
const status = [
"warning",
"danger",
"success",
"secondary"
];
const tag = [
"primary",
"secondary",
"info"
];
const TrTableInbox = (props) => (
<React.Fragment>
<tr>
<td className="align-middle">
{
(Math.round(Math.random())) ? (
<span>
<i className="fa fa-circle fa-fw text-primary" id={`newMessage-${ props.id }` }></i>
<UncontrolledTooltip placement="bottom" target={`#newMessage-${ props.id }` }>
New Message
</UncontrolledTooltip>
</span>
) : (
<span></span>
)
}
</td>
<td className="align-middle">
<CustomInput type="checkbox" label="" id={` mailboxCheckbox-${ props.id }` } />
</td>
<td className="align-middle">
<Media>
<Media left className="d-flex align-self-center mr-3">
<div className="mr-2">
<a href="#" id="tooltipAddToFavorites">
<i className="fa fa-fw fa-star-o"></i>
</a>
<UncontrolledTooltip placement="top" target="tooltipAddToFavorites">
Add To Favorites
</UncontrolledTooltip>
</div>
<Avatar.Image
size="md"
src={ randomAvatar() }
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 text-decoration-none d-flex" href="#">
{ faker.name.firstName() } { faker.name.lastName() }
</a>
<span>
{ faker.address.state() }
</span>
</Media>
</Media>
</td>
<td className="align-middle">
<Link to="/apps/email-details" className="text-decoration-none">
{ faker.company.catchPhrase() }
</Link>
<br />
{ faker.lorem.sentence() }
<br />
<Badge pill color={ randomArray(tag) }>
{ faker.commerce.department() }
</Badge> <i className="fa fa-paperclip ml-2"></i>
</td>
<td className="align-middle text-right">
30-Jun-2014<br />
01:54 PM
</td>
</tr>
</React.Fragment>
)
TrTableInbox.propTypes = {
id: PropTypes.string
};
export { TrTableInbox };

3
app/routes/Apps/Inbox/index.js Executable file
View File

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

View File

@@ -0,0 +1,143 @@
import React from 'react';
import { Link } from 'react-router-dom';
import {
Container,
Row,
Col,
Card,
Button,
ButtonGroup,
CardBody,
CardFooter,
Badge,
ButtonToolbar,
InputGroup,
InputGroupAddon,
Input,
UncontrolledTooltip
} from './../../../components';
import { HeaderMain } from "../../components/HeaderMain";
import { MailboxLeftNav } from "../../components/Mailbox/MailboxLeftNav";
import { Attachment } from "../../components/Attachment";
const NewEmail = () => (
<React.Fragment>
<Container>
<HeaderMain
title="New Email"
className="mb-5 mt-4"
/>
{ /* START Content */}
<Row>
<Col lg={ 3 }>
<MailboxLeftNav />
</Col>
<Col lg={ 9 }>
<Card className="mb-3">
<CardBody>
{ /* START Header */}
<div className="flex-column flex-md-row d-flex mb-4">
<div className="mr-md-auto mr-sm-0">
<Button color="link" tag={ Link } to="/apps/inbox" className="text-decoration-none">
<i className="fa fa-angle-left mr-2"></i> Inbox
</Button>
</div>
<ButtonToolbar>
<ButtonGroup className="mr-2">
<Button color="link" tag={ Link } to="/apps/inbox" className="text-decoration-none">
Cancel
</Button>
</ButtonGroup>
<ButtonGroup>
<Button color="primary" tag={ Link } to="/apps/inbox" id="tooltipSend">
<i className="fa fa-send"></i>
</Button>
<UncontrolledTooltip placement="bottom" target="tooltipSend">
Send Now
</UncontrolledTooltip>
</ButtonGroup>
</ButtonToolbar>
</div>
{ /* END Header */}
{ /* START Forms */}
<div className="mb-4">
<InputGroup className="mb-3">
<InputGroupAddon addonType="prepend">
To:
</InputGroupAddon>
<Input placeholder="Enter email(s)..." />
<InputGroupAddon addonType="append">
<Button color="secondary" outline>
<i className="fa fa-fw fa-plus"></i>
</Button>
</InputGroupAddon>
</InputGroup>
<Row className="mb-3">
<Col sm={12} lg={6} className="mb-3 mb-lg-0">
<InputGroup>
<InputGroupAddon addonType="prepend">
CC:
</InputGroupAddon>
<Input placeholder="Enter email(s)..." />
</InputGroup>
</Col>
<Col sm={12} lg={6}>
<InputGroup>
<InputGroupAddon addonType="prepend">
BCC:
</InputGroupAddon>
<Input placeholder="Enter email(s)..." />
</InputGroup>
</Col>
</Row>
<InputGroup className="mb-3">
<InputGroupAddon addonType="prepend">
Subject:
</InputGroupAddon>
<Input placeholder="Enter topic..." />
</InputGroup>
<Input type="textarea" name="text" />
</div>
{ /* END Forms */}
{ /* START Attachments */}
<div>
<div className="mb-3">
<span className="small mr-2">
Attachments
</span>
<Badge pill color="secondary">3</Badge>
</div>
<Attachment
BgIconClassName="text-primary"
icon="file-word-o"
mediaClassName="mb-3"
/>
<Attachment
BgIconClassName="text-success"
icon="file-excel-o"
mediaClassName="mb-3"
/>
<Attachment
BgIconClassName="text-warning"
icon="file-powerpoint-o"
/>
</div>
</CardBody>
<CardFooter className="text-right">
<Button color="link" className="text-decoration-none">
<i className="fa fa-paperclip mr-2"></i>
Add New Files
</Button>
</CardFooter>
</Card>
</Col>
</Row>
{ /* END Content */}
</Container>
</React.Fragment>
);
export default NewEmail;

View File

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

View File

@@ -0,0 +1,357 @@
import React from 'react';
import faker from 'faker/locale/en_US';
import { Link } from 'react-router-dom';
import {
Container,
Row,
Col,
CardHeader,
DropdownToggle,
DropdownItem,
DropdownMenu,
UncontrolledButtonDropdown,
Card,
ButtonGroup,
Button,
CardBody,
CardFooter,
CardGroup,
Table,
TabPane,
Badge,
Nav,
NavItem,
UncontrolledTabs
} from './../../../components';
import { HeaderMain } from "../../components/HeaderMain";
import { Profile } from "../../components/Profile";
import { ProfileOverviewCard } from "../../components/Profile/ProfileOverviewCard";
import { DlRowContacts } from "../../components/Profile/DlRowContacts";
import { DlRowAddress } from "../../components/Profile/DlRowAddress";
import { ChatLeft } from "../../components/Chat/ChatLeft";
import { ChatRight } from "../../components/Chat/ChatRight";
import { ChatCardFooter } from "../../components/Chat/ChatCardFooter";
import { TrTableMessages } from "./components/TrTableMessages";
import { TimelineDefault } from "../../components/Timeline/TimelineDefault";
const ProfileDetails = () => (
<React.Fragment>
<Container>
<HeaderMain
title="Profile Details"
className="mb-5 mt-4"
/>
{ /* START Content */}
<Row>
<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 } md={ 6 }>
<Button color="primary" block tag={ Link } to="/apps/new-email" className="mb-3 mb-lg-0">
Message
</Button>
</Col>
<Col sm={ 6 } md={ 6 }>
<Button color="secondary" outline block tag={ Link } to="/apps/profile-edit">
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="secondary" className="mr-1">
{ faker.commerce.department() }
</Badge>
<Badge pill color="secondary" className="mr-1">
{ faker.commerce.department() }
</Badge>
<Badge pill color="secondary" className="mr-1">
{ faker.commerce.department() }
</Badge>
</div>
<div className="mt-4 mb-2">
<span className="small">Contact</span>
</div>
<DlRowContacts
leftSideClassName="text-lg-left"
rightSideClassName="text-lg-right text-inverse"
/>
<div className="mt-4 mb-2">
<span className="small">Address</span>
</div>
<DlRowAddress
leftSideClassName="text-lg-left"
rightSideClassName="text-lg-right text-inverse"
/>
</CardBody>
</Card>
</Col>
<Col lg={ 8 }>
<UncontrolledTabs initialActiveTabId="overview">
{ /* START Pills Nav */}
<Nav pills className="mb-4 flex-column flex-md-row mt-4 mt-lg-0">
<NavItem>
<UncontrolledTabs.NavLink tabId="overview">
Overview
</UncontrolledTabs.NavLink>
</NavItem>
<NavItem>
<UncontrolledTabs.NavLink tabId="detailContact">
Detail Contact
</UncontrolledTabs.NavLink>
</NavItem>
<NavItem>
<UncontrolledTabs.NavLink tabId="chat">
Chat
</UncontrolledTabs.NavLink>
</NavItem>
<NavItem>
<UncontrolledTabs.NavLink tabId="messages">
Messages <Badge pill color="secondary" className="ml-2">5</Badge>
</UncontrolledTabs.NavLink>
</NavItem>
</Nav>
{ /* END Pills Nav */}
<UncontrolledTabs.TabContent>
<TabPane tabId="overview">
<CardGroup className="mb-5">
<Card body>
<ProfileOverviewCard
title="Views"
badgeColor="primary"
badgeTitle="Monthly"
value="6.200"
valueTitle="Total Views"
footerTitle="Last Month"
footerTitleClassName="text-success"
footerIcon="caret-up"
footerValue="23%"
/>
</Card>
<Card body>
<ProfileOverviewCard
title="Orders"
badgeColor="info"
badgeTitle="Annual"
value="75.938"
valueTitle="New Orders"
footerTitle="Last Annual"
footerTitleClassName="text-danger"
footerIcon="caret-down"
footerValue="96%"
/>
</Card>
<Card body>
<ProfileOverviewCard
title="Visits"
badgeColor="secondary"
badgeTitle="Today"
value="75.938"
valueTitle="Total Visits"
footerTitle="Yesterday"
footerTitleClassName="text-success"
footerIcon="caret-up"
footerValue="40%"
/>
</Card>
</CardGroup>
<TimelineDefault
showPillDate
pillDate="Today"
smallIconColor="danger"
iconCircleColor="danger"
iconCircle="exclamation"
/>
<TimelineDefault
showPillDate
pillDate="Yesterday"
smallIconColor="info"
iconCircleColor="info"
iconCircle="comment"
/>
<TimelineDefault
showPillDate
pillDate="2 Days ago"
smallIconColor="primary"
iconCircleColor="primary"
iconCircle="envelope"
/>
<TimelineDefault
showPillDate
pillDate="3 Months ago"
smallIconColor="warning"
iconCircleColor="warning"
iconCircle="clock-o"
/>
<TimelineDefault
showPillDate
pillDate="Year ago"
smallIconColor="success"
iconCircleColor="success"
iconCircle="check"
/>
<TimelineDefault
iconCircle="close"
/>
</TabPane>
<TabPane tabId="detailContact">
<Card body>
<div className="mb-2">
<span className="small">Contact</span>
</div>
<DlRowContacts
leftSideClassName="text-lg-right"
rightSideClassName="text-inverse"
/>
<div className="mt-4 mb-2">
<span className="small">Address</span>
</div>
<DlRowAddress
leftSideClassName="text-lg-right"
rightSideClassName="text-inverse"
/>
</Card>
</TabPane>
<TabPane tabId="chat">
<Card>
<CardHeader className="d-flex bg-white bb-0">
<h6 className="align-self-center mb-0">
Chat with Romaine Weber
</h6>
<UncontrolledButtonDropdown className="align-self-center ml-auto">
<DropdownToggle color="link" size="sm">
<i className="fa fa-gear"></i><i className="fa fa-angle-down ml-2" />
</DropdownToggle>
<DropdownMenu right>
<DropdownItem>
<i className="fa fa-fw fa-comment mr-2"></i>
Private Message
</DropdownItem>
<DropdownItem>
<i className="fa fa-fw fa-search mr-2"></i>
Search this Thread
</DropdownItem>
<DropdownItem divider />
<DropdownItem>
<i className="fa fa-fw fa-ban mr-2"></i>
Block this User
</DropdownItem>
</DropdownMenu>
</UncontrolledButtonDropdown>
</CardHeader>
<CardBody>
<ChatLeft cardClassName="bg-gray-300 b-0 text-dark" />
<ChatRight cardClassName="text-dark"/>
<ChatLeft cardClassName="bg-gray-300 b-0 text-dark" />
<div className="mt-4 mb-3 text-center">
<span className="small">
Yesterday
</span>
</div>
<ChatRight cardClassName="text-dark" />
</CardBody>
<CardFooter>
<ChatCardFooter />
</CardFooter>
</Card>
</TabPane>
<TabPane tabId="messages">
<Card>
<CardBody className="d-flex">
<ButtonGroup size="sm">
<Button color="secondary" outline active>
Inbox
</Button>
<Button color="secondary" outline>
Archive
</Button>
</ButtonGroup>
<span className="ml-auto">
Showing 1 to 10 of 57 entries
</span>
</CardBody>
{ /* START Table */}
<Table className="mb-0" hover responsive>
<thead>
<tr>
<th className="bt-0">From</th>
<th className="bt-0">Subject</th>
<th className="bt-0 text-right">
Date
</th>
</tr>
</thead>
<tbody>
<TrTableMessages />
<TrTableMessages />
<TrTableMessages />
<TrTableMessages />
<TrTableMessages />
<TrTableMessages />
<TrTableMessages />
<TrTableMessages />
<TrTableMessages />
</tbody>
</Table>
{ /* END Table */}
<CardFooter className="d-flex">
<ButtonGroup size="sm">
<Button color="secondary" outline>
<i className="fa fa-fw fa-angle-left"></i>
</Button>
<Button color="secondary" outline>
<i className="fa fa-fw fa-angle-right"></i>
</Button>
</ButtonGroup>
<span className="ml-auto align-self-center">
Showing 1 to 10 of 57 entries
</span>
</CardFooter>
</Card>
</TabPane>
</UncontrolledTabs.TabContent>
</UncontrolledTabs>
</Col>
</Row>
{ /* END Content */}
</Container>
</React.Fragment>
);
export default ProfileDetails;

View File

@@ -0,0 +1,81 @@
import React from 'react';
import faker from 'faker/locale/en_US';
import { Link } from 'react-router-dom';
import {
Badge,
Avatar,
AvatarAddOn,
Media
} from './../../../../components';
import { randomArray } from './../../../../utilities';
const status = [
"warning",
"danger",
"success",
"secondary"
];
const tag = [
"primary",
"secondary",
"info"
];
const TrTableMessages = () => (
<React.Fragment>
<tr>
<td className="align-middle">
<Media>
<Media left className="align-self-center mr-3">
<Avatar.Image
size="sm"
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>
<div className="mt-0 d-flex text-inverse">
{ faker.name.firstName() } { faker.name.lastName() }
</div>
<span>
{ faker.address.state() }
</span>
</Media>
</Media>
</td>
<td className="align-middle">
<Link to="/apps/email-details">
{ faker.company.catchPhrase() }
</Link>
<br />
<div>
{ faker.lorem.sentence() }
</div>
<Badge color={ randomArray(tag) } pill className="mr-1">
{ faker.commerce.department() }
</Badge>
</td>
<td className="align-middle text-right">
30-Jun-2014<br />
01:54 PM
</td>
</tr>
</React.Fragment>
)
export { TrTableMessages };

View File

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

View File

@@ -0,0 +1,207 @@
import React from 'react';
import {
Container,
Row,
Col,
Input,
Card,
Button,
CardBody,
CardFooter,
FormText,
CardTitle,
CustomInput,
Label,
FormGroup,
Form
} from './../../../components';
import { HeaderMain } from "../../components/HeaderMain";
import { ProfileLeftNav } from "../../components/Profile/ProfileLeftNav";
import { ProfileHeader } from "../../components/Profile/ProfileHeader";
const ProfileEdit = () => (
<React.Fragment>
<Container>
<HeaderMain
title="Profile Edit"
className="mb-5 mt-4"
/>
{ /* START Content */}
<Row>
<Col lg={ 12 }>
<ProfileHeader />
</Col>
<Col lg={ 3 }>
<ProfileLeftNav />
</Col>
<Col lg={ 9 }>
<Card>
<CardBody>
<div className="d-flex mb-4">
<CardTitle tag="h6">
Profile Edit
</CardTitle>
<span className="ml-auto align-self-start small">
Fields mark as <span className="text-danger">*</span> is required.
</span>
</div>
<Form>
<div className="small mt-4 mb-3">
Required
</div>
{ /* START File Select */}
<FormGroup row>
<Label for="uploadYourAvatar" sm={3} className="text-right">
Upload Your Avatar
</Label>
<Col sm={8}>
<CustomInput type="file" id="uploadYourAvatar" name="customFile" label="Browse for a file to upload...." />
<FormText color="muted">
JPG, GIF, PNG, MOV and AVI. Please choose a files under 2GB to upload. File sizes are 400 x 300px.
</FormText>
</Col>
</FormGroup>
{ /* END File Select */}
{ /* START Input */}
<FormGroup row>
<Label for="firstName" sm={3} className="text-right">
<span className="text-danger">*</span> First Name
</Label>
<Col sm={8}>
<Input
type="text"
name=""
id="firstName"
placeholder="First Name..."
/>
</Col>
</FormGroup>
{ /* END Input */}
{ /* START Input */}
<FormGroup row>
<Label for="lastName" sm={3} className="text-right">
<span className="text-danger">*</span> Last Name
</Label>
<Col sm={8}>
<Input
type="text"
name="text"
id="lastName"
placeholder="Last Name..."
/>
</Col>
</FormGroup>
{ /* END Input */}
{ /* START Select */}
<FormGroup row>
<Label for="jobType" sm={3} className="text-right">
Job Type
</Label>
<Col sm={8}>
<CustomInput
type="select"
name="customSelect"
id="jobType"
>
<option value="">Select...</option>
<option>Human Intranet Developer </option>
<option>Dynamic Tactics Specialist</option>
<option>Global Configuration Consultant</option>
<option>Principal Directives Orchestrator</option>
<option>Corporate Usability Consultant</option>
</CustomInput>
</Col>
</FormGroup>
{ /* END Select */}
<div className="small mt-5 mb-3">
Availability
</div>
{ /* START Radios */}
<FormGroup row>
<Label for="afterLogging" sm={3} className="text-right pt-0">
After Logging
</Label>
<Col sm={8}>
<CustomInput
type="radio"
id="operatingSystem12"
name="afterLogging"
label="Available"
defaultChecked
/>
<CustomInput
type="radio"
id="operatingSystem22"
name="afterLogging"
label="Inactive"
/>
<CustomInput
type="radio"
id="operatingSystem33"
name="afterLogging"
label="Busy"
/>
<CustomInput
type="radio"
id="operatingSystem34"
name="afterLogging"
label="Offline"
/>
</Col>
</FormGroup>
<div className="small mt-4 mb-3">
Fill Profile
</div>
{ /* END Radios */}
{ /* START Textarea */}
<FormGroup row>
<Label for="profile" sm={3} className="text-right">
Profile
</Label>
<Col sm={8}>
<Input
type="textarea"
name="text"
id="profile"
placeholder="Please Describe Your Profile..."
className="mb-2"
/>
</Col>
</FormGroup>
{ /* END Textarea */}
{ /* START Input */}
<FormGroup row>
<Label for="addLabels" sm={3} className="text-right">
Add Labels
</Label>
<Col sm={8}>
<Input
type="text"
name=""
id="addLabels"
placeholder="Add Here..."
/>
</Col>
</FormGroup>
{ /* END Input */}
</Form>
{ /* END Form */}
</CardBody>
<CardFooter className="text-right">
<Button color="primary">
Update Profile
</Button>
</CardFooter>
</Card>
</Col>
</Row>
{ /* END Content */}
</Container>
</React.Fragment>
);
export default ProfileEdit;

View File

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

View File

@@ -0,0 +1,49 @@
import React from 'react';
import PropTypes from 'prop-types';
import {
Container,
Row,
Col
} from './../../../components';
import { HeaderMain } from "../../components/HeaderMain";
import ProjectsList from './ProjectsList';
import ProjectsGrid from './ProjectsGrid';
import { ProjectsLeftNav } from "../../components/Projects/ProjectsLeftNav";
import { ProjectsSmHeader } from "../../components/Projects/ProjectsSmHeader";
const Projects = (props) => (
<React.Fragment>
<Container>
<HeaderMain
title="Projects"
className="mb-5 mt-4"
/>
<Row>
<Col lg={ 3 }>
<ProjectsLeftNav />
</Col>
<Col lg={ 9 }>
<ProjectsSmHeader
subTitle={props.match.params.type === "list"?"Projects List":"Projects Grid"}
linkList="/apps/projects/list"
linkGrid="/apps/projects/grid"
/>
{
props.match.params.type === "list" ?
<ProjectsList /> :
<ProjectsGrid />
}
</Col>
</Row>
</Container>
</React.Fragment>
);
Projects.propTypes = {
match: PropTypes.object.isRequired
};
export default Projects;

View File

@@ -0,0 +1,23 @@
import React from 'react';
import _ from 'lodash';
import { CardColumns } from './../../../components';
import { ProjectsCardGrid } from "../../components/Projects/ProjectsCardGrid";
import { Paginations } from "../../components/Paginations";
const ProjectsGrid = () => (
<React.Fragment>
<CardColumns>
{
_.times(12, (index) => (
<ProjectsCardGrid key={ index } />
))
}
</CardColumns>
<div className="d-flex justify-content-center">
<Paginations />
</div>
</React.Fragment>
);
export default ProjectsGrid;

View File

@@ -0,0 +1,71 @@
import React from 'react';
import {
Pagination,
PaginationItem,
PaginationLink,
Card,
CardFooter,
Table
} from './../../../components';
import {
TrTableProjectsList
} from "./components/TrTableProjectsList";
const ProjectsList = () => (
<Card className="mb-3">
{ /* START Table */}
<div className="table-responsive-xl">
<Table className="mb-0" hover>
<thead>
<tr>
<th className="align-middle bt-0">Star</th>
<th className="align-middle bt-0">Project</th>
<th className="align-middle bt-0">Status</th>
<th className="align-middle bt-0">Tasks Completed</th>
<th className="align-middle bt-0">People</th>
<th className="align-middle bt-0 text-right">
Actions
</th>
</tr>
</thead>
<tbody>
<TrTableProjectsList />
</tbody>
</Table>
</div>
{ /* END Table */}
<CardFooter className="d-flex justify-content-center pb-0">
<Pagination aria-label="Page navigation example">
<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>
);
export default ProjectsList;

View File

@@ -0,0 +1,115 @@
import React from 'react';
import faker from 'faker/locale/en_US';
import _ from 'lodash';
import { Link } from 'react-router-dom';
import {
Badge,
Progress,
Avatar,
UncontrolledButtonDropdown,
DropdownToggle,
DropdownMenu,
DropdownItem
} from './../../../../components';
import { randomAvatar } from './../../../../utilities';
/*eslint-disable */
const status = [
<Badge pill color="success">
Active
</Badge>,
<Badge pill color="danger">
Suspended
</Badge>,
<Badge pill color="warning">
Waiting
</Badge>,
<Badge pill color="secondary">
Paused
</Badge>
];
/*eslint-enable */
/*eslint-disable */
const tasksCompleted = [
"25",
"50",
"70",
"90"
];
/*eslint-enable */
const TrTableProjectsList = () => (
<React.Fragment>
{
_.times(12, (index) => (
<tr key={ index }>
<td className="align-middle">
<div className="text-inverse">
<a href="#">
<i className="fa fa-fw fa-lg fa-star-o"></i>
</a>
</div>
</td>
<td className="align-middle">
<div>
<Link to="/apps/tasks/list" className="text-decoration-none">
{ faker.company.catchPhrase() }
</Link>
</div>
<span>
Last Edited by: { faker.name.firstName() } { faker.name.lastName() } <br />
{ faker.date.weekday() }, 12 { faker.date.month() }, 2018
</span>
</td>
<td className="align-middle">
{ status[index%4] }
</td>
<td className="align-middle">
<Progress value={ tasksCompleted[index%4] } style={{height: "5px"}} className="mb-2" />
<div>
Tasks Completed:
<span className="text-inverse">
36/94
</span>
</div>
</td>
<td className="align-middle">
<Avatar.Image
size="md"
src={ randomAvatar() }
/>
</td>
<td className="align-middle text-right">
<UncontrolledButtonDropdown>
<DropdownToggle color="link" outline>
<i className="fa fa-gear" /><i className="fa fa-angle-down ml-2" />
</DropdownToggle>
<DropdownMenu right>
<DropdownItem>
<i className="fa fa-fw fa-folder-open mr-2"></i>
View
</DropdownItem>
<DropdownItem>
<i className="fa fa-fw fa-ticket mr-2"></i>
Add Task
</DropdownItem>
<DropdownItem>
<i className="fa fa-fw fa-paperclip mr-2"></i>
Add Files
</DropdownItem>
<DropdownItem divider />
<DropdownItem>
<i className="fa fa-fw fa-trash mr-2"></i>
Delete
</DropdownItem>
</DropdownMenu>
</UncontrolledButtonDropdown>
</td>
</tr>
))
}
</React.Fragment>
)
export { TrTableProjectsList };

View File

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

View File

@@ -0,0 +1,48 @@
import React from 'react';
import {
Container,
Row,
Col
} from './../../../components';
import { HeaderMain } from "../../components/HeaderMain";
import { SearchResultsLeftNav } from
"../../components/SearchResults/SearchResultsLeftNav";
import { SearchResultsHeader } from
"../../components/SearchResults/SearchResultsHeader";
import { SearchResultsCard } from
"../../components/SearchResults/SearchResultsCard";
import { Paginations } from "../../components/Paginations";
const SearchResults = () => (
<React.Fragment>
<Container>
<HeaderMain
title="Search Results"
className="mb-5 mt-4"
/>
{ /* START Content */}
<Row>
<Col lg={ 3 }>
<SearchResultsLeftNav />
</Col>
<Col lg={ 9 }>
<SearchResultsHeader />
<SearchResultsCard />
<SearchResultsCard />
<SearchResultsCard />
<SearchResultsCard />
<SearchResultsCard />
<SearchResultsCard />
<SearchResultsCard />
<div className="d-flex justify-content-center">
<Paginations />
</div>
</Col>
</Row>
{ /* END Content */}
</Container>
</React.Fragment>
);
export default SearchResults;

View File

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

View File

@@ -0,0 +1,66 @@
import React from 'react';
import {
Container,
Row,
Col,
Table,
Card,
CardBody,
CardTitle
} from './../../../components';
import { HeaderMain } from "../../components/HeaderMain";
import { ProfileLeftNav } from "../../components/Profile/ProfileLeftNav";
import { ProfileHeader } from "../../components/Profile/ProfileHeader";
import { TrTableResponsive } from "./../../Tables/Tables/components/TrTableResponsive";
const BillingEdit = () => (
<React.Fragment>
<Container>
<HeaderMain
title="Sessions Edit"
className="mb-5 mt-4"
/>
{ /* START Content */}
<Row>
<Col lg={ 12 }>
<ProfileHeader />
</Col>
<Col lg={ 3 }>
<ProfileLeftNav />
</Col>
<Col lg={ 9 }>
<Card className="mb-3">
<CardBody>
<CardTitle tag="h6" className="mb-0">
Billing History
</CardTitle>
</CardBody>
{ /* START Table */}
<Table className="mb-0" responsive>
<thead>
<tr>
<th className="bt-0">#</th>
<th className="bt-0">Browser & OS</th>
<th className="bt-0">IP</th>
<th className="bt-0">Location</th>
<th className="bt-0">Signed In</th>
<th className="text-right">
Action
</th>
</tr>
</thead>
<tbody>
<TrTableResponsive />
</tbody>
</Table>
{ /* END Table */}
</Card>
</Col>
</Row>
{ /* END Content */}
</Container>
</React.Fragment>
);
export default BillingEdit;

View File

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

View File

@@ -0,0 +1,114 @@
import React from 'react';
import {
Container,
Row,
Col,
Input,
Card,
Button,
CardBody,
CardFooter,
FormText,
CardTitle,
CustomInput,
Label,
FormGroup,
Form
} from './../../../components';
import { HeaderMain } from "../../components/HeaderMain";
import { ProfileLeftNav } from "../../components/Profile/ProfileLeftNav";
import { ProfileHeader } from "../../components/Profile/ProfileHeader";
const SettingsEdit = () => (
<React.Fragment>
<Container>
<HeaderMain
title="Settings Edit"
className="mb-5 mt-4"
/>
{ /* START Content */}
<Row>
<Col lg={ 12 }>
<ProfileHeader />
</Col>
<Col lg={ 3 }>
<ProfileLeftNav />
</Col>
<Col lg={ 9 }>
<Card>
<CardBody>
<CardTitle tag="h6" className="mb-4">
Settings Edit
</CardTitle>
<Form>
{ /* START Input */}
<FormGroup className="mb-5">
<Label for="notifyMe" className="mb-1 text-inverse">
Monthly Newsletter
</Label>
<p className="mb-2">
Do you want receive our monthly newsletter about
new products and offers?
</p>
<CustomInput type="checkbox" id="notifyMe" label="Notify Me" inline />
</FormGroup>
{ /* END Input */}
{ /* START Input */}
<FormGroup className="mb-5">
<Label for="privateMessage" className="mb-1 text-inverse">
Private Message
</Label>
<p className="mb-2">
Do you want notify you by email whenever contacts send you a message?
</p>
<CustomInput type="radio" id="privateMessageYes" name="privateMessage" label="Yes" defaultChecked />
<CustomInput type="radio" id="privateMessageNo" name="privateMessage" label="No" />
</FormGroup>
{ /* END Input */}
{ /* START Input */}
<FormGroup className="mb-5">
<Label for="privateMessage" className="mb-1 text-inverse">
Publication Email Subscriptions
</Label>
<p className="mb-2">
Control the emails that publications send to you.
</p>
<Button color="primary" outline>
Manage Publication
</Button>
</FormGroup>
{ /* END Input */}
{ /* START Input */}
<FormGroup className="mb-5">
<Label for="ActivityNotifications" className="mb-1 text-inverse">
Activity Notifications
</Label>
<p className="mb-2">
Notify me via email when...
</p>
<CustomInput type="radio" id="someoneComments" name="ActivityNotifications" label="Someone Comments" defaultChecked />
<CustomInput type="radio" id="someoneMentions" name="ActivityNotifications" label="Someone Mentions" />
<CustomInput type="radio" id="anyoneFollowsMe" name="ActivityNotifications" label="Anyone Follows Me" />
</FormGroup>
{ /* END Input */}
</Form>
{ /* END Form */}
</CardBody>
<CardFooter className="small">
<i className="fa fa-fw fa-support text-muted mr-2"></i>
If you have trouble with the configuration, you can contact us. <a href="#">We Can Help</a>
</CardFooter>
</Card>
</Col>
</Row>
{ /* END Content */}
</Container>
</React.Fragment>
);
export default SettingsEdit;

View File

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

52
app/routes/Apps/Tasks/Tasks.js Executable file
View File

@@ -0,0 +1,52 @@
import React from 'react';
import PropTypes from 'prop-types';
import {
Container,
Row,
Col
} from './../../../components';
import { HeaderMain } from "../../components/HeaderMain";
import TasksList from './TasksList';
import TasksGrid from './TasksGrid';
import { ProjectsLeftNav } from "../../components/Projects/ProjectsLeftNav";
import { ProjectsSmHeader } from "../../components/Projects/ProjectsSmHeader";
const Tasks = (props) => (
<React.Fragment>
<Container>
<HeaderMain
title="Tasks"
className="mb-5 mt-4"
/>
<Row>
<Col lg={ 3 }>
<ProjectsLeftNav />
</Col>
<Col lg={ 9 }>
<ProjectsSmHeader
subTitle="Projects"
subTitleLink="/apps/projects/list"
title={props.match.params.type === "list"?"Tasks List":"Tasks Grid"}
linkList="/apps/tasks/list"
linkGrid="/apps/tasks/grid"
btnShowKanban
/>
{
props.match.params.type === "list" ?
<TasksList /> :
<TasksGrid />
}
</Col>
</Row>
</Container>
</React.Fragment>
);
Tasks.propTypes = {
match: PropTypes.object.isRequired
};
export default Tasks;

View File

@@ -0,0 +1,42 @@
import React from 'react';
import { CardColumns } from './../../../components';
import { Paginations } from "../../components/Paginations";
import { TasksCardGrid } from "../../components/Tasks/TasksCardGrid";
const TasksGrid = () => (
<React.Fragment>
<CardColumns>
<TasksCardGrid />
<TasksCardGrid
id="2"
/>
<TasksCardGrid
id="3"
/>
<TasksCardGrid
id="4"
/>
<TasksCardGrid
id="5"
/>
<TasksCardGrid
id="6"
/>
<TasksCardGrid
id="7"
/>
<TasksCardGrid
id="8"
/>
<TasksCardGrid
id="9"
/>
</CardColumns>
<div className="d-flex justify-content-center">
<Paginations />
</div>
</React.Fragment>
);
export default TasksGrid;

View File

@@ -0,0 +1,97 @@
import React from 'react';
import {
Pagination,
PaginationItem,
PaginationLink,
Card,
CardFooter,
Table
} from './../../../components';
import { TrTableTasksList } from "./components/TrTableTasksList";
const TasksList = () => (
<Card className="mb-3">
{ /* START Table */}
<div className="table-responsive-xl">
<Table className="mb-0" hover>
<thead>
<tr>
<th className="align-middle bt-0">#</th>
<th className="align-middle bt-0">Priority</th>
<th className="align-middle bt-0">Title & Description</th>
<th className="align-middle bt-0">People</th>
<th className="align-middle bt-0">Update</th>
<th className="align-middle bt-0 text-right">
Actions
</th>
</tr>
</thead>
<tbody>
<TrTableTasksList />
<TrTableTasksList
id="2"
/>
<TrTableTasksList
id="3"
/>
<TrTableTasksList
id="4"
/>
<TrTableTasksList
id="5"
/>
<TrTableTasksList
id="6"
/>
<TrTableTasksList
id="7"
/>
<TrTableTasksList
id="8"
/>
<TrTableTasksList
id="9"
/>
<TrTableTasksList
id="10"
/>
</tbody>
</Table>
</div>
{ /* END Table */}
<CardFooter className="d-flex justify-content-center pb-0">
<Pagination aria-label="Page navigation example">
<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>
);
export default TasksList;

View File

@@ -0,0 +1,159 @@
import React from 'react';
import faker from 'faker/locale/en_US';
import PropTypes from 'prop-types';
import { Link } from 'react-router-dom';
import {
Badge,
Avatar,
CustomInput,
UncontrolledButtonDropdown,
DropdownToggle,
DropdownMenu,
DropdownItem,
AvatarAddOn
} from './../../../../components';
import { randomArray, randomAvatar } from './../../../../utilities';
const badges = [
"secondary"
];
const avatarStatus = [
"secondary",
"warning",
"danger",
"success"
];
const prioStatus = [
<React.Fragment key="1">
<i className="fa fa-circle text-success mr-2"></i>
Small<i className="fa fa-angle-down ml-2" />
</React.Fragment>,
<React.Fragment key="2">
<i className="fa fa-circle text-primary mr-2"></i>
Normal<i className="fa fa-angle-down ml-2" />
</React.Fragment>,
<React.Fragment key="3">
<i className="fa fa-circle text-warning mr-2"></i>
High<i className="fa fa-angle-down ml-2" />
</React.Fragment>,
<React.Fragment key="3">
<i className="fa fa-circle text-danger mr-2"></i>
Big<i className="fa fa-angle-down ml-2" />
</React.Fragment>
];
const TrTableTasksList = (props) => (
<React.Fragment>
<tr>
<td className="align-middle">
<CustomInput type="checkbox" id={`TrTableTasksList-${ props.id }` } label="" inline />
</td>
<td className="align-middle">
<UncontrolledButtonDropdown>
<DropdownToggle color="link" link size="sm" className="pl-0 mb-3 text-decoration-none">
{ randomArray(prioStatus) }
</DropdownToggle>
<DropdownMenu>
<DropdownItem header>Select Priority</DropdownItem>
<DropdownItem>
<i className="fa fa-circle text-danger mr-2"></i>
Big
</DropdownItem>
<DropdownItem>
<i className="fa fa-circle text-warning mr-2"></i>
High
</DropdownItem>
<DropdownItem>
<i className="fa fa-circle text-primary mr-2"></i>
Normal
</DropdownItem>
<DropdownItem>
<i className="fa fa-circle text-success mr-2"></i>
Small
</DropdownItem>
</DropdownMenu>
</UncontrolledButtonDropdown>
</td>
<td className="align-middle">
<div>
<span className="mr-2">#{ faker.random.number() }</span>
<Link to="/apps/task-details" className="text-decoration-none">
{ faker.hacker.phrase() }
</Link>
</div>
<p className="mb-0">
<span className="mr-2">
{ faker.lorem.sentence() }
</span>
<Badge pill color={ randomArray(badges) } className="mr-1">
{ faker.commerce.department() }
</Badge>
<Badge pill color={ randomArray(badges) } className="mr-1">
{ faker.commerce.department() }
</Badge>
</p>
</td>
<td className="align-middle">
<Avatar.Image
size="md"
src={ randomAvatar() }
className="mr-3"
addOns={[
<AvatarAddOn.Icon
className="fa fa-circle"
color="white"
key="avatar-icon-bg"
/>,
<AvatarAddOn.Icon
className="fa fa-circle"
color={ randomArray(avatarStatus) }
key="avatar-icon-fg"
/>
]}
/>
</td>
<td className="align-middle">
16-Jul-2016
</td>
<td className="align-middle text-right">
<UncontrolledButtonDropdown className="align-self-center ml-auto">
<DropdownToggle color="link" size="sm">
<i className="fa fa-gear" /><i className="fa fa-angle-down ml-2" />
</DropdownToggle>
<DropdownMenu right>
<DropdownItem>
<i className="fa fa-fw fa-folder-open mr-2"></i>
View
</DropdownItem>
<DropdownItem>
<i className="fa fa-fw fa-ticket mr-2"></i>
Add Task
</DropdownItem>
<DropdownItem>
<i className="fa fa-fw fa-paperclip mr-2"></i>
Add Files
</DropdownItem>
<DropdownItem divider />
<DropdownItem>
<i className="fa fa-fw fa-trash mr-2"></i>
Delete
</DropdownItem>
</DropdownMenu>
</UncontrolledButtonDropdown>
</td>
</tr>
</React.Fragment>
)
TrTableTasksList.propTypes = {
id: PropTypes.node
};
TrTableTasksList.defaultProps = {
id: "1"
};
export { TrTableTasksList };

3
app/routes/Apps/Tasks/index.js Executable file
View File

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

View File

@@ -0,0 +1,323 @@
import React from 'react';
import faker from 'faker/locale/en_US';
import {
Container,
Row,
Col,
Nav,
NavItem,
NavLink,
Table,
Button,
Card,
CardBody,
CardFooter,
UncontrolledButtonDropdown,
DropdownToggle,
DropdownMenu,
DropdownItem,
Media,
Input,
InputGroup,
CustomInput,
InputGroupAddon,
Badge,
Avatar
} from './../../../components';
import { randomAvatar } from './../../../utilities';
import { HeaderMain } from "../../components/HeaderMain";
import { ProjectsSmHeader } from "../../components/Projects/ProjectsSmHeader";
import { Attachment } from "../../components/Attachment";
import { Comment } from "../../components/Comment";
const TasksDetails = () => (
<React.Fragment>
<Container>
<HeaderMain
title="Tasks Details"
className="mb-5 mt-4"
/>
{ /* START Header 1 */}
<Row>
<Col lg={ 3 }>
{ /* START Left Nav */}
<div className="mb-5">
<div className="small mb-3">
Task Details
</div>
<Table size="sm">
<tbody>
<tr>
<td className="align-middle">Project</td>
<td className="text-right">
<a href="#" className="text-decoration-none">Analytics Redo</a>
</td>
</tr>
<tr>
<td className="align-middle">Assigned by</td>
<td className="text-right">
<a href="#" className="text-decoration-none">
{ faker.name.firstName() } { faker.name.lastName() }
</a>
</td>
</tr>
<tr>
<td className="align-middle">Start Date</td>
<td className="text-right">
Thu 12 May 2016
</td>
</tr>
<tr>
<td className="align-middle">End Date</td>
<td className="text-right">
Wed 18 May 2016
</td>
</tr>
<tr>
<td className="align-middle">Priority</td>
<td className="text-right">
<UncontrolledButtonDropdown>
<DropdownToggle color="link" className="p-0 text-decoration-none">
<i className="fa fa-circle text-success mr-2"></i>
Small<i className="fa fa-angle-down ml-2" />
</DropdownToggle>
<DropdownMenu right>
<DropdownItem header>Select Priority</DropdownItem>
<DropdownItem>
<i className="fa fa-circle text-danger mr-2"></i>
Big
</DropdownItem>
<DropdownItem>
<i className="fa fa-circle text-warning mr-2"></i>
High
</DropdownItem>
<DropdownItem>
<i className="fa fa-circle text-primary mr-2"></i>
Normal
</DropdownItem>
<DropdownItem active>
<i className="fa fa-circle text-success mr-2"></i>
Small
</DropdownItem>
</DropdownMenu>
</UncontrolledButtonDropdown>
</td>
</tr>
<tr>
<td className="align-middle">Progress</td>
<td className="align-middle text-right">
30%
</td>
</tr>
<tr>
<td className="align-middle">Task ID</td>
<td className="align-middle text-right">
# 6726746
</td>
</tr>
<tr>
<td className="align-middle">Date Assigned</td>
<td className="align-middle text-right">
Wed, 16 Dec 2015, 12:17 PM
</td>
</tr>
</tbody>
</Table>
</div>
{ /* END Left Nav */}
{ /* START Left Nav */}
<div className="mb-4">
<div className="small mb-3">
Assigned to
</div>
<Nav pills vertical>
<NavItem>
<NavLink href="#" className="d-flex">
<Media>
<Media left middle className="mr-3 align-self-center">
<Avatar.Image
size="md"
src={ randomAvatar() }
/>
</Media>
<Media body>
<div className="mt-0">
{ faker.name.firstName() } { faker.name.lastName() }
</div>
<span className="small">
{ faker.address.state() }, { faker.address.stateAbbr() }
</span>
</Media>
</Media>
<i className="fa fa-fw fa-circle text-success ml-auto align-self-center ml-2"></i>
</NavLink>
</NavItem>
<NavItem>
<NavLink href="#" className="d-flex">
<Media>
<Media left middle className="mr-3 align-self-center">
<Avatar.Image
size="md"
src={ randomAvatar() }
/>
</Media>
<Media body>
<div className="mt-0">
{ faker.name.firstName() } { faker.name.lastName() }
</div>
<span className="small">
{ faker.address.state() }, { faker.address.stateAbbr() }
</span>
</Media>
</Media>
<i className="fa fa-fw fa-circle text-warning ml-auto align-self-center ml-2"></i>
</NavLink>
</NavItem>
<NavItem>
<NavLink href="#" className="d-flex">
<Media>
<Media left middle className="mr-3 align-self-center">
<Avatar.Image
size="md"
src={ randomAvatar() }
/>
</Media>
<Media body>
<div className="mt-0">
{ faker.name.firstName() } { faker.name.lastName() }
</div>
<span className="small">
{ faker.address.state() }, { faker.address.stateAbbr() }
</span>
</Media>
</Media>
<i className="fa fa-fw fa-circle text-danger ml-auto align-self-center ml-2"></i>
</NavLink>
</NavItem>
<NavItem>
<NavLink href="#">
<i className="fa fa-fw fa-plus mr-2"></i>
Add New People
</NavLink>
</NavItem>
</Nav>
</div>
{ /* END Left Nav */}
</Col>
<Col lg={ 9 }>
<ProjectsSmHeader
subTitle="Tasks"
subTitleLink="/apps/tasks/grid"
title="Task Details"
/>
{ /* START Right Content */}
<Card>
<CardBody>
<Media>
<Media left href="#">
<CustomInput type="checkbox" id="checkboxTaskDetails" label="" inline />
</Media>
<Media body>
<div className="mb-3">
<h5>
<span className="mr-2">
#{ faker.random.number() }
</span>
{ faker.hacker.phrase() }
</h5>
<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="secondary" className="mr-1">
{ faker.commerce.department() }
</Badge>
</div>
</Media>
</Media>
<p className="lead">
Animi ea magni voluptates accusamus laboriosam. Unde repellat hic id et aliquam ut qui dignissimos.
</p>
<p className="mb-4">
{ faker.lorem.paragraphs() }
</p>
{ /* START Atachemnts */}
<div className="mb-4">
<div className="mb-3">
<span className="small mr-3">
Attachments
</span>
<Badge pill color="secondary">
3
</Badge>
</div>
<div className="mb-3">
<Attachment
icon="file-word-o"
iconClassName="text-white"
BgIconClassName="text-primary"
/>
</div>
<div className="mb-3">
<Attachment
icon="file-excel-o"
iconClassName="text-white"
BgIconClassName="text-success"
/>
</div>
<div className="mb-3">
<Attachment
icon="file-powerpoint-o"
iconClassName="text-white"
BgIconClassName="text-warning"
/>
</div>
<div className="mb-5">
<a href="#">
<i className="fa fa-plus mr-2"></i>
Add More Files to this Task
</a>
</div>
</div>
{ /* END Atachemnts */}
<div className="mb-3">
<span className="small mr-3">
Comments
</span>
<Badge pill color="secondary">
3
</Badge>
</div>
<Comment />
<Comment />
{ /* END Comment Media */}
</CardBody>
<CardFooter>
<InputGroup>
<InputGroupAddon addonType="prepend">
<Button color="secondary" outline>
<i className="fa fa fa-paperclip"></i>
</Button>
</InputGroupAddon>
<Input placeholder="Your message..." />
<InputGroupAddon addonType="append">
<Button color="primary">
<i className="fa fa fa-send"></i>
</Button>
</InputGroupAddon>
</InputGroup>
</CardFooter>
</Card>
{ /* END Right Content */}
</Col>
</Row>
{ /* END Header 1 */}
</Container>
</React.Fragment>
);
export default TasksDetails;

View File

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

View File

@@ -0,0 +1,216 @@
import React from 'react';
import {
Container,
Row,
Col,
Card,
CardTitle,
CardBody,
CardFooter,
CardColumns,
Badge,
UncontrolledTooltip
} from './../../../components';
import { HeaderMain } from "../../components/HeaderMain";
import { ProjectsSmHeader } from "../../components/Projects/ProjectsSmHeader";
import { TasksCardGrid } from "../../components/Tasks/TasksCardGrid";
const TasksKanban = () => (
<React.Fragment>
<Container>
<HeaderMain
title="Tasks Kanban"
className="mb-5 mt-4"
/>
{ /* START Header 1 */}
<Row>
<Col lg={ 12 }>
<ProjectsSmHeader
btnShowKanban
linkList="/apps/tasks/list"
linkGrid="/apps/tasks/grid"
title="Tasks Kanban"
subTitle="Projects"
subTitleLink="/apps/projects/list"
/>
<CardColumns>
{ /* START Card */}
<Card>
<CardBody>
{ /* START Card Header */}
<div className="mb-4">
<CardTitle tag="h6">
To-Do
<Badge pill color="secondary" className="ml-2">
3
</Badge>
</CardTitle>
<span className="small d-flex">
16 Jun 2016 - 23 Aug 2016
<span className="ml-auto">
<a href="#" className="mr-2" id="TooltipSettings">
<i className="fa fa-gear"></i>
</a>
<a href="#" className="mr-2" id="TooltipCollapse">
<i className="fa fa-angle-down"></i>
</a>
<a href="#" id="TooltipAddNew">
<i className="fa fa-plus"></i>
</a>
<UncontrolledTooltip placement="top" target="TooltipSettings">
Settings
</UncontrolledTooltip>
<UncontrolledTooltip placement="top" target="TooltipSettings">
Collapse
</UncontrolledTooltip>
<UncontrolledTooltip placement="top" target="TooltipAddNew">
Add New
</UncontrolledTooltip>
</span>
</span>
</div>
{ /* END CardHeader */}
<TasksCardGrid />
<TasksCardGrid
id="2"
/>
<TasksCardGrid
id="3"
/>
</CardBody>
{ /* START Card Footer */}
<CardFooter className="text-center">
<a href="#">
<i className="fa fa-plus text-success mr-2"></i>
Add Task
</a>
</CardFooter>
{ /* END Card Footer */}
</Card>
{ /* END Card */}
{ /* START Card */}
<Card>
<CardBody>
{ /* START Card Header */}
<div className="mb-4">
<CardTitle tag="h6">
Doing
<Badge pill color="secondary" className="ml-2">
2
</Badge>
</CardTitle>
<span className="small d-flex">
16 Jun 2016 - 23 Aug 2016
<span className="ml-auto">
<a href="#" className="mr-2" id="TooltipSettings">
<i className="fa fa-gear"></i>
</a>
<a href="#" className="mr-2" id="TooltipCollapse">
<i className="fa fa-angle-down"></i>
</a>
<a href="#" id="TooltipAddNew">
<i className="fa fa-plus"></i>
</a>
<UncontrolledTooltip placement="top" target="TooltipSettings">
Settings
</UncontrolledTooltip>
<UncontrolledTooltip placement="top" target="TooltipSettings">
Collapse
</UncontrolledTooltip>
<UncontrolledTooltip placement="top" target="TooltipAddNew">
Add New
</UncontrolledTooltip>
</span>
</span>
</div>
{ /* END CardHeader */}
<TasksCardGrid
id="4"
/>
<TasksCardGrid
id="5"
/>
</CardBody>
{ /* START Card Footer */}
<CardFooter className="text-center">
<a href="#">
<i className="fa fa-plus text-success mr-2"></i>
Add Task
</a>
</CardFooter>
{ /* END Card Footer */}
</Card>
{ /* END Card */}
{ /* START Card */}
<Card>
<CardBody>
{ /* START Card Header */}
<div className="mb-4">
<CardTitle tag="h6">
Done
<Badge pill color="secondary" className="ml-2">
1
</Badge>
</CardTitle>
<span className="small d-flex">
16 Jun 2016 - 23 Aug 2016
<span className="ml-auto">
<a href="#" className="mr-2" id="TooltipSettings">
<i className="fa fa-gear"></i>
</a>
<a href="#" className="mr-2" id="TooltipCollapse">
<i className="fa fa-angle-down"></i>
</a>
<a href="#" id="TooltipAddNew">
<i className="fa fa-plus"></i>
</a>
<UncontrolledTooltip placement="top" target="TooltipSettings">
Settings
</UncontrolledTooltip>
<UncontrolledTooltip placement="top" target="TooltipSettings">
Collapse
</UncontrolledTooltip>
<UncontrolledTooltip placement="top" target="TooltipAddNew">
Add New
</UncontrolledTooltip>
</span>
</span>
</div>
{ /* END CardHeader */}
<TasksCardGrid
id="6"
/>
</CardBody>
{ /* START Card Footer */}
<CardFooter className="text-center">
<a href="#">
<i className="fa fa-plus text-success mr-2"></i>
Add Task
</a>
</CardFooter>
{ /* END Card Footer */}
</Card>
{ /* END Card */}
{ /* START Card */}
<Card type="border-dash">
<CardBody className="d-flex align-items-center justify-content-center">
<a href="#" className="py-5">
<i className="fa fa-plus text-success mr-2"></i>
Add New Column
</a>
</CardBody>
</Card>
{ /* END Card */}
</CardColumns>
</Col>
</Row>
{ /* END Header 1 */}
</Container>
</React.Fragment>
);
export default TasksKanban;

View File

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

48
app/routes/Apps/Users/Users.js Executable file
View File

@@ -0,0 +1,48 @@
import React from 'react';
import PropTypes from 'prop-types';
import {
Container,
Row,
Col
} from './../../../components';
import { HeaderMain } from "../../components/HeaderMain";
import UsersList from './UsersList';
import UsersGrid from './UsersGrid';
import { UsersLeftNav } from "../../components/Users/UsersLeftNav";
import { ProjectsSmHeader } from "../../components/Projects/ProjectsSmHeader";
const Users = (props) => (
<React.Fragment>
<Container>
<HeaderMain
title="Users"
className="mb-5 mt-4"
/>
<Row>
<Col lg={ 3 }>
<UsersLeftNav />
</Col>
<Col lg={ 9 }>
<ProjectsSmHeader
subTitle={props.match.params.type === "list"?"Users List":"Users Grid"}
linkList="/apps/users/list"
linkGrid="/apps/users/grid"
/>
{
props.match.params.type === "list" ?
<UsersList /> :
<UsersGrid />
}
</Col>
</Row>
</Container>
</React.Fragment>
);
Users.propTypes = {
match: PropTypes.object.isRequired
};
export default Users;

View File

@@ -0,0 +1,51 @@
import React from 'react';
import { CardColumns } from './../../../components';
import { UsersCardGrid } from "../../components/Users/UsersCardGrid";
import { Paginations } from "../../components/Paginations";
const UsersGrid = () => (
<React.Fragment>
<CardColumns>
<UsersCardGrid />
<UsersCardGrid
id="2"
/>
<UsersCardGrid
id="3"
/>
<UsersCardGrid
id="4"
/>
<UsersCardGrid
id="5"
/>
<UsersCardGrid
id="6"
/>
<UsersCardGrid
id="7"
/>
<UsersCardGrid
id="8"
/>
<UsersCardGrid
id="9"
/>
<UsersCardGrid
id="10"
/>
<UsersCardGrid
id="11"
/>
<UsersCardGrid
id="12"
/>
</CardColumns>
<div className="d-flex justify-content-center">
<Paginations />
</div>
</React.Fragment>
);
export default UsersGrid;

View File

@@ -0,0 +1,71 @@
import React from 'react';
import {
Card,
CardFooter,
Table,
} from './../../../components';
import {
TrTableUsersList
} from "./components/TrTableUsersList";
import {
Paginations
} from "../../components/Paginations";
const UsersList = () => (
<Card className="mb-3">
{ /* START Table */}
<div className="table-responsive-xl">
<Table className="mb-0" hover>
<thead>
<tr>
<th className="align-middle bt-0"></th>
<th className="align-middle bt-0"></th>
<th className="align-middle bt-0">Name</th>
<th className="align-middle bt-0">Email</th>
<th className="align-middle bt-0">Phone</th>
<th className="align-middle bt-0 text-right">
Actions
</th>
</tr>
</thead>
<tbody>
<TrTableUsersList />
<TrTableUsersList
id="2"
/>
<TrTableUsersList
id="3"
/>
<TrTableUsersList
id="4"
/>
<TrTableUsersList
id="5"
/>
<TrTableUsersList
id="6"
/>
<TrTableUsersList
id="7"
/>
<TrTableUsersList
id="8"
/>
<TrTableUsersList
id="9"
/>
</tbody>
</Table>
</div>
{ /* END Table */}
<CardFooter className="d-flex justify-content-center pb-0">
<Paginations />
</CardFooter>
</Card>
);
export default UsersList;

View File

@@ -0,0 +1,176 @@
import React from 'react';
import faker from 'faker/locale/en_US';
import PropTypes from 'prop-types';
import {
Media,
Avatar,
AvatarAddOn,
CustomInput,
UncontrolledButtonDropdown,
DropdownToggle,
DropdownMenu,
DropdownItem
} from './../../../../components';
import { randomArray, randomAvatar } from './../../../../utilities';
const TrTableUsersList = (props) => {
const avatar = [
[
<AvatarAddOn.Icon
className="fa fa-circle"
color="facebook"
key="avatar-icon-bg"
/>,
<AvatarAddOn.Icon
className="fa fa-facebook"
color="white"
key="avatar-icon-fg"
small
/>
],
[
<AvatarAddOn.Icon
className="fa fa-circle"
color="twitter"
key="avatar-icon-bg"
/>,
<AvatarAddOn.Icon
className="fa fa-twitter"
color="white"
key="avatar-icon-fg"
small
/>
],
[
<AvatarAddOn.Icon
className="fa fa-circle"
color="linkedin"
key="avatar-icon-bg"
/>,
<AvatarAddOn.Icon
className="fa fa-linkedin"
color="white"
key="avatar-icon-fg"
small
/>
],
[
<AvatarAddOn.Icon
className="fa fa-circle"
color="foursquare"
key="avatar-icon-bg"
/>,
<AvatarAddOn.Icon
className="fa fa-foursquare"
color="white"
key="avatar-icon-fg"
small
/>
],
[
<AvatarAddOn.Icon
className="fa fa-circle"
color="paypal"
key="avatar-icon-bg"
/>,
<AvatarAddOn.Icon
className="fa fa-paypal"
color="white"
key="avatar-icon-fg"
small
/>
],
];
return (
<React.Fragment>
<tr>
<td className="align-middle">
<CustomInput type="checkbox" id={`TrTableUsersList-${ props.id }` } label="" inline />
</td>
<td className="align-middle">
<a href="#">
<i className="fa fa-fw fa-star-o"></i>
</a>
</td>
<td>
<Media>
<Media left className="d-flex align-self-center mr-3">
<Avatar.Image
size="md"
src={ randomAvatar() }
className="align-self-center"
addOns={[
<AvatarAddOn.Icon
className="fa fa-circle"
color="white"
key="avatar-icon-white-bg"
/>,
...randomArray(avatar)
]}
/>
</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">
<UncontrolledButtonDropdown>
<DropdownToggle color="link" className="pr-0">
<i className="fa fa-bars"></i><i className="fa fa-angle-down ml-2" />
</DropdownToggle>
<DropdownMenu right>
<DropdownItem>
<i className="fa fa-fw fa-phone mr-2"></i>
Call
</DropdownItem>
<DropdownItem>
<i className="fa fa-fw fa-comment mr-2"></i>
Chat
</DropdownItem>
<DropdownItem>
<i className="fa fa-fw fa-video-camera mr-2"></i>
Video
</DropdownItem>
<DropdownItem>
<i className="fa fa-fw fa-user mr-2"></i>
Profile
</DropdownItem>
<DropdownItem>
<i className="fa fa-fw fa-pencil mr-2"></i>
Edit
</DropdownItem>
<DropdownItem divider />
<DropdownItem>
<i className="fa fa-fw fa-trash mr-2"></i>
Delete
</DropdownItem>
</DropdownMenu>
</UncontrolledButtonDropdown>
</td>
</tr>
</React.Fragment>
)
}
TrTableUsersList.propTypes = {
id: PropTypes.node
};
TrTableUsersList.defaultProps = {
id: "1"
};
export { TrTableUsersList };

3
app/routes/Apps/Users/index.js Executable file
View File

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

View File

@@ -0,0 +1,50 @@
import React from 'react';
import {
Container,
Row,
CardColumns,
Col
} from './../../../components';
import { HeaderMain } from "../../components/HeaderMain";
import { SearchResultsLeftNav } from "../../components/SearchResults/SearchResultsLeftNav";
import { SearchResultsHeader } from "../../components/SearchResults/SearchResultsHeader";
import { UsersResultsCard } from "../../components/SearchResults/UsersResultsCard";
import { Paginations } from "../../components/Paginations";
const UsersResults = () => (
<React.Fragment>
<Container>
<HeaderMain
title="Users Results"
className="mb-5 mt-4"
/>
{ /* START Content */}
<Row>
<Col lg={ 3 }>
<SearchResultsLeftNav />
</Col>
<Col lg={ 9 }>
<SearchResultsHeader />
<CardColumns>
<UsersResultsCard />
<UsersResultsCard />
<UsersResultsCard />
<UsersResultsCard />
<UsersResultsCard />
<UsersResultsCard />
<UsersResultsCard />
<UsersResultsCard />
<UsersResultsCard />
</CardColumns>
<div className="d-flex justify-content-center">
<Paginations />
</div>
</Col>
</Row>
{ /* END Content */}
</Container>
</React.Fragment>
);
export default UsersResults;

View File

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

View File

@@ -0,0 +1,45 @@
import React from 'react';
import {
Container,
Row,
Col
} from './../../../components';
import { HeaderMain } from "../../components/HeaderMain";
import { SearchResultsLeftNav } from "../../components/SearchResults/SearchResultsLeftNav";
import { SearchResultsHeader } from "../../components/SearchResults/SearchResultsHeader";
import { VideosResultsCard } from "../../components/SearchResults/VideosResultsCard";
import { Paginations } from "../../components/Paginations";
const VideosResults = () => (
<React.Fragment>
<Container>
<HeaderMain
title="Videos Results"
className="mb-5 mt-4"
/>
{ /* START Content */}
<Row>
<Col lg={ 3 }>
<SearchResultsLeftNav />
</Col>
<Col lg={ 9 }>
<SearchResultsHeader />
<VideosResultsCard />
<VideosResultsCard />
<VideosResultsCard />
<VideosResultsCard />
<VideosResultsCard />
<VideosResultsCard />
<div className="d-flex justify-content-center">
<Paginations />
</div>
</Col>
</Row>
{ /* END Content */}
</Container>
</React.Fragment>
);
export default VideosResults;

View File

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