Commit a0ad902e authored by Internship UKSW 2019's avatar Internship UKSW 2019

Initial commit

parent d86e9c9a
...@@ -5,6 +5,7 @@ import CreatorDocumentRoute from './CreatorDocumentRoute'; ...@@ -5,6 +5,7 @@ import CreatorDocumentRoute from './CreatorDocumentRoute';
import ApproverDocumentRoute from './ApproverDocumentRoute'; import ApproverDocumentRoute from './ApproverDocumentRoute';
import YourDocumentRoute from './YourDocumentRoute'; import YourDocumentRoute from './YourDocumentRoute';
import ManageUserRoute from './ManageUserRoute'; import ManageUserRoute from './ManageUserRoute';
import PublishDocumentRoute from './PublishDocumentRoute';
import FormLogin from './FormLogin'; import FormLogin from './FormLogin';
import Home from './Home'; import Home from './Home';
import PreviewDocument from './PreviewDocument'; import PreviewDocument from './PreviewDocument';
...@@ -14,6 +15,7 @@ import FormCreateUpdateRole from './FormCreateUpdateRole'; ...@@ -14,6 +15,7 @@ import FormCreateUpdateRole from './FormCreateUpdateRole';
import FormCreateDocument from './FormCreateDocument'; import FormCreateDocument from './FormCreateDocument';
import FormApprover from './FormApproverDocument'; import FormApprover from './FormApproverDocument';
import FormRevision from './FormRevisionDocument'; import FormRevision from './FormRevisionDocument';
import FormPublish from './FormPublishDocument';
import NotFoundPage from './NotFoundPage'; import NotFoundPage from './NotFoundPage';
import './App.css'; import './App.css';
...@@ -31,6 +33,7 @@ class App extends Component { ...@@ -31,6 +33,7 @@ class App extends Component {
<CreatorDocumentRoute exact path="/formcreatedocument" component={FormCreateDocument} /> <CreatorDocumentRoute exact path="/formcreatedocument" component={FormCreateDocument} />
<ApproverDocumentRoute exact path="/formapprover" component={FormApprover} /> <ApproverDocumentRoute exact path="/formapprover" component={FormApprover} />
<CreatorDocumentRoute exact path="/formrevision" component={FormRevision} /> <CreatorDocumentRoute exact path="/formrevision" component={FormRevision} />
<PublishDocumentRoute exact path="/Formpublish" component={FormPublish} />
<Route path='*' component={NotFoundPage} /> <Route path='*' component={NotFoundPage} />
</Switch> </Switch>
</BrowserRouter> </BrowserRouter>
......
...@@ -9,6 +9,7 @@ const ApproverDocumentRoute = ({ component: Component, ...rest }) => { ...@@ -9,6 +9,7 @@ const ApproverDocumentRoute = ({ component: Component, ...rest }) => {
props => props =>
localStorage.getItem("user") && ( localStorage.getItem("user") && (
JSON.parse(localStorage.getItem('dataLogin')).user_role[0].includes("Approver") || JSON.parse(localStorage.getItem('dataLogin')).user_role[0].includes("Approver") ||
JSON.parse(localStorage.getItem('dataLogin')).user_role[0].includes("Additional Approver") ||
JSON.parse(localStorage.getItem('dataLogin')).user_role[0].includes("Compliance Officer") || JSON.parse(localStorage.getItem('dataLogin')).user_role[0].includes("Compliance Officer") ||
JSON.parse(localStorage.getItem('dataLogin')).user_role[0].includes("Manager Representative")) ? ( JSON.parse(localStorage.getItem('dataLogin')).user_role[0].includes("Manager Representative")) ? (
<Component {...props} /> <Component {...props} />
......
import React, { Component } from 'react';
import axios from 'axios';
const $ = require('jquery');
$.DataTable = require('datatables.net');
export class DataTablePublishDocument extends Component {
componentDidMount = () => {
this.$el = $(this.el)
var table = this.$el.DataTable({
scrollY: "250px",
scrollCollapse: true,
paging: false,
data: this.props.data,
columns: [
{ title: "No", width: 30 },
{ title: "Code" },
{ title: "Subject" },
{ title: "Status" },
{ title: "Tracking" },
{ title: "Creator" },
],
columnDefs: [
{
searchable: false,
orderable: false,
targets: 0
},
{
orderable: false,
targets: 1,
render: function (data, type, row) {
return "<a class='text-decoration-none' href='#'>" + data + "</a>";
}
},
{
orderable: false,
targets: 2
},
{
orderable: false,
targets: 3
},
{
orderable: false,
targets: 4
},
{
orderable: false,
targets: 5
},
],
order: [[1, "asc"]],
lengthMenu: [[25, 50, 75, 100], [25, 50, 75, 100]]
})
table.on("order.dt search.dt", function () {
table.column(0, { search: "applied", order: "applied" }).nodes().each(function (cell, i) {
cell.innerHTML = i + 1;
});
}).draw();
table.on("click", "a", function (e) {
e.preventDefault();
let data = table.row($(this).parents("tr")).data();
window.open("http://10.10.86.48:3000/formpublish?subject=" + data[2], "_self");
})
}
componentWillUnmount = () => {
this.$el.DataTable.destroy(true);
}
render() {
return (
<div>
<table className="display" width="100%" ref={el => this.el = el}></table>
</div>
)
}
}
\ No newline at end of file
This diff is collapsed.
...@@ -669,20 +669,10 @@ class FormCreate extends Component { ...@@ -669,20 +669,10 @@ class FormCreate extends Component {
} }
handleChangeContentTitle = (e, index) => { handleChangeContentTitle = (e, index) => {
this.state.contents[index].title = e.target.value this.state.contents[index].title = e.target.value
// if (part == "title") {
// this.state.contents[index].title = e.target.value
// }
// else if (part == "file") {
// this.state.contents[index].file = URL.createObjectURL(e.target.files[0])
// }
// else {
// this.state.contents[index].description = e.target.getContent()
// }
this.setState({ contents: this.state.contents }) this.setState({ contents: this.state.contents })
this.checkValidInputPage4(); this.checkValidInputPage4();
} }
handleChangeContentDescription = (e, editor, index) => { handleChangeContentDescription = (e, editor, index) => {
//this.state.contents[index].description = e.target.getContent();//Bisa dipake saat ada image (tidak delay) tapi tidak bisa dipake onKeyup
this.state.contents[index].description = editor.getContent();//Bisa dipake onChange dan onKeyup tapi saat ada image jadi delay this.state.contents[index].description = editor.getContent();//Bisa dipake onChange dan onKeyup tapi saat ada image jadi delay
this.setState({ contents: this.state.contents }) this.setState({ contents: this.state.contents })
this.checkValidInputPage4(); this.checkValidInputPage4();
...@@ -766,9 +756,10 @@ class FormCreate extends Component { ...@@ -766,9 +756,10 @@ class FormCreate extends Component {
let dataRevision = { let dataRevision = {
"doc_id": doc_id, "doc_id": doc_id,
"rev_code": this.state.revisionCode, "rev_code": this.state.revisionCode,
"remark": null, "remark": "Dokumen Original",
"user_id": user_id, "user_id": user_id,
"status": "Waiting for Approval - " + dataApprover[0].EmpFullName[0] "status": "Waiting for Approval - " + dataApprover[0].EmpFullName[0],
"approval": ""
} }
let postDataRevision = js2xmlparser.parse("_postrevisioninsert", dataRevision); let postDataRevision = js2xmlparser.parse("_postrevisioninsert", dataRevision);
//Insert Data Revision //Insert Data Revision
...@@ -1046,7 +1037,7 @@ class FormCreate extends Component { ...@@ -1046,7 +1037,7 @@ class FormCreate extends Component {
<label className="col-xl-3 col-lg-4 col-md-4 col-sm-3 control-label">Purpose : *</label> <label className="col-xl-3 col-lg-4 col-md-4 col-sm-3 control-label">Purpose : *</label>
<div className="col-xl-7 col-lg-5 col-md-5 col-sm-7"></div> <div className="col-xl-7 col-lg-5 col-md-5 col-sm-7"></div>
<div className="col-xl-2 col-lg-3 col-md-3 col-sm-2"> <div className="col-xl-2 col-lg-3 col-md-3 col-sm-2">
<Button color="success" onClick={(e) => this.addPurpose(e)}>Add</Button> <Button color="success" onClick={() => this.addPurpose()}>Add</Button>
</div> </div>
</div> </div>
<div className="form-group row"> <div className="form-group row">
......
...@@ -11,7 +11,7 @@ class FormCreateUpdateRole extends Component { ...@@ -11,7 +11,7 @@ class FormCreateUpdateRole extends Component {
this.state = { this.state = {
isFetched: false, isFetched: false,
isEdit: false, isEdit: false,
optionRoles: ["Admin", "Approver", "Compliance Officer", "Creator", "Manager Representative", "Viewer"], optionRoles: ["Admin", "Approver", "Additional Approver", "Compliance Officer", "Creator", "Manager Representative", "Viewer"],
validFormUser: false, validFormUser: false,
userid: "", userid: "",
username: "", username: "",
......
This diff is collapsed.
...@@ -88,7 +88,7 @@ class FormRevision extends Component { ...@@ -88,7 +88,7 @@ class FormRevision extends Component {
for (let i = 0; i < dataRevision.length; i++) { for (let i = 0; i < dataRevision.length; i++) {
if (dataRevision[i].rev_code == revisionCode) { if (dataRevision[i].rev_code == revisionCode) {
let remark = dataRevision[i].remark; let remark = dataRevision[i].remark;
if (remark == "null") { if (!dataRevision[i].status.includes("Document Rejected By")) {
remark = "-"; remark = "-";
} }
let dataRevisionTable = { let dataRevisionTable = {
...@@ -132,7 +132,7 @@ class FormRevision extends Component { ...@@ -132,7 +132,7 @@ class FormRevision extends Component {
if (revisionDate.includes("+00:00")) { if (revisionDate.includes("+00:00")) {
revisionDate = revisionDate.replace("+00:00", ""); revisionDate = revisionDate.replace("+00:00", "");
} }
if (dataRevision[dataRevision.length - 1].status.includes("Waiting for Approval")) { if (!dataRevision[dataRevision.length - 1].status.includes("Document Rejected By")) {
revisionDate = "-"; revisionDate = "-";
} }
if (effectiveDate.includes("+00:00")) { if (effectiveDate.includes("+00:00")) {
...@@ -838,20 +838,10 @@ class FormRevision extends Component { ...@@ -838,20 +838,10 @@ class FormRevision extends Component {
} }
handleChangeContentTitle = (e, index) => { handleChangeContentTitle = (e, index) => {
this.state.contents[index].title = e.target.value this.state.contents[index].title = e.target.value
// if (part == "title") {
// this.state.contents[index].title = e.target.value
// }
// else if (part == "file") {
// this.state.contents[index].file = URL.createObjectURL(e.target.files[0])
// }
// else {
// this.state.contents[index].description = e.target.getContent()
// }
this.setState({ contents: this.state.contents }) this.setState({ contents: this.state.contents })
this.checkValidInputPage4(); this.checkValidInputPage4();
} }
handleChangeContentDescription = (e, editor, index) => { handleChangeContentDescription = (e, editor, index) => {
//this.state.contents[index].description = e.target.getContent();//Bisa dipake saat ada image (tidak delay) tapi tidak bisa dipake onKeyup
this.state.contents[index].description = editor.getContent();//Bisa dipake onChange dan onKeyup tapi saat ada image jadi delay this.state.contents[index].description = editor.getContent();//Bisa dipake onChange dan onKeyup tapi saat ada image jadi delay
this.setState({ contents: this.state.contents }) this.setState({ contents: this.state.contents })
this.checkValidInputPage4(); this.checkValidInputPage4();
...@@ -896,9 +886,10 @@ class FormRevision extends Component { ...@@ -896,9 +886,10 @@ class FormRevision extends Component {
let dataUpdateRevision = { let dataUpdateRevision = {
"doc_id": this.state.doc_id, "doc_id": this.state.doc_id,
"rev_code": this.state.revisionCode, "rev_code": this.state.revisionCode,
"remark": null, "remark": dataRevision[i].remark,
"user_id": this.state.user_id, "user_id": this.state.user_id,
"status": tracking, "status": tracking,
"approval": dataRevision[i].approval,
"rev_id": dataRevision[i].rev_id "rev_id": dataRevision[i].rev_id
} }
let putDataRevision = js2xmlparser.parse("_putrevisionupdate", dataUpdateRevision); let putDataRevision = js2xmlparser.parse("_putrevisionupdate", dataUpdateRevision);
...@@ -1427,7 +1418,7 @@ class FormRevision extends Component { ...@@ -1427,7 +1418,7 @@ class FormRevision extends Component {
<label className="col-xl-3 col-lg-4 col-md-4 col-sm-3 control-label">Purpose : *</label> <label className="col-xl-3 col-lg-4 col-md-4 col-sm-3 control-label">Purpose : *</label>
<div className="col-xl-7 col-lg-5 col-md-5 col-sm-7"></div> <div className="col-xl-7 col-lg-5 col-md-5 col-sm-7"></div>
<div className="col-xl-2 col-lg-3 col-md-3 col-sm-2"> <div className="col-xl-2 col-lg-3 col-md-3 col-sm-2">
<Button color="success" onClick={(e) => this.addPurpose(e)}>Add</Button> <Button color="success" onClick={() => this.addPurpose()}>Add</Button>
</div> </div>
</div> </div>
<div className="form-group row"> <div className="form-group row">
......
...@@ -14,7 +14,7 @@ class Home extends Component { ...@@ -14,7 +14,7 @@ class Home extends Component {
} }
} }
componentDidMount = async () => { componentDidMount = async () => {
console.log(JSON.parse(localStorage.getItem("dataLogin")).user_id[0]); console.log(JSON.parse(localStorage.getItem("dataLogin")).user_name[0]);
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;
......
...@@ -23,7 +23,8 @@ class PreviewDocument extends Component { ...@@ -23,7 +23,8 @@ class PreviewDocument extends Component {
definitions: [], definitions: [],
references: [], references: [],
revisions: [], revisions: [],
contents: [] contents: [],
approvalDocument: []
} }
} }
componentDidMount = async () => { componentDidMount = async () => {
...@@ -39,6 +40,11 @@ class PreviewDocument extends Component { ...@@ -39,6 +40,11 @@ class PreviewDocument extends Component {
dataDocument = result.documentCollection.document; dataDocument = result.documentCollection.document;
}) })
if (dataDocument != undefined) { if (dataDocument != undefined) {
let responseDataRevision = await axios.get(process.env.REACT_APP_MAIN_APIURL + '/DocumentManagement/revisionkey/' + dataDocument[0].doc_id[0], { headers: { 'accept': 'application/xml' } })
let dataRevision;
parseString(responseDataRevision.data, function (err, result) {
dataRevision = result.revisionCollection.revision;
})
let documentType = dataDocument[0].doc_type[0]; let documentType = dataDocument[0].doc_type[0];
let documentCode = dataDocument[0].doc_code[0]; let documentCode = dataDocument[0].doc_code[0];
let revisionDate = dataDocument[0].rev_date[0]; let revisionDate = dataDocument[0].rev_date[0];
...@@ -50,7 +56,7 @@ class PreviewDocument extends Component { ...@@ -50,7 +56,7 @@ class PreviewDocument extends Component {
if (revisionDate.includes("+00:00")) { if (revisionDate.includes("+00:00")) {
revisionDate = revisionDate.replace("+00:00", ""); revisionDate = revisionDate.replace("+00:00", "");
} }
if (documentCode.includes("R0")) { if (!dataRevision[dataRevision.length - 1].status.includes("Document Rejected By")) {
revisionDate = "-"; revisionDate = "-";
} }
if (effectiveDate.includes("+00:00")) { if (effectiveDate.includes("+00:00")) {
...@@ -60,15 +66,11 @@ class PreviewDocument extends Component { ...@@ -60,15 +66,11 @@ class PreviewDocument extends Component {
documentType: documentType, documentCode: documentCode, revisionDate: revisionDate, documentType: documentType, documentCode: documentCode, revisionDate: revisionDate,
effectiveDate: effectiveDate, purpose: purpose, scopes: scopes, definitions: definitions, references: references effectiveDate: effectiveDate, purpose: purpose, scopes: scopes, definitions: definitions, references: references
}) })
let responseDataRevision = await axios.get(process.env.REACT_APP_MAIN_APIURL + '/DocumentManagement/revisionkey/' + dataDocument[0].doc_id[0], { headers: { 'accept': 'application/xml' } })
let dataRevision;
parseString(responseDataRevision.data, function (err, result) {
dataRevision = result.revisionCollection.revision;
})
for (let i = 0; i < dataRevision.length; i++) { for (let i = 0; i < dataRevision.length; i++) {
let datarow1 = { let datarow1 = {
"revision_code": dataRevision[i].rev_code[0], "revision_code": dataRevision[i].rev_code[0],
"remark": dataRevision[i].remark[0] "remark": dataRevision[i].remark[0],
"approval": dataRevision[i].approval[0]
} }
this.state.revisions.push(datarow1); this.state.revisions.push(datarow1);
} }
...@@ -98,6 +100,40 @@ class PreviewDocument extends Component { ...@@ -98,6 +100,40 @@ class PreviewDocument extends Component {
console.log(error + ""); console.log(error + "");
} }
} }
showApproval = (approval) => {
let approvalDocument;
if (approval != "") {
approvalDocument = approval + "";
if (approvalDocument.includes(", ")) {
approvalDocument = approvalDocument.split(", ");
for (let i = 0; i < approvalDocument.length; i++) {
this.state.approvalDocument.push(approvalDocument[i]);
}
} else {
this.state.approvalDocument.push(approvalDocument);
}
}
return (
<div>
{
this.state.approvalDocument.length == 0 &&
<div>
<label>-</label>
</div>
}
{
this.state.approvalDocument.length !=0 &&
this.state.approvalDocument.map((approval, index) => {
return (
<div key={index}>
<label>{approval}</label>
</div>
)
})
}
</div>
)
}
handleShowDocumentType = () => { handleShowDocumentType = () => {
let showText = ""; let showText = "";
if (this.state.documentType == "SOP") { if (this.state.documentType == "SOP") {
...@@ -150,7 +186,7 @@ class PreviewDocument extends Component { ...@@ -150,7 +186,7 @@ class PreviewDocument extends Component {
<Button color="primary">Download</Button> <Button color="primary">Download</Button>
</div> </div>
<div className="col-xl-9 col-lg-10 col-md-11 col-sm-12 border p-5"> <div className="col-xl-9 col-lg-10 col-md-11 col-sm-12 border p-5">
<img src="logo-visionet.png" alt="visionet" width="240px" height="120px" /> <img src="logo-visionet.png" alt="visionet" width="210px" height="70px" />
<h2 className="text-center">PT. VISIONET DATA INTERNASIONAL</h2><hr /> <h2 className="text-center">PT. VISIONET DATA INTERNASIONAL</h2><hr />
{this.handleShowDocumentType()}<br /><br /> {this.handleShowDocumentType()}<br /><br />
<h2 className="text-center">{this.state.subject}</h2><br /> <h2 className="text-center">{this.state.subject}</h2><br />
...@@ -171,8 +207,9 @@ class PreviewDocument extends Component { ...@@ -171,8 +207,9 @@ class PreviewDocument extends Component {
<table className="my-table table table-bordered"> <table className="my-table table table-bordered">
<thead> <thead>
<tr> <tr>
<th className="col-xl-4 col-lg-4 col-md-4 col-sm-4">Revisi</th> <th className="col-xl-3 col-lg-3 col-md-3 col-sm-3">Revisi</th>
<th className="col-xl-8 col-lg-8 col-md-8 col-sm-8">Keterangan Revisi</th> <th className="col-xl-5 col-lg-5 col-md-5 col-sm-5">Keterangan Revisi</th>
<th className="col-xl-4 col-lg-4 col-md-4 col-sm-4">Persetujuan</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
...@@ -182,6 +219,7 @@ class PreviewDocument extends Component { ...@@ -182,6 +219,7 @@ class PreviewDocument extends Component {
<tr key={index}> <tr key={index}>
<td>{revision.revision_code}</td> <td>{revision.revision_code}</td>
<td>{revision.remark}</td> <td>{revision.remark}</td>
<td>{this.showApproval(revision.approval)}</td>
</tr> </tr>
) )
}) })
......
import React from 'react'
import { Redirect, Route } from 'react-router-dom'
const PublishDocumentRoute = ({ component: Component, ...rest }) => {
return (
<Route
{...rest}
render={
props =>
localStorage.getItem("user") && JSON.parse(localStorage.getItem('dataLogin')).user_role[0].includes("Compliance Officer") ? (
<Component {...props} />
) : (
<Redirect to={{ pathname: '/', state: { from: props.location } }} />
)
}
/>
)
}
export default PublishDocumentRoute;
\ No newline at end of file
...@@ -5,6 +5,7 @@ import Navbar1 from './Navbar'; ...@@ -5,6 +5,7 @@ import Navbar1 from './Navbar';
import ReactLoading from 'react-loading'; import ReactLoading from 'react-loading';
import { DataTableMyDocument } from './DataTableMyDocument'; import { DataTableMyDocument } from './DataTableMyDocument';
import { DataTableApprovalDocument } from './DataTableApprovalDocument'; import { DataTableApprovalDocument } from './DataTableApprovalDocument';
import { DataTablePublishDocument } from './DataTablePublishDocument';
class YourDocument extends Component { class YourDocument extends Component {
constructor(props) { constructor(props) {
...@@ -13,6 +14,7 @@ class YourDocument extends Component { ...@@ -13,6 +14,7 @@ class YourDocument extends Component {
fetchStatus: false, fetchStatus: false,
dataDocument: [], dataDocument: [],
dataApprovalDocument: [], dataApprovalDocument: [],
dataPublishDocument: []
} }
} }
componentDidMount = async () => { componentDidMount = async () => {
...@@ -44,11 +46,13 @@ class YourDocument extends Component { ...@@ -44,11 +46,13 @@ class YourDocument extends Component {
datarow.push(JSON.parse(localStorage.getItem("user"))["Full Name"]); datarow.push(JSON.parse(localStorage.getItem("user"))["Full Name"]);
this.state.dataDocument.push(datarow); 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.includes("Waiting for Approval") || dataRevision[dataRevision.length - 1].status.includes("Waiting for Approver") || dataRevision[dataRevision.length - 1].status.includes("Additional Approver")) && dataAllDocument[i].doc_status[0] == "New") {
if ( if (
(dataRevision[dataRevision.length - 1].status == "Waiting for Approval - " + JSON.parse(localStorage.getItem("dataLogin")).user_name[0] && JSON.parse(localStorage.getItem('dataLogin')).user_role[0].includes("Approver") && JSON.parse(localStorage.getItem("dataLDAP"))["Login Name"] == JSON.parse(dataAllDocument[i].approver[0]).LoginName) ||
(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 - 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("dataLDAP"))["Login Name"] == 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")) ||
(dataRevision[dataRevision.length - 1].status == "Waiting for Approval - Manager Representative" && JSON.parse(localStorage.getItem('dataLogin')).user_role[0].includes("Manager Representative")) (dataRevision[dataRevision.length - 1].status == "Waiting for Additional Approver" && JSON.parse(localStorage.getItem('dataLogin')).user_role[0].includes("Compliance Officer") ||
(dataRevision[dataRevision.length - 1].status.includes(JSON.parse(localStorage.getItem('dataLogin')).user_name[0])) && JSON.parse(localStorage.getItem('dataLogin')).user_role[0].includes("Additional Approver"))
) { ) {
let datarow2 = []; let datarow2 = [];
let user_name = ""; let user_name = "";
...@@ -67,6 +71,23 @@ class YourDocument extends Component { ...@@ -67,6 +71,23 @@ class YourDocument extends Component {
this.state.dataApprovalDocument.push(datarow2); this.state.dataApprovalDocument.push(datarow2);
} }
} }
if (dataRevision[dataRevision.length - 1].status.includes("Waiting for Publish") || dataAllDocument[i].doc_status[0] == "Publish") {
let datarow3 = [];
let user_name2 = "";
for (let j = 0; j < dataUser.length; j++) {
if (dataUser[j].user_id[0] == dataAllDocument[i].user_id[0]) {
user_name2 = dataUser[j].user_name[0];
break;
}
}
datarow3.push("");
datarow3.push(dataAllDocument[i].doc_code[0]);
datarow3.push(dataAllDocument[i].subject[0]);
datarow3.push(dataAllDocument[i].doc_status[0]);
datarow3.push(dataRevision[dataRevision.length - 1].status);
datarow3.push(user_name2);
this.state.dataPublishDocument.push(datarow3);
}
} }
} }
await this.setState({ fetchStatus: true }); await this.setState({ fetchStatus: true });
...@@ -114,6 +135,7 @@ class YourDocument extends Component { ...@@ -114,6 +135,7 @@ class YourDocument extends Component {
this.state.fetchStatus == true && this.state.fetchStatus == true &&
( (
JSON.parse(localStorage.getItem('dataLogin')).user_role[0].includes("Approver") || JSON.parse(localStorage.getItem('dataLogin')).user_role[0].includes("Approver") ||
JSON.parse(localStorage.getItem('dataLogin')).user_role[0].includes("Additional Approver") ||
JSON.parse(localStorage.getItem('dataLogin')).user_role[0].includes("Compliance Officer") || JSON.parse(localStorage.getItem('dataLogin')).user_role[0].includes("Compliance Officer") ||
JSON.parse(localStorage.getItem('dataLogin')).user_role[0].includes("Manager Representative") JSON.parse(localStorage.getItem('dataLogin')).user_role[0].includes("Manager Representative")
) && ) &&
...@@ -127,6 +149,18 @@ class YourDocument extends Component { ...@@ -127,6 +149,18 @@ class YourDocument extends Component {
<DataTableApprovalDocument data={this.state.dataApprovalDocument}></DataTableApprovalDocument> <DataTableApprovalDocument data={this.state.dataApprovalDocument}></DataTableApprovalDocument>
</div> </div>
} }
{
this.state.fetchStatus == true && JSON.parse(localStorage.getItem('dataLogin')).user_role[0].includes("Compliance Officer") &&
<div>
<hr />
<div className="form-group row">
<div className="col-xl-12 col-lg-12 col-md-12 col-sm-12">
<h3>Publish Document</h3>
</div>
</div>
<DataTablePublishDocument data={this.state.dataPublishDocument}></DataTablePublishDocument>
</div>
}
</div> </div>
</div> </div>
) )
......
...@@ -9,6 +9,7 @@ const YourDocumentRoute = ({ component: Component, ...rest }) => { ...@@ -9,6 +9,7 @@ const YourDocumentRoute = ({ component: Component, ...rest }) => {
props => props =>
localStorage.getItem("user") && ( localStorage.getItem("user") && (
JSON.parse(localStorage.getItem('dataLogin')).user_role[0].includes("Approver") || JSON.parse(localStorage.getItem('dataLogin')).user_role[0].includes("Approver") ||
JSON.parse(localStorage.getItem('dataLogin')).user_role[0].includes("Additional Approver") ||
JSON.parse(localStorage.getItem('dataLogin')).user_role[0].includes("Compliance Officer") || JSON.parse(localStorage.getItem('dataLogin')).user_role[0].includes("Compliance Officer") ||
JSON.parse(localStorage.getItem('dataLogin')).user_role[0].includes("Creator") || JSON.parse(localStorage.getItem('dataLogin')).user_role[0].includes("Creator") ||
JSON.parse(localStorage.getItem('dataLogin')).user_role[0].includes("Manager Representative")) ? ( JSON.parse(localStorage.getItem('dataLogin')).user_role[0].includes("Manager Representative")) ? (
......
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