Commit 7c472991 authored by Internship UKSW 2019's avatar Internship UKSW 2019

Initial commit

parent 2371ffb9
import React, { Component } from 'react';
import { BrowserRouter, Route, Switch } from 'react-router-dom';
import PrivateRoute from './PrivateRoute';
import CreateDocumentRoute from './CreateDocumentRoute';
import CreatorDocumentRoute from './CreatorDocumentRoute';
import ApproverDocumentRoute from './ApproverDocumentRoute';
import YourDocumentRoute from './YourDocumentRoute';
import ManageUserRoute from './ManageUserRoute';
import FormLogin from './FormLogin';
......@@ -27,8 +28,8 @@ class App extends Component {
<YourDocumentRoute exact path="/yourdocument" component={YourDocument} />
<ManageUserRoute exact path="/manageuser" component={ManageUser} />
<ManageUserRoute exact path="/formcreateupdaterole" component={FormCreateUpdateRole} />
<CreateDocumentRoute exact path="/formcreatedocument" component={FormCreateDocument} />
<YourDocumentRoute exact path="/formapprover" component={FormApprover} />
<CreatorDocumentRoute exact path="/formcreatedocument" component={FormCreateDocument} />
<ApproverDocumentRoute exact path="/formapprover" component={FormApprover} />
<YourDocumentRoute exact path="/formrevision" component={FormRevision} />
<Route path='*' component={NotFoundPage} />
</Switch>
......
import React from 'react'
import { Redirect, Route } from 'react-router-dom'
const ApproverDocumentRoute = ({ component: Component, ...rest }) => {
return (
<Route
{...rest}
render={
props =>
localStorage.getItem("user") && (
JSON.parse(localStorage.getItem('dataLogin')).user_role[0].includes("Approver") ) ? (
<Component {...props} />
) : (
<Redirect to={{ pathname: '/', state: { from: props.location } }} />
)
}
/>
)
}
export default ApproverDocumentRoute;
\ No newline at end of file
import React from 'react'
import { Redirect, Route } from 'react-router-dom'
const CreateDocumentRoute = ({ component: Component, ...rest }) => {
const CreatorDocumentRoute = ({ component: Component, ...rest }) => {
return (
<Route
{...rest}
......@@ -17,4 +17,4 @@ const CreateDocumentRoute = ({ component: Component, ...rest }) => {
)
}
export default CreateDocumentRoute;
\ No newline at end of file
export default CreatorDocumentRoute;
\ No newline at end of file
......@@ -58,7 +58,7 @@ export class DataTableApprovalDocument extends Component {
table.on("click", "a", function (e) {
e.preventDefault();
let data = table.row($(this).parents("tr")).data();
window.open("http://10.10.86.48:3000/previewdocument?subject=" + data[2], "_blank");
window.open("http://localhost:3000/formapprover?subject=" + data[2], "_self");
})
}
componentWillUnmount = () => {
......
This source diff could not be displayed because it is too large. You can view the blob instead.
This diff is collapsed.
......@@ -302,7 +302,7 @@ class FormCreateUpdateRole extends Component {
<div className="form-group row">
<div className="col-xl-12 col-lg-12 col-md-12 col-sm-12 text-right">
<Button className="button-2 center-block" color="danger" href="/manageuser">Cancel</Button>&nbsp;
<Button className="button-2 center-block" color="success" disabled={!this.state.validFormUser} onClick={() => this.handleSubmitForm()}> {this.handleShowButtonName()}
<Button className="button-2 center-block" color="success" disabled={!this.state.validFormUser} onClick={() => this.handleSubmitForm()}> {this.handleShowButtonName()}&nbsp;
{
this.state.submitForm &&
<img src="data:image/gif;base64,R0lGODlhEAAQAPIAAP///wAAAMLCwkJCQgAAAGJiYoKCgpKSkiH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCgAAACwAAAAAEAAQAAADMwi63P4wyklrE2MIOggZnAdOmGYJRbExwroUmcG2LmDEwnHQLVsYOd2mBzkYDAdKa+dIAAAh+QQJCgAAACwAAAAAEAAQAAADNAi63P5OjCEgG4QMu7DmikRxQlFUYDEZIGBMRVsaqHwctXXf7WEYB4Ag1xjihkMZsiUkKhIAIfkECQoAAAAsAAAAABAAEAAAAzYIujIjK8pByJDMlFYvBoVjHA70GU7xSUJhmKtwHPAKzLO9HMaoKwJZ7Rf8AYPDDzKpZBqfvwQAIfkECQoAAAAsAAAAABAAEAAAAzMIumIlK8oyhpHsnFZfhYumCYUhDAQxRIdhHBGqRoKw0R8DYlJd8z0fMDgsGo/IpHI5TAAAIfkECQoAAAAsAAAAABAAEAAAAzIIunInK0rnZBTwGPNMgQwmdsNgXGJUlIWEuR5oWUIpz8pAEAMe6TwfwyYsGo/IpFKSAAAh+QQJCgAAACwAAAAAEAAQAAADMwi6IMKQORfjdOe82p4wGccc4CEuQradylesojEMBgsUc2G7sDX3lQGBMLAJibufbSlKAAAh+QQJCgAAACwAAAAAEAAQAAADMgi63P7wCRHZnFVdmgHu2nFwlWCI3WGc3TSWhUFGxTAUkGCbtgENBMJAEJsxgMLWzpEAACH5BAkKAAAALAAAAAAQABAAAAMyCLrc/jDKSatlQtScKdceCAjDII7HcQ4EMTCpyrCuUBjCYRgHVtqlAiB1YhiCnlsRkAAAOwAAAAAAAAAAAA==" />
......
......@@ -2,6 +2,7 @@ import React, { Component } from 'react';
import { connect } from 'react-redux';
import axios from 'axios';
import Navbar1 from './Navbar';
import ReactLoading from 'react-loading';
import { DataTableHome } from './DataTableHome';
class Home extends Component {
......@@ -13,7 +14,7 @@ class Home extends Component {
}
}
componentDidMount = async () => {
console.log(localStorage.getItem("user"));
console.log(JSON.parse(localStorage.getItem("user")));
try {
let response = await axios.get(process.env.REACT_APP_MAIN_APIURL +'/DocumentManagement/home', { headers: { 'accept': 'application/xml' } });
var parseString = require('xml2js').parseString;
......@@ -56,6 +57,19 @@ class Home extends Component {
return (
<div>
<Navbar1 menu="home" /><br />
{
this.state.fetchStatus == false &&
<div className="container">
<div className="row justify-content-center">
<div className="content-loading">
<div className="form-group row">
<h3 className="text-center">Retrieving Data </h3>
<ReactLoading type="bubbles" color="dark" width="40px" height="20px"></ReactLoading>
</div>
</div>
</div>
</div>
}
{
this.state.fetchStatus == true &&
<div className="container-fluid">
......
......@@ -2,6 +2,7 @@ import React, { Component } from 'react';
import { Button } from 'reactstrap';
import axios from 'axios';
import Navbar1 from './Navbar';
import ReactLoading from 'react-loading';
import './DocumentManagement.css';
import { DataTableManageUser } from './DataTableManageUser';
......@@ -52,7 +53,20 @@ class ManageUser extends Component {
</div>
</div>
{
this.state.fetchStatus == true &&
this.state.fetchStatus == false &&
<div className="container">
<div className="row justify-content-center">
<div className="content-loading">
<div className="form-group row">
<h3 className="text-center">Retrieving Data </h3>
<ReactLoading type="bubbles" color="dark" width="40px" height="20px"></ReactLoading>
</div>
</div>
</div>
</div>
}
{
this.state.fetchStatus == true &&
<DataTableManageUser data={this.state.dataUser}></DataTableManageUser>
}
</div>
......
......@@ -116,7 +116,7 @@ class PreviewDocument extends Component {
return (
<div>
{
this.state.isFetched == false && this.state.isDocumentNotFound == false &&
this.state.isFetched == false && this.state.isDocumentNotFound == false && this.state.isNotValidLocation == false &&
<div className="container">
<div className="row justify-content-center">
<div className="content-loading">
......
......@@ -2,6 +2,7 @@ import React, { Component } from 'react';
import { Button } from 'reactstrap';
import axios from 'axios';
import Navbar1 from './Navbar';
import ReactLoading from 'react-loading';
import { DataTableMyDocument } from './DataTableMyDocument';
import { DataTableApprovalDocument } from './DataTableApprovalDocument';
......@@ -18,57 +19,59 @@ class YourDocument extends Component {
try {
var parseString = require('xml2js').parseString;
let user_id = JSON.parse(localStorage.getItem("dataLogin")).user_id[0];
let responseMyDocument = await axios.get(process.env.REACT_APP_MAIN_APIURL + '/DocumentManagement/mydocument/' + user_id, { headers: { 'accept': 'application/xml' } });
let dataMyDocument;
parseString(responseMyDocument.data, function (err, result) {
dataMyDocument = result.documentCollection.document;
})
if (dataMyDocument != undefined) {
for (let i = 0; i < dataMyDocument.length; i++) {
let datarow = [];
datarow.push("");
datarow.push(dataMyDocument[i].doc_code[0]);
datarow.push(dataMyDocument[i].subject[0]);
datarow.push(dataMyDocument[i].doc_status[0]);
datarow.push(dataMyDocument[i].tracking[0] + " - " + JSON.parse(dataMyDocument[i].approver[0]).EmpFullName);
datarow.push(JSON.parse(localStorage.getItem("user"))["Full Name"])
this.state.dataDocument.push(datarow);
}
}
let responseDataUser = await axios.get(process.env.REACT_APP_MAIN_APIURL + '/DocumentManagement/user', { headers: { 'accept': 'application/xml' } });
let responseDataUser = await axios.get(process.env.REACT_APP_MAIN_APIURL + '/DocumentManagement/user', { headers: { 'accept': 'application/xml' } })
let dataUser;
parseString(responseDataUser.data, function (err, result) {
dataUser = result.user_dataCollection.user_data;
})
let responseApprovalDocument = await axios.get(process.env.REACT_APP_MAIN_APIURL + '/DocumentManagement/approvaldocument', { headers: { 'accept': 'application/xml' } });
let dataApprovalDocument;
parseString(responseApprovalDocument.data, function (err, result) {
dataApprovalDocument = result.documentCollection.document;
let responseAllDocument = await axios.get(process.env.REACT_APP_MAIN_APIURL + '/DocumentManagement/alldocument', { headers: { 'accept': 'application/xml' } })
let dataAllDocument;
parseString(responseAllDocument.data, function (err, result) {
dataAllDocument = result.documentCollection.document;
})
if (dataApprovalDocument != undefined) {
for (let i = 0; i < dataApprovalDocument.length; i++) {
if (JSON.parse(localStorage.getItem("dataProfile")).LoginName == JSON.parse(dataApprovalDocument[i].approver[0]).LoginName) {
let responseDataRevision, dataRevision;
if (dataAllDocument != undefined) {
for (let i = 0; i < dataAllDocument.length; i++) {
responseDataRevision = await axios.get(process.env.REACT_APP_MAIN_APIURL + '/DocumentManagement/revisionkey/' + dataAllDocument[i].doc_id[0], { headers: { 'Content-Type': 'application/xml' } })
dataRevision = responseDataRevision.data.revisionCollection.revision;
if (dataAllDocument[i].user_id[0] == user_id && dataAllDocument[i].doc_status[0] == "New") {
let datarow = [];
let user_name;
for (let j = 0; j < dataUser.length; j++) {
if (dataUser[i].user_id[0] == dataApprovalDocument[i].user_id[0]) {
user_name = dataUser[i].user_name[0];
break;
datarow.push("");
datarow.push(dataAllDocument[i].doc_code[0]);
datarow.push(dataAllDocument[i].subject[0]);
datarow.push(dataAllDocument[i].doc_status[0]);
datarow.push(dataRevision[dataRevision.length - 1].status);
datarow.push(JSON.parse(localStorage.getItem("user"))["Full Name"]);
this.state.dataDocument.push(datarow);
}
if (dataRevision[dataRevision.length - 1].status.includes("Waiting for Approval") && dataAllDocument[i].doc_status[0] == "New") {
if (
(dataRevision[dataRevision.length - 1].status == "Waiting for Approval - Compliance Officer" && JSON.parse(localStorage.getItem('dataLogin')).user_role[0].includes("Compliance Officer")) ||
(dataRevision[dataRevision.length - 1].status == "Waiting for Approval - " + JSON.parse(dataAllDocument[i].approver[0]).EmpFullName && JSON.parse(localStorage.getItem('dataLogin')).user_role[0].includes("Approver") && JSON.parse(localStorage.getItem("dataProfile")).LoginName == JSON.parse(dataAllDocument[i].approver[0]).LoginName) ||
(dataRevision[dataRevision.length - 1].status == "Waiting for Approval - Manager Representative" && JSON.parse(localStorage.getItem('dataLogin')).user_role[0].includes("Manager Representative"))
) {
let datarow2 = [];
let user_name = "";
for (let j = 0; j < dataUser.length; j++) {
if (dataUser[j].user_id[0] == dataAllDocument[i].user_id[0]) {
user_name = dataUser[j].user_name[0];
break;
}
}
datarow2.push("");
datarow2.push(dataAllDocument[i].doc_code[0]);
datarow2.push(dataAllDocument[i].subject[0]);
datarow2.push(dataAllDocument[i].doc_status[0]);
datarow2.push(dataRevision[dataRevision.length - 1].status);
datarow2.push(user_name)
this.state.dataApprovalDocument.push(datarow2);
}
datarow.push("");
datarow.push(dataApprovalDocument[i].doc_code[0]);
datarow.push(dataApprovalDocument[i].subject[0]);
datarow.push(dataApprovalDocument[i].doc_status[0]);
datarow.push(dataApprovalDocument[i].tracking[0] + " - " + JSON.parse(dataApprovalDocument[i].approver[0]).EmpFullName);
datarow.push(user_name)
this.state.dataApprovalDocument.push(datarow);
}
}
}
this.setState({ fetchStatus: true })
await this.setState({ fetchStatus: true });
} catch (error) {
this.setState({ fetchStatus: true })
await this.setState({ fetchStatus: true });
console.log(error + "");
}
}
......@@ -83,6 +86,19 @@ class YourDocument extends Component {
<Button className="center-block" color="primary" href="/formcreatedocument" disabled={!JSON.parse(localStorage.getItem('dataLogin')).user_role[0].includes("Creator")}>Create New Document</Button>
</div>
</div>
{
this.state.fetchStatus == false &&
<div className="container">
<div className="row justify-content-center">
<div className="content-loading">
<div className="form-group row">
<h3 className="text-center">Retrieving Data </h3>
<ReactLoading type="bubbles" color="dark" width="40px" height="20px"></ReactLoading>
</div>
</div>
</div>
</div>
}
{
this.state.fetchStatus == true && JSON.parse(localStorage.getItem('dataLogin')).user_role[0].includes("Creator") &&
<div>
......@@ -95,8 +111,14 @@ class YourDocument extends Component {
</div>
}
{
this.state.fetchStatus == true && JSON.parse(localStorage.getItem('dataLogin')).user_role[0].includes("Approver") &&
this.state.fetchStatus == true &&
(
JSON.parse(localStorage.getItem('dataLogin')).user_role[0].includes("Approver") ||
JSON.parse(localStorage.getItem('dataLogin')).user_role[0].includes("Compliance Officer") ||
JSON.parse(localStorage.getItem('dataLogin')).user_role[0].includes("Manager Representative")
) &&
<div>
<hr />
<div className="form-group row">
<div className="col-xl-12 col-lg-12 col-md-12 col-sm-12">
<h3>Approval Document</h3>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment