Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11,329 changes: 11,329 additions & 0 deletions package-lock.json

Large diffs are not rendered by default.

14 changes: 12 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,24 @@
"name": "react-datatables",
"version": "0.1.0",
"private": true,
"type": "module",
"devDependencies": {
"datatables.net": "^1.10.13",
"jquery": "^3.1.1",
"react-scripts": "0.8.4"
},
"dependencies": {
"react": "^15.4.1",
"react-dom": "^15.4.1"
"@material-ui/core": "^4.11.3",
"@material-ui/icons": "^4.11.2",
"axios": "^0.21.1",
"bootstrap": "^4.6.0",
"material-table": "^1.69.2",
"mongodb": "^3.6.4",
"react": "^17.0.1",
"react-bootstrap": "^1.4.3",
"react-data-table-component": "^7.0.0-alpha-5",
"react-dom": "^17.0.1",
"styled-components": "^5.2.1"
},
"scripts": {
"start": "react-scripts start",
Expand Down
113 changes: 102 additions & 11 deletions src/App.js
Original file line number Diff line number Diff line change
@@ -1,40 +1,131 @@
import React, {Component} from 'react';
import React, { Component } from 'react';
import { Button } from 'react-bootstrap'
import axios from 'axios'
import Input from './Input';
import Table from './Table';
import Search from './search';
import './index.css';

class App extends Component {
constructor() {
super();
constructor(props) {
super(props);
// var itemsList = [{ id: 1, sysid: 14626, isreturn: 0, returnid: "" },
// { id: 2, sysid: 14627, isreturn: 0, returnid: "" }];
// this.state = {
// names: itemsList
// };

this.state = {
names: []
}
};
}
componentDidMount() {
console.log('App.js componentDidMount')
this.getItems();
}

onAddClick(name, nickname) {
getItems = function () {
console.log('getItems function call');
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';
axios.get(`https://master-electricals.herokuapp.com/api/items`, {
headers: {
Accept: 'application/json',
'Content-Type': 'application/json',
}, responseType: 'json', credentials: 'same-origin',
}).then(res => {
const billItems = res.data;
console.log("call success ")
console.log(JSON.stringify(billItems))
this.setState({ names: billItems });
}).catch(function (error) {
console.log('Error in fetching the items: ', error);
})
}

onAddClick = function (id, sysid, isreturn, returnid, booktype) {
var bookItem;
console.log('onAddClick inside app.js');
console.log('id', id, 'sysid', sysid, 'isreturn', isreturn, 'returnid', returnid, 'booktype', booktype)
let updated = false;
console.log('isreturn ' + isreturn);
if (!id) {
console.log("invalid id value");
return;
}

bookItem = JSON.stringify({
booktype: booktype,
bookid: id,
sysid: sysid,
return: isreturn,
returnid: returnid
});

console.log('bookitem value: ', bookItem)
console.log('bookItem value - JSON stringify: ', JSON.stringify(bookItem));
console.log('bookItem value - JSON stringify: ', JSON.parse(bookItem));

const result = this.state.names.map((nameData) => {
if (nameData.name === name) {
console.log('nameData.id: ', nameData.id, '=== id: ', id);
if (nameData.bookid === id) {
updated = true;
return {name, nickname}
return bookItem;
}
return nameData;
});
console.log('updated bool: ', updated)
if (!updated) {
result.push({name, nickname});
result.push(JSON.parse(bookItem));
}

console.log('result: ', JSON.stringify(result));
this.setState({
names: result
})
console.log('this.state.names: ', this.state.names);

axios.defaults.headers.post['Content-Type'] = 'application/json';
axios.post(`https://master-electricals.herokuapp.com/api/items`, bookItem, {
headers: {
Accept: 'application/json',
'Content-Type': 'application/json',
}
, responseType: 'json', credentials: 'same-origin',
}).then(res => {
console.log('res: ', res);
console.log('Saved successfully in post access');
console.log(bookItem);
}).catch(function (error) {
console.log('error in post')
if (error.response) {
console.log('error in post - Request made and server responded')// Request made and server responded
console.log(error.response.data);
console.log(error.response.status);
console.log(error.response.headers);
} else if (error.request) {
console.log('error in post - The request was made but no response was received')// The request was made but no response was received
console.log(error.request);
} else {
console.log('error in post - Something happened in setting up the request that triggered an Error')// Something happened in setting up the request that triggered an Error
console.log('Error', error.message);
}
});
}

render() {
return (
<div className="App">
<Input onAddClick={(name, nickname) => {
this.onAddClick(name, nickname);
<Input onAddClick={(id, sysid, isreturn, returnid, type) => {
this.onAddClick(id, sysid, isreturn, returnid, type);
}} />
<div className="alignRight">
<Button variant="secondary" type="submit" onClick={(e) => {
console.log('Refresh button click: ')
this.getItems(e)
}}>Refresh Table</Button>
</div>

<Table names={this.state.names} />
<Search names={this.state.names} />
</div>
);
}
Expand Down
140 changes: 118 additions & 22 deletions src/Input.js
Original file line number Diff line number Diff line change
@@ -1,14 +1,21 @@
import React, {Component} from 'react';

import React, { Component } from 'react';
import { Badge, Form, Button, Row, Container } from 'react-bootstrap';
import 'bootstrap/dist/css/bootstrap.min.css';
import './index.css';

class Input extends Component {

constructor() {
super();
this.state = {
name: '',
nickname: ''
booktype: 'A',
id: '',
sysid: '',
isreturn: 0,
returnid: ''
}
this.setState({ adminpin: 0 })
this.setState({ loginValidate: false })
}

updateValue(fieldName, value) {
Expand All @@ -17,37 +24,126 @@ class Input extends Component {
})
}

onAddClick() {
this.props.onAddClick(this.state.name, this.state.nickname);
onAddClick(e) {
e.preventDefault();
console.log('this.onAddClick method call inside');
this.props.onAddClick(parseInt(this.state.id, 10), parseInt(this.state.sysid, 10), this.state.isreturn, (this.state.returnid === "" || this.state.returnid === String.empty) ? "" : parseInt(this.state.returnid, 10), this.state.booktype);
}

render() {
return (
<div className="app-input">
<div>
<span>Name:</span>
<input type="text" onChange={(e) => {
this.updateValue('name', e.target.value)
}} />
<h1>
Master Electricals<Badge variant="secondary"></Badge>
</h1>
</div>
<div>
<span>Nickname:</span>
<input type="text" onChange={(e) => {
this.updateValue('nickname', e.target.value)
}} />
<Container>
<Row>
<Form className="alignCenter">
<Form.Group controlId="formAdminPin" className={!this.state.loginValidate ? 'displayBlock' : 'displayNone'}>
<Form.Label>Admin PIN</Form.Label>
<Form.Control type="text" placeholder="Enter Admin PIN" onChange={(e) => {
console.log('Admin PIN value change: ', e.target.value)

this.updateValue('adminpin', e.target.value)
}} />
</Form.Group>

<Form.Group controlId="formButtonLogin">
<Button className={!this.state.loginValidate ? 'displayBlock' : 'displayNone'} variant="info" type="submit" onClick={(e) => {
e.preventDefault();
console.log('button click: ')
console.log('this.state.loginValidate: ', this.state.loginValidate)
var loginCheck = parseInt(this.state.adminpin, 10) === parseInt('9524444849', 10) ? true : false;
console.log('loginCheck: ', loginCheck);
this.setState({ loginValidate: loginCheck });
loginCheck ? alert('Login Success') : alert('Wrong Admin PIN. Login Failure')
console.log('this.state.loginvalidate: ', this.state.loginValidate)
}}>Login</Button>
</Form.Group>

<Form.Group controlId="formBookType" className={this.state.loginValidate ? 'displayBlock' : 'displayNone'}>
<Form.Label>Book Type</Form.Label>
<Form.Control as="select" onChange={(e) => {
console.log('booktype select value change: ', e.target.value)
this.updateValue('booktype', e.target.value)
}}>
<option value="A">A</option>
<option value="B">B</option>
<option value="C">C</option>
<option value="D">D</option>
<option value="E">E</option>
<option value="F">F</option>
<option value="G">G</option>
<option value="H">H</option>
<option value="I">I</option>
<option value="J">J</option>
<option value="K">K</option>
<option value="L">L</option>
<option value="M">M</option>
<option value="N">N</option>
<option value="O">O</option>
<option value="P">P</option>
<option value="Q">Q</option>
<option value="R">R</option>
<option value="S">S</option>
<option value="T">T</option>
<option value="U">U</option>
<option value="V">V</option>
<option value="W">W</option>
<option value="X">X</option>
<option value="Y">Y</option>
<option value="Z">Z</option>
</Form.Control>
</Form.Group>
<Form.Group controlId="formBookId" className={this.state.loginValidate ? 'displayBlock' : 'displayNone'}>
<Form.Label>Book Id</Form.Label>
<Form.Control type="text" placeholder="Enter Book Id" onChange={(e) => {
console.log('bookid value change: ', e.target.value)
this.updateValue('id', e.target.value)
}} />
</Form.Group>
<Form.Group controlId="formSysId" className={this.state.loginValidate ? 'displayBlock' : 'displayNone'}>
<Form.Label>Sys Id</Form.Label>
<Form.Control type="text" placeholder="Enter Sys Id" onChange={(e) => {
console.log('sysid value change: ', e.target.value)
this.updateValue('sysid', e.target.value)
}} />
</Form.Group>
<Form.Group controlId="formIsReturn" className={this.state.loginValidate ? 'displayBlock' : 'displayNone'}>
<Form.Label>Is Return?</Form.Label>
<Form.Control as="select" onChange={(e) => {
console.log('is return value change: ', e.target.value)
this.updateValue('isreturn', e.target.value)
}}>
<option value="0">No</option>
<option value="1">Yes</option>
</Form.Control>
</Form.Group>
<Form.Group controlId="formReturnId" className={this.state.isreturn ? 'displayBlock' : 'displayNone'}>
<Form.Label>Return Id</Form.Label>
<Form.Control type="text" placeholder="Enter Return Id" onChange={(e) => {
console.log('returnid value change: ', e.target.value)
this.updateValue('returnid', e.target.value)
}} />
</Form.Group>

<Button className={this.state.loginValidate ? 'displayBlock' : 'displayNone'} variant="info" type="submit" onClick={(e) => {
e.preventDefault();
console.log('loginValidate button click')
this.onAddClick(e)
}}>Add</Button>
</Form>
</Row>
</Container>

</div>
<button onClick={() => {
this.onAddClick()
}}>Add
</button>
</div>
);
}
}

Input.PropTypes = {
onAddClick: React.PropTypes.func
};

export default Input;

Loading