farhantock
11 months ago
18 changed files with 0 additions and 417 deletions
@ -1,33 +0,0 @@
|
||||
import React, { Component } from 'react'; |
||||
import { Button, Col, Container, Input, InputGroup, InputGroupAddon, InputGroupText, Row } from 'reactstrap'; |
||||
|
||||
class Page403 extends Component { |
||||
|
||||
logOut = () => { |
||||
window.localStorage.clear(); |
||||
this.props.history.push('/login') |
||||
} |
||||
|
||||
render() { |
||||
return ( |
||||
<div className="app flex-row align-items-center"> |
||||
<Container> |
||||
<Row className="justify-content-center"> |
||||
<Col md="6"> |
||||
<div className="clearfix"> |
||||
<h1 className="float-left display-3 mr-4">403</h1> |
||||
<h4 className="pt-3">Oops! <br></br>Kamu pergi ke halaman yang terlarang!</h4> |
||||
<p className="text-muted float-left">Halaman tidak bisa di akses!</p> |
||||
</div> |
||||
<div style={{alignItems:'center'}}> |
||||
<Button size="sm" color="warning" onClick={() => this.logOut()}>Back To Login</Button> |
||||
</div> |
||||
</Col> |
||||
</Row> |
||||
</Container> |
||||
</div> |
||||
); |
||||
} |
||||
} |
||||
|
||||
export default Page403; |
@ -1,9 +0,0 @@
|
||||
import React from 'react'; |
||||
import ReactDOM from 'react-dom'; |
||||
import Page404 from './Page403'; |
||||
|
||||
it('renders without crashing', () => { |
||||
const div = document.createElement('div'); |
||||
ReactDOM.render(<Page403 />, div); |
||||
ReactDOM.unmountComponentAtNode(div); |
||||
}); |
@ -1,6 +0,0 @@
|
||||
{ |
||||
"name": "Page403", |
||||
"version": "0.0.0", |
||||
"private": true, |
||||
"main": "./Page403.js" |
||||
} |
@ -1,35 +0,0 @@
|
||||
import React, { Component } from 'react'; |
||||
import { Button, Col, Container, Input, InputGroup, InputGroupAddon, InputGroupText, Row } from 'reactstrap'; |
||||
|
||||
class Page404 extends Component { |
||||
render() { |
||||
return ( |
||||
<div className="app flex-row align-items-center"> |
||||
<Container> |
||||
<Row className="justify-content-center"> |
||||
<Col md="6"> |
||||
<div className="clearfix"> |
||||
<h1 className="float-left display-3 mr-4">404</h1> |
||||
<h4 className="pt-3">Oops! You're lost.</h4> |
||||
<p className="text-muted float-left">The page you are looking for was not found.</p> |
||||
</div> |
||||
<InputGroup className="input-prepend"> |
||||
<InputGroupAddon addonType="prepend"> |
||||
<InputGroupText> |
||||
<i className="fa fa-search"></i> |
||||
</InputGroupText> |
||||
</InputGroupAddon> |
||||
<Input size="16" type="text" placeholder="What are you looking for?" /> |
||||
<InputGroupAddon addonType="append"> |
||||
<Button color="info">Search</Button> |
||||
</InputGroupAddon> |
||||
</InputGroup> |
||||
</Col> |
||||
</Row> |
||||
</Container> |
||||
</div> |
||||
); |
||||
} |
||||
} |
||||
|
||||
export default Page404; |
@ -1,9 +0,0 @@
|
||||
import React from 'react'; |
||||
import ReactDOM from 'react-dom'; |
||||
import Page404 from './Page404'; |
||||
|
||||
it('renders without crashing', () => { |
||||
const div = document.createElement('div'); |
||||
ReactDOM.render(<Page404 />, div); |
||||
ReactDOM.unmountComponentAtNode(div); |
||||
}); |
@ -1,6 +0,0 @@
|
||||
{ |
||||
"name": "Page404", |
||||
"version": "0.0.0", |
||||
"private": true, |
||||
"main": "./Page404.js" |
||||
} |
@ -1,35 +0,0 @@
|
||||
import React, { Component } from 'react'; |
||||
import { Button, Col, Container, Input, InputGroup, InputGroupAddon, InputGroupText, Row } from 'reactstrap'; |
||||
|
||||
class Page500 extends Component { |
||||
render() { |
||||
return ( |
||||
<div className="app flex-row align-items-center"> |
||||
<Container> |
||||
<Row className="justify-content-center"> |
||||
<Col md="6"> |
||||
<span className="clearfix"> |
||||
<h1 className="float-left display-3 mr-4">500</h1> |
||||
<h4 className="pt-3">Houston, we have a problem!</h4> |
||||
<p className="text-muted float-left">The page you are looking for is temporarily unavailable.</p> |
||||
</span> |
||||
<InputGroup className="input-prepend"> |
||||
<InputGroupAddon addonType="prepend"> |
||||
<InputGroupText> |
||||
<i className="fa fa-search"></i> |
||||
</InputGroupText> |
||||
</InputGroupAddon> |
||||
<Input size="16" type="text" placeholder="What are you looking for?" /> |
||||
<InputGroupAddon addonType="append"> |
||||
<Button color="info">Search</Button> |
||||
</InputGroupAddon> |
||||
</InputGroup> |
||||
</Col> |
||||
</Row> |
||||
</Container> |
||||
</div> |
||||
); |
||||
} |
||||
} |
||||
|
||||
export default Page500; |
@ -1,9 +0,0 @@
|
||||
import React from 'react'; |
||||
import ReactDOM from 'react-dom'; |
||||
import Page500 from './Page500'; |
||||
|
||||
it('renders without crashing', () => { |
||||
const div = document.createElement('div'); |
||||
ReactDOM.render(<Page500 />, div); |
||||
ReactDOM.unmountComponentAtNode(div); |
||||
}); |
@ -1,6 +0,0 @@
|
||||
{ |
||||
"name": "Page500", |
||||
"version": "0.0.0", |
||||
"private": true, |
||||
"main": "./Page500.js" |
||||
} |
@ -1,68 +0,0 @@
|
||||
import React, { Component } from 'react'; |
||||
import { Button, Card, CardBody, CardFooter, Col, Container, Form, Input, InputGroup, InputGroupAddon, InputGroupText, Row } from 'reactstrap'; |
||||
|
||||
class Register extends Component { |
||||
render() { |
||||
return ( |
||||
<div className="app flex-row align-items-center"> |
||||
<Container> |
||||
<Row className="justify-content-center"> |
||||
<Col md="9" lg="7" xl="6"> |
||||
<Card className="mx-4"> |
||||
<CardBody className="p-4"> |
||||
<Form> |
||||
<h1>Register</h1> |
||||
<p className="text-muted">Create your account</p> |
||||
<InputGroup className="mb-3"> |
||||
<InputGroupAddon addonType="prepend"> |
||||
<InputGroupText> |
||||
<i className="icon-user"></i> |
||||
</InputGroupText> |
||||
</InputGroupAddon> |
||||
<Input type="text" placeholder="Username" autoComplete="username" /> |
||||
</InputGroup> |
||||
<InputGroup className="mb-3"> |
||||
<InputGroupAddon addonType="prepend"> |
||||
<InputGroupText>@</InputGroupText> |
||||
</InputGroupAddon> |
||||
<Input type="text" placeholder="Email" autoComplete="email" /> |
||||
</InputGroup> |
||||
<InputGroup className="mb-3"> |
||||
<InputGroupAddon addonType="prepend"> |
||||
<InputGroupText> |
||||
<i className="icon-lock"></i> |
||||
</InputGroupText> |
||||
</InputGroupAddon> |
||||
<Input type="password" placeholder="Password" autoComplete="new-password" /> |
||||
</InputGroup> |
||||
<InputGroup className="mb-4"> |
||||
<InputGroupAddon addonType="prepend"> |
||||
<InputGroupText> |
||||
<i className="icon-lock"></i> |
||||
</InputGroupText> |
||||
</InputGroupAddon> |
||||
<Input type="password" placeholder="Repeat password" autoComplete="new-password" /> |
||||
</InputGroup> |
||||
<Button color="success" block>Create Account</Button> |
||||
</Form> |
||||
</CardBody> |
||||
<CardFooter className="p-4"> |
||||
<Row> |
||||
<Col xs="12" sm="6"> |
||||
<Button className="btn-facebook mb-1" block><span>facebook</span></Button> |
||||
</Col> |
||||
<Col xs="12" sm="6"> |
||||
<Button className="btn-twitter mb-1" block><span>twitter</span></Button> |
||||
</Col> |
||||
</Row> |
||||
</CardFooter> |
||||
</Card> |
||||
</Col> |
||||
</Row> |
||||
</Container> |
||||
</div> |
||||
); |
||||
} |
||||
} |
||||
|
||||
export default Register; |
@ -1,9 +0,0 @@
|
||||
import React from 'react'; |
||||
import ReactDOM from 'react-dom'; |
||||
import Register from './Register'; |
||||
|
||||
it('renders without crashing', () => { |
||||
const div = document.createElement('div'); |
||||
ReactDOM.render(<Register />, div); |
||||
ReactDOM.unmountComponentAtNode(div); |
||||
}); |
@ -1,6 +0,0 @@
|
||||
{ |
||||
"name": "Register", |
||||
"version": "0.0.0", |
||||
"private": true, |
||||
"main": "./Register.js" |
||||
} |
@ -1,46 +0,0 @@
|
||||
import React, { Component } from 'react'; |
||||
import { Card, CardBody, CardHeader, Col, Row, Table } from 'reactstrap'; |
||||
|
||||
import usersData from './UsersData' |
||||
|
||||
class User extends Component { |
||||
|
||||
render() { |
||||
|
||||
const user = usersData.find(user => user.id.toString() === this.props.match.params.id) |
||||
|
||||
const userDetails = user ? Object.entries(user) : [['id', (<span><i className="text-muted icon-ban"></i> Not found</span>)]] |
||||
|
||||
return ( |
||||
<div className="animated fadeIn"> |
||||
<Row> |
||||
<Col lg={6}> |
||||
<Card> |
||||
<CardHeader> |
||||
<strong><i className="icon-info pr-1"></i>User id: {this.props.match.params.id}</strong> |
||||
</CardHeader> |
||||
<CardBody> |
||||
<Table responsive striped hover> |
||||
<tbody> |
||||
{ |
||||
userDetails.map(([key, value]) => { |
||||
return ( |
||||
<tr key={key}> |
||||
<td>{`${key}:`}</td> |
||||
<td><strong>{value}</strong></td> |
||||
</tr> |
||||
) |
||||
}) |
||||
} |
||||
</tbody> |
||||
</Table> |
||||
</CardBody> |
||||
</Card> |
||||
</Col> |
||||
</Row> |
||||
</div> |
||||
) |
||||
} |
||||
} |
||||
|
||||
export default User; |
@ -1,15 +0,0 @@
|
||||
import React from 'react'; |
||||
import {MemoryRouter} from 'react-router-dom'; |
||||
import { mount } from 'enzyme' |
||||
import User from './User'; |
||||
|
||||
|
||||
it('renders without crashing', () => { |
||||
const wrapper = mount( |
||||
<MemoryRouter> |
||||
<User match={{params: {id: "1"}, isExact: true, path: "/users/:id", name: "User details"}}/> |
||||
</MemoryRouter> |
||||
); |
||||
expect(wrapper.containsMatchingElement(<strong>Samppa Nori</strong>)).toEqual(true) |
||||
wrapper.unmount() |
||||
}); |
@ -1,78 +0,0 @@
|
||||
import React, { Component } from 'react' |
||||
import DataTable from '../../components/DataTableEditDialog' |
||||
import { API_LIST_DATA_USERS, API_INSERT_DATA_USERS, API_UPDATE_DATA_USERS, API_DELETE_DATA_USERS } from '../../const/ApiConst' |
||||
|
||||
const columns = [{ |
||||
dataField: 'id', |
||||
alias: "Id", |
||||
showInput: false, |
||||
type: "number", |
||||
state: 0 |
||||
}, { |
||||
dataField: 'fullname', |
||||
alias: "Fullname", |
||||
showInput: true, |
||||
type: "text", |
||||
state: "" |
||||
}, { |
||||
dataField: 'username', |
||||
alias: "Username", |
||||
showInput: true, |
||||
type: "text", |
||||
state: "" |
||||
}, { |
||||
dataField: 'password', |
||||
alias: "Password", |
||||
showInput: true, |
||||
type: "password", |
||||
state: "" |
||||
}, { |
||||
dataField: 'created_time', |
||||
alias: "Created Time", |
||||
showInput: false, |
||||
type: "text", |
||||
state: "" |
||||
}, { |
||||
dataField: 'modified_time', |
||||
alias: "Modified Time", |
||||
showInput: false, |
||||
type: "text", |
||||
state: "" |
||||
}, { |
||||
dataField: 'created_by', |
||||
alias: "Created By", |
||||
showInput: false, |
||||
type: "text", |
||||
state: "admin" |
||||
}]; |
||||
|
||||
class Users extends Component { |
||||
constructor(props) { |
||||
super(props) |
||||
this.state = { |
||||
columns: null, |
||||
dataTable: [] |
||||
} |
||||
} |
||||
|
||||
componentDidMount() { |
||||
} |
||||
|
||||
render() { |
||||
let dataTable = this.state.dataTable |
||||
return ( |
||||
<div> |
||||
<DataTable |
||||
title="User" |
||||
columns={columns} |
||||
urlParamGet={API_LIST_DATA_USERS} |
||||
urlParamInsert={API_INSERT_DATA_USERS} |
||||
urlParamUpdate={API_UPDATE_DATA_USERS} |
||||
urlParamDelete={API_DELETE_DATA_USERS} |
||||
/> |
||||
</div> |
||||
) |
||||
} |
||||
} |
||||
|
||||
export default Users; |
@ -1,10 +0,0 @@
|
||||
import React from 'react'; |
||||
import ReactDOM from 'react-dom'; |
||||
import { MemoryRouter } from 'react-router-dom'; |
||||
import Users from './Users'; |
||||
|
||||
it('renders without crashing', () => { |
||||
const div = document.createElement('div'); |
||||
ReactDOM.render(<MemoryRouter><Users /></MemoryRouter>, div); |
||||
ReactDOM.unmountComponentAtNode(div); |
||||
}); |
@ -1,31 +0,0 @@
|
||||
const usersData = [ |
||||
{id: 0, name: 'John Doe', registered: '2018/01/01', role: 'Guest', status: 'Pending'}, |
||||
{id: 1, name: 'Samppa Nori', registered: '2018/01/01', role: 'Member', status: 'Active'}, |
||||
{id: 2, name: 'Estavan Lykos', registered: '2018/02/01', role: 'Staff', status: 'Banned'}, |
||||
{id: 3, name: 'Chetan Mohamed', registered: '2018/02/01', role: 'Admin', status: 'Inactive'}, |
||||
{id: 4, name: 'Derick Maximinus', registered: '2018/03/01', role: 'Member', status: 'Pending'}, |
||||
{id: 5, name: 'Friderik Dávid', registered: '2018/01/21', role: 'Staff', status: 'Active'}, |
||||
{id: 6, name: 'Yiorgos Avraamu', registered: '2018/01/01', role: 'Member', status: 'Active'}, |
||||
{id: 7, name: 'Avram Tarasios', registered: '2018/02/01', role: 'Staff', status: 'Banned'}, |
||||
{id: 8, name: 'Quintin Ed', registered: '2018/02/01', role: 'Admin', status: 'Inactive'}, |
||||
{id: 9, name: 'Enéas Kwadwo', registered: '2018/03/01', role: 'Member', status: 'Pending'}, |
||||
{id: 10, name: 'Agapetus Tadeáš', registered: '2018/01/21', role: 'Staff', status: 'Active'}, |
||||
{id: 11, name: 'Carwyn Fachtna', registered: '2018/01/01', role: 'Member', status: 'Active'}, |
||||
{id: 12, name: 'Nehemiah Tatius', registered: '2018/02/01', role: 'Staff', status: 'Banned'}, |
||||
{id: 13, name: 'Ebbe Gemariah', registered: '2018/02/01', role: 'Admin', status: 'Inactive'}, |
||||
{id: 14, name: 'Eustorgios Amulius', registered: '2018/03/01', role: 'Member', status: 'Pending'}, |
||||
{id: 15, name: 'Leopold Gáspár', registered: '2018/01/21', role: 'Staff', status: 'Active'}, |
||||
{id: 16, name: 'Pompeius René', registered: '2018/01/01', role: 'Member', status: 'Active'}, |
||||
{id: 17, name: 'Paĉjo Jadon', registered: '2018/02/01', role: 'Staff', status: 'Banned'}, |
||||
{id: 18, name: 'Micheal Mercurius', registered: '2018/02/01', role: 'Admin', status: 'Inactive'}, |
||||
{id: 19, name: 'Ganesha Dubhghall', registered: '2018/03/01', role: 'Member', status: 'Pending'}, |
||||
{id: 20, name: 'Hiroto Šimun', registered: '2018/01/21', role: 'Staff', status: 'Active'}, |
||||
{id: 21, name: 'Vishnu Serghei', registered: '2018/01/01', role: 'Member', status: 'Active'}, |
||||
{id: 22, name: 'Zbyněk Phoibos', registered: '2018/02/01', role: 'Staff', status: 'Banned'}, |
||||
{id: 23, name: 'Einar Randall', registered: '2018/02/01', role: 'Admin', status: 'Inactive'}, |
||||
{id: 24, name: 'Félix Troels', registered: '2018/03/21', role: 'Staff', status: 'Active'}, |
||||
{id: 25, name: 'Aulus Agmundr', registered: '2018/01/01', role: 'Member', status: 'Pending'}, |
||||
{id: 42, name: 'Ford Prefex', registered: '2001/05/21', role: 'Alien', status: 'Don\'t panic!'} |
||||
] |
||||
|
||||
export default usersData |
Loading…
Reference in new issue