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

Initial commit

parent 2371ffb9
import React, { Component } from 'react'; import React, { Component } from 'react';
import { BrowserRouter, Route, Switch } from 'react-router-dom'; import { BrowserRouter, Route, Switch } from 'react-router-dom';
import PrivateRoute from './PrivateRoute'; import PrivateRoute from './PrivateRoute';
import CreateDocumentRoute from './CreateDocumentRoute'; import CreatorDocumentRoute from './CreatorDocumentRoute';
import ApproverDocumentRoute from './ApproverDocumentRoute';
import YourDocumentRoute from './YourDocumentRoute'; import YourDocumentRoute from './YourDocumentRoute';
import ManageUserRoute from './ManageUserRoute'; import ManageUserRoute from './ManageUserRoute';
import FormLogin from './FormLogin'; import FormLogin from './FormLogin';
...@@ -27,8 +28,8 @@ class App extends Component { ...@@ -27,8 +28,8 @@ class App extends Component {
<YourDocumentRoute exact path="/yourdocument" component={YourDocument} /> <YourDocumentRoute exact path="/yourdocument" component={YourDocument} />
<ManageUserRoute exact path="/manageuser" component={ManageUser} /> <ManageUserRoute exact path="/manageuser" component={ManageUser} />
<ManageUserRoute exact path="/formcreateupdaterole" component={FormCreateUpdateRole} /> <ManageUserRoute exact path="/formcreateupdaterole" component={FormCreateUpdateRole} />
<CreateDocumentRoute exact path="/formcreatedocument" component={FormCreateDocument} /> <CreatorDocumentRoute exact path="/formcreatedocument" component={FormCreateDocument} />
<YourDocumentRoute exact path="/formapprover" component={FormApprover} /> <ApproverDocumentRoute exact path="/formapprover" component={FormApprover} />
<YourDocumentRoute exact path="/formrevision" component={FormRevision} /> <YourDocumentRoute exact path="/formrevision" component={FormRevision} />
<Route path='*' component={NotFoundPage} /> <Route path='*' component={NotFoundPage} />
</Switch> </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 React from 'react'
import { Redirect, Route } from 'react-router-dom' import { Redirect, Route } from 'react-router-dom'
const CreateDocumentRoute = ({ component: Component, ...rest }) => { const CreatorDocumentRoute = ({ component: Component, ...rest }) => {
return ( return (
<Route <Route
{...rest} {...rest}
...@@ -17,4 +17,4 @@ const CreateDocumentRoute = ({ component: Component, ...rest }) => { ...@@ -17,4 +17,4 @@ const CreateDocumentRoute = ({ component: Component, ...rest }) => {
) )
} }
export default CreateDocumentRoute; export default CreatorDocumentRoute;
\ No newline at end of file \ No newline at end of file
...@@ -58,7 +58,7 @@ export class DataTableApprovalDocument extends Component { ...@@ -58,7 +58,7 @@ export class DataTableApprovalDocument extends Component {
table.on("click", "a", function (e) { table.on("click", "a", function (e) {
e.preventDefault(); e.preventDefault();
let data = table.row($(this).parents("tr")).data(); 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 = () => { componentWillUnmount = () => {
......
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -15,7 +15,6 @@ class FormCreate extends Component { ...@@ -15,7 +15,6 @@ class FormCreate extends Component {
page: [true, false, false, false, false], page: [true, false, false, false, false],
validPage: [false, false, false], validPage: [false, false, false],
optionScopes: ["All Department"], optionScopes: ["All Department"],
checkedOptionScopes: [false, false, false],
pageScope: false, pageScope: false,
pageReference: false, pageReference: false,
businessUnit: JSON.parse(localStorage.getItem('dataLogin')).user_dpt[0],//doc businessUnit: JSON.parse(localStorage.getItem('dataLogin')).user_dpt[0],//doc
...@@ -41,13 +40,7 @@ class FormCreate extends Component { ...@@ -41,13 +40,7 @@ class FormCreate extends Component {
}; };
} }
componentDidMount = async () => { componentDidMount = async () => {
// { department: "Department 1", bu: "Business Unit 1" }, try {
// { department: "Department 2", bu: "Business Unit 2" },
// { department: "Department 3", bu: "Business Unit 3" },
// { department: "Department 4", bu: "Business Unit 4" }
// { code: "SOP-1", subject: "SOP Marketing", type: "SOP", bu: "Marketing" },
// { code: "WI-1", subject: "WI TI", type: "WI", bu: "IT" },
// { code: "Policy-1", subject: "Policy HR", type: "Policy", bu: "HR" }
var self = this; var self = this;
var parseString = require('xml2js').parseString; var parseString = require('xml2js').parseString;
let responseDepartmentList = await axios.get(process.env.REACT_APP_MAIN_APIURL + '/MIP_VN/departmentList', { headers: { 'accept': 'application/xml' } }) let responseDepartmentList = await axios.get(process.env.REACT_APP_MAIN_APIURL + '/MIP_VN/departmentList', { headers: { 'accept': 'application/xml' } })
...@@ -105,10 +98,10 @@ class FormCreate extends Component { ...@@ -105,10 +98,10 @@ class FormCreate extends Component {
e.preventDefault(); e.preventDefault();
let data = tableScope.row($(this).parents("tr")).data(); let data = tableScope.row($(this).parents("tr")).data();
if (e.target.checked) { if (e.target.checked) {
self.state.copyScopes.push(e.target.value); self.state.copyScopes.push(data[0]);
self.state.validAddScope = true; self.state.validAddScope = true;
} else { } else {
let i = self.state.copyScopes.indexOf(e.target.value); let i = self.state.copyScopes.indexOf(data[0]);
self.state.copyScopes.splice(i, 1); self.state.copyScopes.splice(i, 1);
if (self.state.copyScopes.length == 0) { if (self.state.copyScopes.length == 0) {
self.state.validAddScope = false; self.state.validAddScope = false;
...@@ -225,6 +218,9 @@ class FormCreate extends Component { ...@@ -225,6 +218,9 @@ class FormCreate extends Component {
} }
} }
}) })
} catch (err) {
console.log(err + "");
}
} }
sortTable = (idTabel, n) => { sortTable = (idTabel, n) => {
var table, rows, switching, i, x, y, shouldSwitch, dir, switchcount = 0; var table, rows, switching, i, x, y, shouldSwitch, dir, switchcount = 0;
...@@ -727,7 +723,7 @@ class FormCreate extends Component { ...@@ -727,7 +723,7 @@ class FormCreate extends Component {
"rev_code": this.state.revisionCode, "rev_code": this.state.revisionCode,
"remark": null, "remark": null,
"user_id": user_id, "user_id": user_id,
"status": "Waiting for Approval" "status": "Waiting for Approval - " + dataApprover[0].EmpFullName[0]
} }
let postDataRevision = js2xmlparser.parse("_postrevisioninsert", dataRevision); let postDataRevision = js2xmlparser.parse("_postrevisioninsert", dataRevision);
//Insert Data Revision //Insert Data Revision
...@@ -748,7 +744,12 @@ class FormCreate extends Component { ...@@ -748,7 +744,12 @@ class FormCreate extends Component {
"subject": "New Approval Request Document", "subject": "New Approval Request Document",
"name": dataApprover[0].EmpFullName[0], "name": dataApprover[0].EmpFullName[0],
"email": dataApprover[0].EMail[0], "email": dataApprover[0].EMail[0],
"message": "Hello " + dataApprover[0].EmpFullName[0] + ", you have new request for approve a document. Please check your account document management." "message": "<p>Dengan hormat,</p><br /> \
<p>Terdapat pengajuan dokumen dengan No." + this.state.businessUnit + "-" + this.state.documentType + "-" + this.state.revisionCode + " " + this.state.subject + " yang diajukan oleh " + JSON.parse(localStorage.getItem("user"))["Full Name"] + ". Untuk review dan approval silahkan klik link <a href='http://10.10.86.48:3000'>Link_Document</a></p><br /> \
<p>Terimakasih</p> \
<p>Regards</p><br /> \
<p>Admin</p><br /> \
<p><i>Ini adalah email otomatis, harap jangan me-reply ke alamat email ini</i></p>"
} }
let responseSendEmail = await fetch(process.env.REACT_APP_MAIN_APIURL + '/email', { let responseSendEmail = await fetch(process.env.REACT_APP_MAIN_APIURL + '/email', {
headers: { 'Content-Type': 'application/json' }, headers: { 'Content-Type': 'application/json' },
...@@ -1212,12 +1213,11 @@ class FormCreate extends Component { ...@@ -1212,12 +1213,11 @@ class FormCreate extends Component {
&nbsp;{this.state.labelChangePage[0]}&nbsp;</Button> &nbsp;{this.state.labelChangePage[0]}&nbsp;</Button>
</div> </div>
<div className="col-xl-9 col-lg-9 col-md-9 col-sm-9 text-right"> <div className="col-xl-9 col-lg-9 col-md-9 col-sm-9 text-right">
<Button color="primary" onClick={() => this.handleSubmitForm()}>&nbsp;&nbsp;Submit <Button color="primary" onClick={() => this.handleSubmitForm()}>&nbsp;&nbsp;Submit&nbsp;
{ {
this.state.submitForm && this.state.submitForm &&
<img src="data:image/gif;base64,R0lGODlhEAAQAPIAAP///wAAAMLCwkJCQgAAAGJiYoKCgpKSkiH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCgAAACwAAAAAEAAQAAADMwi63P4wyklrE2MIOggZnAdOmGYJRbExwroUmcG2LmDEwnHQLVsYOd2mBzkYDAdKa+dIAAAh+QQJCgAAACwAAAAAEAAQAAADNAi63P5OjCEgG4QMu7DmikRxQlFUYDEZIGBMRVsaqHwctXXf7WEYB4Ag1xjihkMZsiUkKhIAIfkECQoAAAAsAAAAABAAEAAAAzYIujIjK8pByJDMlFYvBoVjHA70GU7xSUJhmKtwHPAKzLO9HMaoKwJZ7Rf8AYPDDzKpZBqfvwQAIfkECQoAAAAsAAAAABAAEAAAAzMIumIlK8oyhpHsnFZfhYumCYUhDAQxRIdhHBGqRoKw0R8DYlJd8z0fMDgsGo/IpHI5TAAAIfkECQoAAAAsAAAAABAAEAAAAzIIunInK0rnZBTwGPNMgQwmdsNgXGJUlIWEuR5oWUIpz8pAEAMe6TwfwyYsGo/IpFKSAAAh+QQJCgAAACwAAAAAEAAQAAADMwi6IMKQORfjdOe82p4wGccc4CEuQradylesojEMBgsUc2G7sDX3lQGBMLAJibufbSlKAAAh+QQJCgAAACwAAAAAEAAQAAADMgi63P7wCRHZnFVdmgHu2nFwlWCI3WGc3TSWhUFGxTAUkGCbtgENBMJAEJsxgMLWzpEAACH5BAkKAAAALAAAAAAQABAAAAMyCLrc/jDKSatlQtScKdceCAjDII7HcQ4EMTCpyrCuUBjCYRgHVtqlAiB1YhiCnlsRkAAAOwAAAAAAAAAAAA==" /> <img src="data:image/gif;base64,R0lGODlhEAAQAPIAAP///wAAAMLCwkJCQgAAAGJiYoKCgpKSkiH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCgAAACwAAAAAEAAQAAADMwi63P4wyklrE2MIOggZnAdOmGYJRbExwroUmcG2LmDEwnHQLVsYOd2mBzkYDAdKa+dIAAAh+QQJCgAAACwAAAAAEAAQAAADNAi63P5OjCEgG4QMu7DmikRxQlFUYDEZIGBMRVsaqHwctXXf7WEYB4Ag1xjihkMZsiUkKhIAIfkECQoAAAAsAAAAABAAEAAAAzYIujIjK8pByJDMlFYvBoVjHA70GU7xSUJhmKtwHPAKzLO9HMaoKwJZ7Rf8AYPDDzKpZBqfvwQAIfkECQoAAAAsAAAAABAAEAAAAzMIumIlK8oyhpHsnFZfhYumCYUhDAQxRIdhHBGqRoKw0R8DYlJd8z0fMDgsGo/IpHI5TAAAIfkECQoAAAAsAAAAABAAEAAAAzIIunInK0rnZBTwGPNMgQwmdsNgXGJUlIWEuR5oWUIpz8pAEAMe6TwfwyYsGo/IpFKSAAAh+QQJCgAAACwAAAAAEAAQAAADMwi6IMKQORfjdOe82p4wGccc4CEuQradylesojEMBgsUc2G7sDX3lQGBMLAJibufbSlKAAAh+QQJCgAAACwAAAAAEAAQAAADMgi63P7wCRHZnFVdmgHu2nFwlWCI3WGc3TSWhUFGxTAUkGCbtgENBMJAEJsxgMLWzpEAACH5BAkKAAAALAAAAAAQABAAAAMyCLrc/jDKSatlQtScKdceCAjDII7HcQ4EMTCpyrCuUBjCYRgHVtqlAiB1YhiCnlsRkAAAOwAAAAAAAAAAAA==" />
}&nbsp;&nbsp;&nbsp;</Button>&nbsp; }&nbsp;&nbsp;</Button>&nbsp;
{/* <input type="submit" value="&nbsp;&nbsp;Submit&nbsp;&nbsp;&nbsp;" className="btn btn-primary" /> */}
</div> </div>
</div> </div>
<div className="container col-xl-12 col-lg-12 col-md-12 col-sm-12 border" id="divToSave"> <div className="container col-xl-12 col-lg-12 col-md-12 col-sm-12 border" id="divToSave">
......
...@@ -302,7 +302,7 @@ class FormCreateUpdateRole extends Component { ...@@ -302,7 +302,7 @@ class FormCreateUpdateRole extends Component {
<div className="form-group row"> <div className="form-group row">
<div className="col-xl-12 col-lg-12 col-md-12 col-sm-12 text-right"> <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="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 && this.state.submitForm &&
<img src="data:image/gif;base64,R0lGODlhEAAQAPIAAP///wAAAMLCwkJCQgAAAGJiYoKCgpKSkiH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCgAAACwAAAAAEAAQAAADMwi63P4wyklrE2MIOggZnAdOmGYJRbExwroUmcG2LmDEwnHQLVsYOd2mBzkYDAdKa+dIAAAh+QQJCgAAACwAAAAAEAAQAAADNAi63P5OjCEgG4QMu7DmikRxQlFUYDEZIGBMRVsaqHwctXXf7WEYB4Ag1xjihkMZsiUkKhIAIfkECQoAAAAsAAAAABAAEAAAAzYIujIjK8pByJDMlFYvBoVjHA70GU7xSUJhmKtwHPAKzLO9HMaoKwJZ7Rf8AYPDDzKpZBqfvwQAIfkECQoAAAAsAAAAABAAEAAAAzMIumIlK8oyhpHsnFZfhYumCYUhDAQxRIdhHBGqRoKw0R8DYlJd8z0fMDgsGo/IpHI5TAAAIfkECQoAAAAsAAAAABAAEAAAAzIIunInK0rnZBTwGPNMgQwmdsNgXGJUlIWEuR5oWUIpz8pAEAMe6TwfwyYsGo/IpFKSAAAh+QQJCgAAACwAAAAAEAAQAAADMwi6IMKQORfjdOe82p4wGccc4CEuQradylesojEMBgsUc2G7sDX3lQGBMLAJibufbSlKAAAh+QQJCgAAACwAAAAAEAAQAAADMgi63P7wCRHZnFVdmgHu2nFwlWCI3WGc3TSWhUFGxTAUkGCbtgENBMJAEJsxgMLWzpEAACH5BAkKAAAALAAAAAAQABAAAAMyCLrc/jDKSatlQtScKdceCAjDII7HcQ4EMTCpyrCuUBjCYRgHVtqlAiB1YhiCnlsRkAAAOwAAAAAAAAAAAA==" /> <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'; ...@@ -2,6 +2,7 @@ import React, { Component } from 'react';
import { connect } from 'react-redux'; import { connect } from 'react-redux';
import axios from 'axios'; import axios from 'axios';
import Navbar1 from './Navbar'; import Navbar1 from './Navbar';
import ReactLoading from 'react-loading';
import { DataTableHome } from './DataTableHome'; import { DataTableHome } from './DataTableHome';
class Home extends Component { class Home extends Component {
...@@ -13,7 +14,7 @@ class Home extends Component { ...@@ -13,7 +14,7 @@ class Home extends Component {
} }
} }
componentDidMount = async () => { componentDidMount = async () => {
console.log(localStorage.getItem("user")); console.log(JSON.parse(localStorage.getItem("user")));
try { try {
let response = await axios.get(process.env.REACT_APP_MAIN_APIURL +'/DocumentManagement/home', { headers: { 'accept': 'application/xml' } }); let response = await axios.get(process.env.REACT_APP_MAIN_APIURL +'/DocumentManagement/home', { headers: { 'accept': 'application/xml' } });
var parseString = require('xml2js').parseString; var parseString = require('xml2js').parseString;
...@@ -56,6 +57,19 @@ class Home extends Component { ...@@ -56,6 +57,19 @@ class Home extends Component {
return ( return (
<div> <div>
<Navbar1 menu="home" /><br /> <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 && this.state.fetchStatus == true &&
<div className="container-fluid"> <div className="container-fluid">
......
...@@ -2,6 +2,7 @@ import React, { Component } from 'react'; ...@@ -2,6 +2,7 @@ import React, { Component } from 'react';
import { Button } from 'reactstrap'; import { Button } from 'reactstrap';
import axios from 'axios'; import axios from 'axios';
import Navbar1 from './Navbar'; import Navbar1 from './Navbar';
import ReactLoading from 'react-loading';
import './DocumentManagement.css'; import './DocumentManagement.css';
import { DataTableManageUser } from './DataTableManageUser'; import { DataTableManageUser } from './DataTableManageUser';
...@@ -51,6 +52,19 @@ class ManageUser extends Component { ...@@ -51,6 +52,19 @@ class ManageUser extends Component {
<Button className="center-block" color="primary" href="/formcreateupdaterole">Add User</Button> <Button className="center-block" color="primary" href="/formcreateupdaterole">Add User</Button>
</div> </div>
</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 && this.state.fetchStatus == true &&
<DataTableManageUser data={this.state.dataUser}></DataTableManageUser> <DataTableManageUser data={this.state.dataUser}></DataTableManageUser>
......
...@@ -116,7 +116,7 @@ class PreviewDocument extends Component { ...@@ -116,7 +116,7 @@ class PreviewDocument extends Component {
return ( return (
<div> <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="container">
<div className="row justify-content-center"> <div className="row justify-content-center">
<div className="content-loading"> <div className="content-loading">
......
...@@ -2,6 +2,7 @@ import React, { Component } from 'react'; ...@@ -2,6 +2,7 @@ import React, { Component } from 'react';
import { Button } from 'reactstrap'; import { Button } from 'reactstrap';
import axios from 'axios'; import axios from 'axios';
import Navbar1 from './Navbar'; import Navbar1 from './Navbar';
import ReactLoading from 'react-loading';
import { DataTableMyDocument } from './DataTableMyDocument'; import { DataTableMyDocument } from './DataTableMyDocument';
import { DataTableApprovalDocument } from './DataTableApprovalDocument'; import { DataTableApprovalDocument } from './DataTableApprovalDocument';
...@@ -18,57 +19,59 @@ class YourDocument extends Component { ...@@ -18,57 +19,59 @@ class YourDocument extends Component {
try { try {
var parseString = require('xml2js').parseString; var parseString = require('xml2js').parseString;
let user_id = JSON.parse(localStorage.getItem("dataLogin")).user_id[0]; 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 responseDataUser = await axios.get(process.env.REACT_APP_MAIN_APIURL + '/DocumentManagement/user', { 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 dataUser; let dataUser;
parseString(responseDataUser.data, function (err, result) { parseString(responseDataUser.data, function (err, result) {
dataUser = result.user_dataCollection.user_data; dataUser = result.user_dataCollection.user_data;
}) })
let responseApprovalDocument = await axios.get(process.env.REACT_APP_MAIN_APIURL + '/DocumentManagement/approvaldocument', { headers: { 'accept': 'application/xml' } }); let responseAllDocument = await axios.get(process.env.REACT_APP_MAIN_APIURL + '/DocumentManagement/alldocument', { headers: { 'accept': 'application/xml' } })
let dataApprovalDocument; let dataAllDocument;
parseString(responseApprovalDocument.data, function (err, result) { parseString(responseAllDocument.data, function (err, result) {
dataApprovalDocument = result.documentCollection.document; dataAllDocument = result.documentCollection.document;
}) })
if (dataApprovalDocument != undefined) { let responseDataRevision, dataRevision;
for (let i = 0; i < dataApprovalDocument.length; i++) { if (dataAllDocument != undefined) {
if (JSON.parse(localStorage.getItem("dataProfile")).LoginName == JSON.parse(dataApprovalDocument[i].approver[0]).LoginName) { 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 datarow = [];
let user_name; 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++) { for (let j = 0; j < dataUser.length; j++) {
if (dataUser[i].user_id[0] == dataApprovalDocument[i].user_id[0]) { if (dataUser[j].user_id[0] == dataAllDocument[i].user_id[0]) {
user_name = dataUser[i].user_name[0]; user_name = dataUser[j].user_name[0];
break; break;
} }
} }
datarow.push(""); datarow2.push("");
datarow.push(dataApprovalDocument[i].doc_code[0]); datarow2.push(dataAllDocument[i].doc_code[0]);
datarow.push(dataApprovalDocument[i].subject[0]); datarow2.push(dataAllDocument[i].subject[0]);
datarow.push(dataApprovalDocument[i].doc_status[0]); datarow2.push(dataAllDocument[i].doc_status[0]);
datarow.push(dataApprovalDocument[i].tracking[0] + " - " + JSON.parse(dataApprovalDocument[i].approver[0]).EmpFullName); datarow2.push(dataRevision[dataRevision.length - 1].status);
datarow.push(user_name) datarow2.push(user_name)
this.state.dataApprovalDocument.push(datarow); this.state.dataApprovalDocument.push(datarow2);
}
} }
} }
} }
this.setState({ fetchStatus: true }) await this.setState({ fetchStatus: true });
} catch (error) { } catch (error) {
this.setState({ fetchStatus: true }) await this.setState({ fetchStatus: true });
console.log(error + ""); console.log(error + "");
} }
} }
...@@ -83,6 +86,19 @@ class YourDocument extends Component { ...@@ -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> <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>
</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") && this.state.fetchStatus == true && JSON.parse(localStorage.getItem('dataLogin')).user_role[0].includes("Creator") &&
<div> <div>
...@@ -95,8 +111,14 @@ class YourDocument extends Component { ...@@ -95,8 +111,14 @@ class YourDocument extends Component {
</div> </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> <div>
<hr />
<div className="form-group row"> <div className="form-group row">
<div className="col-xl-12 col-lg-12 col-md-12 col-sm-12"> <div className="col-xl-12 col-lg-12 col-md-12 col-sm-12">
<h3>Approval Document</h3> <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