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

Initial commit

parent 1b813cfe
......@@ -41,13 +41,16 @@ body {
}
.background-grey2 {
background: rgb(85, 85, 85);
width: 100%;
height: 100%;
}
.scrolling-wrapper {
overflow-x: scroll;
overflow-y: hidden;
white-space: nowrap;
}
.border-bottom{
border-bottom: 1px solid black;
}
.headerPreview {
width: 21cm;
margin: 0 auto;
......@@ -66,30 +69,23 @@ body {
/* overflow-y: scroll; */
box-sizing: border-box;
font-size: 12pt;
}
@media print {
.page-break {
display: block;
page-break-before: always;
}
}
@media print {
body {
margin: 0;
padding: 0;
}
.A4 {
box-shadow: none;
margin: 0;
width: auto;
height: auto;
}
.noprint {
display: none;
}
.enable-print {
page-break-after: always;
}
.A4-2 {
background: white;
width: 21cm;
/* height: 29.7cm; */
display: block;
}
}
\ No newline at end of file
margin: 0 auto;
padding: 50px 70px;
margin-bottom: 0.5cm;
/* box-shadow: 0 0 0.5cm rgba(0, 0, 0, 0.5); */
/* overflow-y: scroll; */
box-sizing: border-box;
font-size: 12pt;
page-break-after: always;
}
.footer-page {
position: absolute;
top: 29cm;
}
\ No newline at end of file
This diff is collapsed.
......@@ -745,6 +745,7 @@ class FormCreate extends Component {
parseString(responseDataManager.data, function (err, result) {
dataApprover = result.VU_EmployeeMACCollection.VU_EmployeeMAC;
})
if (dataApprover != undefined) {
let information = {
purpose: this.state.purpose,
scopes: this.state.scopes,
......@@ -872,27 +873,29 @@ class FormCreate extends Component {
}
let postDataTrail = js2xmlparser.parse("_posttrailinsert", dataTrail);
let responseInsertTrail = await axios.post(process.env.REACT_APP_MAIN_APIURL + '/DocumentManagement/trailinsert', postDataTrail, { headers: { 'Content-Type': 'text/xml' } })
// //Send Email Notification
// let postdataEmail = {
// "subject": "Permintaan Review dan Approval Dokumen",
// "emailcc": JSON.parse(localStorage.getItem("dataLogin")).email[0],
// "emailsend": dataApprover[0].EMail[0],
// "message": "<p>Dengan hormat,</p> \
// <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"] + ".<br /> Untuk review dan approval silahkan klik link berikut ini <a href='http://10.10.86.48:3000' target='_blank'>Link Dokumen</a></p> \
// <p>Terimakasih</p> \
// <p>Regards, \
// <p>Admin</p><br /> \
// <p><i>Ini adalah email otomatis, harap jangan me-reply ke alamat email ini</i></p>"
// }
// //process.env.REACT_APP_MAIN_APIURL
// let responseSendEmail = await fetch('http://localhost:9000/email', {
// headers: { 'Content-Type': 'application/json' },
// method: 'POST',
// body: JSON.stringify(postdataEmail)
// })
//Send Email Notification
let postdataEmail = {
"subject": "Permintaan Review dan Approval Dokumen",
"emailcc": JSON.parse(localStorage.getItem("dataLogin")).email[0],
"emailsend": dataApprover[0].EMail[0],
"message": "<p>Dengan hormat,</p> \
<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"] + ".<br /> Untuk review dan approval silahkan klik link berikut ini <a href='http://10.10.86.48:3000' target='_blank'>Link Dokumen</a></p> \
<p>Terimakasih</p> \
<p>Regards,</p> \
<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', {
headers: { 'Content-Type': 'application/json' },
method: 'POST',
body: JSON.stringify(postdataEmail)
})
await this.setState({ submitForm: false });
alert("Document has been successfully submited");
this.props.history.push("/yourdocument");
} else {
alert("Error: Data approver doesnot exist");
}
} catch (error) {
this.state.validPage[3] = true;
await this.setState({ submitForm: false, validPage: this.state.validPage });
......@@ -912,7 +915,7 @@ class FormCreate extends Component {
{({ getRootProps, getInputProps }) => (
<section>
<div {...getRootProps()} className="p-4 text-center" style={{ height: "250px", backgroundColor: "lightgrey", border: "1px solid black", borderRadius: "20px", borderStyle: "dashed" }}>
<input {...getInputProps()} accept=".doc,.docx,.xls,.xlsx"/>
<input {...getInputProps()} accept=".doc,.docx,.xls,.xlsx" />
{
this.state.contentForm.title == "" &&
<div>
......@@ -1391,7 +1394,8 @@ class FormCreate extends Component {
{
this.state.submitForm &&
<img src="data:image/gif;base64,R0lGODlhEAAQAPIAAP///wAAAMLCwkJCQgAAAGJiYoKCgpKSkiH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCgAAACwAAAAAEAAQAAADMwi63P4wyklrE2MIOggZnAdOmGYJRbExwroUmcG2LmDEwnHQLVsYOd2mBzkYDAdKa+dIAAAh+QQJCgAAACwAAAAAEAAQAAADNAi63P5OjCEgG4QMu7DmikRxQlFUYDEZIGBMRVsaqHwctXXf7WEYB4Ag1xjihkMZsiUkKhIAIfkECQoAAAAsAAAAABAAEAAAAzYIujIjK8pByJDMlFYvBoVjHA70GU7xSUJhmKtwHPAKzLO9HMaoKwJZ7Rf8AYPDDzKpZBqfvwQAIfkECQoAAAAsAAAAABAAEAAAAzMIumIlK8oyhpHsnFZfhYumCYUhDAQxRIdhHBGqRoKw0R8DYlJd8z0fMDgsGo/IpHI5TAAAIfkECQoAAAAsAAAAABAAEAAAAzIIunInK0rnZBTwGPNMgQwmdsNgXGJUlIWEuR5oWUIpz8pAEAMe6TwfwyYsGo/IpFKSAAAh+QQJCgAAACwAAAAAEAAQAAADMwi6IMKQORfjdOe82p4wGccc4CEuQradylesojEMBgsUc2G7sDX3lQGBMLAJibufbSlKAAAh+QQJCgAAACwAAAAAEAAQAAADMgi63P7wCRHZnFVdmgHu2nFwlWCI3WGc3TSWhUFGxTAUkGCbtgENBMJAEJsxgMLWzpEAACH5BAkKAAAALAAAAAAQABAAAAMyCLrc/jDKSatlQtScKdceCAjDII7HcQ4EMTCpyrCuUBjCYRgHVtqlAiB1YhiCnlsRkAAAOwAAAAAAAAAAAA==" />
}&nbsp;&nbsp;</Button>&nbsp;
}&nbsp;&nbsp;
</Button>&nbsp;
</div>
</div>
<div className="container scrolling-wrapper col-xl-12 col-lg-12 col-md-12 col-sm-12 border" id="divToSave">
......
......@@ -77,13 +77,18 @@ class FormPublish extends Component {
let responseDataAuditTrail = await axios.get(process.env.REACT_APP_MAIN_APIURL + '/DocumentManagement/trailkey/' + doc_id, { headers: { 'Content-Type': 'application/xml' } })
let dataAuditTrail = responseDataAuditTrail.data.trailCollection.trail;
// Check is user valid to open the document
if (dataRevision[dataRevision.length - 1].status == "Waiting for Publish" || dataAuditTrail[dataAuditTrail.length-1].trail_status == "Document Published") {
if (dataRevision[dataRevision.length - 1].status == "Waiting for Publish" || dataAuditTrail[dataAuditTrail.length - 1].trail_status == "Document Published") {
isDocFound = true;
let creator_name, creator_email;
let responseDataUser = await axios.get(process.env.REACT_APP_MAIN_APIURL + '/DocumentManagement/userkeyid/' + user_id, { headers: { 'Content-Type': 'application/xml' } })
let dataUser = responseDataUser.data.user_dataCollection.user_data;
if (dataUser != undefined) {
creator_name = dataUser[0].user_name;
creator_email = dataUser[0].email;
} else {
creator_name = "";
creator_email = "";
}
if (dataRevision[dataRevision.length - 1].status == "Document Published") {
await this.setState({ statusPublish: true });
}
......@@ -191,25 +196,62 @@ class FormPublish extends Component {
await this.setState({ submitForm: true, validSubmitPublish: false });
var js2xmlparser = require('js2xmlparser');
var parseString = require('xml2js').parseString;
let responseDataAllUser = await axios.get(process.env.REACT_APP_MAIN_APIURL + '/DocumentManagement/user', { headers: { 'accept': 'application/xml' } })
let dataAllUser;
parseString(responseDataAllUser.data, function (err, result) {
dataAllUser = result.user_dataCollection.user_data;
})
let dataComplianceOfficer = {
"user_name": "",
"email": ""
};
let dataManagementRepresentative = [];
for (let i = 0; i < dataAllUser.length; i++) {
if (dataAllUser[i].user_role[0].includes("Compliance Officer")) {
dataComplianceOfficer.user_name = dataAllUser[i].user_name[0];
dataComplianceOfficer.email = dataAllUser[i].email[0];
}
if (dataAllUser[i].user_role[0].includes("Management Representative")) {
let dataRowManagementRepresentative = {
"user_name": dataAllUser[i].user_name[0],
"email": dataAllUser[i].email[0]
}
dataManagementRepresentative.push(dataRowManagementRepresentative);
}
}
if (actionPublish == "Publish Document") {
// //Send Email Notification
// let postdataEmailPublish = {
// "subject": "Dokumen " + this.state.businessUnit + "-" + this.state.documentType + "-" + this.state.revisionCode + "-" + this.state.subject + " Sudah Dipublish",
// "emailcc": JSON.parse(localStorage.getItem("dataLogin")).email[0],
// "emailsend": this.state.creator_email,
// "message": "<p>Dengan hormat,</p> \
// <p>Terdapat pengajuan dokumen dengan No." + this.state.businessUnit + "-" + this.state.documentType + "-" + this.state.revisionCode + " " + this.state.subject + " yang diajukan oleh " + this.state.creator_name + " telah dipublish.<br /> Untuk melihat dokumen, silahkan klik link berikut <a href='http://10.10.86.48:3000' target='_blank'>Link Dokumen</a></p> \
// <p>Terimakasih</p> \
// <p>Regards, \
// <p>Admin</p><br /> \
// <p><i>Ini adalah email otomatis, harap jangan me-reply ke alamat email ini</i></p>"
// }
// // process.env.REACT_APP_MAIN_APIURL +
// let responseSendEmailPublish = await fetch('http://localhost:9000/email', {
// headers: { 'Content-Type': 'application/json' },
// method: 'POST',
// body: JSON.stringify(postdataEmailPublish)
// })
let sendEmailPublish = this.state.creator_email;
if (!sendEmailPublish.includes(JSON.parse(this.state.approver).Email)) {
if (sendEmailPublish != "") {
sendEmailPublish = sendEmailPublish + ", " + JSON.parse(this.state.approver).Email;
} else {
sendEmailPublish = JSON.parse(this.state.approver).Email;
}
}
if (dataManagementRepresentative.length != 0) {
for (let i = 0; i < dataManagementRepresentative.length; i++) {
if (!sendEmailPublish.includes(dataManagementRepresentative[i].email)) {
sendEmailPublish = sendEmailPublish + ", " + JSON.parse(this.state.approver).Email;
}
}
}
//Send Email Notification After Publish
let postdataEmailAfterPublish = {
"subject": "Dokumen " + this.state.businessUnit + "-" + this.state.documentType + "-" + this.state.revisionCode + "-" + this.state.subject + " Sudah Dipublish",
"emailcc": JSON.parse(localStorage.getItem("dataLogin")).email[0],
"emailsend": sendEmailPublish,
"message": "<p>Dengan hormat,</p> \
<p>Dokumen dengan No." + this.state.businessUnit + "-" + this.state.documentType + "-" + this.state.revisionCode + " " + this.state.subject + " yang diajukan oleh " + this.state.creator_name + " telah dipublish.<br /> Untuk melihat dokumen, silahkan klik link berikut <a href='http://10.10.86.48:3000' target='_blank'>Link Dokumen</a></p> \
<p>Terimakasih</p> \
<p>Regards,</p> \
<p>Admin</p><br /> \
<p><i>Ini adalah email otomatis, harap jangan me-reply ke alamat email ini</i></p>"
}
let responseSendEmailAfterPublish = await fetch(process.env.REACT_APP_MAIN_APIURL + '/email', {
headers: { 'Content-Type': 'application/json' },
method: 'POST',
body: JSON.stringify(postdataEmailAfterPublish)
})
}
let responseDataRevision = await axios.get(process.env.REACT_APP_MAIN_APIURL + '/DocumentManagement/revisionkey/' + this.state.doc_id, { headers: { 'Content-Type': 'application/xml' } })
let dataRevision = responseDataRevision.data.revisionCollection.revision;
......
This diff is collapsed.
......@@ -71,7 +71,7 @@ class YourDocument extends Component {
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 (
(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")) ||
(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("Compliance Officer")) ||
((dataRevision[dataRevision.length - 1].status == "Waiting for Approval - " + JSON.parse(localStorage.getItem("dataLogin")).user_name[0] || 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 - Management Representative" && JSON.parse(localStorage.getItem('dataLogin')).user_role[0].includes("Management 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"))
......
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